Numerik I

K. Böhmer, \underline{B. Schmitt}

Sommer-Semester 1998

Inhaltsverzeichnis

1 Einleitung 3

2 Lineare Gleichungssysteme 7 2.1 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Hilfsmittel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Der Gauß-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

LR-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Pivotisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4 Fehlerausbreitung, Kondition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Schranken für κ(A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5 Iterationsverfahren für lineare Gleichungssysteme . . . . . . . . . . . . . . . . . . 23

Gesamt- und Einzelschrittverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Relaxationsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3 Polynom-Interpolation 31 3.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 Lagrange-Interpolation für Polynome . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3 Newton-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.4 Entwicklung nach Orthogonalpolynomen, Drei-Term-Rekursionen . . . . . . . . . 39 3.5 Vergleich der Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.6 Interpolationsfehler, optimale Knoten . . . . . . . . . . . . . . . . . . . . . . . . 43

4 Spline-Funktionen 48 4.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2 Existenz des Interpolations-Splines . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3 Konvergenz des Interpolations-Splines . . . . . . . . . . . . . . . . . . . . . . . . 52 4.4 Spline-Darstellungen, Beziér-, B-Splines . . . . . . . . . . . . . . . . . . . . . . . 55 4.5 Lokale Spline-Approximationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5 Numerische Integration und Differentiation 62

5.1 Quadratur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.2 Newton-Cotes-Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.3 Gauß-Quadratur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.4 Adaptive Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.5 Richardson-Extrapolation, Romberg-Verfahren . . . . . . . . . . . . . . . . . . . 71 5.6 Numerische Differentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6 Nichtlineare Gleichungssysteme 78

6.1 Nullstellen einer skalaren Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Newton-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Bisektionsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Sekantenverfahren, Regula falsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Interpolationsverfahren höherer Ordnung . . . . . . . . . . . . . . . . . . . . . . 85

6.2 Newtonverfahren im R^{n} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7 Rundungsfehler - Analyse 90 7.1 Zahldarstellung und Rundungsfehler . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.2 Rundungsfehleranalyse einiger Algorithmen . . . . . . . . . . . . . . . . . . . . . 94

Approximationsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Gauß-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Fixpunkt-Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Index 98

1 Einleitung

Die Numerik befaßt sich mit der “Lösung” analytisch-mathematischer Modelle auf Computern. Da die dabei verwendeten Computer-Modelle zwar meist groß, aber endlich sind, kann man nur Näherungen solcher Lösungen berechnen. Eine wesentliche Aufgabe der Numerik ist daher die Betrachtung von Fehlern. Allerdings stellt der Übergang zum numerischen Modell nur der allerletzte Schritt bei der Modellierung realer Situationen dar, wobei in der Regel in jeder Stufe schon Vereinfachungen stattfinden.

Modellierungs-Schema:

Reale Situation, Beschreibung durch physikalische Gesetze, Experiment

Entwicklung mathematischer Modelle, meist unter Vereinfachungen

Mathematische Analyse: Existenz? Eindeutigkeit? Qualitative Aussagen

Theorie

[figure]

Numerik

Explizite Lösung (Spezialfälle), Reihenentwicklungen; Eigenschaften (∀ Lösungen,..)

Entwicklung numerischer Verfahren mit Fehleranalyse

Lösungsdiskussion, asymptotische Aussagen, Parameterabhängigkeit (Optimierung?)

Implementierung, Lösung vieler Einzelfälle, Simulation, Optimierung Beispiel Pendel

[figure]

φ′′ + ω^{2} sin φ = 0, ohne Reibung etc.

AWP eindeutig lösbar, RWP?

[figure]

Approx. φ′′, ; Fehler ∼ h^{2}

φ′′ +ω^{2}φ = 0, ; ‘Frequenz’

Subprobleme: Gleichungssysteme, ..

Beispiel: Physikalisches Pendel

Kräftegleichgewicht: Kraft K = −G sin φ, Gewicht G = mg. Newtonsches Gesetz: mLφ′′(t) = −G sin φ. Mit ω^{2} := g/L folgt für den Winkel φ(t) die Gleichung:

φ′′(t) + ω^{2} sin φ(t) = 0.  (1.0.1) [figure: φ; G; K; L]

Bei dieser Modellierung wurden Luftwiderstand, Reibung, etc. vernachlässigt. Die Gleichung (1.0.1) ist eine Differentialgleichung und beschreibt die Menge aller möglichen Bewegungen des Pendels. Einzelne Lösungen werden daraus ausgewählt durch zusätzliche Bedingungen.

Beim Anfangswertproblem (AWP) sind Start-Winkel und -Geschwindigkeit bekannt, φ(0) = α, φ′(0) = β. Beim Randwertproblem (RWP) werden Start- und End-Winkel zu bestimmten Zeiten vorgegeben, φ(0) = α, φ(T) = γ (α = γ = 0: Schwingung mit Halb-Periode T). Die Lösbarkeit (Existenz) des Anfangswertproblems folgt aus dem Satz von Picard-Lindelöf, allerdings gilt praktisch:

⟹ Weder AWP noch RWP zur Gleichung (1.0.1) sind explizit lösbar! ⟸ Konsequenz: Approximationsverfahren für die Lösung sind erforderlich. Mögliche Ansätze:

• mathematisch: Für ‘kleine’ Winkel φ gilt sin φ ≅ φ. Statt (1.0.1) wird die Differential-

gleichung

φ′′(t) + ω^{2}φ(t) = 0 ⇒ φ(t) = a cos ωt + b sin ωt,  (1.0.2)

mit bekannter allgemeiner Lösung verwendet.

• numerisch: Die ‘Differentiale’ werden ersetzt durch endliche Differenzen. Analysis:

\frac{dφ}{dt}(t) = φ′(t) ≅ \frac{φ(t + h) − φ(t)}{h}, φ′′(t) ≅ \frac{φ(t + h) − 2φ(t) + φ(t − h)}{h^{2}}.  (1.0.3)

Zur numerischen Approximation wird h ’klein’, aber fest, gewählt, und Werte nur in endlich vielen Punkten t_{j} = jh, j = 0, …, m mit h = T/m verwendet:

\overline{}0  T

Dies führt für Näherungen y_{j} ≅ φ(t_{j}) auf Gleichungen

0 = φ′′(t_{j}) + ω^{2} sin φ(t_{j}) ≅ \frac{y_{j−1} − 2y_{j} + y_{j+1}}{h^{2}} + ω^{2} sin y_{j} =^{!} 0.  (1.0.4)

Zusammen mit den obigen Randbedingungen y_{0} = α, y_{m} = γ ist dies ist ein nichtlineares Gleichungssystem im R^{m−1}. Der lineare Fall wird noch einmal ausführlicher diskutiert.

Beispiel 1.0.1 Differenzenverfahren für lineares Randwertproblem:

\begin{matrix}φ′′(t) + f(t)φ(t) = g(t) \\ φ(0) = α, φ(1) = γ \end{matrix}  (1.0.5)

Die Ersetzung der zweiten Ableitung nach (1.0.3) führt hier mit den Bezeichnungen

y_{j} ≈ φ(t_{j}), t_{j} = j · h, h = \frac{1}{m}, f_{j} := f(t_{j}), g_{j} := g(t_{j}),

auf das lineare Gleichungssystem

\frac{y_{j+1} − 2y_{j} + y_{j−1}}{h^{2}} + f_{j}y_{j} = g_{j} j = 1, ⋯, m − 1
y_{0} = α, y_{m} = β.  (1.0.6)

Ausführlich ausgeschrieben sieht man die Struktur

( \begin{matrix}−2 + h^{2}f_{1} & 1 & 0 & ⋯ & 0 \\ 1 & −2 + h^{2}f_{2} & 1 \\ ⋮ & ... & ... & ... & ⋮ \\ & & 1 & −2 + h^{2}f_{m−2} & 1 \\ 0 & ⋯ & 0 & 1 & −2 + h^{2}f_{m−1} \end{matrix} ) ( y_{1} ; y_{2} ; ⋮ ; y_{m−2} ; y_{m−1} ) = ( h^{2}g_{1} − α ; h^{2}g_{2} ; ⋮ ; h^{2}g_{m−2} ; h^{2}g_{m−1} − β ) .

Die Matrix hat eine sehr spezielle Gestalt, die einer Tridiagonalmatrix. Matrizen ähnlicher Form treten auch in anderen Situationen auf und spielen daher im weiteren eine wesentliche Rolle.

Die numerische Lösung der Differenzengleichung (1.0.4) führt auch im Bezug zum Ausgangsproblem auf folgende Fragen:

• Auflösung nichtlinearer Gleichungssysteme (→ §6), dabei: Auflösung linearer Gleichungssysteme (→ §2),

• Wie genau sind die Näherungen y_{k} ≅ φ(t_{k}) theoretisch? (→ Numerik IIB)

• Kann φ(t) überall in [0, T] approximiert werden? (→ §3,4)

• Berechnung von sin y? (→ §3)

• Reelle Zahlen werden im Computer approximiert, wie wirken sich Rundungsfehler und ihre Fortpflanzung auf die Ergebnisse aus? (→ §7).

Fehlerbehandlung Da überall in der Numerik mit Approximationen gearbeitet wird und insbesondere Computer reelle Zahlen nicht exakt darstellen können, hat die Analyse von Fehlern und der Versuch, sie zu beherrschen, eine zentrale Bedeutung. Zugänge sind:

• theoretische Analyse der Fehlerquellen und ihrer Auswirkungen, damit Konstruktion und Verwendung von Fehlerschätzungen in den Verfahren. Ein Versagen der Verfahren ist (hoffentlich nur in Ausnahmefällen) möglich!

• in Teilbereichen (nicht-/ lineare Algebra) sind exakte Fehlereinschließungen auf Computern durchführbar durch sichere Arithmetiken (Programmbibliothek ACRITH, Sprache PASCAL-SC): Exakte Aussagen, aber teuer mit begrenztem Einsatzbereich.

Informationsquellen Für die Lösung praktischer Probleme durch numerische Verfahren sollte man außer den üblichen Literatur-Quellen auch vorhandene Software heranziehen. Ein Überblick: Form Art

Namen/Quellen

Literatur klassisch:

Lehrbücher und Zeitschriften Bibliotheken der Uni-

versität

Literatur elektronisch:

Kurzreferate zu mathematischen Veröffentlichungen erscheinen schon lange gedruckt im ’Zentralblatt für Mathematik’ und den ’Mathematical Reviews’. Mittlerweile kann diese Information in elektronischen Literatur-Datenbanken (z.B. auf CD-ROM) mit Computerunterstützung ausgewertet werden CompactMATH, Math-Sci auf UB-Server

Software kommerziell:

Kommerzielle Software-Bibliotheken (Unterprogramme) mit fertigen Lösungsalgorithmen für numerische Standardprobleme NAG, IMSL auf Großrechner, MATLAB

Software im Internet:

Bibliotheken/Spezial-Software für viele Probleme (BLAS, LINPACK, LAPACK) elib (elib.zib-berlin.de), Netlib (www.netlib.org)

Da nur in einfachen Ausnahmefällen allgemein einsetzbare Standard-Programme existieren, erfordert die Verwendung solcher Bibliotheken Numerik-Kenntnisse, um Auswahl und Einsatz sinnvoll durchführen zu können.

2 Lineare Gleichungssysteme

Viele Näherungsverfahren der Numerik bei Differentialgleichungen (vgl. Beispiel 1.0.1), Integralgleichungen, etc., führen auf Lineare Gleichungssysteme (\underline{LGS}e). In einigen Anwendungen können Modelle direkt als LGSe formuliert werden. Realistische Aussagen erhält man dabei meist nur für große Modelldimensionen.

2.1 Beispiele

Beispiel 2.1.1 Input-Output-Analyse: Zur Analyse der Wechselwirkungen in einer Volkswirtschaft und der Auswirkungen geänderter Nachfrage nimmt man eine Unterteilung in Produktionsbereiche P_{j}, j = 1, …, n, vor. Mit y_{j} wird die Endnachfrage der Verbraucher nach Produkten aus P_{j} bezeichnet, zusammengefaßt zu y ∈ R^{n}. Bei der Bestimmung der dazu erforderlichen Produktionsmengen x_{i} (in P_{i}) muß berücksichtigt werden, daß zur Herstellung eines

[figure: P_{1}, x_{1}; P_{2}, x_{2}; P_{3}, x_{3}; y_{2}; y_{1}; y_{3}; y]

Produktes in P_{i} Teile aus anderen Bereichen benötigt werden (Auto: Maschinen, Stahl, Kunststoff, Elektroteile). Diese Beziehungen faßt man in einer Bedarfsmatrix B = (b_{ij}) zusammen:

b_{ij} : \{ \begin{matrix}Bedarf an Produkten aus P_{i} zur Produktion einer \\ Einheit (Geldwert) in P_{j}, b_{ij} ≥ 0. \end{matrix}  (2.1.1)

Die benötigte Gesamtproduktion x = (x_{i}) ∈ R^{n} ergibt sich also aus der Bilanzgleichung

x = \underbrace{y}_{End-Nachfrage} + \underbrace{Bx}_{interne Nachfrage}
⇔  x − Bx = y ⇔ (I − B)x = y.  (2.1.2)

Somit beschreibt die Matrix (I − B)^{−1} die Auswirkungen einer sich ändernden Endnachfrage y.

Bemerkung: Auch andere Probleme führen auf Bilanzgleichungen wie in Beispiel 1. In der Computergrafik, z.B., ergibt sich die absolute Helligkeit und Farbe eines Flächenelements aus der direkt und indirekt empfangenen Lichtmenge (Radiosity-Verfahren).

Beispiel 2.1.2 Elektrisches Netzwerk: Netzwerke ohne kapazitive, induktive oder aktive Bauteile führen auf LGSe. Zur Berechnung werden die angelegten Einzelspannungen U_{k} mit den Teilwiderständen R_{k} und den Teilströmen I_{k} durch die Kirchhoff’schen Regeln verknüpft:

a) Knotenregel: Unter Beachtung der Richtung aller auf einen Knoten zu- bzw. abfließenden Ströme I_{k} gilt für jeden Knoten

∑_{k} I_{k} = 0

b) Maschenregel: Für jeden geschlossenen Teilstromkreis gilt (unter Berücksichtigung der Richtungen)

∑_{k} I_{k}R_{k} = ∑_{k} U_{k}

[figure: A; B; C; D; R_{1}; R_{3}; R_{4}; R_{6}; R_{2}; R_{5}; I_{1}; I_{4}; I_{6}; I_{3}; I_{5}; I_{2}; U]

Für das abgebildete Netzwerk ergibt sich so das folgende LGS:

Knoten  \begin{aligned}A : & −I_{1} & +I_{2} & & & & +I_{6} & = & 0 \\ B : & & −I_{2} & +I_{3} & & −I_{5} & & = & 0 \\ C : & & & & −I_{4} & +I_{5} & −I_{6} & = & 0 \\ D : & I_{1} & & −I_{3} & +I_{4} & & & = & 0 \end{aligned}  (2.1.3)

Maschen \begin{aligned}ABC : & & I_{2}R_{2} & & & −I_{5}R_{5} & −I_{6}R_{6} & = & U \\ ADB : & I_{1}R_{1} & +I_{2}R_{2} & +I_{3}R_{3} & & & & = & U \\ ADC : & I_{1}R_{1} & & & −I_{4}R_{4} & & +I_{6}R_{6} & = & 0 \\ BDC : & & & −I_{3}R_{3} & −I_{4}R_{4} & −I_{5}R_{5} & & = & 0 \end{aligned}  (2.1.4)

Die Gleichungen sind sicher nicht linear unabhängig, die linear abhängigen Gleichungen sind zu eliminieren. Eine Addition der Gleichungen eins, zwei, drei, vier bzw. fünf, sieben und Subtraktion von sechs und acht ergibt jeweils null. Damit bleiben sechs Gleichungen mit sechs Unbekannten. In Matrixform geht (2.1.3,2.1.4) so über in

\begin{matrix}A \\ B \\ C \\ ACB \\ ADB \\ ADC \end{matrix} ( \begin{matrix}−1 & 1 & 0 & 0 & 0 & 1 \\ 0 & −1 & 1 & 0 & −1 & 0 \\ 0 & 0 & 0 & −1 & 1 & −1 \\ 0 & R_{2} & 0 & 0 & −R_{5} & −R_{6} \\ R_{1} & R_{2} & R_{3} & 0 & 0 & 0 \\ R_{1} & 0 & 0 & −R_{4} & 0 & R_{6} \end{matrix} ) ( \begin{matrix}I_{1} \\ I_{2} \\ I_{3} \\ I_{4} \\ I_{5} \\ I_{6} \end{matrix} ) = ( \begin{matrix}0 \\ 0 \\ 0 \\ U \\ U \\ 0 \end{matrix} )  (2.1.5)

Bei allen Beispielen stellen sich sofort folgende Fragen:

— Wann besitzen die LGSe eine Lösung (hinreichende Kriterien)?

— Wie löst man solche LGSe numerisch günstig auf (für große Dimensionen, bei spezieller Struktur)?

— Spiegeln sich spezielle Eigenschaften der rechten Seite, z.B. positive Nachfrage y bzw. Spannung U in Beispiel 1 bzw. 2, auch in der Lösung x bzw. (I_{1}, …, I_{6}) wieder?

2.2 Hilfsmittel

Im R^{n} bzw. C^{n} (Sammelbegriff K^{n}) werden Spaltenvektoren betrachtet

x = ( x_{1} ; ⋮ ; x_{n} ) .

Eine wichtige Klasse von Normen sind, mit p ∈ R, p ≥ 1, die Hölder-Normen

∥x∥_{p} := (∑_{j=1}^{n} |x_{j}|^{p})^{1/p} ,  (2.2.1)

mit den wichtigsten Vertretern

∥x∥_{1} := ∑_{j=1}^{n} |x_{j}|  Summennorm  (2.2.2)
∥x∥_{2} := \sqrt{∑_{j=1}^{n} |x_{j}|^{2}}  Euklidnorm  (2.2.3)
∥x∥_{∞} := max_{j=1}^{n} |x_{j}|,  Maximumnorm  (2.2.4)

Mit diesen Normen ∥ · ∥_{p} ist K^{n} ein Banachraum. Da alle Normen im K^{n} äquivalent sind, existieren Konstanten mit

∥x∥_{p} ≤ c_{pq}∥x∥_{q} ∀x ∈ K^{n}, p, q ≥ 1.

Diese c_{pq} hängen im allgemeinen aber von n ab. Lineare Abbildungen von K^{n} → K^{m} werden (in der Einheits-Basis) durch Matrizen

A = (a_{ij})_{i=1,j=1}^{m,n} ∈ K^{m×n}

beschrieben. Jedes Paar von Vektornormen in K^{m}, K^{n} (mit gleichem Index p) induziert eine zugehörige Matrixnorm, die mit dem gleichen Symbol bezeichnet wird

∥A∥_{p} := sup_{x≠0} \frac{∥Ax∥_{p}}{∥x∥_{p}} = sup_{∥x∥_{p}=1} ∥Ax∥_{p}.  (2.2.5)

In (2.2.5) wird das Supremum als Maximum angenommen (Grund?). Die durch (2.2.2ff) induzierten Normen sind:

∥A∥_{∞} =  max_{i=1}^{m} ∑_{j=1}^{n} |a_{ij}|  Zeilensummennorm,  (2.2.6)
∥A∥_{1} =  max_{j=1}^{n} ∑_{i=1}^{m} |a_{ij}|  Spaltensummennorm,  (2.2.7)
∥A∥_{2} = ϱ(A^{∗}A)^{1/2} = \sqrt{max_{j=1}^{n} λ_{j}(A^{∗}A)} Spektralnorm,  (2.2.8)

wobei λ_{j}(A^{∗}A) die Eigenwerte von A^{∗}A sind und A^{∗} = Ā^{T}. Eine Matrixnorm heißt verträglich mit den Vektornormen, wenn gilt

∥Ax∥ ≤ ∥A∥∥x∥ ∀x ∈ K^{n}, A ∈ K^{m×n}.  (2.2.9)

Als obere Schranke für ∥A∥_{2} betrachtet man oft eine einfachere, die

∥A∥_{F} := (∑_{i=1}^{m} ∑_{j=1}^{n} |a_{ij}|^{2})^{1/2}  Frobeniusnorm.  (2.2.10)

Sie ist verträglich mit der Euklidnorm, denn

∥Ax∥_{2} ≤ ∥A∥_{F} ∥x∥_{2}.

Allerdings ist sie nicht die induzierte Norm, da z.B. ∥I∥_{F} = \sqrt{n} > ∥I∥_{2} = 1. Mit I wird die Einheitsmatrix, I = (δ_{ij}) bezeichnet. Für induzierte Nomen und für ∥·∥_{F} gilt die Produktformel

∥AB∥ ≤ ∥A∥ ∥B∥  (2.2.11)

In dieser Vorlesung werden nur Normen benutzt, die (2.2.11) erfüllen. Für viele Überlegungen zu quadratischen Matrizen A ∈ K^{n×n} ist der Spektralradius

ϱ(A) := max{|λ_{j}(A)| : λ_{j}(A) EW zu A}  (2.2.12)

eine wichtige Größe. Wegen ϱ ( \begin{matrix}0 & 1 \\ 0 & 0 \end{matrix} ) = 0 ist ϱ(A) sicherlich keine Norm. Der folgende Satz zeigt aber, daß der Spektralradius eine untere Schranke für jede beliebige Matrixnorm ist, sich von geeigneten Normen beliebig wenig unterscheidet und für diagonalisierbare Matrizen sogar gleich einer Norm sein kann. Da hier spezielle Matrixtypen angesprochen werden werden Definitionen und Eigenschaften in Bezug auf die Jordan-Normalform kurz zusammengestellt.

Eigenschaft  Definition  Jordan-Normalform A = S^{−1}ΛS
A diagonalisierbar  ∃ Eigenvektor-Basis  Λ diagonal
A normal  A^{∗}A = AA^{∗}  Λ komplex diagonal, S unitär: S^{∗} = S^{−1}
A hermitesch  A^{∗} = A  Λ reell diagonal, S unitär

A herm.positiv definit A^{∗} = A, x^{∗}Ax > 0∀x ≠ 0 Eigenwerte positiv reell

Satz 2.2.1 a) Für jede Matrixnorm ∥ · ∥ gilt

ϱ(A) ≤ ∥A∥.

b) Für jede Matrix A und jedes ε > 0 existiert eine (spezielle) Norm mit

∥A∥_{M} ≤ ϱ(A) + ε.  (2.2.13)

c) Für diagonalisierbare Matrizen A kann in (2.2.13) ε = 0 gewählt werden, für hermitesche, reell-symmetrische und normale Matrizen gilt ∥A∥_{2} = ϱ(A).

Beweis a) x sei Eigenvektor von A ⇒ |λ|∥x∥ = ∥λx∥ = ∥Ax∥ ≤ ∥A∥∥x∥.

b) Die Jordan-Normalform von A sei

Λ = SAS^{−1} = ( \begin{matrix}λ_{1} & δ_{1} \\ & λ_{2} & δ_{2} \\ . & . & . \\ & & & λ_{n} \end{matrix} )

mit δ_{i} ∈ {0, 1}, i = 1, …, n−1. Eine weitere Ähnlichkeitstransformation mit der Diagonalmatrix

P = ( \begin{matrix}ε \\ & ε^{2} \\ & & . & . & . \\ & & & & & ε^{n} \end{matrix} )

führt Λ über in

Λ̃ = P^{−1}ΛP = (P^{−1}S)A(S^{−1}P).

Da Λ̃ die gleiche Hauptdiagonale wie Λ, in der Nebendiagonale aber Elemente εδ_{j} hat, gilt

∥Λ̃∥_{∞} = \{ \begin{matrix}max_{j=1}^{n}\{|λ_{j}| + ε|δ_{j}|\} ≤ ϱ(Λ̃) + ε = ϱ(A) + ϵ, & wenn ein δ_{j} ≠ 0, \\ max_{j=1}^{n}\{|λ_{j}|\} = ϱ(Λ̃) = ϱ(A), & wenn alle δ_{j} = 0. \end{matrix}

Für die Matrixnorm

∥B∥_{M} := ∥MBM^{−1}∥_{∞}, M := P^{−1}S,

gilt also b). Bei diagonalisierbaren Matrizen ist δ_{j} ≡ 0. Dies zeigt die erste Behauptung in c). Die in c) genannten Spezialfälle mit der Norm ∥·∥_{2} folgen aus der Orthogonalität der Eigenvektoren bei normalen Matrizen, d.h., aus S^{−1} = S^{∗}. Dann ist ∥S^{−1}ΛS∥_{2} = ∥Λ∥_{2}.

Der Satz erleichtert folgende Regularitätsaussage für Matrizen der Form A = I − B.

Satz 2.2.2 (Neumannreihe) Unter der Voraussetzung

ϱ(B) < 1  (2.2.14)

a) ist das Gleichungssystem (I − B)x = b eindeutig lösbar,

b) gilt (I − B)^{−1} = ∑_{j=0}^{∞} B^{j},

c) gibt es eine Matrixnorm so, daß ∥B∥ < 1 ist. Für diese gilt

∥(I − B)^{−1}∥ ≤ \frac{1}{1 − ∥B∥}.  (2.2.15)

Bemerkung: Dieser Satz wird für Störungsaussagen sehr häufig benutzt, (2.2.15) gilt natürlich in jeder Norm, für die ∥B∥ < 1 ist.

Beweis Da I − B regulär ist genau dann, wenn die Gleichung x = Bx nur die triviale Lösung x = 0 hat, d.h. λ = 1 kein EW von B ist, folgt die Existenz von (I − B)^{−1} aus (2.2.14). Mit den Teilsummen ∑_{k=0}^{m} B^{k} gilt

S_{m} := (I − B) ∑_{k=0}^{m} B^{k} = I − B + B − B^{2} + … − B^{m+1} = I − B^{m+1}.

Nach Satz 2.2.1 existiert eine Norm mit ∥B∥ < 1, da ϱ(B) < 1. In dieser Norm gilt ∥S_{m} − I∥ = ∥B^{m+1}∥ ≤ ∥B∥^{m+1} → 0 für m → ∞ und somit S_{m} → I, also

S_{m} → (I − B) ∑_{k=0}^{∞} B^{k} = I, m → ∞.

Durch Betrachtung von (I − B)^{−1}S_{m} folgt die Behauptung. Außerdem ist

∥(I − B)^{−1}∥ = ∥ ∑_{k=0}^{∞} B^{k}∥ ≤ ∑_{k=0}^{∞} ∥B∥^{k} = \frac{1}{1 − ∥B∥}.

2.3 Der Gauß-Algorithmus

Zur Lösung von linearen Gleichungssystemen

∑_{j=1}^{n} a_{ij}x_{j} = b_{i}, i = 1, …, n ⇔ Ax = b,  (2.3.1)

A ∈ K^{n×n}, gibt es sowohl direkte als auch iterative Verfahren. Bei den direkten Verfahren formt man das gegebene System in einer endlichen Anzahl von Schritten in eine leicht auflösbare Form um, ändert also insbesondere die Matrix A. Bei iterativen Verfahren (vgl. §2.5) konstruiert man dagegen eine Folge von Näherungen, die gegen die Lösung konvergiert. Hierbei wird die Matrix nicht verändert, was in vielen Fällen (”dünnbesetzte” Matrix) vorteilhaft sein kann.

Der Gauß-Algorithmus ist das Standardverfahren zur direkten Auflösung und beruht auf der Beobachtung, daß die Lösung x von (2.3.1) unverändert bleibt, wenn Gleichungen addiert oder subtrahiert werden (allgemein: Bildung von Linearkombination). Ziel ist die Konstruktion eines einfach lösbaren Systems in Dreieckform:

\begin{matrix}r_{11}x_{1} & +r_{12}x_{2} & + … & +r_{1n}x_{n} & = & b′_{1} \\ & r_{22}x_{2} & + … & +r_{2n}x_{n} & = & b′_{2} \\ & & ... & ⋮ & & ⋮ \\ & & & r_{nn}x_{n} & = & b′_{n} \end{matrix} \} ⇔ Rx = b′.  (2.3.2)

Dieses kann, beginnend mit x_{n}, schrittweise aufgelöst werden, falls alle r_{ii} ≠ 0 sind. Die Matrix A sei im folgenden regulär. Dann erhält man ein solches Dreiecksystem (2.3.2) in n−1 Schritten auf folgende Weise.

1. für a_{11} = 0 wird eine Zeile mit a_{k1} ≠ 0 gesucht und diese dann mit der ersten vertauscht (Pivot-Schritt, k-te Zeile = Pivot-Zeile);

2. es wird dasjenige Vielfache der ersten Zeile zur i-ten Zeile (i > 1) addiert, das dort den Koeffizienten bei x_{1} zu Null macht (Eliminationsschritt, Faktor −a_{i1}/a_{11}). Nach Behandlung aller Zeilen i = 2, …, n geht das LGS über in die Form

A^{(2)}x = b^{(2)} mit A^{(2)} = ( \begin{matrix}a_{11}^{(2)} & a_{12}^{(2)} & … & a_{1n}^{(2)} \\ 0 & a_{22}^{(2)} & … & a_{2n}^{(2)} \\ ⋮ & ⋮ & ... & ⋮ \\ 0 & a_{n2}^{(2)} & … & a_{nn}^{(2)} \end{matrix} )

3. die Schritte 1 und 2 werden auf das Restsystem angewendet mit

B^{(2)} := ( \begin{matrix}a_{22}^{(2)} & … & a_{2n}^{(2)} \\ ⋮ & ... & ⋮ \\ a_{n2}^{(2)} & … & a_{nn}^{(2)} \end{matrix} ) .  (2.3.3)

4. Nach n−1 Schritten mit Matrizen A^{(1)} := A, A^{(2)}, …, A^{(n−1)} ergibt sich ein Dreicksystem (2.3.2) mit R = A^{(n)}, b′ = b^{(n)}, das sich einfach auflösen läßt.

Die Eliminationskoeffizienten

l_{ij} := \frac{a_{ij}^{(j)}}{a_{jj}^{(j)}}

haben eine besondere Bedeutung, die später erläutert wird. Man speichert sie bei Durchführung des Algorithmus an die freiwerdenden Plätze der a_{ij}^{(j+1)} = 0 (i > j).

Algorithmus 2.3.1 Gauß-Algorithmus ohne Pivotisierung, durchgeführt im Speicherplatz der Originalmatrix A (d.h. l_{ij} ↦ a_{ij}),

für j := 1, …, n − 1:
für i := j + 1, …, n:
l_{ij} := a_{ij}/a_{jj}; b_{i} := b_{i} − l_{ij}b_{j};
für k := j + 1, …, n: a_{ik} := a_{ik} − l_{ij}a_{jk};
x_{n} := b_{n}/a_{nn};
für i := n − 1, n − 2, …, 1:
x_{i} := (b_{i} − ∑_{j=i+1}^{n} a_{ij}x_{j})/a_{ii};

(2.3.4)

Beim Rechenaufwand werden alle arithmetischen Operationen gezählt (kurz FLOP: floating point operation), man gibt dabei aber meist nur den am schnellsten wachsenden Anteil an. Der Algorithmus enthält drei gestaffelte Schleifen (j, i, k), der Hauptaufwand entsteht daher in der 4. Zeile (innerste Schleife):

∑_{j=1}^{n−1} ∑_{i=j+1}^{n} ∑_{k=j+1}^{n} 2 FLOP = 2 ∑_{j=1}^{n−1}(n − j)^{2} = \frac{2}{3}n^{3} + O(n^{2}) FLOP.

Dieser Hauptanteil dient aber nur zur Umformung der Matrix A und kann bei einer erneuten Lösung des gleichen LGS Ay = c mit einer anderen rechten Seite c eingespart werden. Im obigen Algorithmus müssen dann nur die die rechte Seite b betreffenden Schritte (3. Zeile des Algor.) wiederholt werden. Dazu wurden die Größen l_{ij} gespeichert. Der Aufwand ist dann

∑_{j=1}^{n−1} 2(n − j) = n(n − 1) Operationen für b^{(n)}.

Die abschließende Auflösung des Dreiecksystems Rx = b^{(n)} benötigt ebenfalls

1 + ∑_{i=1}^{n−1}[1 + 2(n − i)] = n^{2} Operationen.

Rechenaufwand Der Gauß-Algorithmus benötigt i.w. \frac{2}{3}n^{3} arithmetische Operationen. Die nochmalige Auflösung mit neuer rechter Seite b erfordert nur 2n^{2} Operationen.

LR-Zerlegung

Die Umformung beim System A^{(j)}x = b^{(j)} in einem Eliminationsschritts ohne Pivotisierung,

für i = j + 1, …, n: ; b_{i}^{(j+1)} := b_{i}^{(j)} − l_{ij}b_{j}^{(j)}; ; für k := j + 1, …, n: ; a_{ik}^{(j+1)} := a_{ik}^{(j)} − l_{ij}a_{jk}^{(j)};

entspricht der Multiplikation dieses Systems mit einer speziellen Matrix:

A^{(j+1)}x = L_{j}^{−1}A^{(j)}x = L_{j}^{−1}b^{(j)} = b^{(j+1)},

wobei

L_{j}^{−1} = ( \begin{matrix}1 \\ & . & . & . \\ & & & & 1 \\ & & & & −l_{j+1,j} & 1 \\ & & & & ⋮ & & ... \\ & & & & −l_{nj} & & & 1 \end{matrix} ) = L_{j}^{−1} = I − l_{j}e_{j}^{T}, l_{j} := ( 0 ; ⋮ ; 0 ; l_{j+1,j} ; ⋮ ; l_{nj} ) .  (2.3.5)

Wegen e_{j}^{T}l_{j} = 0 (e_{j} = j-ter Einheitsvektor) gilt (I − l_{j}e_{j}^{T})(I + l_{j}e_{j}^{T}) = I, also L_{j} = I + l_{j}e_{j}^{T}. Somit wird die obere Dreieckmatrix R = A^{(n)} erzeugt durch Multiplikation mit L-Matrizen:

R = A^{(n)} = L_{n−1}^{−1}A^{(n−1)} = … = L_{n−1}^{−1} ⋯ L_{1}^{−1}A ⇔
A = L_{1}L_{2} ⋯ L_{n−1}R =: LR.  (2.3.6)

Da die Menge der unteren bzw. oberen Dreieckmatrizen abgeschlossen ist unter Matrixmultiplikation, ist L eine untere und R eine obere Dreieckmatrix:

A = LR = ( \begin{matrix}1 & 0 & … & 0 \\ ∗ & 1 \\ ⋮ & & ... \\ ∗ & ∗ & … & 1 \end{matrix} ) · ( \begin{matrix}∗ & ∗ & … & ∗ \\ 0 & ∗ & & ∗ \\ & & ... & ⋮ \\ 0 & & & ∗ \end{matrix} )  (2.3.7)

Satz 2.3.2 Der Gaußalgorithmus (2.3.4) (ohne Pivotisierung) erzeugt eine LR-Zerlegung der Matrix A. Der Aufwand dafür ist \frac{2}{3}n^{3} Operationen. Danach reduziert sich jede Lösung von Ax = b auf

b = Ax = L \underbrace{(Rx)}_{b^{(n)}} ⇔ Lb^{(n)} = b, Rx = b^{(n)},  (2.3.8)

also auf die Auflösung von zwei LGSen mit Dreieckmatrizen mit 2n^{2} Operationen. Die beiden Faktoren L und R werden bei (2.3.4) wieder in A abgespeichert mit Ausnahme der Hauptdiagonalen von L.

Bemerkung: Die LR-Zerlegung kann auch direkt erzeugt werden ohne die Zwischenmatrizen A^{(j)}. Die Identität A = L · R wird dabei als Gleichungssystem für L und R aufgefaßt:

a_{ij} = ∑_{k=1}^{min\{i,j\}} l_{ik}r_{kj} ⟺ \{ \begin{matrix}a_{ij} = & ∑_{k=1}^{j−1} l_{ik}r_{kj}+ & l_{ij}r_{jj}, & i > j, \\ a_{ij} = & ∑_{k=1}^{i−1} l_{ik}r_{kj}+ & r_{ij}, & i ≤ j. \end{matrix}  (2.3.9)

Es können verschiedene Indexfolgen (i, j) angegeben werden, für die man diese Gleichungen direkt nach den l_{ij} (obere Gleichungen) bzw. r_{ij} (untere Gleichungen) auflösen kann. Die Effizienz ist dabei sprach- und maschinenabhängig (Matrizen zeilen-/spaltenweise gespeichert?) und führt auf die Algorithmen von Banachiewicz, Crout, etc.

Pivotisierung

Im allgemeinen ist der Gauß-Algorithmus nicht ohne Zeilenvertauschungen durchführbar. Daher stellen sich zwei Fragen:

— Für welche Problemklassen ist keine Pivotisierung nötig?

— Welche Pivotstrategien sind für die übrigen sinnvoll? Bei der Diskussion ist die Tatsache hilfreich, daß der Gauß-Algorithmus bestimmte Strukturen bzw. Eigenschaften der Matrix A erhält.

Definition 2.3.3 A sei eine n × n-Matrix. A heißt

— streng diagonaldominant, wenn

|a_{ii}| > ∑_{j≠i^{j=1}}^{n} |a_{ij}|, i = 1, …, n.  (2.3.10)

— (2m + 1)-Bandmatrix (Tridiagonalmatrix für m = 1), wenn

a_{ij} = 0 für |i − j| > m.

Bei definiten und streng diagonaldominanten Matrizen sind insbesondere die Hauptdiagonalelemente von Null verschieden. Die Erhaltung bestimmter Strukturen ermöglicht außerdem oft eine Reduktion des Aufwands beim Gauß-Algorithmus.

Satz 2.3.4 a) In der Matrix A gelte a_{11} ≠ 0. Wenn die Matrix A hermitesch, positiv (negativ) definit, streng diagonaldominant oder 2m + 1-Bandmatrix ist, dann hat im Gauß-Algorithmus die Restmatrix B^{(2)} (2.3.3) wieder die gleiche Eigenschaft.

b) Bei definiten oder streng diagonaldominanten Matrizen ist der Gauß-Algorithmus ohne Pivotisierung durchführbar.

c) Für eine positiv (negativ) definite Matrix A ∈ K^{n×n} existiert genau eine Dreieckzerlegung A = L̃R̃ (A = −L̃R̃) mit l̃_{ii} = r̃_{ii} > 0, i = 1, …, n, und L̃^{∗} = R̃. Diese Cholesky-Zerlegung A = L̃L̃^{∗} erfordert etwa den halben Rechenaufwand der gewöhnlichen LR-Zerlegung.

