...
Code Block |
---|
function result = simpsons(a,b,N,f) N = N+isEven(N)-1; h = calcDelta(a,b,N); result = h/3*f(h*0); mult = [4,2]; for i = 1:N-1 result = result + h/3*f(h*i)*mult(mod(i,2)+1); end result = result + h/3*f(h*N); end function even = isEven(n) even = mod(n,2)+1; end function h = calcDelta(a,b,n) h = (b-a)/n; end |
cd)
Code Block |
---|
1.9832 = simpsons(0,pi,14,@(x)sin(x)) |
de)
Code Block |
---|
function err = deviation(a,b,N,f,corr) err= corr-simpsons(a,b,N,f); end |
f) Simpsons metode er en andre ordens funksjon, noe som vil si at stigningen på plottet under skal være 2, altså; feilen blir 2 størrelsesordner mindre hvor hver størrelsesorden n øker(se bilder under). Det at Simpsons metode er en andre ordens metode betyr at feilen vil være avhengig av O(h2), dette kan vises ved å utlede metoden, men det vil ikke gjennomgås her.