Geometrie und Topologie
Fakultät für Mathematik
Technische Universität München

Lagrange Interpolation

Die Lagrange Interpolation kann dazu verwendet werden, ein Polynom möglichst kleinen Grades durch eine Menge von Funktionswerten yi zu gegeben Stützstellen xi zu legen. Liegen n solche Paare (xi,yi) vor, so reicht hierzu ein Polynom vom Grad d=n1 aus. Ziel der Interpolationsaufgabe ist es hierbei, die Koeffizienten a0,a1,ad für das gesuchte Polynom p(x):=a0+a1x+a2x2+a3x3++anxn zu finden. Es muss allerdings gefordert werden, dass die xi paarweise verschieden sind, andernfalls könnte eine inkonsistente Forderung an einen y-Wert entstehen. Eine Möglichkeit diese Koeffizienten zu berechnen besteht darin, explizit das folgende Gleichungssystem zu lösen:

(1x1x12x1d1x2x22x2d1xnxn2xnd)(a0a1an)=(y0y1yn)

Die linke Seite wertet das fragliche Polynom an den Stützstellen xi aus. Die rechte Seite setzt diese Auswertung mit den geforderten y-Werten gleich. Erstaunlicherweise (und erfreulicherweise) ist dieses lineare Gleichungssystem tatsächlich immer dann lösbar, wenn die xi paarweise verschieden sind. Der Grund dafür ist die so genannte Vandermonde Matrix» und deren Determinante (Genaueres hierzu kommt später in der Vorlesung). Zugegebenermaßen ist es nicht die klügste Variante, die Polynomkoeffizienten auf diese Weise zu bestimmen. Das obige Gleichungssystem ist sehr schlecht konditioniert (d.h. im Allgemeinen numerisch instabil) bedingt durch den Umstand, dass in der Matrix zugleich sehr große und sehr kleine Zahlen auftreten können. Eine bessere Methode, das gesuchte Polynom zu bestimmen, besteht aus den folgenden Schritten: Zunächst bestimmt man Polynome qi(x):=(xx1)(xx2)(xxi1)(xxi+1)(xxn1)(xxn). Diese haben folgende drei wichtige Eigenschaften: Alle qi(x) haben Grad d, Für ij gilt qj(xi)0, Es gilt qi(xi)=0 für alle i. Aus diesen bestimmt man normierte Polynome gemäß pi(x):=qi(x)/qi(xi). Diese Polynome pi sind an allen Stützstellen außer xi gleich 0. Bei xi ergibt sich pi(xi)=1. Das gesuchte Polynom p(x) erhält man dann durch eine Linearkombination der pi(x): p(x):=y1p1(x)++ynpn(x). Das folgende Applet verdeutlicht das Ergebnis dieser Berechnung für vier frei positionierbare Punkte. Die grünen Punkte sind frei beweglich.

Mit dem Schiebeschalter können die vier gewichteten Basisfunktionen yipi(x) sichtbar gemacht werden. Der algorithmische Kern des Applets besteht aus den foglenden 8 Zeilen in CindyScript

   pts=allpoints();
   xs=apply(pts,#.x);
   ys=apply(pts,#.y);
   n=length(pts);
   q(x,i):=product(1..n--[i],j,x-xs_j);
   p(x,i):=f(x,i)/f(xs_i,i)*ys_i;
   p(x):=sum(1..n,i,p(x,i));
   plot(p(x));