Beweis a) Für a_{11} ≠ 0 erzeugt der erste Eliminationsschritt folgende Umformung. Aus

A = A^{(1)} = ( \begin{matrix}a_{11} & z^{T} \\ s & B^{(1)} \end{matrix} ) mit s = ( a_{21} ; ⋮ ; a_{n1} ) , z^{T} = (a_{12}, …, a_{1n}), wird

A^{(2)} = ( \begin{matrix}a_{11} & z^{T} \\ 0 & B^{(2)} \end{matrix} ) , B^{(2)} := (a_{ik} − \frac{1}{a_{11}} a_{i1}a_{1k})_{i,k=2}^{n} = B^{(1)} − \frac{1}{a_{11}} sz^{T}.

Daraus ergeben sich die Aussagen. Als Beispiel sei A hermitesch. Dann gilt a_{11} ∈ R, s = z̄ und B^{(1)} = B^{(1)}^{∗}. Daher ist auch B^{(2)} hermitesch.

b) Exemplarisch wird die Definitheit nachgewiesen. Bei positiv definiter Matrix A gilt x^{∗}Ax > 0 für alle x ∈ K^{n}, x ≠ 0. Für x = (1, 0, …, 0)^{T} folgt a_{11} > 0, im ersten Schritt war also keine Zeilenvertauschung notwendig. Nun sei mit y ∈ K^{n−1}, y ≠ 0, speziell

x̂ = ( \begin{matrix}\frac{−1}{a_{11}} s^{∗}y \\ y \end{matrix} ) ⇒ Ax̂ = ( \begin{matrix}a_{11} & s^{∗} \\ s & B^{(1)} \end{matrix} ) ( \begin{matrix}\frac{−1}{a_{11}} s^{∗}y \\ y \end{matrix} ) = ( \begin{matrix}0 \\ B^{(1)}y − \frac{1}{a_{11}} ss^{∗}y \end{matrix} ) = ( \begin{matrix}0 \\ B^{(2)}y \end{matrix} ) .

Also ist y^{∗}B^{(2)}y = x̂^{∗}Ax̂ > 0, d.h., B^{(2)} wieder positiv definit.

c) Die Existenz einer Dreieckzerlegung A = L̃R̃ mit l̃_{ii} = r̃_{ii} > 0 folgt sofort aus dem zweiten Beweisteil. Es kann nämlich mit D := diag(\sqrt{r_{11}}, …, \sqrt{r_{nn}}) gesetzt werden L̃ := LD, R̃ := D^{−1}R. Durch Induktion läßt sich auch zeigen, daß diese Zerlegung eindeutig ist. Wegen L̃R̃ = A = A^{∗} = R̃^{∗}L̃^{∗} erhält man dann sofort L̃ = R̃^{∗} und R̃ = L̃^{∗} .

Damit ist in vielen wichtigen Fällen sichergestellt, daß der Gauß-Algorithmus ohne Pivotisierung durchführbar ist.

Bemerkung: Bei großen praktischen Problemen können LGSe mit n ≫ 10^{6} Unbekannten auftreten. Die Matrizen haben dabei aber nur wenige Elemente a_{ij} ≠ 0 (Anteil < 10%, ”dünnbesetzt”). Bei anderen Besetzungen der Matrix, außer der Bandstruktur, wird die ursprüngliche dünne Struktur bei der Elimination in der Regel aufgefüllt (“fill-in”). Der Grad des Auffüllens hängt aber von der Numerierung der Gleichungen/Variablen ab und kann so beeinflußt werden. Bei geeigneter Implementierung bestimmt v.a. die Zahl der nichttrivialen Elemente der LR-Zerlegungder den Rechenaufwand (z.B. Bandstruktur: O(m^{2}n)). Ohne die Ausnutzung solcher Struktureigenschaften wären sehr große Probleme auch auf modernen Supercomputern nicht lösbar. Die aktuelle Top-500-Liste der Supercomputer (Quelle: Netlib/HRZ Mannheim 11’97) weist folgende tatsächlichen Leistungen aus (GFLOPS=10^{9} Operationen pro Sekunde). Die genannte Dimension n gibt dabei die Größe eines vollbesetzten LGS an, das in 1 sec Rechenzeit gelöst werden kann. Bei einer Rechenzeit von einem Tag sind die entsprechenden Dimensionen (nur) um den Faktor 44 größer.

Platz Typ  Ort  Prozessoren GFLOPS  n
1 Intel  Sandia/USA  9152  1338 11019
2 SGI/Cray T3E USA  1248  634 8590
3 SGI/Cray T3E Meteo/GrBr  840  430 7548
9 SGI/Cray T3E MPI/Garching  672  196 5808
?? IBM SP 2  Uni Marburg  35  6.3 1847

In der Theorie ist eine Zeilenvertauschung beim Gauß-Algorithmus nur dann erforderlich, wenn das Pivotelement verschwindet, d.h., a_{jj}^{(j)} = 0. Bei der praktischen Rechnung im Computer mit endlichen Zahldarstellungen sollten aber auch zu kleine Pivotelemente vermieden werden, wie das folgende Beispiel zeigt (genauere Analyse in §7.)

Beispiel 2.3.5 Alle (Zwischen-)Ergebnisse werden in der Gleitkomma-Darstellung auf zwei Stellen gerundet. Aus

\begin{aligned}0.01 x_{1} & + & 2 x_{2} & = & 1 \\ x_{1} & + & x_{2} & = & 3 \end{aligned} wird \begin{aligned}0.01 x_{1} & + & 2x_{2} & = & 1 \\ 0 · x_{1} & − & 200 x_{2} & = & −97 \end{aligned} ,  (2.3.11)

denn l_{21} = a_{21}/a_{11} = 1/0.01 = 1.0 · 10^{2} (Gleitpunktdarstellung) ⇒

a_{22}^{(2)} = a_{22} − l_{21}a_{12} = 1 − 100 · 2 = −199 Rundung: ã_{22}^{(2)} = −2 · 10^{2}
b_{2}^{(2)} = b_{2} − l_{21}b_{1} = 3 − 100 = −97 (ist exakt).

Damit erhält man

x̃_{2} = −97/(−200) ≐ 0.49, x̃_{1} = (1 − 2 · 0.49)/0.01 = 2.0.

Die exakte Lösung ist jedoch (2.512.., 0.487..). Vertauscht man die beiden Gleichungen in (2.3.11), so ergibt die Elimination dagegen

\begin{aligned}x_{1} & +x_{2} & = 3 \\ 0.01x_{1} & +2x_{2} & = 1 \end{aligned} → \begin{aligned}x_{1} & +x_{2} & = 3 \\ & 2x_{2} & = 0.97 \end{aligned} → \begin{aligned}x_{1} & = 2.5 \\ x_{2} & = 0.49 \end{aligned}

Um die gezeigten Ungenauigkeiten zu verhindern, verwendet man Pivot-Strategien: Dabei wird im Schritt j zur Vertauschung mit Zeile j die Zeile p ∈ {j, …, n} nach folgender Regel gewählt:

1. Spaltenpivotisierung, absolutes Maximum:

|a_{pj}^{(j)}| = max_{k=j}^{n} |a_{kj}^{(j)}|.

2. Spaltenpivotisierung, relatives Maximum:

\frac{|a_{pj}^{(j)}|}{∑_{ν=j}^{n} |a_{pν}^{(j)}|} = max_{k=j}^{n} \frac{|a_{kj}^{(j)}|}{∑_{ν=j}^{n} |a_{kν}^{(j)}|}.

3. Vollständige Pivotisierung, zusätzlich werden auch Spaltenvertauschungen (Umnumerierung der Variablen) vorgenommen

|a_{pq}^{(j)}| = max_{i,k=j}^{n} |a_{ik}^{(j)}|.

Wegen des hohen Aufwands werden die Strategien 2) und 3) nur in Ausnahmefällen benutzt. Strategie 2) unterdrückt den Einfluß der Multiplikation von Zeilen mit einer Konstanten (Skalierung). Ein ähnlicher Effekt ist bei 1) erzielbar durch Äquilibrierung der Matrix, bei der zu Beginn alle Zeilen auf Summennorm 1 skaliert werden. Auch die einfache Strategie 1) erhöht den Aufwand um 50% :

Rechenaufwand

für den Gauß-Algorithmus mit Pivotisierung 1): n^{3} Operationen

Inverse Matrix A^{−1}: Die Lösung von Ax = b läßt sich kompakt in der Form x = A^{−1}b angeben. Bei praktischer Rechnung lohnt es sich aber selbst zur Lösung vieler LGSe Ax^{(j)} = b^{(j)}, j = 1, 2, …, nicht, die Inverse A^{−1} explizit zu berechnen. Der Rechenaufwand für das Produkt x = A^{−1}b ist der gleiche, wie der zur Lösung der beiden Dreiecksysteme bei LRx = b, nämlich 2n^{2} (vgl. Berechnung nach (2.3.4)), der Rechenaufwand für A^{−1} amortisiert sich daher nie.

Manchmal ist es aber für theoretische Aussagen günstig, die Elemente von A^{−1} zu kennen (z.B. Input-Output-Analyse: Wechselwirkungen zwischen Produktionszweigen). Bei gegebener LR-Zerlegung von A ergeben sich die Spalten von

A^{−1} = C = (c^{(1)}, …, c^{(n)}) aus LRc^{(j)} = e^{(j)}, j = 1, …, n.  (2.3.12)

Unter Ausnutzung der speziellen Gestalt der Einheitsvektoren e^{(j)} benötigt man zur Berechnung \frac{4}{3}n^{3} Operationen zusätzlich zur LR-Zerlegung, also 2n^{3} Operationen insgesamt.

2.4 Fehlerausbreitung, Kondition

Die Auswirkungen von Rundungsfehlern bei der Durchführung des Gauß-Algorithmus werden später (§7) diskutiert. Aber auch die Verfälschung von Eingangsdaten (z.B. durch Rundung auf endliche Genauigkeit) kann sich bei fast-singulären LGSen katastrophal auf die Lösung auswirken. Zur quantitativen Untersuchung dieser Auswirkungen wird angenommen, daß statt des ursprünglichen Problems Ax = b mit regulärer Matrix A das Problem

(A + A′)x̃ = b + b′, x̃ = x + x′  (2.4.1)

mit gestörter Matrix Ã = A + A′ und gestörter rechter Seite b̃ = b + b′ exakt gelöst wird. Die Rundungsfehleranalyse des Gauß-Algorithmus wird übrigens in §7 auf diesen Fall zurückgeführt.

Zur Abschätzung der Störung x′ = x̃ − x von x wird die Gleichung mit A^{−1} multipliziert:

(I + A^{−1}A′)x̃ = A^{−1}(b + b′) = x + A^{−1}b′.  (2.4.2)

Nach Satz 2.2.2 (v. Neumann) ist dieses LGS lösbar, wenn in einer Norm gilt

∥A^{−1}A′∥ ≤ ∥A^{−1}∥ ∥A′∥ =: q < 1.  (2.4.3)

Dann folgt die Schranke

∥x̃∥ ≤ \frac{∥x + A^{−1}b′∥}{1 − q}.  (2.4.4)

Nach (2.4.2) gilt auch x′ = x̃ − x = A^{−1}b′ − A^{−1}A′x̃. Daraus folgt mit (2.4.3) und (2.4.4)

∥x′∥ = ∥x̃ − x∥ ≤ ∥A^{−1}b′∥ + q∥x̃∥
≤ ∥A^{−1}b′∥ + \frac{q}{1 − q} (∥x∥ + ∥A^{−1}b′∥)
≤ \frac{q}{1 − q} ∥x∥ + \frac{1}{1 − q} ∥A^{−1}∥∥b′∥.  (2.4.5)

Besonders aussagekräftig sind Abschätzungen, die skalierungsinvariant sind, bei einer Multiplikation des LGS mit Konstanten also unverändert bleiben. Zu diesem Zweck betrachtet man relative Fehler. Mit ∥b∥ = ∥Ax∥ ≤ ∥A∥∥x∥ folgt aus (2.4.5):

\frac{∥x′∥}{∥x∥} ≤ \frac{q}{1 − q} + \frac{∥A^{−1}∥ · ∥A∥}{1 − q} \frac{∥b′∥}{∥b∥}.

Bezieht man sich auch bei A′ = Ã − A auf den relativen Fehler, etwa in

q = ∥A^{−1}∥∥A′∥ = ∥A^{−1}∥ · ∥A∥ \frac{∥A′∥}{∥A∥},

dann taucht in der Abschätzung außer den Fehlern nur eine zusätzliche Konstante auf:

Definition 2.4.1 Zu einer gegebenen Matrixnorm ∥ · ∥ heißt

κ(A) := ∥A∥ ∥A^{−1}∥

die Konditionszahl der Matrix A. Bei Verwendung spezieller Normen übernimmt man den Index, z.B., κ_{∞}(A) = ∥A∥_{∞}∥A^{−1}∥_{∞}.

Die Konditionszahl beschreibt die Empfindlichkeit des LGS gegenüber Störungen. Für verträgliche Matrixnormen gilt κ(A) ≥ 1 wegen 1 ≤ ∥I∥ = ∥AA^{−1}∥ ≤ ∥A∥∥A^{−1}∥. Die gerade durchgeführte Diskussion hat folgende Fehlerabschätzung bewiesen:

Satz 2.4.2 Im gestörten System (2.4.1) werden folgende relative Fehler betrachtet:

φ_{x} := \frac{∥x̃ − x∥}{∥x∥} = \frac{∥x′∥}{∥x∥}, φ_{b} := \frac{∥b̃ − b∥}{∥b∥} = \frac{∥b′∥}{∥b∥}, φ_{A} := \frac{∥Ã − A∥}{∥A∥} = \frac{∥A′∥}{∥A∥}.

Damit ist das gestörte LGS (2.4.1) eindeutig lösbar für

κ(A) · φ_{A} < 1.  (2.4.6)

Der relative Fehler in der Lösung ist beschränkt durch

φ_{x} ≤ \frac{κ(A)}{1 − κ(A)φ_{A}} (φ_{A} + φ_{b}).  (2.4.7)

Für große κ(A) ≫ 1 ist das Problem schlecht konditioniert. Dann können schon kleine Störungen der Daten zu erheblichen Änderungen der Lösung des LGS führen.

Bei der Berechnung einer Lösung von (2.4.1) können weitere (Rundungs-) Fehler auftreten. Die Genauigkeit einer Näherungslösung y kann mit Hilfe des Defekts oder Residuums

r := Ãy − b̃,  Ã = A + A′, b̃ = b + b′,  (2.4.8)

überprüft werden. Dazu gilt

Satz 2.4.3 Mit den Bezeichnungen von Satz 2.4.2 gilt für den relativen Fehler einer Näherung y zur Lösung x = A^{−1}b mit Defekt r (2.4.8) die Abschätzung

\frac{∥y − x∥}{∥x∥} ≤ \frac{κ(A)}{1 − κ(A)φ_{A}} (φ_{A} + φ_{b} + \frac{∥r∥}{∥b∥}) .  (2.4.9)

Beweis y unterscheidet sich von x̃ aus Satz 2.4.2 folgendermaßen:

Ãx̃ = b̃, Ãy = b̃ + r ⇒ y − x̃ = Ã^{−1}r.

Da (2.4.2), (2.4.4) der Abschätzung

∥Ã^{−1}∥ = ∥(A + A′)^{−1}∥ ≤ \frac{∥A^{−1}∥}{1 − ∥A^{−1}A′∥},

entsprechen, folgt mit den Schranken aus Satz 2.4.2 die Behauptung,

\frac{∥y − x∥}{∥x∥} ≤ \frac{∥x̃ − x∥}{∥x∥} + \frac{∥Ã^{−1}r∥}{∥x∥} ≤ φ_{x} + \frac{∥A^{−1}∥}{1 − κ(A)φ_{A}} · \frac{∥A∥∥r∥}{∥b∥}.

Auch hier geht die Konditionszahl entscheidend ein. Wegen dieser Bedeutung sollte bei der praktischen Lösung eines LGS immer auch die Kondition der Matrix (ab-)geschätzt werden, um die Genauigkeit der tatsächlich berechneten Lösung beurteilen zu können.

Schranken für κ(A)

Da die Zeilensummennorm ∥ · ∥_{∞} einer Matrix einfacher bestimmt werden kann als, z.B., ∥ · ∥_{2}, werden hier Ansätze diskutiert, diese Norm der Inversen ∥A^{−1}∥_{∞} abzuschätzen:

1. Für streng diagonaldominante Matrizen (2.3.10) ist A = D(I − D^{−1}B) mit D = diag(a_{ii}) und ∥D^{−1}B∥_{∞} < 1. Aus Satz 2.2.2 folgt daher

κ_{∞}(A) ≤ ∥A∥_{∞} \frac{∥D^{−1}∥_{∞}}{1 − ∥D^{−1}B∥_{∞}} .

2. Da die LR-Zerlegung A = LR bei der Auflösung berechnet wird, kann mit der folgenden Methode mit akzeptablem Rechenaufwand O(n^{2}) auch eine Schranke für ∥A^{−1}∥_{∞} ≤ ∥L^{−1}∥_{∞}∥R^{−1}∥_{∞} berechnet werden. Grundlage sind die folgenden Eigenschaften nichtnegativer Matrizen, die hier nur für R formuliert werden. Ungleichungen und Beträge bei Matrizen sind dabei komponentenweise zu verstehen.

(a) Für B = (b_{ij}) mit b_{ij} ≥ 0 ∀i, j (kurz: B ≥ 0) gilt

∥B∥_{∞} = ∥Be∥_{∞} , e = (1, 1, …, 1)^{T}.

(b) Für C^{−1} ≥ 0 ist ∥C^{−1}∥_{∞} = ∥C^{−1}e∥_{∞} = ∥z∥_{∞}, wobei z das LGS Cz = e löst. Hiermit kann die Norm ∥C^{−1}∥_{∞} berechnet werden, ohne C^{−1} explizit zu kennen.

(c) Die Norm ∥ · ∥_{∞} ist monoton, d.h. aus

|b_{ij}| ≤ |c_{ij}| ∀i, j (kurz: |B| ≤ |C|), folgt ∥B∥_{∞} ≤ ∥C∥_{∞}.

(d) Zerlegt man R = D(I − B) mit D = diag(r_{ii}), dann ist B strikt obere Dreieckmatrix mit ρ(B) = 0 ⇒ B^{n} = 0. Aus dem Satz 2.2.2 (Neumannreihe) folgt durch komponentenweise Abschätzung

|R^{−1}| = |(I − B)^{−1}D^{−1}| = | ∑_{j=0}^{n−1} B^{j}||D^{−1}| ≤ ∑_{j=0}^{n−1} |B|^{j}|D|^{−1} = (|D|(I − |B|))^{−1}.

Die Eigenschaften (a) - (d) führen auf

Satz 2.4.4 R ∈ R^{n×n} sei eine reguläre obere Dreieckmatrix. Der (positive) Vektor z ∈ R^{n} sei definiert durch das LGS

|r_{ii}|z_{i} − ∑_{j=i+1}^{n} |r_{ij}|z_{j} = 1, i = n, n − 1, …, 1.  (2.4.10)

Dann gilt

∥R^{−1}∥_{∞} ≤ ∥z∥_{∞}.

Beispiel 2.4.5

A = ( \begin{matrix}2 & 3 & −5 \\ 4 & 8 & −3 \\ −6 & 1 & 4 \end{matrix} ) = ( \begin{matrix}1 & 0 & 0 \\ 2 & 1 & 0 \\ −3 & 5 & 1 \end{matrix} ) ( \begin{matrix}2 & 3 & −5 \\ 0 & 2 & 7 \\ 0 & 0 & −46 \end{matrix} ) = L · R.

Zur Abschätzung von ∥R^{−1}∥_{∞} ist zu lösen

( \begin{matrix}2 & −3 & −5 \\ 0 & 2 & −7 \\ 0 & 0 & 46 \end{matrix} ) ( \begin{matrix}z_{1} \\ z_{2} \\ z_{3} \end{matrix} ) = ( \begin{matrix}1 \\ 1 \\ 1 \end{matrix} ) ⟹ ( \begin{matrix}z_{1} \\ z_{2} \\ z_{3} \end{matrix} ) = ( \begin{matrix}1.418 \\ 0.576 \\ 0.0217 \end{matrix} ) .

Dies führt auf die Schranke ∥R^{−1}∥_{∞} ≤ ∥z∥_{∞} ≐ 1.418. Für ∥L^{−1}∥_{∞} ergibt sich analog

( \begin{matrix}1 & 0 & 0 \\ −2 & 1 & 0 \\ −3 & −5 & 1 \end{matrix} ) ( \begin{matrix}u_{1} \\ u_{2} \\ u_{3} \end{matrix} ) = ( \begin{matrix}1 \\ 1 \\ 1 \end{matrix} ) ⟹ ( \begin{matrix}u_{1} \\ u_{2} \\ u_{3} \end{matrix} ) = ( \begin{matrix}1 \\ 3 \\ 19 \end{matrix} ) .

Hier erhält man die Schranke ∥L^{−1}∥_{∞} ≤ ∥u∥_{∞} = 19, zusammen mit der ersten führt sie auf die Abschätzung ∥A^{−1}∥_{∞} ≤ 26.95 (zum Vergleich: ∥A^{−1}∥_{∞} ≐ 0.451). Mit ∥A∥_{∞} = 15 folgt die Schranke κ_{∞}(A) ≤ 404.25 für die Konditionszahl.

Spalten-Pivotisierung (hier: Vertauschung der Zeilen 1 und 3) verbessert auch die berechneten Schranken, es ist

( \begin{matrix}0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{matrix} ) A = ( \begin{matrix}−6 & 1 & 4 \\ 4 & 8 & −3 \\ 2 & 3 & −5 \end{matrix} ) = ( \begin{matrix}1 & 0 & 0 \\ −\frac{2}{3} & 1 & 0 \\ −\frac{1}{3} & \frac{5}{13} & 1 \end{matrix} ) ( \begin{matrix}−6 & 1 & 4 \\ 0 & \frac{26}{3} & −\frac{1}{3} \\ 0 & 0 & −\frac{46}{13} \end{matrix} ) =: L̂R̂.

Als Abschätzung erhält man jetzt ∥R̂^{−1}∥_{∞} ≤ 0.376, ∥L̂^{−1}∥_{∞} ≤ 2.616 und daher die viel schärfere

Schranke ∥A^{−1}∥_{∞} ≤ 0.984, da ∥A^{−1}∥_{∞} = ∥(P A)^{−1}∥_{∞} mit P = ( \begin{matrix}0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{matrix} ) = P^{−1}.

2.5 Iterationsverfahren für lineare Gleichungssysteme

Wenn selbst die exakte Lösung eines LGSs nur eine Approximation für ein Ausgangsproblem darstellt, reicht auch hier eine Näherungslösung aus. Für lineare Gleichungssysteme der Form (I−B)x = r (vgl. Input-Output-Analyse) mit “kleiner” Matrix B, d.h., Spektralradius ρ(B) < 1, ist eine explizite Darstellung der Lösung durch Satz 2.2.2 (Neumannreihe) bekannt,

x = (I − B)^{−1}r = ∑_{j=0}^{∞} B^{j}r = r + B ∑_{j=0}^{∞} B^{j}r.  (2.5.1)

Die Partialsummen dieser Reihe sind daher konvergierende Näherungen für x und können über folgende Rekursion bzw. Iteration x^{(0)} := 0,

x^{(k+1)} := Bx^{(k)} + r, k = 0, 1, …,  (2.5.2)

berechnet werden: x^{(1)} = r, x^{(2)} = r + Br, x^{(3)} = r + Br + B^{2}r, . . .. Diese Konvergenzaussage läßt sich erheblich verallgemeinern. Die Iteration (2.5.2) dient nämlich zur Bestimmung eines Fixpunkts der Abbildung x ↦ g(x) := Bx + r, d.h. eines Vektors mit

z = g(z),  g : R^{n} → R^{n}.  (2.5.3)

Allgemein gilt für kontrahierende Abbildungen g der

Satz 2.5.1 (Banachscher Fixpunksatz) Gegeben sei ein Banachraum H und eine Abbildung g : H → H. Gelten auf einer abgeschlossenen Teilmenge Ω ⊂ H und für q ∈ R, 0 < q < 1, die Aussagen

g(Ω) ⊆ Ω  (“g bildet Ω auf sich ab”)  (2.5.4)
∥g(x) − g(y)∥ ≤ q∥x − y∥ ∀x, y ∈ Ω, (“g ist kontrahierend”)  (2.5.5)

dann besitzt g genau einen Fixpunkt z = g(z) ∈ Ω. Dieser kann mit einem beliebigen Startwert x^{(0)} ∈ Ω durch die Iteration

x^{(k+1)} := g(x^{(k)}), k = 0, 1, …,  (2.5.6)

berechnet werden, es ist lim_{k→∞} x^{(k)} = z. Quantitativ gelten die Fehlerabschätzungen

∥x^{(k)} − z∥ ≤ \frac{q}{1 − q} ∥x^{(k)} − x^{(k−1)}∥ (“a-posteriori”)  (2.5.7)
≤ \frac{q^{k}}{1 − q} ∥x^{(1)} − x^{(0)}∥ (“a-priori”).  (2.5.8)

Bemerkungen: 1) Eine Bedingung der Form (2.5.5) (q > 0) heißt Lipschitz-Bedingung.

2) Typische Anwendungen der Fehlerschranken sind folgende. (2.5.7): Verwendung als Abbruchkriterium in der Iteration, d.h., wenn x^{(k)} berechnet ist. (2.5.8): Abschätzung der für eine bestimmte Genauigkeit erforderliche Anzahl von Iterationen, d.h., des Aufwands.

Beweis Wegen (2.5.5) gilt

∥x^{(k+1)} − x^{(k)}∥ = ∥g(x^{(k)}) − g(x^{(k−1)})∥ ≤ q∥x^{(k)} − x^{(k−1)}∥ ≤ …
≤ q^{k}∥x^{(1)} − x^{(0)}∥.

Analog ergibt sich, für beliebiges m > 0, aus der Dreiecksungleichung die Schranke

∥x^{(k+m)} − x^{(k)}∥ ≤ ∑_{j=0}^{m−1} ∥x^{(k+j+1)} − x^{(k+j)}∥ ≤ ∑_{j=1}^{m} q^{j}∥x^{(k)} − x^{(k−1)}∥
≤ \frac{q}{1 − q} ∥x^{(k)} − x^{(k−1)}∥ ≤ \frac{q^{k}}{1 − q} ∥x^{(1)} − x^{(0)}∥ → 0, k → ∞. (2.5.9)

Daher ist {x^{(k)}} Cauchyfolge, wegen der Vollständigkeit von Ω also auch konvergent, der Grenzwert x̂ = lim_{k→∞} x^{(k)} existiert also. Aus der Stetigkeit von g folgt nun

x̂ = lim_{k→∞} x^{(k)} = lim_{k→∞} x^{(k+1)} = lim_{k→∞} g(x^{(k)}) = g( lim_{k→∞} x^{(k)}) = g(x̂),

d.h. x̂ ist Fixpunkt von g. Dieser ist eindeutig, denn wegen q < 1 gilt

∥x̂ − z∥ = ∥g(x̂) − g(z)∥ ≤ q∥x̂ − z∥ ⇒ x̂ = z.

Nach (2.5.9) folgen aus x^{(k)} − z = lim_{m→∞} (x^{(k)} − x^{(k+m)}) die Schranken wie

∥x^{(k)} − z∥ ≤ ∑_{j=0}^{∞} q^{j+1}∥x^{(k)} − x^{(k−1)}∥ = \frac{q}{1 − q} ∥x^{(k)} − x^{(k−1)}∥.

Dieser Satz ist die Grundlage der meisten Konvergenzaussagen bei Iterationsverfahren, auch bei nichtlinearen Problemen (vgl. §6). Wegen Satz 2.2.1 kann die Bedingung (2.5.5), ∥B∥ < 1, bei der affin-linearen Funktion (2.5.2) natürlich durch die Bedingung ρ(B) < 1 an den Spektralradius ersetzt werden. Außerdem gilt hier die Umkehrung

Satz 2.5.2 Für ρ(B) > 1 gibt es Startvektoren x^{(0)} ∈ R^{n} so, daß (2.5.2) divergiert.

Beweis (-idee): Wähle x^{(0)} = z + y so, daß By = λy mit |λ| > 1.

Außer in einigen Spezialfällen liegt die Matrix A des LGSs natürlich nicht in der Form A = I −B vor. Oft kann man sie aber als Störung eines Hauptteils M schreiben. Von praktischem Interesse sind dabei allerdings nur Hauptteile M, die auf einfach auflösbare Gleichungssysteme führen (M, z.B., Diagonal-, Dreieck-Matrix).

Definition 2.5.3 Die Zerlegung einer Matrix

A = M − N  (2.5.10)

heißt regulär, wenn M regulär ist und wenn gilt

ρ(M^{−1}N) < 1.  (2.5.11)

Nach Satz 2.5.1 definiert jede reguläre Zerlegung von A ein konvergentes Iterationsverfahren:

b = Ax = Mx − Nx ⟺ Mx = Nx + b ⟺ x = M^{−1}Nx + M^{−1}b,

d.h. (2.5.3) mit B := M^{−1}N = I − M^{−1}A, r := M^{−1}b. Dazu gehört ein Iterationsverfahren, das man bei der Rechnung in der Form

Mx^{(k+1)} := Nx^{(k)} + b ⟺ M(x^{(k+1)} − x^{(k)}) := b − Ax^{(k)}  (2.5.12)

x^{(0)} := 0, durchführt, allerdings besser in der äquivalenten Form

x^{(k+1)} := M^{−1}Nx^{(k)} + M^{−1}b ⟺ x^{(k+1)} := M^{−1}b + (I − M^{−1}A)x^{(k)}.  (2.5.13)

analysiert (keine Berechnung von M^{−1}!). Eine Zerlegung ist umso günstiger, je kleiner der Konvergenzfaktor ρ(M^{−1}N) ist und je weniger Aufwand ein Schritt (2.5.12) kostet. Beide Kriterien lassen sich auf folgende Weise miteinander in Beziehung setzen. Bemerkung: Benutzt man in Satz 2.5.1 die bestmögliche Konstante q = ρ(M^{−1}N), so folgt aus (2.5.8), daß zur Verkleinerung des Startfehlers ∥x^{(1)} − x^{(0)}∥ auf die Endgenauigkeit ∥x^{(k)} − z∥ ≤ 10^{−ℓ}∥x^{(1)} − x^{(0)}∥ ungefähr

k = \frac{ℓ}{− log_{10} ρ(M^{−1}N)} Schritte

nötig sind. Die Reduktion des Fehlers um \frac{1}{10} erfordert bei einer gegebenen Zerlegung den Aufwand

\frac{1}{− log_{10} ρ(M^{−1}N)} × [Aufwand für einen Schritt (2.5.12)].  (2.5.14)

Verschiedene Zerlegungen von A lassen sich daher anhand dieses “Effizienz-Maßes” vergleichen.

Eine einfache Anwendung der Iteration beim Gauß-Algorithmus ist die Nachiteration: Bei sehr schlecht konditionierten linearen Gleichungssystemen mit κ(A) ≫ 1 kann die mit Hilfe des Gaußalgorithmus berechnete Lösung durch Rundungsfehler stark verfälscht sein. Dann gilt für die berechnete LR-Zerlegung nur noch L̃R̃ ≅ A. In diesem Fall kann diese Lösung durch (2.5.12) verbessert werden mit M := L̃R̃ wenn ρ(I − R̃^{−1}L̃^{−1}A) < 1 (vgl. auch Satz 2.4.3), d.h., mit der Nachiteration

L̃R̃(x^{(k+1)} − x^{(k)}) = b − Ax^{(k)}.

Der Speicherbedarf verdoppelt sich allerdings, da die Originalmatrix A zur Berechnung des Defekts b − Ax^{(k)} benötigt wird. Die Defektberechnung sollte mit doppelter Zahlengenauigkeit erfolgen.

Gesamt- und Einzelschrittverfahren

Beispiel 2.5.4 Betrachtet werde das folgende 2 × 2-Gleichungsystem mit Lösung (2, 1)^{T}.

x_{1} + 0.01x_{2} = 2.01 ⟺ x_{1} = 2.01 −0.01x_{2}
−0.02x_{1} +  4x_{2} = 3.96 ⟺ 4x_{2} = 3.96 \underbrace{+0.02x_{1}}

“Störung”

“Sukzessives Einsetzen”, beginnend mit x^{(0)} = \binom{0}{0} liefert der Reihe nach die Vektoren

\begin{matrix}x^{(0)} & x^{(1)} & x^{(2)} & x^{(3)} \\ 0 & 2.01 & 2.0001 & 1.9999995 \\ 0 & 0.99 & 1.00005 & 1.0000005 \end{matrix}

Dabei wurde die Diagonale der Matrix ({1 \atop −0.02} {0.01 \atop 4}) als Hauptteil M benutzt, der Rest als “Störung”. Als bessere (?!) Variante kann man zur Berechnung von x_{2}^{(k)} statt x_{1}^{(k−1)} den schon bekannten Wert x_{1}^{(k)} benutzen. Zugrunde liegt beiden Verfahren die Zerlegung der Matrix A = L + D + R in Diagonale D = diag(a_{11}, a_{22}, …, a_{nn}) (a_{ii} ≠ 0) und linkes und rechtes Dreieck,

A = ([figure: L; D; R] ) , d.h., L = ( \begin{matrix}0 & ⋯ & 0 \\ ∗ & ... & ⋮ \\ ∗ & ∗ & 0 \end{matrix} ) , R = ( \begin{matrix}0 & ∗ & ∗ \\ ⋮ & ... & ∗ \\ 0 & ⋯ & 0 \end{matrix} )  (2.5.15)

Gesamtschrittverfahren, Jacobi-Iteration: Zerlegung M := D, N := −L − R, Iterationsmatrix ist B_{G} = −D^{−1}(L + R).

\{ \begin{matrix}Dx^{(k+1)} & = & b − (L + R)x^{(k)}, & k = 0, 1, … \\ x_{i}^{(k+1)} & = & \frac{1}{a_{ii}} [b_{i} − ∑_{j=1}^{i−1} a_{ij}x_{j}^{(k)} − ∑_{j=i+1}^{n} a_{ij}x_{j}^{(k)}], & i = 1, …, n. \end{matrix}  (2.5.16)

Einzelschrittverfahren, Gauß-Seidel-Iteration: Zerlegung M := D + L, N := −R, Iterationsmatrix ist B_{E} = −(D + L)^{−1}R.

\{ \begin{matrix}(D + L)x^{(k+1)} & = & b − Rx^{(k)}, & k = 0, 1, … \\ x_{i}^{(k+1)} & = & \frac{1}{a_{ii}} [b_{i} − ∑_{j=1}^{i−1} a_{ij}x_{j}^{(k+1)} − ∑_{j=i+1}^{n} a_{ij}x_{j}^{(k)}], & i = 1, …, n. \end{matrix}  (2.5.17)

Die Formeln (2.5.16) und (2.5.17) besitzen den gleichen Rechenaufwand pro Iterationsschritt, in (2.5.17) werden in der Zeile i allerdings die jeweils aktuellsten Näherungen x_{j}^{(k+1)} eingesetzt. Der Rechenaufwand beträgt bei beiden Verfahren maximal 2n^{2} Operationen. Für Matrizen aber, bei denen nur wenige Elemente von Null verschieden sind, gilt genauer

Rechenaufwand

pro Schritt (2.5.16), (2.5.17) = 2·(Anzahl der nichttrivialen Matrixelemente)

Diese einfache Abhängigkeit ist ein entscheidender Vorteil von Iterationsverfahren, da auch eine unregelmäßige dünne Besetzung von A direkt ausgenutzt werden kann, im Gegensatz zu den Eliminationsverfahren.

Ein einfaches, hinreichendes Kriterium für die Konvergenz beider Iterationen ist die Diagonaldominanz von A.

Satz 2.5.5 Die Matrix A sei streng diagonaldominant, (2.3.10). Dann konvergieren Gesamtund Einzelschrittverfahren. Genauer gilt

∥B_{E}∥_{∞} = ∥(D + L)^{−1}R∥_{∞} ≤ ∥D^{−1}(L + R)∥_{∞} = ∥B_{G}∥_{∞} < 1.  (2.5.18)

Somit gelten die Abschätzungen (2.5.8) in der Maximumnorm mit q = ∥B_{G}∥_{∞} bzw. q = ∥B_{E}∥_{∞}.

Beweis Die betrachtete Matrixnorm ist ∥.∥_{∞}.

a) Die strenge Diagonaldominanz ist äquivalent mit ∥B_{G}∥ = max_{i} ∑_{j≠i} |a_{ij}/a_{ii}| < 1.

b) Es wird die stärkere Aussage

∥C∥ ≤ ∥B_{G}∥, C := (|D| − |L|)^{−1}|R|  (2.5.19)

bewiesen. Daraus folgt die Behauptung (2.5.18) mit ∥B_{E}∥ ≤ ∥C∥ ≤ ∥B_{G}∥, da wie im (vorgezogenen) Beweis von Satz 2.4.4 gilt

|B_{E}| = |(D + L)^{−1}R| ≤ (|D| − |L|)^{−1}|R| = C.

Zur Ungleichung (2.5.19): Da C ≥ 0 gilt, ist ∥C∥ = ∥z∥_{∞} =: q wobei Ce =: z, e = (1, …, 1)^{T}. Mit

(I − |D^{−1}L|)^{−1}|D^{−1}R|e = z ⟺ z = |D^{−1}L|z + |D^{−1}R|e

folgt

q = ∥z∥_{∞} = max_{i} \{ ∑_{j<i} |\frac{a_{ij}}{a_{ii}} |z_{j} + ∑_{j>i} |\frac{a_{ij}}{a_{ii}} |\}
≤ max_{i} \{q ∑_{j<i} |\frac{a_{ij}}{a_{ii}} | + ∑_{j>i} |\frac{a_{ij}}{a_{ii}} |\} = ∥D^{−1}(qL + R)∥.  (2.5.20)

Nach Division durch q (der Fall q = 0 ist trivial) wird daraus die Ungleichung

1 ≤ max_{i} \{ ∑_{j<i} |\frac{a_{ij}}{a_{ii}} | + \frac{1}{q} ∑_{j>i} |\frac{a_{ij}}{a_{ii}} |\} = ∥D^{−1}(L + \frac{1}{q}R)∥,

