Læringsmål:
- Funksjoner
- Elementvis operasjoner
Pensum:
- Kap 2.3
- Kap 4.4
Noen funksjoner er sure og kan derfor ikke integreres analytisk. Derfor kan dette gjøres nummerisk, altså tilnærmes.
Areal:
Hvor Her er yi = f(h*i) for en i,og funksjonen du vil integrere, f(x).
Se lengre ned for bruk av funksjoner som parametere i andre funksjoner.
a)
Fordi n må være partall, må funksjonen . isEven(n) lages. Returvariabelen er 1 eller 0 om n er partall eller ikke.
b)
Skriv funksjonen calcDeltaX(a,b,n) som returnerer steglengden deltaX.
c)
Lag simpsons(a,b,n,fn) ved gitt pseudokode:
% Ta inn a, b, n og funksjonen fn. % 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 .
d)
Test funksjonen med simpsons(0,pi, 14, @(x)sin( x )).
e)
Lag funksjonen deviation(a,b,n, fn, corr). corr er det analytiske svaret. Funksjonen skal returnere feilen mellom det korrekte svaret, og svaret funnet ved hjelp av simpsons metode.
f)
Mattematisk bonusspørsmål:
Simpsons metode er en annenordens metode. Hva har det med det logaritmiske plottet under å gjøre?
n =200; c = 1; for i = [2:2:n] e(c) = simpsons(0,pi,i,@sin); c = c+1; end loglog([1:n/2], e-2)
Nyttig:
Du får bruk for at:
Definerer en vanlig (mattematisk) funksjon:
function y = f(x) y = x; end
Slik definerer vi en funksjon som benytter seg av en annen funksjon (fn) som parameter:
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 og sender inn f. Når man står utenfor funksjonen må det stå et krøllalfa foran funksjonen som skal være en parameter.
disp ( g ( 2, @f ) ); % legg merke til krøllalfa - tegnet!