...
Code Block | ||||
---|---|---|---|---|
| ||||
% Ta inn a, b, n og funksjonen fn.
% Definere y(x)
% Sjekk at n er partall, gi feilmelding hvis ikke.
% Gå videre:
% La variabelen y inneha alle funksjonsverdiene til fn fra a til b med steglende deltaX.
% velg odde yer: y1, y3, y5 ... y_(n-1)
% regn ut 4*summen av disse
% velg partall yer: y2, y4, y6 ... y_(n-2)
% regn ut 2*summen av disse
% legg sammen de to summene sammen med y_0 og y_n
% gang alt med \deltaX/3 . |
Linje 2 kan evt fjernes om man mestrer dette for bruk av funksjoner som parametere i andre funksjoner. Dette er ikke pensum, men ellers nyttig, som man vil se. Følg "evt" om man får til dette.
d)
Test funksjonen med med
på funksjonen ved følgende kall:simpsons(0,pi, 14,
@(x)sin(x)
Code Block |
---|
f = @(t) sin(x) |
...
simpsons(0,pi, |
...
14, f) |
e)
Lag funksjonen deviation(a,b,n, fn, corr)
. corr er det analytiske svaret som man finner for hånd. Funksjonen skal returnere feilen mellom det korrekte svaret, og svaret funnet ved hjelp av simpsons metode.
Code Block |
---|
...
f = @(t) sin(x) deviation(a,b,n,fn, corr) |
...
...
f)
...
)
...
Mattematisk bonusspørsmål:
Simpsons metode er en annenordens metode. Hva har det med det logaritmiske plottet under å gjøre?
Code Block | ||
---|---|---|
| ||
n =200; c = 1; f = @(t) sin(x) for i = [2:2:n] e(c) = simpsons(0,pi,i,@sin); c = c+1; end loglog([1:n/2], e-2) |
...