20.01.2014 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!