Skript zur Vorlesung Physik auf dem Computer - Universität Stuttgart
Skript zur Vorlesung Physik auf dem Computer - Universität Stuttgart
Skript zur Vorlesung Physik auf dem Computer - Universität Stuttgart
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3.3 Polynom- oder Lagrangeinterpolation<br />
Die letztere Umformung zeigt, dass sich die Newtonsche Darstellung ezient mit einem<br />
leicht abgewandelten Hornerschema auswerten lässt:<br />
def horner(x0, x, gamma):<br />
r = 0<br />
for k in range(len(x)-1, -1, -1):<br />
r = r*(x0-x[k]) + gamma[k];<br />
return r<br />
Die Koezienten γ i , i = 2(1)n lassen sich dabei bequem mit <strong>dem</strong> Nevilleschema bestimmen.<br />
γ k ist ja der höchste Koezient von P 0,k ist, der sich leicht aus (3.12) berechnen<br />
lässt. Wenn γ i,k den führenden Koezienten des Polynoms P i,k bezeichnet, so erhalten<br />
wir das Nevilleschema<br />
γ i,1 = y i für i = 0(1)n − 1 und (3.15)<br />
γ i,k = γ i+1,k−1 − γ i,k−1<br />
x i+k−1 − x i<br />
für k = 2(1)n, i = 0(1)n − k. (3.16)<br />
Da letztlich nur die γ 0,k interessant sind, also die obere Diagonale des Nevilleschemas,<br />
benötigt man für die Berechnung nur einen Vektor<br />
der wie folgt berechnet wird:<br />
γ ′ = (γ 0,1 ,γ 0,2 , . . . ,γ 0,k−1 , γ 0,k ,γ 1,k , . . . ,γ n−k,k ) , (3.17)<br />
def neville(x, y):<br />
n = len(x)<br />
gamma = y.copy()<br />
for k in range(1, n):<br />
for i in range(n-k-1, -1, -1):<br />
gamma[i+k] = (gamma[i+k] - gamma[i+k-1])/(x[i+k] - x[i])<br />
return gamma<br />
Man beachte, dass die Schleife über i herunterläuft, um benötigte Werte nicht zu überschreiben.<br />
3.3.4 Chebyshev-Stützstellen<br />
Bis jetzt haben wir wenig <strong>zur</strong> Wahl der Stützstellen gesagt. Oft liegt es auch nahe,<br />
äquidistante Stützstellen zu verwenden wie im Fadenpendel-Beispiel. Man kann allerdings<br />
zeigen, dass die Chebychev-Stützstellen den Fehler der Polynominterpolation minimieren.<br />
Diese sind deniert als die Nullstellen der Polynome (!)<br />
T n (cos φ) = cos(nφ), (3.18)<br />
die oensichtlich zwischen -1 und 1 liegen und daher geeignet skaliert werden müssen<br />
für die Interpolation in einem allgemeinen Interval. Die Chebychev-Polynome T n , n ≥ 0,<br />
bilden eine orthogonale Basis der Funktionen über [−1,1] bezüglich des mit 1/ √ 1 − x 2<br />
29