...
Her er for en i,og funksjonen du vil integrere, f(x). Se lengre ned for bruk av funksjoner som parametere i andre funksjoner. Dette er ikke pensum, men ellers nyttig.
a)
Fordi n må være partall, må funksjonen isEven(n)
lages. Returvariabelen er 1 eller 0 om n er partall eller ikke.
Digresjon: Er det egentlig nødvendig å lage en egen funksjon for dette?
...
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 simpsons(0,pi, 14, @)
på funksjonen sin(x).
(Evt
).simpsons(0,pi, 14)
@(x)sin(x)
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.
(Evt deviation(a,b,n, fn, corr)
)
f)
I simpsons, definer y = sin(x).
(Evt bytt ut linje 4 under med "e(c) = simpsons(0,pi,i,@sin);
)
Mattematisk bonusspørsmål:
Simpsons metode er en annenordens metode. Hva har det med det logaritmiske plottet under å gjøre?
...
Nyttig Anchornyttig nyttig
:
nyttig | |
nyttig |
Du får kan få bruk for at:
Definerer en vanlig (mattematisk) funksjon:
Code Block | ||
---|---|---|
| ||
function y = f(x) y = x; end |
Slik definerer vi man en funksjon som benytter seg av en annen funksjon (fn) som parameter:. I dette tilfellet opphøyes fn(x) i andre.
Code Block | ||
---|---|---|
| ||
function y = g(x, fn) % her kaller vi på funksjonen som er lagret i parameteren fn y = fn(x) * fn(x); end |
Kaller på funksjonen g med x=2 og sender inn f som fn. Når man står utenfor funksjonen må det stå et krøllalfa foran funksjonen som skal være en parameter.
Code Block | ||
---|---|---|
| ||
disp ( g ( 2, @f ) ); % legg merke til krøllalfa - tegnet! |