Polynominterpolation n. Newton < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 20:29 Mi 23.04.2014 | Autor: | Makito |
Aufgabe | Schreiben sie eine MATLAB-Funktion zur Polynominterpolation nach Newton, welche dividierte
Differenzen verwendet. Testen Sie Ihr Programm an dem RungeBeispiel, wobei
sie einmal äquidistante Stützstellen verwenden und einmal die Nullstellen der Tschebysche-
Polynome. Plotten Sie Ihre Ergebnisse für n = 5; 10; 50; 100 Stützstellen. |
Guten Abend,
die genannte Aufgabe habe ich zu lösen, leider bin ich was Matlab angeht ein ziemlicher Anfänger.
Folgendes habe ich bisher stehen:
%Interpolation nach Newton. Rungebeispiel mit aequidistanten Stuetzstellen.
n=input('n=5,10,50 oder 100? :');
s = linspace(-1,1,n); %Generieren der n Stützstellen.
f = @(x) 1./(1+25.*x.*x); %Runge-Beispiel
c = f(s); %Dividierte Differenzen
for (i=2:n)
for(k=n:-1:i)
c(k) = (c(k)-c(k-1)) / (s(k)-s(k-i+1));
end
end
y=polyval(c,s); %Auswertung des Polynoms an den Stuetzstellen
plot(s,y)
Der Plot sieht aber nicht richtig aus, mit Sicherheit habe ich dort einen (wahrscheinliche mehrere) Fehler drin.
Wie müsste der Code aussehen?
Über Hilfe würde ich mich sehr freuen!
MfG
Makito
|
|
|
|
moin,
du hast bisher fast alles richtig gemacht. Du bisher sind nur die dividierten Differnzen berechnet wurden.
Man muss die doch wieder zurück rechnen. Ich habe deinen Quelltext etwas ergänzt:
http://pastebin.com/xqu1GgeG
edit: Man kann es auch leicht modifizieren:
http://pastebin.com/Q6Vcfr0b
In jedem Fall fehlte dir die Auswertung des Newtonschen Interpolationspolynom.
Gruß
wieschoo
|
|
|
|