-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathErrorAnalysis.m
More file actions
51 lines (34 loc) · 1.27 KB
/
Copy pathErrorAnalysis.m
File metadata and controls
51 lines (34 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
prompt = 'w = ';
theta = input(prompt);
prompt = 'X-range = ';
X_range = input(prompt);
prompt = 'Y-range = ';
Y_range = input(prompt);
prompt = 'Order of Space Derivative = '; % 2nd or 4th?
OrderofSpaceDerivative = input(prompt, 's');
disp('dx L1-error L2-error L_inf-error ratio-1 ratio-2 ratio-3');
dx = 2;
wave = LSWE(dx, theta, X_range, Y_range, OrderofSpaceDerivative);
for k = 1 : 4
dx = dx / 2;
Hwave = LSWE(dx, theta, X_range, Y_range, OrderofSpaceDerivative);
diff = abs(Hwave(1 : 2 : end, 1 : 2 : end) - wave);
diff = diff(2 : end, 2 : end);
L1err = sum(sum(diff)) * (dx * 2) ^ 2; % dy = dx
L2err = sqrt(sum(sum(diff .^ 2))) * (dx * 2);
Linferr = max(max(diff));
if k == 1
row = [dx L1err L2err Linferr];
fprintf('%0.5f %0.8f %0.8f %0.8f\n', row);
else
ratio1 = former_L1err / L1err;
ratio2 = former_L2err / L2err;
ratio3 = former_Linferr / Linferr;
row = [dx L1err L2err Linferr ratio1 ratio2 ratio3];
fprintf('%0.5f %0.8f %0.8f %0.8f %0.5f %0.5f %0.5f\n', row);
end
wave = Hwave;
former_L1err = L1err;
former_L2err = L2err;
former_Linferr = Linferr;
end