...
Code Block | ||
---|---|---|
| ||
function result = simpsons(a,b,n,f) h if mod(n, 2) ~= 0 error('Parameteren n må være et partall, var %d\n', n); end dx = (b-a)/n; y= [f(a : h dx: b]); result = f(y(1)) + f(y(end)); result = result + yodd = 2*sum(f(y(3:2:endn-1))); % Regner for de odde y-ene result = result + yeven = 4*sum(f(y(2:2:endn))); % Regner for de pare y-ene ; ysum = y(1) + yodd + yeven + y(n+1); result = hdx/3 * resultysum; end |
b)
Code Block | ||
---|---|---|
| ||
function result = simpsons_error(start, stop, error, fn) N = 2; % N må være et partall Si = simpsons(start, stop, N, fn); S2i = simpsons(start, stop, 2*N, fn); while abs(Si-S2i) >= error N = 2 * N; Si = simpsons(start, stop, N, fn)S2i; S2i = simpsons(start, stop, 2*N, fn); end fprintf('Antal ledd: %d\n', N); result = Si; end |
...