You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 55 Next »

Læringsmål:

  • Funksjoner
  • Elementvis operasjoner

Pensum:

  • Kap 2.3
  • Kap 4.4
  • Kap 10.1-10.4


Noen funksjoner er sure og kan derfor ikke integreres analytisk på en enkel måte. Derfor kan dette gjøres nummerisk, altså tilnærmes.

Areal:     Hvor

Her er for en i,og funksjonen du vil integrere, f(x).  


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?

b)

Skriv funksjonen calcDeltaX(a,b,n)som returnerer steglengden.

c)

Lag simpsons(a,b,n) ved gitt pseudokode:

% 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, 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?

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 kan få bruk for at:

Definerer en vanlig (mattematisk) funksjon:

function y = f(x)
y = x;
end

 

Slik definerer man en funksjon som benytter seg av en annen funksjon (fn) som parameter. I dette tilfellet opphøyes fn(x) i andre.

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.

disp ( g(2, @f) ); % legg merke til krøllalfa - tegnet!
  • No labels