die wegen der Diagonaldominanz aber nur für q < 1 erfüllt sein kann. Also gilt ∥C∥ = q ≤ ∥D^{−1}(qL + R)∥ ≤ ∥D^{−1}(L + R)∥ = ∥B_{G}∥, d.h. (2.5.20)⇒(2.5.19)⇒(2.5.18).

Der Satz zeigt, daß bezüglich der Zeilensummennorm das Einzelschrittverfahren nicht schlechter konvergiert als das Gesamtschrittverfahren. Für die Konvergenz entscheidend ist aber der Spektralradius. Auf diesen läßt sich die Aussage in einem wichtigen Spezialfall übertragen.

Satz 2.5.6 (Stein-Rosenberg) Die Matrix B_{G} = −D^{−1}(L + R) sei nicht-negativ, B_{G} ≥ 0. Dann gilt einer der Fälle

\begin{matrix}0 = & ρ(B_{E}) & = & ρ(B_{G}) \\ 0 < & ρ(B_{E}) & < & ρ(B_{G}) & < & 1 \\ & ρ(B_{E}) & = & ρ(B_{G}) & = & 1 \\ & ρ(B_{E}) & > & ρ(B_{G}) & > & 1 \end{matrix} \} ⟺  |ρ(B_{G}) − 1| ≤ |ρ(B_{E}) − 1|, mit Gleichheit genau für ρ ∈ \{0, 1\}.

Im nichttrivialen Konvergenzfall konvergiert also das Einzelschrittverfahren für solche Matrizen schneller. Für die Konvergenz von Gesamt- und Einzelschritt-Verfahren gibt es folgende hinreichenden Kriterien:

1. (2.3.10), A ist zeilenweise streng diagonaldominant: |a_{ii}| − ∑_{j≠i} |a_{ij}| > 0 ∀i.

2. A ist spaltenweise streng diagonaldominant: |a_{jj}| − ∑_{i≠j} |a_{ij}| > 0 ∀j.

3. A ist hermitesch, positiv definit.

4. schwache Zeilen- bzw. Spalten-Diagonaldominanz: A ist unzerlegbar und |a_{ii}|−∑_{j≠i} |a_{ij}| ≥ 0 bzw. |a_{jj}| − ∑_{i≠j} |a_{ij}| ≥ 0 mit echter Ungleichung “ >′′ an mindestens einer Stelle.

Im letzten Fall mußte ausgeschlossen werden, daß das LGS in kleinere Teilprobleme zerfällt:

Definition 2.5.7 Eine Matrix A = (a_{ij}) heißt unzerlegbar, wenn keine Umordnung (i_{1}, i_{2}, …, i_{n}) der Indizes (1, 2, …, n) existiert so, daß die Matrix dann folgende Struktur hat

(a_{i_{k}i_{j}} )_{k,j=1}^{n} = ( \begin{matrix}A_{11} & A_{12} \\ 0 & A_{22} \end{matrix} ) .

Relaxationsverfahren

Die gerade beschriebenen Verfahren können oft durch Einführung eines Beschleunigungsparameters ohne höheren Rechenaufwand verbessert werden. Zur Vereinfachung der Darstellung wird schon von einer Matrix der Form A = I − B ausgegangen. Nach (2.5.13) ist dies keine Einschränkung. Mit 0 < ω ∈ R wird das Iterationsverfahrens (2.5.2) folgendermaßen modifiziert:

x^{(k+1)} := (1 − ω)x^{(k)} + ω(Bx^{(k)} + r) = x^{(k)} + ω(r − Ax^{(k)}),  (2.5.21)

k = 0, 1, …. Die Iterationsmatrix ist hier demnach

B(ω) := (1 − ω)I + ωB = I − ωA,  (2.5.22)

wobei B(1) = B. Beim Ansatz (2.5.21),(2.5.22) verfolgt man natürlich das Ziel, ω so zu bestimmen, daß der Konvergenzfaktor ρ(B(ω)) möglichst klein wird. Dabei gilt ρ(B(0)) = 1.

Eine Optimierung des Parameters ω ist einfach, wenn A und B nur reelle Eigenwerte besitzen. Die Eigenwerte von A seien daher λ_{n} ≤ … ≤ λ_{1}, die von B sind dann μ_{i} = 1 − λ_{i}. Für λ_{n} > 0 existiert offensichtlich

ein ω > 0 mit ρ(B(ω)) = max_{i} |1 − ωλ_{i}| < 1. [figure: 1; ω; |1 − ωλ_{1}|]

Dabei muß man nur die flachste und steilste Gerade betrachten,

ρ(B(ω)) = max{|1 − ωλ_{1}|, |1 − ωλ_{n}|}.  (2.5.23)

Ein optimaler Parameter ω̂ ergibt sich im Schnittpunkt dieser beiden (geknickten) Geraden:

−(1 − ωλ_{1}) = 1 − ωλ_{n} ⟺ \frac{1}{ω̂} = \frac{λ_{1} + λ_{n}}{2} .

Satz 2.5.8 Die Eigenwerte λ_{i} von A seien reell und positiv, 0 < λ_{n} ≤ … ≤ λ_{2} ≤ λ_{1}. Dann ist der optimale Relaxationsparameter ω̂ bei (2.5.21) gegeben durch

ω̂ = \frac{2}{λ_{1} + λ_{n}} mit ρ(B(ω̂)) = \frac{λ_{1} − λ_{n}}{λ_{1} + λ_{n}} < 1.

Bemerkung: 1) Die Konvergenz des einfachen Verfahrens (ω = 1) war nicht vorausgesetzt, d.h. μ_{1} < −1, λ_{1} > 2, ist zugelassen.

2) Falls der Mittelpunkt des Spektrums von A kleiner Eins ist, \frac{1}{2}(λ_{1} + λ_{n}) < 1, gilt ω̂ > 1. Man spricht dann von Überrelaxation.

3) Die exakte Kenntnis der Eigenwerte von A ist nicht erforderlich, eine (gute) Einschließung [λ_{n}, λ_{1}] ⊆ [a, b] reicht dazu aus. Die Approximation von Eigenwerten (sogar im Rahmen von (2.5.21)) wird in der Numerik IIA behandelt.

Beispiel 2.5.9 Das folgende LGS hat die Lösung (0, −1, 1)^{T}, die Matrix die Eigenwerte 1, 1, 4.

( \begin{matrix}2 & −1 & 1 \\ 0 & 2 & 2 \\ −1 & 2 & 2 \end{matrix} ) x = ( \begin{matrix}2 \\ 0 \\ 0 \end{matrix} )

Der Konvergenzfaktor aus Satz 2.5.8 ist 3/5 = 0.6 bei ω̂ := 2/(1 + 4) = 0.4. Beginnend mit x^{(0)} = b erhält man durch (2.5.21) die Approximationen:

\begin{matrix}k= & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\ x_{1} = & 1.2 & 0.72 & 0.432 & 0.2592 & 0.15552 & 0.09331 & 0.05599 \\ x_{2} = & 0 & -0.64 & -0.64 & -0.8704 & -0.8704 & -0.95334 & -0.95334 \\ x_{3} = & 0.8 & 0.64 & 0.928 & 0.8704 & 0.97408 & 0.95334 & 0.99067 \end{matrix}

Das Verfahren (2.5.21) läßt sich sehr einfach analysieren, da die Iterationsmatrix B(ω) linear von ω abhängt. Es hat aber, etwa in Verbindung mit dem Einzelschrittverfahren mit B = −(D+L)^{−1}R den Nachteil, daß für den Vektor x^{(k)} und (D+L)^{−1}Rx^{(k)} getrennte Speicherplätze erforderlich sind. Geschickter ist es, die Relaxation direkt in jeder Komponente durchzuführen. Für das LGS Ax = b hat ein einzelner solcher Schritt die einfache Gestalt

Algorithmus 2.5.10 SOR-Verfahren (successive overrelaxation)

für i := 1 bis n:
s := b_{i};
für j := 1 bis n: s := s − a_{ij} ∗ x_{j};
x_{i} := x_{i} + ω ∗ s/a_{ii};

(2.5.24)

Mit Iterationsindizes k = 0, 1, …, versehen lautet ein Verfahrensschritt somit

a_{ii}x_{i}^{(k+1)} := a_{ii}x_{i}^{(k)} + ω[b_{i} − ∑_{j<i} a_{ij}x_{j}^{(k+1)} − ∑_{j≥i} a_{ij}x_{j}^{(k)}], i = 1, …, n .

In der Matrix-Schreibweise

(D + ωL)x^{(k+1)} := [(1 − ω)D − ωR]x^{(k)} + ωb  (2.5.25)

wird allerdings erkennbar, daß die Iterationsmatrix

B_{S}(ω) := (D + ωL)^{−1}[(1 − ω)D − ωR]

nichtlinear vom Parameter ω abhängt. Eine Analyse des Verfahrens ist für diese Vorlesung zu aufwendig. Als Beispiel einer Konvergenzaussage sei zitiert

Satz 2.5.11 Für symmetrische und positiv definite Matrizen A gilt

|ω − 1| ≤ ρ(B_{S}(ω)) < 1 ∀0 < ω < 2.

Meist wird eine Beschleunigung nur für ω > 1 erreicht, d.h. bei Überrelaxation. Eine sehr genaue Analyse ist bei bestimmten, praktisch wichtigen Matrixstrukturen möglich. Demo-Beispiel: Poisson-Gleichung auf Einheitsquadrat mit einem 10× 10-Gitter, n = 100. Das LGS besteht i.w. aus Gleichungen der Form 4x_{i}−x_{i−1}−x_{i+1}−x_{i−10}−x_{i+10} = 0, wobei für bestimmte Komponenten, z.B., solche mit Indizes außerhalb {1, …, 100} feste Werte eingesetzt werden. Theoretisch berechenbar ist ρ(B_{G}) = 0.959, ρ(B_{E}) = ρ(B_{G})^{2} = 0.9206, ρ(B_{S}(ω̂)) = 0.560 ≅ ρ(B_{E})^{7}. Also hat eine SOR-Iteration mit optimalem Parameter in diesem Fall den gleichen Effekt wie ca. 7 Einzelschritt- oder 14 Gesamtschritt-Iterationen (fast) ohne Mehraufwand.

Allgemeiner gilt für große n = m^{2} hier ϱ(B_{E}) ≅ 1 − π^{2}/m^{2}, also −1/ log_{10} ϱ(B_{E}) ≅ 0.23m^{2} = 0.23n, sowie bei optimalem Parameter ϱ(B_{S}) ≅ 1 − 2π/m, d.h., −1/ log_{10} ϱ(B_{S}) ≅ 0.37m = 0.37\sqrt{n}. Da die Iterationsverfahren ca. 10n Operationen pro Schritt benötigen, führt die Annahme, daß der Anfangsfehler um 10^{−8} verkleinert werden soll, auf folgende Aufwandsschätzungen, vgl. (2.5.14). Zum Vergleich ist der Aufwand beim Gauß-Algorithmus für Bandmatrizen angegeben.

Verfahren  ESV SOR Gauß
Aufwand ca. 20n^{2} 30n\sqrt{n} 2n^{2}

Für große n ist das SOR-Verfahren hier also der Band-Variante des Gauß-Algorithmus überlegen.

3 Polynom-Interpolation

3.1 Problemstellung

In vielen Situationen sind Datenwerte für bestimmte Größen eines Parameters (etwa Zeitpunkte) bekannt, z.B., die Position eines Fahrzeuges oder Flugkörpers oder auch Finanzdaten. Nicht in allen Fällen ist es sinnvoll, diese Daten als Funktionswerte einer (glatten) Funktion zu interpretieren (Börsenwerte?).

Zur Berechnung von Zwischenwerten verwendet man einfache Ersatzfunktionen, die die vorhandenen Daten einbeziehen. Zunächst werden als Ersatzfunktionen Polynome betrachtet, die in bestimmten Parameterwerten (“Stützstellen”) vorgegebene Datenwerte annehmen, d.h., interpolieren. Im nächsten Paragraphen werden auch Splinefunktionen behandelt, die sich stückweise aus Polynomen zusammensetzen.

[figure: x_{0}; x_{1}; x_{2}; ⋯; x_{n−1}; x_{n}; a; b; x; y; y_{0}; y_{1}; y_{2}; y_{n−1}; y_{n}]

3.2 Lagrange-Interpolation für Polynome

Definition 3.2.1 Zum Gitter {x_{0}, …, x_{n}} mit

a ≤ x_{0}, …, x_{n} ≤ b, x_{i} ≠ x_{j} für i ≠ j,  (3.2.1)

und dem Datenvektor y := (y_{0}, …, y_{n})^{T} sei p ein Polynom mit

p(x_{i}) = y_{i}, i = 0, 1, …, n.  (3.2.2)

Dann heißt p Interpolationspolynom. Ein Polynom, das (3.2.2) erfüllt, nennt man genauer auch Lagrange-Interpolationspolynom. Als Hermite-Interpolationspolynom bezeichnet man ein Polynom p zu den allgemeineren Bedingungen

p^{(j)}(x_{i}) = y_{ij}, j = 0, …, m_{i} − 1, i = 0, …, n.  (3.2.3)

Die Bedingungen (3.2.2) führen im Prinzip auf ein lineares Gleichungssystem für die Koeffizienten a_{j} eines Polynoms vom Grad n in der Darstellung

p_{n}(x) = ∑_{j=0}^{n} a_{j}x^{j}, Π_{n} := {p_{n} : a_{j} ∈ R, j = 0, …, n}.  (3.2.4)

Das Lagrange-Interpolationspolynom kann aber direkt konstruiert werden:

Satz 3.2.2 Zu beliebigen Wertepaaren (x_{i}, y_{i}), i = 0, …, n, mit paarweise verschiedenen Stützstellen x_{i} ≠ x_{j} (für i ≠ j) existiert genau ein Interpolationspolynom vom Grad n zu (3.2.2). Es hat die Form

p := p_{y} := ∑_{i=0}^{n} y_{i}L_{i}, L_{i}(x) := ∏_{{j=0 \atop j≠i}}^{n} \frac{x − x_{j}}{x_{i} − x_{j}} .  (3.2.5)

Die Abbildung R^{n+1} → Π_{n}, y ↦ p_{y} ist linear.

Offensichtlich sind die L_{i} Polynome einer Kardinal-Basis,

L_{i} ∈ Π_{n}, L_{i}(x_{k}) = δ_{ik} = \{ \begin{matrix}1 & für & i = k, \\ 0 & für & i ≠ k \end{matrix} ,

in den Stützstellen x_{j} verschwindet daher genau ein Summand von p_{y} nicht.

Eines von vielen Kriterien zur Beurteilung numerischer Algorithmen ist der Rechenaufwand. Die Operationsanzahlen wachsen mit dem Polynomgrad n. Wenn die Differenzen x−x_{j} getrennt berechnet werden, sind zur Auswertung von (3.2.5) jeweils n^{2} + 2n Aditionen, n(n + 1) Multiplikationen und n(n + 1) Divisionen nötig. Für große n ist der am stärksten wachsende Anteil (hier die n^{2}-Terme) entscheidend, die anderen werden als O(n)-Ausdruck zusammengefaßt. Dies ergibt den

Rechenaufwand

für eine Auswertung von (3.2.5): 3n^{2} + O(n) Operationen.

Beweis zu Satz 3.2.2 Wegen der genannten Eigenschaften der L_{i} gilt für p aus (3.2.5)

p ∈ Π_{n}, p(x_{k}) = ∑_{i=0}^{n} y_{i}L_{i}(x_{k}) = y_{k}, k = 0, …, n.

Zur Eindeutigkeit: wenn zwei Polynome p, p̄ ∈ Π_{n} beide (3.2.2) erfüllen, so folgt

(p − p̄)(x_{i}) = 0, i = 0, …, n.

Damit sind nach dem Fundamentalsatz der Algebra p und p̄ identisch.

Im Vergleich zu anderen Darstellungen hat (3.2.5) einen sehr hohen Rechenaufwand pro Auswertung. Für die praktische Anwendung ist eine andere Darstellung der L_{i} aus (3.2.5)besser geeignet. Mit

b_{i}^{(n)} := b_{i} := \frac{1}{∏_{{j=0 \atop j≠i}}^{n}(x_{i} − x_{j})}, ω(x) := ∏_{j=0}^{n}(x − x_{j})  (3.2.6)

ist L_{i}(x) = b_{i}ω(x)/(x−x_{i}) für x ≠ x_{i}. Damit erhält man für das Polynom p aus (3.2.5) die Form

p_{n}(x) = ω(x) ∑_{i=0}^{n} \frac{b_{i}}{x − x_{i}} y_{i} für x ≠ x_{i}.

Speziell ergibt sich mit dem Sonderfall

p_{n}(x) ≡ 1 ⟺ y_{i} ≡ 1 ∀i

aus der letzten Gleichung die Relation

1 ≡ ω(x) ∑_{i=0}^{n} \frac{b_{i}}{x − x_{i}} , also ω(x) = 1/ ∑_{i=0}^{n} \frac{b_{i}}{x − x_{i}} für x ≠ x_{j} ∀j.  (3.2.7)

Dies zeigt folgende Darstellung von p(x) als ein gewichtetes Mittel.

Satz 3.2.3 Das Lagrange-Interpolationspolynom ist darstellbar in der baryzentrischen Form

p_{n}(x) = \{ \begin{matrix}\frac{∑_{i=0}^{n} \frac{b_{i}}{x − x_{i}} y_{i}}{∑_{i=0}^{n} \frac{b_{i}}{x − x_{i}}} & für & x ≠ x_{i} ∀i, \\ y_{j} & wenn & x = x_{j}. \end{matrix}  (3.2.8)

Zur Auswertung von (3.2.8) berechnet man zweckmäßigerweise zunächst die vom Punkt x und den Datenwerten y_{i} unabhängigen Gewichte b_{i}. Man kann zeigen, daß die Auswertung von (3.2.8) “numerisch stabiler” ist (→ §7) als (3.2.5).

Bei Hinzunahme einer Stützstelle ergibt sich der Übergang von den b_{i}^{(n)} in (3.2.6) zu den ersten n + 1 Koeffizienten b_{i}^{(n+1)}, i = 0, …, n, folgendermaßen:

b_{i}^{(n+1)} := b_{i}^{(n)}/(x_{i} − x_{n+1}), i = 0, 1, …, n.  (3.2.9)

Für den offenen Fall n + 1 wird (3.2.7) umgeformt zu

1 ≡ ∑_{i=0}^{n+1} b_{i}^{(n+1)} ∏_{{j=0 \atop j≠i}}^{n+1}(x − x_{j}) = x^{n+1} ∑_{i=0}^{n+1} b_{i}^{(n+1)} + …  (3.2.10)

Durch Koeffizientenvergleich folgt also

∑_{i=0}^{n+1} b_{i}^{(n+1)} = 0 für n ≥ 0.  (3.2.11)

Daraus kann auch noch b_{n+1}^{(n+1)} bestimmt werden und es ergibt sich

Algorithmus 3.2.4 Rekursive Berechnung der Gewichtsfaktoren b_{i}^{(n)} in (3.2.6):

b_{0}^{(0)} := 1;
für k := 1 bis n:
für i := 0 bis k − 1:
b_{i}^{(k)} := b_{i}^{(k−1)}/(x_{i} − x_{k});
b_{k}^{(k)} := − ∑_{i=0}^{k−1} b_{i}^{(k)};

(3.2.12)

Dieser Algorithmus (3.2.12) erfordert ∑_{k=1}^{n} k = \frac{n^{2}}{2} + O(n) Divisionen und doppelt soviel Additionen, also ist der

Rechenaufwand Baryzentrische Darstellung:

\frac{3}{2}n^{2} + O(n) Operationen zur Berechnung der \{b_{i}^{(n)}\} in (3.2.12),
5n + O(1) Operationen zur Auswertung von p(x) in (3.2.8).

Man beachte, daß im Dreieck-Schema (3.2.12) die b_{i}^{(k)} die b_{i}^{(k−1)} überschreiben dürfen, daher wird also nur ein lineares Feld [0, …, n] benötigt.

Beispiel 3.2.5 Interpolation auf einem äquidistanten Gitter: Mit

x_{i} := x_{0} + ih, i = 0, …, n

erhält man

\frac{1}{b_{i}} = ∏_{{j=0 \atop j≠i}}^{n}(x_{i} − x_{j}) = h^{n} ∏_{{j=0 \atop j≠i}}^{n}(i − j) = h^{n}(−1)^{n−i}i!(n − i)! .  (3.2.13)

Dies ergibt

b_{i} = \frac{(−1)^{n}}{h^{n}n!} · \frac{n!(−1)^{i}}{i!(n − i)!} = \frac{(−1)^{n}}{h^{n}n!} · (−1)^{i}\binom{n}{i}.

Kürzt man in der Darstellung (3.2.8) hierbei den von i unabhängigen Vorfaktor heraus und führt die Größen b̃_{i} := (−1)^{i}\binom{n}{i} ein, so ergibt sich für den Fall der äquidistanten Knoten die folgende vereinfachte Formel für das Interpolationspolynom p,

p_{n}(x) = ∑_{i=0}^{n} \frac{(−1)^{i}}{x − x_{i}} \binom{n}{i}y_{i}/ ∑_{i=0}^{n} \frac{(−1)^{i}}{x − x_{i}} \binom{n}{i}  für x ≠ x_{j} ∀j.  (3.2.14)

3.3 Newton-Interpolation

Um beim konkreten Einsatz eventuell zusätzliche Stützstellen schnell berücksichtigen zu können, ist folgender Ansatz zweckmäßig

p_{n}(x) = p_{n−1}(x) + (x − x_{0}) ⋯ (x − x_{n−1})a_{n}.

Dies ist die Newton-Darstellung des Interpolationspolynoms. Darin verschwindet der zweite Summand in den Punkten x_{0}, …, x_{n−1}. Man setzt also induktiv voraus, daß p_{n−1} die Interpolationsaufgabe in den ersten n Punkten erfüllt, p_{n−1}(x_{i}) = y_{i}, i = 0, …, n − 1. Den Wert a_{n} berechnet man dann aus der zusätzlichen Interpolationsbedingung p_{n}(x_{n}) = y_{n}, zweckmäßiger ist aber ein weiter unten formulierter Algorithmus. Beginnend mit p_{0}(x) ≡ y_{0} = a_{0} setzt man also für p_{n} die folgende Form an:

p_{n}(x) = a_{0} + (x − x_{0})a_{1} + … + (x − x_{0}) ⋯ (x − x_{n−1})a_{n}  (3.3.1)
= a_{0} + (x − x_{0})[⋯ [a_{n−2} + (x − x_{n−2})[a_{n−1} + (x − x_{n−1})a_{n}]] ⋯]

Diese Klammerung deutet bereits an, wie p_{n}(x) am günstigsten zu berechnen ist:

Algorithmus 3.3.1 Horner-Schema zur Auswertung von p_{n}(x) bei bekannten a_{i}.

q := a_{n}; ; für k = n − 1, n − 2, …, 0: ; q := a_{k} + (x − x_{k})q; ; p_{n}(x) = q.

Rechenaufwand

Hornerschema: 3n Operationen:

Für den Spezialfall x_{i} = 0 ∀i erhält man p_{n}(x) = ∑_{i=0}^{n} a_{i}x^{i} und braucht für die Auswertung dieser Polynomform nach dem Hornerschema nur 2n Operationen.

Das Hauptproblem bei (3.3.1), die Bestimmung der Koeffizienten a_{i}, wird nun behandelt.

Definition 3.3.2 (und Algorithmus) Die ℓ-ten dividierten Differenzen oder ℓ-ten Differenzenquotienten der Daten y bezgl. der Stützstellen x werden bestimmt durch den Algorithmus

für i = 0, 1, …, n: y[x_{i}] := y_{i};
für l = 1, …, n:

für i = 0, …, n − l:

y[x_{i}, …, x_{i+l}] := \frac{y[x_{i+1}, …, x_{i+l}] − y[x_{i}, …, x_{i+l−1}]}{x_{i+l} − x_{i}}.

(3.3.2)

Bemerkungen: Die Berechnung nach (3.3.2) führt auf folgendes Dreieckschema, das spaltenweise (l = 1, 2, …, n) erzeugt wird.

\begin{matrix}x_{i} & y_{i} = y[x_{i}] & l = 1 & l = 2 & & l = n \\ x_{0} & y_{0} \\ x_{1} & y_{1} & y[x_{0}, x_{1}] \\ x_{2} & y_{2} & y[x_{1}, x_{2}] & y[x_{0}, x_{1}, x_{2}] \\ ⋮ & ⋮ & ⋮ & & ... \\ x_{n} & y_{n} & y[x_{n−1}, x_{n}] & y[x_{n−2}, x_{n−1}, x_{n}] & ⋯ & y[x_{0}, …, x_{n}] \end{matrix}  (3.3.3)

Im Newtonpolynom (3.3.1) werden nur die Differenzen y[x_{0}, …, x_{i}] benötigt, s.u., (3.3.7). Daher genügt zur Durchführung ein lineares Feld [0, 1, …, n], in dem der Reihe nach zunächst die Werte y_{1}, …, y_{n} durch die ersten dividierten Differenzen, dann die ersten dividierten Differenzen y[x_{1}, x_{2}],…, y[x_{n−1}, x_{n−2}] durch die zweiten überschrieben werden, usw. Am Ende bleiben die in (3.3.7) benötigten Werte übrig. Es ist auch eine zeilenweise Berechnung möglich, wenn man mit dem höchsten Index beginnt. Dabei kann dann bei Hinzunahme zusätzlicher Interpolationspunkte das Differenzenschema einfach ergänzt werden.

Rechenaufwand

für (3.3.2): 3[n + (n − 1) + ⋯ + 1] = \frac{3}{2}n^{2} + O(n) Operationen.

Der Zusammenhang der in (3.3.2) eingeführten Differenzenquotienten mit den Koeffizienten a_{i} aus (3.3.1) ergibt sich aus dem folgenden Neville-Algorithmus und dem anschließenden Satz 3.3.4.

Definition 3.3.3 (und Neville-Algorithmus) Es seien p_{i,ℓ} ∈ Π_{ℓ} Abschnittspolynome mit

p_{i,ℓ}(x_{j}) = y_{j}, j = i, …, i + ℓ.  (3.3.4)

Man erhält die Werte dieser p_{i,ℓ} und den des Polynoms p_{n} zu (3.2.2) an einer Stelle x durch

für i = 0, 1, …, n: p_{i,0}(x) := y_{i};
für ℓ = 1, …, n:

für i = 0, …, n − ℓ:

p_{i,ℓ}(x) := \frac{(x − x_{i})p_{i+1,ℓ−1}(x) + (x_{i+ℓ} − x)p_{i,ℓ−1}(x)}{x_{i+ℓ} − x_{i}};

p_{n}(x) = p_{0,n}(x).

(3.3.5)

Für x ∈ (x_{i}, x_{i+ℓ}) ist p_{i,ℓ}(x) eine “konvexe Linearkombination” der p_{i,ℓ−1}(x) und p_{i+1,ℓ−1}(x). Dadurch werden Rundungsfehler im Algorithmus nicht verstärkt (vgl. §7).

Rechenaufwand für den Neville-Algorithmus (3.3.5) bei vorberechneten Differenzen x − x_{i}:

\frac{5}{2}n^{2} + O(n) Operationen.

Den Zusammenhang zwischen den dividierten Differenzen aus (3.3.2), den Teilpolynomen p_{i,ℓ} aus (3.3.4) und den Koeffizienten a_{i} aus der Newton-Interpolationsform (3.3.1) gibt der folgende

Satz 3.3.4 a) Die in (3.3.5) berechneten Polynome und die in (3.3.4) definierten sind gleich.

b) Die dividierten Differenzen in (3.3.2) stimmen mit den höchsten Koeffizienten der Teilpolynome in (3.3.4) überein:

y[x_{i}, …, x_{i+ℓ}] = \frac{1}{ℓ!} p_{i,ℓ}^{(ℓ)}, 0 ≤ i ≤ i + ℓ ≤ n.  (3.3.6)

c) Das Lagrange-Interpolationspolynom (3.2.2) ist in der Newtonform (3.3.1) darstellbar als

p_{n}(x) = y[x_{0}] + (x − x_{0}) y[x_{0}, x_{1}] + … + (x − x_{0}) ⋯ (x − x_{n−1}) y[x_{0}, …, x_{n}].  (3.3.7)

Beweis Durch Induktion, die Aussagen bezüglich (3.3.4) bis (3.3.7) sind offensichtlich richtig für n = ℓ = 0.

a) Unter der Induktionsvoraussetzung, daß p_{i,ℓ−1}(x) und p_{i+1,ℓ−1}(x) ihre Interpolationsbedingungen in (3.3.4) erfüllen, gilt für das in (3.3.5) definierte p_{i,ℓ}(x) die Aussage

p_{i,ℓ}(x_{j}) = y_{j}, j = i, …, i + ℓ.

Für j = i und j = i + ℓ treten nämlich in (3.3.5) nur der zweite bzw. erste Summand im Zähler auf, für die Fälle j = i + 1, …, i + ℓ − 1 kann man aufgrund der Induktionsvoraussetzung den Faktor y_{j} ausklammern, die Vorfaktoren ergeben zusammen eins.

b) Nun wird angenommen, (3.3.6) sei richtig für ℓ − 1. Dann gilt nach (3.3.1) und (3.3.4)

p_{i,ℓ}(x) = p_{i,ℓ−1}(x) + (x − x_{i}) ⋯ (x − x_{i+ℓ−1}) · a.  (3.3.8)

Zunächst wird gezeigt

a = y[x_{i}, …, x_{i+ℓ}].  (3.3.9)

Durch Vergleich der Koeffizienten von x^{ℓ} in (3.3.8) und (3.3.5) ergibt sich mit der Induktionsvoraussetzung die Gleichung

a = \frac{y[x_{i+1}, …, x_{i+ℓ}] − y[x_{i}, …, x_{i+ℓ−1}]}{x_{i+ℓ} − x_{i}}.

Dies ist die Rekursion (3.3.2) für (3.3.9). Durch Differentiation von (3.3.8) folgt (3.3.6).

c) Ist der Spezialfall von (3.3.8) und (3.3.9) für i = 0 und ℓ = 0, …, n.

Beispiel 3.3.5 Newton-Polynom durch vier Interpolationspunkte (Werte in der Tabelle):

i x_{i} y_{i}
0 −1 2
1 0 4 2
2 2 6 1 −\frac{1}{3}
3 3 12 6  \frac{5}{3}  \frac{1}{2}

Die eingerahmten Werte sind die Koeffizienten im Interpolationspolynom

p_{3}(x) = 2 + 2(x + 1) − \frac{1}{3}(x + 1)x + \frac{1}{2}(x + 1)x(x − 2).

Bei den besprochenen Verfahren werden keinerlei spezielle Eigenschaften der verwendeten Datenpaare (x_{j}, y_{j}) berücksichtigt. Wenn die y_{j} allerdings Funktionswerte einer bestimmten Funktion f sind, stellt sich die Frage, wie stark p und f voneinander abweichen. Diese und andere Eigenschaften sind im folgenden Satz zusammengefaßt.

Satz 3.3.6 a) Das Interpolationspolynom p_{n} aus (3.2.5) hängt linear vom Datenvektor y ab.

b) Die dividierte Differenz y[x_{i}, …, x_{i+k}] ist unabhängig von der Reihenfolge der Wertepaare (x_{i}, y_{i}), …, (x_{i+k}, y_{i+k}).

c) Sind die y_{i} Funktionswerte einer Funktion f ∈ C^{n}[a, b], d.h., y_{i} = f(x_{i}) mit x_{i} ∈ [a, b], so gilt

f[x_{i}, …, x_{i+k}] := y[x_{i}, …, x_{i+k}] = \frac{1}{k!} f^{(k)}(ξ),  (3.3.10)

wobei ξ ∈ ( min_{j=i}^{i+k} x_{j}, max_{j=i}^{i+k} x_{j}), 0 ≤ i ≤ i + k ≤ n. d) Für f(x) = c_{k}x^{k} + … ∈ Π_{k} gilt

f[x_{0}, …, x_{n}] = \{ \begin{matrix}c_{k} & für & k = n, \\ 0 & für & k < n. \end{matrix}

e) Für den Interpolationsfehler r_{n}(x) := f(x) − p_{n}(x), x ∈ [a, b], gilt bei einer Funktion f ∈ C^{n+1}[a, b] mit ω_{n+1}(x) := (x − x_{0}) … (x − x_{n}) und einem ξ ∈ (a, b) die Darstellung

r_{n}(x) = ω_{n+1}(x)f[x_{0}, …, x_{n}, x] = ω_{n+1}(x)\frac{f^{(n+1)}(ξ)}{(n + 1)!} .  (3.3.11)

Beweis Teil a) ist nach Definition offensichtlich, b) folgt aus Satz 3.2.2 und (3.3.6).

c) Nach (3.3.6) ist y[x_{i}, ⋯, x_{i+k}] = p_{i,k}^{(k)}(x)/k!. Nun verschwindet r_{k} = f − p_{i,k} in den Punkten x = x_{i}, ⋯, x_{i+k}. Nach dem iterierten Satz von Rolle existiert ξ ∈ ( min_{j=i}^{i+k} x_{j}, max_{j=i}^{i+k} x_{j}) mit

0 = r_{k}^{(k)}(ξ) = f^{(k)}(ξ) − p_{i,k}^{(k)}(ξ).

d) Dies ist ein Spezialfall von c).

e) Der Interpolationsfehler wird an einer festen Stelle x = x̄ dargestellt und das Interpolationspolynom p_{0,n+1} mit der zusätzlichen Stützstelle x_{n+1} := x̄, y_{n+1} := f(x̄), betrachtet. Nach Satz 3.3.4 gilt hierfür

p_{0,n+1}(x) = p_{0,n}(x) + (x − x_{0}) ⋯ (x − x_{n})f[x_{0}, ⋯, x_{n}, x_{n+1} = x̄].

Wegen p_{0,n+1}(x̄) = f(x̄) folgt in x̄ für den Fehler

r_{n}(x̄) = f(x̄) − p_{0,n}(x̄) = (x̄ − x_{0}) ⋯ (x̄ − x_{n}) f[x_{0}, ⋯, x_{n}, x̄].

Die Definition von ω_{n+1} und (3.3.10) liefern schließlich (3.3.11).

Wegen der Beziehung (3.3.10) liegt es nahe, das Hermite-Interpolationsproblem (3.2.3) durch Grenzübergang von mehreren Knoten in eine gemeinsame Stelle zu behandeln. Bekanntlich ist

lim_{x_{i+1}→x_{i}} f[x_{i}, x_{i+1}] = f′(x_{i}) für f ∈ C^{1}[a, b].

Analoge Aussagen gelten in (3.3.10), wenn mehr als zwei Knoten zusammenrücken. Das Interpolationsproblem ist allerdings nur dann sinnvoll gestellt, wenn, wie in (3.2.3) gefordert, an einer Stelle Funktions- und Ableitungswerte lückenlos vorgeschrieben sind. Es seien also für die Hermite-Interpolationsaufgabe bei einer genügend oft differenzierbaren Funktion f die folgenden Werte bekannt

f(x_{i}), f′(x_{i}), ⋯, f^{(j)}(x_{i}), wenn x_{i} = x_{i+1} = ⋯ = x_{i+j}.  (3.3.12)

Mit diesen Ableitungen werden im Einklang mit (3.3.10) die Differenzenquotienten definiert durch

f[x_{i}, ⋯, x_{i+k}] := \frac{1}{k!}f^{(k)}(x_{i}), 0 ≤ k ≤ j.

Für all solche Mehrfachenknoten (3.3.12) werden diese Werte in das Differenzentableau (3.3.3) eingetragen. Die noch fehlenden Differenzenquotienten berechnet man dann nach (3.3.2).

Beispiel 3.3.7 Differenzentableau für n = 4, x_{1} = x_{2} = x_{3}:

x_{0} y_{0}
x_{1} y_{1} y[x_{0}, x_{1}]
x_{1} y_{1}  y′_{1}  y[x_{0}, x_{1}, x_{1}]
x_{1} y_{1}  y′_{1}  \frac{1}{2}y′′_{1}  y[x_{0}, x_{1}, x_{1}, x_{1}]
x_{4} y_{4} y[x_{1}, x_{4}] y[x_{1}, x_{1}, x_{4}] y[x_{1}, x_{1}, x_{1}, x_{4}] y[x_{0}, x_{1}, x_{1}, x_{1}, x_{4}]

Bemerkungen: Man kann das Hornerschema aus Algorithmus 1 verallgemeinern zur Berechnung von Ableitungswerten von Polynomen.

Satz 3.3.6 erlaubt eine Gegenüberstellung von Taylor- und Newton-Entwicklung für f ∈ C^{n+1}[a, b]. Mit den analog zu ω_{n+1} definierten ω_{k}(x) = (x − x_{0}) ⋯ (x − x_{k−1}), vgl. (3.3.11), erhält man für die Entwicklung nach

Taylor: f(x) = ∑_{k=0}^{n}(x − x_{0})^{k} \frac{f^{(k)}(x_{0})}{k!} + (x − x_{0})^{n+1} \frac{f^{(n+1)}(ξ)}{(n + 1)!},
Newton: f(x) = ∑_{k=0}^{n} ω_{k}(x)f[x_{0}, ⋯, x_{k}] + ω_{n+1}(x) \frac{f^{(n+1)}(η)}{(n + 1)!},

ξ, η ∈ (a, b). Insbesondere geht für x_{j} → x_{0}, j = 1, ⋯, n, die Newton-Darstellung über in die Taylor-Darstellung.

3.4 Entwicklung nach Orthogonalpolynomen, Drei-Term-Rekursionen

Die Vorteile von Orthogonalbasen sind aus der Linearen Algebra bekannt. Um diese auch bei der Interpolation nutzen zu können werden in Π_{n} ⊆ C[a, b] Familien von Orthogonalpolynomen bezüglich geeigneter Skalarprodukte eingeführt. Diese lassen sich rekursiv durch Drei-Term-Rekursionen berechnen. Der wichtigste Fall ist die Entwicklung nach Tschebyscheff-Polynomen.

Zu einer positiven Gewichtsfunktion g : [a, b] ↦ R_{+} und f, h ∈ C[a, b] sei

\begin{aligned}(f, h) & := & (f, h)_{g} & := & ∫_{a}^{b} f(x)h(x)g(x) dx, bzw. \\ (f, h) & := & (f, h)_{g} & := & ∑_{k=0}^{n} f(x_{k})h(x_{k})g(x_{k}) \end{aligned}  (3.4.1)

