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

Compare with Current View Page History

« Previous Version 59 Next »

Læringsmål:

  • Funksjoner
  • Elementvis operasjoner

Pensum:

  • Kap 2.3
  • Kap 4.4
  • Kap 10.1-10.4


Noen funksjoner er transcendentale og kan derfor ikke integreres analytisk. Men de kan (av og til) integreres nummerisk, altså tilnærmes. 
Nedenfor er Simpsons metode, som dere kanskje har lært om i matematikk 1, forklart kort.

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.
% 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 ved følgende kall:

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.

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?

n =200;
c = 1;
f = @(t) sin(x)
for i = [2:2:n]
	e(c) = simpsons(0,pi,i,f);
	c = c+1;
end
loglog([1:n/2], e-2)

 



Nyttig:


Du kan få bruk for følgende som ikke er pensum:

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