Springen naar inhoud

Lagrangeinterpolatie in matlab


  • Log in om te kunnen reageren

#1

Tommeke14

    Tommeke14


  • >250 berichten
  • 771 berichten
  • Ervaren gebruiker

Geplaatst op 06 maart 2010 - 19:08

Ik moet een matlab functie schrijven waarbij 8 concentraties gegeven zijn per 2 jaar.
gevraagd is de concentratie in 1994 berekend door interpolatie met de lagrangeveelterm

Dit is de code van de functie
function lagrange
X=[1978 1980 1982 1984 1986 1988 1990 1992];
f=[12; 12.7; 13; 15.2; 18.2; 19.8; 24.1; 28.1];
P=0;
x=1978:0.2:1994;
for j=1:numel(X)
	L = 1;
for i=1:numel(X)
	if (i~=j)
L=L.*(x-X(i))/(X(j)-X(i));
	end
end
P=P+L*f(j);
end
plot(x,P)

end

Op zich lijkt hij mij wel te kloppen, maar als resultaat krijg ik:
Geplaatste afbeelding

Voor 1994 krijg ik een concentratie van -38.4
dit kan natuurlijk allemaal niet in werkelijkheid...


Anderzijds denk ik intuÔtief wel dat eens je een punt zoekt buiten het interval van je spilpunten, je een grotere fout krijgt
Maar dit vind ik toch wel beetje extreem...

Dus kan zon grote (in werkelijkheid foute) afwijking wel?

Veranderd door Tommeke14, 06 maart 2010 - 19:08


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

317070

    317070


  • >5k berichten
  • 5583 berichten
  • Moderator

Geplaatst op 07 maart 2010 - 12:08

Zulke dingen kunnen perfect met Lagrange-interpolatie. De interpolatie is alleen maar 'goed' binnen de waarden waartussen je interpoleert (en dan nog), ook zal op het eerste zicht P een 9de machts veelterm zijn, en die dingen gaan inderdaad snel naar +-oo.
Lagrange-interpolatie garandeert ENKEL dat de functie door de punten gaat, en is dus enkel (in sommige gevallen!) goed voor INTERpolaties.

Voor dergelijke EXTRApolaties zoals je ze hier wil maken, gebruik je dus beter andere methoden.

Veranderd door 317070, 07 maart 2010 - 12:09

What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#3

Tommeke14

    Tommeke14


  • >250 berichten
  • 771 berichten
  • Ervaren gebruiker

Geplaatst op 07 maart 2010 - 12:13

Ok, dat vermoedde ik al
De opdracht was om het met lagrange te doen, maar misschien was het net de bedoeling van die opdracht om aan te tonen hoe slecht het gaat...

(in een latere opdracht moet ik het met cubic spline doen)

#4

317070

    317070


  • >5k berichten
  • 5583 berichten
  • Moderator

Geplaatst op 07 maart 2010 - 14:13

(in een latere opdracht moet ik het met cubic spline doen)

Innige deelneming :eusa_whistle:
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Vacatures