for-løkke driller
Jeg skal lave en funktion I MATLAB som finder det første tal under tol (tolerancen som i dette tilfælde er 1*10^(-8)).Jeg har lavet nedenstående funktion som printer talene nederst i dette spørgsmål. Men jeg skal ha' den til at stoppe når Res<tol. (I dette tilfælde skal den stoppe når N=36)
-------------------------------------------------------
clear, clc
% funktion
f=@(x) 1./(1+x.^2);
% start argumenter
tol = 1*10^(-8);
a = 0;
b = realsqrt(3);
N = [2:2:64];
% hvis tol er mindre end maskinpræcisionen
% (eps) sættes tolerancen til eps:
tol = max(tol, eps);
S=[];
for (K=N)
S=[S, Simpsum(f,a,b,K)];
Res = (pi/3)-S;
end
fprintf(1,'N:\t\t\t\t Res:\n\n')
fprintf(1,'%-7.6g\t\t\t %-7.6g\n',[N;Res])
-------------------------------------------------------
N: Res:
2 0.0265248
4 0.000800665
6 3.21443e-005
8 4.48181e-006
10 1.63678e-006
12 7.83236e-007
14 4.22635e-007
16 2.4775e-007
18 1.54674e-007
20 1.01484e-007
22 6.93155e-008
24 4.89417e-008
26 3.55331e-008
28 2.64177e-008
30 2.00467e-008
32 1.54857e-008
34 1.21511e-008
36 9.66764e-009
38 7.78747e-009
40 6.34294e-009
42 5.21836e-009
44 4.33232e-009
46 3.6266e-009
48 3.05891e-009
50 2.59807e-009
52 2.22084e-009
54 1.90966e-009
56 1.65112e-009
58 1.43489e-009
60 1.25293e-009
62 1.09892e-009
64 9.67858e-010