mit a ≤ x_{0} < … < x_{n} ≤ b. Durch (3.4.1) sind Innenprodukte für Π_{n} definiert. Über Zusammenhänge zwischen den beiden Innenprodukten aus (3.4.1) in Π_{n} wird in §5 nachgedacht. Eine Familie von Orthogonalpolynomen ist definiert durch die Relationen

P_{k} ∈ Π_{k} und (P_{j}, P_{k}) = δ_{jk} · c_{k}, 0 ≤ j, k ≤ n.  (3.4.2)

Dabei bezeichnet δ_{jk} das übliche Kronecker-Symbol, die Werte c_{k} sind entweder in geeigneter Weise vorgegeben (z.B. c_{k} ≡ 1) oder berechnen sich aus der Forderung

P_{0}(x) ≡ 1, P_{k}(x) = x^{k} + …  (3.4.3)

Durch (3.4.1) bis (3.4.3) ist die Familie von Orthogonalpolynomen wohldefiniert und kann durch das Schmidtsche Orthogonalisierungsverfahren bestimmt werden.

Orthogonalsysteme bieten den Vorteil, daß die Entwicklungskoeffizienten zur Best-Approximation einer Funktion f explizit bekannt sind, mit

α_{j} := (f, P_{j})/(P_{j}, P_{j}), 0 ≤ j ≤ n, ist p_{k} := ∑_{j=0}^{k} α_{j}P_{j} ≈ f  (3.4.4)

Bestapproximierende vom Grad 0 ≤ k ≤ n. Hier werden nur die Tschebyscheff-Polynome behandelt, im §5 treten aber bei der numerischen Integration weitere Klassen von Orthogonalpolynomen auf.

Definition 3.4.1 Man bezeichnet die Funktionen

T_{n}(x) := cos(n arccos x), |x| ≤ 1, n = 0, 1, ..,  (3.4.5)

als Tschebyscheff-Polynome und ihre Nullstellen

x_{k} := x_{k,n} := cos (\frac{2k + 1}{2n + 2}π), k = 0, …, n  (3.4.6)

als Tschebyscheff-Punkte oder -Knoten.

Satz 3.4.2 Die in (3.4.5) definierten Funktionen T_{n} sind Polynome vom Grad n. Sie können mit T_{0} = 1, T_{1}(x) = x, rekursiv berechnet werden durch die Drei-Term-Rekursion

T_{n+1}(x) = 2xT_{n}(x) − T_{n−1}(x), n = 1, 2, ….  (3.4.7)

Die x_{k} = x_{k,n} aus (3.4.6) sind die Nullstellen von T_{n+1}. Die Polynome T_{n} haben die Form

T_{n}(x) = 2^{n−1}x^{n} + … ∈ Π_{n},  (3.4.8)

ihre Supremum-Norm ist eins, für n = 0, 1, … gilt

∥T_{n}∥_{[−1,1],∞} = max_{x∈[−1,1]} |T_{n}(x)| = 1.  (3.4.9)

Beweis Mit t := arccos x folgen die Aussagen für T_{0}, T_{1} unmittelbar aus (3.4.5). Die Rekursion in (3.4.7) ergibt sich aus dem Additionstheorem

cos(n + 1)t + cos(n − 1)t = 2 cos t · cos nt.

An (3.4.7) erkennt man, daß die T_{n} ∈ Π_{n} die Form (3.4.8) besitzen und an (3.4.5), daß die x_{k} aus (3.4.6) die Nullstellen von T_{n+1} sind und (3.4.9) gilt.

Satz 3.4.3 Die Tschebyscheff-Polynome T_{k}, k = 0, 1, …, n, bilden ein Orthogonalsystem bezüglich des Innenprodukts (f, h ∈ Π_{n})

(f, h)_{n} := ∑_{k=0}^{n} f(x_{k})h(x_{k}) mit x_{k} = x_{k,n} aus (3.4.6).  (3.4.10)

Zur Vereinfachung der Formeln (wegen (3.4.13)) verwendet man bei Entwicklungen nach Tschebyscheff-Polynomen (wie bei Fourierentwicklungen) statt (3.4.4) die Darstellung

f ≈ \frac{c_{0}}{2} + ∑_{j=1}^{n} c_{j}T_{j} =: p_{n}.  (3.4.11)

Die Koeffizienten ergeben sich bei den speziellen Knoten (3.4.6) in (3.4.10) durch

c_{j} = \frac{2}{n + 1}(f, T_{j})_{n} = \frac{2}{n + 1} ∑_{k=0}^{n} f(x_{k}) cos (j \frac{2k + 1}{2n + 2}π), j = 0, 1, …, n.  (3.4.12)

Das Polynom p_{n} aus (3.4.11) interpoliert f in x_{k,n}, k = 0, …, n.

Beweis Die Aussagen in (3.4.10), (3.4.12) folgen aus der bekannten Beziehung

(T_{i}, T_{j})_{n} = ∑_{k=0}^{n} T_{i}(x_{k})T_{j}(x_{k}) = ∑_{k=0}^{n} cos (i\frac{2k + 1}{2n + 2}π) cos (j \frac{2k + 1}{2n + 2}π)

= \{ \begin{matrix}0 & für & i ≠ j, \\ \frac{n+1}{2} & für & 0 < i = j < n + 1, \\ n + 1 & für & i = j = 0. \end{matrix}  (3.4.13)

Die Relation (T_{0}, T_{0})_{n} = 2(T_{j}, T_{j})_{n}, 1 ≤ j ≤ n, in Formel (3.4.13) ist der Grund für den Übergang von (3.4.5) zu (3.4.11). Da p_{n} nach einer Orthogonalbasis entwickelt wurde, ist

(f − p_{n}, f − p_{n})_{n} = min_{q∈Π_{n}}(f − q, f − q)_{n} = min_{q∈Π_{n}} ∑_{k=0}^{n}[f(x_{k}) − q(x_{k})]^{2} = 0.

Das Minimum wird im Interpolationspolynom an die Funktion f zu den Punkten x_{k} aus (3.4.6) angenommen, mit dem p_{n} offensichtlich übereinstimmt.

Rechenaufwand zur Bestimmung der c_{j} aus (3.4.12):

2n^{2} + O(n) Operationen + n^{2} cos -Funktionsauswertungen.

Die Drei-Term-Rekursion (3.4.7) ist auch bei der Auswertung eines Polynoms (3.4.11) einsetzbar. Analoge Algorithmen sind für alle Orthogonalfamilien mit Drei-Term-Rekursionen möglich.

Algorithmus 3.4.4 Clenshaw-Algorithmus

d_{n+1} := 0; d_{n} := c_{n}; ; für k = n − 1, n − 2, …, 1: ; d_{k} := c_{k} + 2xd_{k+1} − d_{k+2}; ; p_{n}(x) = c_{0}/2 + xd_{1} − d_{2};  (3.4.14)

zur Berechnung von

p_{n}(x) = \frac{c_{0}}{2} + ∑_{j=1}^{n} c_{j}T_{j}(x) für x ∈ R, ( i.a. |x| ≤ 1).  (3.4.15)

Rechenaufwand

von (3.4.14): 3n + O(1) Operationen.

Der Clenshaw-Algorithmus ergibt sich einfach durch Vertauschung der Multiplikationen in folgender Darstellung. Der Polynomwert (3.4.15) entspricht einem Innenprodukt

p_{n}(x) − \frac{c_{0}}{2} = (c_{1}, …, c_{n})(T_{1}(x), …, T_{n}(x))^{T}.

Da der Vektor t := (T_{1}(x), …, T_{n}(x))^{T} aufgrund der Rekursion (3.4.7) das Dreieck-System

( \begin{matrix}1 \\ −2x & 1 \\ 1 & −2x & 1 \\ & ... & ... & ... \\ & & 1 & −2x & 1 \end{matrix} ) ( T_{1}(x) ; T_{2}(x) ; T_{3}(x) ; ⋮ ; T_{n}(x) ) = ( x ; −1 ; 0 ; ⋮ ; 0 ) ⟺ : Bt = r

löst, gilt t = B^{−1}r. Der Vektor d := (B^{T})^{−1}c wird in der Rekursion (3.4.14) berechnet, es folgt

p_{n}(x) − \frac{c_{0}}{2} = c^{T}t = c^{T}B^{−1}r = d^{T}r = xd_{1} − d_{2}.

Bemerkung: Wegen (3.4.5) und der daraus abgeleiteten Normabschätzung (3.4.9) ist der Fehlerverlauf bei einer (abgebrochenen) Tschebyscheff-Entwicklung wesentlich gleichförmiger als etwa beim Newton-Polynom mit Hornerschema und sonstigen Knoten.

3.5 Vergleich der Verfahren

Verfahren  Rechenaufwand(Oper.):  Bemerkungen
Vorbereitung, 1 Auswertung

Lagrange origin. L_{i}(x) : 3n^{2} 2n L_{i} abhängig von x und Gitter, Sta-

bilitätsprobleme

Lagr. baryzentr.  b_{i} : \frac{3}{2}n^{2}  5n  b_{i} nur gitterabhängig, flexibel, stabil
Newton  y[.] : \frac{3}{2}n^{2}  3n  y[x_{0,...}] abhängig von Gitter und Da-

ten, flexibel, Stabilitätsprobleme

Aitken-Neville  —  \frac{5}{2}n^{2}  für Spezialanwendungen
Clenshaw, n bel.  c_{i} : 2n^{2}  3n  Einfach, stabiler als Newton.
Clenshaw, n = 2^{m}  m · n  3n  F.F.T.(Numerik IIA), spezielle Git-

ter, Übergang von 2^{m} zu 2^{m+1}.

In den Kapiteln 3.2 bis 3.4 wurden eine Reihe verschiedener Methoden zur Bestimmung von Interpolationspolynomen vorgestellt. In 3.2 und 3.3 waren die Knoten völlig willkürlich vorgebbar, in 3.4 wurde nur das Intervall [−1, 1] behandelt bei Verwendung der Knoten (3.4.6). In der obigen Tabelle werden die verschiedenen Methoden gegenüberstellt. Dabei wird der Rechenaufwand getrennt nach der Vorberechnung von Koeffizienten, der bei jeder Interpolation einmalig auftritt, und der Polynomauswertung bei bekannten Koeffizienten.

3.6 Interpolationsfehler, optimale Knoten

Bisher wurde davon ausgegangen, daß die “Eingangsdaten” (x_{i}, y_{i}) festgelegt sind und daher nur die Berechnung und Auswertung des Interpolationspolynoms behandelt. Wenn das Ziel der Interpolation aber die Approximation einer gegebenen Funktion ist, kann der Fehler ohne Mehraufwand durch geeignete Wahl der Interpolationsknoten stark verkleinert werden. Dazu setzt man an der Darstellung (3.3.11) des Interpolationsfehlers an und benutzt die Supremumsnorm

∥g∥_{∞} := sup{|g(x)| : x ∈ [α, β]}, g ∈ C[α, β].

Für eine “glatte” Funktion f ∈ C^{n+1}[α, β] erhält man aus der Fehlerdarstellung (3.3.11) mit ω_{n+1}(x) := (x − x_{0}) ⋯ (x − x_{n}) und x ∈ [α, β], ξ ∈ (α, β), die Schranke

|f(x) − p_{n}(x)| = |ω_{n+1}(x)|\frac{|f^{(n+1)}(ξ)|}{(n + 1)!} ≤ |ω_{n+1}(x)|\frac{∥f^{(n+1)}∥_{∞}}{(n + 1)!} .  (3.6.1)

Bei festem Polynomgrad n ist der Anteil ∥f^{(n+1)}∥_{∞} durch die Funktion f vorgegeben. Dagegen kann aber der Beitrag |ω_{n+1}(x)| durch geeignete Wahl der Stützstellen beeinflußt werden. Zwei mögliche Situationen werden diskutiert: Problem 1: Es sind sehr viele Funktionswerte von f gegeben an äquidistanten Stellen x_{i} = α + ih, i = 0, 1, … (z.B. Funktionstafel, Meßreihe). Welche Knoten eignen sich, bei festem n, am besten zur Auswertung von f an einer bestimmten Stelle x?

Es sei nun speziell x ∈ [x_{j}, x_{j+1}], 0 ≤ j < n.  x_{0}  x_{n} x_{j} x x_{j+1}

Dann folgt

|ω_{n+1}(x)| = |x − x_{0}| ⋯ |x − x_{j}||x − x_{j+1}| ⋯ |x − x_{n}|
≤ h(j + 1 − 0)h(j + 1 − 1) ⋯ hh ⋯ h(n − j) = h^{n+1}(j + 1)!(n − j)!
= h^{n+1} \frac{(n + 1)!}{\binom{n+1}{j+1}}.  (3.6.2)

Da die Binomialkoeffizienten bei \frac{n+1}{2} den größten Wert haben, ist der Fehler minimal für

j + 1 = ⌊\frac{n + 1}{2}⌋,

d.h., es ist am günstigsten, links und rechts von x etwa gleich viele Stützstellen zu wählen.

Problem 2: Wenn f durch das Polynom p_{n} gleichmäßig möglichst gut approximiert werden soll, ist der maximale Fehler im Intervall [α, β] zu betrachten. Dieser erfüllt nach (3.6.1)

∥f − p_{n}∥_{∞} ≤ ∥ω_{n+1}∥_{∞} \frac{∥f^{(n+1)}∥_{∞}}{(n + 1)!} .  (3.6.3)

Da in dieser Abschätzung nur der erste Faktor beeinflußt werden kann, soll dieser minimiert werden. Dazu sind diejenigen Knoten x_{0}, …, x_{n} zu suchen mit

∥ω_{n+1}∥_{∞} = min_{ξ_{j}∈[α,β]} max_{x∈[α,β]} |x − ξ_{0}||x − ξ_{1}| ⋯ |x − ξ_{n}|.  (3.6.4)

Die Lösung dieses Problems kann explizit angegeben werden, es gilt

Satz 3.6.1 Die optimalen Knoten in (3.6.4) sind die Tschebyscheff-Punkte

x_{k} := \frac{α + β}{2} − \frac{β − α}{2} cos (\frac{2k + 1}{2n + 2}π), k = 0, …, n.  (3.6.5)

Der Minimalwert der Norm ist

∥ω_{n+1}∥_{∞} = max_{x∈[α,β]} |ω_{n+1}(x)| = 2 (\frac{β − α}{4})^{n+1} .  (3.6.6)

Bemerkung: Die Knoten ergeben sich aus den in (3.4.6) genannten durch affine Transformation des Intervalls

\{ \begin{matrix}[−1, 1] & → & [α, β] \\ ξ & ↦ & \frac{α+β}{2} − \frac{β−α}{2}ξ = x \end{matrix} .  (3.6.7)

Die Punkte ξ_{k} = cos \frac{2k+1}{2n+2}π = Re exp (i\frac{2k+1}{2n+2}π) sind die Realteile der (4n + 4)-ten komplexen Einheitswurzeln. Sie liegen am Rand des Intervalls [−1, 1] viel dichter als im Innern.

[figure: n = 3]

Beweis des Satzes: Beim Standardintervall [α, β] = [−1, 1] gilt x_{k} = −ξ_{k}, k = 0, …, n, also

T_{n+1}(x_{k}) = cos ((n + 1) arccos x_{k}) = cos ((n + 1)\frac{2k + 1}{2n + 2}π) = cos (\frac{π}{2} + kπ) = 0.

Daher ist ω_{n+1}, bis auf eine Konstante, das Tschebyscheff-Polynom. Ein Vergleich des höchsten Koeffizienten mit (3.4.8) liefert genauer

ω_{n+1}(x) = x^{n+1} + … = 2^{−n}T_{n+1}(x).

Die Funktion cos(n + 1)φ nimmt ihre Extrema ±1 in den Stellen φ_{j} = \frac{jπ}{n+1} an, das Polynom ω_{n+1} seine Extrema ±2^{−n} daher in t_{j} = cos \frac{jπ}{n+1}, j = 0, …, n + 1. Daher gilt

∥ω_{n+1}∥_{∞} = 2^{−n}.

Dies ist tatsächlich der Minimalwert dieser Norm, gäbe es nämlich ein Polynom der Form p_{n+1} = x^{n+1} + … mit kleinerer Norm, dann müßte für dessen Differenz zu ω_{n+1} in den Stellen t_{j} gelten

ω_{n+1}(t_{j}) − p_{n+1}(t_{j}) \{ \begin{matrix}< 0 & für & n + 1 − j gerade \\ > 0 & für & n + 1 − j ungerade \end{matrix} , j = 0, …, n + 1.

Das Polynom ω_{n+1} − p_{n+1} vom Grad n (!) hätte dann aber mindestens n + 1 Nullstellen. Dies führt zu einem Widerspruch.

Durch die Transformation (3.6.7) wird

T_{n+1}(ξ) = T_{n+1}(\frac{α + β − 2x}{β − α}) = 2^{n}(\frac{−2}{β − α})^{n+1}x^{n+1} + …,

die Normierung des höchsten Koeffizienten ergibt damit

ω_{n+1}(x) = ( − \frac{β − α}{2})^{n+1}2^{−n}T_{n+1}(ξ).

Daraus folgt die Schranke (3.6.6).

Nach dem Satz von Weierstraß ist auf einem kompakten Intervall jede stetige Funktion beliebig genau durch Polynome approximierbar. Dieses Ergebnis läßt sich aber nicht unbesehen auf Interpolationspolynome übertragen, selbst wenn immer mehr Stützstellen verwendet werden. Dazu wird die Fehleraussage (3.6.3) für zwei Klassen von Knoten betrachtet. Für äquidistante Punkte x_{j} = α + j(β − α)/n, j = 0, …, n, ergibt sich aus (3.6.2) die einfache Schranke

∥ω_{n+1}∥_{∞} ≤ (\frac{β − α}{n})^{n+1}n! ≤ c(\frac{β − α}{e})^{n+1} \frac{1}{\sqrt{n}}, äquidistant,

deren asymptotisches Verhalten mit der Stirlingschen Formel (n! ∼ (n/e)^{n}\sqrt{2πn}) approximiert wurde. Aus dieser Aussage und der aus (3.6.6) folgen explizite Schranken für die Interpolationsfehler bei äquidistanten und Tschebyscheff-Knoten:

∥p_{n} − f∥_{∞} ≤ \frac{c}{\sqrt{n}}(\frac{β − α}{e})^{n+1} \frac{∥f^{(n+1)}∥}{(n + 1)!}, äquidistant,  (3.6.8)
∥p_{n} − f∥_{∞} ≤ 2(\frac{β − α}{4})^{n+1} \frac{∥f^{(n+1)}∥}{(n + 1)!}, Tschebyscheff.  (3.6.9)

Bei diesen Formeln ist zu beachten, daß sich bei einer Vergrößerung des Polynomgrads n auch die Ordnung der Ableitung f^{(n+1)} erhöht. Schon lange bekannt ist das Beispiel

f(x) := \frac{1}{1 + 25x^{2}} , x ∈ [−1, 1],

wo bei äquidistanten Stützstellen das Anwachsen der Ableitungen für n → ∞ verhindert, daß der Fehler klein wird. Tatsächlich divergiert die Folge der Interpolationspolynome {p_{n}} (n → ∞) bei diesem Beispiel in Randnähe bei ±1. Im Vergleich von (3.6.8) und (3.6.9) verbessert der Übergang zu Tschebyscheffpunkten den wichtigsten Vorfaktor e^{−n} auf 4^{−n}. Für Tschebyschefknoten und f ∈ C^{m+1}[−1, 1], m ≥ 1, läßt sich sogar Konvergenz nachweisen in der Form [Schaback, 10.4.5]

∥p_{n} − f∥_{∞} = o(\frac{log n}{n^{m}}), n → ∞

Diese Beobachtungen legen die Frage nahe, wie weit man mit dem interpolierenden Polynom noch vom bestapproximierenden entfernt ist, d.h. von demjenigen p̂_{n} ∈ Π_{n} mit

∥p̂_{n} − f∥_{∞} = min_{p_{n}∈Π_{n}} ∥p_{n} − f∥_{∞} =: dist(f, Π_{n}).  (3.6.10)

Dazu wird der Interpolationsprozeß als ein Operator

P_{n} : \{ \begin{matrix}C[α, β] & ↦ & Π_{n}, \\ g & ↦ & P_{n}g, & (P_{n}g)(x_{i}) = g(x_{i}), i = 0, …, n, \end{matrix}  (3.6.11)

betrachtet. Dieser Operator ist linear und ein Projektor, P_{n}^{2} = P_{n}, denn Polynome p ∈ Π_{n} werden reproduziert, P_{n}p = p. Die Norm dieses Projektors kann aus den Lagrange-Polynomen berechnet werden. Dazu sei

λ_{n}(x) := ∑_{i=0}^{n} |L_{i}(x)|  die Lebesgue-Funktion.  (3.6.12)

Diese tritt im folgenden Satz auf, der ein sehr allgemeines Beweisprinzip benutzt.

Satz 3.6.2 Für f ∈ C[α, β] gilt

∥P_{n}f − f∥_{∞} ≤ (1 + ∥P_{n}∥) dist (f, Π_{n}),  (3.6.13)
∥P_{n}∥ = ∥λ_{n}∥_{∞} ≥ 1,  (3.6.14)

wobei ∥P_{n}∥ := sup {∥P_{n}g∥_{∞}/∥g∥_{∞} : g ∈ C[α, β], g ≢ 0}.

Bemerkung: Dies zeigt, daß der Interpolationsfehler höchstens um den Faktor 1 + ∥P_{n}∥ ≥ 2 vom minimalen Fehler (3.6.10) abweicht. Daher interessieren Interpolationsknoten mit möglichst kleinem Wert ∥P_{n}∥ = ∥λ_{n}∥_{∞}.

Beweis Mit einem beliebigem p ∈ Π_{n} gilt wegen P_{n}p = p die Aussage

∥P_{n}f − f∥_{∞} = ∥P_{n}f − P_{n}p + p − f∥_{∞} = ∥(I − P_{n})(p − f)∥_{∞}
≤ (1 + ∥P_{n}∥)∥p − f∥_{∞}.

Auf der rechten Seite kann nun zum Infimum von ∥p − f∥_{∞} übergegangen werden.

Für die Norm ∥P_{n}∥ folgt aus der Lagrange-Darstellung

∥P_{n}g∥_{∞} = ∥ ∑_{i=0}^{n} g(x_{i})L_{i}∥_{∞} ≤ ∥g∥_{∞}∥ ∑_{i=0}^{n} |L_{i}|∥_{∞} = ∥g∥_{∞}∥λ_{n}∥_{∞},

d.h., ∥P_{n}∥ ≤ ∥λ_{n}∥_{∞}. Zum Nachweis der Gleichheit sei x̂ ∈ [α, β] eine Maximalstelle von λ_{n}, also λ_{n}(x̂) = ∥λ_{n}∥_{∞} und g eine spezielle Funktion mit ∥g∥_{∞} = 1 und g(x_{i}) = sign L_{i}(x̂). Hierfür gilt

∥P_{n}g∥_{∞} ≥ |P_{n}g(x̂)| = | ∑_{i=0}^{n} L_{i}(x̂) sign L_{i}(x̂)| = λ_{n}(x̂).

Dies zeigt die Gleichung in (3.6.14). Die untere Schranke für ∥P_{n}∥ gilt wegen ∥p∥ = ∥P_{n}p∥_{∞} ≤ ∥P_{n}∥∥p∥_{∞} ∀p ∈ Π_{n}.

Die Bestimmung eines bestapproximierenden Polynoms (3.6.10) ist ein sehr aufwendiger Prozeß. Zur Klärung der Frage, ob im konkreten Fall nicht eine gute Interpolierende ausreicht, kann der “Verlustfaktor” 1 + ∥P_{n}∥ herangezogen werden. Für Tschebyscheffknoten wächst er wie 1.52 + \frac{2}{π} ln(n + 1). Etwas günstiger verhält sich dieser Faktor für die gestreckten Tschebyscheffknoten

x_{k} = \frac{α + β}{2} − \frac{β − α}{2} \frac{cos \frac{2k+1}{2n+2}π}{cos \frac{π}{2n+2}} , k = 0, …, n, .  (3.6.15)

bei denen x_{0} = α, x_{n} = β gilt. Die folgende Tabelle enthält die entsprechenden Werte für einige Polynomgrade.

n = 5 8 10 15 20
3.1 3.4 3.5 3.7 3.9 Tschebyscheffknoten (3.6.5)
1 + ∥P_{n}∥ ≅ 2.6 2.9 3.0 3.3 3.5 gestreckte Tscheb.Knoten (3.6.15)

4 Spline-Funktionen

4.1 Definition

Der Fehler bei der Interpolation einer Funktion f ∈ C^{k+1}[a, b] durch ein Polynom p_{k} vom Grad k mit Stützstellen ξ_{0}, …, ξ_{k} ∈ [a, b] hat nach (3.6.1) die Gestalt (x ∈ [a, b])

|f(x) − p_{k}(x)| ≤ |(x − ξ_{0}) ⋯ (x − ξ_{k})|\frac{∥f^{(k+1)}∥_{∞}}{(k + 1)!} ≤ \frac{(b − a)^{k+1}}{(k + 1)!} ∥f^{(k+1)}∥_{∞}.  (4.1.1)

Im letzten Paragraph wurde ein Beispiel genannt, bei dem für k → ∞ i.a. keine Konvergenz ∥f − p_{k}∥_{∞} → 0 garantiert werden kann. Dagegen folgt aus (4.1.1) trivialerweise

|f − p_{k}| → 0 für (b − a) → 0, k fest.

Dies nutzt man aus durch Unterteilung des Gesamtintervalls [a, b] mit einem Gitter

Δ : a = x_{0} < x_{1} < … < x_{n} = b, h_{i} := x_{i+1} − x_{i}, i = 0, …, n − 1, H := max_{i=0}^{n−1} h_{i}, (4.1.2)

und approximiert die Funktion f in jedem Teilintervall [x_{i}, x_{i+1}] durch ein Polynom festen Grades.

Definition 4.1.1 Zu einem Gitter Δ nach (4.1.2) und m, k ∈ N_{0}, 0 ≤ m < k, wird der Raum S_{Δ,k}^{m} aller Spline-Funktionen s bezeichnet, die

a) lokal, in jedem Teilintervall (x_{i}, x_{i+1}], Polynome vom Grad k sind, d.h., s|_{(x_{i},x_{i+1}]} ∈ Π_{k},

b) global m-mal stetig differenzierbar sind, d.h., s ∈ C^{m}[a, b].

Hier wird konkret nur der Fall der kubischen Splines (k = 3) mit m ∈ {1, 2} behandelt, einige Aussagen werden aber allgemeiner formuliert.

Anwendungsgebiete von Splines:

— Approximation (nicht-analytischer) Funktionen

— Approximation von Meßdaten

— Kurven- und Flächendarstellung in der Computer-Graphik (CAD)

— Lösung von gewöhnlichen und partiellen Differentialgleichungen (FEM, Finite-Elemente-Methode)

Von besonderer Bedeutung sind die sogenannten natürlichen Splines aus S_{Δ,2m−1}^{2m−2} wegen der folgenden Minimaleigenschaft.

Satz 4.1.2 Mit einem Gitter Δ nach (4.1.2) und f ∈ C^{2}[a, b] erfülle die Splinefunktion s ∈ S_{Δ,3}^{2} die Interpolationsbedingungen

s(x_{i}) = f(x_{i}), i = 0, 1, …, n,  (4.1.3)

sowie eine der Bedingungen

a) s′′(a) = s′′(b) = 0,
b) s′(a) = f′(a), s′(b) = f′(b).

Dann gilt

∥f′′ − s′′∥_{2}^{2} = ∥f′′∥_{2}^{2} − ∥s′′∥_{2}^{2} ≥ 0,  (4.1.4)

mit der Norm ∥g∥_{2}^{2} := ∫_{a}^{b} g(x)^{2}dx. Der so definierte Spline ist eindeutig bestimmt.

Beweis Mit dem L_{2}-Innenprodukt (f, g)_{2} := ∫_{a}^{b} f(x)g(x) dx gilt

∥f′′ − s′′∥_{2}^{2} − ∥f′′∥_{2}^{2} + ∥s′′∥_{2}^{2} = −2(f′′, s′′)_{2} + 2(s′′, s′′)_{2} = 2(s′′ − f′′, s′′)_{2}
= 2 ∫_{a}^{b}[s′′(x) − f′′(x)]s′′(x) dx.

Durch partielle Integration auf den einzelnen Teilintervallen [x_{i}, x_{i+1}] ergibt sich hier

∫_{x_{i}}^{x_{i+1}}[s′′ − f′′]s′′ dx = (s′ − f′)s′′|_{x_{i}}^{x_{i+1}} − ∫_{x_{i}}^{x_{i+1}}(s′ − f′)s′′′ dx
= (s′ − f′)s′′|_{x_{i}}^{x_{i+1}} − \underbrace{(s − f)}_{=0,(4.1.3)} s′′′|_{x_{i}}^{x_{i+1}} + ∫_{x_{i}}^{x_{i+1}}(s − f) \underbrace{s^{(4)}}_{=0,s∈Π_{3}} dx

Der verbleibende Beitrag (s′ − f′)s′′ ist stetig, bei Summation über die Teilintervalle zeigt sich

∫_{a}^{b}[s′′ − f′′]s′′ dx = ∑_{i=0}^{n−1} ∫_{x_{i}}^{x_{i+1}} ... = (s′(x) − f′(x))s′′(x)|_{a}^{b} = 0.

Dabei verschwindet die Klammer, wenn Bedingung b) erfüllt ist, bzw. die zweite Ableitung bei Bedingung a). Zum Nachweis der Eindeutigkeit seien s, s̄ zwei Splines, die die Voraussetzungen erfüllen. Für beide gilt dann (4.1.4), also

0 ≤ ∥s′′∥_{2}^{2} − ∥s̄′′∥_{2}^{2} = ∥s′′ − s̄′′∥_{2}^{2} = ∥s̄′′∥_{2}^{2} − ∥s′′∥_{2}^{2} ≤ 0.

Daher ist s′′ − s̄′′ ≡ 0, also s(x) − s̄(x) = cx + d, c, d ∈ R. Da die Differenz wegen (4.1.3) aber in allen x_{i} verschwindet, gilt s = s̄.

Bemerkung: Unter allen Funktionen, die die Werte (x_{i}, f(x_{i})) interpolieren, hat der natürliche kubische Spline nach (4.1.4) minimale zweite Ableitung im quadratischen Mittel, bei b) etwa ist

∥s′′∥_{2} = min{∥g′′∥_{2} : g ∈ C^{2}[a, b], g(x_{i}) = f(x_{i}) ∀i, g′′(a) = g′′(b) = 0}.

In der Mechanik entspricht ∥g′′∥_{2} der Biegenergie eines elastischen Lineals, wie es früher im Schiffsbau eingesetzt wurde (Strak-Latte, engl. Spline).

4.2 Existenz des Interpolations-Splines

Für den Interpolationsspline s ∈ S_{Δ,3}^{2}, der gegebene Werte y_{i} interpoliert, s(x_{i}) = y_{i}, i = 0, …, n, wird in jedem Teilintervall eine Darstellung als Polynom benötigt. Dazu bietet sich die folgende Beziér-Bernstein-Darstellung an, die auf dem Standardintervall [0, h], h > 0, lautet

s(x) = \frac{1}{h^{k}} ∑_{j=0}^{k} \binom{k}{j}x^{j}(h − x)^{k−j} b_{j}  (4.2.1)

mit Koeffizienten b_{0}, …, b_{k}. Diese Darstellung besitzt folgende Eigenschaften:

\begin{matrix}(a) & b_{j} ≡ 1 ⇒ s(x) = \frac{1}{h^{k}} ∑_{j=0}^{k} \binom{k}{j}x^{j}(h − x)^{k−j} = \frac{1}{h^{k}} (x + h − x)^{k} ≡ 1 \\ (b) & s(0) = b_{0}, s(h) = b_{k} \\ (c) & s′(x) = \frac{1}{h^{k}} [−k(h − x)^{k−1}b_{0} + k(h − kx)(h − x)^{k−2}b_{1} + x(…)] ⇒ \\ & s′(0) = \frac{b_{1} − b_{0}}{h/k} , s′(h) = \frac{b_{k} − b_{k−1}}{h/k} \\ (d) & s′′(0) = \frac{k(k−1)}{h^{2}}(b_{0} − 2b_{1} + b_{2}), s′′(h) = \frac{k(k−1)}{h^{2}}(b_{k−2} − 2b_{k−1} + b_{k}). \end{matrix} \}  (4.2.2)

Die Eigenschaft (c) führt bei k = 3 auf eine einfache geometrische Interpretation der Koeffizienten b_{j}. Werden die Paare (ξ_{j}, b_{j})^{T} mit ξ_{j} = jh/3 betrachtet, dann ist die Gerade \overline{(ξ_{0}, b_{0})^{T} (ξ_{1}, b_{1})^{T}} die Tangente an s in x = ξ_{0} = 0 und \overline{(ξ_{2}, b_{2})^{T} (ξ_{3}, b_{3})^{T}} die Tangente an s in x = ξ_{3} = h. Durch b_{0}, b_{3} werden also die Werte von s in den Randpunkten beeinflußt, durch b_{1}, b_{2} die dortigen Ableitungen. Man bezeichnet die Koeffizienten oft als Kontrollpunkte.

[figure: x; x_{0} = ξ_{0}; ξ_{1}; ξ_{2}; ξ_{3} = x_{1}; b_{0}; b_{1}; b_{2}; b_{3}; s(x)]

Der Spline s wird auf dem Gesamtintervall [a, b] durch lokale Darstellungen (4.2.1) zusammengesetzt. Dazu wird ein Zusatzgitter eingeführt,

…^{x_{0} y_{0}}  ^{x_{1} y_{1}}  ^{x_{2} y_{2}}  … ξ_{0} b_{0} ξ_{1} b_{1} ξ_{2} b_{2} ξ_{3} b_{3} ξ_{4} b_{4} ξ_{5} b_{5} ξ_{6} b_{6}  \begin{matrix}ξ_{ik+j} := x_{i} + \frac{j}{k}h_{i}, \\ j = 0, …, k − 1, \\ i = 0, …, n − 1, \end{matrix}  (4.2.3)

Die Stetigkeitsbedingungen an s im Punkt x_{j} = ξ_{kj}, 1 ≤ j ≤ n − 1, mit Polynomstücken (4.2.1) lauten für

C^{0}: ist erfüllt mit b_{kj} = y_{j}.

C^{1}: Nach (4.2.2,c) entspricht die Stetigkeit der 1. Ableitung

s′(x_{j}−) = \frac{k}{h_{j−1}} (b_{kj} − b_{kj−1}) =^{!} \frac{k}{h_{j}} (b_{kj+1} − b_{kj}) = s′(x_{j}+) ⟺

\frac{1}{h_{j−1}} b_{kj−1} + \frac{1}{h_{j}} b_{kj+1} = (\frac{1}{h_{j−1}} + \frac{1}{h_{j}})b_{kj} = (\frac{1}{h_{j−1}} + \frac{1}{h_{j}})y_{j}.  (4.2.4)

2. Ableitung: Nach (4.2.2,d) ist die Bedingung s′′(x_{j}−) =^{!} s′′(x_{j}+) äquivalent mit

\frac{1}{h_{j−1}^{2}} (b_{kj−2} − 2b_{kj−1} + b_{kj}) = \frac{1}{h_{j}^{2}} (b_{kj} − 2b_{kj+1} + b_{kj+2}) =: μ_{j}  (4.2.5)

Im folgenden werden jetzt die Werte μ_{j} = \frac{1}{6}s′′(x_{j}) aus (4.2.5) als eigentliche Parameter des Splines interpretiert, die Koeffizienten b lassen sich daraus bei k = 3 berechnen. Die Beziehungen (4.2.5) an den beiden Rändern von [x_{j}, x_{j+1}],

\begin{aligned}2b_{3j+1} − b_{3j+2} & = & y_{j} − h_{j}^{2}μ_{j} \\ −b_{3j+1} + 2b_{3j+2} & = & y_{j+1} − h_{j}^{2}μ_{j+1} \end{aligned}

können nämlich nach b_{3j+1}, b_{3j+2} aufgelöst werden und ergeben

\begin{matrix}b_{3j+1} & = & \frac{1}{3}(2y_{j} + y_{j+1}) − \frac{1}{3}h_{j}^{2}(2μ_{j} + μ_{j+1}) \\ b_{3j+2} & = & \frac{1}{3}(y_{j} + 2y_{j+1}) − \frac{1}{3}h_{j}^{2}(μ_{j} + 2μ_{j+1}) \end{matrix} \} .  (4.2.6)

Diese Gleichungen führen auf folgende Formulierung der C^{1}-Bedingungen (4.2.4):

h_{j−1}μ_{j−1} + 2(h_{j−1} + h_{j})μ_{j} + h_{j}μ_{j+1} = \frac{y_{j+1} − y_{j}}{h_{j}} − \frac{y_{j} − y_{j−1}}{h_{j−1}} , j = 1, …, n − 1.

Bei Division durch h_{j−1} + h_{j} = x_{j+1} − x_{j−1} kann insbesondere die rechte Seite nach (3.3.2) einfacher als dividierte Differenz dargestellt werden:

\underbrace{\frac{h_{j−1}}{h_{j−1} + h_{j}}}_{=: α_{j}} μ_{j−1} + 2μ_{j} + \underbrace{\frac{h_{j}}{h_{j−1} + h_{j}}}_{=: β_{j}} μ_{j+1} = y[x_{j−1}, x_{j}, x_{j+1}], j = 1, …, n − 1.  (4.2.7)

Zusätzlich sind noch die Randbedingungen aus Satz 4.1.2 zu berücksichtigen. Im

Fall a) s′′(a) = s′′(b) = 0, bedeuten diese einfach

μ_{0} = μ_{n} = 0.

Nach Streichung dieser beiden Unbekannten ist (4.2.7) ein quadratisches Gleichungssystem. Dagegen gilt im

Fall b) s′(a) = y′_{0}, s′(b) = y′_{n}, nach (4.2.2,c) und (4.2.6) am linken Rand

y_{0} + \frac{h_{0}}{3} y′_{0} = b_{1} = \frac{1}{3}(2y_{0} + y_{1}) − \frac{h_{0}^{2}}{3} (2μ_{0} + μ_{1}).

Da rechts analoges gilt, führen diese Bedingungen b) also auf die zusätzlichen Gleichungen

\begin{matrix}2μ_{0} + μ_{1} & = & \frac{1}{h_{0}} (\frac{y_{1}−y_{0}}{h_{0}} − y′_{0}) = y[x_{0}, x_{0}, x_{1}], \\ μ_{n−1} + 2μ_{n} & = & y[x_{n−1}, x_{n}, x_{n}]. \end{matrix} \}  (4.2.8)

