Polynom aus gegebenen Punkten errechnen
-
Hallo zusammen
Ich habe eine Anzahl an Punkten n gegeben und will sie durch eine Polynomfunktion vom Grad n - 1 darstellen.
Wie das funktioniert weiß ich, aber bei 8 gegebenen Punkten ist das alles etwas mühsam, daher würde mich interessieren ob jemand ein programm kennt, was das für einen erledigt ...Mit freundlichen Grüßen
Marc
-
z.B. polyfit() aus Matlab bzw. Octave.
-
http://www.math.ucla.edu/~ronmiech/Interpolation/HTMDOCS/Introduction/Interpolation_Applet.htm
der erste google hit zu: applet polynom interpolieren
-
Nur als Warnung: Je höher der Polynomgrad, destomehr neigen Interpolationspolynome dazu, an den Rändern stark zu schwingen. Das ist meistens etwas, was man nicht haben will. Alternativen sind Ausgleichsrechnung oder (kubische) Splines.
edit: Beispiel:
Nimm mal folgende Daten:
(-8,0)
(-7,0)
(-6,0)
(-5,0)
(-4,0)
(-3,0)
(-2,0)
(-1,0)
(0,1)
(1,0)
(2,0)
(3,0)
(4,0
(5,0)
(6,0)
(7,0)
(8,0)Das sieht aus wie eine Funktion mit einem Peak in der Mitte und (beinahe) Null überall sonst. Interpolation gibt einen sehr kleinen Peak in der Mitte, aber zwei riesige Peaks jeweils zwischen den letzten beiden, äußeren Punkten.
-
benutze gauss-algorithmus zur lösung linerarer gleichungssysteme.
dein polynom sieht immer so aus
a_{n\_1}x^{n-1}+\lodts+a\_0
jetzt kannst du für jeden punkt (x_0, y_0) eine gleichung aufstellen:
a_{n\_1}x\_0^{n-1}+\lodts+a\_0=y\_0
also bekommst du aus deinen n punkten ein lineares gleichungssystem, dass du mit gauss lösen kannst.
falls dir gauss nix sagt kannst du diese gleichungen auch einfach nach einem koeffiezienten auflösen und dann in die nächste einsetzen usw. is aber aufwendig
-
Da würde ich aber eher den Newton-Algorithmus nehmen. Das geht deutlich schneller.