5 Interpolation und Approximation Problemstellung: Es soll eine Funktion f(x) approximiert werden, von der die Funktionswerte nur an diskreten Stellen bekannt sind. 5. Das Interpolationspolynom y y = P(x) y = f(x) f 0 f f f 3 x 0 x x x 3 x Gegeben seien die Stützstellen x 0, x,..., x n (x i x j ) und die Stützwerte f 0 = f(x 0 ), f = f(x ),..., f n = f(x n ). Gesucht ist ein Polynom n-ten Grades (Grad n) P n (x) = a 0 x n + a x n +... + a n x + a n, so dass gilt: P n (x 0 ) = f 0, P n (x ) = f,..., P n (x n ) = f n. Behauptung: Es gibt genau ein Polynom vom Grad n, das diese Aufgabe löst. Beweis: a) Eindeutigkeit: Annahme: Es gibt zwei Polynome P n (x), Q n (x) mit P n (x j ) = Q n (x j ) = f j, j = 0,...,n. Dann: gilt: D n (x) := P n (x) Q n (x) hat die n + verschiedenen Nullstellen x j, j = 0,...,n, und Grad D n n. Dies ist im Widerspruch zum Satz von Gauss ( Fundamentalsatz der Algebra ) b) Die Existenz wird mit der Lagrange-Darstellung bewiesen. A) Die Lagrange sche Darstellung Herleitung für n = 3: Es seien die vier Wertepaare (x 0,f 0 ), (x,f ), (x,f ), (x 3,f 3 ) gegeben. 49
5. Das Interpolationspolynom Definiert man l 0 (x) := c 0 (x x )(x x )(x x 3 ), c 0 0, gilt l 0 (x ) = l 0 (x ) = l 0 (x 3 ) = 0. Wir wählen c 0 so, dass l 0 (x 0 ) =, d.h. c 0 = (x 0 x )(x 0 x )(x 0 x 3 ). Damit ist l 0 (x) = (x x )(x x )(x x 3 ) (x 0 x )(x 0 x )(x 0 x 3 ). Analog erhält man l (x) = l (x) = l 3 (x) = (x x 0 )(x x )(x x 3 ) (x x 0 )(x x )(x x 3 ), (x x 0 )(x x )(x x 3 ) (x x 0 )(x x )(x x 3 ), (x x 0 )(x x )(x x ) (x 3 x 0 )(x 3 x )(x 3 x ). Es folgt, dass 0, i j l i (x j ) = δ ij =, i = j Wenn wir das Interpolationspolynom 3. Grades als P 3 (x) = f 0 l 0 (x) + f l (x) + f l (x) + f 3 l 3 (x). definieren, besitzt es die gewünschte Eigenschaft: P 3 (x j ) = f j, j = 0,,,3. Für ein allgemeines n lässt sich das Interpolationspolynom n-ten Grades wie folgt angeben. Definition: Das Polynom P n (x) = n f i l i (x) i=0 mit l i (x) := n j=0 j i x x j x i x j, i = 0,,...,n, heisst Interpolations-Polynom n-ten Grades (Lagrange-Darstellung). B) Die baryzentrische Darstellung Da die Auswertung des Lagrange-Polynoms für praktische Zwecke viel zu aufwendig ist, sucht man eine für numerische Zwecke geeignetere Form des Interpolationspolynoms. 50
5. Das Interpolationspolynom Wir definieren die sogenannten Stützkoeffizienten λ i := nj=0 j i, i = 0,,...,n, (x i x j ) die nur von den Stützstellen x j abhängen und die Grössen µ i := λ i x x i, i = 0,,...,n, die von der Stelle x abhängen, wo zu interpolieren ist. Das Interpolationspolynom lässt sich dann für x x j schreiben als P n (x) = n µ i f i i=0. n µ i i=0 Begründung: Es gilt n l i (x) = µ i (x x k ). k=0 Daraus folgt P n x = n f i l i (x) = i=0 { n } µ i f i i=0 k=0 n (x x k ). Diese Beziehung gilt für beliebige f i. Da für f i, i = 0,,...,n, gilt dass P n (x), schliessen wir daher, dass n (x x k ) = k=0 n i=0 µ i. Vorteil der baryzentrischen Darstellung: Die Stützkoeffizienten λ i lassen sich ein für alle Mal berechnen. Danach ist die Auswertung von P n (x) billig. C) Der Algorithmus von Aitken-Neville Der Algorithmus von Aitken-Neville dient zur Auswertung von P n (x) an einer gegebenen Stelle x. Herleitung für n = 3: Gegeben seien die Stützwerte f i an den Stützstellen x i, i = 0,,,3. Gesucht ist der Wert des Interpolationspolynoms an der Stelle x, d.h P(x). (Wir lassen den Index n weg, da im Verfahren zusätzliche Indizes vorkommen.) 5
5. Das Interpolationspolynom Verfahren: Berechne das folgende Differenzenschema spaltenweise. x 0 : f 0 = P 0 x : f = P x : f = P x 3 : f 3 = P 3 P 0 P P 3 P 0 P 3 P 03 = P(x) wobei z.b. P = P + x x x x (P P ) P 3 = P 3 + x x 3 x x 3 (P P 3 ) P 03 = P 3 + x x 3 x 0 x 3 (P 0 P 3 ) Es gilt: Für k i ist P i k (x) gleich dem Interpolationspolynom (an der Stelle x) durch (x i,f i ),..., (x k,f k ). D) Der Fehler des Interpolationspolynoms Zu x gibt es im kleinsten die Zahlen x,x 0,x,...,x n enthaltenden Intervall eine Zahl ξ, so dass gilt: f(x) P n (x) = f(n+) (ξ) n (x x i ). (n + )! i=0 Beispiel: Lineare Interpolation im Intervall (x 0,x ) y f(x) P (x) x 0 x x = x 0 + h x 5
5. Splineinterpolation Der Fehler beträgt in diesem Fall f(x) P (x) = f (ξ)(x x 0 )(x x ). Sei f (x) M für x [x 0,x ]. Der Betrag der Funktion l(x) := (x x 0 )(x x ) nimmt das Maximum auf [x 0,x ] im Mittelpunkt x M = (x 0 + x ) an. Deshalb gilt: f(x) P (x) 8 h M. Bemerkung: Der Interpolationsfehler wird weitgehend durch den Term l(x) := n (x x i ) i=0 bestimmt. Für äquidistante Stützstellen x i = x 0 + ih und grössere Werte n hat l(x) zwischen seinen Nullstellen x i jeweils Extremalstellen mit gegen den Rand des Intervalls [x 0,x n ] stark zunehmenden Extremalwerten: y l(x) x Ausweg: speziell gewählte Stützstellen (Tschebyscheff) stückweise polynomiale Interpolation (Nachteil: unstetige Ableitungen) 5. Splineinterpolation Idee: Anstatt die Funktion f(x) (die an n + Stützpunkten gegeben ist) durch ein Polynom vom Grad n zu approximieren, approximiert man f(x) stückweise durch Polynome von niedrigerem Grad, und zwar so, dass die Übergänge glatt sind. Vorbereitung: Wir betrachten die sogenannte Hermite-Interpolation. Gegeben: Stützstellen x < x <... < x i < x i+ <... < x n Stützwerte f = f(x ),...,f i = f(x i ),...,f n = f(x n ) Ableitungen f = f (x ),...,f i = f (x i ),...,f n = f (x n ) 53
5. Splineinterpolation Gesucht: Ein Polynom P i (x) (i ist die Nummer, nicht der Grad!) im Intervall [x i,x i+ ], so dass gilt: P i (x i ) = f i, P i (x i+ ) = f i+ P i (x i) = f i, P i (x i+) = f i+ (5.) y f i+ f f f i f n f f fi f i+ f n x x x i x i+ x n x Das sind 4 Bedingungen. Daraus folgt, dass P i (x) ein Polynom 3. Grades ist (Grad 3). Wir definieren h i := x i+ x i und führen mittels der Transformation x = x i + h i t die neue lokale Variable t ein, t = (x x i )/h i. Definiert man Q i (t) := P i (x i + h i t) gilt P i (x) = Q i (x x i )/h i. Also erfüllt P i (x) die Bedingungen (5.) genau dann, wenn Q i (t) die folgenden Bedingungen erfüllt: Es gilt: denn Q i (0) = f i, Q i () = f i+ Q i (0) = h i f i, Q i () = h i f i+. Q i (t) = f i ( 3 t + t 3 ) + f i+ (3t t 3 ) + h i f i (t t + t 3 ) + h i f i+ ( t + t 3 ), Q i (0) = f i, Q i () = f i+ Q i (t) = f i ( 6 t + 6t ) + f i+ (6t 6 t ) + h i f i ( 4 t + 3t ) + h i f i+ ( t + 3t ). Setzt man t = 0 und t = in Q i (t) ein, erhält man Q i (0) = h i f i, Q i () = h i f i+. Definition: Hermite-Interpolationsfunktion g(x) := P i (x) für x [x i,x i+ ]. Wie man leicht durch Einsetzen verifizieren kann, lässt sich das Polynom Q i an einer festen Stelle t einfach durch ein Differenzenschema berechnen. Dies führt zum folgenden 54
5. Splineinterpolation Algorithmus: (Auswertung der Hermite Interpolationsfunktion g(x) für ein festes x). Bestimme den Index i, für den x i x < x i+ gilt.. h i := x i+ x i, t := x x i h i 3. Berechnung von Q i (t) mit dem Differenzenschema: a 0 = f i a = f i+ b = h i f i b 0 = a a 0 b = h i f i+ c 0 = b 0 b c = b b 0 d 0 = c c 0 Q i (t) = a 0 + (b 0 + (c 0 + d 0 t)(t ))t = g(x) Problem: Der Algorithmus ist nur durchführbar, wenn die f i aber im Allgemeinen nicht verfügbar. durch zusätzliche Bedingungen. Dies führt auf das Kon- Ausweg: "Bestimmen" der f i zept der Splines: bekannt sind; diese sind Forderung : P i (x i+) = P i+ (x i+), i =,...,n. Das ergibt n Bedingungen an die Unbekannten f,...,f n. ( ) ( Aus P i (x) = Q x xi i h i folgt P i (x) = Q x xi h i h i i ). Damit gilt also P i (x i+ ) = Q i () h i, P i+(x i+ ) = Q i+ (0) h. i+ Somit erhalten wir in der t-koordinate Forderung : Es gilt: Q i () h i = Q i+ (0) h. i+ Daraus folgt Q i (t) = f i ( 6 + t) + f i+ (6 t) + h i f i ( 4 + 6 t) + h i f i+ ( + 6 t) Q i () = 6f i 6 f i+ + h i f i + 4h i f i+ Q i+ (0) = 6 f i+ + 6f i+ 4 h i+ f i+ h i+ f i+. Damit erhalten wir als 55
5. Splineinterpolation Forderung : 6 (f i f i+ ) + f i + 4 f i+ = h i h i h i 6 h i+ Ordnet man die Terme und dividiert durch ergibt sich ( f i + + ) f i+ + ( f fi+ f i i+ = 3 h }{{} i h i h i+ h i+ h }{{}}{{} i }{{} b i a i b i+ für i =,,...,n. Die Forderung für die n Intervalle sieht also wie folgt aus. Forderung : (f i+ f i+ ) 4 h i+ f i+ h i+ f i+. c i + f i+ f i+ h i+ }{{} c i+ ), } {{ } d i+ b f + a f + b f 3 = d b f + a f 3 + b 3 f 4 = d 3.......... (5.) b n f n + a n f n + b n f n = d n Das sind n Unbekannte und n Gleichungen. Die Unbekannten f i, i =,...,n, sind dadurch nicht eindeutig bestimmt. Es fehlen zwei Gleichungen. Wir stellen daher noch eine. Forderung auf (vorgeschlagen von C. de Boor): Forderung : P (x) P (x) P n (x) P n (x). Bemerkung: Diese sogenannte not a knot condition von de Boor lässt sich auf Grund von Fehleruntersuchungen motivieren: bei Stützstellen mit gleichem Abstand h ist der Interpolationsfehler der Ordnung h 4. Aus P (x) P (x) folgt P (x) = P (x), P Gleichung impliziert... Q ()/h 3 =... Q (0)/h 3. Weiter gilt... Q i (t) = f i f i+ + 6h i f i + 6h i f i+, und damit erhalten wir Forderung : f h 3 f h 3 + f h + f h = f h 3 f 3 h 3 (x) = P + f h + f 3 h (x), P, (x) = P (x). Die letzte bzw. ( h f + h ) h f ( h f 3 c = c ). h h Addiert man zu dieser letzten Gleichung die mit /h multiplizierte oberste Gleichung von (5.), erhält man 56
5. Splineinterpolation h ( h + h ) ( f + + h h ) f = c ( h + h ) + c + c h. Diese Gleichung geteilt durch ( f + + ) h h h ( h + h) ergibt f = c + h h + h (c + c ). (5.) Analog erhält man ( + ) f n + f n = c n + h n h n h n h n h n + h n (c n + c n ) (5.) n Fügen wir die Gleichungen (5.) und (5.) n zu(5.) hinzu, erhalten wir n Gleichungen für die n Unbekannten f,...,f n. Bemerkung: Das zu lösende Gleichungssystem für die Unbekannten f,...,f n hat tridiagonale Gestalt und kann daher besonders effizient gelöst werden. Die Spline-Interpolationsfunktion an der Stelle x kann nun also wie folgt berechnet werden:.. Bestimme die Lösung f,...,f n des tridiagonalen Gleichungssystems (5.), (5.), (5.) n.. Bestimme den Wert der Splinefunktion in x nach Hermite. Ausführlich aufgeschrieben führt das zum folgenden 57
5. Splineinterpolation Algorithmus: (Auswertung der Spline-Interpolationsfunktion g an der Stelle x). Bestimme die Lösung f des linearen Gleichungssystems Af = d, wobei mit A := b a b a b b a b 3......... b i := h i, i =,...,n b n a n b n a i := (b i + b i+ ), i =,...,n c i := f i+ f i h i, i =,...,n d := c + h h + h (c + c ) d i := 3(c i + c i ), i =,...,n d n := c n + a n b n h n h n + h n (c n + c n ).. Bestimme den Index i für den gilt x i x x i+. 3. Setze t = x x i h i. 4. Berechne Q i (t) = a 0 + (b 0 + (c 0 + d 0 t)(t ))t, wobei a 0 = f i b = h i f i c 0 = b 0 b a = f i+ b 0 = a a 0 d 0 = c c 0. b = h i f i+ c = b b 0 5. g(x) = Q i (t). 58
5. Splineinterpolation Bemerkungen: Die Matrix des linearen Gleichungssystems (5.), (5.), (5.) n ist strikt diagonaldominant (d.h. a ii > n j= a ij, i =,...,n) mit positiven Diagonalelementen. j i Daraus folgt nach dem Kriterium von Gerschgorin, dass ihre Eigenwerte alle positiv sind. Damit ist die Matrix regulär und es folgt, dass die f i eindeutig bestimmt sind und damit auch die Spline-Interpolationsfunktion. Zudem folgt daraus, dass die Lösung dieses tridiagonalen Gleichungssystems mit dem Gaussalgorithmus mit Diagonalstrategie gelöst werden kann. Dabei soll die Symmetrie berücksichtigt werden. Die f i sind die Ableitungen der Splinefunktion an den Stellen x i (und daher Näherungen zu den Ableitungen von f(x) an diesen Stellen). Der Interpolationsfehler der Spline-Interpolationsfunktion ist von der Ordnung O(h 4 ) (bei gleichabständigen Intervallen h i h, i =,...,n); die Abweichung in der. Ableitung ist von der Ordnung O(h 3 ). Wir haben hier die kubische Spline-Interpolation behandelt. Es gibt auch Spline- Interpolation höherer Ordnung. Andere Randbedingungen Anstelle der not a knot -Bedingung kann man auch andere Bedingungen stellen. Wir erwähnen zwei: i) Forderung : P (x ) = P n (x n ) = 0 Man nennt das eine natürliche Randbedingung, und sie führt auf die natürliche Spline-Interpolationsfunktion. ii) Forderung : P (x ) = P n (x n ) zur Interpolation einer periodischen Funktion. Das in diesem Fall f = f n und f = f n, gibt es nur n Unbekannte f,...,f n, und es braucht nur eine zusätzliche Gleichung zu (5.). Beispiel für eine periodische Spline-Interpolationsfunktion: Wir betrachten f(x) = sin(πx) und geben die folgenden Stützstellen und Stützwerte vor: x 0 3 f i 0 0 0 Damit ist n = 5, h =. 59
5. Splineinterpolation Forderung : Mit Q (0) h = Q n () h Q (0) = 6f + 6f 4hf hf Q n () = 6f n 6f n + hf n + 4hf n, Division durch h und Benutzen, dass f n = f und f n = f äquivalent zu gilt, ist die Forderung 8f + f + f n = 6 h (f f n ). Fügt man diese Gleichung oben bei (5.) an, erhält man das lineare Gleichungssystem 8 0 8 0 0 8 0 8 f f f 3 f 4 = 4 0 4 0. Dieses besitzt die Lösung 3 f 0 =. 3 0 Die exakten Ableitungen von f(x) an diesen Stützstellen sind π,0, π,0. 60