In beiden Fällen ergeben sich die Momente μ = (μ_{j})_{j} als Lösung eines Gleichungssystems

Aμ = r

mit einer Tridiagonalmatrix

\begin{matrix}A = ( \begin{matrix}2 & β_{1} \\ α_{2} & 2 & β_{2} \\ & α_{3} & 2 & β_{3} \\ & & ... & ... & ... \end{matrix} ) & bzw. & A = ( \begin{matrix}2 & β_{0} \\ α_{1} & 2 & β_{1} \\ & α_{2} & 2 & β_{2} \\ & & ... & ... & ... \end{matrix} ) . \\ ∈ R^{(n−1)×(n−1)} & & ∈ R^{(n+1)×(n+1)} \end{matrix}  (4.2.9)

Satz 4.2.1 Für die Matrix A gilt in beiden Fällen von (4.2.9) die Schranke

∥A^{−1}∥_{∞} ≤ 1.

Beweis Nach (4.2.7), (4.2.8) ist α_{j}, β_{j} ≥ 0, α_{j} + β_{j} = 1, (mit α_{0} := β_{n+1} := 0). Diese Matrix ist diagonaldominant, daher gilt für jeden Vektor r und μ mit Aμ = r und jeden Index j:

2|μ_{j}| = |r_{j} − α_{j}μ_{j−1} − β_{j}μ_{j+1}| ≤ |r_{j}| + (\underbrace{α_{j} + β_{j}}_{≤ 1})∥μ∥_{∞}.

Betrachtet man auf der linken Seite den Index mit |μ_{j}| = ∥μ∥_{∞}, sieht man

2∥μ∥_{∞} ≤ ∥r∥_{∞} + ∥μ∥_{∞} ⇒ ∥μ∥_{∞} = ∥A^{−1}r∥_{∞} ≤ ∥r∥_{∞}.

Da also insbesondere die Gleichungssysteme mit A immer lösbar sind, folgt

Satz 4.2.2 Für beliebige Gitter Δ und beliebige Datenwerte y_{j}, y′_{0}, y′_{n}, existiert der eindeutig bestimmte Interpolationsspline s ∈ S_{Δ,3}^{2} (vgl. Satz 4.1.2) mit s(x_{j}) = y_{j}, j = 0, …, n sowie den Randbedingungen s′′(a) = s′′(b) = 0 oder s′(a) = y′_{0}, s′(b) = y′_{n}.

Mit Hilfe von Satz 4.2.1 läßt sich auch einfach eine a-priori-Schranke für den Spline herleiten, bei einem äquidistantes Gitter (h_{j} ≡ h), etwa gilt

|s(x)| ≤ 3 ∥y∥_{∞} ( + h max{|y′_{0}|, |y′_{n}|}), x ∈ [a, b].

Dagegen existiert eine solche Schranke für Interpolationspolynome nicht mit einem für alle n beschränkten Vorfaktor.

4.3 Konvergenz des Interpolations-Splines

Wie nach der einleitenden Bemerkung zu erwarten, konvergiert der Interpolationsspline einer glatten Funktion gegen diese bei feiner werdendem Gitter (H → 0). Überraschenderweise zeigt sich außerdem, daß dabei keine weiteren Voraussetzungen über das Gitter benötigt werden und daß sogar die ersten drei Ableitungen des Splines gegen die der Funktion konvergieren. Zum Nachweis dieser Aussagen wird folgendes Hilfsmittel benötigt.

Satz 4.3.1 Verschwindet eine Funktion g ∈ C^{2}[a, b] in den Randpunkten, g(a) = g(b) = 0, gilt

∥g∥_{∞} ≤ \frac{(b − a)^{2}}{8} ∥g′′∥_{∞}, ∥g′∥_{∞} ≤ (b − a)∥g′′∥_{∞}.

Beweis Taylorentwicklung um x ∈ (a, b) ergibt

\begin{matrix}0 = g(a) = & g(x) + (a − x)g′(x) + \frac{1}{2}(a − x)^{2}g′′(ξ_{1}), ξ_{1} ∈ (a, b), \\ 0 = g(b) = & g(x) + (b − x)g′(x) + \frac{1}{2}(b − x)^{2}g′′(ξ_{2}), ξ_{2} ∈ (a, b). \end{matrix}

Durch Multiplikation der Gleichungen mit (b−x) bzw. (x−a) und Addition wird g′(x) eliminiert und man erhält

0 = (b − x + x − a)g(x) + \frac{1}{2}(b − x)(x − a)[(x − a)g′′(ξ_{1}) + (b − x)g′′(ξ_{2})].

Daraus folgt dann die erste Ungleichung,

|g(x)| ≤ \frac{(b − x)(x − a)}{2(b − a)}(|x − a| + |b − x|)∥g′′∥_{∞} ≤ \frac{(b − a)^{2}}{8} ∥g′′∥_{∞}.

Die zweite Ungleichung gilt, da nach dem Satz von Rolle ein x_{0} ∈ [a, b] existiert mit g′(x_{0}) = 0 und daher

|g′(x)| = |g′(x_{0}) + (x − x_{0})g′′(ξ)| = |x − x_{0}||g′′(ξ)| ≤ (b − a)∥g′′∥_{∞}.

Die Konvergenz des Interpolationssplines nach Satz 4.1.2,b wird im folgenden Satz beschrieben. Der Fehler in einem Punkt x hängt dabei sowohl von der maximalen Schrittweite H als auch von der lokalen h_{j} ab. Da die Fehlerschranke für die Funktionswerte vereinfacht die Form ∥s − f∥ = O(H^{4}) (H → 0) hat, sagt man, der Spline konvergiere mit Ordnung 4.

Satz 4.3.2 Gegeben sei f ∈ C^{4}[a, b] und ein Gitter Δ. Dann gelten für den Interpolationsspline s ∈ S_{Δ,3}^{2} mit

s(x_{j}) = f(x_{j}), j = 0, …, n, s′(a) = f′(a), s′(b) = f′(b),

und seine Ableitungen folgende Fehlerschranken. Für x ∈ (x_{j}, x_{j+1}], 0 ≤ j < n, ist

|s^{(i)}(x) − f^{(i)}(x)| ≤ c_{i}H^{2}h_{j}^{2−i}∥f^{(4)}∥_{∞}, 0 ≤ i ≤ 3.

Beweis Es wird eine weitere Splinefunktion ŝ ∈ S_{Δ,3}^{0} eingeführt, die die Bedingungen

ŝ(x_{j}) = f(x_{j}), ŝ′′(x_{j}) = f′′(x_{j}), j = 0, …, n,

erfüllt. Dann ist b̂_{3j} = b_{3j} = f(x_{j}) =: f_{j} und nach (4.2.6) gilt mit μ̂_{j} := \frac{1}{6}ŝ′′(x_{j}) die Beziehung

\{ \begin{matrix}b̂_{3j+1} & = & \frac{1}{3}(2f_{j} + f_{j+1}) − \frac{1}{3}h_{j}^{2}(2μ̂_{j} + μ̂_{j+1}) \\ b̂_{3j+2} & = & \frac{1}{3}(f_{j} + 2f_{j+1}) − \frac{1}{3}h_{j}^{2}(μ̂_{j} + 2μ̂_{j+1}) \end{matrix} .

Daraus folgt

|b_{3j+ν} − b̂_{3j+ν}| ≤ h_{j}^{2}∥μ − μ̂∥_{∞}, ν = 1, 2,  (4.3.1)

und aus der Beziérdarstellung (4.2.1) in (x_{j}, x_{j+1}],

s(x) − ŝ(x) = \frac{3}{h_{j}^{3}} ∑_{ν=1}^{2}(x − x_{j})^{ν}(x_{j+1} − x)^{3−ν}(b_{3j+ν} − b̂_{3j+ν}),

ergibt sich für die Ableitungen der Differenz die Schranke

|s^{(i)}(x) − ŝ^{(i)}(x)| ≤ \frac{3}{h_{j}^{3}} ∑_{ν=1}^{2} |\frac{d^{i}}{dx^{i}} [(x − x_{j})^{ν}(x_{j+1} − x)^{3−ν}]| max_{ν} |b_{3j+ν} − b̂_{3j+ν}|
≤ \frac{c̃_{i}}{h_{j}^{i}} max_{ν} |b_{3j+ν} − b̂_{3j+ν}|,

mit c̃_{0} = \frac{3}{4}, c̃_{1} = 3, c̃_{2} = 18, c̃_{3} = 36. Mit dieser Aussage und (4.3.1) wurde also bisher gezeigt

|s^{(i)}(x) − ŝ^{(i)}(x)| ≤ c̃_{i}h_{j}^{2−i}∥μ − μ̂∥_{∞}, x ∈ (x_{j}, x_{j+1}].  (4.3.2)

Da die Momente von s aus dem Gleichungssystem Aμ = r, (4.2.7), (4.2.8) stammen und nach Satz 4.2.1 ∥A^{−1}∥_{∞} ≤ 1 gilt, folgt

μ − μ̂ = A^{−1}(r − Aμ̂) ⇒ ∥μ − μ̂∥_{∞} ≤ ∥r − Aμ̂∥_{∞}.

Die Komponenten r_{j} und (Aμ̂)_{j} der Differenz können durch Taylorentwicklung um x_{j} verglichen werden. Für 1 ≤ j < n ist

6(Aμ̂)_{j} = \frac{1}{h_{j−1} + h_{j}} (h_{j−1}f′′(x_{j−1}) + 2(h_{j−1} + h_{j})f′′(x_{j}) + h_{j}f′′(x_{j+1}))
= 3f′′(x_{j}) + (h_{j} − h_{j−1})f′′′(x_{j}) + \frac{1}{2} \frac{1}{h_{j−1} + h_{j}} [h_{j−1}^{3}f^{(4)}(η_{1}) + h_{j}^{3}f^{(4)}(η_{2})],
r_{j} = f[x_{j−1}, x_{j}, x_{j+1}] = \frac{1}{h_{j−1} + h_{j}} (\frac{1}{h_{j}} (f_{j+1} − f_{j}) − \frac{1}{h_{j−1}} (f_{j} − f_{j−1}))
= \frac{1}{2}f′′(x_{j}) + \frac{1}{6}(h_{j} − h_{j−1})f′′′(x_{j}) + \frac{1}{24} \frac{1}{h_{j−1} + h_{j}} [h_{j−1}^{3}f^{(4)}(η_{3}) + h_{j}^{3}f^{(4)}(η_{4})],

mit Zwischenstellen η_{ν} ∈ (x_{j−1}, x_{j+1}). Für die gesuchte Differenz folgt daher die Schranke

|r_{j} − (Aμ̂)_{j}| ≤ (\frac{1}{12} + \frac{1}{24})\frac{h_{j−1}^{3} + h_{j}^{3}}{h_{j−1} + h_{j}} ∥f^{(4)}∥_{∞} ≤ \frac{H^{2}}{8} ∥f^{(4)}∥_{∞},

die sich analog auch in den Fällen j = 0, n nachweisen läßt. Nach Einsetzen dieser Ergebnisse in (4.3.2) zeigt sich für die Differenz der beiden Spline-Funktionen die Aussage

|s^{(i)}(x) − ŝ^{(i)}(x)| ≤ \frac{1}{8}c̃_{i}H^{2}h_{j}^{2−i} ∥f^{(4)}∥_{∞}, x ∈ (x_{j}, x_{j+1}].

Zum Nachweis der Behauptung ist nun nur noch zu zeigen, daß eine solche Abschätzung auch für die Differenz ŝ − f gilt. Nach Konstruktion verschwinden ŝ − f und ŝ′′ − f′′ in allen Gitterpunkten x_{j}, j = 0, …, n. Daher besitzt in jedem Teilintervall (x_{j}, x_{j+1}] die Funktion

ŝ − f  ŝ′ − f′  ŝ′′ − f′′  ŝ′′′ − f′′′ ; 2 Nullstellen 1 Nullstelle 2 Nullstellen 1 Nullstelle .

Bei der ersten und dritten Ableitung wurde dazu der Satz von Rolle angewendet. Daher folgen aus Satz 4.3.1 rekursiv die Schranken

\begin{matrix}|ŝ′′ − f′′| ≤ \frac{1}{8}h_{j}^{2}∥f^{(4)}∥_{∞}, & |ŝ′′′ − f′′′| ≤ h_{j}∥f^{(4)}∥_{∞} & ⇒ \\ |ŝ − f| ≤ \frac{1}{64}h_{j}^{4}∥f^{(4)}∥_{∞}, & |ŝ′ − f′| ≤ \frac{1}{8}h_{j}^{3}∥f^{(4)}∥_{∞}. \end{matrix}

Die Behauptung ergibt sich jetzt aus den Schranken für die beiden Differenzen in s^{(i)} − f^{(i)} = s^{(i)} − ŝ^{(i)} + ŝ^{(i)} − f^{(i)}.

4.4 Spline-Darstellungen, Beziér-, B-Splines

Zur Darstellung von Splines sind zwei Methoden verbreitet. Die erste, mit Beziér-Stücken (4.2.1) bietet sich an, wenn sowohl C^{2}- als auch C^{1}- oder C^{0}-Splines verwendet werden sollen. Allerdings benutzt diese Darstellung bei C^{2}-Splines unnötig viele Parameter. Dies wird bei Verwendung einer Basis von S_{Δ,3}^{2} aus B-Splines vermieden.

Die Beziér-Darstellung wird nur für äquidistante Gitter behandelt. Dies ist aber bei einer der wichtigsten Anwendungen, der Parameterdarstellung von Kurven (s_{1}(x), s_{2}(x), …) im R^{2} bzw. R^{3} keine starke Einschränkung. In diesem Fall, h_{j} ≡ h, gibt es für die verschiedenen Stetigkeitsbedingungen einfache geometrische Interpretationen.

• Die C^{1}-Bedingung (4.2.4) lautet b_{3j} = \frac{1}{2}(b_{3j−1}+b_{3j+1}). Da auch ξ_{3j} = \frac{1}{2}(ξ_{3j−1}+ξ_{3j+1}) gilt, ist also der R^{2}-Punkt (ξ_{3j}, b_{3j})^{T} Mittelpunkt der Verbindungsstrecke von (ξ_{3j−1}, b_{3j−1})^{T} und (ξ_{3j+1}, b_{3j+1})^{T}.

• Spezielle Teilausdrücke in der C^{2}-Bedingung werden als neue Parameter eingeführt, aus (4.2.5) wird so:

2b_{3j−1} − b_{3j−2} = 2b_{3j+1} − b_{3j+2} =: a_{j},  außerdem ist
2ξ_{3j−1} − ξ_{3j−2} = 2ξ_{3j+1} − ξ_{3j+2} = ξ_{3j} = x_{j}.

Daher liegt der Punkt (x_{j}, a_{j})^{T} im Schnittpunkt der Geraden durch (ξ_{ν}, b_{ν})^{T} mit ν = 3j−2, 3j−1 sowie ν = 3j+1, 3j+2. Umgekehrt dritteln die Punkte (ξ_{3j+ν}, b_{3j+ν})^{T}, ν = 1, 2, die Strecke von (x_{j}, a_{j})^{T} nach (x_{j+1}, a_{j+1})^{T}, denn

\begin{matrix}2b_{3j+1} − b_{3j+2} = a_{j} \\ −b_{3j+1} + 2b_{3j+2} = a_{j+1} \end{matrix} \} ⇒ \{ \begin{matrix}b_{3j+1} = \frac{1}{3}(2a_{j} + a_{j+1}) \\ b_{3j+2} = \frac{1}{3}(a_{j} + 2a_{j+1}) \end{matrix} .  (4.4.1)

Diese Beziehungen der Beziér-Koeffizienten beim C^{2}-Spline erlauben folgende geometrische Interpretation (Hilfslinien), die analog auch für Kurven (s_{1}(x), s_{2}(x))^{T} gilt. Der Spline ist hier nur links von x_{j} skizziert:

[figure: x_{j−1}; x_{j}; x_{j+1}; x_{j+2}; ξ_{3j+1}; ξ_{3j+2}; a_{j−1}; b_{3j−3}; b_{3j−2}; b_{3j−1}; a_{j}; b_{3j+1}; b_{3j+2}; a_{j+1}; a_{j+2}; b_{3j}; b_{3j+3}]

Mit (4.4.1) können die C^{1}-Bedingungen umformuliert werden,

2b_{3j} = b_{3j−1} + b_{3j+1} = \frac{1}{3}(a_{j−1} + 4a_{j} + a_{j+1}).

Daher gilt für die Koeffizienten a_{j} des C^{2}-Interpolationssplines das Gleichungssystem

a_{j−1} + 4a_{j} + a_{j+1} = 6y_{j}, j = 1, …, n − 1,  (4.4.2)

mit den Randbedingungen

a_{0} = y_{0},  a_{n} = y_{n},  bei s′′(a) = s′′(b) = 0, bzw.
2a_{0} + a_{1} = 3y_{0} + hy′_{0}, a_{n−1} + 2a_{n} = 3y_{n} − hy′_{n} bei s′(a) = y′_{0}, s′(b) = y′_{n}, (4.4.3)

das zur Berechnung der a_{j} dienen kann. Die Beziér-Koeffizienten {b_{ν}} ergeben sich daraus nach (4.4.1).

Zur Auswertung eines Splines s in Beziér-Darstellung kann natürlich die Formel (4.2.1) direkt verwendet werden, nach (4.2.2a) ist sie eine konvexe Linearkombination und daher numerisch stabil. Wegen der auftretenden Binomialkoeffizienten läßt sich die Auswertung aber (analog zum Pascalschen Dreieck) auch durch mehrfache lineare Interpolation realisieren. Dazu sei für x ∈ [x_{j}, x_{j+1}]

s(x) = ∑_{i=0}^{k} \binom{k}{i}ξ^{i}(1 − ξ)^{k−i}b_{kj+i}, ξ := \frac{x − x_{j}}{h} .

Dann ergibt sich s(x) = b_{0}^{(k)} aus dem Dreieckschema

\begin{aligned}b_{i}^{(0)} & := & b_{kj+i}, & i = 0, …, k; \\ b_{i}^{(ν)} & := & (1 − ξ)b_{i}^{(ν−1)} + ξb_{i+1}^{(ν−1)}, & i = 0, …, k − ν; ν = 1, …, k. \end{aligned}  (4.4.4)

Auch (4.4.4) enthält nur konvexe Linearkombinationen.

Beweis von (4.4.4): Die Identität b_{i}^{(ν)} = ∑_{μ=0}^{ν} \binom{ν}{μ}ξ^{μ}(1−ξ)^{ν−μ}b_{i+μ}^{(0)} läßt sich leicht durch Induktion über ν verifizieren.

B-Splines: Die wesentlichen Parameter des Splines s sind die Größen a_{j}. Da sich die Funktionswerte des Splines daraus durch lineare Operationen (4.4.1), (4.4.4) berechnen existiert eine Basisdarstellung der Form

s(x) = ∑_{j=0}^{n} a_{j}B_{j}(x), x ∈ [a, b].  (4.4.5)

Für jedes j, 0 ≤ j ≤ n, entspricht hier die Funktion B_{j} dem Spline, den man für die speziellen Koeffizienten (a_{m})_{m} = (δ_{jm})_{m} erhält.

x^{j−2} x^{j−1} x^{j} x^{j+1} x^{j+2} a_{j} = 1B_{j}

Dieser Spline hat im Innern des Intervalls die gezeigte Gestalt (vgl. oben die geometrische Interpretation). Der Träger von B_{j} für 2 ≤ j ≤ n − 2, ist [x_{j−2}, x_{j+2}], umfaßt also 4 = k + 1 Teilintervalle. In Randnähe ergeben sich etwas unterschiedliche Formen.

Diese Basisfunktionen werden B-Splines genannt. Aus der Herleitung ist ersichtlich, daß diese eine Zerlegung der Eins bilden mit B_{j} ≥ 0, ∑_{j} B_{j}(x) ≡ 1, wie dies bei den Bernsteinpolynomen, vgl. (4.2.2,a), schon der Fall war. Die B-Splines können aber auch vollkommen unabhängig davon und für beliebige Gitter Δ definiert werden. Die Bezeichnungen vereinfachen sich in Randnähe, wenn das Gitter um 2k = 6 Punkte erweitert wird,

\overline{Δ} : x_{−3} < x_{−2} < x_{−1} < x_{0} < … < x_{n} < x_{n+1} < … < x_{n+3},  (4.4.6)

z.B. durch x_{−1} := 2x_{0} − x_{−1}, x_{n+1} := 2x_{n} − x_{n−1}, . . .. Eine geschlossene Darstellung der B-Splines kann mit Hilfe der folgenden Funktion von zwei Argumenten angegeben werden.

\overline{}x t g  g(t; x) := (t − x)_{+}^{3} = \{ \begin{matrix}(t − x)^{3} & für & t − x ≥ 0, \\ 0 & für & t − x < 0. \end{matrix}  (4.4.7)

Für festes t ist offensichtlich g(t; ·) ∈ C^{2}(R).

Definition 4.4.1 Zum Gitter \overline{Δ} werden die kubischen (normalisierten) B-Splines definiert durch die dividierte Differenz

B_{i}(x) := (x_{i+2} − x_{i−2}) g[x_{i−2}, x_{i−1}, …, x_{i+2}; x], i = −1, …, n + 1.

Die Differenzen sind dabei nach (3.3.2) bezüglich des ersten Arguments t von g zu bilden.

Satz 4.4.2 Die B-Splines besitzen folgende Eigenschaften:

B_{i}(x) = 0 ∀x ∉ (x_{i−2}, x_{i+2}),  (4.4.8)
B_{i}(x) > 0 ∀x ∈ (x_{i−2}, x_{i+2}),  (4.4.9)
∑_{i=−1}^{n+1} B_{i}(x) = ∑_{i=j−1}^{j+2} B_{i}(x) ≡ 1, wenn x ∈ (x_{j}, x_{j+1}], 0 ≤ j < n.  (4.4.10)

Beweis (4.4.8): Für x ≥ x_{i+2} ist g(x_{j}, x) = 0, j = i − 2, .., i + 2. Für x ≤ x_{i−2} ist der Ausdruck g[x_{i−2}, x_{i−1}, …, x_{i+2}; x] vierte Differenz des kubischen Polynoms (t − x)^{3} in t, also ebenfalls 0. (4.4.9): vgl. Böhmer/Spline-Funktionen, §6.3. (4.4.10): Nach Definition ist B_{i}(x) = g[x_{i−1}, .., x_{i+2}; x] − g[x_{i−2}, .., x_{i+1}; x]. Nach (4.4.8) ist für x ∈ (x_{j}, x_{j+1}] :

∑_{i} B_{i}(x) = ∑_{i=j−1}^{j+2} B_{i}(x)

= \underbrace{g[x_{j+1}, .., x_{j+4}; x]}_{1} −g[x_{j}, .., x_{j+3}; x] + g[x_{j}, .., x_{j+3}; x] + … − \underbrace{g[x_{j−3}, .., x_{j}; x]}_{0} = 1.

Der Wert 1 ergibt sich vorne aus Satz 3.3.6d, da g(t; ·) = t^{3} + … ist und der Wert 0 am Ende, da g ≡ 0 für die auftretenden Argumentwerte.

Durch die Eigenschaften (4.4.8-4.4.10) ist umgekehrt der B-Spline B_{i} eindeutig festgelegt und stimmt daher mit dem aus (4.4.5) überein. Zur numerischen Berechnung ist der Zugang über die Differenzen nicht sehr geeignet, da bei der Differenzbildung Rundungsfehler verstärkt werden. Ähnlich wie bei der Beziér-Darstellung in (4.4.4) kann auch für einen Spline in B-Spline-Darstellung ein stabiles Rekursionsschema angegeben werden, wobei bei jeder Auswertung höchstens 4 Koeffizienten a eingehen (vgl. Stoer, §2.4.5).

Sowohl B-Spline- als auch Beziér-Darstellung bieten eine Reihe von praktischen Vorteilen bei der Handhabung, die darauf beruhen, daß die verwendeten Basisfunktionen eine lokale Zerlegung der Eins bilden:

Der Funktionswert s(x) an einer beliebigen Stelle x im Intervall ist eine konvexe Linearkombination von k + 1 = 4 Koeffizienten.

Konsequenzen:

— Bei Auswertung des Splines treten keine zusätzlichen Rundungsfehler auf.

— Die Koeffizienten schließen, als Punkte betrachtet, den Funktionsgraphen ein. Graphik-Algorithmen wie Skalierung, Clipping (Abschneiden bei Fenstern, Verdeckung) können eine Vorentscheidung anhand der Koeffizienten treffen.

— Bei Koordinatentransformationen (Zoom) sind alle Koeffizienten gleich zu behandeln.

— Änderungen einzelner Koeffizienten haben nur lokale Änderungen des Splines zur Folge (→ interaktiver Entwurf, CAD).

Beispiel 4.4.3 R^{2}-Graphik aus kubischen Beziér-Splines mit Kontrollpunkten:

4.5 Lokale Spline-Approximationen

Beim Interpolationsspline ist zur Bestimmung des Splines ein Gleichungssystem zu lösen. Daher wirken sich einzelne (große) Funktionswerte auf den gesamten Spline aus. Beide Probleme entfallen, wenn man auf die exakte Interpolation verzichtet und explizite Formeln der Spline-Koeffizienten betrachtet. Den einfachsten Fall behandelt

Satz 4.5.1 Die Funktion f sei Lipschitz-stetig auf R mit der Lipschitz-Konstanten L. Mit den Eigenschaften (4.4.8)-(4.4.10) der Basis-Funktionen B_{j} gilt für den Spline

s(x) := ∑_{j=−1}^{n+1} f(x_{j})B_{j}(x)

im Intervall [a, b] = [x_{0}, x_{n}] die Konvergenzaussage

∥s − f∥_{∞} ≤ 2HL.

Beweis Für x ∈ (x_{j}, x_{j+1}] ist 1 = ∑_{i=j−1}^{j+2} B_{i}(x) und daher

|s(x) − f(x)| = | ∑_{i=j−1}^{j+2} (f(x_{i}) − f(x))B_{i}(x)| ≤ max_{|x−y|≤2H} |f(x) − f(y)| ≤ 2HL.

Allgemeiner werden Approximationen der Form

Qf := ∑_{i=−1}^{n+1} a_{i}(f)B_{i}  (4.5.1)

betrachtet für f ∈ C[a − d, b + d] mit d := max{|x_{0} − x_{−3}|, |x_{n+3} − x_{n}|}. Diese heißen lokale Spline-Approximation, wenn a_{i}(f) nur von Funktionswerten im Träger von B_{i}, also dem Intervall [x_{i−2}, x_{i+2}], abhängt. Besonders interessant sind dabei lineare Funktionale a_{i}, z.B.,

a_{i}(f) = ∑_{j=1}^{ℓ} α_{ij}f(ξ_{ij}), ξ_{ij} ∈ [x_{i−2}, x_{i+2}].  (4.5.2)

Dann ist nämlich Q ein linearer Operator. Bei (4.5.2) gilt zunächst

|a_{i}(f)| ≤ ∑_{j=1}^{ℓ} |α_{ij}| sup{|f(x)| : x ∈ [x_{i−2}, x_{i+2}]} =: A_{i}∥f∥_{[x_{i−2},x_{i+2}]}.  (4.5.3)

Daraus ergibt sich eine lokale Abschätzung für Qf, denn für x ∈ [x_{j}, x_{j+1}] ist

|Qf(x)| ≤ ∑_{i=j−1}^{j+2} |a_{i}(f)|B_{i}(x) ≤ max_{i=j−1}^{j+2} |a_{i}(f)| ≤ max_{i=j−1}^{j+2} A_{i}∥f∥_{[x_{j−3},x_{j+4}]}.  (4.5.4)

Diese lokale Schranke ermöglicht nach einem einfachen Prinzip (vgl. Satz 3.6.2) folgende Konvergenzaussage.

Satz 4.5.2 Zu einem erweiterten Gitter Δ̄ sei ein lokaler Approximationsoperator Q definiert, der (4.5.4) erfüllt. Wenn Q Polynome vom Grad m reproduziert, d.h., Qp = p ∀p ∈ Π_{m} gilt, dann gilt für f ∈ C^{m+1}[a − d, b + d] die Fehlerschranke

∥f − Qf∥_{[a,b]} ≤ c(1 + max_{i=−1}^{n+1} A_{i})H^{m+1}∥f^{(m+1)}∥_{[a−d,b+d]}

Beweis Nach Voraussetzung ist mit jedem beliebigen Polynom p ∈ Π_{m}

f − Qf = f − p − (Qf − p) = f − p − Q(f − p).

Mit (4.5.4) folgt daraus für x ∈ (x_{j}, x_{j+1}], 0 ≤ j < n, dann

|f(x) − Qf(x)| ≤ |f(x) − p(x)| + |Q(f − p)(x)| ≤ (1 + max_{i=−1}^{n+1} A_{i})∥f − p∥_{[x_{j−3},x_{j+4}]}.

Nun kann ein Polynom p so gewählt werden (z.B. durch Interpolation), daß

∥f − p∥_{[x_{j−3},x_{j+4}]} ≤ cH^{m+1}∥f^{(m+1)}∥_{[x_{j−3},x_{j+4}]}.

Die optimale Fehleraussage für kubische Splines, O(H^{4}), folgt also aus diesem Satz, wenn Q kubische Polynome reproduziert und die Konstante max_{i} A_{i} nicht vom Gitter Δ̄ abhängt.

Beispiel 4.5.3 (Schoenberg, H^{2}-Approximation): Bei beliebigem Gitter sei

a_{i}(f) := f(x̄_{i}), x̄_{i} := \frac{1}{3}(x_{i−1} + x_{i} + x_{i+1}).

Q reproduziert lineare Funktionen. Für äquidistantes Gitter stimmt Q mit der Approximation aus Satz 4.5.1 überein, da x̄_{i} = x_{i}.

Beispiel 4.5.4 (H^{4}-Approximation) Die Gestalt der Funktionale (4.5.2) für diese Approximation mit ℓ = 3 ist sehr kompliziert bei allgemeinem Gitter, bei äquidistantem Gitter vereinfachen sich diese zu

a_{i}(f) := f(x_{i}) − \frac{h^{2}}{3} f[x_{i−1}, x_{i}, x_{i+1}],

(vgl. dazu (4.2.7)). Q reproduziert kubische Polynome.

Auch ohne Auflösung eines linearen Gleichungssystems (4.2.7) bzw. (4.4.2) kann also eine H^{4}-Approximation einer C^{4}-Funktion konstruiert werden, wenn auf die strenge Interpolationsforderung aus Satz 4.3.2 verzichtet wird.

5 Numerische Integration und Differentiation

In der Praxis stellt sich oft die Aufgabe, mit einer gegebenen Funktion f eine aufwendige, oder explizit nicht mögliche Operation durchzuführen. Als Ausweg kann man die Funktion durch eine “einfachere” ersetzen, für die die Operation (einfach) ausführbar ist. Bei Integration und Differentiation bietet sich die Polynom-Interpolierende in der Lagrange-Form aus §3.2 an:

\begin{aligned}f(x) ≅ & p_{n}(x) & = ∑_{j=0}^{n} L_{j}(x)f(x_{j}) & ⟹^{?} \\ ∫_{a}^{b} f(x)dx ≅ & ∫_{a}^{b} p_{n}(x)dx & = ∑_{j=0}^{n} ( ∫_{a}^{b} L_{j}(x)dx)f(x_{j}) & =: ∑_{j=0}^{n} α_{j}f(x_{j}), \\ f′(0) ≅ & p′_{n}(0) & = ∑_{j=0}^{n} L′_{j}(0) f(x_{j}) & =: ∑_{j=0}^{n} δ_{j}f(x_{j}). \end{aligned}  (5.0.1)

Diese Näherungen für Integral- und Ableitungswerte sind also einfach Linearkombinationen von Funktionswerten. Daher werden jetzt solche Approximationen behandelt, zunächst für die Integration.

5.1 Quadratur

Bei nicht stetig differenzierbaren Integranden ist es für Fehleraussagen vorteilhaft, diese als Produkt einer glatten Funktion und einer speziellen, schwierigen Gewichtsfunktion g(x) > 0 (z.B. \sqrt{x}, 1/\sqrt{x}, ..) aufzufassen. Im folgenden wird daher die Integration mit einer festen Gewichtsfunktion g betrachtet.

Definition 5.1.1 Falls ∫_{a}^{b} f(x)g(x)dx existiert, heißt

∫_{a}^{b} f(x)g(x)dx = ∑_{j=0}^{n} α_{j}f(x_{j}) + R_{n}(f)  (5.1.1)

eine Quadraturformel mit den Gewichten α_{j} zu den Knoten

a ≤ x_{0} < x_{1} < … < x_{n} ≤ b.

Dabei ist R_{n}(f) der Quadraturfehler bzw. das Restglied und man sagt, die Formel (5.1.1) besitze die Ordnung m ∈ N, wenn gilt

R_{n}(p) = 0 ∀p ∈ Π_{m−1}.

Für die speziellen Quadraturformeln, die sich wie in (5.0.1) durch Integration des Interpolationspolynoms ergeben, sind die Gewichte

α_{j} = ∫_{a}^{b} L_{j}(x)g(x)dx, j = 0, …, n.  (5.1.2)

Aus der Darstellung (3.3.11) des Interpolationsfehlers r_{n} = f − p_{n} folgt

R_{n}(f) = ∫_{a}^{b} f(x)g(x)dx − ∑_{j=0}^{n} α_{j}f(x_{j}) = ∫_{a}^{b} r_{n}(x)g(x)dx
= ∫_{a}^{b} ω_{n+1}(x)f[x_{0}, …, x_{n}, x]g(x)dx.  (5.1.3)

Für f ∈ C^{n+1}[a, b] führt eine Betragsabschätzung auf die Schranke

|R_{n}(f)| ≤ ∫_{a}^{b} |ω_{n+1}(x)|g(x)dx \frac{1}{(n + 1)!}∥f^{(n+1)}∥_{∞}.  (5.1.4)

Damit folgt insbesondere der

Satz 5.1.2 Die Ordnung einer interpolatorischen Quadraturformel (5.1.1), (5.1.2) ist mindestens n + 1.

Die Betragsschranke kann noch verschärft werden, wenn das Knotenpolynom ω_{n+1} nur ein Vorzeichen besitzt, d.h., wenn

ω_{n+1}(x) = (x − x_{0}) ⋯ (x − x_{n}) ≥ 0 ∀x ∈ [a, b] (bzw. ≤ 0 ∀..).  (5.1.5)

Dann gilt nach dem Mittelwertsatz der Integralrechnung mit ξ_{1}, ξ_{2} ∈ (a, b), sogar

R_{n}(f) = ∫_{a}^{b} ω_{n+1}(x)g(x)dx · f[x_{0}, …, x_{n}, ξ_{1}]
= ϱ_{n} · f^{(n+1)}(ξ_{2}), ϱ_{n} := \frac{1}{(n + 1)!} ∫_{a}^{b} ω_{n+1}(x)g(x)dx.  (5.1.6)

5.2 Newton-Cotes-Formeln

Speziell für g ≡ 1 und äquidistante Knoten x_{j} = x_{0} + jh, j = 0, …, n, die die Randpunkte enthalten (d.h. x_{0} = a, h = (b−a)/n, “abgeschlossene Formeln”) oder ausschließen (a < x_{0}, x_{n} < b, “offene Formeln”) ergeben sich die Newton-Cotes-Formeln. Die einfachsten Spezialfälle sind: Rechteckregel: n = 0, offene Formel, Ordnung 2:

\overline{}∫_{a}^{b} f(x)dx = (b − a) f(\frac{a + b}{2}) + \frac{(b − a)^{3}}{24} f′′(ξ).  (5.2.1)

Trapezregel: n = 1, abgeschlossene Formel, Ordnung 2:

[figure: ∫_{a}^{b} f(x)dx = \frac{b − a}{2}[f(a) + f(b)] − \frac{(b − a)^{3}}{12} f′′(ξ).  (5.2.2)]

Simpsonregel: n = 2, abgeschlossene Formel, Ordnung 4:

\overline{}\begin{aligned}∫_{a}^{b} f(x)dx & = & \frac{b − a}{6}[f(a) + 4f(\frac{a + b}{2}) + f(b)] & (5.2.3) \\ & & −\frac{(b − a)^{5}}{2880} f^{(4)}(ξ). \end{aligned}

In diesen Formeln steht ξ jeweils für eine unbekannte Zwischenstelle in (a, b). Eine Tabelle der Gewichte α_{j} und der Fehlerkoeffizienten ϱ_{n} für weitere Ordnungen folgt weiter unten. Zunächst wird nachgeprüft, daß bei der Rechteck- und Simpsonregel die Ordnung tatsächlich n + 2 ist, statt n + 1, wie nach Satz 5.1.2 zu erwarten.

Beweis von (5.2.3): Für a = 0 (oBdA) sind die Lagrangepolynome zu x_{0} = 0, x_{1} = h, x_{2} = 2h:

L_{0}(x) = \frac{(x − h)(x − 2h)}{2h^{2}}, L_{1}(x) = \frac{x(x − 2h)}{−h^{2}}, L_{2}(x) = \frac{x(x − h)}{2h^{2}} ∈ Π_{2}.

Daraus berechnen sich die Gewichte

α_{0} = ∫_{0}^{2h} L_{0}(x)dx = \frac{1}{2h^{2}} [\frac{1}{3}x^{3} − \frac{3h}{2}x^{2} + 2h^{2}x]_{0}^{2h} = \frac{h}{3} = α_{2}, α_{1} = ∫_{0}^{2h} L_{1}(x)dx = \frac{4}{3}h.

Die Fehlerdarstellungen (5.1.4) bzw. (5.1.6) stimmen allerdings noch nicht mit der in (5.2.3) überein. Dazu ist die Zusatzüberlegung erforderlich, daß wegen

\overline{}∫_{0}^{2h} ω_{3}(x)dx = ∫_{0}^{2h} x(x − h)(x − 2h)dx = 0  (5.2.4)

sogar kubische Polynome exakt integriert werden! Dazu wird eine zusätzliche Interpolationsbedingung p′(x_{1}) = f′(x_{1}) betrachtet. Nach (3.3.7) folgt dann mit p_{2} = f(x_{0})L_{0}+f(x_{1})L_{1}+f(x_{2})L_{2} die Darstellung p_{3}(x) = p_{2}(x) + ω_{3}(x)f[x_{0}, x_{1}, x_{1}, x_{2}] und

∫_{0}^{2h} p_{3}(x)dx = ∫_{0}^{2h} p_{2}(x)dx + \underbrace{∫_{0}^{2h} ω_{3}(x)dx}_{=0} f[x_{0}, x_{1}, x_{1}, x_{2}] = α_{0}f(x_{0}) + α_{1}f(x_{1}) + α_{2}f(x_{2}).

Daher sind die Integrale über p_{2} und p_{3} identisch und es gilt (5.1.3) sogar mit n = 3 und auch (5.1.6) mit ϱ_{3} = −\frac{1}{90}h^{5}, da

ω_{4}(x) = x(x − h)^{2}(x − 2h) ≤ 0 ∀x ∈ [0, 2h].

Dieser Beweis überträgt sich auf alle Newton-Cotes-Formeln mit geradem n, die Ordnung ist für diese n + 2 statt n + 1.

Die folgende Tabelle enthält die Gewichte und Fehlerkonstanten der Newton-Cotes-Formeln. Da die Gewichte rational sind, erfolgt die Angabe in der Form

∫_{a}^{b} f(x)dx = \frac{b − a}{γ} ∑_{j=0}^{n} β_{j}f(x_{j}) + c(\frac{b − a}{n})^{m+1}f^{(m)}(ξ), ξ ∈ (a, b).  (5.2.5)

Abgeschlossene Newton-Cotes-Formeln, x_{j} = a + jh, j = 0, …, n, h = \frac{b−a}{n}.
n  γ β_{0}  β_{1}  β_{2}  β_{3}  β_{4}  c  m
1  2  1  1  -1/12  2
2  6  1  4  1  -1/90  4
3  8  1  3  3  1  -3/80  4
4  90  7  32  12  32  7  -8/945  6
5  288 19  75  50  50  75 -275/12096  6
6  840 41 216  27  272  27  -9/1400  8
7 17280 751 3577 1323 2989 2989 -8183/518400 8
8 28350 989 5888 -928 10496 -4540 -2368/467775 10

Die fehlenden Koeffizienten β_{5}, …, β_{8} sind symmetrisch zu ergänzen. Die Gewichte für n ≥ 8 sind nicht mehr positiv. Dies erhöht etwas die Anfälligkeit der Formeln für Rundungsfehler.

Für die Konvergenz (n → ∞) der Quadraturformel (5.2.5) gilt das gleiche wie bei der Polynom-Interpolation. Das Anwachsen der höheren Ableitungen f^{(m)}, m = 2(⌊\frac{n}{2}⌋ + 1), kann die Konvergenz zerstören. Andererseits geht der Fehler

R_{n}(f) = c (\frac{b − a}{n})^{m+1} f^{(m)}(ξ)

sehr schnell gegen null für (b − a) → 0. Dies kann durch Unterteilung des Gesamtintervalls ausgenutzt werden. Dabei wird eine Quadraturformel fester Ordnung iteriert angewendet. Bei der Trapezregel (5.2.2), z.B., ergibt sich mit Teilintervallen [x_{i−1}, x_{i}], x_{j} = a + jh, j = 0, …, n, h := (b − a)/n, die Näherung

∫_{a}^{b} f(x)dx = ∑_{i=1}^{n} ∫_{x_{i−1}}^{x_{i}} f(x)dx ≅ ∑_{i=1}^{n} \frac{h}{2}[f(x_{i}) + f(x_{i−1})]
= \frac{h}{2}[f(x_{0}) + 2f(x_{1}) + … + 2f(x_{n−1}) + f(x_{n})]. [figure: a; b]

Für diese Näherung und die zur Simpsonregel gilt folgende Fehleraussage.

Satz 5.2.1 Für n ∈ N sei h := (b − a)/n, x_{i} = a + ih, f_{i} := f(x_{i}), i = 0, …, n. Dann gilt mit einer Zwischenstelle ξ ∈ (a, b) für die

a) iterierte Trapezregel bei f ∈ C^{2}[a, b]:

∫_{a}^{b} f(x)dx = \frac{h}{2}(f_{0} + 2f_{1} + … + 2f_{n−1} + f_{n}) − \frac{b − a}{12}h^{2}f′′(ξ),  (5.2.6)

b) iterierte Simpsonregel bei f ∈ C^{4}[a, b], n gerade:

