a)
Code Block | ||
---|---|---|
| ||
function result = simpsons(a,b,n,f) |
...
h = (b-a)/n; |
...
y= [a : h : b]; |
...
result = f(y(1)) + f(y(end)); |
...
result = result + 2*sum(f(y(3:2:end-1))); % Regner for de odde y-ene |
...
result = result + 4*sum(f(y(2:2:end))); % Regner for de pare y-ene |
...
result = h/3 * result; end |
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) >= |
...
N = 2 * N;
...
error N = 2 * N; Si = simpsons(start, stop, N, fn); |
...
S2i = simpsons(start, stop, 2*N, fn); |
...
end
fprintf('Antal ledd: %d\n', N);
result = Si;
end |
end
result = Si;
end