Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagenone
linenumberstrue
% 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
Anchor
nyttig
nyttig
:


Du får kan få bruk for at:

Definerer en vanlig (mattematisk) funksjon:

Code Block
languagenone
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
languagenone
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
languagenone
disp ( g ( 2, @f ) ); % legg merke til krøllalfa - tegnet!