∫_{a}^{b} f(x)dx = \frac{h}{3}(f_{0} + 4f_{1} + 2f_{2} + 4f_{3} + … + 4f_{n−1} + f_{n}) − \frac{b − a}{180}h^{4}f^{(4)}(ξ).  (5.2.7)

Beweis Die Beweise von a) und b) verlaufen analog. Bei b) wird die Formel (5.2.3) über die \frac{n}{2} =: k Intervalle [x_{2i−2}, x_{2i}] summiert. Beim Restglied erhält man dabei mit ξ_{i} ∈ (x_{2i−2}, x_{2i})

−\frac{1}{2880} ∑_{i=1}^{k}(x_{2i} − x_{2i−2})^{5}f^{(4)}(ξ_{i}) = −\frac{32}{2880}h^{5} ∑_{i=1}^{k} f^{(4)}(ξ_{i}) = −\frac{b − a}{180}h^{4}f^{(4)}(ξ).

An diesen Darstellungen sieht man, daß es sinnvoll ist, in (5.2.5) als Ordnung der Formel die Zahl m und nicht m + 1 anzugeben. Ein praktischer Vorteil der iterierten Trapez- und Simpsonregel ist, daß bei einer Verdopplung der Intervallzahl alle alten Funktionswerte verwendbar sind.

Der wesentliche Rechenaufwand bei beiden iterierten Formeln fällt bei den n + 1 Funktionsauswertungen f_{0}, …, f_{n} an. Bei einem Vergleich der Fehler sieht man, daß

R_{n}(f) ∼ \frac{1}{n^{2}} (Trapezregel) bzw. R_{n}(f) ∼ \frac{1}{n^{4}} (Simpsonregel)

gilt bei einem genügend oft differenzierbaren Integranden f. Eine Verdopplung der Zahl n der Funktionsauswertungen verkleinert den Fehler R_{n}(f) bei der Trapezregel um den Faktor \frac{1}{4}, bei der Simpsonregel dagegen um den Faktor \frac{1}{16} bei vergleichbarem Aufwand. Daher sind bei glatten Integranden Formeln hoher Ordnung günstiger.

Beispiel 5.2.2 ∫_{1}^{2} \frac{dx}{x} = ln 2 = 0.6931472...

h Trapez Fehler Simpson Fehler
1 0.75  0.056
1/2 0.7083.. 0.015.. 0.694.. 0.00129..
1/4 0.6970.. 0.0038.. 0.69325..  0.00010..
1/8 0.6941.. 0.00097.. 0.69315..  0.000007..
1/16 0.69339.. 0.0002.. 0.6931476.. 0.0000004..

Diese Beobachtung führt natürlich sofort auf das Ziel, mit möglichst wenig Funktionsauswertungen eine möglichst hohe Ordnung zu erzielen. Mit der folgenden Klasse von Quadraturformeln wird dieses Ziel erreicht.

5.3 Gauß-Quadratur

Bei den Newton-Cotes-Formeln hatte man für geraden Polynomgrad n eine um eins erhöhte Konvergenzordnung aufgrund der Eigenschaft

∫_{a}^{b} ω_{n+1}(x)dx = 0, ω_{n+1} = (x − x_{0}) ⋯ (x − x_{n}),

die auf die Symmetrie der Knoten x_{i} zurückzuführen war. Durch geeignete Wahl der Knoten x_{i} kann die Ordnung sogar verdoppelt werden, es läßt sich erreichen, daß für den Quadraturfehler (5.1.1) gilt

R_{n}(f) = 0 ∀f ∈ Π_{2n+1}.  (5.3.1)

Es sei nun f ∈ Π_{2n+1} und p_{n}(x) = ∑_{i=0}^{n} f(x_{i})L_{i}(x) das zugehörige Interpolationspolynom in Π_{n}. Da dann gilt f = p_{n} +ω_{n+1} ·q_{n} mit q_{n} ∈ Π_{n}, entspricht die Forderung (5.3.1) der Bedingung

R_{n}(f) = ∫_{a}^{b} f(x)g(x)dx − ∫_{a}^{b} p_{n}(x)g(x)dx = ∫_{a}^{b} ω_{n+1}(x)q_{n}(x)g(x)dx =^{!} 0.

Daher ist (5.3.1) offensichtlich genau dann erfüllt, wenn

∫_{a}^{b} ω_{n+1}(x)q(x)g(x)dx = 0 ∀q ∈ Π_{n}.  (5.3.2)

Für g > 0 in (a, b) stellt die Bilinearform

(u, v)_{g} := ∫_{a}^{b} u(x)v(x) g(x)dx  (5.3.3)

ein Innenprodukt in C[a, b] dar. Die Forderung (5.3.2) bedeutet daher

ω_{n+1} ⊥_{g} Π_{n} ⟺ (ω_{n+1}, q)_{g} = 0 ∀q ∈ Π_{n},  (5.3.4)

es muß ω_{n+1} also g-orthogonal zu allen Polynomen vom Grad n gewählt werden!

Eine Familie von Orthogonalpolynomen ω_{k}, k ∈ N, zum Innenprodukt (5.3.3) kann mit Hilfe des E. Schmidtschen Orthogonalisierungsverfahrens aus der Basis {1, x, x^{2}, …} konstruiert werden. Diese Orthogonalpolynome besitzen glücklicherweise nur reelle Nullstellen in (a, b), die als Knoten x_{0}, …, x_{n} einer Quadraturformel verwendet werden können. Die wesentlichen Aussagen werden im nächsten Satz zusammengefaßt, später folgt ein Überblick über einige wichtige Klassen von Orthogonal-Polynomen.

Satz 5.3.1 Die Stützstellen x_{i}, i = 0, …, n, der Quadraturformel (5.1.1), (5.1.2) seien als Nullstellen des Orthogonalpolynoms vom Grad n + 1 zur Gewichtsfunktion g ∈ C[a, b], g > 0 in (a, b), gewählt, d.h. ω_{n+1} ∈ Π_{n+1}, ω_{n+1} ⊥_{g} Π_{n}. Dann besitzt diese Gauß-sche Quadraturformel die Ordnung 2n + 2, d.h. es ist R_{n}(f) = 0 ∀f ∈ Π_{2n+1}. Für f ∈ C^{2n+2}[a, b] gilt mit ξ ∈ (a, b),

R_{n}(f) = ∫_{a}^{b} f(x)g(x)dx − ∑_{i=0}^{n} α_{i}f(x_{i}) = \frac{1}{(2n + 2)!} ∫_{a}^{b} ω_{n+1}^{2}(x)g(x)dx f^{(2n+2)}(ξ).  (5.3.5)

Bemerkung: Gegenüber den Newton-Cotes-Formeln erhält man also ungefähr die doppelte Konvergenzordnung ohne Mehraufwand. Bei der Verwendung in iterierten Formeln besitzen die Gaußformeln aber praktische Nachteile (vgl. §5.4).

Beweis Hier ist nur noch zu zeigen, daß das Restglied die von (5.1.6) abweichende Form hat. Analog zum Beweis bei der Simpsonregel (5.2.3) werden zusätzliche Interpolationsbedingungen benutzt: f′(x_{0}), …, f′(x_{n}). Im Vergleich zum einfachen Polynom p_{n} ∈ Π_{n} mit p_{n}(x_{i}) = f(x_{i}), i = 0, …, n hat die Newtonform dieses Interpolationspolynoms p_{2n+1} ∈ Π_{2n+1} mit

p_{2n+1}(x_{i}) = f(x_{i}), p′_{2n+1}(x_{i}) = f′(x_{i}), i = 0, …, n,

nach (3.3.7) die Gestalt

p_{2n+1}(x) = p_{n}(x) + ω_{n+1}(x)f[x_{0}, .., x_{n}, x_{0}] + ω_{n+1}(x)(x − x_{0})f[x_{0}, .., x_{n}, x_{0}, x_{1}] +
… + ω_{n+1}(x)(x − x_{0}) ⋯ (x − x_{n−1})f[x_{0}, …, x_{n}, x_{0}, …, x_{n}].

Außerdem ist nach (3.3.11)

f(x) = p_{2n+1}(x) + ω_{n+1}^{2}(x)f[x_{0}, …, x_{n}, x_{0}, …, x_{n}, x].  (5.3.6)

Aufgrund der Orthogonalität (5.3.4) gilt aber

∫_{a}^{b} ω_{n+1}(x)(x − x_{0}) ⋯ (x − x_{k})g(x)dx = 0 ∀k < n, d.h.,
∫_{a}^{b} p_{2n+1}(x)g(x)dx = ∫_{a}^{b} p_{n}(x)g(x)dx = ∑_{i=0}^{n} α_{i}f(x_{i}).  (5.3.7)

Aus (5.3.6) folgt die Aussage (5.3.5), da die Fehlerformel (5.1.6) wegen ω_{n+1}^{2} ≥ 0 jetzt auf p_{2n+1} angewendet werden kann. Bemerkung: In (5.3.7) zeigt sich, daß die Gewichte β_{i} in der zu p_{2n+1} gehörigen erweiterten Quadraturformel ∫_{a}^{b} p_{2n+1}(x)g(x)dx = ∑_{i=0}^{n}[α_{i}f(x_{i}) + β_{i}f′(x_{i})] alle verschwinden: β_{i} ≡ 0.

Zum Vergleich der verschiedenen Methoden dient folgendes

Beispiel 5.3.2 ∫_{−1}^{1} e^{x}dx = e^{1} − e^{−1} = 2 sinh 1 = 2.3504024. Näherungen

a) Trapezregel, Ordnung 2, 2 Schritte, 3 Punkte:

\frac{b − a}{4}[f(−1) + 2f(0) + f(1)] = 2 cosh^{2} \frac{1}{2} = 2.54308.., Fehler = 0.193..

b) Simpsonregel, Ordnung 4, 3 Punkte:

\frac{b − a}{6}[f(−1) + 4f(0) + f(1)] = \frac{1}{3}[4 + 2 cosh 1] = 2.36205.., Fehler = 0.012..

c) Gaußquadratur mit 2 Punkten, Ordnung 4. Bestimmung der Orthogonalpolynome: ω_{0} = P_{0} ≡ 1, ω_{1}(x) = P_{1}(x) = x ⊥ ω_{0}, Ansatz ω_{2} = x^{2} + ax + b ⊥ Π_{1}, d.h.

α) 0 =^{!} ∫_{−1}^{1}[x^{2} + ax + b]dx = [\frac{x^{3}}{3} + a\frac{x^{2}}{2} + bx]_{−1}^{1} = \frac{2}{3} + 2b ⇒ b = −\frac{1}{3},

β) 0 =^{!} ∫_{−1}^{1} x[x^{2} + ax + b]dx = [\frac{x^{4}}{4} + a\frac{x^{3}}{3} + b\frac{x^{2}}{2} ]_{−1}^{1} = \frac{2}{3}a ⇒ a = 0.

Dies ergibt ω_{2}(x) = x^{2} − \frac{1}{3} mit den Nullstellen x_{0} = −\frac{1}{\sqrt{3}}, x_{1} = \frac{1}{\sqrt{3}} = 0.57735.. Aus Symmetriegründen ist α_{0} = α_{1} = 1. Die Gaußnäherung hat daher den Wert

f(x_{0}) + f(x_{1}) = 2 cosh(x_{1}) = 2.342696.. Fehler = −0.0077..

Je nach Art der im Integranden zu berücksichtigenden Singularität (→ Gewichtsfunktion) ergeben sich verschiedene Polynomfamilien (vgl. folgende Tabelle), in denen jeweils auch Drei-Term-Rekursionen gelten (vgl. §3.4). Die wichtigste Familie zur Gewichtsfunktion g ≡ 1 ist die der Legendrepolynome. Zur Vereinfachung wird meist das Standardintervall [−1, 1] zugrundegelegt, durch Variablensubstitution sind andere Intervalle darauf zurückführbar (wie (3.6.7)).

Polynom-Orthogonalfamilien nach Satz 5.3.1:

Intervall Gewichtsfunkt. Bezeichnung  Rekursionsformel
[−1, 1] g ≡ 1 Legendre-Pol. P_{n+1} = \frac{2n+1}{n+1}xP_{n} − \frac{n}{n+1}P_{n−1}, P_{0} = 1, P_{1} = x
[−1, 1] g(x) = \sqrt{1 − x^{2}} Tscheby. 2.Art U_{n+1} = 2xU_{n} − U_{n−1}, U_{0} = 1, U_{1} = 2x

(−1, 1) g(x) = \frac{1}{\sqrt{1−x^{2}}} Tscheby. 1.Art

T_{n+1} = 2xT_{n}−T_{n−1}, T_{0} = 1, T_{1} = x
Gewichte konstant, α_{j} = \frac{π}{n}
[0, ∞)  g(x) = e^{−x}  Laguerre-Pol. {L_{n+1} = \frac{2n+1−x}{n+1}L_{n} − \frac{n}{n+1}L_{n−1} \atop L_{0} = 1, L_{1} = 1 − x}
(−∞, ∞) g(x) = e^{−x^{2}}  Hermite-Pol. H_{n+1} = 2xH_{n} − 2nH_{n−1}, H_{0} = 1, H_{1} = 2x

Über die angegebenen Polynomfamilien gibt es eine umfangreiche Literatur v.a. im Zusammenhang mit Reihenentwicklungen für Lösungen von Differentialgleichungen (z.B. Courant-Hilbert). Quadratur-Knoten und -Gewichte sind tabelliert, die Berechnung ist bei Stoer, §3.5, besprochen.

Eine explizite Darstellung von Orthogonalpolynomen ist oft mit Hilfe von Rodriguez-Formeln möglich. Die Legendre-Polynome, z.B., haben, bis auf Konstanten, die Gestalt

P_{n}(x) = \frac{n!}{(2n)!} \frac{d^{n}}{dx^{n}} (x^{2} − 1)^{n}, n = 0, 1, ….  (5.3.8)

Diese Formel ergibt sich aus den Orthogonalitätsbedingungen (5.3.2) durch partielle Integration. Aus dieser Darstellung (5.3.8) folgt übrigens direkt die Existenz von n reellen Nullstellen in (−1, 1) nach dem Satz von Rolle.

5.4 Adaptive Integration

Bisher wurde überhaupt nicht diskutiert, wie im konkreten Fall, bei gegebenem Integranden, das Quadraturverfahren und dessen Parameter (Schrittweite h, Ordnung) zu wählen sind. Im allgemeinen will man den Integralwert mit einer bestimmten Genauigkeit ε bei minimalem Aufwand berechnen. Falls über den Integranden genügend analytische Information vorhanden ist, kann im Prinzip aus der Restglieddarstellung (5.1.4) die Ordnung der Formel und die Zahl der Teilintervalle so bestimmt werden, daß die Fehlerschranke den Wert ε nicht überschreitet.

Diese aufwendige Methode läßt sich umgehen, wenn die Quadraturformel mit einer Fehler(ab)schätzung verbunden wird. Dies soll bei der iterierten Trapezregel besprochen werden. Wenn das Intervall [a, b] in n Teile [x_{i−1}, x_{i}] zerlegt ist, gilt in jedem Teil mit ξ_{i} ∈ (x_{i−1}, x_{i}):

∫_{x_{i−1}}^{x_{i}} f(x)dx − \frac{1}{2}(x_{i} − x_{i−1})[f(x_{i−1}) + f(x_{i})] = −\frac{1}{12}(x_{i} − x_{i−1})^{3}f′′(ξ_{i}) =: R[x_{i−1}, x_{i}]. (5.4.1)

Der lokal auftretende Fehler setzt sich also aus der aktuellen Teilintervallänge und dem lokalen Wert der zweiten Ableitung zusammen. Eine effiziente Strategie bei der Quadratur sollte den vorgegebenen Fehler mit möglichst wenig Funktionsauswertungen erreichen. Im Bereich kleiner Ableitungen kann dazu mit großen Schrittweiten vorgegangen werden, während bei großen Ableitungswerten viel feinere Unterteilungen nötig sind.

[figure]

Eine gute Strategie in diesem Sinn ist die der proportionalen Gleichverteilung des Fehlers

|R[x_{i−1}, x_{i}]| ≤^{!} \frac{x_{i} − x_{i−1}}{b − a} ε, i = 1, …, n.  (5.4.2)

Dann gilt nämlich

|∫_{a}^{b} f(x)dx − ∑_{i=1}^{n} \frac{x_{i} − x_{i−1}}{2} [f(x_{i−1}) + f(x_{i})]| ≤ ∑_{i=1}^{n} |R[x_{i−1}, x_{i}]| ≤ ∑_{i=1}^{n} \frac{x_{i} − x_{i−1}}{b − a} ε = ε. (5.4.3)

Zur Anwendung der Strategie (5.4.2) sind zwei Fragen zu klären:

a) Wie erhält man eine Abschätzung des lokalen Fehlers R[x_{i−1}, x_{i}]?

b) Wie konstruiert man damit eine Unterteilung, die (5.4.2) erfüllt?

Zu a): Außer bei einfachen Integranden, bei denen ∥f′′∥_{[x_{i−1},x_{i}]} abgeschätzt werden kann (evtl. mit Intervallrechnung), begnügt man sich mit einer Schätzung des lokalen Fehlers R[x_{i−1}, x_{i}]. So gilt, z.B., mit h_{i} := x_{i} − x_{i−1} für ein ζ_{i} ∈ (x_{i−1}, x_{i}) die Aussage

f(x_{i−1}) − 2f(\frac{x_{i−1} + x_{i}}{2} ) + f(x_{i}) = \frac{1}{4}h_{i}^{2}f′′(ζ_{i}) ≅ −\frac{3}{h_{i}} R[x_{i−1}, x_{i}].  (5.4.4)

Dies folgt aus (3.3.10) oder durch Taylorentwicklung um \frac{1}{2}(x_{i−1} + x_{i}). Mit der Approximation (5.4.4) wird das Kriterium (5.4.2) ersetzt durch

|f(x_{i−1}) − 2f(\frac{x_{i−1} + x_{i}}{2} ) + f(x_{i})| ≤^{!} \frac{3ε}{b − a}.  (5.4.5)

Zu b): Die Gitterkonstruktion zur Einhaltung von (5.4.5) kann ganz einfach über folgendes

adaptive Verfahren geschehen: • wähle x_{0} := a, x_{1} := b;

• Falls (5.4.5) verletzt ist, halbiere das Intervall, setze x_{1} := (x_{0} + x_{1})/2;

• Falls (5.4.5) gilt, akzeptiere den Integralwert für ∫_{x_{0}}^{x_{1}} und fahre wie oben fort mit der Integration im Rest-

intervall ∫_{x_{1}}^{b}, d.h. mit x_{0} := x_{1}, x_{1} := b. a x_{0}  bx_{1} x_{0}  x_{1} x_{0}  x_{1}

Der folgende Programmteil beschreibt diesen einfachen Algorithmus.

Algorithmus 5.4.1 Einfache adaptive Quadratur x_{0} := a; f0 := f(x0); x1 := b; f1 := f(x1); w := 0; e := 3ε/(b − a); repeat xm := 0.5 ∗ (x0 + x1); fm := f(xm);

if abs(f0 − 2 ∗ fm + f1) <= e then {akzeptieren} begin w := w + 0.5 ∗ (x1 − x0) ∗ (f0 + f1); x0 := x1; f0 := f1; x1 := b; f1 := f(x1)

end else {halbieren}

begin x1 := xm; f1 := fm end until x0 >= b;

In der Praxis sind Funktionsauswertungen zu kostbar, um sie im Falle eines nicht akzeptierten Teilintegrals zu verwerfen. Durch eine Einschränkung der Teilintervallängen auf die Werte (b − a)2^{−j}, j ∈ N, und einfache Zusatzbedingungen kann man erreichen, daß alle einmal berechneten Funktionswerte später auch verwendet werden. Die Verwaltung der gespeicherten Funktionswerte läßt sich elegant in einem Keller speicher (Stapel, stack, FILO) realisieren. Beispiel:

Schwarz markierte

Gitterwerte stehen im Keller

[figure: halbieren; halbieren; akzeptieren; halbieren; akzeptieren; etc...]

Professionelle Programme steuern lokal außer der Schrittweite auch die Ordnung der Formel. Demo-Beispiel: Adaptive Integration von

∫_{0}^{1} e^{x} dx, ∫_{−1}^{1} (\sqrt{|x^{2} − 0.25|} − \frac{1}{3}) dx, ∫_{0}^{1} sin \frac{1}{x^{2} + 0.05} dx.

5.5 Richardson-Extrapolation, Romberg-Verfahren

Im letzten Abschnitt wurde zum ersten Mal die theoretische Kenntnis des Fehlerverhaltens von Quadraturformeln praktisch ausgenutzt. Die folgende Methode verwendet diese in noch viel stärkerem Maße zu einer erheblichen Verbesserung der Konvergenz. Dazu sei noch einmal an die Werte des Beispiels aus §5.2 erinnert: Beispiel 5.5.1 Iterierte Trapezregel zu W := ∫_{1}^{2} \frac{1}{x} dx = ln 2 = 0.6931472...

h 1  1/2  1/4  1/8  1/16
T_{h} 0.75  \underline{0.7}0833 \underline{0.69}702 \underline{0.69}4122 \underline{0.693}391
Fehler 0.0568 0.01518 0.00387 0.000975 0.000244
Fehler-Quotient  3.74  3.92  3.99  3.996

Der Quotient aufeinanderfolgender Fehler konvergiert offensichtlich gegen 4 für h → 0:

\frac{W − T_{h}}{W − T_{h/2}} → 4, d.h., W − T_{h} − ah^{2} = o(h^{2}).

Dabei ist a eine Konstante und o(h^{k}), (h → 0), bezeichnet eine Funktion, die schneller gegen Null geht als h^{k}. Bei Vernachlässigung dieses Terms in der letzten Gleichung kann die unbekannte Konstante a bei Kenntnis von zwei Trapeznäherungen eliminiert werden in folgender Weise:

a ≐ \frac{1}{h^{2}} (W − T_{h}) ⇒ W ≐ T_{h/2} + a\frac{h^{2}}{4} ≐ T_{h/2} + \frac{h^{2}}{4} \frac{1}{h^{2}} (W − T_{h}), bzw.
W ≐ \frac{4}{3}T_{h/2} − \frac{1}{3}T_{h} =: T̂_{h/2}.  (5.5.1)

Die auf diese Weise neu kombinierten Werte zum letzten Zahlenbeispiel lauten

h = 1 1/2 1/4 1/8 1/16
T̂_{h}=  \underline{0.69}444 \underline{0.693}2 \underline{0.6931}6 \underline{0.693147}

Diese besitzen ca. die doppelte Anzahl von gültigen Ziffern wie die ursprünglichen Trapezwerte. Der Erfolg des Vorgehens beruht auf folgender Eigenschaft.

Definition 5.5.2 Die Größe T_{h}, 0 < h ∈ R, besitzt eine asymptotische Entwicklung (nach Potenzen von h^{k}), wenn q ∈ N und von h unabhängige Koeffizienten a_{j} ∈ R existieren so, daß gilt

T_{h} = W + a_{1}h^{k} + a_{2}h^{2k} + … + a_{q}h^{qk} + O(h^{qk+1}), h → 0.  (5.5.2)

Bei der Trapezregel (k = 2, s.u.) verändert die Linearkombination (5.5.1) die Entwicklung (5.5.2):

T̂_{h/2} = \frac{4}{3}T_{h/2} − \frac{1}{3}T_{h} = W + a_{1}h^{2}(\frac{4}{3} \frac{1}{4} − \frac{1}{3}) + a_{2}h^{4}(\frac{4}{3} \frac{1}{16} − \frac{1}{3}) + …
= W − \frac{1}{4}a_{2}h^{4} + …

In der Entwicklung wurde also der h^{2}-Fehleranteil eliminiert, T̂_{h} ist jetzt eine Näherung der Ordnung 4. Genauer gilt T̂_{h/2} = W + â_{2}(\frac{h}{2})^{4} + . . .. Daher kann das Extrapolationsverfahren von oben noch einmal auf T̂ angewendet werden. Bevor diese Methode systematischer untersucht wird, sei zunächst die Aussage (5.5.2) für die Trapezregel formuliert.

Satz 5.5.3 (Euler-McLaurin-Summenformel) Für f ∈ C^{2q+2}[a, b] besitzt die iterierte Trapezregel (5.2.6) folgende h^{2}-Entwicklung, h = (b − a)/n,

T_{h} = \frac{h}{2}[f_{0} + 2f_{1} + … + 2f_{n−1} + f_{n}] = ∫_{a}^{b} f(x)dx  (5.5.3)

+ ∑_{j=1}^{q} b_{j}h^{2j}[f^{(2j−1)}(b) − f^{(2j−1)}(a)] + c_{2q+2}h^{2q+2}f^{(2q+2)}(ξ), ξ ∈ (a, b).

Beweis (-Idee, vgl. Stoer) Auf einem einzelnen Intervall, z.B. [0, h], gilt

\frac{h}{2}[f(0) + f(h)] = [(x − \frac{h}{2})f(x)]_{0}^{h} = ∫_{0}^{h} [(x − \frac{h}{2})f(x)]′ dx = ∫_{0}^{h} f(x)dx + ∫_{0}^{h}(x − \frac{h}{2})f′(x)dx.

Hier kann nun wieder partiell integriert werden. Dabei lassen sich die Integrationskonstanten so wählen, daß Terme mit ungeraden h-Potenzen nicht auftreten. Im ersten Schritt etwa ist p_{2}(x) := \frac{1}{2}(x^{2} − hx + h^{2}/6) eine Stammfunktion von (x − \frac{h}{2}) mit ∫_{0}^{h} p_{2}(x)dx = 0. Daher hat p_{2} eine Stammfunktion p_{3}(x) = ∫_{0}^{x} p_{2}(t)dt mit p_{3}(0) = p_{3}(h) = 0 und es gilt

\frac{h}{2}[f(0) + f(h)] = ∫_{0}^{h} f(x)dx + \frac{h^{2}}{12}[f′(h) − f′(0)] + ∫_{0}^{h} p_{3}(x)f′′′(x)dx,

also b_{1} = 1/12. Das Gesamtergebnis (5.5.3) folgt durch Summation über die Teilintervalle. Bemerkung: Der Summenformel entnimmt man, z.B., auch folgende Aussage: Wenn der Integrand (b − a)-periodisch ist, besitzt die Trapezregel sogar maximale Ordnung 2q + 2.

Extrapolationsverfahren arbeiten nach folgendem Prinzip. Ein Grenzwert W = lim_{h↘0} T_{h} =: T_{0} soll bestimmt werden, wobei T_{h} aber nur für (einzelne) Werte h > 0 tatsächlich berechnet werden kann. Anstatt nun die Elemente einer Folge von Werten T_{h_{0}}, T_{h_{1}}, … unabhängig voneinander zu betrachten, ist es günstiger, das Interpolationspolynom zu (h_{0}, T_{h_{0}}), …, (h_{m}, T_{h_{m}}) zu berechnen und dessen Wert in h = 0 als Näherung für T_{0} heranzuziehen. Zur Auswertung des Polynoms in der Stelle 0 eignet sich am besten der Neville-Algorithmus (3.3.5).

[figure: h_{0}; h_{1}; h_{2}; h_{3}; 0; T_{0}; T_{h}]

Dazu wird aber (5.5.2) als Entwicklung nach der Variablen h^{k} aufgefaßt. Für die Polynomwerte p_{ij} = p_{ij}(0) bekommt man so den folgenden Algorithmus der Richardson-Extrapolation:

p_{i0} := T_{h_{i}}, i = 0, …, m
p_{ij} := p_{i+1,j−1} + \frac{p_{i+1,j−1} − p_{i,j−1}}{(h_{i}/h_{i+j})^{k} − 1} , \{ \begin{matrix}i = 0, …, m − j \\ j = 1, …, m \end{matrix} .  (5.5.4)

Die Berechnung erfolgt wieder in einem Dreieckschema spalten- oder zeilenweise. In der Praxis werden meist feste Schrittweitenfolgen, z.B. h_{i}/h_{i+j} = 2^{j}, verwendet. Dann benötigt (5.5.4) nur 3 Operationen pro Schritt. Die durch die Extrapolation (5.5.4) erreichte Erhöhung der Konvergenzordnung ergibt sich aus

Satz 5.5.4 Wenn für die Größe T_{h} eine asymptotische Entwicklung (5.5.2) existiert, dann gilt für die nach (5.5.4) mit h_{0} > h_{1} > … extrapolierten Werte die Darstellung

p_{ij} = T_{0} + h_{i}^{k} ⋯ h_{i+j}^{k}[(−1)^{j}a_{j+1} + O(h_{i}^{k})],  (5.5.5)

h_{0} → 0, j < q. Bei einem konstanten Schrittweitenverhältnis v = h_{i}/h_{i−1} < 1 vereinfacht sich die Darstellung zu

p_{ij} = T_{0} + h_{i+j}^{k(j+1)}[(−1)^{j}v^{−kj(j−1)/2}a_{j+1} + O(h_{i+j}^{k})],  (5.5.6)

h_{0} → 0, j < q. Die Ordnung der Näherung hat sich also auf h^{k(j+1)} erhöht.

Beweis Alle beteiligten Größen, insbesondere die in der Entwicklung (5.5.2) auftretenden h-Potenzen, werden als Funktionen von s := h^{k} interpretiert,

h^{ℓk} = s^{ℓ} =: g_{ℓ}(s), ℓ ≥ 1, bzw. 1 = s^{0} =: g_{0}(s).

Da die Polynominterpolation (vom Grad j zu s_{i}, …, s_{i+j}) einer beschränkten, linearen Abbildung P_{j} entspricht, vgl. (3.6.11), kann man sich in der Entwicklung (5.5.2) wegen

P_{j}T_{s} = T_{0}P_{j}g_{0} + ∑_{ℓ=1}^{q} a_{ℓ}P_{j}g_{ℓ} + …

bei der Analyse des Verfahrens (5.5.4) auf einzelne Summanden beschränken. Der Wert des Interpolationspolynoms q_{ℓ,j}(s) = (P_{j}g_{ℓ})(s) vom Grad j zu einem Monom g_{ℓ} ist im Punkt s = 0 bei der konstanten Funktion (ℓ = 0) q_{0j}(0) = 1 und für 0 < ℓ ≤ j dann q_{ℓj}(0) = 0. Für ℓ = j + 1 wird aber g_{j+1} nicht mehr exakt interpoliert, wegen g_{j+1}(0) = 0 ist der Wert q_{j+1,j}(0) daher gerade der Interpolationsfehler in s = 0. Nach (3.3.11) ist dies

p_{j+1,j}(0) = g_{j+1}(0) − (0 − s_{i}) ⋯ (0 − s_{i+j})g_{j+1}[s_{i}, …, s_{i+j}, 0] = (−1)^{j}s_{i} ⋯ s_{i+j} \frac{(j + 1)!}{(j + 1)!}.

Somit hat das Interpolationspolynom P_{j}(T_{0}g_{0} + a_{1}g_{1} + … + a_{j+1}g_{j+1}) vom Grad j in s = 0 den Wert T_{0} + (−1)^{j}s_{i} ⋯ s_{i+j}a_{j+1}. Dies entspricht der Behauptung.

Praktische Durchführung

1. In der Trapezregel brauchen nach einer Schrittweitenhalbierung bei der Berechnung von T_{h/2} die in T_{h} enthaltenen Funktionswerte nicht mehr neu berechnet zu werden. Bei Extrapolation sind daher folgende Schrittweitenfolgen günstig.

a) Romberg-Folge: h_{0} = β − α, h_{i} = 2^{−i}h_{0}. Diese Quadratur-Methode heißt Romberg-Verfahren. In Satz 5.5.4 gilt

p_{ij} = T_{0} + h_{i+j}^{2j+2}ā_{j+1} + ….

Wenn hiermit hohe Ordnungen erreicht werden sollen, sind allerdings sehr viele Funktionsauswertungen erforderlich, nämlich 2^{j} + 1 für p_{0j}. Eine Formel der Ordnung 16 etwa verwendet hier 129 Punkte, während die Gaußformel dafür mit 8 Punkten auskommt!

b) Bulirsch-Folge: h_{0} = β − α und für i = 1, 2, …

h_{i}/h_{0} = \frac{1}{2}, \frac{1}{3}, \frac{1}{4}, \frac{1}{6}, \frac{1}{8}, \frac{1}{12}, … = \{ \begin{matrix}2^{−(i+1)/2}, & i ungerade, \\ \frac{2}{3}2^{−i/2}, & i gerade. \end{matrix}

Die Anzahl der für eine bestimmte Ordnung benötigten Stützstellen wächst hier langsamer, Ordnung 16, z.B., ist jetzt mit 25 Punkten erreichbar.

2. Wie bei den anderen Quadraturverfahren kennt man i. a. nicht die günstigste Ordnung (etwa die Differenzierbarkeitsordnung von f). Daher sollte die Zulässigkeit der Extrapolation in der Praxis durch Überwachung der Konvergenzaussage (5.5.5), (5.5.6) sichergestellt werden. Für die Romberg-Folge gilt nach (5.5.6):

p_{ij} = T_{0} + h_{i+j}^{2j+2}ā_{j+1} + h_{i+j}^{2j+4}ā_{j+2} + ….

Daher ist

p_{i,j} − p_{i−1,j} = h_{i+j}^{2j+2}(1 − 2^{2j+2})ā_{j+1} + h_{i+j}^{2j+4}(1 − 2^{2j+4})ā_{j+2} + …
p_{i+1,j} − p_{i,j} = h_{i+j}^{2j+2}(2^{−2j−2} − 1)ā_{j+1} + h_{i+j}^{2j+4}(2^{−2j−4} − 1)ā_{j+2} + …

Für den Quotienten dieser Differenzen folgt somit

\frac{p_{i,j} − p_{i−1,j}}{p_{i+1,j} − p_{i,j}} = \frac{(1 − 2^{2j+2})ā_{j+1} + h_{i+j}^{2}(…)ā_{j+2} + …}{(2^{−2j−2} − 1)ā_{j+1} + h_{i+j}^{2}(…)ā_{j+2} + …} = 2^{2j+2} + O(h_{i+j}^{2}).

Daher sollte bei einem zu großen Betrag der Abweichung

2^{−2j−2} \frac{p_{i,j} − p_{i−1,j}}{p_{i+1,j} − p_{i,j}} − 1

auf eine weitere Extrapolation j → j + 1 verzichtet werden.

Beispiel 5.5.5 ∫_{1}^{2} \frac{1}{x}dx = ln 2 = 0.69314718056, Rombergfolge. Die Tabelle zeigt die Werte p_{ij}, i = 1, .., 5, 0 ≤ j ≤ i. Der Wert p_{14} ist auf alle 11 Stellen genau.

h j=0 1 2 3 4
1/2 0.70833333333 0.69325396825 0.69314790148 0.69314718307 0.69314718056
1/4 0.69702380952 0.69315453065 0.69314719430 0.69314718057
1/8 0.69412185037 0.69314765282 0.69314718079
1/16 0.69339120221 0.69314721029
1/32 0.69320820827

In der rechtsstehenden Graphik wird die Genauigkeit aller Näherungen in den verschiedenen Spalten der Tabelle gezeigt. An der horizontalen Achse ist der negative Zweier-Logarithmus der Schrittweiten abgetragen, an der vertikalen der Zehner-Logarithmus der Fehler. Die Ordnung der Näherungen in einer Spalte der Tabelle läßt sich an der Steigung der Punktereihen ablesen.

[figure: − log_{2}(h); 7; 8; 9; 10; 11; 12; −2; −4; −6; −8; −10; −12; j = 0; j = 1; j = 2; j = 3; j = 4]

Bemerkung: 1) Die Richardson-Extrapolation beruht allein auf der Existenz einer asymptotischen Entwicklung (5.5.2). Solche Entwicklungen existieren auch bei vielen anderen Verfahren (z.B. den Differenzenformeln in §5.6). Dort läßt sich die Extrapolation daher analog einsetzen.

2) Mit dem Romberg-Verfahren kann bei adaptiver Integration auch einfach eine Ordnungssteuerung auf den einzelnen Teilintervallen implementiert werden.

5.6 Numerische Differentiation

Zur Approximation von Ableitungen einer Funktion kann man analog zu den einfachen Quadraturformeln das Interpolationspolynom heranziehen und dessen Ableitungen verwenden:

f^{(k)}(x̂) ≅ p_{n}^{(k)}(x̂) = ∑_{j=0}^{n} f(x_{j})L^{(k)}(x̂).

Da hier weniger Gestaltungsmöglichkeiten bestehen als in §5.1, werden nur kurz einige Beispiele und Besonderheiten beim Fehlerverhalten besprochen. Im folgenden sei [α, β] ein (beliebig kleines) Intervall, das die Stelle x̂ enthält.

Satz 5.6.1 Es sei p_{n} ∈ Π_{n} das Interpolationspolynom zu f ∈ C^{n+1}[α, β] und einfachen Stützstellen x_{j} ∈ [α, β], j = 0, …, n. Dann gilt für k ≤ n und x̂ ∈ [α, β] die Aussage

p_{n}^{(k)}(x̂) − f^{(k)}(x̂) = r_{kn}(x̂)  mit
r_{kn}(x) = (x − x_{0}^{(k)}) ⋯ (x − x_{n−k}^{(k)})\frac{f^{(n+1)}(ξ_{k})}{(n + 1 − k)!},  (5.6.1)

ξ_{k} ∈ (α, β), wobei α < x_{0}^{(k)} < … < x_{n−k}^{(k)} < β. Mit ϱ := max_{j=0}^{n} |x̂ − x_{j}| ≤ β − α gilt daher

|r_{kn}(x̂)| ≤ \frac{ϱ^{n+1−k}}{(n + 1 − k)!}∥f^{(n+1)}∥_{∞}.

Beweis Iterierter Satz von Rolle, vgl. [Stummel-Hainer] Bemerkung: Nach (5.6.1) gibt es offensichtlich in [α, β] Stellen, in denen der Fehler verschwindet. Durch geeignete Wahl der Stützstellen kann x̂ in die Nähe solcher Punkte gebracht werden um, wie bei der Quadratur, eine bessere Konvergenz zu erhalten. Zur Untersuchung wird wieder eine zusätzliche Interpolationsstelle x_{n+1} herangezogen. In der Newtondarstellung ist

f(x) = p_{n}(x) + ω_{n+1}(x)f[x_{0}, …, x_{n+1}] + r_{n+1}(x),

ω_{n+1}(x) = (x − x_{0}) ⋯ (x − x_{n}). Aus dem letzten Satz folgt dann

f^{(k)}(x̂) − p_{n}^{(k)}(x̂) = ω_{n+1}^{(k)}(x̂)f[x_{0}, …, x_{n+1}] + r_{k,n+1}(x̂),  (5.6.2)

mit |r_{k,n+1}(x̂)| ≤ ϱ^{n+2−k}∥f^{(n+2)}∥_{∞}/(n+2−k)!. Daher wird also bei Auswertung in den Nullstellen von ω_{n+1}^{(k)} eine um eins erhöhte Konvergenzordnung erreicht für ϱ → 0. Bei Approximationen mit minimaler Knotenzahl, d.h. n = k, gilt dazu

ω_{n+1}(x) = x^{n+1} − ( ∑_{j=0}^{n} x_{j})x^{n} + … ⇒ ω_{n+1}^{(n)}(x) = (n + 1)! x − n! ∑_{j=0}^{n} x_{j}.

Die Ableitung p_{n}^{(n)} ≡ n!f[x_{0}, …, x_{n}] ist konstant (vgl. (3.3.10)). Wegen (5.6.2) ist dieser Wert aber eine besonders gute Approximation für die Ableitung f^{(n)}(x) im Mittelpunkt der Knoten

x̂ = \frac{1}{n + 1} ∑_{j=0}^{n} x_{j},  (5.6.3)

z.B., wenn die Knoten um x̂ symmetrisch verteilt sind. In diesem Fall gilt also

|f^{(n)}(x̂) − n!f[x_{0}, …, x_{n}]| ≤ \frac{ϱ^{2}}{2} ∥f^{(n+2)}∥_{∞}.

Bei äquidistanten Knoten x_{j} = x_{0} + jh ist ϱ ≤ nh, in den einfachsten Fällen ergeben sich folgende Approximationen (sog. Differenzenformeln) für x̂ = 0:

f′(0) = \frac{1}{h}[f(h) − f(0)] + chf′′(ξ)
f′(0) = \frac{1}{2h}[f(h) − f(−h)] + ch^{2}f^{(3)}(ξ), vgl. (5.6.3)
f′′(0) = \frac{1}{h^{2}} [f(−h) − 2f(0) + f(h)] + ch^{2}f^{(4)}(ξ), vgl. (5.6.3)

Die Fehlerkonstante c ist dabei i.a. unterschiedlich. Eine Formel höherer Ordnung ist

f′(0) = \frac{1}{12h}[f(−2h) − 8f(−h) + 8f(h) − f(2h)] + ch^{4}f^{(5)}(ξ).  (5.6.4)

Die Differenzenformeln sind umso genauer, je kleiner die Schrittweite h ist. Allerdings wird dann in der Formel durch die kleinen Zahlen h oder h^{2} dividiert. Daher wird der bei der Berechnung der Werte f(x_{j}) im Computer gemachte Fehler vergrößert und macht die Verwendung sehr kleiner Schrittweiten unsinnig. Da dieser Effekt hier besonders kritisch ist, soll er an der symmetrischen ersten Differenz erläutert werden, detaillierter wird das Problem in §7 untersucht. Daher seien jetzt f̃(x_{j}) = f(x_{j}) + ϵ_{j} die tatsächlich berechneten Funktionswerte, deren Fehler ϵ_{j} durch eine kleine Konstante E (ca. Maschinengenauigkeit, z.B. 10^{−11}) beschränkt sind, |ϵ_{j}| ≤ E. Dann gilt für den Gesamtfehler der tatsächlich berechneten Approximation

|\frac{1}{2h}[f̃(h) − f̃(−h)] − f′(0)| = |ch^{2}f′′(ξ) + \frac{ϵ_{1} − ϵ_{0}}{2h} | ≤ \underbrace{ch^{2}∥f′′∥_{∞}}_{↘0} + \underbrace{\frac{E}{h}}_{↗∞} (h → 0). (5.6.5)

Die Schranke wird minimal bei ĥ ≅ E^{1/3} mit einem Minimalwert ≅ E^{2/3}. Man kann also bei diesem Beispiel nicht erwarten, eine Genauigkeit von mehr als \frac{2}{3} der im Computer verfügbaren Stellen zu erreichen. Bei Formeln höherer Konvergenzordnung, wie (5.6.4), ist die erreichbare Genauigkeit besser.

6 Nichtlineare Gleichungssysteme

Viele praktische Probleme führen auf nichtlineare Gleichungen. Dies war beim Pendel §1 der Fall und gilt auch in den Problemen aus §2.1, wenn man kompliziertere Wechselwirkungen betrachtet. Die unbekannten Größen x ∈ R^{n} sind dann implizit durch Bedingungen in einer der beiden Formen

f(x) = 0, f : R^{n} ↦ R^{n},  (6.0.1)
x = g(x), g : R^{n} ↦ R^{n},  (6.0.2)

definiert, durch ein nichtlineares Gleichungssystem. In ausführlicher Form geschrieben heißt das

{ f_{1}(x_{1}, …, x_{n}) = 0 ; ⋮ ; f_{n}(x_{1}, …, x_{n}) = 0  bzw.  { x_{1} = g_{1}(x_{1}, …, x_{n}) ; ⋮ ; x_{n} = g_{n}(x_{1}, …, x_{n}) .

Dabei wird im folgenden mindestens einmalige stetige Differenzierbarkeit der Funktionen f bzw. g angenommen. Die Gleichungen (6.0.1) und (6.0.2) sind Standardformen solcher Probleme, (6.0.1) heißt Nullstellen-, (6.0.2) Fixpunktproblem.

Für das Fixpunktproblem (6.0.2) kennt man im Banachschen Fixpunktsatz (Satz 2.5.1) ein hinreichendes Existenzkriterium und ein Lösungsverfahren (die Iteration). Das Nullstellenproblem (6.0.1) wird meist durch Umformungen auf die Gestalt (6.0.2) gebracht, auf die der Fixpunktsatz anwendbar ist. Der einfachste Spezialfall n = 1 wird zunächst betrachtet.

6.1 Nullstellen einer skalaren Funktion

Für reelle Funktionen g können die Aussagen des Fixpunktsatzes durch Monotoniebetrachtungen verfeinert werden. Es sei g ∈ C^{1}[a, b].

• Die Existenz eines Fixpunkts (oder einer Nullstelle) läßt sich schon aus dem Zwischen-

wertsatz folgern:

a ≤ g(a), g(b) ≤ b ⇒ ∃ z = g(z) ∈ [a, b].

• Die Überprüfung der Lipschitzbedingung aus dem Banachschen Fixpunktsatz kann zur Vereinfachung auf den Fixpunkt z selbst beschränkt werden. Wenn |g′(z)| < 1 gilt, folgt aus der Stetigkeit von g′ die Existenz einer ganzen Umgebung von z, in der Konvergenz eintritt. Zusätzlich wirkt sich das Vorzeichen von g′(z) auf die Art der Konvergenz aus, bei positiver Steigung von g ist die Konvergenz monoton, bei negativer alternierend. Die Umgebung von z, in der Konvergenz gegen z eintritt, der sogenannte Einzugsbereich von z, kann sogar wesentlich größer sein als der Bereich {x : |g′(x)| < 1} aus dem Fixpunktsatz. Im folgenden linken Beispiel hat die Funktion g den weiteren Fixpunkt 0 mit g′(0) > 1 (“abstoßender Fixpunkt”). Offensichtlich konvergiert die Iteration hier für alle Startwerte x_{0} ∈ (0, z] gegen z. Dies läßt sich induktiv ganz einfach aus den Eigenschaften

x < g(x) < g(z) ∀x ∈ (0, z)

herleiten, da dann x_{k} < g(x_{k}) = x_{k+1} < g(z) = z gilt.

[figure: 0 < g′(z) < 1: monotone Konvergenz; g; x_{0}; x_{1}; x_{2}; z; −1 < g′(z) < 0: alternierende Konvergenz; g; x_{0}; x_{1}; x_{2}; z]

• Im Fall g′(z) = 0 tritt ein weiterer Effekt auf: Beispiel 6.1.1 f(x) = x^{2} − a = 0 (a > 0) ⟺ x = \frac{a}{x} ⟺ 2x = x + \frac{a}{x}.

Es sei g(x) := \frac{1}{2}(a + \frac{a}{x}) ⇒ der Fixpunkt ist z = \sqrt{a} = g(z). Die Iteration x_{k+1} := g(x_{k}) heißt Heron-Verfahren. Die nebenstehende Tabelle zeigt die Iterierten für a = 2. Offensichtlich verdoppelt sich die Anzahl der richtigen Ziffern bei jedem Schritt. Dieser Effekt ist mit dem Banachschen Fixpunktsatz alleine nicht erklärbar.

\begin{matrix}k & x_{k} \\ 0 & 1 \\ 1 & \underline{1.}5 \\ 2 & \underline{1.41}66 \\ 3 & \underline{1.41421}56 \\ 4 & \underline{1.414213562} \end{matrix}

Eine Analyse ergibt im speziellen Beispiel die Identität

x_{k+1} − z = \frac{x_{k}^{2} + a}{2x_{k}} − \sqrt{a} = \frac{1}{2x_{k}} (x_{k}^{2} − 2x_{k}\sqrt{a} + a) = \frac{1}{2x_{k}} (x_{k} − z)^{2},

bzw. allgemein mit der Eigenschaft g′(z) = \frac{1}{2}(1 − a/z^{2}) = 0 und dem Satz von Taylor

x_{k+1} − z = g(x_{k}) − g(z) = \underbrace{g′(z)}_{=0} (x_{k} − z) + \frac{1}{2}g′′(ξ_{k})(x_{k} − z)^{2}.  (6.1.1)

Aus beiden Formeln folgt, daß der Fehler bei jedem Iterationsschritt ungefähr quadriert wird mit der Konsequenz

|x_{k} − z| ≤ 10^{−m} ⇒ |x_{k+1} − z| ≤ \frac{1}{2}∥g′′∥ 10^{−2m}.

Dies entspricht ungefähr einer Verdopplung der Zahl der gültigen Ziffern pro Schritt.

Zur Beschreibung solcher Effekte führt man die Konvergenzordnung von Iterationsverfahren ein.

Definition 6.1.2 Eine Folge {x_{k}} mit lim_{k→∞} x_{k} = z, bzw. ein sie erzeugendes Iterationsverfahren, heißen konvergent von der Ordnung p ≥ 1, wenn k_{0} ∈ N, q ∈ R_{+} (wobei q < 1 bei Ordnung p = 1) existieren mit

|x_{k+1} − z| ≤ q |x_{k} − z|^{p} ∀k ≥ k_{0}.  (6.1.2)

Im allgemeinen wird als Ordnung das maximal mögliche p angegeben. Für p = 1, 2, 3 spricht man speziell von linearer, quadratischer und kubischer Konvergenz. Die Ordnung eines Iterationsverfahrens läßt sich an der Taylor-Entwicklung der Iterationsfunktion g im Fixpunkt z ablesen (wie in (6.1.1)).

Satz 6.1.3 Es sei z = g(z) ∈ U ein Fixpunkt von g ∈ C^{p}(U), p > 1, U offen. Es gelte

g′(z) = … = g^{(p−1)}(z) = 0, g^{(p)}(z) ≠ 0.

Dann konvergiert die Iterationsfolge {x_{k}}, x_{k+1} := g(x_{k}), k = 0, 1, …, für Startwerte x_{0} genügend nahe an z mit der Ordnung p gegen den Punkt z.

Beweis Wenn 0 < |x_{0} − z| ≤ ε mit genügend kleinem ε gilt, ist

x_{k+1} − z = g(x_{k}) − g(z) = g′(z)(x_{k} − z) + … + \frac{g^{(p−1)}(z)}{(p − 1)!}(x_{k} − z)^{p−1} + \frac{g^{(p)}(ξ_{k})}{p!}(x_{k} − z)^{p}

wobei rechts alle Summanden, bis auf den letzten, verschwinden (g^{(p)}(ξ) ≠ 0 wegen der Stetigkeit). Daher gilt (6.1.2). Die Konvergenz folgt für qε^{p−1} < 1 aus

|x_{k+1} − z| ≤ q|x_{k} − z|^{p} ≤ (qε^{p−1})|x_{k} − z|.

Bei der Konstruktion von Iterationsverfahren zur Nullstellenbestimmung geht man ähnlich vor wie früher: Die Funktion f wird durch ein einfacheres Modell approximiert (z.B. ein Polynom), für das sich eine Nullstelle einfach berechnen läßt. Dazu gibt es verschiedene Ansätze.

Newton-Verfahren

Approximation der Funktion f durch Abschnitte des Taylorpolynoms:

f(z) = \underbrace{\underbrace{0 =^{!} f(x_{k}) + f′(x_{k})(z − x_{k})}_{→ Newton-Verfahren} +\frac{1}{2}f′′(x_{k})(z − x_{k})^{2}}_{→ Newton-Raphson-Verfahren} + …

Das lineare Modell führt auf das Newtonverfahren

[figure: x_{k}; z]
x_{k+1} := g_{N}(x_{k}), g_{N}(x) := x − \frac{f(x)}{f′(x)} ,  (6.1.3)

das quadratische Modell auf das Newton-Raphson-Verfahren

x_{k+1} := g_{R}(x_{k}), g_{R}(x) := x − \frac{2f(x)}{f′(x) + signf′\sqrt{f′(x)^{2} − 2f(x)f′′(x)}} .  (6.1.4)

Nur das Newtonverfahren wird im folgenden genauer analysiert. Offensichtlich gilt

z = g_{N}(z) = z − \frac{f(z)}{f′(z)} ⇒ f(z) = 0.

Daher ist jeder Fixpunkt von g_{N} auch Nullstelle von f. Zur Anwendung von Satz 6.1.3 sind für f′(z) ≠ 0 Ableitungen von g_{N} zu berechnen:

\begin{aligned}g′_{N}(x) = 1 − \frac{f′(x)^{2} − f(x)f′′(x)}{f′(x)^{2}} = f(x)\frac{f′′(x)}{f′(x)^{2}} & = 0 & in x = z, \\ g′′_{N}(x) = \frac{f′(x)^{2}f′′(x) + f(x)[⋯]}{f′(x)^{3}} & = \frac{f′′(z)}{f′(z)} & in x = z, \end{aligned}  (6.1.5)

Hieraus folgt, daß (für f′(z) ≠ 0) das Newtonverfahren quadratisch konvergiert und in einem Wendepunkt von f (mit f′′(z) = 0) sogar kubisch. Das Newton-Raphson-Verfahren (6.1.4) konvergiert i.a. kubisch.

Außerdem verläuft die Konvergenz beim Newton-Verfahren meist monoton, im Beispiel 6.1.1, z.B., galt ab dem zweiten Schritt x_{k} ↘ \sqrt{a}. Dies folgt aus der Fehlerdarstellung (6.1.1),

x_{k+1} − z = \frac{1}{2}g′′_{N}(ξ_{k}) \underbrace{(x_{k} − z)^{2}}_{≥0} ⇒ sign(x_{k+1} − z) = sign g′′_{N}(z) = sign \frac{f′′(z)}{f′(z)}

nahe bei z.

[figure: g′′_{N}(z) > 0; x_{1}; x_{2}; x_{3}; g′′_{N}(z) < 0; x_{1}; x_{2}; x_{3}]

Bemerkung: 1) Wie die meisten Verfahren höherer Ordnung konvergiert das Newtonverfahren i.a. nur lokal, d.h., für genügend kleine Startfehler |x_{0} − z|. Eine konkrete Aussage über dessen zulässige Größe folgt im nächsten Abschnitt für den R^{n}. Der Einzugsbereich des Newtonverfahrens kann in ungünstigen Fällen sehr klein sein. Dann ist es sehr schwer, einen geeigneten Startwert x_{0} zu finden (→ Numerik 2A).

2) Auch bei mehrfachen Nullstellen, d.h., für f′(z) = 0, ist das Newtonverfahren noch verwendbar. Bei f(x) = (x − z)^{m}r(x), r(z) ≠ 0, gilt nämlich in der Nähe von z

g_{N}(x) = x − \frac{(x − z)^{m}r(x)}{m(x − z)^{m−1}r(x) + (x − z)^{m}r′(x)} = x − \frac{(x − z)r(x)}{mr(x) + (x − z)r′(x)} ⇒

x_{k+1} − z = g_{N}(x_{k}) − z = (x_{k} − z)(1 − \frac{1}{m + (x_{k} − z)r′(x_{k})/r(x_{k})}) ≅ (1 − \frac{1}{m})(x_{k} − z).

Daher konvergiert das Newtonverfahren noch linear mit dem Kontraktionsfaktor 1 − \frac{1}{m} < 1.

Bisektionsverfahren

Ein einfaches Verfahren zur Nullstellenbestimmung beruht auf dem Zwischenwertsatz für stetige Funktionen. Bei jedem Vorzeichenwechsel der Funktion, d.h., Stellen x_{0} < y_{0} mit f(x_{0})f(y_{0}) < 0, ist die Existenz einer Nullstelle z ∈ (x_{0}, y_{0}) gesichert. Mit einem solchen Anfangsintervall (x_{0}, y_{0}) kann die Einschließung durch Intervallhalbierung (“Bisektion”) verbessert werden:

[x_{k+1}, y_{k+1}] := \{ \begin{matrix}[m_{k}, y_{k}] & für & f(m_{k})f(y_{k}) < 0 \\ [x_{k}, m_{k}] & für & f(x_{k})f(m_{k}) < 0 \end{matrix} mit m_{k} := (x_{k} + y_{k})/2.  (6.1.6)

Die Fallunterscheidung hält die Bedingung f(x_{k+1})f(y_{k+1}) < 0 aufrecht wobei y_{k+1} − x_{k+1} = \frac{1}{2}(y_{k} − x_{k}). Daher zeigt dieses einfache Verfahren immerhin lineare Konvergenz mit dem Faktor q = 1/2 ohne jegliche Differenzierbarkeitsvoraussetzung an f und kann, z.B., dazu dienen, verläßliche Startwerte für Newton- oder andere Verfahren zu berechnen.

Sekantenverfahren, Regula falsi

Zur Approximation der Funktion f bei der Nullstellenbestimmung ist außer dem Taylor- auch ein Interpolationspolynom einsetzbar. Ausgehend von zwei Funktions-Wertepaaren (x_{0}, f_{0}), (x_{1}, f_{1}) läßt sich eine verbesserte Näherung über die Nullstelle der linearen Interpolierenden (Sekante) bestimmen:

s(x) = f[x_{1}] + (x − x_{1})f[x_{1}, x_{0}] = f_{1} + (x − x_{1})\frac{f_{1} − f_{0}}{x_{1} − x_{0}} =^{!} 0. [figure: x_{1}; x_{0}; x_{2}; f_{1}; f_{0}; z]

Dies führt auf den neuen Wert

x_{2} = x_{1} − f_{1} \frac{x_{1} − x_{0}}{f_{1} − f_{0}} = \frac{x_{0}f_{1} − x_{1}f_{0}}{f_{1} − f_{0}} .  (6.1.7)

Die erste Form betont die Ähnlichkeit mit dem Newtonverfahren, da (x_{1} − x_{0})/(f_{1} − f_{0}) ≅ 1/f′(x_{1}). Bei Wiederholung der Konstruktion (6.1.7) mit {x_{1}, x_{2}} kann die nächste Näherung allerdings wieder schlechter als x_{0} sein. Dies wird verhindert bei der

Regula falsi Mit (6.1.7) wird wie beim Bisektionsverfahren stets eine Einschließung (x_{k}, y_{k}) der Nullstelle z konstruiert, d.h., der Ablauf entspricht

(6.1.6) mit m_{k} := \frac{x_{k}f(y_{k}) − y_{k}f(x_{k})}{f(y_{k}) − f(x_{k})}.  (6.1.8)

Da dieses Verfahren die Bedingung f(x_{k+1})f(y_{k+1}) < 0 erzwingt, wird einer der Randpunkte nie verbessert, wenn f′′ in der Nähe von z ein festes Vorzeichen besitzt:

[figure: x_{0}; y_{k}; x_{1}; x_{k}; y_{0}; y_{1}; f′′ > 0:; f′′ < 0:]

Daher hat dieses Verfahren i.a. nur die Konvergenzordnung eins. Bei Verzicht auf die Einschließungseigenschaft erhält man das

Sekantenverfahren Ohne Beachtung des Vorzeichenwechsels der Funktionswerte wird (6.1.7) als Iterationsvorschrift angewendet:

x_{k+1} = x_{k} − f(x_{k})\frac{x_{k} − x_{k−1}}{f(x_{k}) − f(x_{k−1})}, k = 1, 2, …  (6.1.9)

Dieses Verfahren hat nun eine andere Struktur als die Fixpunkt-Iteration. Da zur Konstruktion von x_{k+1} zwei frühere Iterierte verwendet werden, handelt es sich um eine mehrstufige Iteration.

Definition 6.1.4 Ein Iterationsverfahren der Form

x_{k+1} := G(x_{k}, x_{k−1}, …, x_{k−m+1}), k ≥ m − 1,

mit G : R^{m} ↦ R heißt m-stufiges Verfahren.

Zur Untersuchung der Konvergenz des Verfahrens wird die Fortpflanzung der Fehler betrachtet. Aus (6.1.9) folgt

x_{k+1} − z = x_{k} − z − \frac{f(x_{k}) − f(z)}{f[x_{k−1}, x_{k}]} = (x_{k} − z)\frac{f[x_{k−1}, x_{k}] − f[x_{k}, z]}{f[x_{k−1}, x_{k}]}
= \frac{(x_{k} − z)(x_{k−1} − z)}{f[x_{k−1}, x_{k}]} \frac{f[x_{k−1}, x_{k}] − f[x_{k}, z]}{x_{k−1} − z}
= (x_{k} − z)(x_{k−1} − z)\frac{f[x_{k−1}, x_{k}, z]}{f[x_{k−1}, x_{k}]}.  (6.1.10)

Aus (3.3.10) folgt, daß Stellen ξ_{k}, η_{k} aus der konvexen Hülle von x_{k}, x_{k−1}, z existieren mit

f[x_{k−1}, x_{k}] = f′(ξ_{k}), f[x_{k−1}, x_{k}, z] = \frac{1}{2}f′′(η_{k}).

Für f′(z) ≠ 0 gibt es daher eine Umgebung von z, in der (6.1.9) konvergiert.

Satz 6.1.5 Es sei U = [z −r, z +r], r > 0, eine Umgebung der Nullstelle z von f ∈ C^{2}(U). Es gelte

|f′(x)| ≥ m_{1} > 0, \frac{1}{2}|f′′(x)| ≤ M_{2} ∀x ∈ U.

Dann konvergiert das Sekantenverfahren (6.1.9) für zwei beliebige Startwerte x_{0}, x_{1} ∈ U mit M|x_{0} − z| < 1, M|x_{1} − z| < 1 (M := M_{2}/m_{1}) gegen die Nullstelle z. Die Konvergenzordnung ist dabei mindestens p_{S} = \frac{1}{2}(1 + \sqrt{5}) = 1.618.. .

Beweis Mit e_{j} := |x_{j} − z|, j ≥ 0, lautet (6.1.10) kurz

e_{k+1} = e_{k} e_{k−1} |\frac{f[x_{k−1}, x_{k}, z]}{f[x_{k−1}, x_{k}]}| .  (6.1.11)

a) Nach (6.1.11) gilt mit q := M max{e_{0}, e_{1}} < 1 induktiv

e_{k+1} ≤ Me_{k}e_{k−1} ≤ qe_{k} < e_{k}, k ≥ 1.

Somit übertragen sich die benötigten Eigenschaften auf e_{k+1}, es gilt e_{k+1} < r, Me_{k+1} < q und es folgt e_{k+1} ≤ q^{k}e_{1} → 0.

b) Es wird nur der Fall f′′(z) ≠ 0 betrachtet und gezeigt, daß das Verfahren dann genau von der Ordnung p = p_{S}, mit p^{2} = p + 1, konvergiert. Dazu sei q̂:= \frac{1}{2}f′′(z)/f′(z) ≠ 0 und e_{0}, e_{1} ≠ 0. Nach Teil a) und (6.1.11) gilt dann e_{k+1} = q_{k}e_{k}e_{k−1} mit q_{k} ≠ 0 für k ≥ k_{0}, q_{k} → q̂, und die neue Folge c_{k} := e_{k+1}/e_{k}^{p} ist daher wohldefiniert. Für sie gilt

c_{k} = \frac{e_{k+1}}{e_{k}^{p}} = q_{k}e_{k}^{1−p}e_{k−1} = q_{k}c_{k−1}^{1−p}e_{k−1}^{1+p−p^{2}} = q_{k}c_{k−1}^{1−p}.

Dies ist eine einstufige Rekursionsformel, zu der wegen 0 < p − 1 < 1 eine beschränkte Folge {c_{k}} gehört (Übung). Daraus folgt die Behauptung, e_{k+1} ≤ Ce_{k}^{p}.

Bemerkungen: 1) Die Ordnung des Sekantenverfahrens ist etwas geringer als die des Newtonverfahrens. Allerdings benötigt ein Iterationsschritt (6.1.9) nur eine neue Funktionsauswertung, während beim Newtonverfahren f(x_{k}) und f′(x_{k}) zu berechnen sind. Dies ist bei einem Effizienzvergleich zu berücksichtigen: Mit Hilfe von k = 2m Funktionsauswertungen wird der Anfangsfehler e_{0} i.w. reduziert auf

ep_{N}^{k/2}_{0} (Newton-Verf.) bzw. ep_{S}^{k}_{0} (Sekanten-Verf.).

Die effektiven Ordnungen (bezogen auf die Zahl der Funktionsauswertungen) sind also für Newton- und Sekanten-Verfahren

p_{N}^{1/2} = \sqrt{2} = 1.414 … < p_{S} = 1.618 ….

Da das Sekantenverfahren somit eine bessere effektive Ordnung besitzt und außerdem keine Ableitungen benötigt, ist es für skalare Probleme dem Newtonverfahren i.a. vorzuziehen (HP-Rechner: Solve-Taste).

6.2 Newtonverfahren im R^{n} 85

Beispiel 6.1.6 f(x) := cos(x) cosh(x) + 1. Anwendung von Newton- und Sekantenverfahren:

Newton  Sekanten
x_{0}=1.8  x_{0}=1.8, x_{1}=1.9
x_{2}=\underline{1.87}36979
x_{1}=\underline{1.87}95674 x_{3}=\underline{1.875}0786
x_{4}=\underline{1.8751040}95
x_{2}=\underline{1.8751}186 x_{5}=\underline{1.875104069}

2) Die Vorteile von Regula falsi und Sekantenverfahren lassen sich durch einfache Überwachung vereinigen. Zusätzlich zur Folge {x_{k}} aus (6.1.9) wird die bisher beste Einschließung

a_{k} := max{x_{j} : x_{j} ≤ z, j ≤ k}, b_{k} := min{x_{j} : x_{j} ≥ z, j ≤ k},

gespeichert und ein x_{k+1} ∉ [a_{k}, b_{k}] durch den besseren Randwert ersetzt. Weitere Varianten sind in der Literatur beschrieben, ihre Konvergenzordnungordnungen reduzieren sich geringfügig auf ungefähr 1.6.

Interpolationsverfahren höherer Ordnung

Versucht man, bessere Verfahren durch Übergang zu Interpolationspolynomen höherer Ordnung von f zu konstruieren, handelt man sich das Problem ein, dessen Nullstellen bestimmen zu müssen. Dies kann man umgehen durch Betrachtung der (lokalen) Umkehrfunktion φ := f^{−1}. Wenn nämlich z Nullstelle von f ist, f(z) = 0, dann gilt natürlich z = φ(0). Dazu werden die Wertepaare (x_{j}, y_{j} = f(x_{j})), j = k, k − 1, , …, k − m, als Daten der Umkehrfunktion interpretiert, (y_{j}, φ(y_{j}) = x_{j}), und so interpoliert:

[figure: y_{0}; x_{0}; y; x; x_{1}; y_{1}; x_{2}; y_{2}; φ = f^{−1}]
q_{m} ∈ Π_{m} : q_{m}(y_{j}) = x_{j}, j = k, k − 1, …, k − m.

Die nächste Iterierte ist dann einfach x_{k+1} = q_{m}(0). Die Verbesserungen gegenüber dem Sekantenverfahren sind aber nicht mehr groß (Ordnung < 2 ∀m).

6.2 Newtonverfahren im R^{n}

Im Gegensatz zum skalaren Fall n = 1 gibt es bei der Lösung nichtlinearer Gleichungssysteme (6.0.1) mit n > 1 kaum eine Alternative zum Newtonverfahren. Nach Definition der Ableitung in einer Stelle x̄ ∈ R^{n},

f′(x̄) := \frac{∂f}{∂x}(x̄) = ( \begin{matrix}\frac{∂f_{1}}{∂x_{1}} (x̄) & … & \frac{∂f_{1}}{∂x_{n}} (x̄) \\ ⋮ & & ⋮ \\ \frac{∂f_{n}}{∂x_{1}} (x̄) & … & \frac{∂f_{n}}{∂x_{n}} (x̄) \end{matrix} ) = ( ∇f_{1} ; ⋮ ; ∇f_{n} ) zu f = ( f_{1} ; ⋮ ; f_{n} ) ,  (6.2.1)

gilt mit der Matrix A := f′(x̄) die Aussage

f(x) = f(x̄) + A(x − x̄) + o(∥x − x̄∥), x → x̄.  (6.2.2)

Falls der Abstand ∥z − x̄∥ zu einer Nullstelle z klein genug ist, kann zur Approximation von z das lineare Modell benutzt werden:

0 = f(z) = f(x̄) + A(z − x̄) + … ⇒ z ≅ x̄ − A^{−1}f(x̄).

Dies führt auf das folgende Newtonverfahren im R^{n}, bei dem die Iteration

f′(x^{(k)})(x^{(k+1)} − x^{(k)}) = −f(x^{(k)}), k = 0, 1, …,  (6.2.3)

durchgeführt wird mit einem Startvektor x^{(0)} ∈ R^{n}. In jedem Schritt (6.2.3) ist dabei ein lineares Gleichungssystem zu lösen, mit dessen Lösung die aktuelle Näherung korrigiert wird,

A_{k}s^{(k)} = −f(x^{(k)})  mit Matrix A_{k} = f′(x^{(k)}),
x^{(k+1)} := x^{(k)} + s^{(k)}. (6.2.4)

Die Inverse A_{k}^{−1} wird dazu aber i.a. nicht berechnet (vgl. §2). Die Gestalt des Einzugsbereichs der Iteration (6.2.3) ist in der Regel sehr kompliziert. Unter geeigneten Voraussetzungen kann aber eine Kugel um z angegeben werden, in der Konvergenz x^{(k)} → z eintritt für jeden Startwert x^{(0)} aus der Kugel. Dazu sei an den Mittelwertsatz im R^{n} erinnert:

Satz 6.2.1 Es sei D ⊆ R^{n} offen, f ∈ C^{2}(D) und D_{0} ⊆ D konvex und abgeschlossen. Dann gelten für x, y ∈ D_{0} die Aussagen

f(x) − f(y) = ∫_{0}^{1} f′(y + t(x − y)) dt (x − y),  (6.2.5)
∥f(x) − f(y)∥ ≤ L_{1}∥x − y∥, L_{1} := max{∥f′(x)∥ : x ∈ D_{0}},  (6.2.6)
(f′(x) − f′(y))v = ∫_{0}^{1} f′′(y + t(x − y)) dt [v, x − y] ∀v ∈ R^{n},  (6.2.7)
∥f′(x) − f′(y)∥ ≤ L_{2}∥x − y∥, L_{2} := max{∥f′′(x)∥ : x ∈ D_{0}}.  (6.2.8)

Bei (6.2.7) ist zu beachten, daß f′′ eine bilineare Abbildung ist, f′′(x) : R^{n} × R^{n} → R^{n}. Die Komponenten f′′_{i} sind symmetrische Matrizen und f′′(x)[v, y] = (v^{T} f′′_{i}(x)y)_{i=1}^{n}.

Beweis Für die skalaren Funktionen φ_{i}(t) := f_{i}(y+t(x−y)), t ∈ [0, 1], gilt nach der Kettenregel

\frac{dφ_{i}}{dt} (t) = gradf_{i}(y + t(x − y)) · (x − y) ⇒
φ_{i}(1) − φ_{i}(0) = ∫_{0}^{1} φ′_{i}(t) dt = ∫_{0}^{1} gradf_{i}(y + t(x − y)) dt · (x − y),

d.h., (6.2.5) nach (6.2.1). Die Schranke (6.2.6) ergibt sich daraus sofort, denn

∥f(x) − f(y)∥ ≤ ∥ ∫_{0}^{1} f′(y + t(x − y))dt∥ ∥x − y∥ ≤ max_{t∈[0,1]} ∥f′(y + t(x − y))∥ ∥x − y∥.

Der Beweis von (6.2.7),(6.2.8) geht analog. Mit diesen Hilfsmitteln läßt sich nun die lokale Konvergenz des Newtonverfahrens mit Ordnung zwei zeigen.

Satz 6.2.2 Es sei D ⊆ R^{n} offen, f ∈ C^{2}(D) und z ∈ D mit f(z) = 0. Die Ableitung f′(z) in der Lösung sei regulär und es gelte

∥f′(z)^{−1}∥ ≤ \frac{1}{λ_{1}} ,  (6.2.9)
sup_{x∈D} ∥f′′(x)∥ ≤ L_{2}.  (6.2.10)

Die Kugel K_{δ} := {x ∈ R^{n} : ∥x − z∥ ≤ δ} sei in D enthalten,

K_{δ} ⊆ D für δ < \frac{2λ_{1}}{3L_{2}} .

Dann konvergiert das Newtonverfahren (6.2.3) für jeden Startvektor x^{(0)} ∈ K_{δ} gegen z. Die Konvergenz ist quadratisch,

∥x^{(k+1)} − z∥ ≤ \frac{1}{2} \frac{L_{2}}{λ_{1} − δL_{2}} ∥x^{(k)} − z∥^{2}.  (6.2.11)

Beweis O.B.d.A. wird der erste Schritt mit x^{(0)} =: x betrachtet. Es gilt nach (6.2.3) und (6.2.5)

∥x^{(1)} − z∥ = ∥ x − z − f′(x)^{−1}(f(x) − f(z))∥
= ∥(I − f′(x)^{−1} ∫_{0}^{1} f′(z + t(x − z))dt)(x − z)∥
≤ ∥f′(x)^{−1}∥ ∫_{0}^{1} ∥f′(x) − f′(z + t(x − z))∥dt ∥x − z∥.  (6.2.12)

Mit der Abkürzung y = z + t(x − z), d.h., x − y = (1 − t)(x − z), läßt sich nach (6.2.8) in K_{δ} die Differenz der Ableitungen abschätzen durch

∫_{0}^{1} ∥f′(x) − f′(z + t(x − z))∥dt ≤ L_{2} ∫_{0}^{1}(1 − t)dt ∥x − z∥ = \frac{1}{2}L_{2}∥x − z∥.  (6.2.13)

Als nächstes wird die Regularität der Ableitung f′(x) gezeigt. Es ist f′(z)^{−1}f′(x) = I + f′(z)^{−1}(f′(x) − f′(z)). Nach Voraussetzung (6.2.9) ist der zweite Summand klein,

∥f′(z)^{−1}(f′(x) − f′(z))∥ ≤ \frac{L_{2}}{λ_{1}} ∥x − z∥ ≤ \frac{L_{2}δ}{λ_{1}} < \frac{2}{3} < 1.

Nach dem Satz von Neumann, Satz 2.2.2, existiert daher f′(x)^{−1} und nach (2.2.15) ist

∥f′(x)^{−1}∥ ≤ ∥f′(z)^{−1}∥\frac{1}{1 − L_{2}δ/λ_{1}} ≤ \frac{1}{λ_{1} − L_{2}δ} .

Diese Schranke und (6.2.13) führen mit (6.2.12) auf die letzte Behauptung (6.2.11),

∥x^{(1)} − z∥ ≤ \frac{1}{λ_{1} − δL_{2}} \frac{1}{2}L_{2}∥x − z∥^{2}.

Damit ist die quadratische Konvergenz gesichert, wenn noch ∥x^{(1)} − z∥ ≤ q∥x − z∥, q < 1, gilt. Dies kann für δ < 2λ_{1}/(3L_{2}) garantiert werden:

∥x^{(1)} − z∥ ≤ \underbrace{\frac{1}{2} \frac{L_{2}δ}{λ_{1} − δL_{2}}}_{=: q < 1} ∥x − z∥ < \frac{1}{3} \frac{λ_{1}}{λ_{1} − 2λ_{1}/3}∥x − z∥ = ∥x − z∥.

Durchführung des Newtonverfahrens

1. Satz 6.2.2 garantiert Konvergenz nur in einer, eventuell sehr kleinen, Kugel um die Nullstelle (lokale Konvergenz). Das globale Konvergenzverhalten des Verfahrens kann verbessert werden, indem der Fortschritt der Iteration anhand der Norm ∥f(x)∥_{2} überprüft wird. Man versucht dabei, die Funktion (“Zielfunktion”)

φ(x) := ∥f(x)∥_{2}^{2} zu minimieren.

Dazu wird der Vektor des Newtonschritts s^{(k)} := −f′(x^{(k)})^{−1}f(x^{(k)}) nur als Suchrichtung benutzt, und der nächste Punkt x^{(k+1)} so auf dem Strahl

x^{(k+1)} := x^{(k)} + λ_{k}s^{(k)}, 0 < λ_{k} ≤ 1,

bestimmt, daß φ(x^{(k+1)}) < φ(x^{(k)}) gilt. Man führt eine sogenannte Liniensuche durch. Da

\frac{d}{dλ}φ(x^{(k)} + λs^{(k)})|_{λ=0} = −2φ(x^{(k)}) < 0

gilt, existiert ein solcher Punkt für genügend kleines λ. In der Praxis kann dazu die Strecke x^{(k)} … x^{(k)}+ s^{(k)} solange halbiert werden, bis φ einen kleineren Wert annimmt. Diese Wahl führt auf λ_{k} ∈ \{1, \frac{1}{2}, \frac{1}{4}, …\}. Da dann λ_{k} ≤ 1 gilt, spricht man vom gedämpften Newtonverfahren. Nahe bei der Nullstelle wählt diese Methode automatisch wieder λ_{k} = 1, sodaß die quadratische Konvergenz nicht zerstört wird.

[figure: x^{(k)}; x^{(k)} + s^{(k)}; λ = \frac{1}{2}; Höhenlinien von φ]

2. Im R^{n} sind pro Schritt des Newtonverfahrens n^{2}+n Komponenten von f und f′ zu berechnen und eine LR-Zerlegung durchzuführen (Aufwand O(n^{3}) Oper.). Wenn x^{(k)} genügend nahe bei z liegt, kann evtl. die Ableitungsmatrix (und ihre LR-Zerlegung) von früher übernommen werden. Dies führt zum vereinfachten Newtonverfahren

f′(x^{(0)})(x^{(k+1)} − x^{(k)}) = −f(x^{(k)}), k = 0, 1, ….  (6.2.14)

Bei den Gleichungssystemen ändert sich jetzt nur die rechte Seite (vgl. §2.3), −f(x^{(k)}), (Aufwand O(n^{2}) Operationen nach Berechnung der LR-Zerlegung). Die Konvergenz der vereinfachten Iteration (6.2.14) ist dafür nur noch linear mit dem asymptotischen Konvergenzfaktor ∥I−f′(x^{(0)})^{−1}f′(z)∥ =: q. Wenn q genügend klein und keine extreme Endgenauigkeit erforderlich ist, kann dies schneller zum Erfolg führen, da das volle Newtonverfahren n-mal so teuer ist.

Demo-Beispiel Im Quadrat [−1, 1] × [−1, 1] ⊆ R^{2} besitzt die Funktion

f(x) = ( \begin{matrix}x_{1}^{2} + 9x_{2}^{2} + 2x_{1} − 3 \\ 4x_{1}^{2} − x_{2}^{2} − x_{2} − 1 \end{matrix} )

4 Nullstellen bei (−0.72, 0.66), (0.62, 0.39), (0.43, −0.46) und (−0.44, −0.64). Die normale Newton-Iteration mit dem Startwert (0, 0.4) erzeugt die Iterierten (12-stellige Rechnung)

k  x_{1}^{(k)}  x_{2}^{(k)} φ(x^{(k)})
0 0.000000000 0.400000000 2.2E+00
1 3.900000000 -0.466666667 6.4E+01
2 1.974863569 -0.097182979 1.5E+01
3 1.024133838 -0.509788636 4.2E+00
4 0.603428523 -0.429913469 7.4E-01
5 0.457214218 -0.460213498 9.0E-02
6 0.433986060 -0.464807423 2.3E-03
7 0.433367993 -0.464932100 1.6E-06
8 0.433367555 -0.464932188 0.0E+00

Der erste Schritt führt nach weit außerhalb des Quadrats mit einer starken Vergrößerung des Wertes φ. Später konvergiert die Iteration offensichtlich quadratisch gegen eine Lösung in der unteren Halbebene. Bei einer Liniensuche im ersten Schritt wäre die nähergelegene Nullstelle bei (0.62, 0.39) gefunden worden.

7 Rundungsfehler - Analyse

Bisher wurden Verfahren fast ausschließlich auf der Basis einer Rechnung mit reellen Zahlen diskutiert. Da in einem Computer aber nur endlich viele Zahldarstellungen (Maschinenzahlen) zur Approximation reeller Zahlen zur Verfügung stehen, treten i.a. bei jeder Dateneingabe und -verknüpfung Fehler auf, die sich — eventuell katastrophal — auf das Endergebnis auswirken können.

7.1 Zahldarstellung und Rundungsfehler

Die gängige (Dezimal-) Darstellung reeller Zahlen, z.B. e=2.71828.., entspricht der Angabe der Koeffizienten in der Reihen-Entwicklung

e = 2 · 10^{0} + 7 · 10^{−1} + 1 · 10^{−2} + 8 · 10^{−3} + …

zur Basis 10. Auf Computern ist eine Zahldarstellung günstiger zu einer Basis B, die eine Zweierpotenz ist, z.B., B = 2, B = 16. Jede reelle Zahl x ist darstellbar in der Form

x = ±(x_{m}B^{m} + x_{m−1}B^{m−1} + … + x_{1}B + x_{0} + x_{−1}B^{−1} + …),  (7.1.1)

mit x_{j} ∈ {0, 1, …, B − 1}, wenn 1 < B ∈ N. Diese Darstellung ist nur dann eindeutig, wenn von zwei möglichen Darstellungen die endliche gewählt wird (man beachte: 1.999 … = 2). Eine Abbildung mit möglichst kleinem relativem Fehler von (7.1.1) auf eine endliche Zahlmenge ist bei der Gleitpunktdarstellung möglich. Bei dieser werden der höchste Exponent m und die ersten ℓ Ziffern x_{m}, …, x_{m−ℓ+1} angegeben. Der zulässige Exponentenbereich muß dabei natürlich auch beschränkt werden. Außerdem ist eine Standardisierung in folgender Weise üblich:

Definition 7.1.1 Die Menge M der normalisierten Gleitpunktzahlen enthält die Elemente x = 0 und die Zahlen

x = ±0.ξ_{1}ξ_{2} … ξ_{ℓ} · B^{d} := ±(ξ_{1}B^{−1} + ξ_{2}B^{−2} + … + ξ_{ℓ}B^{−ℓ})B^{d},  (7.1.2)
mit ξ_{j} ∈ {0, 1, …, B − 1}, ξ_{1} ≠ 0, d ∈ Z, |d| ≤ e.

Im folgenden wird allerdings ein unbeschränkter Exponentenbereich (e = ∞) angenommen.

Beispiel 7.1.2 Binärdarstellung, B = 2. Wegen der Normalisierung ξ_{1} ≠ 0 gilt immer ξ_{1} = 1. Daher kann an Stelle von ξ_{1} das Vorzeichen gespeichert werden. In Turbo-Pascal wird eine real-Zahl in 5+1=6 Byte gespeichert:

±0.ξ_{1}ξ_{2} … ξ_{ℓ} · B^{d} ↦  d  ±ξ_{2}..ξ_{8} ξ_{9}..ξ_{16}  ⋯  ⋯  … ξ_{ℓ}

Hier gilt also ℓ = 40, e = 128. Die Zahlgenauigkeit beträgt ca. 12 Dezimalstellen, die Größe der Zahlen ist durch 2^{d} ≅ 10^{38} beschränkt.

Zentraler Bestandteil jeder Computerarithmetik ist die Zuordnung von reellen Zahlen zu Gleitpunktzahlen, also die Abbildung

rd : \{ \begin{matrix}R & ↦ & M \\ x & ↦ & rd(x) \end{matrix} , die “Rundung”.

Eine triviale Variante dieser Rundung ist das Abschneiden der Darstellung (7.1.1): ξ_{1} … ξ_{ℓ} = x_{m} … x_{m−ℓ+1}. Günstiger ist aber die gewöhnliche Rundung, bei der die Funktion rd jeweils auf die nächstgelegene Maschinenzahl abbildet. Bei Dezimalzahlen etwa wird ab 5 aufwärts gerundet.

rd(±0.x_{1}x_{2} … x_{ℓ}x_{ℓ+1} . . . · B^{d}) := \{ \begin{matrix}±0.x_{1}x_{2} … x_{ℓ} · B^{d} & falls & x_{ℓ+1} < B/2 \\ ±(0.x_{1}x_{2} … x_{ℓ} + B^{−ℓ}) · B^{d} & falls & x_{ℓ+1} ≥ B/2 \end{matrix} . (7.1.3)

Bei dieser Rundung gilt für den relativen Fehler folgendes Aussage.

Satz 7.1.3 Für x ≠ 0 gilt mit (7.1.3)

|\frac{rd(x) − x}{x}| ≤ \frac{1}{2}B^{1−ℓ} =: E ⟺ rd(x) = x(1 + ϵ), |ϵ| ≤ E.

Die Größe E heißt Maschinengenauigkeit, bei B = 2 ist E = 2^{−ℓ}.

Beweis In (7.1.3) ist |x| ≥ B^{d−1}. In beiden Fällen gilt dort

|rd(x) − x| ≤ \frac{B}{2} B^{−ℓ−1}B^{d} ≤ \frac{1}{2}B^{1−ℓ}B^{d−1} ≤ |x| · E.

Da das Ergebnis der Verknüpfung von zwei Maschinenzahlen i.a. nicht wieder eine solche ist, werden bei jeder Verknüpfung neue Rundungsfehler erzeugt. Daher müssen bei der Analyse Maschinenoperationen von reellen Verknüpfungen unterschieden werden:

Definition 7.1.4 Für a, b ∈ M und ∗ ∈ {+, −, ×, /} bezeichne (mit b ≠ 0 im Fall der Division)

a ˜∗ b = gl(a ∗ b)

das Ergebnis der entsprechenden (geräteabhängigen) Gleitpunktoperation.

Bei der Konstruktion eines Rechners (Hardware) ist anzustreben, daß der Fehler bei diesen Operationen den zu erwartenden Rundungsfehler nicht übersteigt. Dies kann durch Verwendung eines Hilfsregisters (“Akkumulator”) mit doppelter Stellenzahl 2ℓ garantiert werden. Dort wird die Operation mit 2ℓ Stellen ausgeführt und dann auf ℓ Stellen gerundet.

Satz 7.1.5 Für die Gleitpunktoperationen zu ∗ ∈ {+, −, ×, /} auf einem ℓ-ziffrigen Rechner mit doppeltlangem Akkumulator (2ℓ Stellen) gilt für a, b ∈ M (b ≠ 0 bei Division)

a ˜∗ b = (a ∗ b)(1 + δ), |δ| ≤ E = \frac{1}{2}B^{1−ℓ}.  (7.1.4)

Erläuterung: Bei Addition von a = ±0.α_{1} … α_{ℓ}B^{c}, b = ±0.β_{1} … β_{ℓ}B^{d}, (oBdA c ≥ d) ist als erstes eine Exponentenanpassung durchzuführen:

[figure: ±0.α_{1}α_{2} … α_{ℓ}; ±0.β_{1}β_{2} … β_{ℓ}; c − d]

Man sieht leicht, daß für c − d ≤ ℓ das Ergebnis exakt mit 2ℓ Stellen darstellbar ist, für c − d > ℓ andererseits gilt gl(a + b) = a. Das Ergebnis der Multiplikation ist ebenfalls mit 2ℓ Stellen exakt darstellbar.

Die wichtigste Konsequenz der Rundung ist der Verlust der Assoziativität bei Gleitpunktoperationen. Eine wichtige Aufgabe der Fehleranalyse ist daher die Identifikation günstiger Anordnungen bei mehrfachen Verknüpfungen.

Beispiel 7.1.6 ℓ = 3, a = 0.721, b = 0.457_{10}2, c = −0.456_{10}2. Je nach Klammerung folgt

(a ˜+b) ˜+c = (0.464_{10}2) ˜+(−0.456_{10}2) = 0.800_{10}0,
a ˜+(b ˜+c) =  0.721 ˜+(0.1)  = 0.821_{10}0.

Beide Ergebnisse sind offensichtlich verschieden.

Der in diesem Beispiel bei der ersten Version beobachtete Effekt wird Auslöschung genannt: Besitzen zwei Zahlen a, b ∈ M gleiche Exponenten und gleiche führende Ziffern, so ist bei Subtraktion das Ergebnis exakt ! Sind in den Operanden aber alte Fehler vorhanden, werden diese sehr verstärkt, da dann |a−b| ≪ |a|+|b| ist in (7.1.4). Dies muß bei der Fehlerfortpflanzung besonders beachtet werden.

Zunächst wird die Bildung mehrfacher Produkte und Summen betrachtet, also

w_{n} := a_{1} ∗ a_{2} ∗ … ∗ a_{n}, n ∈ N,  (7.1.5)

mit ∗ ∈ {+, ×}. Das numerische Ergebnis w̃_{n} werde dabei rekursiv berechnet mit gerundeten Werten ã_{j},

w̃_{n} := gl(… gl(gl(ã_{1} ∗ ã_{2}) ∗ ã_{3}) …) = gl(w̃_{n−1} ∗ ã_{n}),  (7.1.6)

wobei ã_{i} = a_{i}(1 + δ_{i}), |δ_{i}| ≤ E. Für die weiteren relativen Fehler gelte ebenfalls |ϵ_{i}| ≤ E. Produkt: Hier gilt

w̃_{2} = gl(ã_{1} · ã_{2}) = gl(a_{1}(1 + δ_{1})a_{2}(1 + δ_{2})) = a_{1}a_{2}(1 + δ_{1})(1 + δ_{2})(1 + ϵ_{2})
⋯
w̃_{n} = gl(w̃_{n−1} · ã_{n}) = w̃_{n−1} · a_{n}(1 + δ_{n})(1 + ϵ_{n}),

Also

\begin{matrix}w̃_{n} = w_{n}(1 + γ_{n}) & mit \\ (1 − E)^{2n−1} ≤ 1 + γ_{n} ≤ (1 + E)^{2n−1}. \end{matrix}  (7.1.7)

Ausdrücke dieser Form treten jetzt öfter auf. Nach dem Mittelwertsatz gilt (1 + x)^{m} = 1 + mx(1 + ξ)^{m−1} mit |ξ| ≤ |x|. Daraus folgt

|(1 + x)^{m} − 1| ≤ m|x|(1 + |x|)^{m−1} ≤ m|x|e^{(m−1)|x|} ≤ 1.06m|x| für (m − 1)|x| ≤ 0.1 . (7.1.8)

Daher gilt in (7.1.7) für γ_{n} die Aussage

|γ_{n}| ≤ 1.06(2n − 1)E, falls 2(n − 1)E ≤ 0.1 .  (7.1.9)

Summe: Bei der Addition ist die Situation komplizierter, hier ist

w̃_{2} = gl(ã_{1} + ã_{2}) = (a_{1}(1 + δ_{1}) + a_{2}(1 + δ_{2}))(1 + ϵ_{2})
= a_{1}(1 + δ_{1})(1 + ϵ_{2}) + a_{2}(1 + δ_{2})(1 + ϵ_{2})
⋯
w̃_{n} = gl(w̃_{n−1} + ã_{n}) = (w̃_{n−1} + a_{n}(1 + δ_{n}))(1 + ϵ_{n})
= [w̃_{n−2} + a_{n−1}(1 + δ_{n−1})](1 + ϵ_{n−1})(1 + ϵ_{n}) + a_{n}(1 + δ_{n})(1 + ϵ_{n}) = …
= a_{1}(1 + σ_{1}) + a_{2}(1 + σ_{2}) + … + a_{n}(1 + σ_{n}),

mit (1 + σ_{i}) = (1 + δ_{i})(1 + ϵ_{i}) ⋯ (1 + ϵ_{n}). Aus (7.1.8) folgt daher

|σ_{i}| ≤ 1.06(n − i + 2)E, wenn (n − i + 1)E ≤ 0.1 .  (7.1.10)

Bemerkung: Bei der Produktbildung ist in der Fehlerschranke keine Bevorzugung einer bestimmten Anordnung der Operanden erkennbar. Bei der Summe dagegen liefern die ersten Summanden den größten relativen Fehlerbeitrag. Daher ist zu erwarten, daß der absolute Fehler in w̃_{n} kleiner wird, wenn zuerst die betragskleinsten Koeffizienten a_{i} summiert werden, da dann die Schranke

|w̃_{n} − w_{n}| ≤ 1.06E ∑_{i=1}^{n}(n − i + 2)|a_{i}|

minimal wird. Daher sollte man, z.B., bei der Summation (monoton) konvergenter Reihen mit den letzten, d.h. kleinsten, Koeffizienten beginnen (“Rückwärts-Summation”). Ungünstige arithmetische Ausdrücke: Aufgrund der Rundungsfehler geht bei Gleitpunktrechnung nicht nur die Assoziativität von Summe und Produkt verloren, auch andere Gesetze gelten im allgemeinen nicht mehr (exakt). Daher können verschiedene, im Reellen äquivalente Ausdrücke, wie z.B. die der binomischen Formel a^{2} − b^{2} = (a + b)(a − b), sehr unterschiedliche numerische Ergebnisse liefern. Dazu werde die Funktion

f(x) := \sqrt{1 + x^{2}} − x  (7.1.11)

betrachtet. Für x ≥ 0 ist 0 ≤ f(x) ≤ 1. Da |f′(x)| = |\frac{x}{\sqrt{1+x^{2}}} − 1| ≤ 1 ist für x ≥ 0, führt eine Störung im Argument x bei exakter Rechnung nur zu einer geringen Verfälschung im Funktionswert f, die nicht größer als die Abweichung in x selbst ist. Werden allerdings die Teilschritte in (7.1.11) nur mit endlicher Genauigkeit ausgeführt, sieht das Ergebnis schlechter aus. Selbst wenn nur bei der Addition in (7.1.11) ein relativer Fehler ϵ, |ϵ| ≤ E, erzeugt wird, gilt

f̃(x) = \sqrt{1 ˜+x^{2}} − x = \sqrt{(1 + x^{2})(1 + ϵ)} − x = f(x) + \frac{ϵ}{2}\sqrt{1 + x^{2}} + O(ϵ^{2}).

Für große x → ∞ ist also ein großer absoluter Fehler ≅ \frac{1}{2}xϵ zu erwarten, der relative Fehler ist wegen |f| ≤ 1 noch größer. In der Formel (7.1.11) tritt nämlich bei der Differenzbildung der beiden großen Ausdrücke \sqrt{1 + x^{2}} ≅ x und x eine Auslöschung führender Stellen auf. Diese läßt sich vermeiden durch Umformung in die äquivalente Form

f(x) = \sqrt{1 + x^{2}} − x = \frac{1 + x^{2} − x^{2}}{\sqrt{1 + x^{2}} + x} = \frac{1}{x + \sqrt{1 + x^{2}}} .  (7.1.12)

Beispiel 7.1.7 Formel (7.1.11) wird mit 4-ziffriger Dezimalrechnung in x = 9.999 ausgewertet, bei exakter Rechnung ist f(9.999) = 0.04988 … Dagegen ist x˜∗x = 99.98, 1 ˜+99.98 = 101.0, \sqrt{˜ 101} = 10.05 und daher f̃(x) = 0.05100. Dies entspricht einem relativen Fehler von 0.022 ≅ 450 · E. Die letzte, äquivalente Form in (7.1.12) ergibt dagegen den korrekten 4-stelligen Wert 0.04988. Für x ≥ 100 schließlich liefert 4-stellige Rechnung in (7.1.11) immer den Wert f̃(x) = 0.

7.2 Rundungsfehleranalyse einiger Algorithmen

Für einige der früher behandelten Verfahren werden nun Konsequenzen aus dem Auftreten von Rundungsfehlern behandelt. Bei numerischen Verfahren, die selbst nur Näherungen mathematischer Lösungen liefern, kommen daher zum schon diskutierten Approximationsfehler des (abstrakten) Verfahrens bei Durchführung auf einem Rechner noch Rundungsfehler hinzu, im Gesamtfehler des realen Verfahrens sind also beide zu berücksichtigen.

Approximationsverfahren

Bei Interpolation, Quadratur und Differentiation hängt die Güte der Approximation von einem Parameter n (Grad, Knotenzahl,..) ab. Bei Vergrößerung von n wird der Verfahrensfehler in der Regel kleiner, allerdings treten dabei i.a. vermehrt Rundungsfehler auf.

Beispiel 7.2.1 Die konvergente Reihe s := ∑_{k=1}^{∞} a_{k} soll durch Partialsummen s_{n} := ∑_{k=1}^{n} a_{k} angenähert werden, vorausgesetzt sei |a_{k}| ≤ ck^{−m−1} ∀k. Dann gilt für den Approximationsfehler (Integralkriterium)

|s_{n} − s| ≤ ∑_{k=n+1}^{∞} |a_{k}| ≤ c ∑_{k=n+1}^{∞} k^{−m−1} ≤ c ∫_{n}^{∞} x^{−m−1}dx = \frac{c}{mn^{m}} .

Statt s_{n} wird aber s̃_{n} berechnet mit |s̃_{n} − s_{n}| ≤ 1.06E(n + 1)c(1 + \frac{1}{m}), vgl. (7.1.10). Also ist

|s̃_{n} − s| ≤ \frac{c_{0}}{n^{m}} + c_{1}n · E.

Beispiel 7.2.2 Approximation der Ableitung f′(0) durch den symmetrischen Differenzenquotient D_{n} = \frac{n}{2}[f(\frac{1}{n}) − f(−\frac{1}{n})] mit Schrittweite h = \frac{1}{n}. Nach (5.6.5) gilt

|D̃_{n} − f′(0)| ≤ \frac{c_{0}}{n^{2}} + c_{1}n · E.

Beispiel 7.2.3 Approximation des Integrals I := ∫_{a}^{b} f(x)dx durch die iterierte Trapezregel mit h = (b − a)/n, x_{j} := a + jh:

T_{h} = h[\frac{1}{2}f(a) + ∑_{j=1}^{n−1} f(x_{j}) + \frac{1}{2}f(b)].

Für die tatsächlich berechneten Funktionswerte f̃_{j} gelte f̃_{j} = f(x_{j})(1 + δ_{j}) mit |δ_{j}| ≤ δ · E. Nach (7.1.10) gilt für den numerisch berechneten Wert T̃_{h} eine Abschätzung |T̃_{h} − T_{h}| = \frac{b−a}{n}|\frac{1}{2}f_{0}σ_{0} + ∑_{j} f_{j}σ_{j} + \frac{1}{2}f_{n}σ_{n}| ≤ c(b − a)∥f∥_{∞}n · E. Mit (5.2.6) führt dies auf die Abschätzung für den Gesamtfehler

|T̃_{h} − I| ≤ |T_{h} − I| + |T̃_{h} − T_{h}| ≤ c_{0}h^{2} + c_{1}n · E.

In all diesen Fällen verhält sich der Fehler so, wie in der Graphik gezeigt: Dem für n → ∞ kleiner werdenden Verfahrensfehler wirkt ein wachsender Rundungsfehler entgegen, da sich beide i. a. addieren. Die mit diesen realen Verfahren überhaupt erreichbare Genauigkeit ist daher begrenzt.

[figure: n; Rundungsfehler; Verfahrensfehler; Gesamtfehler]

Als Beispiel werde ein Verfahren der Ordnung m mit linear anwachsenden Rundungsfehlern betrachtet. Für den Gesamtfehler sei also eine Schranke F_{n} der Form

F_{n} = \frac{c_{0}}{n^{m}} + c_{1}E · n

bekannt. Die Ableitung dieses Ausdrucks nach n ist ∂F_{n}/∂n = −mc_{0}/n^{m+1} + c_{1}E, sie wächst monoton und führt auf die Minimalstelle

n_{min} ≅ (\frac{c_{0}m}{c_{1}E})^{1/(m+1)} ⇒ F_{min} ≥ c_{2}E^{m/(m+1)}.

Dies bedeutet, daß auf einem Rechner mit ℓ Stellen bei einem Verfahren der Ordnung m die Genauigkeit auf ca. \frac{m}{m+1}ℓ Stellen beschränkt ist. Daher können nur Verfahren hoher Ordnung Genauigkeiten im Bereich der vollen Maschinengenauigkeit erreichen.

Gauß-Algorithmus

Da der (reelle) Gauß-Algorithmus die exakte Lösung eines linearen Gleichungssystems liefert, treten kein Verfahrens- sondern nur Rundungsfehler auf. Bei der Beurteilung von numerischen Algorithmen sollte man sich allgemein zunächst klar machen, daß ein ungenaues numerisches Ergebnis zu einem gegebenen Problem (mindestens) zwei Ursachen haben kann:

1. Das mathematische Problem reagiert empfindlich auf Störungen der Eingangsdaten. Bei linearen Gleichungssystemen ist dies bei einer großen Konditionszahl κ(A) ≫ 1 der Fall, vgl. (2.4.7). Dann kann aber natürlich nicht erwartet werden, daß der numerische Algorithmus gute Ergebnisse liefert.

2. Das mathematische Problem ist unempfindlich gegen Störungen, der numerische Algorithmus erzeugt große Fehler.

Um hier die “Verantwortlichkeiten” klar zu machen, beschränkt man sich meist auf eine sogenannte Rückwärtsanalyse der Algorithmen. Dem entspricht folgende Begriffsbildung.

∥ ∥ ∥ ∥

Ein Algorithmus heißt gut konditioniert, wenn er das exakte Ergebnis zu einem wenig gestörten Ausgangsproblem liefert.

Dieser Begriff schließt also nur den zweiten Fall aus, im ersten Fall sind große Fehler im Ergebnis auf die schlechten Eigenschaften des mathematischen Problems zurückzuführen.

Beim Gauß-Algorithmus ist in diesem Sinne der Nachweis zu führen, daß er bei Anwendung auf ein n × n-Gleichungssystem Ax = b die exakte Lösung eines gestörten Problems

(A + A′)x̃ = b + b′, mit ∥A′∥, ∥b′∥ ≤ c · E  (7.2.1)

berechnet, wobei die Konstante c nicht zu groß ist. Konkret läßt sich folgendes beweisen.

Satz 7.2.4 Der Gauß-Algorithmus (ohne Pivotisierung) liefert beim System Ax = b eine Lösung des gestörten Systems (7.2.1), wobei für A′ elementweise gilt

|A′| ≤ E · n(3|A| + 5|L̃||R̃|) + O(E^{2}).  (7.2.2)

Dabei sind L̃, R̃ die tatsächlich berechneten LR-Faktoren von A.

Als wichtigster Anteil ist das Betragsprodukt |L̃||R̃| zu erkennen, dessen Elemente möglicherweise viel größere Werte als bei |A| haben können. Dies ist besonders dann der Fall, wenn kleine Pivotelemente auftreten, da l_{ij} = a_{ij}^{(j)}/a_{jj}^{(j)} ist, vgl. (2.3.4). Der Satz ist aber auch bei Pivotisierung anwendbar, da der Gauß-Algorithmus bei Spaltenpivotisierung die LR-Zerlegung eines zeilenpermutierten Systems (P A)x = P b bestimmt, P ist eine Permutationsmatrix. Bei dieser Pivotisierungsstrategie gilt |l̃_{ij}| ≤ 1, d.h. ∥L̃∥_{∞} ≤ n für den berechneten L-Faktor in LR = P A, vgl. Beispiel 2.4.5.

Trotz dieser günstigen Aussagen zum Gauß-Algorithmus können große Fehler in einer Lösung auftreten, wenn die Konditionszahl der Matrix groß ist, κ(A) ≫ 1. Dann ist aber, wie erläutert, schon das Ausgangsproblem fehleranfällig.

Fixpunkt-Iteration

Die zentrale Eigenschaft kontraktiver Iterationsverfahren bei linearen und nichtlinearen Gleichungssystemen ist die Tatsache, daß der Anfangsfehler in jedem Schritt um einen festen Faktor verkleinert wird. Dies trifft dann natürlich auch auf Fehler zu, die erst im Verlauf der Rechnung durch Rundung eingeschleppt wurden. Daher können Iterationsverfahren den Fixpunkt im wesentlichen mit derjenigen Genauigkeit bestimmen, die bei der Auswertung der Funktion g erreicht wird.

Satz 7.2.5 Die Funktion g erfülle die Voraussetzungen (2.5.4),(2.5.5) des Banach’schen Fixpunktsatzes:

g(Ω) ⊆ Ω, Ω ⊆ H
∥g(x) − g(y)∥ ≤ q∥x − y∥ ∀x, y ∈ Ω, mit 0 < q < 1.

Der Fixpunkt von g sei z. Für die tatsächlich berechnete Funktion g̃ gelte

∥g̃(x) − g(x)∥ ≤ ϵ ∀x ∈ Ω.  (7.2.3)

Dann gilt bei der gestörten Iteration

x̃^{(k+1)} := g̃(x̃^{(k)}),  (7.2.4)

die a-posteriori-Schranke

∥x̃^{(k)} − z∥ ≤ \frac{1}{1 − q} (q∥x̃^{(k)} − x̃^{(k−1)}∥ + ϵ).  (7.2.5)

Beweis Mit der Aussage (2.5.7)

∥g(x) − z∥ ≤ \frac{q}{1 − q} ∥g(x) − x∥

aus dem Fixpunktsatz 2.5.1 folgt

∥x̃^{(k+1)} − z∥ = ∥g̃(x̃^{(k)}) − g(x̃^{(k)}) + g(x̃^{(k)}) − z∥
≤ ϵ + ∥g(x̃^{(k)}) − z∥
≤ ϵ + \frac{q}{1 − q} ∥g(x̃^{(k)}) − x̃^{(k)}∥
≤ (1 + \frac{q}{1 − q})ϵ + \frac{q}{1 − q} ∥g̃(x̃^{(k)}) − x̃^{(k)}∥.

Der Satz zeigt, daß bei der Iteration der Gesamtfehler ϵ/(1 − q) i.a. nicht unterschritten werden kann. Daher lohnt es sich auch nicht, den Iterationsfehler wesentlich unter diesen Wert zu drücken. Ein Abbruchkriterium für die gestörte Iteration (7.2.4), das bei beiden Fehleranteilen in (7.2.5) für gleiche Größenordnung sorgt, ist

q∥x̃^{(k)} − x̃^{(k−1)}∥ ≤^{!} ϵ.

Mit diesem Kriterium wird dann die bestmögliche Genauigkeit beim Gesamtfehler im wesentlichen erreicht.

Index

a-posteriori, 23, 97 a-priori, 23 adaptive Integration, 70 Äquilibrierung, 18 äquidistant, 34, 45 Akkumulator, 91 Assoziativität, 92 asymptotische Entwicklung, 72 Auslöschung, 92, 94

B-Spline, 57 Banachiewicz, 15 Banachscher Fixpunktsatz, 23, 97 baryzentrische Form, 33, 42 Bernstein, 50 Beziér, 50 Bisektion, 82 Bulirsch-Folge, 74

Cholesky-Zerlegung, 16 Clenshaw-Algorithmus, 41, 42 Crout, 15

Defekt, 20 Differentiation, 62, 76 Differenzen

-Formel, 77

-Quotient, 35, 39, 95 -Verfahren, 4 dividierte, 35, 36, 57

Drei-Term-Rekursion, 39, 68 Dreieck

-Matrix, 15, 22 -Schema, 34, 35, 73 -System, 12, 42

Eigenwert, 29 Einzelschritt-Verfahren, 26 Einzugsbereich, 78, 81 Elektrisches Netzwerk, 7 Euler-McLaurin-Summenformel, 72 Extrapolations-Verfahren, 72

Fehler -Abschätzung, 23, 27, 43 -Gleichverteilung, 70 -Schätzung, 69, 70 relativer, 19, 91

fill-in, 17

Fixpunkt, 23, 78, 97 abstoßender, 79

Gauß

-Algorithmus, 12, 13, 25, 96 Rundungsfehler, 95

-Quadratur, 68 -Seidel-Iteration, 26

Gesamt-Fehler, 77, 94

Gesamtschritt-Verfahren, 26 Gewichtsfunktion, 39, 62, 68 Gleichungssystem linear, 7 nichtlinear, 78, 85 Störung, 19 Gleitpunktzahl, 17, 90

Hölder-Normen, 9 Heron-Verfahren, 79 Horner-Schema, 35

Innenprodukt, 39, 67

Input-Output-Analyse, 7, 19, 23 Integration, 62 Interpolations-

Fehler, 38, 43, 45

Polynom, 31, 67, 76, 82, 85 Hermite-, 31 Lagrange-, 31, 42, 62

Newton-, 34, 42, 67, 76 Problem

Hermite-, 38 Punkte, neue, 35

Iteration, 23 lineare, 25 mehrstufig, 83 Rundungsfehler, 97

Jacobi-Iteration, 26 Jordan-Normalform, 11

Keller-Speicher, 71 Kirchhoff’sche Regeln, 7 Konditionszahl, 20, 96

Schranken, 21 kontrahierende Abbildung, 23 Kontrollpunkte, 50 Konvergenz, 65

-Faktor, 25 -Ordnung, 53, 84

effektive, 84 alternierend, 78 linear, 80 lokal, 81 monoton, 78, 81 quadratisch, 80, 81

Lebesgue-Funktion, 46 Liniensuche, 88 Lipschitz-Bedingung, 23, 78 LR-Zerlegung, 15, 16, 21, 25, 88, 96

Maschinengenauigkeit, 77, 91 Matrix, 9

-Norm, induzierte, 9 Band-, 16 dünnbesetzt, 17, 26 diagonaldominant, 16, 21, 26 diagonalisierbar, 10 hermitesch, 10, 28 inverse, 18 normal, 10 positiv definit, 28 unzerlegbar, 28 Minimierungsverfahren, 88 Mittelwertsatz, 63, 86

Nach-Iteration, 25

Neumann-Reihe, 11, 22, 23, 87 Neville-Algorithmus, 36, 42, 73 Newton

-Cotes-Formeln, 63, 65

-Polynom, 34

-Raphson-Verfahren, 81

-Verfahren, 80, 84 gedämpftes, 88 vereinfachtes, 88

Nullstelle, 78 mehrfache, 81

Ordnung, 53, 74, 76, 95 eines Iterationsverfahrens, 80

Pendel, 3

Pivotisierung, 13, 15 Spalten-, 18, 96 Strategien, 18

Polynom bestapproximierendes, 46 Legendre-, 69 Orthogonal-, 39, 67, 68 Tschebyscheff-, 40

Quadratur, 62 -Fehler, 62, 71 -Formel, 62 Gauß-, 67 Gewichte, 62, 68 iteriert, 65, 67 Ordnung, 62, 67

Rückwärts -Analyse, 96

-Summation, 93 Rechenaufwand, 14, 16, 18, 26, 32, 34–36, 41,

42, 66 Rechteckregel, 63 regula falsi, 82 Reihenentwicklungen, 69 Relaxation, 28

Über-, 29, 30 Parameter, 29

Residuum, 20 Restglied, 62, 67, 69 Richardson-Extrapolation, 73 Rodriguez-Formel, 69 Romberg-Folge, 74 Rundung, 91 Rundungsfehler, 17, 19, 25, 77, 91

Satz von Neumann, 11 Rolle, 38, 69, 76 Stein-Rosenberg, 27 Weierstraß, 45

Sekanten-Verfahren, 83 Simpsonregel, 64, 68

iteriert, 65 SOR-Verfahren, 29 Spektral

-Norm, 9

-Radius, 10, 24, 27 Spline

-Approximation, lokale, 60 -Funktion, 48 kubischer, 48 Minimaleigenschaft, 48 natürlicher, 48

Stützstellen, optimale, 43

Taylor-Entwicklung, 39, 80 Trapezregel, 63, 68, 95

iteriert, 65, 69, 72 Tridiagonalmatrix, 5, 16, 52 Tschebyscheff

-Polynome, 40 -Punkte, 40, 44, 45 gestreckte, 47

Umkehrfunktion, 85

Volkswirtschaft, 7

Zeilen-Vertauschung, 13, 17 Zerlegung der Eins, 57, 58 Zerlegung, reguläre, 24