23.01.2014 Aufrufe

Einführung in die Numerische Mathematik - Universität Passau

Einführung in die Numerische Mathematik - Universität Passau

Einführung in die Numerische Mathematik - Universität Passau

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

-14<br />

a<br />

b<br />

2<br />

Aequidistante Knoten<br />

l<strong>in</strong>e 1<br />

0<br />

-2<br />

-4<br />

-6<br />

-8<br />

-10<br />

-12<br />

-14 -12 -10 -8 -6 -4 -2 0 2<br />

<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> <strong>Numerische</strong> <strong>Mathematik</strong><br />

Vorlesung, zuerst gehalten im W<strong>in</strong>tersemester 2013/14<br />

Tomas Sauer<br />

Version 0.1<br />

Letzte Änderung: 24.8.2013<br />

(a+b)/2<br />

a+b


Statt e<strong>in</strong>er Leerseite . . . 0<br />

Es gibt sogenannte <strong>Mathematik</strong>er, <strong>die</strong> sich gerne ebenso für Gesandte der<br />

Weisheit gehalten wissen wissen möchten als manche Theologen für Gesandte<br />

Gottes und ebenso das Volk mit algebraischem Geschwätz, das sie <strong>Mathematik</strong><br />

nennen, als jene mit e<strong>in</strong>em Kauderwelsch h<strong>in</strong>tergehen, dem sie den<br />

Namen biblisch beilegen.<br />

[. . .]<br />

Dieses ist so gewiß, als (a − x) · (a + x) = a 2 − x 2 ist.<br />

Georg Christoph Lichtenberg<br />

Da war alles so klar und e<strong>in</strong>fach gesagt und doch nicht trocken; selbst <strong>in</strong><br />

den mathematischen Entwicklungen verschwand nie der Endzweck des<br />

Ganzen; [. . . ]<br />

Reality is software. What does it matter what system its runn<strong>in</strong>g on?<br />

Kurd Laßwitz, Aspira<br />

Rudy Rucker, Posts<strong>in</strong>gular<br />

It always does seem to me that I am do<strong>in</strong>g more work than I should do. It<br />

is not that I object to the work, m<strong>in</strong>d you; I like work: it fasc<strong>in</strong>ates me. I can<br />

sit and look at it for hours. I love to keep it by me: the idea of gett<strong>in</strong>g rid of<br />

it nearly breaks my heart.<br />

Jerome K. Jerome, Three men <strong>in</strong> a boat<br />

Don’t ask me th<strong>in</strong>gs I don’t know. I can’t tell you the answers. And don’t<br />

ask me th<strong>in</strong>gs I do know, because I won’t tell you the answers.<br />

Raymond Chandler, The High W<strong>in</strong>dow<br />

Tomas Sauer<br />

Lehrstuhl für <strong>Mathematik</strong><br />

mit Schwerpunkt Digitale Bildverarbeitung<br />

<strong>Universität</strong> <strong>Passau</strong><br />

Innstr. 43<br />

94032 <strong>Passau</strong><br />

Tomas.Sauer@uni-passau.de


INHALTSVERZEICHNIS 1<br />

Inhaltsverzeichnis 0<br />

1 Was will <strong>Numerische</strong> <strong>Mathematik</strong>? 4<br />

1.1 Berechnung der Ableitung . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.2 Lösung e<strong>in</strong>es l<strong>in</strong>earen Gleichungssystems . . . . . . . . . . . . . . . . . . 5<br />

1.3 Berechnung der Varianz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

1.4 Aber sowas passiert doch nicht wirklich . . . . . . . . . . . . . . . . . . . . 11<br />

2 Fehleranalyse 12<br />

2.1 Gleitkommazahlen und -operationen . . . . . . . . . . . . . . . . . . . . . 13<br />

2.2 Fortpflanzung von Rundungsfehlern . . . . . . . . . . . . . . . . . . . . . 21<br />

2.3 Rückwärtsfehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

2.4 Summation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

3 L<strong>in</strong>eare Gleichungssysteme und numerische Lösungen 30<br />

3.1 Beispiel für l<strong>in</strong>eare Gleichungssysteme . . . . . . . . . . . . . . . . . . . . 30<br />

3.2 Normen und Konditionszahlen . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

3.3 E<strong>in</strong>e allgeme<strong>in</strong>e Fehlerabschätzung . . . . . . . . . . . . . . . . . . . . . . 36<br />

4 Direkte Methoden für l<strong>in</strong>eare Gleichungssysteme 38<br />

4.1 Dreiecksmatrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

4.2 Naive Gauß–Elim<strong>in</strong>ation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

4.3 Das fertige Lösungsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

4.4 Fehleranalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

4.5 Pivotsuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

4.6 Verbesserung der Genauigkeit – Skalierung . . . . . . . . . . . . . . . . . 67<br />

4.7 Verbesserung der Genauigkeit – Iteratives Verfe<strong>in</strong>ern . . . . . . . . . . . 68<br />

5 Spezielle l<strong>in</strong>eare Gleichungssysteme 72<br />

5.1 Cholesky–Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

5.2 Ban<strong>die</strong>rte Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

5.3 Total positive Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

6 Iterative Verfahren für l<strong>in</strong>eare Gleichungssysteme 81<br />

6.1 Der Spektralradius und e<strong>in</strong> allgeme<strong>in</strong>es Konvergenzkriterium . . . . . . 83<br />

6.2 Gauß–Seidel–Iteration und Jacobi–Iteration . . . . . . . . . . . . . . . . . 87


2 INHALTSVERZEICHNIS<br />

7 Ausgleichsrechnung 94<br />

7.1 Inverse Probleme – e<strong>in</strong> kurzer Exkurs . . . . . . . . . . . . . . . . . . . . 94<br />

7.2 Nun aber überbestimmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />

7.3 Least–squares–Lösungen und <strong>die</strong> Normalengleichungen . . . . . . . . . 98<br />

7.4 S<strong>in</strong>guläre–Werte–Zerlegung und <strong>die</strong> Pseudo<strong>in</strong>verse . . . . . . . . . . . . 101<br />

7.5 Orthogonaltransformationen . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />

7.6 Orthogonaltransformationen II – Givens–Rotationen . . . . . . . . . . . . 117<br />

8 Polynome 121<br />

8.1 Darstellungen polynomialer Kurven und Auswertungsverfahren . . . . 122<br />

8.2 Interpolation – der Aitken–Neville-Algorithmus . . . . . . . . . . . . . . 129<br />

8.3 Interpolation – der Newton–Ansatz . . . . . . . . . . . . . . . . . . . . . 133<br />

8.4 Approximationsgüte von Interpolationspolynomen . . . . . . . . . . . . 141<br />

8.5 Die schlechte Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br />

9 Spl<strong>in</strong>es 149<br />

9.1 Der Algorithmus von de Boor . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

9.2 Spl<strong>in</strong>es und Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />

9.3 Eigenschaften der B–Spl<strong>in</strong>es . . . . . . . . . . . . . . . . . . . . . . . . . . 162<br />

9.4 Der Spl<strong>in</strong>eraum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

9.5 Knotene<strong>in</strong>fügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170<br />

9.6 Die Schoenberg–Whitney–Bed<strong>in</strong>gung . . . . . . . . . . . . . . . . . . . . 172<br />

10 Nichtl<strong>in</strong>eare Gleichungen 174<br />

10.1 Term<strong>in</strong>ologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

10.2 Das Bisektionsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

10.3 Regula falsi und das Sekantenverfahren . . . . . . . . . . . . . . . . . . . 179<br />

10.4 Das Newton–Verfahren und Fixpunktiterationen . . . . . . . . . . . . . . 184<br />

11 <strong>Numerische</strong> Integration und orthogonale Polynome 192<br />

11.1 Quadraturformeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193<br />

11.2 Klassische Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197<br />

11.3 Zusammengesetzte Quadraturformeln . . . . . . . . . . . . . . . . . . . . 199<br />

11.4 Gauß–Quadratur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203<br />

11.5 Orthogonale Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207<br />

A Anhang 210<br />

A.1 Rückwärtsfehler der Gauß–Elim<strong>in</strong>ation . . . . . . . . . . . . . . . . . . . 210<br />

A.2 Nachiteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213<br />

A.3 Der Satz von Weierstrass – Beweis . . . . . . . . . . . . . . . . . . . . . . 216<br />

A.4 Schoenberg–Whitney und <strong>die</strong> totale Nichtnegativität der Kollokationsmatrix<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217<br />

A.5 E<strong>in</strong>e Anwendung nichtl<strong>in</strong>earer Gleichungen: Das Bierkastenproblem . . 223<br />

A.6 Nullstellen von Polynomen . . . . . . . . . . . . . . . . . . . . . . . . . . 229


INHALTSVERZEICHNIS 3<br />

A.7 Quadratur nach Art des Gaußes . . . . . . . . . . . . . . . . . . . . . . . . 237


4 1 WAS WILL NUMERISCHE MATHEMATIK?<br />

To solve a well–conditioned problem with<br />

an ill–conditioned method is a numerical<br />

crime.<br />

W. Gautschi<br />

Was will <strong>Numerische</strong><br />

<strong>Mathematik</strong>? 1<br />

Viele Probleme aus der ”<br />

realen“ Welt lassen sich mathematisch formulieren und dann<br />

entweder von Hand oder unter Zuhilfenahme e<strong>in</strong>es Computers lösen. Dabei stellt man<br />

im allgeme<strong>in</strong>en <strong>die</strong> folgenden Forderungen an e<strong>in</strong> Lösungsverfahren:<br />

Interpretierbarkeit: E<strong>in</strong> potentieller Anwender will <strong>die</strong> Lösung <strong>in</strong>terpretieren können.<br />

So ist beispielsweise π oder 1 RootOf( x^13 - 12 x^7 + 9 x^3 - 1 ) <strong>in</strong> vielen<br />

Fällen nicht ausreichend.<br />

Effizienz: Die Lösung soll <strong>in</strong>nerhalb e<strong>in</strong>er bestimmten problemabhängigen Zeitspanne<br />

(Echtzeit?) geliefert werden.<br />

Genauigkeit: Die berechnete Lösung soll <strong>in</strong>nerhalb e<strong>in</strong>er bestimmten Toleranzschranke<br />

um <strong>die</strong> gewünschte Lösung liegen.<br />

Um <strong>die</strong> ersten beiden Forderungen, also Interpretierbarkeit und Verfügbarkeit gewährleisten<br />

zu können, muß man sich meistens mit e<strong>in</strong>er Näherung an <strong>die</strong> exakte Lösung<br />

zufriedengeben. <strong>Numerische</strong> <strong>Mathematik</strong> beschäftigt sich nun mit<br />

• der Konstruktion von Verfahren zum Auff<strong>in</strong>den von ”<br />

Lösungen“.<br />

• der Analyse <strong>die</strong>ser Verfahren bezüglich Effizienz und Störungsanfälligkeit.<br />

Oftmals gibt es natürlich mehrere Lösungsverfahren für e<strong>in</strong> Problem, <strong>die</strong> zudem für<br />

e<strong>in</strong>en Problemtyp sehr gut, für e<strong>in</strong>en anderen sehr schlecht se<strong>in</strong> können. Natürlich gibt<br />

es auch Verfahren, <strong>die</strong> immer schlecht s<strong>in</strong>d. Außerdem s<strong>in</strong>d viele ”<br />

Verfahren“, <strong>die</strong> man<br />

so <strong>in</strong> ”<br />

re<strong>in</strong>en“ <strong>Mathematik</strong>vorlesungen kennenlernt, <strong>in</strong> der Praxis mit e<strong>in</strong>iger Vorsicht<br />

zu genießen. Wir werden uns mal e<strong>in</strong> paar Beispiele ansehen.<br />

1 Derartige Lösungen bekommt man oft bei sogenannten Computeralgebrasystemen, <strong>die</strong> symbolische<br />

Rechnungen durchführen. Das hat den Vorteil, daß <strong>die</strong> Ergebnisse immer zu 100% richtig s<strong>in</strong>d, aber eben<br />

auch den Nachteil, daß sie manchmal eher nutzlos s<strong>in</strong>d.


1.1 Berechnung der Ableitung 5<br />

%% Diff1.m (Numerik I)<br />

%% --------------------------------------------------------<br />

%% Berechnung der Ableitung<br />

%% E<strong>in</strong>gabe:<br />

%% fn Name der Funktion<br />

%% x Stelle<br />

%% N Schrittweite 2^(-N)<br />

%% Nur fuer Octave!<br />

function res = Diff1( fn,x,N )<br />

h = 1;<br />

for i = 0:N<br />

res = ( feval( fn,x+h ) - feval( fn,x ) ) / h;<br />

h = h/2;<br />

pr<strong>in</strong>tf( "2^{-%d} : %11e\n", i, res );<br />

end<br />

%endfunction<br />

Programm 1.1 Diff1.m: Differentiation<br />

1.1 Berechnung der Ableitung<br />

Die Ableitung e<strong>in</strong>er Funktion f ∈ C 1 (R) ist bekanntlich def<strong>in</strong>iert als<br />

f ′ f(x + h) − f(x)<br />

(x) = lim<br />

, x ∈ R.<br />

h→0 h<br />

Um <strong>die</strong>sen Grenzwert auszurechnen, verwenden wir Diff1.m. Tatsächlich sieht man<br />

aber beim Aufruf<br />

Diff1( "cos", 1, 55 );<br />

daß sich <strong>die</strong> Werte zuerst dem korrekten Wert -.841471 annähern, dann aber wieder<br />

davon entfernen und schließlich .00000 werden und auch bleiben. Es ist also von<br />

entscheidender Bedeutung, bei der Limesbestimmung auch früh genug aufzuhören.<br />

1.2 Lösung e<strong>in</strong>es l<strong>in</strong>earen Gleichungssystems<br />

Wir betrachten e<strong>in</strong>e Matrix A ∈ R n×n sowie b ∈ R n und suchen nach x ∈ R n , so<br />

daß Ax = b. In der L<strong>in</strong>earen Algebra lernt man e<strong>in</strong> ”<br />

Verfahren“, um x zu berechnen,


6 1 WAS WILL NUMERISCHE MATHEMATIK?<br />

nämlich <strong>die</strong> Cramersche Regel. Dazu def<strong>in</strong>ieren wir <strong>die</strong> Matrizen<br />

⎡<br />

⎤<br />

a 11 . . . a 1,j−1 b 1 a 1,j+1 . . . a 1n<br />

⎢<br />

A j (b) = ⎣ .<br />

.. . . . .<br />

..<br />

⎥ . . ⎦ .<br />

a n1 . . . a n,j−1 b n a n,j+1 . . . a nn<br />

Satz 1.1 Die Lösung x von Ax = b ergibt sich als<br />

x j = det A j(b)<br />

, j = 1, . . . , n. (1.1)<br />

det A<br />

Die Determ<strong>in</strong>anten können wir nach der Leibniz–Regel berechnen:<br />

wobei<br />

det A = (−1) j<br />

⎡<br />

A jk =<br />

⎢<br />

⎣<br />

n ∑<br />

k=1<br />

(−1) k a jk det A jk , j = 1, . . . , n,<br />

⎤<br />

a 11 . . . a 1,k−1 a 1,k+1 . . . a 1n<br />

.<br />

. .. . . . .. .<br />

a j−1,1 . . . a j−1,k−1 a j−1,k+1 . . . a j−1,n<br />

.<br />

a j+1,1 . . . a j+1,k−1 a j+1,k+1 . . . a j+1,n<br />

.<br />

. .. .<br />

⎥<br />

. . .. . ⎦<br />

a n1 . . . a n,k−1 a n,k+1 . . . a nn<br />

<strong>die</strong>jenige Matrix ist, <strong>die</strong> man aus A durch Streichung der j–ten Zeile und der k–ten<br />

Spalte erhält. Das führt zu folgendem ”<br />

Algorithmus“:<br />

1. Berechne a = det A.<br />

2. Ist a = 0, dann ist das Problem unlösbar, ist a ̸= 0 berechne <strong>die</strong> Werte x j , j =<br />

1, . . . , n, nach (1.1).<br />

Zu <strong>die</strong>ser ”<br />

Lösungsmethode“ kann man e<strong>in</strong>iges sagen:<br />

• Der Test a = 0 setzt voraus, daß det A <strong>in</strong> e<strong>in</strong>er exakten Arithmetik 2 berechnet<br />

wird, denn ansonsten kann man sich fast sicher se<strong>in</strong>, daß durch Rundungsfehler<br />

der Wert leicht verändert und somit ̸= 0 wird.<br />

• Die Determ<strong>in</strong>antenberechnung ist sehr aufwendig: sei f(n) <strong>die</strong> Anzahl der Rechenoperationen,<br />

<strong>die</strong> man für <strong>die</strong> Berechnung e<strong>in</strong>er n × n Determ<strong>in</strong>ante benötigt,<br />

dann sagt uns <strong>die</strong> Leibniz–Regel, daß f(2) = 3 und f(n) = 2nf(n − 1), also<br />

f(n) = 3 8 2n n!<br />

2 Mit der auf Computern vorherrschenden nicht–exakten Arithmetik und deren Konsequenzen werden<br />

wir uns im nächsten Abschnitt beschäftigen.


1.3 Berechnung der Varianz 7<br />

Wir werden später sehen, daß ”<br />

vernünftige“ Vefahren zur Berechnung der Lösung<br />

Cn 3 Rechenoperationen benötigen.<br />

Dies wird besonders heftig, wenn man <strong>die</strong> Determ<strong>in</strong>ante <strong>in</strong> exakter Arithmetik<br />

(z.B. <strong>in</strong> MAPLE) berechnet.<br />

• Die Berechnung von Determ<strong>in</strong>anten ist extrem anfällig gegen kle<strong>in</strong>e Störungen<br />

der Elemente, also <strong>in</strong>stabil.<br />

Wenn man also e<strong>in</strong> Problem praktisch lösen will, ist es, im Gegensatz zur ”<br />

theoretischen“<br />

<strong>Mathematik</strong> wirklich wichtig, wie man es macht.<br />

1.3 Berechnung der Varianz<br />

Die Berechnung von Mittelwerten und Varianzen ist e<strong>in</strong>e häufig auftretende ”<br />

Arbeit“<br />

<strong>in</strong> der Statistik, <strong>die</strong> so monoton und stupide ist, daß man sie besser dem Computer<br />

überläßt. Dabei kann man aber durchaus e<strong>in</strong>iges an Fehlern e<strong>in</strong>bauen, wenn man sich<br />

nicht auch um <strong>die</strong> Numerik kümmert.<br />

Def<strong>in</strong>ition 1.2 Es sei X = (x 1 , . . . , x N ) ∈ R N e<strong>in</strong> Vektor von Zahlen (Meßwerten . . .). Der<br />

Erwartungswert E(X) ist def<strong>in</strong>iert als<br />

E(X) = 1 N<br />

N∑<br />

x j , (1.2)<br />

j=1<br />

und <strong>die</strong> (empirische) Standardabweichung als<br />

S(X) = √ 1 N∑ (<br />

xj − E(X) ) 2 . (1.3)<br />

N − 1<br />

j=1<br />

Die Größe V(X) = S 2 (X) bezeichnet man als Varianz.<br />

Das Problem bei der naiven Berechnung der Varianz besteht nun dar<strong>in</strong>, daß man <strong>die</strong><br />

Meßwerte zweimal durchlaufen müsste, zuerst bei der Berechnung des Erwartungswerts<br />

und dann bei der Berechnung der Abweichung vom Erwartungswert. Dies würde es<br />

nötig machen, <strong>die</strong> Meßwerte zwischenzuspeichern, was bei vielen, vielen Meßwerten<br />

e<strong>in</strong> zusätzlicher Programm- und Speicheraufwand wäre. Daher sucht man nach Methoden,<br />

<strong>die</strong> mit nur e<strong>in</strong>em Durchlauf durch <strong>die</strong> Daten auskommen.<br />

In vielen Statistikbüchern f<strong>in</strong>det man <strong>die</strong> folgende, sehr ansprechende Formel:<br />

V(X) = 1 ⎜<br />

⎝<br />

N − 1<br />

⎛ ⎛<br />

N∑<br />

x 2 j − 1 N∑<br />

⎝<br />

N<br />

j=1<br />

j=1<br />

x j<br />

⎞<br />

⎠2 ⎞ ⎟ ⎠ . (1.4)


8 1 WAS WILL NUMERISCHE MATHEMATIK?<br />

%% Varianz1.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% One-pass Varianzberechnung auf <strong>die</strong> ‘dumme’ Art<br />

%% E<strong>in</strong>gabe:<br />

%% x Vektor<br />

function V = Varianz1( x )<br />

N = length( x );<br />

S = 0;<br />

Q = 0;<br />

for i = 1:N<br />

S = S + x(i);<br />

Q = Q + x(i)^2;<br />

end<br />

V = sqrt( ( Q - S^2 / N ) / (N-1) );<br />

%endfunction<br />

Programm 1.2 Varianz1.m: Varianzberechnung nach (1.5), (1.6) und (1.7).<br />

Damit ergibt sich <strong>die</strong> Berechnungsvorschrift<br />

S 0 = Q 0 = 0 (1.5)<br />

S j = S j−1 + x j , Q j = Q j−1 + x 2 j , j = 1, . . . , n (1.6)<br />

und<br />

( )<br />

S(X) = √ 1 Q N − S2 N<br />

, (1.7)<br />

N − 1 N<br />

Übung 1.1 Beweisen Sie <strong>die</strong> Formel (1.4).<br />

♦<br />

So schön <strong>die</strong>se Formel ist, so schön kann man damit auf <strong>die</strong> Nase fallen.<br />

Beispiel 1.3 (C–Programm Var.c) Um <strong>die</strong> Effekte richtig sichtbar zu machen verwenden wir<br />

e<strong>in</strong> C–Programm, bei dem <strong>in</strong> e<strong>in</strong>facher Genauigkeit (float) gerechnet wird.<br />

1. Wir betrachten X = (5000, 5001, 5002). Man sieht leicht, daß E(X) = 5001 und S(X) =<br />

1. Das Programm liefert aber 3 den ziemlich falschen Wert S(X) = 0.707107.<br />

3 Auf (m)e<strong>in</strong>em Pentium II unter L<strong>in</strong>ux, SuSE Version 6.0 – also schon e<strong>in</strong> kle<strong>in</strong> wenig veraltet <strong>in</strong><br />

Zwischenzeit.


1.3 Berechnung der Varianz 9<br />

/*<br />

Var.c<br />

Berechnung der Varianz e<strong>in</strong>er Folge<br />

Compile:<br />

*/<br />

gcc -o Var Var.c -lm<br />

#<strong>in</strong>clude <br />

#<strong>in</strong>clude <br />

float sqr( float x ) { return x*x; }<br />

float Var( unsigned N, float *data )<br />

{<br />

float s1 = 0, s2 = 0;<br />

unsigned n;<br />

for ( n = 0; n < N; n++ )<br />

{ s1 += sqr( data[n] ); s2 += data[n]; }<br />

s1 -= sqr( s2 ) / N; s1 /= (float)( N - 1);<br />

}<br />

return (float)sqrt( s1 );<br />

ma<strong>in</strong>()<br />

{<br />

static float data[1111];<br />

unsigned N,n;<br />

/* E<strong>in</strong>lesen */<br />

scanf( "%d", &N );<br />

for ( n = 0; n < N; n++ ) scanf( "%f", data + n );<br />

/* Ausgeben */<br />

}<br />

pr<strong>in</strong>tf( "Var = %f / %f\n", Var( N, data ) );<br />

Programm 1.3 Var.c: Das erste, letzte und e<strong>in</strong>zige C–Programm. Es berechnet <strong>die</strong><br />

Varianz nach (1.5), (1.6) und (1.7) <strong>in</strong> e<strong>in</strong>facher Genauigkeit.


10 1 WAS WILL NUMERISCHE MATHEMATIK?<br />

%% Varianz2.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% One-pass Varianzberechnung auf <strong>die</strong> ‘clevere’ Art<br />

%% E<strong>in</strong>gabe:<br />

%% x Datenvektor<br />

function V = Varianz2( x )<br />

N = length( x );<br />

M = Q = 0;<br />

for i = 1:N<br />

Q = Q + ( i - 1 ) * ( x(i) - M )^2 / i;<br />

M = M + ( x(i) - M ) / i;<br />

end<br />

V = sqrt( Q / (N-1) );<br />

endfunction<br />

Programm 1.4 Varianz2.m: Varianzberechnung nach (1.9), (1.10) und (1.11).<br />

2. Noch besser wird es für X = (10000, 10001, 10002): Das Ergebnis wird dann NaN (not a<br />

number), d.h., es gibt ke<strong>in</strong>e Standardabweichung mehr oder <strong>die</strong>se ist e<strong>in</strong>e komplexe Zahl 4<br />

. . .<br />

Für e<strong>in</strong> stabileres Verfahren setzen wir X k = (x 1 , . . . , x k ) und bestimmen <strong>die</strong> Werte<br />

M k = E (X k ) und Q k = (k − 1)V (X k ) 2 (1.8)<br />

mittels der Berechnungsregeln M 0 = Q 0 = 0 und<br />

Das Ergebnis ist dann<br />

Q j = Q j−1 + (j − 1) ( ) 2<br />

x j − M j−1<br />

, j = 1, . . . , n, (1.9)<br />

j<br />

M j = M j−1 + x j − M j−1<br />

, j = 1, . . . , n. (1.10)<br />

j<br />

V(X) =<br />

√<br />

QN<br />

N − 1 . (1.11)<br />

Dieses Schema berechnet <strong>die</strong> Variation aus Beispiel 1.3 korrekt zu V(X) = 1.00000.<br />

4 Was e<strong>in</strong> kle<strong>in</strong> wenig im Gegensatz zu (1.3) steht, wo lediglich nichtnegative Zahlen aufsummiert<br />

werden.


1.4 Aber sowas passiert doch nicht wirklich . . . 11<br />

Übung 1.2 Beweisen Sie, das M k und Q k aus (1.8) tatsächlich den Rekursionsformeln<br />

aus (1.9) und (1.10) genügen.<br />

♦<br />

Satz 1.4 Numerik ist zu wichtig, als daß man sie den Statistikern überlassen sollte.<br />

1.4 Aber sowas passiert doch nicht wirklich . . .<br />

Beispiel 1.5 (Börse von Vancouver) Der Aktien<strong>in</strong>dex der Börse von Vancouver wurde <strong>in</strong><br />

den frühen 80ern mit Computern berechnet. Im Januar 1982 wurde der Aktien<strong>in</strong>dex mit dem<br />

Wert 1000 gestartet und landete im November 1983 bei e<strong>in</strong>em Stand von 520, obwohl allem<br />

Ansche<strong>in</strong> <strong>die</strong> <strong>in</strong>dividuellen Aktien eigentlich ganz gut standen. Grund: Der Index wurde auf<br />

drei Dezimalstellen berechnet und dann wurde abgeschnitten anstatt zu runden. Dieser Index<br />

wurde (wohl aus dem ”<br />

alten“ Index und den <strong>in</strong>dividuellen Differenzen der Aktien) mehrere<br />

tausend Mal pro Tag upgedated und jedes Mal wurde abgeschnitten anstatt zu runden. Nach<br />

e<strong>in</strong>er Neuberechnung mit Rundung verdoppelte sich der Aktien<strong>in</strong>dex be<strong>in</strong>ahe.


12 2 FEHLERANALYSE<br />

Unwissenheit ist der schlimmste Fehler.<br />

Persisches Sprichwort<br />

Fehleranalyse 2<br />

E<strong>in</strong>e besonders schöne, elementare und lesenswerte <strong>E<strong>in</strong>führung</strong> <strong>in</strong> das Wesen und Unwesen<br />

der Rundungsfehler und deren Konsequenzen ist <strong>die</strong> Arbeit von Goldberg [12]<br />

– <strong>in</strong> ihr f<strong>in</strong>det sich auch der Beweis der Kahan–Summation (Satz 2.25).<br />

Zuerst wollen wir uns aber mit den grundlegenden Problemen beim Rechnen mit<br />

endlicher Genauigkeit auf heutigen (digitalen) Computern befassen. Dabei werden zwei<br />

Typen von Fehlern untersucht.<br />

Def<strong>in</strong>ition 2.1 Es sei c e<strong>in</strong>e Zahl und ^c <strong>die</strong> berechnete Größe.<br />

1. Als absoluter Fehler wird der Wert<br />

e abs = e a := |^c − c| ,<br />

2. als relativer Fehler (für c ̸= 0) <strong>die</strong> Größe<br />

e rel = e r :=<br />

|^c − c|<br />

|c|<br />

bezeichnet.<br />

Wie der Name schon sagt, gibt uns der absolute Fehler <strong>die</strong> absolute Genauigkeit des<br />

Ergebnisses an, während uns der relative <strong>die</strong> Anzahl der korrekten Ziffern im Ergebnis<br />

angibt, wie sich mit der folgenden Übung leicht verifizieren lässt.<br />

Übung 2.1 Zeigen Sie: wird <strong>die</strong> B–adische Zahl x = .x 1 x 2 · · · x ∞ × B e , x j ∈ {0, . . . , B −<br />

1}, e ∈ Z, durch ^x = .^x 1^x 2 · · · ^x ∞ × B e , ^x j ∈ {0, . . . , B − 1}, mit e<strong>in</strong>em relativen Fehler<br />

von ε angenähert, so stimmen praktisch 5 immer <strong>die</strong> ersten − log B<br />

ε Stellen von x und<br />

^x übere<strong>in</strong>.<br />

♦<br />

5 Es gibt e<strong>in</strong> paar mehr oder weniger pathologische Ausnahmen – <strong>die</strong>se kann man sich im Rahmen<br />

e<strong>in</strong>es Lösungsversuchs ja herleiten!


2.1 Gleitkommazahlen und -operationen 13<br />

2.1 Gleitkommazahlen und -operationen<br />

Alle heutigen Rechner verwenden e<strong>in</strong>e sogenannte Gleitkomma-, Fließpunkt-, Gleitpunktoder<br />

Fließkommaarithmetik (engl. ”<br />

float<strong>in</strong>g po<strong>in</strong>t“).<br />

Def<strong>in</strong>ition 2.2 Die Menge F = F (B, m, E) von Gleitkommazahlen zur Basis B ∈ N, mit<br />

Mantissenlänge m ∈ N und Exponentenbereich E ⊂ Z besteht aus allen Zahlen der Form<br />

⎛ ⎞<br />

m∑<br />

± ⎝ d j B −j ⎠ B e , d j ∈ {0, . . . , B − 1} , e ∈ E.<br />

j=1<br />

Wir schreiben <strong>die</strong>se Zahlen auch als<br />

±. d 1 · · · d m × B e .<br />

Die Ziffern d 1 · · · d m bezeichnet man auch als Mantisse.<br />

Normalerweise s<strong>in</strong>d Gleitkommazahlen b<strong>in</strong>är, das heißt, B = 2. Schematisch sehen<br />

dann <strong>die</strong>se Zahlen so aus:<br />

± d 1 · · · d m e 1 · · · e k<br />

↑ ↑ ↑<br />

Vz Mantisse Exponent<br />

Der Exponent wird <strong>in</strong> e<strong>in</strong>em ”<br />

ganz normalen“ vorzeichenbehafteten Ganzzahlformat<br />

(E<strong>in</strong>er- oder Zweierkomplement?) dargestellt. Achtung: damit wird der Exponentenbereich<br />

normalerweise nicht symmetrisch se<strong>in</strong>.<br />

Bemerkung 2.3<br />

1. In obiger Darstellung kann es <strong>die</strong> Zahlen +0 und −0 geben und <strong>die</strong>se können sehr wohl<br />

unterschiedlich se<strong>in</strong>.<br />

2. Für <strong>die</strong> Größe des Zahlenbereiches ist <strong>die</strong> Länge des Exponenten verantwortlich, für <strong>die</strong><br />

Genauigkeit der Rechenoperationen h<strong>in</strong>gegen <strong>die</strong> Mantissenlänge.<br />

3. Der darstellbare 6 Bereich von F ist das Intervall<br />

[<br />

D (F) := −B max E , −B m<strong>in</strong> E−1] [<br />

∪ B m<strong>in</strong> E−1 , B max E] ∪ {0}.<br />

Entsteht beispielsweise durch Rechnung e<strong>in</strong>e Zahl x mit |x| > B max E , dann spricht man<br />

von Überlauf (<strong>die</strong>se Zahlen haben den Wert ∞), bei |x| < B m<strong>in</strong> E−1 spricht man h<strong>in</strong>gegen<br />

von Unterlauf.<br />

6 So ist <strong>die</strong> Aussage nicht ganz richtig: es ist möglich betragsmäßig kle<strong>in</strong>ere Zahlen darzustellen,<br />

nämlich bis h<strong>in</strong> zu ±B m<strong>in</strong> E−m . Solche Zahlen, deren erste Ziffer 0 ist und bei denen der Exponent<br />

gleichzeitig m<strong>in</strong>imal ist, bezeichnet man als subnormal. Allerd<strong>in</strong>gs würde e<strong>in</strong>e detailliertere Betrachtung<br />

unter Berücksichtigung subnormaler Zahlen <strong>die</strong> Darstellung verkomplizieren, ohne viel zu bewirken.


14 2 FEHLERANALYSE<br />

Def<strong>in</strong>ition 2.4 E<strong>in</strong>e Gleitkommazahl x = .d 1 · · · .d m × B e ∈ F heißt normalisiert, wenn<br />

d 1 ̸= 0.<br />

Eigentlich s<strong>in</strong>d normalisierte Gleitkommazahlen auch <strong>die</strong> ”<br />

vernünftigen“ Gleitkommazahlen:<br />

Wenn man schon nur endliche Genauigkeit zur Verfügung hat, macht es ja<br />

nur wenig S<strong>in</strong>n, Ziffern damit zu vergeuden, daß man führende Nullen mitschleppt.<br />

Def<strong>in</strong>ition 2.5 Die Zahl u = 1 2 B1−m heißt Rundungsfehlere<strong>in</strong>heit (unit roundoff).<br />

Der Name ”<br />

Rundungsfehlere<strong>in</strong>heit“ kommt daher, daß <strong>die</strong>s gerade der relative Fehler<br />

ist, der auftritt, wenn man von e<strong>in</strong>er darstellbaren rellen Zahl x zur nächstgelegenen<br />

Gleitkommazahl ^x ∈ F übergeht. Wer e<strong>in</strong> Herz für Metriken hat, kann <strong>die</strong>s also als <strong>die</strong><br />

(relative) Distanz zwischen F und D(F) ⊂ R bezeichnen.<br />

Proposition 2.6 Für jede Zahl x ∈ D (F) gibt es e<strong>in</strong>e normalisierte Gleitkommazahl ^x ∈ F<br />

und e<strong>in</strong> δ ∈ [−u, u], so daß<br />

^x = x (1 + δ) .<br />

Beweis: Wir schreiben x <strong>in</strong> se<strong>in</strong>er normalisierten B–adischen Entwicklung als<br />

x = ±B e ⎛<br />

⎝<br />

∞∑<br />

j=1<br />

x j B −j ⎞<br />

⎠ = ±.x 1 x 2 · · · × B e ,<br />

wobei x 1 ̸= 0, also B e−1 ≤ |x| ≤ B e . Ohne E<strong>in</strong>schränkung können wir außerdem annehmen,<br />

daß x > 0 ist.<br />

Es seien<br />

x ↓ := .x 1 · · · x m × B e ∈ F und x ↑ := ( .x 1 · · · x m + B −m) × B e ∈ F,<br />

dann ist x ↓ ≤ x ≤ x ↑ und e<strong>in</strong>er der beiden Werte ∣ ∣ x − x↓<br />

∣ ∣ und<br />

∣ ∣x − x↑<br />

∣ ∣ ist ≤<br />

1<br />

2<br />

B e−m ,<br />

denn sonst wäre ja<br />

B e−m = x ↑ − x ↓ = ( x ↑ − x ) + ( x − x ↓<br />

)<br />

> B e−m .<br />

Wählt man ^x ∈ { x ↓ , x ↑<br />

}<br />

passend, dann ist also<br />

|x − ^x|<br />

|x|<br />

≤ 1 B e−m<br />

2 B e−1 = 1 2 B1−m .<br />

Dieser Beweis ist e<strong>in</strong>fach, irgendwie auch konstruktiv, aber ke<strong>in</strong>e praktische Rechenvorschrift,<br />

denn er erfordert <strong>die</strong> Kenntnis aller Stellen von x.


2.1 Gleitkommazahlen und -operationen 15<br />

Für e<strong>in</strong>en alternativen Beweis für gerade 7 Werte von B setzen wir<br />

{<br />

}<br />

x, x m+1 < B<br />

y :=<br />

2 ,<br />

x + Be−m−1<br />

2<br />

, x m+1 ≥ B 2 . = y 0 .y 1 · · · y m · · · y ∞ × B e .<br />

Dabei kann es zwar passieren, daß y 0 = 1 ist (z.B. beim Aufrunden von .995 auf zwei<br />

Stellen), aber dann muß y 1 = · · · = y m = 0 se<strong>in</strong>. Nun setzen wir<br />

{ .y1 · · · y<br />

^x :=<br />

m × B e y 0 = 0,<br />

.y 0 · · · y m−1 × B e+1 y 0 = 1,<br />

(Achtung: ^x = .y 0 · · · y m × B e+1 da y m = 0!). Dann ist<br />

{<br />

^x = x +<br />

−x m+1 B e−m−1 , x m+1 < B 2<br />

(B/2 − x m+1 ) B e−m−1 , x m+1 ≥ B 2<br />

}<br />

−<br />

∞∑<br />

j=m+2<br />

x j B e−j .<br />

Also def<strong>in</strong>ieren wir<br />

ε m+1 :=<br />

und da B gerade ist, ergibt sich<br />

{<br />

xm+1 x m+1 < B 2 ,<br />

x m+1 − B 2<br />

x m+1 ≥ B 2 ,<br />

ε m+1 < B 2<br />

=⇒ ε m+1 ≤ B 2 − 1<br />

und somit<br />

|x − ^x| = B e ⎛<br />

⎝B −m−1 ε m+1 +<br />

∞∑<br />

j=m+2<br />

x j B −j ⎞<br />

⎠<br />

(( ) B<br />

≤ B e B −m−1 2 − 1 B −1 )<br />

+ (B − 1)<br />

1 − B −1<br />

= 1 2 Be−1 B 1−m ≤ 1 2 |x|B1−m = u|x|.<br />

Das Interessante am zweiten Beweis ist <strong>die</strong> Tatsache, daß wir zur Bestimmung von ^x<br />

nur <strong>die</strong> ersten m + 1 Ziffern von x kennen müssen 8 .<br />

□<br />

Übung 2.2 Zeigen Sie: Bei Verwendung e<strong>in</strong>er ungeraden Basis B kann man unter Verwendung<br />

von m + 1 Ziffern nicht mit der gewünschten Genauigkeit u auf m Stellen<br />

runden. Funktioniert es mit m + k Stellen für irgende<strong>in</strong> k > 1?<br />

♦<br />

7 Man kann sich relativ leicht klarmachen, warum <strong>die</strong> Basis e<strong>in</strong>e gerade Zahl se<strong>in</strong> muß: Nachdem<br />

man ja immer <strong>die</strong> B Ziffern 0, . . . , B − 1 zur Verfügung hat, rundet man im Falle e<strong>in</strong>er geraden Basis<br />

gerade <strong>die</strong> Hälfte der Ziffern auf und <strong>die</strong> Hälfte der Ziffern ab, ist h<strong>in</strong>gegen B ungerade, so muß man<br />

bei Auftreten der Ziffer B−1<br />

2<br />

<strong>die</strong> Entscheidung, ob auf- oder abgerundet werden soll, auf <strong>die</strong> nächste<br />

Ziffer vertagen“. Und wenn <strong>die</strong> wieder B−1<br />

” 2<br />

ist . . .<br />

8 Und das funktioniert eben nur, wenn <strong>die</strong> Basis B e<strong>in</strong>e gerade Zahl ist


16 2 FEHLERANALYSE<br />

Def<strong>in</strong>ition 2.7 Die Gleitkommaoperationen<br />

werden wie folgt ausgeführt:<br />

{⊕, ⊖, ⊗, ⊘} : F × F → F<br />

1. Addition (⊕, ⊖): Schiebe <strong>die</strong> Zahl mit kle<strong>in</strong>erem Exponenten so lange nach rechts 9 , bis<br />

<strong>die</strong> beiden Exponenten gleich groß s<strong>in</strong>d, führe dann <strong>die</strong> Operation aus, normalisiere das<br />

Ergebnis und runde auf <strong>die</strong> nächste Zahl aus F.<br />

2. Multiplikation (⊗, ⊘): Ad<strong>die</strong>re/subtrahiere <strong>die</strong> Exponenten, führe <strong>die</strong> Operation h<strong>in</strong>reichend<br />

exakt aus und normalisiere.<br />

Der Akkumulator ist <strong>die</strong>jenige Gleitkommazahl, mit der der Rechner <strong>in</strong>tern wirklich rechnet.<br />

Relevant ist natürlich nur <strong>die</strong> Mantissenlänge des Akkumulators.<br />

Übung 2.3 Zeigen Sie, daß <strong>die</strong> Gleitkommaoperationen nicht mehr den Körperaxiomen<br />

genügen.<br />

♦<br />

Bemerkung 2.8<br />

1. Die obige Def<strong>in</strong>ition legt nicht fest, <strong>in</strong> welchem Format <strong>die</strong> Operationen exakt gerechnet<br />

werden (Akkumulator).<br />

2. Die naive Anschauung ”<br />

Führe <strong>die</strong> arithmetische Operation exakt durch und runde dann“<br />

ist natürlich völlig unrealistisch. Trotzdem werden wir sehen, daß sie unter gewissen<br />

(e<strong>in</strong>fachen) Annahmen an <strong>die</strong> Arithmetik gemacht werden kann.<br />

3. Die kritischste Operation ist <strong>die</strong> Subtraktion, <strong>die</strong> zeitaufwendigste <strong>die</strong> Division (bis zu<br />

Faktor 20 langsamer). Allerd<strong>in</strong>gs hat sich das mit der Division im Zeitalter von Arithmetik–<br />

Koprozessoren etwas überholt, <strong>in</strong>zwischen s<strong>in</strong>d <strong>die</strong> Operationen alle <strong>in</strong> etwa gleich schnell<br />

und andere D<strong>in</strong>ge s<strong>in</strong>d viel relevanter, beispielsweise das Speichermanagement.<br />

4. Ist x = .d 1 · · · d m B e und y = .^d 1 · · · ^d m B^e dann fällt bei der Addition der betragsmäßig<br />

kle<strong>in</strong>ere Operand unter den Tisch falls |e − ^e| > m.<br />

Beispiel 2.9 Sei B = 10 und m = 3.<br />

1. .123 × 10 0 ⊕ .306 × 10 −1 , m<strong>in</strong>destens vierstelliger Akkumulator:<br />

9 Diese Operation erhöht den Exponenten.<br />

.1230<br />

+ .0306<br />

.1536 → .154


2.1 Gleitkommazahlen und -operationen 17<br />

2. .123 × 10 0 ⊕ .306 × 10 −1 , dreistelliger Akkumulator:<br />

3. .123 × 10 0 ⊖ .122 × 10 0 ergibt<br />

.123<br />

+ .030<br />

.153 → .153<br />

.123<br />

− .122<br />

.001 → .100 × 10 −2<br />

Die letzten beiden Ziffern s<strong>in</strong>d Phantasieziffern! Diesen Vorgang bei der Subtraktion<br />

bezeichnet man als Auslöschung.<br />

Das mit den ”<br />

Phantasieziffern“ schreit danach, genauer erklärt zu werden. Natürlich<br />

ist .123 e<strong>in</strong>e exakte Zahl, aber wenn vorher e<strong>in</strong>e Rundung passiert ist 10 , dann kann<br />

<strong>die</strong>s das Rundungsergebnis e<strong>in</strong>er beliebigen Zahl aus dem Intervall [.1225, 1235) se<strong>in</strong>;<br />

entsprechend repräsentiert .122 dann auch das Intervall [.1215, .1225) und <strong>die</strong> Differenz<br />

ist e<strong>in</strong>e Zahl aus 11 [.1225, 1235) − [.1215, .1225) = (0, .002).<br />

Der berechnete Wert .001 ist dann auch das beste, was man schaffen kann, nämlich der<br />

Mittelpunkt des Intervalls, im S<strong>in</strong>ne e<strong>in</strong>es wirklich vor Rundung korrekten Ergebnisses<br />

kann aber e<strong>in</strong> relativer Fehler von bis zu 100% auftreten! Und das ist nicht schön.<br />

Übung 2.4 Zeigen Sie: <strong>die</strong> Multiplikation zweier normierter Gleitkommazahlen liefert<br />

wieder e<strong>in</strong>e normierte Gleitkommazahl.<br />

♦<br />

Beispiel 2.10 (IEEE 754) Die <strong>in</strong> heutigen 12 PC–Prozessoren verwendete Gleitkommaarithmetik<br />

entspricht dem IEEE 13 754–Standard. Die dabei verwendete Basis ist 2 und <strong>die</strong> arithmetischen<br />

Datentypen s<strong>in</strong>d als<br />

Typ Mantisse Exponent Roundoff Größenordnung<br />

float 23+1 8 2 −24 = 5.96 × 10 −8 10 ±38<br />

double 52+1 11 2 −53 = 1.11 × 10 −16 10 ±308<br />

festgelegt. Das eigentlich <strong>in</strong>teressante am Standard ist aber <strong>die</strong> Festlegung des Rundungsverhaltens<br />

und <strong>die</strong> Existenz und Verarbeitung von NaNs 14 .<br />

Der Standard IEEE 854 lässt übrigens als Basis 2 und 10 zu!<br />

10 Was man bei der Rechnung selbst ja nie weiss.<br />

11 Für <strong>die</strong> Subtraktion von Mengen, <strong>in</strong> unserem Falle von Intervallen, verwenden wir hier <strong>die</strong> durchaus<br />

gebräuchliche Notation A − B = {a − b : a ∈ A, b ∈ B}.<br />

12 Das ist <strong>in</strong>zwischen überholt, aber wozu immer wieder anpassen? Inzwischen ist IEEE 854 aktuell.<br />

M<strong>in</strong>destens.<br />

13 IEEE = Institute of Electrical and Electronical Eng<strong>in</strong>eers<br />

14 Not a Number, Ergebnisse von unzulässigen Operationen wie Wurzeln aus negativen Zahlen


18 2 FEHLERANALYSE<br />

Jetzt sehen wir uns an, wie e<strong>in</strong>e kle<strong>in</strong>e Änderung der Akkumulatorengröße das Verhalten<br />

der Subtraktion bee<strong>in</strong>flussen kann.<br />

Satz 2.11 Der relative Fehler bei der Subtraktion mit m–stelligem Akkumulator kann B − 1<br />

se<strong>in</strong>.<br />

Beweis: Wir setzen ρ = B − 1 und betrachten <strong>die</strong> beiden Zahlen<br />

x = .10 · · · 0 × B 0 = B −1<br />

y = .ρ · · · ρ × B −1 = B −1 ( 1 − B −m) ,<br />

also ist<br />

Das berechnete Ergebnis h<strong>in</strong>gegen ist<br />

x − y = B −1 ( 1 − 1 + B −m) = B −m−1 .<br />

−<br />

.10 · · · 00<br />

.0ρ · · · ρρ<br />

.00 · · · 01 → .10 · · · 0 × B −m+1 = B −m .<br />

Der relative Fehler ist somit<br />

e r = B−m − B −m−1<br />

B −m−1 = B − 1.<br />

□<br />

Satz 2.12 (Guard Digit) Der relative Fehler bei der Subtraktion mit (m + 1)–stelligem Akkumulator<br />

ist höchstens 2u.<br />

Beweis: Der kritische Fall ist <strong>die</strong> Subtraktion zweier Zahlen x, y gleichen Vorzeichens.<br />

Nehmen wir an, daß x, y > 0 und daß x > y. Letzteres ist ke<strong>in</strong>e E<strong>in</strong>schränkung da<br />

x ⊖ y = ⊖ (y ⊖ x) und da Vorzeichenumkehr exakt durchgeführt werden kann (Vorzeichenbit!).<br />

Außerdem können wir <strong>die</strong> Zahlen so skalieren, daß,<br />

x = .x 1 · · · x m × B 0 , also y = .y 1 · · · y m × B −k = .0 · · · 0^y k+1 · · · ^y k+m<br />

für e<strong>in</strong> k ∈ N 0 und x 1 , ^y k+1 ̸= 0.<br />

Im Fall k ≥ m + 1 haben <strong>die</strong> ersten m + 1 Stellen von y, <strong>die</strong> bei der Rechnung<br />

verwendet werden, den Wert 0 und daher ist x ⊖ y = x. Der Fehler dabei ist y < B −m−1<br />

und da x ≥ B −1 , ist e r < B −m = 2 B 1 2 B1−m ≤ u.<br />

Sei also k ≤ m und<br />

^y = .0 · · · 0^y k+1 · · · ^y m+1<br />

<strong>die</strong> ”<br />

Akkumulatorversion“ von y (also auf m + 1 Stellen abgeschnitten). Ist k = 0, dann<br />

wird <strong>die</strong> Subtraktion sogar <strong>in</strong> e<strong>in</strong>em m–stelligen Akkumulator exakt durchgeführt


2.1 Gleitkommazahlen und -operationen 19<br />

(ke<strong>in</strong> Shift!), ist k = 1, so sorgt <strong>die</strong> Guard Digit“ dafür, daß <strong>die</strong> Subtraktion im Akkumulator<br />

exakt ausgeführt wird und Fehler können also nur durch Runden auftreten.<br />

”<br />

Diese s<strong>in</strong>d aber, nach Proposition 2.6 höchstens u. Die folgende Tabelle zeigt, was<br />

passiert:<br />

.x 1 x 2 · · · x m 0 0 . . . 0<br />

k = 0 .y 1 y 2 · · · y m 0 0 . . . 0<br />

k = 1 .0 y 1 · · · y m−1 y m 0 . . . 0<br />

Sei also k ≥ 2. Dann ist<br />

y − ^y =<br />

m+k ∑<br />

j=m+2<br />

^y j B −j ≤ (B − 1)<br />

m+k ∑<br />

j=m+2<br />

Nun ist der berechnete Wert x ⊖ y gerade<br />

B −j = B − 1 ∑k−2<br />

B m+2 B −j = B − 1 1 − B 1−k<br />

B m+2 . (2.1)<br />

1 − B−1 j=0<br />

x ⊖ y = rd m (x − ^y) = x − ^y − δ,<br />

wobei 15 |δ| ≤ B 2 B−m−1 ≤ 1 2 B−m . Der relative Fehler bei der Subtraktion ist damit<br />

e r =<br />

|(x − y) − (x − ^y − δ)|<br />

|x − y|<br />

=<br />

|^y − y + δ|<br />

. (2.2)<br />

|x − y|<br />

Wir schreiben z = x − y = .z 1 · · · z m+k × B 0 (exakte Darstellung!) und unterscheiden<br />

drei Fälle:<br />

1. x − y ≥ B −1 (also z 1 ̸= 0): dann liefert (2.2) zusammen mit (2.1) <strong>die</strong> Abschätzung<br />

( B − 1 1 − B<br />

e r ≤ B |^y − y + δ| ≤ B (|^y − y| + |δ|) ≤ 1−k )<br />

B−m<br />

B<br />

B m+2 +<br />

1 − B−1 2<br />

( B − 1<br />

= B 1−m 1 − B 1−k<br />

B 2 1 − B −1 + 1 ) ( B − 1<br />

= B 1−m 1 − B 1−k<br />

+ 1 )<br />

2<br />

B − 1 B 2<br />

( 1<br />

= B 1−m 2 + 1 ) (<br />

B − B−k ≤ 1 + 2 )<br />

1<br />

B 2 B1−m ≤ 2u.<br />

} {{ } } {{ }<br />

≤2<br />

=u<br />

2. x − ^y < B −1 : das Ergebnis aus dem Akkumulator muß beim Normalisieren um<br />

m<strong>in</strong>destens e<strong>in</strong>e Stelle nach l<strong>in</strong>ks geschoben werden und daher passiert beim<br />

Runden nichts mehr, also ist δ = 0. Der kle<strong>in</strong>stmögliche Wert für x − y ist nun<br />

∑k−1<br />

.10 · · · 0 − . 0 } ·{{ · · 0}<br />

ρ · · · ρ = .0 ρ · · · ρ 0<br />

} {{ } } {{ } } ·{{ · · 0}<br />

1 > B −2 (B − 1) B −j ,<br />

k m<br />

k−1 m−1<br />

j=0<br />

15 Achtung: δ ist hier der absolute Fehler bei Rundung auf m Stellen, nicht der relative Fehler wie <strong>in</strong><br />

Proposition 2.6 betrachtet! Daher auch der um e<strong>in</strong>en Faktor B kle<strong>in</strong>ere Wert.


20 2 FEHLERANALYSE<br />

also<br />

|x − y| > B − 1<br />

B 2<br />

Setzen wir (2.1), (2.3) und δ = 0 <strong>in</strong> (2.2) e<strong>in</strong>, so erhalten wir<br />

e r ≤ B − 1<br />

B m+2 1 − B 1−k<br />

1 − B −1 ·<br />

B 2<br />

B − 1<br />

1 − B −k<br />

. (2.3)<br />

1 − B−1 1 − B −1 1 − B1−k<br />

= B−m<br />

1 − B−k 1 − B −k < B−m ≤ 1 2 B1−m = u.<br />

3. x − y < B −1 und x − ^y ≥ B −1 : <strong>die</strong>s tritt genau dann auf, wenn x − ^y = B −1 =<br />

.10 · · · 0 und es ist wieder δ = 0. Damit können wir aber wieder <strong>die</strong> Abschätzung<br />

aus Fall 2 verwenden.<br />

Übung 2.5 Beweisen Sie Satz 2.12 für den Fall, daß x und y unterschiedliches Vorzeichen<br />

haben. Zeigen Sie, daß <strong>die</strong>se Aussage sogar ohne Verwendung e<strong>in</strong>er Guard Digit“<br />

gültig bleibt.<br />

”<br />

♦<br />

Def<strong>in</strong>ition 2.13 Das Standardmodell der Gleitkommaarithmetik setzt voraus, daß<br />

x ⊙ y = (x · y) (1 + δ) , |δ| ≤ ^u, · = +, −, ×, /, (2.4)<br />

wobei ^u = 2u. Dieses Standardmodell ist mit Hilfe von Guard Digits immer zu realisieren.<br />

Bemerkung 2.14 (Standardmodell der Gleitkommaarithmetik)<br />

1. Das Standardmodell spiegelt <strong>die</strong> Annahme wieder, daß <strong>die</strong> jeweilige Rechenoperation exakt<br />

ausgeführt und dann das Ergebnis gerundet wird. Wir haben aber gesehen, daß, bis<br />

auf den Faktor 2 <strong>die</strong>se Annahme auch mit endlicher Arithmetik realisiert werden kann.<br />

2. Das Standardmodell hat noch e<strong>in</strong>e <strong>in</strong>teressante Konsequenz: ist 16 x · y ̸= 0 und ist ^u < 1,<br />

dann ist auch der berechnete Wert, x ⊙ y, von Null verschieden. Grund: wäre x ⊙ y = 0,<br />

dann wäre der relative Fehler der Berechnung<br />

□<br />

|x ⊙ y − x · y|<br />

|x · y|<br />

=<br />

|x · y|<br />

|x · y| = 1 > ^u.<br />

Übung 2.6 Zeigen Sie, daß Multiplikation und Division das Standardmodell erfüllen.<br />

♦<br />

Wir wollen im weiteren immer annehmen, daß wir e<strong>in</strong>e Gleitkommaarithmetik zur<br />

Verfügung haben, <strong>die</strong> dem Standardmodell (2.4) genügt.<br />

16 E<strong>in</strong>e Arithmetik ohne <strong>die</strong>se Eigenschaft macht ja auch wenig S<strong>in</strong>n


2.2 Fortpflanzung von Rundungsfehlern 21<br />

2.2 Fortpflanzung von Rundungsfehlern<br />

Im Normalfall wird bei numerischen Berechnungen nicht nur e<strong>in</strong>e Operation ausgeführt,<br />

sondern mehrere h<strong>in</strong>tere<strong>in</strong>andergeschaltet. Dabei kann <strong>die</strong> Reihenfolge, <strong>in</strong><br />

der <strong>die</strong> Operationen ausgeführt werden, e<strong>in</strong>en dramatischen E<strong>in</strong>fluß auf das Ergebnis<br />

haben.<br />

Beispiel 2.15 Wir wollen für x, y ∈ F den Wert x 2 − y 2 berechnen.<br />

1. Berechnung <strong>in</strong> der Reihenfolge (x ⊗ x) ⊖ (y ⊗ y). Also ist<br />

(x ⊗ x) ⊖ (y ⊗ y) = x 2 (1 + ε 1 ) ⊖ y 2 (1 + ε 2 ) =<br />

(<br />

= x 2 − y 2) (1 + ε 3 ) +<br />

(<br />

x 2 (1 + ε 1 ) − y 2 (1 + ε 2 )<br />

(<br />

ε 1 x 2 − ε 2 y 2) (1 + ε 3 ) ,<br />

)<br />

(1 + ε 3 )<br />

was zu der pessimistischen Abschätzung<br />

∣<br />

∣(x ⊗ x) ⊖ (y ⊗ y) − ( x 2 − y 2)∣ ∣<br />

∣<br />

∣x 2 − y 2∣ ∣<br />

≤ ^u<br />

(<br />

)<br />

1 + (1 + ^u) x2 + y<br />

∣<br />

2<br />

∣x 2 − y 2∣ ∣<br />

(2.5)<br />

führt, <strong>die</strong> beliebig schlecht werden kann, wenn |x| ∼ |y| ist.<br />

2. Berechnung <strong>in</strong> der Reihenfolge (x ⊕ y) ⊗ (x ⊖ y). Dann ist<br />

(x ⊕ y) ⊗ (x ⊖ y) = (x + y) (1 + ε 1 ) ⊗ (x − y) (1 + ε 2 )<br />

was <strong>die</strong> wesentliche bessere Fehlerschranke<br />

∣<br />

∣(x ⊕ y) ⊗ (x ⊖ y) − ( x 2 − y 2)∣ ∣<br />

∣ x 2 − y 2∣ ∣<br />

ergibt.<br />

= ((x + y) (1 + ε 1 ) × (x − y) (1 + ε 2 )) (1 + ε 3 )<br />

(<br />

= x 2 − y 2) (1 + ε 1 ) (1 + ε 2 ) (1 + ε 3 ) ,<br />

≤ 3^u + 3^u 2 + ^u 3 ∼ 3^u (2.6)<br />

Nun muß (2.5) an sich noch nichts schlimmes bedeuten: wir haben lediglich e<strong>in</strong>e obere<br />

Abschätzung, <strong>die</strong> sich schlecht verhält. Doch leider ist <strong>die</strong> Realität auch nicht besser!<br />

Beispiel 2.16 Wir betrachten<br />

B = 10, m = 3, x = .334 und y = .333.<br />

Dann ist x 2 = .112, y 2 = .111, also hat x 2 − y 2 <strong>die</strong> normalisierte Darstellung .100 × 10 −2 .<br />

Das korrekte Ergebnis h<strong>in</strong>gegen wäre .667 × 10 −3 , der relative Fehler ist ∼ 0.499, also 100u!<br />

Dies ist schlimm genug, allerd<strong>in</strong>gs übertreibt Formel (2.5) den relativen Fehler mit e<strong>in</strong>em Wert<br />

∼ 333 schon etwas.


22 2 FEHLERANALYSE<br />

%% SkProd1.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Berechnung des Skalarprodukts<br />

%% E<strong>in</strong>gabe:<br />

%% x,y Vektoren<br />

function sp = SkProd( x,y )<br />

xdim = length( x );<br />

ydim = length( y );<br />

sp = 0;<br />

for i = 1:m<strong>in</strong>( xdim,ydim )<br />

sp = sp + x(i) * y(i);<br />

end<br />

%endfunction<br />

Programm 2.1 SkProd1.m: Berechnung des Skalarprodukts<br />

Als e<strong>in</strong> weiteres Beispiel von Rundungsfehlerfortpflanzung wollen wir uns das Skalarprodukt<br />

zweier Vektoren x, y ∈ R n ansehen. Dieses berechnen wir nach der Regel 17<br />

s 0 = 0, s j = s j−1 ⊕ ( x j ⊗ y j<br />

)<br />

, j = 1, . . . , n,<br />

wobei x T y = s n . Da <strong>die</strong> Addition von Null unproblematisch ist, ist dann<br />

s 1 = x 1 y 1 (1 + δ 1 )<br />

s 2 = (s 1 + x 2 y 2 (1 + δ 2 )) (1 + ε 2 )<br />

= x 1 y 1 (1 + δ 1 ) (1 + ε 2 ) + x 2 y 2 (1 + δ 2 ) (1 + ε 2 ) ,<br />

wobei ∣ ∣ ∣ ∣ δj , ∣εj ≤ ^u. Der weitere Gang der D<strong>in</strong>ge ist nun leicht zu erraten.<br />

Lemma 2.17 Für j = 2, . . . , n gilt<br />

s j =<br />

wobei ε 1 = 0.<br />

j∑<br />

j∏<br />

x k y k (1 + δ k ) (1 + ε l ) , (2.7)<br />

k=1<br />

l=k<br />

17 Wir s<strong>in</strong>d <strong>in</strong> der Numerik und hier spielt es e<strong>in</strong>e wesentliche Rolle, wie man <strong>die</strong> D<strong>in</strong>ge berechnet.<br />

Andere Formeln produzieren dann auch andere Rundungsfehler.


2.2 Fortpflanzung von Rundungsfehlern 23<br />

Beweis: Induktion über j. Die Fälle j = 1, 2 haben wir ja schon betrachtet. Sei also (2.7)<br />

für e<strong>in</strong> j ≥ 2 bewiesen. Nun ist<br />

s j+1 = s j ⊕ ( ) ( ( )) ( )<br />

x j+1 ⊗ y j+1 = sj + x j+1 y j+1 1 + δj+1 1 + εj+1<br />

( ) ( ) ( )<br />

= s j 1 + εj+1 + xj+1 y j+1 1 + δj+1 1 + εj+1<br />

j∑<br />

∏j+1<br />

( ) ( )<br />

= x k y k (1 + δ k ) (1 + ε l ) + x j+1 y j+1 1 + δj+1 1 + εj+1<br />

=<br />

k=1<br />

j+1<br />

l=k<br />

j+1<br />

∑<br />

∏<br />

x k y k (1 + δ k ) (1 + ε l ) .<br />

k=1<br />

Damit erhalten wir den absoluten Fehler<br />

⎛<br />

⎞<br />

∣<br />

e a = ∣s n − x T n∑<br />

y∣ =<br />

x j y j<br />

⎝ ( ) n ∏<br />

1 + δ j (1 + ε k ) − 1⎠<br />

∣ j=1<br />

k=j<br />

∣<br />

n∑<br />

∣ )<br />

≤ ∣ xj y j ((1 + ^u) n−j+2 − 1<br />

=<br />

≤<br />

j=1<br />

l=k<br />

n∑<br />

( )<br />

∣ ∣<br />

∣x j y j n − j + 2<br />

((n − j + 2)^u +<br />

)^u 2 + · · · + ^u n−j+2<br />

2<br />

j=1<br />

(n + 1) ^u<br />

n∑<br />

∣<br />

∣ xj y j + O<br />

((n^u) 2) .<br />

j=1<br />

Def<strong>in</strong>ition 2.18 (Landau–Symbole) Sei φ : R → R stetig <strong>in</strong> e<strong>in</strong>er Umgebung von 0. E<strong>in</strong><br />

Ausdruck ψ(u) ist e<strong>in</strong> ”<br />

Groß-O“ von φ(u), <strong>in</strong> Zeichen ψ = O(φ(u)), falls<br />

lim sup<br />

u→0<br />

Entsprechend schreiben wir ψ = o(φ(u)) falls<br />

ψ(u)<br />

∣ φ(u) ∣ < ∞. (2.8)<br />

ψ(u)<br />

lim<br />

u→0 φ(u)<br />

= 0. (2.9)<br />

Da der Rundungsfehler ^u immer als sehr kle<strong>in</strong> (im Vergleich zu n) angenommen<br />

wird, also nu < 1, werden wir O ( (n^u) 2) –Terme immer unter den Tisch fallen lassen.<br />

Somit haben wir <strong>die</strong> folgende Aussage über <strong>die</strong> Stabilität der Berechnung des <strong>in</strong>neren<br />

Produkts.<br />


24 2 FEHLERANALYSE<br />

Satz 2.19 Der relative Fehler bei der Berechnung des Skalarprodukts x T y, x, y ∈ R, erfüllt <strong>die</strong><br />

Ungleichung<br />

∣ x T ∣ ∑<br />

y − s n nj=1<br />

∣ ∣ ∣xj<br />

e r =<br />

∣ x T y ∣ y j (<br />

≤ n^u<br />

∣ x T y ∣ + O (n^u) 2) . (2.10)<br />

Übung 2.7 Erklären Sie, wie man von der Konstante n + 1 auf n kommt.<br />

♦<br />

Noch e<strong>in</strong> Wort zur Abschätzung (2.10): ist das Skalarprodukt sehr kle<strong>in</strong> (d.h., <strong>die</strong><br />

Vektoren s<strong>in</strong>d fast orthogonal), nicht aber <strong>die</strong> Summe |x 1 y 1 | + · · · + |x n y n |, dann kann<br />

<strong>die</strong> Abschätzung und damit <strong>die</strong> Genauigkeit des Ergebnisses beliebig schlecht werden.<br />

Außerdem muß m<strong>in</strong>destens e<strong>in</strong>mal Auslöschung auftreten<br />

Wir sehen auch noch e<strong>in</strong>e weitere ”<br />

Faustregel“: <strong>die</strong> Koeffizienten x j , y j s<strong>in</strong>d ja an<br />

n − j + 1 Operationen beteiligt (e<strong>in</strong>e Multiplikation und n − j Additionen) und ”<br />

sammeln“<br />

bei jeder <strong>die</strong>ser Operationen e<strong>in</strong>en Fehler auf. Da <strong>in</strong>sgesamt n komb<strong>in</strong>ierte Multiplikationen/Additionen<br />

auftauchen, ist es nur plausibel, daß der Gesamtfehler <strong>die</strong><br />

Größenordnung n^u haben wird. Erstaunlicherweise kann man <strong>die</strong>ses ”<br />

Naturgesetz“<br />

umgehen, wie wir noch sehen werden.<br />

2.3 Rückwärtsfehler<br />

Wir können Gleichung (2.7) mit j = n noch auf e<strong>in</strong>e andere Weise <strong>in</strong>terpretieren: den<br />

berechneten Wert x ⊙ y = s n könnte man dadurch erhalten, daß man exakt rechnet,<br />

aber <strong>die</strong> Ausgangsdaten stört. Anders gesagt:<br />

wobei<br />

x ⊙ y = ^x · ^y = ^x T ^y,<br />

( ) ∏<br />

n<br />

^x j^y j = x j y j 1 + δj (1 + ε k ) .<br />

Wir <strong>in</strong>terpretieren Fehler aus der Berechnung also jetzt als Fehler <strong>in</strong> den E<strong>in</strong>gabedaten.<br />

Diese Idee, <strong>die</strong> auf Wilk<strong>in</strong>son [46] zurückgeht, hat <strong>die</strong> folgenden Vorteile:<br />

• Rundungsfehler und Datenungenauigkeiten (hat da jemand 0.1 e<strong>in</strong>gegeben?)<br />

werden gleich behandelt.<br />

• Man kann jetzt auf den reichen Fundus der Störungsrechnung zurückgreifen.<br />

• Die Sensitivität der Rechnung bezüglich <strong>in</strong>dividueller Daten wird berücksichtigt<br />

(x 1 , y 1 s<strong>in</strong>d wesentlich stärker mit Fehlern behaftet als x n , y n ).<br />

Def<strong>in</strong>ition 2.20 Es sei f : D ⊂ R n → R m e<strong>in</strong>e beliebige Funktion und ^f : D → R m e<strong>in</strong><br />

numerisches Verfahren dazu. E<strong>in</strong> Rückwartsfehler ρ des Verfahrens ist e<strong>in</strong>e Zahl, so daß es<br />

k=j


2.3 Rückwärtsfehler 25<br />

für alle x ∈ D \ {0} e<strong>in</strong> ^x ∈ R n mit der Eigenschaft ^f(x) = f (^x) gibt, so daß <strong>die</strong> relative<br />

Fehlerabschätzung<br />

‖x − ^x‖<br />

≤ ρ (2.11)<br />

‖x‖<br />

erfüllt ist. E<strong>in</strong> komponentenweiser Rückwärtsfehler ρ ∈ R n ist analog als kle<strong>in</strong>ste Fehlerschranke<br />

<strong>in</strong><br />

∣ ∣xj − ^x j<br />

∣ ∣<br />

∣ xj<br />

∣ ∣<br />

≤ ρ j , j = 1, . . . , n, (2.12)<br />

def<strong>in</strong>iert.<br />

Es versteht sich von selbst, daß man versucht, möglichst kle<strong>in</strong>e Werte für ρ zu bestimmen,<br />

da sonst <strong>die</strong> Aussagekraft nur sehr limitiert ist.<br />

Schematisch ist <strong>die</strong> Idee des Rückwärtsfehlers wie folgt:<br />

x → ^f ↘<br />

↕<br />

^x → f ↗<br />

^y = ^f(x)<br />

Beispiel 2.21 Nach Lemma 2.17 hat der Rückwärtsfehler für das Skalarprodukt mit vorgegebenem<br />

y ∈ R n als Abbildung von R n → R n den Wert ρ = n^u, der komponentenweise Rückwärtsfehler<br />

h<strong>in</strong>gegen ρ = (n^u, n^u, (n − 1)^u, . . . , 2^u).<br />

Def<strong>in</strong>ition 2.22 Die Konditionszahl κ f e<strong>in</strong>er Berechnung f : D → R m (<strong>in</strong> Abhängigkeit<br />

von den E<strong>in</strong>gabewerten x ∈ D) ist e<strong>in</strong>e Schranke für das absolute oder relative Änderungsverhalten<br />

‖f (x + δ) − f(x)‖ ≤ κ f (x)‖δ‖, δ ∈ R n ,<br />

bzw.<br />

‖f (x + δ) − f(x)‖ ≤ ‖f(x)‖κ f (x)‖δ‖, δ ∈ R n , f(x) ̸= 0,<br />

wobei ‖δ‖ als sehr kle<strong>in</strong> angenommen wird.<br />

Bemerkung 2.23<br />

1. Mit der Konditionszahl ergibt sich <strong>die</strong> ”<br />

berühmte“ Regel<br />

Fehler ≤ Konditionszahl × Rückwärtsfehler.<br />

2. Diese Aufspaltung ist noch <strong>in</strong> e<strong>in</strong>er anderen H<strong>in</strong>sicht <strong>in</strong>teressant: <strong>die</strong> Konditionszahl<br />

hängt nur von f, also dem Problem, aber nicht von ^f, dem Verfahren ab und sagt lediglich<br />

etwas darüber aus, wie Störungssensitiv das Problem ist. Die Verfahrensfehler werden<br />

über <strong>die</strong> Rückwärtsanalyse <strong>in</strong> den Rückwärtsfehler gesteckt, wo sie sich mit den Datenfehlern<br />

verbünden können.


26 2 FEHLERANALYSE<br />

3. Ist f ∈ C 2 (D), dann liefert <strong>die</strong> Taylorentwicklung<br />

f (x + δ) = f(x) + Df T (x) δ + 1 2 D2 f(θ) [δ, δ] ,<br />

‖θ − x‖ ≤ ‖δ‖.<br />

Ist <strong>die</strong> Bil<strong>in</strong>earform D 2 f halbwegs vernünftig beschränkt, dann ist der letzte Term e<strong>in</strong><br />

O ( ‖δ‖ 2) und <strong>die</strong> Konditionszahl erfüllt<br />

wobei ‖ · ‖ e<strong>in</strong>e geeignete Norm ist.<br />

κ f (x) ∼ ‖Df‖ , (2.13)<br />

f^<br />

x<br />

f<br />

x^<br />

f<br />

Abbildung 2.1: Rückwärtsfehler und Konditionszahl. Zuerst f<strong>in</strong>det man e<strong>in</strong><br />

(natürlich möglichst gutes) ̂x so daß ^f(x) = f (̂x), der Rückwärtsfehler ist dann<br />

der Radius e<strong>in</strong>es (möglichst kle<strong>in</strong>en) Kreises um x, der auch ̂x enthält. Dieser Kreis<br />

wird nun durch f auf e<strong>in</strong> anderes Gebiet (hier der E<strong>in</strong>fachheit halber ebenfalls e<strong>in</strong><br />

Kreis) abgebildet und das Verhältnis aus dem Radius <strong>die</strong>ses Gebildes und des Ausgangskreises<br />

ist schließlich <strong>die</strong> Konditionszahl.<br />

Beispiel 2.24 (Konditionszahl für das Skalarprodukt) Halten wir y ∈ R n fest und betrachten<br />

<strong>die</strong> Abbildung<br />

Also ist<br />

Df =<br />

f y : R n → R, f y (x) = x T y =<br />

n∑<br />

x j y j .<br />

j=1<br />

( )<br />

∂fy<br />

: j = 1, . . . , n = ( y j : j = 1, . . . , n ) = y<br />

∂x j<br />

Auf der anderen Seite ist für das obige Summationsverfahren ‖δ‖ ≤ n^u‖x‖ (Rückwärtsfehler)<br />

und damit haben wir <strong>die</strong> Abschätzung<br />

∣<br />

∣<br />

∣x T ∣∣<br />

y − s n ≤ n^u‖x‖ ‖y‖.


2.4 Summation 27<br />

Alle Fehlerabschätzungen, <strong>die</strong> auf Konditionszahlen und Rückwärtsfehlern beruhen,<br />

s<strong>in</strong>d a–priori–Abschätzungen, das heißt, sie s<strong>in</strong>d von den E<strong>in</strong>gabedaten unabhängig.<br />

E<strong>in</strong>erseits ist das vorteilhaft, weil ke<strong>in</strong>e weiteren Voraussetzungen beachtet und e<strong>in</strong>gehalten<br />

werden müssen, andererseits haben aber solche ”<br />

allgeme<strong>in</strong>en“ Aussagen immer<br />

den Nachteil, daß sie <strong>in</strong> vielen E<strong>in</strong>zelfällen zu e<strong>in</strong>er Überschätzung des Fehlers neigen.<br />

Bessere, das heißt schärfere Resultate erhält man zumeist durch <strong>die</strong> sogenannte runnig<br />

error analysis 18 , oder über statistische Methoden, <strong>die</strong> dann von e<strong>in</strong>er gewissen<br />

Verteilung der E<strong>in</strong>gangsdaten ausgehen und normalerweise Aussagen über mittlere<br />

Fehler liefern.<br />

2.4 Summation<br />

Es ist leicht zu sehen, daß für x ∈ R n der ”<br />

naive“ Summationsalgorithmus<br />

s 0 = 0 s j = s j−1 ⊕ x j , j = 1, . . . , n,<br />

zur Berechnung von x T 1 n = x 1 + · · · + x n , 1 n = (1, . . . , 1) T als Spezialfall des Skalarprodukts<br />

<strong>die</strong> Fehlerabschätzung<br />

∣ x T ∣ ∑<br />

1 n − s n nj=1<br />

∣ ∣ ∣xj ∣<br />

∣ x T 1 n ≤ n^u<br />

∣ ∑ ∣<br />

n ∣∣<br />

(2.14)<br />

j=1 x j<br />

erfüllt. Beim Aufsummieren riesiger Datensätze (z.B. <strong>in</strong> Statistiken) kann n durchaus<br />

groß werden, also ist es möglicherweise nicht sonderlich gut um das Ergebnis der Summation<br />

bestellt. Die Frage ist also: ”<br />

Kann man <strong>die</strong> Konstante n <strong>in</strong> der Fehlerschranke<br />

verbessern?“ Die Antwort ist <strong>die</strong> compensated summation von Kahan. Der Algorithmus<br />

ist allerd<strong>in</strong>gs etwas aufwendiger:<br />

s 1 = x 1 , c 1 = 0<br />

Y = x j ⊖ c j−1 , T = s j−1 ⊕ Y, c j = ( T ⊖ s j−1<br />

) ⊖ Y, sj = T, j = 2, . . . , n.<br />

Die Idee <strong>die</strong>ses Verfahrens ist, daß <strong>die</strong> Folge c j <strong>die</strong> Rundungsfehler aufsammelt und<br />

immer wieder <strong>in</strong> <strong>die</strong> Rechnung steckt und auf <strong>die</strong>se Art letztendlich kompensiert, so<br />

daß man e<strong>in</strong> wesentlich besseres Fehlerverhalten bekommt. Den Satz beweisen wir<br />

nicht, wer sich für den voll und ganz nichttrivialen Beweis <strong>in</strong>teressiert, f<strong>in</strong>det <strong>die</strong>sen<br />

<strong>in</strong> [12].<br />

Satz 2.25 (Rückwärtsfehler für Kahan–Summation) Die berechnete Summe s n der Kahan–<br />

Summationsformel erfüllt<br />

s n =<br />

n∑ ( ) (<br />

x j 1 + δj + O n^u 2) ∑ n ∣ ∣ ∣<br />

∣ xj , ∣δj ≤ 2^u, j = 1, . . . , n. (2.15)<br />

j=1<br />

j=1<br />

18 Zum<strong>in</strong>dest der Name sollte e<strong>in</strong>mal gefallen se<strong>in</strong>.


28 2 FEHLERANALYSE<br />

%% CompSum1.m<br />

%% --------------------------------------------------------<br />

%% Compensated Summation<br />

%% E<strong>in</strong>gabe:<br />

%% x Datenvektor<br />

function sum = CompensatedSum( x )<br />

xdim = length( x );<br />

S = x(1);<br />

C = 0;<br />

for i = 2:xdim<br />

Y = x(i) - C;<br />

T = S + Y;<br />

C = ( T - S ) - Y;<br />

S = T;<br />

end<br />

sum = S;<br />

endfunction<br />

Programm 2.2 CompSum1.m: Compensated Summation


2.4 Summation 29<br />

Korollar 2.26 (Vorwärtsfehler für Kahan–Summation) Die berechnete Summe s n der Kahan–<br />

Summationsformel hat den relativen Fehler<br />

∣<br />

∣x T 1 n − s n<br />

∣ ∣<br />

∣ x T 1 n<br />

∣ ∣<br />

≤<br />

(<br />

2^u + O<br />

(n^u ∑ ∣ ∣ 2)) n j=1 x j ∣ ∑ ∣<br />

n ∣∣<br />

. (2.16)<br />

j=1 x j<br />

Übung 2.8 Zeigen Sie: Man kann das Skalarprodukt mit e<strong>in</strong>em Rückwärtsfehler von<br />

3^u + O(^u 2 ) berechnen.<br />


30 3 LINEARE GLEICHUNGSSYSTEME UND NUMERISCHE LÖSUNGEN<br />

1<br />

4<br />

Breite und Länge zusammen s<strong>in</strong>d 7<br />

Handbreiten, Länge und Breite<br />

zusammen s<strong>in</strong>d 10 Handbreiten.<br />

Babylonisches Gleichungssystem <strong>in</strong><br />

zwei Unbekannten, Susa,<br />

2. Jahrtausend v. Chr<br />

L<strong>in</strong>eare Gleichungssysteme<br />

und numerische Lösungen 3<br />

E<strong>in</strong> L<strong>in</strong>eares Gleichungssystem besteht aus e<strong>in</strong>er Matrix A ∈ R m×n und e<strong>in</strong>em Vektor<br />

b ∈ R m ; das Ziel ist es, e<strong>in</strong>en Vektor x ∈ R n zu f<strong>in</strong>den, so daß<br />

Ax = b (3.1)<br />

erfüllt ist. Dieses Problem ist genau dann für alle rechten Seiten b ∈ R m lösbar, wenn<br />

A den Rang m hat, also muß, da <strong>die</strong>ser Rang ≤ max{m, n} ist, <strong>in</strong>sbesondere n ≥ m gelten.<br />

Gleichungssysteme, <strong>die</strong> aus mehr Gleichungen als Variablen bestehen, also m > n<br />

erfüllen, nennt man überbestimmt, Gleichungssysteme mit ”<br />

zu wenigen“ Gleichungen,<br />

m < n, h<strong>in</strong>gegen unterbestimmt. Die Lösung x ist genau dann e<strong>in</strong>deutig, wenn<br />

m = n ist und <strong>die</strong> (dann) quadratische Matrix A nichts<strong>in</strong>gulär oder <strong>in</strong>vertierbar ist,<br />

das heißt, wenn det A ̸= 0 ist.<br />

3.1 Beispiel für l<strong>in</strong>eare Gleichungssysteme<br />

Das e<strong>in</strong>fachste Auftreten von l<strong>in</strong>earen Gleichungssystemen <strong>in</strong> der ”<br />

Praxis“ ist im Kontext<br />

der Interpolation: Es sei F n e<strong>in</strong> n–dimensionaler Vektorraum und f 1 , . . . , f n e<strong>in</strong>e<br />

Basis von F n . Außerdem seien Punkte x 1 , . . . , x n gegeben. Das Interpolationsproblem<br />

besteht nun dar<strong>in</strong>, zu vorgegebenen Werten y 1 , . . . , y n e<strong>in</strong>e Funktion f = ∑ n<br />

j=1 a j f j zu<br />

f<strong>in</strong>den, so daß<br />

f ( x j<br />

)<br />

= yj , j = 1, . . . , n.<br />

Anders gesagt,<br />

oder eben<br />

n∑ ( )<br />

a k f k xj = yj , j = 1, . . . , n,<br />

k=1<br />

[<br />

fj (x k ) : j, k = 1, . . . , n ] T a = y. (3.2)


3.2 Normen und Konditionszahlen 31<br />

Mit e<strong>in</strong> kle<strong>in</strong> wenig Phantasie kann man das auch auf beliebige l<strong>in</strong>eare Funktionale<br />

und Operatoren auf endlichdimensionalen Vektorräumen erweitern. Die Idee ist e<strong>in</strong>fach,<br />

verwirrt aber trotzdem gerne.<br />

Bei den Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme unterscheidet man zwischen<br />

direkten Methoden (<strong>die</strong> das Problem <strong>in</strong> e<strong>in</strong>er endlichen Anzahl von Schritten<br />

lösen) und iterativen Verfahren (<strong>die</strong> sich mehr oder weniger langsam an <strong>die</strong> Lösung<br />

herantasten). Außerdem gibt es Verfahren, <strong>die</strong> <strong>die</strong> spezielle Struktur bestimmter Matrixtypen<br />

ausnutzen, um das Problem schneller oder stabiler zu lösen.<br />

Die meiste Information über das Lösen l<strong>in</strong>earer Gleichungssysteme f<strong>in</strong>det sich <strong>in</strong><br />

[13, 17], aus denen auch <strong>die</strong> Kapitel über numerische L<strong>in</strong>eare Algebra entnommen<br />

s<strong>in</strong>d.<br />

3.2 Normen und Konditionszahlen<br />

Um ”<br />

vernünftige“ Aussagen über Fehler und <strong>die</strong> ”<br />

numerische Qualität“ e<strong>in</strong>es l<strong>in</strong>earen<br />

Gleichungssystems machen zu können, benötigen wir Maße für <strong>die</strong> ”<br />

Größe“ von Vektoren<br />

und Matrizen, daher e<strong>in</strong> bißchen Information über Normen für Vektoren und<br />

Matrizen.<br />

Def<strong>in</strong>ition 3.1 E<strong>in</strong>e Abbildung ‖·‖ : R n → R heißt (Vektor–)Norm, wenn gilt<br />

1. ‖x‖ ≥ 0 und ‖x‖ = 0 dann und nur dann, wenn x = 0. (Positivität)<br />

2. ‖cx‖ = |c| ‖x‖, c ∈ R. (Positive Homogenität)<br />

3. ‖x + y‖ ≤ ‖x‖ + ‖y‖. (Dreiecksungleichung).<br />

Übung 3.1 Beweisen Sie <strong>die</strong> weniger bekannte Dreiecksungleichung nach unten“:<br />

”<br />

‖x − y‖ ≥ ‖x‖ − ‖y‖ .<br />

♦<br />

Beispiel 3.2 Klassische Beispiele für Normen s<strong>in</strong>d<br />

1. Die 1–Norm oder Manhattan–Norm<br />

‖x‖ 1<br />

=<br />

n∑<br />

∣<br />

∣ xj .<br />

j=1<br />

2. Euklidischer Abstand<br />

n∑ ∣ ∣<br />

‖x‖ 2<br />

= √ ∣x j 2 .<br />

j=1


32 3 LINEARE GLEICHUNGSSYSTEME UND NUMERISCHE LÖSUNGEN<br />

3. Die ∞–Norm, <strong>die</strong> den Worst–Case–Fehler<br />

‖x‖ ∞<br />

= max<br />

j=1,...,n<br />

∣<br />

∣ xj angibt.<br />

4. Das s<strong>in</strong>d alles Spezialfälle der sogenannten p–Normen<br />

⎛ ⎞<br />

n∑<br />

∣<br />

‖x‖ p<br />

= ⎝ ∣ xj p⎠<br />

j=1<br />

1/p<br />

, 1 ≤ p ≤ ∞. (3.3)<br />

Übung 3.2 Es sei A ∈ R n×n e<strong>in</strong>e symmetrische positiv def<strong>in</strong>ite Matrix, d.h., A T = A und<br />

x T Ax > 0, x ∈ R n \ 0. Zeigen Sie:<br />

‖x‖ A<br />

:= √ x T Ax, x ∈ R n ,<br />

ist e<strong>in</strong>e Norm und plotten Sie für e<strong>in</strong>ige A <strong>die</strong> E<strong>in</strong>heitskugeln { x : ‖x‖ A<br />

= 1 } .<br />

Analog zu Vektornormen kann man auch Matrixnormen def<strong>in</strong>ieren, <strong>in</strong>dem man 3.1<br />

e<strong>in</strong>fach wörtlich übernimmt. Möglich ist <strong>die</strong>s, weil <strong>die</strong> Matrizen ebenfalls e<strong>in</strong>en Vektorraum<br />

bilden, also ad<strong>die</strong>rt und mit Zahlen aus R multipliziert werden können. Und<br />

Normen gehören immer zu Vektorräumen.<br />

Def<strong>in</strong>ition 3.3 E<strong>in</strong>e Abbildung ‖·‖ : R n×n → R heißt Matrix–Norm, wenn<br />

1. ‖A‖ ≥ 0 und ‖A‖ = 0 dann und und nur dann, wenn A = 0.<br />

2. ‖cA‖ = |c| ‖A‖, c ∈ R.<br />

3. ‖A + B‖ ≤ ‖A‖ + ‖B‖.<br />

Beispiel 3.4 (Matrixnormen) Jetzt haben wir schon e<strong>in</strong>e viel größere Auswahl:<br />

1. Vektornormen: Man faßt <strong>die</strong> Matrix als e<strong>in</strong>en Vektor <strong>in</strong> R n2 auf und verwendet e<strong>in</strong>e<br />

beliebige Vektornorm, z.B. <strong>die</strong> ∞–Norm<br />

∣<br />

‖A‖ M<br />

= max ∣ ajk oder <strong>die</strong> 2–Norm<br />

‖A‖ F<br />

= √<br />

1≤j,k≤n<br />

n∑<br />

j,k=1<br />

∣ ajk<br />

∣ ∣<br />

2 .<br />

Die Norm ‖·‖ F<br />

heißt Frobeniusnorm und ist ausgesprochen beliebt.<br />


3.2 Normen und Konditionszahlen 33<br />

2. Operatornorm: zu e<strong>in</strong>er beliebigen Vektornorm ‖·‖ def<strong>in</strong>iert man <strong>die</strong> Operatornorm<br />

‖A‖ = max<br />

x̸=0<br />

‖Ax‖<br />

‖x‖ .<br />

Diese Norm misst, wie stark <strong>die</strong> Matrix Vektoren ”<br />

vergrößern“ kann.<br />

3. Beispiele für <strong>die</strong> Operatornormen zu den p–Normen:<br />

Spaltensummennorm:<br />

‖A‖ 1<br />

=<br />

max<br />

k=1,...,n<br />

n∑<br />

∣<br />

∣ ajk .<br />

j=1<br />

Zeilensummennorm:<br />

‖A‖ ∞<br />

= max<br />

j=1,...,n<br />

n∑<br />

∣<br />

∣ ajk .<br />

k=1<br />

Übung 3.3 Zeigen Sie: Ist 1/p + 1/q = 1, dann ist ‖A‖ p = ∥ ∥ A<br />

T ∥ ∥<br />

q<br />

.<br />

Die nächste Def<strong>in</strong>ition geht nun über den Vektorraum h<strong>in</strong>aus und berücksichtigt außerdem<br />

<strong>die</strong> Tatsache, daß Matrizen, im Gegensatz zu ”<br />

normalen“ Vektoren 19 auch multipliziert<br />

werden können, also e<strong>in</strong>e (nichtkommutative) Algebra bilden. Und vernünftiges<br />

Verhalten der Norm bezüglich <strong>die</strong>ser Multiplikation gibt es nicht immer und muss daher<br />

gefordert werden.<br />

Def<strong>in</strong>ition 3.5 (Konsistenz & Verträglichkeit)<br />

1. E<strong>in</strong>e Matrixnorm ‖ · ‖ heißt konsistent, falls<br />

‖AB‖ ≤ ‖A‖ ‖B‖ .<br />

2. E<strong>in</strong>e Matrixnorm ‖ · ‖ M und e<strong>in</strong>e Vektornorm ‖ · ‖ V heißen verträglich, wenn<br />

‖Ax‖ V<br />

≤ ‖A‖ M ‖x‖ V<br />

.<br />

♦<br />

Übung 3.4 Zeigen Sie:<br />

1. Jede Operatornorm ist konsistent und mit der zugehörigen Vektornorm verträglich.<br />

2. Die Norm<br />

ist nicht konsistent.<br />

‖A‖ =<br />

max<br />

j,k=1,...,n<br />

∣<br />

∣ ajk 19 Weil wir gerade dabei s<strong>in</strong>d: Was ist eigentlich e<strong>in</strong> Vektor?


34 3 LINEARE GLEICHUNGSSYSTEME UND NUMERISCHE LÖSUNGEN<br />

3. Es gibt ke<strong>in</strong>e Matrixnorm ‖ · ‖ so daß ‖AB‖ = ‖A‖ ‖B‖ für alle A, B ∈ R n×n .<br />

Def<strong>in</strong>ition 3.6 Die Konditionszahl e<strong>in</strong>er <strong>in</strong>vertierbaren Matrix A ∈ R n×n bezüglich der<br />

Norm ‖ · ‖ ist def<strong>in</strong>iert als<br />

∥<br />

κ(A) = ∥A −1∥ ∥ ‖A‖ .<br />

Im Falle der p–Normen schreiben wir κ p (A).<br />

Als nächstes zeigen wir, daß <strong>die</strong> so def<strong>in</strong>ierte Konditionszahl tatsächlich das erfüllt,<br />

was wir von e<strong>in</strong>er Konditionszahl nach Def<strong>in</strong>ition 2.22 erwarten.<br />

Satz 3.7 Für jede Operatornorm ‖ · ‖ gilt<br />

κ(A) = lim<br />

sup<br />

ε→0<br />

‖E‖≤ε‖A‖<br />

∥<br />

∥(A + E) −1 − A −1 ∥ ∥∥<br />

ε ‖A −1 ‖<br />

♦<br />

. (3.4)<br />

Die Konditionszahl κ(A) misst also <strong>die</strong> Konditioniertheit der Abbildung f(A) = A −1 .<br />

Für den Beweis brauchen wir erst e<strong>in</strong>e Hilfsaussage. Da zu jeder Operatornorm per<br />

Def<strong>in</strong>itionem auch e<strong>in</strong>e Vektornorm gehört, bezeichnen wir jetzt beide Normen e<strong>in</strong>fach<br />

mit ‖ · ‖ 20<br />

Lemma 3.8 Zu beliebigen Vektoren x, y ∈ R n mit ‖x‖ = ‖y‖ = 1 gibt es e<strong>in</strong>e Matrix<br />

A ∈ R n×n so daß y = Ax und ‖A‖ = 1.<br />

Beweis: Zu x existiert immer e<strong>in</strong> dualer Vektor x ′ , der durch <strong>die</strong> Eigenschaften<br />

x T x ′ ∣<br />

= 1 und max ∣z T x ′∣ ∣ = 1<br />

‖z‖=1<br />

def<strong>in</strong>iert ist, und zwar nach Satz von Hahn–Banach 21 . Dann setzen wir lediglich A =<br />

yx ′T und es ist Ax = y ( x ′T x ) = y und<br />

(<br />

∥<br />

‖A‖ = max ‖Az‖ = ∥y z T x ′)∥ ∥ ≤ ‖y‖ = 1,<br />

‖z‖=1<br />

und da ‖Ax‖ = ‖y‖ = 1, ist ‖A‖ = 1.<br />

□<br />

20 Es ist e<strong>in</strong> schöner Verständnistest, im Rest des Beweises <strong>die</strong> Unterscheidungen ‖ · ‖ V und ‖ · ‖ M für<br />

Vektor- und Operatornorm dazuzuschreiben. Viel Spass dabei!<br />

21 Das ist e<strong>in</strong> durchaus nichttriviales Resultat aus der Funktionalanalysis, das hier nur zitiert, nicht<br />

bewiesen werden soll. Interessenten sei das Buch [23] ans Herz gelegt, das e<strong>in</strong>e sehr schöne <strong>E<strong>in</strong>führung</strong><br />

<strong>in</strong> <strong>die</strong> Funktionalanalysis bietet.


3.2 Normen und Konditionszahlen 35<br />

Beweis von Satz 3.7: Aus der (formalen 22 !) Entwicklung<br />

(A + E) −1 =<br />

erhalten wir mit ‖E‖ ≤ ε‖A‖, daß<br />

((<br />

I + EA −1) ) ( −1<br />

A = A<br />

−1<br />

I + EA −1) −1<br />

= A<br />

−1<br />

(A + E) −1 − A −1 = −A −1 EA −1 + O<br />

(<br />

ε 2) .<br />

∞∑ ( (−1) j EA −1) j<br />

Daß <strong>die</strong>se Vorgehensweise für h<strong>in</strong>reichend kle<strong>in</strong>e ε korrekt ist, wird Lemma 3.11 zeigen.<br />

Wir müssen nun nachweisen, daß<br />

∥<br />

sup ∥A −1 EA −1∥ ∥<br />

∥ ∥ ∥∥A =<br />

−1 2<br />

∥ , (3.5)<br />

‖E‖≤1<br />

j=0<br />

denn dann ist<br />

sup<br />

‖E‖≤ε‖A‖<br />

∥<br />

∥(A + E) −1 − A −1 ∥ ∥∥<br />

ε ‖A −1 ‖<br />

≤ ‖A‖ ∥ ∥ A<br />

−1 ∥ ∥ 2 + O ( ε 2)<br />

ε ‖A −1 ‖<br />

∥<br />

= ‖A‖ ∥A −1∥ ∥ + O (ε) ,<br />

woraus (3.4) folgt. Nun ist ≤“ <strong>in</strong> (3.5) e<strong>in</strong>fach:<br />

” ∥<br />

∥A −1 EA −1∥ ∥<br />

∥ ∥ ∥∥A ≤<br />

−1 ∥ ∥ ‖E‖ ∥A −1∥ ∥<br />

∥ ∥ ∥∥A ≤<br />

−1 2<br />

∥ .<br />

}{{}<br />

≤1<br />

Für <strong>die</strong> Gleichheit wählen wir y ∈ R n , ‖y‖ = 1 so, daß<br />

∥<br />

∥A −1∥ ∥ ∥ ∥∥A = −1 y∥<br />

(was geht, weil wir e<strong>in</strong>e von e<strong>in</strong>er Vektornorm <strong>in</strong>duzierte Matrixnorm haben) und setzen<br />

außerdem<br />

x = A−1 y<br />

‖A −1 ‖ .<br />

Dann ist ‖x‖ = ‖y‖ = 1 und<br />

∥<br />

∥A −1 EA −1∥ ∥ ∥<br />

= max ∥A −1 EA −1 ∥<br />

z∥ ≥ ∥A −1 EA −1 ∥<br />

y∥ = ∥A −1 Ex∥<br />

‖z‖=1<br />

∥<br />

∥A −1∥ ∥ ∥ (3.6)<br />

Nach Lemma 3.8 gibt es e<strong>in</strong>e Matrix E ∈ R n×n , so daß ‖E‖ = 1 und Ex = y und somit<br />

ist ∥ ∥∥A<br />

Ex∥<br />

−1 ∥<br />

∥ = ∥A −1 ∥<br />

y∥ = ∥A −1∥ ∥ . (3.7)<br />

Setzt man (3.7) <strong>in</strong> (3.6) e<strong>in</strong>, so ergibt sich schließlich (3.5).<br />

22 Das heißt, wir betrachten Reihen ohne uns um deren Konvergenz zu kümmern – also das, wovon<br />

man <strong>in</strong> den Analysis immer geträumt hat.<br />


36 3 LINEARE GLEICHUNGSSYSTEME UND NUMERISCHE LÖSUNGEN<br />

3.3 E<strong>in</strong>e allgeme<strong>in</strong>e Fehlerabschätzung<br />

Die (Rückwärts–) Fehleranalyse wird uns später Resultate der Form<br />

 ̂x = b (3.8)<br />

für <strong>die</strong> berechnete Größe ̂x liefern, wobei <strong>die</strong> Matrix E = A − Â <strong>in</strong> e<strong>in</strong>em gewissen<br />

S<strong>in</strong>ne ”<br />

kle<strong>in</strong>“ se<strong>in</strong> wird. Aus <strong>die</strong>sen Eigenschaften läßt sich dann e<strong>in</strong>e Abschätzung<br />

für den relativen Fehler von ̂x herleiten. Zu <strong>die</strong>sem Zweck bezeichne ‖·‖ e<strong>in</strong>e beliebige<br />

Vektornorm wie auch <strong>die</strong> zugehörige Operatornorm.<br />

Satz 3.9 Es sei A ∈ R n×n <strong>in</strong>vertierbar und es gelte<br />

∥<br />

∥A −1 E∥ = ρ < 1 (3.9)<br />

sowie<br />

Dann gilt für den relativen Fehler <strong>die</strong> Abschätzung<br />

‖E‖ ≤ δ ‖A‖ . (3.10)<br />

‖̂x − x‖<br />

‖x‖<br />

≤<br />

δ<br />

1 − ρ κ(A), x ∈ Rn \ {0}. (3.11)<br />

Bemerkung 3.10 Wir können <strong>die</strong> beiden Bed<strong>in</strong>gungen (3.9) und (3.10) zu e<strong>in</strong>er ”<br />

griffigen“<br />

(aber etwas schärferen) Forderung komb<strong>in</strong>ieren, nämlich daß<br />

κ(A) < δ −1 (3.12)<br />

se<strong>in</strong> soll. In der Tat, wenn man den ”<br />

Extremfall“ δ := ‖E‖/‖A‖ annimmt 23 , dann ist auch<br />

∥<br />

ρ = ∥A −1 ∥<br />

E∥ ≤ ∥A −1∥ ∥ κ(A)<br />

‖E‖ =<br />

‖A‖<br />

‖E‖<br />

‖E‖ < δ = 1.<br />

‖A‖<br />

} {{ }<br />

=δ<br />

Man kann aber (3.12) auch so auffassen, daß das Problem nicht schlechter konditioniert se<strong>in</strong><br />

darf als <strong>die</strong> Genauigkeit, mit der  berechnet werden kann, denn ansonsten kann man (heuristisch)<br />

davon ausgehen, daß das Ergebnis der Rechnung uns<strong>in</strong>nig ist. Diese Eigenschaft wird<br />

übrigens <strong>in</strong> Programmen wie Octave oder Matlab tatsächlich überprüft 24 und das Programm<br />

liefert e<strong>in</strong>e Warnung, wenn sie nicht erfüllt ist.<br />

Um Satz 3.9 zu beweisen, erst e<strong>in</strong>mal e<strong>in</strong> paar Betrachtungen über Â.<br />

23 Was für A ̸= 0 ja ke<strong>in</strong> Problem ist.<br />

24 Allerd<strong>in</strong>gs wird dort nicht <strong>die</strong> ”<br />

exakte“ Konditionszahl bestimmt, was e<strong>in</strong>e O ( n 3) –Geschichte<br />

wäre, sondern ”<br />

nur“ e<strong>in</strong>e Näherung, <strong>die</strong> mit e<strong>in</strong>em Aufwand von O ( n 2) bestimmt werden kann. Details<br />

f<strong>in</strong>det man <strong>in</strong> [2].


3.3 E<strong>in</strong>e allgeme<strong>in</strong>e Fehlerabschätzung 37<br />

Lemma 3.11 Es sei A ∈ R n×n <strong>in</strong>vertierbar. Unter der Voraussetzung (3.9) ist auch <strong>die</strong> Matrix<br />

 = A − E <strong>in</strong>vertierbar und es gilt<br />

∥<br />

∥<br />

∥Â−1∥ ∥ ∥A −1 ∥ ≤<br />

1 − ρ . (3.13)<br />

Beweis: Wir betrachten<br />

und stellen fest, daß für N ∈ N 0<br />

(<br />

I − A E) ⎛ ⎞<br />

N∑ ( ) j −1 ⎝ A −1 E ⎠ =<br />

j=0<br />

( )<br />

 = A − E = A I − A −1 E<br />

N∑<br />

j=0<br />

(<br />

A −1 E<br />

) N+1 j ∑<br />

−<br />

Da ∥ ∥∥∥ ( ∥ N+1∥∥∥ A E) −1 ∥<br />

≤ ∥A −1 E∥ N+1 ≤ ρ N+1<br />

j=1<br />

( ) j ( N+1<br />

A −1 E = I − A E) −1 . (3.14)<br />

konvergiert <strong>die</strong> rechte Seite von (3.14) gegen I für N → ∞ und damit ist<br />

( ) −1 ∑<br />

∞ ( j<br />

I − A −1 E = A E) −1 , (3.15)<br />

weil <strong>die</strong> Reihe auf der rechten Seite absolut konvergiert:<br />

∥ (<br />

∥ −1∥∥∥ ∥ I − A E) −1 ∞∑ ( ∥∥∥∥∥ j<br />

∞∑<br />

=<br />

A E) −1 ≤ ρ j = 1<br />

∥<br />

1 − ρ .<br />

Also ist<br />

j=0<br />

j=0<br />

j=0<br />

∥<br />

∥Â−1∥ ∥ ∥ ≤<br />

∥ ∥∥A −1 ∥ ∥ ∥<br />

∥ ∥∥∥ (I − A −1 E) −1<br />

∥ ∥∥∥<br />

≤<br />

∥ A<br />

−1 ∥ ∥<br />

1 − ρ . □<br />

Beweis von Satz 3.9: ( Es ist<br />

)<br />

̂x − x = Â −1 b − Âx = Â −1 (b − (A − E)x) = Â −1 (b − Ax + Ex) = Â −1 Ex,<br />

also, mittels (3.10) und (3.13)<br />

‖̂x − x‖ ≤<br />

woraus (3.11) sofort folgt.<br />

∥<br />

∥Â−1∥ ∥ ∥ ‖E‖ ‖x‖ ≤<br />

δ<br />

1 − ρ<br />

∥<br />

∥A −1∥ ∥ ∥ ‖A‖ ‖x‖,<br />

Bemerkung 3.12 Die implizite Voraussetzung <strong>in</strong> Satz 3.9, nämlich, daß <strong>die</strong> Matrixnorm <strong>die</strong><br />

von der Vektornorm <strong>in</strong>duzierte Operatornorm ist, läßt sich bei genauerer Betrachtung etwas<br />

abschwächen: Lemma 3.11 setzt lediglich voraus, daß <strong>die</strong> Matrixnorm konsistent ist, im Beweis<br />

von Satz 3.9 verwenden wir, daß <strong>die</strong> Vektor– und <strong>die</strong> Matrixnorm verträglich s<strong>in</strong>d. Dies<br />

ist aber ohneh<strong>in</strong> e<strong>in</strong>e natürliche M<strong>in</strong>imalbed<strong>in</strong>gung, um Vektornormen über e<strong>in</strong>e Matrixnorm<br />

beschreiben zu können.<br />


38 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Vergebens predigt Salomo<br />

Die Leute machens doch nicht so.<br />

Wilhelm Busch<br />

Direkte Methoden für<br />

l<strong>in</strong>eare Gleichungssysteme 4<br />

Die ”<br />

klassische“ Methode zur Lösung von Gleichungssystemen ist <strong>die</strong> Gauß–Elim<strong>in</strong>ation,<br />

<strong>die</strong> auf der sogenannten LU–Zerlegung basiert, bei der das Lösen e<strong>in</strong>es Gleichungssystems<br />

auf das Lösen e<strong>in</strong>facherer Gleichungssysteme zurückgeführt wird.<br />

4.1 Dreiecksmatrizen<br />

Wir beg<strong>in</strong>nen mit Gleichungssystemen von besonders e<strong>in</strong>facher Form, <strong>die</strong> man mehr<br />

oder weniger sofort lösen kann.<br />

Def<strong>in</strong>ition 4.1 E<strong>in</strong>e Matrix A = [ a jk : j, k = 1, . . . , n ] ∈ R n×n heißt untere Dreiecksmatrix<br />

bzw. obere Dreiecksmatrix, wenn a jk = 0 für j < k, bzw. j > k.<br />

Übung 4.1 Zeigen Sie: das Produkt zweier unterer (oberer) Dreiecksmatrizen ist wieder<br />

e<strong>in</strong>e untere (obere) Dreiecksmatrix.<br />

♦<br />

Dreiecksmatrizen def<strong>in</strong>ieren besonders e<strong>in</strong>fach zu lösende l<strong>in</strong>eare Gleichungssysteme,<br />

bei denen man <strong>die</strong> Variablen schrittweise elim<strong>in</strong>ieren kann. Ist beispielsweise<br />

L = [ l jk : j, k = 1, . . . , n ]<br />

e<strong>in</strong>e untere Dreiecksmatrix, dann lautet das zugehörige Gleichungssystem <strong>in</strong> expliziter<br />

Form<br />

l 11 x 1 = b 1 ,<br />

l 21 x 1 + l 22 x 2 = b 2 ,<br />

.<br />

. . .. .<br />

l n1 x 1 + l n2 x 2 . . . + l nn x n = b n ,<br />

was sofort<br />

x 1 = b 1 /l 11 ,<br />

x 2 = (b 2 − l 21 x 1 ) /l 22 ,<br />

.<br />

.<br />

x n = (b n − l n1 x 1 − · · · − l n,n−1 x n−1 ) /l nn ,


4.1 Dreiecksmatrizen 39<br />

%% VorElim.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Vorwaertselim<strong>in</strong>ation, ueberschreibt b<br />

%% E<strong>in</strong>gabe:<br />

%% L untere Dreiecksmatrix<br />

%% b rechte Seite<br />

function x = VorElim( L,b )<br />

n = length( b );<br />

for j = 1:n<br />

%% Inneres Produkt!<br />

b(j) = ( b(j) - L( j,1:j-1 ) * b( 1:j-1 ) ) / L(j,j);<br />

end<br />

x = b;<br />

endfunction<br />

Programm 4.1 VorElim.m: Vorwärtselim<strong>in</strong>ation nach (4.1).<br />

ergibt. Die Formel<br />

⎛<br />

⎞<br />

∑j−1<br />

x j = ⎝b j − l jk x k<br />

⎠ /l jj , j = 1, . . . , n, (4.1)<br />

k=1<br />

bezeichnet man als Vorwärtselim<strong>in</strong>ation das Gegenstück für obere Dreiecksmatrizen<br />

U = [ u jk : j, k = 1, . . . , n ] , nämlich<br />

⎛<br />

⎞<br />

n∑<br />

x j = ⎝b j − u jk x k<br />

⎠ /u jj , j = n, . . . , 1, (4.2)<br />

k=j+1<br />

heißt Rücksubstitution.<br />

Zuerst e<strong>in</strong> paar Überlegungen zum Aufwand des Verfahrens: im j–ten Schritt von<br />

(4.1) werden j − 1 Multiplikationen, j − 1 Subtraktionen und schließlich e<strong>in</strong>e Division<br />

ausgeführt, also <strong>in</strong>sgesamt 2j − 1 Fließkommaoperationen, oder kurz flops 25 . Insgesamt<br />

s<strong>in</strong>d das also<br />

n∑<br />

n∑<br />

(2j − 1) = 2 j − n = n(n + 1) − n = n 2<br />

j=1<br />

flops und genau dasselbe gilt natürlich auch für <strong>die</strong> Rücksubstitution.<br />

25 Für float<strong>in</strong>g po<strong>in</strong>t operations<br />

j=1


40 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

%% RueckSubs.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Ruecksubstitution, ueberschreibt b<br />

%% E<strong>in</strong>gabe:<br />

%% U obere Dreiecksmatrix<br />

%% b rechte Seite<br />

function x = RueckSubs( U,b )<br />

n = length( b );<br />

b(n) = b(n) / U(n,n);<br />

for j = n-1 : -1 : 1<br />

b(j) = ( b(j) - U( j,j+1:n ) * b( j+1:n ) ) / U(j,j);<br />

end<br />

x = b;<br />

endfunction<br />

Programm 4.2 RueckSubs.m: Rücksubstitution nach (4.2).<br />

Bemerkung 4.2 Das Zählen von flops zur Messung der Komplexität numerischer Verfahren<br />

stammt aus der ”<br />

Ur- und Frühgeschichte“ des Computers, als Programmierer noch echte Programmierer<br />

und Fließkommaoperationen aufwendig waren. Andere Aufgaben, wie beispielsweise<br />

Indizierung und Speicherorganisation waren im Vergleich dazu vernachlässigbar. Dank<br />

der modernen Fließkommakoprozessoren ist <strong>die</strong>se Annahme jedoch nicht mehr richtig und daher<br />

ist das Zählen von flops auch nur noch von e<strong>in</strong>geschränktem Wert.<br />

4.2 Naive Gauß–Elim<strong>in</strong>ation<br />

Nachdem also Dreiecksmatrizen sehr e<strong>in</strong>fach zu behandeln s<strong>in</strong>d, ist es sicherlich e<strong>in</strong>e<br />

vernünftige Strategie, <strong>die</strong> Lösung e<strong>in</strong>es allgeme<strong>in</strong>en Gleichungssystems auf <strong>die</strong> Lösung<br />

von Dreieckssystemen zurückzuführen. Genauer gesagt besteht das Ziel dar<strong>in</strong>, <strong>die</strong> Matrix<br />

A <strong>in</strong><br />

A = LU<br />

zu zerlegen und dann <strong>die</strong> beiden e<strong>in</strong>facheren Systeme<br />

Ly = b und Ux = y<br />

durch Vorwärtselim<strong>in</strong>ation und Rücksubstitution zu lösen.<br />

Bemerkung 4.3 Die Berechnung e<strong>in</strong>er LU–Zerlegung hat noch e<strong>in</strong>en weiteren Vorteil: ist das<br />

Gleichungssystem Ax = b für mehrere rechte Seiten b zu lösen, so muß man <strong>die</strong> Zerlegung


4.2 Naive Gauß–Elim<strong>in</strong>ation 41<br />

nur e<strong>in</strong>mal durchführen und braucht dann nur noch Dreieckssysteme zu lösen. Wir werden<br />

sehen, daß das Zerlegen der Matrix der deutlich aufwendigere Teil des Lösungsverfahrens ist.<br />

Bevor wir das enstprechende Resultat formulieren können, erst mal e<strong>in</strong> bißchen Term<strong>in</strong>ologie.<br />

Def<strong>in</strong>ition 4.4 Für e<strong>in</strong>e Matrix A ∈ R n×n bezeichnen wir mit A m , m = 1, . . . , n, <strong>die</strong> m–te<br />

Hauptuntermatrix<br />

A m := [ a jk : j, k = 1, . . . , m ] ∈ R m×m .<br />

Die Zahl det A m bezeichnet man als m–te Hauptm<strong>in</strong>ore von A.<br />

Satz 4.5 Für A ∈ R n×n seien alle Hauptm<strong>in</strong>oren ungleich Null, d.h. det A m ̸= 0, m =<br />

1, . . . , n. Dann gibt es e<strong>in</strong>e untere Dreiecksmatrix L ∈ R n×n und e<strong>in</strong>e obere Dreiecksmatrix<br />

U ∈ R n×n so daß<br />

A = LU und l jj = 1, j = 1, . . . , n. (4.3)<br />

Bemerkung 4.6 Die LU–Zerlegung liefert uns außerdem e<strong>in</strong> wesentlich effizienteres und stabileres<br />

Verfahren, um <strong>die</strong> Determ<strong>in</strong>ante e<strong>in</strong>er Matrix zu berechnen, denn <strong>in</strong> <strong>die</strong>sem Fall ist<br />

ja<br />

det A = det (LU) = det L } {{ }<br />

=1<br />

det U =<br />

n∏<br />

u jj .<br />

j=1<br />

Generell sollte man aber von Determ<strong>in</strong>anten immer <strong>die</strong> F<strong>in</strong>ger lassen, da sie so<br />

ziemlich zum <strong>in</strong>stabilsten gehören, was man <strong>in</strong> der numerischen l<strong>in</strong>earen Algebra<br />

berechnen kann.<br />

Korollar 4.7 E<strong>in</strong>e Matrix A ∈ R n×n hat genau dann von Null verschiedenen Hauptm<strong>in</strong>oren<br />

det A m , m = 1, . . . , n, wenn es e<strong>in</strong>e untere Dreiecksmatrix L ∈ R n×n und e<strong>in</strong>e obere<br />

Dreiecksmatrix U ∈ R n×n mit l jj = 1, j = 1, . . . , n, und u jj ̸= 0, j = 1, . . . , n, gibt, so daß<br />

A = LU.<br />

Beweis: Hat A von Null verschiedene Hauptm<strong>in</strong>oren, so liefern uns Satz 4.5 und<br />

0 ̸= det A = det L det U =<br />

n∏<br />

j=1<br />

l jj<br />

} {{ }<br />

=1<br />

n∏<br />

u jj =<br />

j=1<br />

n∏<br />

u jj , (4.4)<br />

j=1<br />

<strong>die</strong> gewünschten Eigenschaften. Für <strong>die</strong> Umkehrung bemerken wir, daß A m = L m U m<br />

(siehe (4.5) für Details), also<br />

det A m =<br />

m∏<br />

u jj ̸= 0, m = 1, . . . , n.<br />

j=1


42 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Wir werden uns zwei Beweise für Satz 4.5 ansehen: der erste ist etwas ”<br />

direkter“<br />

und führt zur Doolittle–Methode, der zweite ist auf den ersten Blick etwas ”<br />

abstrakter“<br />

und wird zur Gauß–Elim<strong>in</strong>ation führen, <strong>die</strong> wir später auf beliebige Matrizen<br />

erweitern können.<br />

Beweis von Satz 4.5: Die Zerlegung A = LU ist equivalent zu<br />

□<br />

a jk =<br />

n∑<br />

l jr u rk , j, k = 1, . . . , n,<br />

r=1<br />

und da l jr = 0 falls r > j und u rk = 0 falls r > k, heißt das, daß von der Summe nicht<br />

mehr so viel übrigbleibt:<br />

a jk =<br />

m<strong>in</strong>{j,k}<br />

∑<br />

r=1<br />

l jr u rk , j, k = 1, . . . , n. (4.5)<br />

Aus <strong>die</strong>ser Indentität bauen wir sukzessive <strong>die</strong> Spalten von L und <strong>die</strong> Zeilen von U<br />

auf; dazu nehmen zuerst e<strong>in</strong>mal an, daß wir für m = 1, . . . , n <strong>die</strong> ersten m − 1 Spalten<br />

von L und <strong>die</strong> ersten m − 1 Zeilen von U, also <strong>die</strong> Matrizen<br />

̂L m−1 = [ l jk : j = 1, . . . , n, k = 1, . . . , m − 1 ] ∈ R n×m−1<br />

und<br />

Û m−1 = [ u jk : j = 1, . . . , m − 1, k = 1, . . . , n ] ∈ R m−1×n<br />

kennen und daß <strong>die</strong> beiden sich passend multiplizieren:<br />

⎡<br />

̂L m−1 Û m−1 =<br />

⎢<br />

⎣<br />

a 11 . . . a 1,m−1 a 1m . . . a 1n<br />

.<br />

. .. . . . .. .<br />

a m−1,1 . . . a m−1,m−1 a m−1,m . . . a m−1,n<br />

a m1 . . . a m,m−1 ∗ . . . ∗<br />

.<br />

. .. . . . .. .<br />

a n1 . . . a n,m−1 ∗ . . . ∗<br />

⎤<br />

. (4.6)<br />

⎥<br />

⎦<br />

Das ∗ unten rechts bedeutet, daß <strong>die</strong> Matrix hier (noch) machen darf, was sie will.<br />

Ausserdem beachten wir, daß <strong>die</strong>se Forderung für m = 1 trivialerweise erfüllt ist, weil<br />

es ja gar ke<strong>in</strong>e Bed<strong>in</strong>gung an <strong>die</strong> Matrix gibt. Nun setzen wir l mm = 1 und betrachten<br />

(4.5) für j = m und k ≥ m, also<br />

a mk =<br />

m∑<br />

l mr u rk =<br />

r=1<br />

m−1 ∑<br />

r=1<br />

l mr u rk + l<br />

}{{} mm<br />

=1<br />

u mk


4.2 Naive Gauß–Elim<strong>in</strong>ation 43<br />

Das lösen wir nach u mk auf und erhalten<br />

Wäre nun<br />

also<br />

m−1<br />

∑<br />

u mk = a mk − l mr u rk , k = m, . . . , n. (4.7)<br />

a mm =<br />

r=1<br />

m−1 ∑<br />

u mm = a mm − l mr u rm = 0,<br />

m−1<br />

∑<br />

r=1<br />

r=1<br />

)<br />

l mr u rm =<br />

(̂L m−1 Û m−1<br />

)<br />

dann wäre, zusammen mit (4.6), A m =<br />

(̂L m−1 Û m−1<br />

m<br />

mm ,<br />

, aber da <strong>die</strong>se beiden Matrizen<br />

jeweils nur Rang m − 1 haben, könnte A m nicht <strong>in</strong>vertierbar se<strong>in</strong>. Also, der langen<br />

Rede kurzer S<strong>in</strong>n: es muß u mm ̸= 0 se<strong>in</strong>.<br />

Damit können wir den Spieß umdrehen und uns (4.5) für j > m und k = m ansehen,<br />

was<br />

und damit<br />

l jm =<br />

(<br />

a jm =<br />

a jm −<br />

m∑<br />

l jr u rm =<br />

r=1<br />

m−1<br />

∑<br />

r=1<br />

m−1 ∑<br />

r=1<br />

l jr u rm + l jm u mm<br />

l jr u rm<br />

)<br />

/u mm , j = m + 1, . . . , n, (4.8)<br />

liefert. Außerdem ist das Ganze so gebaut, daß jetzt (4.6) auch mit m anstelle von m − 1<br />

gilt.<br />

□<br />

Das Doolittle–Verfahren ist <strong>in</strong> Doolittle.m realisiert.<br />

Bemerkung 4.8 Das Doolittle–Verfahren verwendet zur Berechnung e<strong>in</strong>es E<strong>in</strong>trags von L<br />

oder von U gerade den entsprechenden E<strong>in</strong>trag von A sowie vorher berechnete E<strong>in</strong>träge von L<br />

und U. Das erlaubt es, den E<strong>in</strong>trag a jk mit<br />

{<br />

ujk j ≤ k,<br />

l jk<br />

j > k<br />

zu überschreiben. Dabei wird <strong>die</strong> Matrix gemäß folgendem Schema aufgebaut:<br />

⎡<br />

⎤<br />

→ 1 →<br />

→ 3 →<br />

.<br />

A →<br />

↓ ↓ ..<br />

⎢<br />

. ⎣ 2 4 .. ⎥<br />

⎦<br />

.<br />

↓ ↓<br />

. .


44 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

%% Doolittle.m (Numerik I)<br />

%% --------------------------------------------------------<br />

%% LU-Zerlegung a la Doolittle<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

function [ L, U ] = Doolittle( A )<br />

n = length( A );<br />

L = zeros( n );<br />

U = zeros( n );<br />

for m = 1:n<br />

L( m,m ) = 1;<br />

for k = m:n<br />

U( m,k ) = A( m,k ) - L( m,1:m-1 ) * U( 1:m-1,k );<br />

end<br />

for j = m+1:n<br />

L( j,m ) = A( j,m ) - L( j,1:m-1 ) * U( 1:m-1,m );<br />

L( j,m ) = L( j,m ) / U( m,m );<br />

end<br />

end<br />

% endfunction<br />

Programm 4.3 Doolittle.m: LU–Faktorisierung nach der Methode von Doolittle,<br />

(4.7) und (4.8).


4.2 Naive Gauß–Elim<strong>in</strong>ation 45<br />

Beispiel 4.9 Sehen wir uns doch e<strong>in</strong>mal <strong>die</strong> Funktionsweise des Doolittle–Verfahrens anhand<br />

der e<strong>in</strong>fachen Matrix<br />

⎡ ⎤<br />

2 1 0<br />

A = ⎣ 1 0 1 ⎦<br />

0 1 0<br />

an. Um unsere LU–Zerlegung zu bestimmen, müssen wir also e<strong>in</strong>e 3 × 3–Matrix auffüllen.<br />

Wir beg<strong>in</strong>nen mit der ersten Zeile, deren E<strong>in</strong>träge u 11 , u 12 und u 13 sich nach (4.7) als<br />

u 1k = a 1k −<br />

0∑<br />

l 1r u rk = a 1k , k = 1, 2, 3,<br />

r=1<br />

} {{ }<br />

=0<br />

bestimmen. Also erhalten wir <strong>die</strong> erste Zeile unserer ”<br />

Ergebnismatrix“ LU 26 als<br />

⎡<br />

LU = ⎣<br />

2 1 0<br />

· · ·<br />

· · ·<br />

Jetzt also an <strong>die</strong> erste Spalte. Nach (4.8) erhalten wir, daß<br />

und somit<br />

l j1 =<br />

(<br />

a j1 −<br />

r=1<br />

} {{ }<br />

=0<br />

⎤<br />

⎦ .<br />

0∑ )<br />

l jr u r1 /u 11 = a j1<br />

⎡<br />

LU = ⎣<br />

2 1 0<br />

1<br />

2<br />

· ·<br />

0 · ·<br />

u 11<br />

, j = 2, 3,<br />

Und nun wieder e<strong>in</strong>e Zeile, bei der uns zur Abwechslung (4.7) <strong>die</strong> Regeln vorgibt:<br />

⎤<br />

⎦ .<br />

1∑<br />

u 2k = a 2k − l 2r u rk ,<br />

r=1<br />

⇒<br />

u 22 = a 22 − l 21 u 12 = −<br />

2 1,<br />

u 23 = a 23 − l 21 u 12 = a 23 = 1.<br />

Tragen wir das e<strong>in</strong>, so erhalten wir<br />

⎡<br />

LU = ⎣<br />

2 1 0<br />

1<br />

2<br />

− 1 2<br />

1<br />

0 · ·<br />

⎤<br />

⎦ .<br />

26 Im ”<br />

oberen“ Dreieck <strong>die</strong>ser Matrix, <strong>die</strong> Diagonale e<strong>in</strong>geschlossen, f<strong>in</strong>det sich U, im ”<br />

unteren“<br />

Dreieck <strong>die</strong> Marix L. Da deren Diagonalemente l jj ja sowieso alle den Wert 1 haben, brauchen wir für<br />

sie ke<strong>in</strong>en Speicherplatz zu vergeuden.


46 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Nun also zur zweiten Spalte, <strong>die</strong>, nun wieder vermittels (4.8), den Wert<br />

l 32 =<br />

erhält, ergo<br />

(<br />

a 32 −<br />

1∑<br />

r=1<br />

Wie sich <strong>die</strong> Zerlegung schließlich zu<br />

) (<br />

l 3r u r2 /u 22 = (a 32 − l 31 u 12 ) /u 22 = (1 − 0) / − 1 )<br />

= −2<br />

2<br />

⎡<br />

LU = ⎣<br />

⎡<br />

LU = ⎣<br />

2 1 0<br />

1<br />

2<br />

− 1 2<br />

1<br />

0 −2 ·<br />

2 1 0<br />

1<br />

2<br />

− 1 2<br />

1<br />

0 −2 2<br />

vervollstängigen läßt, ist jetzt ke<strong>in</strong> Rätsel mehr. Tatsächlich kann man das Doolittle–Verfahren<br />

auch ohne jedewede Form mathematischer Kenntnisse durchführen, solange man sich nur an<br />

das e<strong>in</strong>fache Schema aus Abb. 4.1 hält.<br />

⎤<br />

⎦ .<br />

⎤<br />

⎦<br />

Abbildung 4.1: Schematische Darstellung des Doolittle–Verfahrens. Bei der Bestimmung<br />

der m–ten Zeile wird der neue E<strong>in</strong>trag dadurch bestimmt, daß man vom<br />

Orig<strong>in</strong>alwert“ der Matrix A das <strong>in</strong>nere Produkt der beiden (farbigen) (m − 1)–<br />

”<br />

Vektoren am Anfang der Zeile und der Spalte, <strong>in</strong> denen sich der E<strong>in</strong>trag bef<strong>in</strong>det,<br />

abzieht. Bei der Bestimmung e<strong>in</strong>er Spalte geht das ganz genauso, nur wird<br />

zusätzlich noch durch den Wert des Diagonalelements divi<strong>die</strong>rt.<br />

Das Programm 4.4 Doolittle2.m realisiert das Doolittle–Verfahren mit sofortigem<br />

Überschreiben von A, also auf speicherplatzsparende Art.<br />

Bestimmen wir schließlich noch den Rechenaufwand des Doolittle–Verfahrens: um,<br />

für e<strong>in</strong> festes m den Wert u mk zu berechnen brauchen wir m − 1 Multiplikationen und


4.2 Naive Gauß–Elim<strong>in</strong>ation 47<br />

%% Doolittle2.m (Numerik I)<br />

%% --------------------------------------------------------<br />

%% Doolittle-Methode mit Ueberschreiben<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

function LU = Doolittle2( A )<br />

n = length( A );<br />

for m = 1:n<br />

for k = m:n<br />

A( m,k ) = A( m,k ) - A( m,1:m-1 ) * A( 1:m-1,k );<br />

end<br />

for j = m+1:n<br />

A( j,m ) = A( j,m ) - A( j,1:m-1 ) * A( 1:m-1,m );<br />

A( j,m ) = A( j,m ) / A( m,m );<br />

end<br />

end<br />

LU = A;<br />

% endfunction<br />

Programm 4.4 Doolittle2.m: Doolittle–Methode mit Überschreiben von A.


48 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

ebensoviele Subtraktionen, also <strong>in</strong>sgesamt 2m − 2 Operationen. Für <strong>die</strong> E<strong>in</strong>träge l jm<br />

s<strong>in</strong>d, wegen der Division jeweils 2m − 1 Operationen nötig. Für jedes m s<strong>in</strong>d außerdem<br />

<strong>die</strong> n − m + 1 E<strong>in</strong>träge von U und n − m E<strong>in</strong>träge von L zu berechnen (da l jj = 1), also<br />

brauchen wir für e<strong>in</strong> festes m <strong>in</strong>sgesamt<br />

(n − m + 1)(2m − 2) + (n − m)(2m − 1) = 4nm − 4m 2 + 5m − 3n − 2<br />

Summiert man nun m = 1, . . . , n, dann ergibt sich<br />

2<br />

3 n3 − 1 2 n2 + 11<br />

6 n − 2<br />

für den Rechenaufwand des Doolittle–Verfahrens.<br />

Bemerkung 4.10 Generell beträgt der Aufwand bei Faktorisierungsverfahren O ( n 3) , das<br />

wird bei der Gauß–Elim<strong>in</strong>ation auch so se<strong>in</strong>. Dies ist e<strong>in</strong>e Größenordnung mehr als bei der<br />

Vorwärtselim<strong>in</strong>ation und der Rücksubstitution.<br />

Nun zur Gauß–Elim<strong>in</strong>ation.<br />

Def<strong>in</strong>ition 4.11 E<strong>in</strong>e Gauß–Transformation oder Gauß–Matrix ist e<strong>in</strong>e Matrix der Form<br />

M k = I − ye T k ,<br />

y = [ 0<br />

ŷ<br />

⎡<br />

]<br />

=<br />

⎢<br />

⎣<br />

0.<br />

0<br />

y k+1<br />

.<br />

y n<br />

Bemerkung 4.12 (Gauß–Transformationen)<br />

⎤<br />

, ŷ ∈ R n−k , k = 1, . . . , n − 1.<br />

⎥<br />

⎦<br />

1. Gauß–Transformationen s<strong>in</strong>d untere Dreiecksmatrizen der Form<br />

⎡<br />

1<br />

M k =<br />

⎢<br />

⎣<br />

. ..<br />

1<br />

−y k+1 1<br />

.<br />

. ..<br />

−y n 1<br />

2. Die Inverse der Gauß–Transformation I − ye T k ist I + yeT k :<br />

( ) ( )<br />

I − ye T k I + ye T k = I − ye T k + yeT k − y }{{}<br />

eT k y e T k = I.<br />

=y k =0<br />

⎤<br />

.<br />

⎥<br />


4.2 Naive Gauß–Elim<strong>in</strong>ation 49<br />

3. Für e<strong>in</strong>e Matrix A <strong>in</strong> Zeilenform<br />

A =<br />

⎡<br />

⎢<br />

⎣<br />

a T 1<br />

.<br />

a T n<br />

⎤<br />

⎥<br />

⎦<br />

mit Zeilenvektoren a T 1 , . . . , aT n ist<br />

⎡<br />

M k A =<br />

⎢<br />

⎣<br />

a T 1<br />

.<br />

a T k<br />

a T k+1 − y k+1 a T k<br />

.<br />

a T n − y n a T k<br />

⎤<br />

= A − y a T k ,<br />

⎥<br />

⎦<br />

das heißt, von den Zeilen a T j , j = k + 1, . . . , n, wird das y j–fache der Zeile a T k abgezogen.<br />

Beweis von Satz 4.5: Die Strategie besteht dar<strong>in</strong>, Gauß–Transformationen<br />

M j = I − y (j) e T j , j = 1, . . . , n − 1,<br />

zu f<strong>in</strong>den, so daß<br />

M n−1 · · · M 1 A =: U<br />

e<strong>in</strong>e obere Dreiecksmatrix ist, denn dann haben wir sofort <strong>die</strong> Zerlegung<br />

A = M −1<br />

1<br />

· · · M −1<br />

n−1<br />

} {{ }<br />

=:L<br />

U. (4.9)<br />

Dazu konstruieren wir <strong>in</strong>duktiv <strong>die</strong> Gauß–Transformationen M 1 , M 2 , . . . so, daß<br />

[ ]<br />

Um B<br />

M m · · · M 1 A =<br />

m<br />

, m = 0, . . . , n − 1, (4.10)<br />

0 Ã m<br />

wobei<br />

U m ∈ R m×m , B m ∈ R m×n−m , Ã m ∈ R n−m×n−m (4.11)<br />

und (U m ) jj ̸= 0, j = 1, . . . , m. Dann ist mit à 0 = A <strong>die</strong> Bed<strong>in</strong>gung (4.10) für m = 0<br />

erfüllt. Nehmen wir also an, wir hätten für e<strong>in</strong> m ≥ 0 <strong>die</strong> Zerlegung (4.10) bestimmt.<br />

Da <strong>die</strong> Hauptm<strong>in</strong>oren <strong>die</strong> Beziehung<br />

A m+1 =<br />

(<br />

M −1<br />

1<br />

· · · M −1<br />

m<br />

)<br />

m+1<br />

[<br />

Um B m<br />

0 Ã m<br />

]m+1


50 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

erfüllen, ist also<br />

[<br />

Um B<br />

0 ̸= det A m+1 = det<br />

m<br />

= det<br />

0 Ã m<br />

]m+1<br />

[<br />

Um ∗)<br />

0<br />

(Ãm<br />

11<br />

]<br />

= ( m∏<br />

à m (U<br />

)11 m ) jj ,<br />

j=1<br />

und somit muß ( Ã m ̸= 0 se<strong>in</strong>. Damit setzen wir<br />

)11<br />

⎧<br />

⎨<br />

y (m+1)<br />

j<br />

=<br />

⎩<br />

0 j = 1, . . . , m + 1<br />

(Ãm) j−m,1<br />

(Ãm) 11<br />

j = m + 2, . . . , n<br />

und M m+1 = I − y (m+1) e T m+1<br />

und erhalten (4.10) für m + 1 anstelle von m. Bleibt nur<br />

noch zu bemerken, daß M n = I ist.<br />

□<br />

Bemerkung 4.13 Auch hier erhalten wir wieder aus der Invertierbarkeit der Hauptm<strong>in</strong>oren,<br />

daß <strong>die</strong> Diagonalelemente<br />

u jj = ( Ã m−1<br />

)11 ̸= 0<br />

se<strong>in</strong> müssen.<br />

Sehen wir uns noch kurz <strong>die</strong> Matrix L aus (4.9) an.<br />

Lemma 4.14 Für Gauß–Transformationen M j = I − y (j) e T j gilt<br />

m∏<br />

j=1<br />

M −1<br />

j<br />

= I +<br />

m∑<br />

y (j) e T j =<br />

⎢<br />

⎣<br />

j=1<br />

⎡<br />

1<br />

y (1)<br />

2<br />

y (1)<br />

. ..<br />

.<br />

.. . 1<br />

m+1<br />

. . . y (m)<br />

m+1<br />

1<br />

.<br />

. .. . . ..<br />

y (1)<br />

n . . . y (m)<br />

n 1<br />

⎤<br />

. (4.12)<br />

⎥<br />

⎦<br />

Beweis: Induktion über m, m = 1 ist klar. Außerdem ist, per Induktionsannahme<br />

⎛<br />

⎞<br />

m+1<br />

∏<br />

m∑<br />

M −1<br />

j<br />

= ⎝I + y (j) e T ⎠ ( )<br />

j I + y (m+1) e T m+1<br />

j=1<br />

j=1<br />

m+1 ∑<br />

= I +<br />

j=1<br />

y (j) e T j + m ∑<br />

Bemerkung 4.15 (Realisierung der Gauß–Elim<strong>in</strong>ation)<br />

j=1<br />

y (j) e T j<br />

} y(m+1) e T m+1<br />

{{ }<br />

.<br />

=y (m+1)<br />

j =0<br />


4.2 Naive Gauß–Elim<strong>in</strong>ation 51<br />

%% Gauss1.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Gauss-Elim<strong>in</strong>ation mit Ueberschreiben (ohne Pivot)<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

function LU = Gauss1( A )<br />

n = length( A );<br />

for m = 1:n<br />

for j = m+1:n<br />

y = A( j,m ) / A( m,m );<br />

A( j,m ) = y;<br />

A( j,m+1:n ) = A( j,m+1:n ) - y * A( m,m+1:n );<br />

end<br />

end<br />

LU = A;<br />

% endfunction<br />

Programm 4.5 Gauss1.m: Gauß–Elim<strong>in</strong>ation mit Überschreiben der Ausgangsmatrix.


52 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

1. Nach (4.12) erhalten wir <strong>die</strong> Matrix L e<strong>in</strong>fach dadurch, daß wir <strong>die</strong> zu den jeweiligen<br />

Gauß–Transformationen gehörigen Vektoren y (j) aufsammeln.<br />

2. Damit können wir <strong>die</strong> Gauß–Transformation wieder durch Überschreiben der Werte <strong>in</strong><br />

A berechnen.<br />

Beispiel 4.16 (Implementierung der Gauß–Elim<strong>in</strong>ation) Nachdem wir unseren ersten ”<br />

richtigen“<br />

Algorithmus hergeleitet haben, sehen wir uns doch e<strong>in</strong>mal an, wie man sowas <strong>in</strong> Octave<br />

umsetzt. Es ist immer gut, sich erst e<strong>in</strong>mal <strong>in</strong>teraktiv anzusehen, was man eigentlich macht,<br />

also nehmen wir uns mal e<strong>in</strong>e zufällige 27 , aber nicht zu große Matrix vor:<br />

octave> A = rand(5)<br />

A =<br />

0.9225764 0.7304416 0.0053629 0.4718802 0.5500260<br />

0.5163327 0.3250707 0.9407548 0.1423454 0.7346591<br />

0.9691272 0.2264440 0.8408027 0.0108411 0.5356029<br />

0.0816184 0.7742376 0.9738590 0.4147111 0.0869881<br />

0.5917631 0.8076336 0.5608915 0.5655123 0.9978877<br />

So, was passiert jetzt gleich wieder bei der Gauß–Elim<strong>in</strong>ation? Richtig, wir ziehen passende<br />

Vielfache der ersten Zeile von allen folgenden Zeilen ab, und <strong>die</strong> Faktoren s<strong>in</strong>d <strong>die</strong> Werte der<br />

ersten Spalte divi<strong>die</strong>rt durch den Wert ”<br />

oben l<strong>in</strong>ks“. Nachdem A(a:b,c:d) ja <strong>die</strong> Teilmatrix<br />

mit den Indexmengen (a:b) und (c:d) liefert, können wir uns recht e<strong>in</strong>fach <strong>die</strong> Zeile und <strong>die</strong><br />

Spalte holen:<br />

octave> y = A( 1,1:5 )<br />

y =<br />

0.9225764 0.7304416 0.0053629 0.4718802 0.5500260<br />

octave> x = A( 1:5,1 ) / A( 1,1 )<br />

x =<br />

1.000000<br />

0.559664<br />

1.050457<br />

0.088468<br />

0.641425<br />

Man beachte: Zeile und Spalte passen. Die Elim<strong>in</strong>ation besteht nun dar<strong>in</strong>, daß wir <strong>die</strong> Matrix 28<br />

x * y von A abziehen:<br />

27 Das ist natürlich bei jedem Ausprobieren e<strong>in</strong>e andere Matrix, also nicht erschrecken!<br />

28 Spalte mal Zeile gibt e<strong>in</strong>e Matrix!


4.2 Naive Gauß–Elim<strong>in</strong>ation 53<br />

octave> A - x*y<br />

ans =<br />

0.00000 0.00000 0.00000 0.00000 0.00000<br />

0.00000 -0.08373 0.93775 -0.12175 0.42683<br />

0.00000 -0.54085 0.83517 -0.48485 -0.04218<br />

0.00000 0.70962 0.97338 0.37296 0.03833<br />

0.00000 0.33911 0.55745 0.26284 0.64509<br />

Was ist nun mit unserer ersten Zeile passiert? Nun, wenn wir sie von sich selbst abziehen,<br />

dann muß ja Null rauskommen. Das können wir mit y(1) = 0 ganz e<strong>in</strong>fach korrigieren, aber<br />

warum sollten wir denn eigentlich überhaupt <strong>die</strong> erste Zeile verändern, denn eigentlich f<strong>in</strong>det<br />

<strong>die</strong> Elim<strong>in</strong>ation ja sowieso nur <strong>in</strong> der 4 × 4–Submatrix ”<br />

unten rechts“ statt – wenn wir uns<br />

mit x nicht blöd angestellt haben, müssen wir <strong>in</strong> der ersten Spalte ja Nullen bekommen. Der<br />

langen Rede kurzer S<strong>in</strong>n: Wir operieren nur auf der unteren Matrix und machen es e<strong>in</strong> bißchen<br />

anders.<br />

octave> y = A( 1,2:5 )<br />

y =<br />

0.7304416 0.0053629 0.4718802 0.5500260<br />

octave> x = A( 2:5,1 ) / A( 1,1 )<br />

x =<br />

0.559664<br />

1.050457<br />

0.088468<br />

0.641425<br />

elim<strong>in</strong>ieren im 4 × 4–Teil<br />

octave> A( 2:5,2:5 ) = A( 2:5,2:5 ) - x*y<br />

A =<br />

0.9225764 0.7304416 0.0053629 0.4718802 0.5500260<br />

0.5163327 -0.0837311 0.9377534 -0.1217489 0.4268294<br />

0.9691272 -0.5408538 0.8351692 -0.4848490 -0.0421760<br />

0.0816184 0.7096170 0.9733845 0.3729649 0.0383285<br />

0.5917631 0.3391105 0.5574516 0.2628368 0.6450875<br />

und schreiben das ”<br />

kle<strong>in</strong>e“ x <strong>in</strong> <strong>die</strong> erste Spalte:<br />

octave> A( 2:5, 1 ) = x<br />

A =


54 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

%% Gauss2.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Gauss-Elim<strong>in</strong>ation mit Ueberschreiben<br />

%% (ohne Pivot, aber mit mehr Matlab-Features)<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

function LU = Gauss2( A )<br />

n = length( A );<br />

for m = 1:n-1<br />

a = A( m,m );<br />

% Pivotelement<br />

y = A( m,m+1:n ); % Zeile<br />

x = A( m+1:n,m ) / a; % Spalte (normalisiert)<br />

A ( m+1:n,m+1:n ) = A( m+1:n,m+1:n ) - x*y;<br />

A ( m+1:n,m ) = x;<br />

end<br />

LU = A;<br />

% endfunction<br />

Programm 4.6 Gauss2.m: Gauß–Elim<strong>in</strong>ation nach Beispiel 4.16.<br />

0.9225764 0.7304416 0.0053629 0.4718802 0.5500260<br />

0.5596639 -0.0837311 0.9377534 -0.1217489 0.4268294<br />

1.0504574 -0.5408538 0.8351692 -0.4848490 -0.0421760<br />

0.0884679 0.7096170 0.9733845 0.3729649 0.0383285<br />

0.6414245 0.3391105 0.5574516 0.2628368 0.6450875<br />

Und das war auch schon der erste Schritt Gauß–Elim<strong>in</strong>ation mit Überschreiben! Jetzt müssen<br />

wir das nur noch auf <strong>die</strong> Teilmatrizen anwenden, das heißt, alle vorherigen Schritte wiederholen,<br />

aber eben nicht bei 1, sondern bei 2, 3, 4 anfangen. Das ist dann auch <strong>in</strong> Algorithmus 4.6<br />

implementiert.<br />

Bestimmen wir noch schnell den Aufwand der Gauß–Elim<strong>in</strong>ation: für festes m kostet<br />

<strong>die</strong> Elim<strong>in</strong>ation e<strong>in</strong>er Zeile 2(n − m) Operationen und außerdem 1 Operation für <strong>die</strong><br />

Bestimmung von y. Insgesamt s<strong>in</strong>d n − m Zeilen zu elim<strong>in</strong>ieren, was also e<strong>in</strong>en Gesamtaufwand<br />

von (n − m)(2n − 2m + 1) ergibt. Insgesamt, nach Summation über m, kostet<br />

<strong>die</strong> Gauß–Elim<strong>in</strong>ation also<br />

2<br />

3 n3 − 1 2 n2 − 1 6 n<br />

flops .


4.3 Das fertige Lösungsverfahren 55<br />

%% LoesAx-b1.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Loesen e<strong>in</strong>es Gleichungssystems (ohne Pivot)<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

%% b rechte Seite<br />

function x = LoesAxb1( A,b )<br />

LU = Gauss1a( A );<br />

y = VorElim1( LU,b );<br />

x = RueckSubs( LU,y );<br />

% endfunction<br />

Programm 4.7 LoesAxb1.m: Lösung e<strong>in</strong>es Gleichungssystems nach (4.13)–(4.15).<br />

4.3 Das fertige Lösungsverfahren<br />

Nun können wir aus den Lösungen der Teilprobleme schließlich e<strong>in</strong> Verfahren basteln,<br />

das <strong>die</strong> Lösung des Gleichungssystems Ax = b berechnet:<br />

1. Bestimme <strong>die</strong> Zerlegung<br />

A = LU (4.13)<br />

mittels Gauß–Elim<strong>in</strong>ation oder nach Doolittle.<br />

2. Bestimme <strong>die</strong> Lösung y von<br />

Ly = b (4.14)<br />

durch Vorwärtselim<strong>in</strong>ation.<br />

3. Bestimme <strong>die</strong> Lösung x von<br />

Ux = y (4.15)<br />

durch Rücksubstitution.<br />

Bemerkung 4.17 Man kann auch Vorwärtselim<strong>in</strong>ation und Rücksubstitution direkt auf <strong>die</strong><br />

<strong>in</strong> e<strong>in</strong>er e<strong>in</strong>zelnen Matrix gespeicherte LU–Zerlegung anwenden, wenn man nur <strong>die</strong> Vorwärtselimiation<br />

so modifiziert, daß sie alle Diagonalelemente als 1 annimmt, wie <strong>in</strong> Programm<br />

VorElim1.m gezeigt.


56 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

%% VorElim1.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Vorwaertselim<strong>in</strong>ation, ueberschreibt b, Diagonale = 1!!!<br />

%% E<strong>in</strong>gabe:<br />

%% L untere Dreiecksmatrix<br />

%% b rechte Seite<br />

function x = VorElim1( L,b )<br />

n = length( b );<br />

for j = 1:n<br />

b(j) = b(j) - L(j,1:j-1) * b(1:j-1);<br />

end<br />

x = b;<br />

endfunction<br />

Programm 4.8 VorElim1.m: Vorwärtselim<strong>in</strong>ation unter der Annahme, daß alle Diagonalemente<br />

von L den Wert 1 haben.<br />

4.4 Fehleranalyse<br />

In <strong>die</strong>sem Kapitel wollen wir uns nun Abschätzungen für den Rückwärtsfehler der<br />

Gauß–Elim<strong>in</strong>ation ansehen, wie man daraus e<strong>in</strong>en relativen Fehler ”<br />

bastelt“, ist ja aus<br />

Satz 3.9 bekannt.<br />

Def<strong>in</strong>ition 4.18 Zu e<strong>in</strong>er Matrix A ∈ R n×n def<strong>in</strong>ieren wir <strong>die</strong> Betragsmatrix |A| als<br />

|A| = [∣ ∣ ajk<br />

∣ ∣ : j, k = 1, . . . , n<br />

]<br />

.<br />

Für Matrizen def<strong>in</strong>ieren wir <strong>die</strong> Halbordnung 29 ≤“ als<br />

”<br />

A ≤ B ⇔ a jk ≤ b jk , j, k = 1, . . . , n.<br />

Lemma 4.19 Für A, B ∈ R n×n gilt<br />

Beweis: Für 1 ≤ j, k ≤ n,<br />

∣ ∣ ∣∣∣∣<br />

∣ ∣∣ n ∣<br />

∑ ∣∣∣∣<br />

∣(AB) jk = a jr b rk ≤<br />

r=1<br />

|AB| ≤ |A| |B|.<br />

n∑ ∣ ∣<br />

∣a jr |b rk | = (|A| |B|) jk .<br />

29 Zur Er<strong>in</strong>nerung: Bei e<strong>in</strong>er totalen Ordnung s<strong>in</strong>d je zwei Elemente x ̸= y vergleichbar, das heißt, es<br />

ist entweder x < y oder x > y, bei e<strong>in</strong>er Halbordnung muß <strong>die</strong>s nicht der Fall se<strong>in</strong>.<br />

r=1<br />


4.4 Fehleranalyse 57<br />

Bemerkung 4.20 Wir machen von nun an <strong>die</strong> generelle Annahme, daß n^u ≪ 1 ist (sonst<br />

ergibt <strong>die</strong>se Form der numerischen L<strong>in</strong>earen Algebra sowieso ke<strong>in</strong>en S<strong>in</strong>n) und schreiben nur<br />

noch O (^u 2) anstelle des (korrekteren) O ( n^u 2)<br />

Wenden wir nun das Verfahren (4.13)–(4.15) an, dann erhalten wir also zuerst e<strong>in</strong>e<br />

näherungsweise LU–Zerlegung ̂L und Û, dann e<strong>in</strong>e Näherungslösung ŷ (<strong>die</strong> aus ̂L,<br />

nicht aus L berechnet wird!) und schließlich e<strong>in</strong> berechnetes ̂x (das aus Û und ŷ berechnet<br />

wird). Die Rückwärtsfehleraussage für <strong>die</strong>ses Lösungsverfahren lautet dann wie<br />

folgt.<br />

Satz 4.21 Sei A ∈ F n×n LU–zerlegbar und ^x <strong>die</strong> mittels Gauß–Elim<strong>in</strong>ation, Vorwärtselim<strong>in</strong>ation<br />

und Rücksubstitution berechnete Lösung von Ax = b. Dann gibt es e<strong>in</strong>e Matrix Â, so<br />

daß<br />

 ̂x = b (4.16)<br />

und ∣ (<br />

∣∣ Â − A∣<br />

∣ ≤ n^u 3 |A| + 5<br />

∣<br />

∣̂L ∣<br />

∣<br />

∣Û<br />

)<br />

∣<br />

(<br />

+ O ^u 2) . (4.17)<br />

Bemerkung 4.22 Die Forderung A ∈ F n×n ist nur marg<strong>in</strong>al. Für beliebiges A bekommen<br />

wir noch e<strong>in</strong>en (fast vernachlässigbaren) Fehler E mit<br />

dazu.<br />

|E| ≤ ^u |A|<br />

Bevor wir mit dem Beweis von Satz 4.21 beg<strong>in</strong>nen, sollten wir uns kurz überlegen, was<br />

er uns eigentlich sagen will. Immerh<strong>in</strong> ist es ja das erste 30 Beispiel für e<strong>in</strong>e ernsthafte<br />

Bestimmung e<strong>in</strong>es Rückwärtsfehlers. Bei <strong>die</strong>ser Rückwärtsfehleranalyse im S<strong>in</strong>ne von<br />

Def<strong>in</strong>ition 2.20 fassen wir <strong>die</strong> Lösung x des l<strong>in</strong>earen Gleichungssystems Ax = b als<br />

Funktion x = f (A, b) von A und b auf, während das numerische Verfahren bestehend<br />

aus Gauß–Elim<strong>in</strong>ation, Vorwärtselim<strong>in</strong>ation und Rücksubstitution uns den berechneten<br />

Wert ̂x = ̂f (A, b) liefert. Nun schieben wir alle Rundungsfehler<br />

)<br />

auf den ersten Parameter<br />

A und bestimmen e<strong>in</strong>e Matrix Â, so daß ̂x = f<br />

(Â, b ist, und dann schätzen<br />

wir ab, <strong>in</strong>wieweit sich A und  unterscheiden – das ist gerade (4.17). Daß alle Fehler<br />

ausschließlich auf A geschoben werden ist zuerst e<strong>in</strong>mal total willkürlich 31 , zum<strong>in</strong>dest<br />

aus der Sicht der Rückwärtsfehleranalyse könnten wir genausogut auch e<strong>in</strong>en Teil<br />

der Rundungsfehler als Störung von b <strong>in</strong>terpretieren. Es gibt allerd<strong>in</strong>gs e<strong>in</strong>en guten<br />

Grund, das nicht zu machen: Die Lösung ist ja x = A −1 b und so gesehen können<br />

wir unser Problem genausogut als numerische Invertierung von A und folgende exakte<br />

Multiplikation von b auffassen und <strong>die</strong> Konditionszahl <strong>die</strong>ser Operation ist gerade<br />

κ(A), also auch e<strong>in</strong>e Größe, <strong>die</strong> wir ”<br />

kennen“.<br />

30 Und glücklicherweise auch e<strong>in</strong>zige.<br />

31 Aber das ist <strong>die</strong> Auswahl von Sündenböcken eigentlich immer


58 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Bleibt noch <strong>die</strong> Frage, wie man sowas macht, wie man Rückwärtsfehler e<strong>in</strong>es Verfahrens<br />

bestimmt. Die generelle Vorgehensweise ist eigentlich immer <strong>die</strong>selbe: Man<br />

geht se<strong>in</strong> Verfahren Schritt für Schritt durch und bestimmt für jeden <strong>die</strong>ser Schritte <strong>die</strong><br />

Rundungsfehler beziehungsweise e<strong>in</strong>e möglichst scharfe obere Schranke für <strong>die</strong>se. Das<br />

ist auch schon <strong>die</strong> Idee des nun folgenden Beweises, alles weitere ist Handwerk und<br />

e<strong>in</strong>e sorgfältige Analyse des Verfahrens; e<strong>in</strong> weiterer Vorteil e<strong>in</strong>er Rundungsfehleranalyse<br />

ist es tatsächlich, daß man dabei neben gesicherten Fehleraussagen auch oftmals<br />

Schwachstellen oder kritische Punkte des Algorithmus f<strong>in</strong>det.<br />

Der Beweis selbst f<strong>in</strong>det sich <strong>in</strong> Anhang A.1.<br />

4.5 Pivotsuche<br />

Was sagt uns Satz 4.21 nun über <strong>die</strong> numerische Stabilität der Gauß–Elim<strong>in</strong>ation? Nun,<br />

E<strong>in</strong>setzen <strong>in</strong> <strong>die</strong> allgeme<strong>in</strong>e Fehlerabschätzung (3.9) ergibt das folgende Resultat.<br />

Korollar 4.23 Für e<strong>in</strong>e Vektornorm ‖ · ‖ und e<strong>in</strong>e konsistente, mit der Vektornorm verträgliche<br />

und vernünftige“ 32 Matrixnorm sei γ so gewählt, daß<br />

” ∣<br />

∣<br />

∥ ∣̂L ∣ ∣Û ∣ ∥ ≤ γ ‖A‖ . (4.18)<br />

Dann ist<br />

‖^x − x‖<br />

‖x‖<br />

vorausgesetzt, daß n^u (3 + 5γ) κ(A) < 1.<br />

≤<br />

n^u (3 + 5γ)<br />

κ(A), x ̸= 0, (4.19)<br />

1 − n^u (3 + 5γ) κ(A)<br />

Bemerkung 4.24 Setzt man B := |A|, dann ist |A| ≤ |B| ≤ |A|, also, für e<strong>in</strong>e monotone<br />

Matrixnorm, ‖A‖ ≤ ‖B‖ ≤ ‖A‖ und damit ist ‖ |A| ‖ = ‖A‖. Wegen<br />

∣<br />

∣<br />

∣<br />

∣<br />

∣̂L ∣ ∣Û ∣ ≥ ∣̂LÛ ∣ = ∣Â ∣<br />

wird γ <strong>in</strong> (4.18) e<strong>in</strong>en Wert > 1 haben.<br />

Leider kann der Wert γ sehr schnell sehr groß werden.<br />

Beispiel 4.25 Für B = 10, m = 3 und abschneidende Arithmetik wird <strong>die</strong> Matrix<br />

[ .100 × 10<br />

−2<br />

.100 × 10<br />

A =<br />

1 ]<br />

.100 × 10 1 .200 × 10 1<br />

durch Gauß–Elim<strong>in</strong>ation zerlegt <strong>in</strong><br />

̂L =<br />

[ .100 × 10<br />

1<br />

.000 × 10 0 ]<br />

.100 × 10 4 .100 × 10 1 , Û =<br />

[ .100 × 10<br />

−2<br />

.100 × 10 1 ]<br />

.000 × 10 0 −.100 × 10 4 .<br />

32 Der korrekte Begriff heisst monotone Matrixnorm: |A| ≤ |B| ⇒ ‖A‖ ≤ ‖B‖


4.5 Pivotsuche 59<br />

Dann ist<br />

aber<br />

̂LÛ =<br />

∣<br />

∣̂L ∣<br />

[ .100 × 10<br />

−2<br />

.100 × 10 1 ]<br />

.100 × 10 1 .000 × 10 0 ,<br />

∣<br />

∣Û<br />

∣ =<br />

[ .001 1<br />

1 2000<br />

Der E<strong>in</strong>trag ”<br />

rechts unten“, nämlich 2000, ist übrigens von der Größenordnung 20 ^u −1 , da<br />

^u = B −2 = 1/100.<br />

Wo liegt nun das Problem? Normalerweise werden bei der Gauß–Elim<strong>in</strong>ation Vielfache<br />

von Zeilen von A von ”<br />

weiter unten liegenden“ Zeilen abgezogen. Dieses Vielfache<br />

wird dann betraglich sehr groß, wenn der (Diagonal–) Wert, durch den divi<strong>die</strong>rt wird,<br />

sehr kle<strong>in</strong> wird. Daher empfiehlt es sich, Strategien zu suchen, <strong>die</strong> den Divisor nicht<br />

zu kle<strong>in</strong> werden lassen.<br />

Def<strong>in</strong>ition 4.26 Das Element a 11 e<strong>in</strong>er Matrix A ∈ R n×n bezeichnet man als Pivotelement.<br />

Def<strong>in</strong>ition 4.27 E<strong>in</strong>e Matrix P ∈ R n×n heißt Permutationsmatrix, wenn<br />

]<br />

P ∈ {0, 1} n×n<br />

und<br />

n∑<br />

p rk =<br />

r=1<br />

n∑<br />

p jr = 1, j, k = 1, . . . , n. (4.20)<br />

r=1<br />

Die Vertauschungsmatrix P[j, k], j, k = 1, . . . , n, ist def<strong>in</strong>iert als<br />

⎡<br />

⎤<br />

1<br />

. .. 1<br />

0 1<br />

1<br />

P[j, k] =<br />

. .. = I − ( ) ( ) T<br />

e j − e k ej − e k 1<br />

1 0<br />

1<br />

⎢<br />

⎥<br />

⎣<br />

⎦<br />

. ..<br />

1<br />

Wir bezeichnen mit<br />

Π n = {P[j, k] : 1 ≤ j < k ≤ n}<br />

<strong>die</strong> Menge aller Vertauschungsmatrizen. Diese erzeugen dann auch <strong>die</strong> (multiplikative) Gruppe 33<br />

der Permutationsmatrizen.<br />

33 Jede Permutation hat e<strong>in</strong>e Inverse und das Produkt zweier Permutationen ist wieder e<strong>in</strong>e Permutation.


60 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Übung 4.2 Zeigen Sie:<br />

1. Jede Permutationsmatrix P ist als Produkt von Vertauschungsmatrizen darstellbar<br />

und jedes Produkt<br />

k∏<br />

P j , P j ∈ Π n , k ∈ N,<br />

j=1<br />

ist wieder e<strong>in</strong>e Permutationsmatrix.<br />

2. Die Menge der Permutationsmatrizen bildet e<strong>in</strong>e Gruppe.<br />

Bemerkung 4.28 Für P = P[j, k] ∈ Π n und A ∈ R n×n ist PA <strong>die</strong>jenige Matrix, bei der <strong>die</strong><br />

Zeilen j und k von A vertauscht werden und AP <strong>die</strong>jenige Matrix, bei der <strong>die</strong> Spalten j und<br />

k von A vertauscht werden. Außerdem ist P 2 = I für jedes P ∈ Π n – e<strong>in</strong>e l<strong>in</strong>eare Abbildung<br />

mit <strong>die</strong>ser Eigenschaft bezeichnet man als Projektion.<br />

Damit haben wir das allgeme<strong>in</strong>e Resultat zur Gauß–Elim<strong>in</strong>ation.<br />

Satz 4.29 Sei A ∈ R n×n <strong>in</strong>vertierbar. Dann gibt es Permutationsmatrix P ∈ R n×n , e<strong>in</strong>e<br />

untere Dreiecksmatrix L ∈ R n×n mit l jj = 1 und e<strong>in</strong>e obere Dreiecksmatrix U ∈ R n×n , so<br />

daß<br />

PA = LU. (4.21)<br />

Korollar 4.30 E<strong>in</strong>e Matrix A ∈ R n×n ist genau dann <strong>in</strong>vertierbar, wenn es e<strong>in</strong>e Permutationsmatrix<br />

P (d.h., e<strong>in</strong>e Umordnung der Zeilen) gibt, so daß alle Hauptm<strong>in</strong>oren (PA) m ,<br />

m = 1, . . . , n, von PA <strong>in</strong>vertierbar s<strong>in</strong>d.<br />

♦<br />

Beweis: Korollar 4.7 und Satz 4.29.<br />

□<br />

Bemerkung 4.31 (Lösungsverfahren)<br />

1. Da Ax = b äquivalent zu Pb = PAx = LUx ist, können wir, sobald <strong>die</strong> LU–Zerlegung<br />

und P bestimmt s<strong>in</strong>d, das gesuchte x wieder über <strong>die</strong> Gleichungssysteme Ly = Pb, Ux =<br />

y bestimmen.<br />

2. Da Permutationen exakt bestimmt werden können 34 , ist <strong>die</strong> Fehleranalyse von (4.21)<br />

exakt <strong>die</strong>selbe wie <strong>die</strong> für <strong>die</strong> naive Gauß–Elim<strong>in</strong>ation.<br />

34 Es wird ja nichts gerechnet, nur umgestellt, und wenn dabei Rundungsfehler auftreten würden,<br />

dann wäre etwas ganz gewaltig faul.


4.5 Pivotsuche 61<br />

3. Satz 4.29 ergibt als Verfahren <strong>die</strong> Gauß–Elim<strong>in</strong>ation mit Spaltenpivotsuche, alternativ<br />

könnte man auch Zerlegungen<br />

Zeilenpivotsuche AQ = LU, Q ∈ Π n ,<br />

Totalpivotsuche PAQ = LU, P, Q ∈ Π n<br />

(4.22)<br />

untersuchen. Die zugehörigen Lösungsmethoden s<strong>in</strong>d<br />

4. Aus det P = 1 und (4.21) folgt, daß<br />

Ly = b, Uz = y, x = Qz,<br />

Ly = Pb, Uz = y, x = Qz.<br />

0 ̸= det A = (det P) −1<br />

} {{ }<br />

=1<br />

det L } {{ }<br />

=1<br />

det U =<br />

s∏<br />

u jj ,<br />

j=1<br />

also u jj ̸= 0, j = 1, . . . , n.<br />

Beweis von Satz 4.29: Wir gehen im wesentlichen wie im ”<br />

naiven“ Fall (zweiter Beweis<br />

von Satz 4.5) vor und konstruieren wie dort Gauß–Transformationen M j und Permutationsmatrizen<br />

P j ∈ Π n , j = 1, . . . , n, so daß<br />

A (m) := M m P m · · · M 1 P 1 A =<br />

[ ]<br />

Um B m<br />

, m = 0, . . . , n, (4.23)<br />

0 Ã m<br />

wobei U m , B m und à m wie <strong>in</strong> (4.11) s<strong>in</strong>d. 35 Nehmen wir also an, wir hätten für e<strong>in</strong><br />

m ≥ 0 so e<strong>in</strong>e Zerlegung (für m = 0 ist <strong>die</strong>s ke<strong>in</strong>e Bed<strong>in</strong>gung, also wieder mal e<strong>in</strong><br />

trivialer Induktionsanfang), dann betrachten wir <strong>die</strong> erste Spalte von à m und wählen<br />

k so, daß<br />

|ã k1 | ≥ ∣ ∣ãj1<br />

∣ ∣ , j = 1, . . . , n − m. (4.24)<br />

Ist ã k1 = 0, dann hat A (m) <strong>die</strong> Form<br />

⎡<br />

A (m) = ⎣<br />

U m b B<br />

0 0 c T<br />

0 0 Ã<br />

⎤<br />

⎦<br />

und damit bestenfalls den Rang n − 1, ist aber auf ke<strong>in</strong>en Fall <strong>in</strong>vertierbar, was aber<br />

nach der Voraussetzung ausgeschlossen ist. Ansonsten setzen wir P m+1 = P[m + 1, m +<br />

k], das heißt<br />

[ ]<br />

PA (m) Um B<br />

=<br />

m<br />

, C := P[1, k]Ã<br />

0 C m ,<br />

m } {{ }<br />

∈Π n<br />

35 Dies ist genau das Gegenstück zu (4.10).


62 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

sowie<br />

{<br />

y (m+1) 0, j = 1, . . . , m + 1<br />

j<br />

= c j−m,1<br />

c 11<br />

, j = m + 2, . . . , n,<br />

und M m+1 = I − y (m+1) e T m+1<br />

. Da <strong>in</strong> der Matrix C das betragsgrößte Element der ersten<br />

Spalte an c 11 stand, ist <strong>in</strong>sbesondere<br />

∣<br />

∣y (m+1)<br />

∣ ≤ 1. (4.25)<br />

Außerdem ist, genau wie <strong>in</strong> der naiven Gauß–Elim<strong>in</strong>ation nun<br />

[ ]<br />

A (m+1) = M m+1 P m+1 A (m) Um+1 B<br />

=<br />

m+1<br />

,<br />

0 Ã m+1<br />

j<br />

so daß <strong>die</strong> Zerlegung aus (4.23) auf den Fall m + 1 erweitert ist. Nach n Schritten haben<br />

wir dann also, daß<br />

M n P n · · · M 1 P 1 A = U, M n = P n = I, (4.26)<br />

und damit ist A = (M n−1 P n−1 · · · M 1 P 1 ) −1 U. Was wir noch zeigen müssen, ist, daß es<br />

e<strong>in</strong>e untere Dreiecksmatrix L ∈ R n×n und e<strong>in</strong>e Permutation P gibt, so daß<br />

denn dann ist<br />

(M n−1 P n−1 · · · M 1 P 1 ) −1 = P 1 M −1<br />

1<br />

· · · P n−1 M −1<br />

n−1<br />

= PL, (4.27)<br />

P −1 A = P −1 P 1 M −1<br />

1<br />

· · · P n−1 M −1<br />

n−1 U = P−1 PLU = LU (4.28)<br />

und natürlich ist P −1 auch wieder e<strong>in</strong>e Permutation.<br />

Bleibt also nur noch (4.27); das funktioniert, weil wir Gauß–Transformationen und<br />

Permutationen <strong>in</strong> e<strong>in</strong>em gewissen S<strong>in</strong>ne vertauschen können, solange nur <strong>die</strong> Indizes<br />

zusammenpassen. Dazu schreiben wir M j = M j<br />

(y (j)) und verwenden <strong>die</strong> Indentität<br />

M j<br />

(<br />

y (j)) P [k, l] = P [k, l] M j<br />

(P [k, l] y (j)) , 1 ≤ j < k < l ≤ n, (4.29)<br />

aus der (4.27) unmittelbar folgt. Aber auch (4.29) ist nicht schwer zu beweisen: unter<br />

Verwendung der Kurzschreibweise y = y (j) , M = M j<br />

(y (j)) und P = P[k, l] erhalten<br />

wir, daß<br />

( )<br />

PMP = P I − y e T j<br />

P = P 2<br />

}{{}<br />

=I<br />

− (Py) e T j<br />

(I − (e k − e l ) (e k − e l ) T )<br />

} {{ }<br />

= I − (Py) e T j + (Py) ( e T j<br />

} {{ }<br />

e k − e T j<br />

}{{}<br />

e )<br />

l (ek − e l ) T = M (Py) ,<br />

}{{}<br />

=M(Py)<br />

=0 =0<br />

und das war’s dann auch, wenn man bedenkt, daß P = P −1 und damit MP = PM(Py)<br />

ist.<br />

□<br />

=P


4.5 Pivotsuche 63<br />

Beispiel 4.32 Wir betrachten 36 <strong>die</strong> Matrix<br />

⎡<br />

A = ⎣<br />

1 0 0<br />

2 1 3<br />

4 2 1<br />

und führen <strong>die</strong> Gauß–Elim<strong>in</strong>ation mit Spaltenpivotsuche von Hand durch. Das Pivotelement<br />

<strong>in</strong> der ersten Spalte ist natürlich a 13 , also zerlegen wir<br />

⎡<br />

P[1, 3] A = ⎣<br />

0 0 1<br />

0 1 0<br />

1 0 0<br />

⎤ ⎡<br />

⎦ ⎣<br />

⎤<br />

⎦<br />

1 0 0<br />

2 1 3<br />

4 1 1<br />

⎤<br />

⎡<br />

⎦ = ⎣<br />

4 2 1<br />

2 1 3<br />

1 0 0<br />

⎤<br />

⎦<br />

<strong>in</strong><br />

⎡<br />

M 1 P[1, 3] A = ⎣<br />

1<br />

−<br />

2 1 1<br />

− 1 4<br />

0 1<br />

⎤ ⎡<br />

⎦ ⎣<br />

4 2 1<br />

2 1 3<br />

1 0 0<br />

⎤<br />

⎡<br />

⎦ = ⎣<br />

4 2 1<br />

0 0<br />

5<br />

2<br />

0 − 1 2<br />

− 1 4<br />

⎤<br />

⎦ .<br />

Jetzt müssen wir sogar vertauschen und erhalten<br />

⎡<br />

P[2, 3]M 1 P[1, 3] A = ⎣<br />

was schon e<strong>in</strong>e obere Dreiecksmatrix ist. Also ist<br />

A = P[1, 3] −1<br />

} {{ }<br />

=P[1,3]<br />

M −1<br />

1<br />

P[2, 3] −1<br />

} {{ }<br />

=P[2,3]<br />

⎤<br />

4 2 1<br />

0 − 1 2<br />

− 1 ⎦<br />

4<br />

,<br />

5<br />

0 0 2<br />

⎡<br />

⎣<br />

⎤<br />

4 2 1<br />

0 − 1 2<br />

− 1 ⎦<br />

4<br />

,<br />

5<br />

0 0 2<br />

wobei<br />

P[1, 3]M −1<br />

1 P[2, 3] = ⎣<br />

⎡<br />

0 0 1<br />

0 1 0<br />

1 0 0<br />

⎤ ⎡<br />

⎦ ⎣<br />

1<br />

1<br />

2<br />

1<br />

1<br />

⎤ ⎡<br />

⎦ ⎣<br />

4<br />

0 1<br />

⎡ ⎤ ⎡ ⎤ ⎡<br />

0 0 1 1 0 0<br />

= ⎣ 0 1 0 ⎦ ⎣ 0 0 1 ⎦ ⎣<br />

1 0 0 0 1 0<br />

⎡ ⎤<br />

1<br />

= P[1, 3] P[2, 3] ⎣ 1<br />

4<br />

1 ⎦ .<br />

1<br />

2<br />

0 1<br />

1 0 0<br />

0 0 1<br />

0 1 0<br />

1<br />

1<br />

4<br />

1<br />

1<br />

2<br />

0 1<br />

⎤<br />

⎦<br />

⎤<br />

⎦<br />

36 Es wurde mal irhendwann <strong>in</strong> der Vorlesung e<strong>in</strong> Beispiel ”<br />

mit Zahlen“ geünscht.


64 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Die entscheidende Aktion der neuen“ Gauß–Elim<strong>in</strong>ation ist <strong>die</strong> Spaltenpivotsuche<br />

”<br />

<strong>in</strong> (4.24): man bestimmt e<strong>in</strong>e Permutation P m+1 = P[m + 1, k], k ≥ m + 1, so daß<br />

(<br />

∣ ∣ P m+1 A (m)) ∣∣∣ m+1,m+1∣ (P ≥ m+1 A (m)) j,m+1∣ , j = m + 2, . . . , n. (4.30)<br />

Analog bestimmt man bei der Zeilenpivotsuche e<strong>in</strong>e Permutation Q m+1 = P[m +<br />

1, k ′ ], k ′ ≥ m + 1, so daß<br />

)<br />

∣ ∣<br />

(A (m) ∣∣∣ ( )<br />

Q m+1 ∣ ≥ A (m) Q m+1 ∣ , j = m + 2, . . . , n, (4.31)<br />

m+1,m+1<br />

m+1,j<br />

und bei der Totalpivotsuche sogar zwei Permutationen P m+1 = P[m + 1, k], Q m+1 =<br />

P[m + 1, k ′ ], k, k ′ ≥ m + 1, so daß<br />

)<br />

∣ ∣<br />

(P m+1 A (m) ∣∣∣ (<br />

∣ ∣∣∣<br />

Q m+1 ∣ ≥ P m+1 A (m) Q m+1 , j, j<br />

)j,j ′ = m + 2, . . . , n. (4.32)<br />

′<br />

m+1,m+1<br />

Wichtig ist, daß der Suchaufwand bei der Totalpivotsuche wesentlich höher ist, nämlich<br />

quadratisch <strong>in</strong> jedem Schritt, und deswegen mit e<strong>in</strong>em O(n 3 ) zur Komplexität des<br />

Verfahrens beiträgt. Da das <strong>die</strong>selbe Größenordnung wie <strong>die</strong> Zerlegung selbst ist und<br />

da Vergleiche nicht wesentlich billiger s<strong>in</strong>d als arithmetische Operationen, vom Speicherzugriff<br />

ganz zu schweigen 37 .<br />

Die Gauß–Elim<strong>in</strong>ation mit Spaltennpivotsuche ist <strong>in</strong> GaussSP.m realisiert, das endgültige<br />

Lösungsverfahren unter Berücksichtigung der Permutation <strong>in</strong> LoesAxb2.m.<br />

Der e<strong>in</strong>zige Unterschied zur Gauß–Elim<strong>in</strong>ation ohne Pivotsuche besteht dar<strong>in</strong>, daß<br />

bei der Pivotsuche Zeilen vertauscht werden müssen und <strong>die</strong> entsprechende Permutationsmatrix<br />

zu speichern ist. Diese beiden Operationen s<strong>in</strong>d natürlich exakt durchführbar.<br />

Daher haben wir sofort <strong>die</strong> folgende Fehleraussage.<br />

Korollar 4.33 Sei A ∈ F n×n und ^x <strong>die</strong> mittels Gauß–Elim<strong>in</strong>ation mit Spaltenpivotsuche,<br />

Vorwärtselim<strong>in</strong>ation und Rücksubstitution berechnete Lösung von Ax = b. Dann gibt es e<strong>in</strong>e<br />

Matrix Â, so daß<br />

 ^x = b (4.33)<br />

und ∣ (<br />

∣∣ Â − A∣<br />

∣ ≤ n^u 3 |A| + 5<br />

Bemerkung 4.34 (Beliebte Mißverständnisse)<br />

∣<br />

∣̂L ∣<br />

∣<br />

∣Û<br />

1. ”<br />

Pivotsuche liefert immer genauere Ergebnisse“<br />

Die Matrix<br />

⎡<br />

A = ⎣<br />

1 2 3<br />

2 3 4<br />

3 4 5<br />

)<br />

∣<br />

⎤<br />

⎦<br />

(<br />

+ O ^u 2) . (4.34)<br />

37 Heutzutage (2013) dauern tatsächlich Speicherzugriffe oftmals länger als arithmetische Berechnungen,<br />

den Arithmetikkomponenten der Prozessoren sei dank.


4.5 Pivotsuche 65<br />

%% GaussSP.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Gauss-Elim<strong>in</strong>ation mit Ueberschreiben, Spaltenpivotsuche<br />

%% und Matlab-Features<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

function [ LU, p ] = GaussSP( A )<br />

n = length( A );<br />

p = [1:n];<br />

for m = 1:n<br />

piv = abs( A(m,m) );<br />

pivj = m;<br />

for j = m+1:n<br />

if abs( A(j,m) ) > piv<br />

piv = abs( A(j,m) );<br />

pivj = j;<br />

end<br />

end<br />

% Suche Pivot<br />

% Vertausche<br />

j = p( m ); p( m ) = p( pivj ); p( pivj ) = j;<br />

x = A( m,: ); A( m,: ) = A( pivj,: ); A( pivj,: ) = x;<br />

% Elim<strong>in</strong>iere<br />

w = A( m,m+1:n );<br />

for j = m+1:n<br />

A( j,m ) = A( j,m ) / A( m,m );<br />

A( j,m+1:n ) = A( j,m+1:n ) - A( j,m ) * w;<br />

end<br />

end<br />

LU = A;<br />

% endfunction<br />

Programm 4.9 GaussSP.m: Gauß–Elim<strong>in</strong>ation mit Spaltenpivotsuche. Der Vektor p<br />

enthält <strong>die</strong> Permutation: k = p(j) bedeutet, daß Pe k = e j .


66 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

%% LoesAxb2.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Loesen e<strong>in</strong>es Gleichungssystems (mit Pivot)<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

%% b rechte Seite<br />

function x = LoesAxb2( A,b )<br />

[ LU,p ] = GaussSP( A );<br />

for j = 1:length(A)<br />

bb( j ) = b( p(j) );<br />

end<br />

y = VorElim1( LU,bb );<br />

x = RueckSubs( LU,y );<br />

% endfunction<br />

Programm 4.10 LoesAxb2.m: Lösung e<strong>in</strong>es Gleichungssystems vermittels Gauß–<br />

Elim<strong>in</strong>ation mit Spaltenpivotsuche.<br />

ist s<strong>in</strong>gulär, was e<strong>in</strong>e Gauß–Elim<strong>in</strong>ation ohne Pivotsuche auch erkennen würde, <strong>die</strong> (mit<br />

Überschreiben) <strong>die</strong> Folge<br />

⎡<br />

1 2 3<br />

⎤<br />

⎡<br />

1 2 3<br />

⎤<br />

A (1) = ⎣ 2 −1 −2 ⎦ → A (2) = ⎣ 2 −1 −2 ⎦<br />

3 −2 −4<br />

3 2 0<br />

liefert. Duch <strong>die</strong> Pivotsuche wird aber zuerst durch 3 geteilt und <strong>die</strong> dabei entstehenden<br />

Rundungsfehler sorgen dafür, daß <strong>die</strong> Matrix ”<br />

e<strong>in</strong> bißchen <strong>in</strong>vertierbar“ aber lausig<br />

konditioniert wird.<br />

2. ”<br />

Durch Pivotsuche wird das Produkt |L| |U| kle<strong>in</strong>er“<br />

Wir betrachten <strong>die</strong> Matrix<br />

⎡<br />

⎤ ⎡<br />

9<br />

10<br />

0 0<br />

⎣ 1 100 100 ⎦ = ⎣<br />

0 0 1<br />

1<br />

10<br />

9<br />

1<br />

0 0 1<br />

⎤<br />

⎦<br />

⎡<br />

⎣<br />

9<br />

10<br />

0 0<br />

100 100<br />

1<br />

Insbesondere ist A = |L| |U|. Mit Pivotsuche müssen wir <strong>die</strong> Zeilen 1 und 2 vertauschen<br />

und erhalten <strong>die</strong> LU–Zerlegung<br />

⎡<br />

⎤ ⎡ ⎤ ⎡<br />

⎤<br />

1 100 100 1<br />

1 100 100<br />

⎣ 9<br />

10<br />

0 0 ⎦ = ⎣ 9<br />

10<br />

1 ⎦ ⎣ −90 −90 ⎦<br />

0 0 1 0 0 1<br />

1<br />

⎤<br />

⎦ .


4.6 Verbesserung der Genauigkeit – Skalierung 67<br />

und<br />

⎡<br />

|L| |U| = ⎣<br />

1<br />

9<br />

10<br />

1<br />

0 0 1<br />

⎤<br />

⎦<br />

⎡<br />

⎣<br />

1 100 100<br />

90 90<br />

1<br />

⎤<br />

⎡<br />

⎦ = ⎣<br />

1 100 100<br />

9<br />

10<br />

180 180<br />

0 0 1<br />

Merke: Zeilenpivotsuche sorgt nur dafür, daß alle E<strong>in</strong>träge von |L| e<strong>in</strong>en Wert ≤ 1 haben.<br />

|U| kann dafür ganz nett wachsen.<br />

4.6 Verbesserung der Genauigkeit – Skalierung<br />

E<strong>in</strong>e typische Fehlerquelle für l<strong>in</strong>eare Gleichungssysteme besteht <strong>in</strong> schlechter Skalierung,<br />

bei der verschiedenen Gleichungen <strong>in</strong> verschiedenen Skalen (beispielsweise <strong>in</strong> m und<br />

cm) angegeben werden, was zu Gleichungssystemen der Form<br />

[ 100 0<br />

0 1<br />

]<br />

x =<br />

[ 100<br />

1<br />

führt – <strong>die</strong> Lösung ist natürlich [1, 1] T , aber <strong>die</strong> Gleichungen s<strong>in</strong>d schlecht skaliert. Der<br />

Ansatz zur Behebung <strong>die</strong>ses Problems, <strong>die</strong> Skalierung, basiert auf der Beobachtung,<br />

daß für beliebige Diagonalmatrizen D 1 , D 2 ∈ R n×n<br />

+<br />

]<br />

⎤<br />

⎦ .<br />

Ax = b ⇔ D 1 AD −1<br />

2<br />

} {{ }<br />

=:B<br />

D 2 x<br />

}{{}<br />

=:y<br />

= D 1 b<br />

}{{}<br />

=:c<br />

⇔ By = c. (4.35)<br />

Man löst also zuerst By = c und bestimmt dann ^x = D −1<br />

2 ^y; s<strong>in</strong>d <strong>die</strong> Diagonale<strong>in</strong>träge<br />

<strong>in</strong> D 1 und D 2 Potenzen der Basis B der Rechnerarithmetik, dann können <strong>die</strong><br />

zusätzlichen Operationen exakt ausgeführt werden, es gibt also ke<strong>in</strong>e weiteren Rundungsfehler.<br />

Die Bedeutung <strong>die</strong>ses Ansatzes liegt dar<strong>in</strong>, daß man durch cleveres“ Skalieren <strong>die</strong><br />

”<br />

Konditionszahl e<strong>in</strong>er Matrix deutlich verbessern kann.<br />

Beispiel 4.35 Wir betrachten, für α ∈ R + , <strong>die</strong> (zeilenskalierte) Matrix<br />

[ ]<br />

α 1000 α<br />

A =<br />

⇒ ‖A‖<br />

1 1<br />

∞<br />

= max {1001 α, 2} ,<br />

mit Inverser<br />

Damit ist<br />

[<br />

A −1 −<br />

1<br />

=<br />

1000<br />

999<br />

999 α<br />

1<br />

999 α<br />

−<br />

999<br />

1<br />

⎧<br />

⎪⎨<br />

κ ∞ (A) =<br />

⎪⎩<br />

1001<br />

999<br />

]<br />

⇒<br />

∥<br />

∥A −1∥ ∥ ∥∞ =<br />

(1000 α + 1) , α ≥ 2/1001,<br />

1000 + α−1<br />

.<br />

999<br />

2000 + 2α −1<br />

, α < 2/1001,<br />

999<br />

(4.36)


68 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

was für α = 2/1001 den m<strong>in</strong>imalen Wert<br />

κ ∞ (A) = 3001<br />

999 ∼ 3<br />

annimmt. Für α = 1 ist <strong>die</strong> Konditionszahl h<strong>in</strong>gegen > 1000!<br />

Allerd<strong>in</strong>gs ist es nicht e<strong>in</strong>fach, <strong>die</strong> beste Skalierung zu f<strong>in</strong>den: Der naive“ Ansatz hätte wohl<br />

”<br />

α = 1/1000, also<br />

[ ]<br />

1/1000 1<br />

A =<br />

1 1<br />

gewählt, was e<strong>in</strong>e nicht optimale 38 Konditionszahl von ∼ 4 geliefert hätte. Nicht schlecht aber<br />

halt auch nicht optimal!<br />

Es gibt auch komplexere Pivotstrategien, <strong>die</strong> zu impliziter Skalierung führen. Man<br />

bestimmt (bei Zeilenvertauschungen) das m–te Pivotelement (also e<strong>in</strong>e Zeile) durch<br />

∣<br />

∣a (m)<br />

∣<br />

jm ∣<br />

∣a (m)<br />

km ∣<br />

∣<br />

= max<br />

max<br />

k=m,...,n ∣<br />

. (4.37)<br />

∣<br />

max ∣<br />

∣a (m)<br />

r=m,...,n jr<br />

∣a (m)<br />

r=m,...,n kr<br />

Satz 4.36 (J. M. Peña) Ist A e<strong>in</strong>e <strong>in</strong>vertierbare Matrix mit PA = LU und hat <strong>die</strong>se LU–<br />

Zerlegung <strong>die</strong> Eigenschaft, daß LU = |L| |U|, dann wird sie von Gauß–Elim<strong>in</strong>ation mit der<br />

Pivotstrategie (4.37) geliefert.<br />

4.7 Verbesserung der Genauigkeit – Iteratives Verfe<strong>in</strong>ern<br />

Die zweite Methode zur Verbesserung der Genauigkeit des Ergebnisses basiert auch<br />

wieder auf e<strong>in</strong>er e<strong>in</strong>fachen Idee: ausgehend von e<strong>in</strong>er berechneten Lösung ^x sehen wir<br />

uns das Residuum<br />

r 1 = b − A^x.<br />

an. Ist der berechnete Werte ^r 1 so gut, daß |^r 1 | ≤ n^u |1 n | 39 , dann können wir nichts<br />

besseres erwarten, andernfalls berechnen wir e<strong>in</strong>e Korrektur ^y 1 als Lösung von Ay = ^r 1 ,<br />

setzen ^x 1 = ^x + ^y 1 und betrachten<br />

r 2 = b − A^x 1 ,<br />

was wir solange fortsetzen bis (hoffentlich) irgende<strong>in</strong> r k kle<strong>in</strong> genug wird.<br />

Iteratives Verfe<strong>in</strong>ern 40 alias iterative ref<strong>in</strong>ement berechnet also, ausgehend von ^x 0 =<br />

^x, e<strong>in</strong>e Folge<br />

^r j = b ⊖ A ⊗ ^x j−1 , ^x j = ^x j−1 ⊕ Solve ( Ax = ^r j<br />

)<br />

, j ∈ N, (4.38)<br />

<strong>in</strong> der Hoffnung, daß ^r j → 0 (oder zum<strong>in</strong>dest kle<strong>in</strong> genug wird).<br />

38 Aber gar nicht so schlechte . . .<br />

39 Die Lösung ^x ist also bis auf unvermeidbare Rundungsfehler exakt!<br />

40 Auch als Nachiteration bekannt.


4.7 Verbesserung der Genauigkeit – Iteratives Verfe<strong>in</strong>ern 69<br />

%% LoesAxb3.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Loesen e<strong>in</strong>es Gleichungssystems<br />

%% (mit Pivot und k-facher Nachiteration)<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

%% b rechte Seite<br />

%% k % Nachiterationen<br />

function x = LoesAxb3( A,b,k )<br />

[ LU,p ] = GaussSP( A );<br />

y = VorElim2( LU,b,p );<br />

x = RueckSubs( LU,y );<br />

for j = 1:k<br />

r = b - A*x;<br />

disp( norm(r) );<br />

y = VorElim2( LU,r,p );<br />

d = RueckSubs( LU,y );<br />

x = x+d;<br />

end<br />

% endfunction<br />

Programm 4.11 LoesAxb3.m: Gauß–Elim<strong>in</strong>ation mit textttk–facher Nachiteration.<br />

Bemerkung 4.37 Beim ”<br />

klassischen“ iterative ref<strong>in</strong>ement werden <strong>die</strong> Operationen aus (4.38)<br />

<strong>in</strong> doppelter Genauigkeit, also mit e<strong>in</strong>em relativen Fehler von höchstens 2^u 2 , berechnet.<br />

Was br<strong>in</strong>gt uns nun <strong>die</strong> Nachiteration? Ganz e<strong>in</strong>fach: Anstatt <strong>die</strong> komplexe Aufgabe<br />

des Lösens e<strong>in</strong>es l<strong>in</strong>earen Gleichungssystems <strong>in</strong> hoher Genauigkeit durchzuführen,<br />

tun wir das schneller 41 und nehmen e<strong>in</strong>en gewissen Fehler <strong>in</strong> Kauf, der dann mit der<br />

Nachiteration beseitigt wird. Und bei der Nachiteration müssen nur Matrix–Vektor–<br />

Produkte berechnet werden, was deutlich billiger ist, als e<strong>in</strong> Gleichungssystem zu<br />

lösen.<br />

E<strong>in</strong>e typische Fehlerabschätzung ist beispielsweise das folgende Resultat (als le-<br />

41 Es gibt Prozessoren, <strong>die</strong> <strong>in</strong> Spielekonsolen verwendet werden (Stand der Technologie: 2006), bei<br />

denen e<strong>in</strong>fach–genaue Rechnung um den Faktor 25 schneller ist als doppelt–genaue, und da lohnt sich<br />

das dann schon. Update 2013: Ähnliches gilt heute für GPU–Berechnungen auf der Grafikkarte und <strong>die</strong><br />

dort verfügbaren Techniken.


70 4 DIREKTE METHODEN FÜR LINEARE GLEICHUNGSSYSTEME<br />

%% VorElim2.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Vorwaertselim<strong>in</strong>ation mit Permutation, ueberschreibt b,<br />

%% Diagonale = 1!!!<br />

%% E<strong>in</strong>gabe:<br />

%% L untere Dreiecksmatrix<br />

%% b rechte Seite<br />

%% p Permutationsvektor<br />

function x = VorElim2( L,b,p )<br />

n = length( b );<br />

bb = b;<br />

for j = 1:n<br />

bb( j ) = b( p(j) );<br />

end<br />

b = bb;<br />

for j = 1:n<br />

b(j) = b(j) - L(j,1:j-1) * b( 1:j-1 );<br />

end<br />

x = b;<br />

endfunction<br />

Programm 4.12 VorElim2.m: Vorwärtselim<strong>in</strong>ation mit ”<br />

<strong>in</strong>tegrierter“ Permutation.


4.7 Verbesserung der Genauigkeit – Iteratives Verfe<strong>in</strong>ern 71<br />

ichte Abschwächung e<strong>in</strong>er Aussage aus dem Buch von Higham [17]).<br />

Satz 4.38 Erfüllt <strong>die</strong> <strong>in</strong>vertierbare Matrix A ∈ R n×n <strong>die</strong> Bed<strong>in</strong>gung 2(C + 1)nκ ∞ (A) ≪<br />

^u −1 , dann bestimmt iterative Verfe<strong>in</strong>erung e<strong>in</strong> ^x mit e<strong>in</strong>er relative Genauigkeit<br />

‖^x − x‖ ∞<br />

‖x‖ ∞<br />

{<br />

≈<br />

Wie man sowas beweist, zeigt Anhang A.2.<br />

^u, ũ ∼ ^u 2 ,<br />

2(n + 1)^u‖A‖ ∞ , ũ ∼ ^u.<br />

(4.39)


72 5 SPEZIELLE LINEARE GLEICHUNGSSYSTEME<br />

Es wird also wahrsche<strong>in</strong>lich richtig se<strong>in</strong>,<br />

das Gattungsmäßige geme<strong>in</strong>sam zu<br />

behandeln [. . .] Was aber nicht so ist,<br />

muß man e<strong>in</strong>zeln behandeln.<br />

Aristoteles, Die Methodik der<br />

Naturforschung.<br />

Spezielle l<strong>in</strong>eare<br />

Gleichungssysteme 5<br />

Bevor wir uns spezielle Systeme ansehen, erst e<strong>in</strong>e kle<strong>in</strong>e Variation von Satz (4.29) –<br />

der e<strong>in</strong>zige Unterschied besteht dar<strong>in</strong>, daß jetzt ebenfalls alle Diagonalelemente von U<br />

den Wert 1 haben.<br />

Satz 5.1 E<strong>in</strong>e Matrix A ∈ R n×n ist genau dann <strong>in</strong>vertierbar, wenn es e<strong>in</strong>e Diagonalmatrix<br />

D ∈ R n×n , e<strong>in</strong>e Permutationsmatrix P, sowie e<strong>in</strong>e untere Dreiecksmatrix L ∈ R n×n und e<strong>in</strong>e<br />

obere Dreiecksmatrix U ∈ R n×n gibt, so daß l jj = u jj = 1, d jj ̸= 0, j = 1, . . . , n, und<br />

PA = LDU. (5.1)<br />

Beweis: Nach Satz (4.29) gibt es P, L, U ′ so daß PA = LU ′ und u<br />

jj ′<br />

Dann setzen wir<br />

̸= 0, j = 1, . . . , n.<br />

D := diag [ u jj : j = 1, . . . , n ] und U = D −1 U ′ ,<br />

was (5.1) liefert.<br />

□<br />

5.1 Cholesky–Zerlegung<br />

Die Cholesky–Zerlegung beschäftigt sich mit symmetrischen, (strikt) positiv def<strong>in</strong>iten<br />

Matrizen.<br />

Def<strong>in</strong>ition 5.2 E<strong>in</strong>e Matrix A ∈ R n×n heißt symmetrisch, wenn A T<br />

positiv def<strong>in</strong>it, wenn<br />

x T Ax > 0, x ∈ R n \ {0}.<br />

Ist lediglich x T Ax ≥ 0, dann nennt man A positiv semidef<strong>in</strong>it.<br />

= A und (strikt)<br />

Bemerkung 5.3 Die Term<strong>in</strong>ologie zu positiver Def<strong>in</strong>itheit ist gefährlich mehrdeutig! Zwei<br />

Punkte s<strong>in</strong>d hier besonders zu beachten:


5.1 Cholesky–Zerlegung 73<br />

1. Man kann entweder wie <strong>in</strong> Def<strong>in</strong>ition 5.2 zwischen ”<br />

positiv def<strong>in</strong>it“ und ”<br />

positiv semidef<strong>in</strong>it“<br />

unterscheiden 42 , oder aber <strong>die</strong> Begriffe ”<br />

strikt positiv def<strong>in</strong>it“ und ”<br />

positiv def<strong>in</strong>it“<br />

verwenden 43 . Deswegen empfielt es sich immer, genau zu prüfen, wie <strong>die</strong> Begriffe verwendet<br />

werden.<br />

2. Oftmals be<strong>in</strong>haltet <strong>die</strong> Def<strong>in</strong>ition von ”<br />

positiv def<strong>in</strong>it“ auch bereits, daß <strong>die</strong> Matrix symmetrisch<br />

ist. Der Grund ist, daß für A ∈ C n×n <strong>die</strong> Bed<strong>in</strong>gung<br />

x T Ax ≥ 0,<br />

x ∈ C n<br />

<strong>in</strong>sbesondere bedeutet, daß x T Ax e<strong>in</strong>e reelle Zahl ist, und das ist wiederum nur dann der<br />

Fall, wenn A e<strong>in</strong>e hermitesche Matrix ist, also wenn A H = A ist. Und für reelles A<br />

heißt das natürlich Symmetrie!<br />

Satz 5.4 Ist A ∈ R n×n symmetrisch und positiv def<strong>in</strong>it, dann gibt es e<strong>in</strong>e untere Dreiecksmatrix<br />

G ∈ R n×n , so daß A <strong>die</strong> Cholesky–Zerlegung<br />

hat.<br />

A = GG T (5.2)<br />

Beweis: Zuerst bemerken wir, daß A genau dann positiv def<strong>in</strong>it ist, wenn alle Hauptuntermatrizen<br />

A m , m = 1, . . . , n, positiv def<strong>in</strong>it s<strong>in</strong>d. Gäbe es nämlich e<strong>in</strong> 1 ≤ m ≤ n<br />

und e<strong>in</strong> y ∈ R m so daß<br />

0 ≥ y T A m y =<br />

[ ] [<br />

y T y<br />

0 A<br />

0<br />

dann wäre <strong>die</strong>s e<strong>in</strong> Widerspruch zur positiven Def<strong>in</strong>itheit von A. Insbesondere s<strong>in</strong>d<br />

alle Hauptm<strong>in</strong>oren von A <strong>in</strong>vertierbar und damit gibt es, nach Satz 5.1, Dreiecksmatrizen<br />

L, U mit Diagonale 1 und e<strong>in</strong>e Diagonalmatrix D, so daß<br />

LDU = A = A T = U T DL T<br />

und wegen der E<strong>in</strong>deutigkeit der LDU–Zerlegung ist U = L T . Also ist<br />

A = LDL T<br />

und L, D haben vollen Rang n. Für j = 1, . . . , n ist außerdem<br />

) T )<br />

0 <<br />

(L −T e j A<br />

(L −T e j = e T j L−1 LDL T L −T e j = e T j De j = d jj .<br />

]<br />

,<br />

Damit ist<br />

D = EE T ,<br />

E = diag<br />

[ √djj<br />

: j = 1, . . . , n]<br />

,<br />

42 Was meistens <strong>in</strong> der deutschsprachigen Literatur geschieht.<br />

43 Wie <strong>in</strong> der englischsprachigen Literatur. Richtig verwirrend wird es dann, wenn Deutsche <strong>in</strong> Englisch<br />

schreiben und ihre gewohnte Begriffswelt beibehalten.


74 5 SPEZIELLE LINEARE GLEICHUNGSSYSTEME<br />

und G := LE liefert <strong>die</strong> gewünschte Zerlegung (5.2).<br />

□<br />

Übung 5.1 Zeigen Sie, daß e<strong>in</strong>e symmetrische Matrix A ∈ R n×n genau dann positiv<br />

def<strong>in</strong>it ist, wenn alle Hauptm<strong>in</strong>oren positiv s<strong>in</strong>d: det A m > 0, m = 1, . . . , n. ♦<br />

Um <strong>die</strong> Cholesky–Zerlegung A = GG T zu bestimmen, gehen wir genau wie beim<br />

Doolittle–Verfahren vor und nutzen <strong>die</strong> Symmetrie von A und <strong>die</strong> Beziehung<br />

a jk =<br />

j∑<br />

g jr g kr , 1 ≤ j ≤ k ≤ n, (5.3)<br />

r=1<br />

aus. Das liefert uns, daß<br />

g jj =<br />

g kj =<br />

∑j−1<br />

√ ajj − g 2 jr<br />

, j = 1, . . . , n, (5.4)<br />

r=1<br />

⎛<br />

⎞<br />

∑j−1<br />

⎝a kj − g jr g kr<br />

⎠ /g jj , 1 ≤ j < k ≤ n. (5.5)<br />

r=1<br />

5.2 Ban<strong>die</strong>rte Systeme<br />

E<strong>in</strong>e Matrix A ∈ R n×n wird als (p, q)–ban<strong>die</strong>rt bezeichnet, wenn<br />

a jk = 0, j > k + p, k > j + q. (5.6)<br />

Der Speicheraufwand für e<strong>in</strong>e (p, q)–ban<strong>die</strong>rte Matrix ist nur O ((p + q + 1)n) 44 , das<br />

heißt, für p + q ≪ n kann man solche Matrizen sehr ökonomisch speichern. Und <strong>die</strong>se<br />

Ökonomie würde man gerne auf <strong>die</strong> LU–Zerlegung übertragen.<br />

Satz 5.5 Besitzt <strong>die</strong> (p, q)–ban<strong>die</strong>rte Matrix A ∈ R n×n e<strong>in</strong>e LU–Zerlegung A = LU, dann<br />

ist L e<strong>in</strong>e (p, 0)–ban<strong>die</strong>rte Matrix und U e<strong>in</strong>e (0, q)–ban<strong>die</strong>rte Matrix.<br />

Bemerkung 5.6 (LU–Zerlegung für ban<strong>die</strong>rte Matrizen)<br />

1. Es ist (leider) klar, daß e<strong>in</strong>e Zerlegung wie <strong>in</strong> Satz 5.5 nicht mehr existiert, wenn man<br />

Zeilen– und/oder Spaltenvertauschungen durchführen muß, da <strong>die</strong>s normalerweise <strong>die</strong><br />

Bandstruktur der Matrix zerstören wird.<br />

2. Besonders gut geeignet für so e<strong>in</strong>e Zerlegung s<strong>in</strong>d Matrizen, <strong>die</strong> offensichtlich e<strong>in</strong>e LU–<br />

Zerlegung besitzen, z.B. strikt (Spalten–) diagonaldom<strong>in</strong>ante Matrizen.<br />

44 Für Erbsenzähler: Es s<strong>in</strong>d n 2 − (n−p)(n−p−1)<br />

2<br />

− (n−q)(n−q−1)<br />

2<br />

E<strong>in</strong>träge


5.2 Ban<strong>die</strong>rte Systeme 75<br />

%% Cholesky.m (Numerik I)<br />

%% --------------------------------------------------------<br />

%% Berechnet Cholesky-Zerlegung<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

function G = Cholesky( A )<br />

n = length(A);<br />

G = zeros( n );<br />

for j = 1:n<br />

g = A( j,j ) - G( j,1:j-1 ).^2;<br />

G( j,j ) = sqrt( g );<br />

for k = j+1:n<br />

g = A( k,j ) - G( j,1:j-1 ) * G( k,1:j-1 );<br />

G( k,j ) = g / G( j,j );<br />

end<br />

end<br />

%endfunction<br />

Programm 5.1 Cholesky.m: Das Cholesky–Verfahren nach (5.4) und (5.5).


76 5 SPEZIELLE LINEARE GLEICHUNGSSYSTEME<br />

Beweis von Satz 5.5: Induktion über n; n = 1 ist klar. Sei also A ∈ R n+1×n+1 e<strong>in</strong>e<br />

(p, q)–Bandmatrix, geschrieben als<br />

[ ]<br />

a w<br />

T<br />

A =<br />

, a ̸= 0, v, w ∈ R n , B ∈ R n×n ,<br />

v B<br />

wobei v p+1 = · · · = v n = 0, w q+1 = · · · = w n = 0, und B e<strong>in</strong>e (p, q)–ban<strong>die</strong>rte Matrix<br />

ist. Nach e<strong>in</strong>em Schritt Gauß–Elim<strong>in</strong>ation ist dann<br />

[ ] [ ]<br />

1 0 a w T<br />

A = v<br />

.<br />

a<br />

I n 0 B − vwT<br />

Da<br />

⎡<br />

⎤<br />

v 1 w 1 · · · v 1 w q<br />

vw T = ⎢<br />

.<br />

.. . .<br />

⎥<br />

⎣ v p w 1 · · · v p w q ⎦<br />

0<br />

a<br />

ebenfalls (p, q)–ban<strong>die</strong>rt ist, besitzt <strong>die</strong> (p, q)–ban<strong>die</strong>rte Matrix B − vw T /a e<strong>in</strong>e (p, 0)-<br />

bzw. (0, q)–ban<strong>die</strong>rte LU–Zerlegung<br />

B − vwT<br />

a<br />

= ˜LŨ,<br />

und daher ist<br />

[ ] [ ]<br />

1 0 a w<br />

T<br />

A =<br />

,<br />

v ˜L 0 Ũ<br />

} {{ } } {{ }<br />

=:L =:U<br />

wobei L e<strong>in</strong>e (p, 0)–ban<strong>die</strong>rte Matrix und U e<strong>in</strong>e (0, q)–ban<strong>die</strong>rte Matrix ist.<br />

E<strong>in</strong>e ban<strong>die</strong>rte Version der Gauß–Elim<strong>in</strong>ation f<strong>in</strong>dent sich <strong>in</strong> BGauss.m.<br />

□<br />

5.3 Total positive Systeme<br />

Total positive Matrizen verhalten sich, was <strong>die</strong> Gauß–Elim<strong>in</strong>ation angeht, besonders<br />

brav und tauchen noch dazu <strong>in</strong> wichtigen Anwendungen auf. Das Standardwerk zu<br />

<strong>die</strong>sem Thema ist mit Sicherheit das Buch von Karl<strong>in</strong> [22].<br />

Def<strong>in</strong>ition 5.7 Für A ∈ R n×n und I, J ⊆ {1, . . . , n} mit #I = #J (= k ) bezeichnet<br />

⎡<br />

⎤<br />

( ) a i1 ,j 1<br />

. . . a i1 ,j k<br />

i1 , . . . , i<br />

A (I, J) = A<br />

k ⎢<br />

= ⎣<br />

j 1 , . . . , j .<br />

..<br />

⎥ i . . ⎦ , 1 < · · · < i k ,<br />

k j 1 < · · · < j k ,<br />

a ik ,j 1<br />

. . . a ik ,j k<br />

<strong>die</strong> durch I, J <strong>in</strong>dizierte quadratische Teilmatrix, bei der Zeilen und Spalten aber immer noch<br />

<strong>in</strong> derselben Reihenfolge angeordnet s<strong>in</strong>d wie <strong>in</strong> A.<br />

Außerdem verwenden wir <strong>die</strong> Abkürzung N = {1, . . . , n}, also<br />

A = A (N, N) .


5.3 Total positive Systeme 77<br />

%% BGauss.m (Numerik I)<br />

%% --------------------------------------------------------<br />

%% Gauss-Elim<strong>in</strong>ation fuer ban<strong>die</strong>rte Matrizen<br />

%% (ohne Pivot, aber mit Matlab-Features)<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

%% p,q Bandbreite<br />

function LU = BGauss( A,p,q )<br />

n = length( A );<br />

for m = 1:n<br />

for j = m+1:m<strong>in</strong>( n,m+p )<br />

A( j,m ) = A( j,m ) / A( m,m );<br />

r = m<strong>in</strong>( n,m+q );<br />

A( j,m+1:r ) = A( j,m+1:r ) - A( j,m ) * A( m,m+1:r );<br />

end<br />

end<br />

LU = A;<br />

%endfunction<br />

Programm 5.2 BGauss.m: Gauß–Elim<strong>in</strong>ation für ban<strong>die</strong>rte Systeme mit Aufwand<br />

O ( n 2) solange p, q ≪ n.


78 5 SPEZIELLE LINEARE GLEICHUNGSSYSTEME<br />

Def<strong>in</strong>ition 5.8 E<strong>in</strong>e Matrix A ∈ R n×n heißt total positiv, wenn<br />

und total nichtnegativ, wenn<br />

det A(I, J) > 0, I, J ⊆ {1, . . . , n}, #I = #J, (5.7)<br />

det A(I, J) ≥ 0, I, J ⊆ {1, . . . , n}, #I = #J, (5.8)<br />

Bemerkung 5.9 Ist e<strong>in</strong>e Matrix A total nichtnegativ, dann ist<br />

a jk ≥ 0, j, k = 1, . . . , n.<br />

Versucht man, nichtnegative Matrizen zu ”<br />

basteln“, dann stellt man schnell fest, daß<br />

das gar nicht so e<strong>in</strong>fach ist. Es gibt sie allerd<strong>in</strong>gs wirklich, und zwar sogar von beliebiger<br />

Dimension.<br />

Beispiel 5.10 Die n-te Pascal–Matrix<br />

[( ) j + k − 2<br />

P n :=<br />

j − 1<br />

]<br />

: j, k = 1, . . . , n , n ∈ N,<br />

ist symmetrisch und total positiv. Sie s<strong>in</strong>d außerdem exponentiell schlecht konditioniert:<br />

κ 2 (P n ) ∼ 16n<br />

nπ .<br />

Die Bedeutung total nichtnegativer Matrizen für Elim<strong>in</strong>ationsverfahren ergibt sich aus<br />

dem nächsten Satz.<br />

Satz 5.11 Ist A ∈ R n×n e<strong>in</strong>e <strong>in</strong>vertierbare und total nichtnegative Matrix, dann gibt es e<strong>in</strong>e<br />

untere Dreiecksmatrix L ∈ R n×n und e<strong>in</strong>e obere Dreiecksmatrix U ∈ R n×n , so daß<br />

A = LU und L ≥ 0, U ≥ 0. (5.9)<br />

Bemerkung 5.12 Komb<strong>in</strong>iert man Satz 5.5 mit Satz 5.11, so s<strong>in</strong>d total nichtnegative, stark<br />

ban<strong>die</strong>rte (d.h., p + q ≪ n) Matrizen besonders effektiv und stabil mit Gauß–Elim<strong>in</strong>ation<br />

lösbar. Und solche Matrizen treten <strong>in</strong> der Praxis tatsächlich auf, nämlich bei der Spl<strong>in</strong>e<strong>in</strong>terpolation,<br />

siehe Satz 9.6.<br />

Lemma 5.13 Ist A ∈ R n×n total nichtnegativ und <strong>in</strong>vertierbar, dann ist a 11 > 0.<br />

Beweis: Angenommen, es wäre a 11 = 0 und a 1k > 0 für e<strong>in</strong> k > 1. Da A total nichtnegativ<br />

ist, ist für jedes m > 1<br />

0 ≤ det A ({1, m}, {1, k}) =<br />

∣ a ∣<br />

11 a 1k ∣∣∣<br />

= −a<br />

a m1 a 1k a m1 ⇒ a m1 = 0.<br />

mk<br />

Das heißt, wenn a 11 = 0 ist, dann ist entweder a 1k = 0, k = 1, . . . , n, oder a k1 = 0,<br />

k = 1, . . . , n, oder sogar beides, aber auf alle Fälle ist dann A nicht <strong>in</strong>vertierbar. □


5.3 Total positive Systeme 79<br />

Lemma 5.14 Sei A ∈ R n×n total nichtnegativ und <strong>in</strong>vertierbar. Dann ist <strong>die</strong> Matrix Ã, <strong>die</strong><br />

man nach e<strong>in</strong>em Gauß–Elim<strong>in</strong>ationsschritt als<br />

[<br />

A → A (1) a11 v T ]<br />

:=<br />

, Ã = [ ã<br />

0 Ã<br />

jk : j, k = 2, . . . , n ] ∈ R n−1×n−1 .<br />

erhält, auch total nichtnegativ und <strong>in</strong>vertierbar.<br />

Beweis: Für beliebige I, J ⊆ {2, . . . , n} betrachten wir<br />

Mit<br />

ist<br />

und damit<br />

A =<br />

det à (I, J) = 1<br />

a 11<br />

det A (1) (I ∪ {1}, J ∪ {1}) . (5.10)<br />

⎡<br />

⎢<br />

⎣<br />

a T 1<br />

.<br />

a T n<br />

⎤<br />

A (1) (I ∪ {1}, J ∪ {1}) = ⎢<br />

⎣<br />

⎥<br />

⎦ und α j = a j1<br />

a 11<br />

, j = 2, . . . , n,<br />

⎡<br />

a T ⎤<br />

1<br />

A (1) a T 2<br />

= ⎢<br />

− α 2a T 1<br />

⎥<br />

⎣ . ⎦<br />

a T n − α n a T 1<br />

⎡<br />

a T ⎤<br />

1<br />

(J ∪ {1})<br />

a T i 1<br />

(J ∪ {1}) − α i1 a T 1<br />

(J ∪ {1})<br />

⎥<br />

.<br />

a T i k<br />

(J ∪ {1}) − α ik a T 1 (J ∪ {1})<br />

⎦ . (5.11)<br />

Da <strong>die</strong> Determ<strong>in</strong>ante <strong>in</strong>variant unter Addition von Vielfachen von Zeilen ist, haben<br />

wir also, daß<br />

a T 1<br />

(J ∪ {1})<br />

det A (1) a T i<br />

(I ∪ {1}, J ∪ {1}) = 1<br />

(J ∪ {1})<br />

= det A (I ∪ {1}, J ∪ {1}) ,<br />

.<br />

∣ a T i k<br />

(J ∪ {1}) ∣<br />

und setzen wir <strong>die</strong>s <strong>in</strong> (5.10) e<strong>in</strong>, dann erhalten wir, daß<br />

det à (I, J) = 1<br />

a 11<br />

det A (I ∪ {1}, J ∪ {1}) , I, J ⊂ {2, . . . , n}, #I = #J. (5.12)<br />

Damit ist à total nichtnegativ und außerdem ist<br />

det à = 1<br />

a 11<br />

det A > 0


80 5 SPEZIELLE LINEARE GLEICHUNGSSYSTEME<br />

und damit ist à auch <strong>in</strong>vertierbar.<br />

Beweis von Satz 5.11: Induktion über n, der Fall n = 1 ist trivial. Für beliebiges n > 1<br />

machen wir wieder e<strong>in</strong>en Schritt Gauß–Elim<strong>in</strong>ation, erhalten<br />

[ ]<br />

A (1) a11 A ({1}, {2, . . . , n})<br />

=<br />

,<br />

0 Ã<br />

wenden <strong>die</strong> Induktionshypothese auf à an (das geht nach Lemma 5.14) und erhalten<br />

˜L ≥ 0 und Ũ ≥ 0 so daß Ã = ˜LŨ. Dann ist aber<br />

[<br />

] [ ]<br />

1 0 a11 A ({1}, {2, . . . , n})<br />

A =<br />

,<br />

a −1<br />

}<br />

11 A ({2, . {{ . . , n}, 1) ˜L<br />

}<br />

=:L<br />

}<br />

0 Ũ<br />

{{ }<br />

=:U<br />

□<br />

und es ist L, U ≥ 0.<br />

□<br />

Korollar 5.15 Die LU–Zerlegung aus (5.9) erhält man durch Gauß–Elim<strong>in</strong>ation ohne Pivotsuche<br />

(oder durch Doolittle).<br />

Da nun ∣ ∣∣̂L∣<br />

∣<br />

∣<br />

∣Û<br />

ist auch ∥ ∥∥<br />

∣ ∣∣̂L∣<br />

∣<br />

(∣ ∣) ∣ ∣∣<br />

∣ ≤ |L| |U| + ∣∣̂L − L∣ + ∣Û − U =<br />

∣<br />

∣Û<br />

∣∥ =<br />

∞<br />

( (<br />

1 + O ^u 2)) ‖A‖ ∞<br />

und wie erhalten <strong>die</strong> folgende, sehr gute Fehleraussage.<br />

( (<br />

1 + O ^u 2)) |A| ,<br />

Korollar 5.16 Es sei A ∈ R n×n total nichtnegativ, <strong>in</strong>vertierbar und erfülle<br />

κ ∞ (A) ≪ ^u −1 .<br />

Dann gilt für <strong>die</strong> mit Gauß–Elim<strong>in</strong>ation ohne Pivotsuche berechnete Lösung ^x zu Ax = b <strong>die</strong><br />

Abschätzung<br />

‖^x − x‖ ∞ 8n^u<br />

≤<br />

‖x‖ ∞<br />

1 − ^uκ ∞ (A) κ ∞(A). (5.13)<br />

Anstelle von Satz 5.11 gilt sogar <strong>die</strong> folgende, schärfere Aussage.<br />

Satz 5.17 E<strong>in</strong>e Matrix A ∈ R n×n ist genau dann <strong>in</strong>vertierbar und total nichtnegativ, wenn<br />

es total nichtnegative Dreiecksmatrizen L, U ∈ R n×n , l jj = 1, u jj ̸= 0, j = 1, . . . , n, gibt, so<br />

daß A = LU.


81<br />

There are th<strong>in</strong>gs that are facts, <strong>in</strong> a<br />

statistical sense, on paper, on a tape<br />

recorder, <strong>in</strong> evidence. And there are<br />

th<strong>in</strong>gs that are facts because they have to<br />

be facts, because noth<strong>in</strong>g makes any<br />

sense otherwise.<br />

Raymond Chandler, ”<br />

Payback“<br />

Iterative Verfahren für<br />

l<strong>in</strong>eare Gleichungssysteme 6<br />

Wir betrachten wieder e<strong>in</strong>e <strong>in</strong>vertierbare Matrix A ∈ R n×n und e<strong>in</strong> Gleichungssystem<br />

Ax = b. (6.1)<br />

E<strong>in</strong> iteratives Verfahren besteht aus e<strong>in</strong>er Berechnungsvorschrift<br />

x (j+1) = F<br />

(x (j))<br />

mit dem Ziel, daß x (j) → x für j → ∞, wobei natürlich x <strong>die</strong> Lösung von (6.1) se<strong>in</strong> soll.<br />

Im Gegensatz zu den direkten Verfahren berechnen wir also ke<strong>in</strong>e exakte“ Lösung 45<br />

”<br />

mehr, sondern versuchen, uns näher und näher an <strong>die</strong> Lösung heranzutasten“.<br />

”<br />

Zuerst e<strong>in</strong> ganz billiger Taschenspielertrick, um das Problem e<strong>in</strong> kle<strong>in</strong> wenig umzuformen:<br />

Ist x <strong>die</strong> Lösung von Ax = b, so gilt für beliebiges <strong>in</strong>vertierbares B ∈ R n×n<br />

( )<br />

b = Ax = Bx + (A − B) x ⇔ x = B −1 b + I − B −1 A x,<br />

also ist x e<strong>in</strong> Fixpunkt von<br />

( )<br />

F(x) = B −1 b + I − B −1 A x. (6.2)<br />

Damit haben wir das Problem ”<br />

Lösen e<strong>in</strong>es l<strong>in</strong>earen Gleichungssystems“ also <strong>in</strong> e<strong>in</strong><br />

Problem der Form ”<br />

Bestimme den Fixpunkt e<strong>in</strong>er Funktion“ umgewandelt. Das hat<br />

dann auch e<strong>in</strong>en ganz unmittelbaren Vorteil: Wenn e<strong>in</strong> Iterationswert x (j) e<strong>in</strong>e exakte<br />

Lösung des Problems, also e<strong>in</strong> Fixpunkt ist, dann wird <strong>die</strong> Funktion F <strong>die</strong>sen <strong>in</strong> sich<br />

selbst abbilden – das Lösungsverfahren ”<br />

verwirft“ e<strong>in</strong>mal gefundene Lösungen nicht<br />

wieder.<br />

Die Fixpunktsuche kann aber e<strong>in</strong>e recht e<strong>in</strong>fache und automatische Sache se<strong>in</strong>,<br />

wenn F e<strong>in</strong>e bestimmte Eigenschaft hat.<br />

45 Bei exakter Rechnung (z.B. <strong>in</strong> Computeralgebrasystemen) würden <strong>die</strong> direkten Verfahren ja nach<br />

endlich vielen Schritten e<strong>in</strong>e exakte Lösung liefern.


82 6 ITERATIVE VERFAHREN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Def<strong>in</strong>ition 6.1 E<strong>in</strong>e Abbildung F : R n → R n heißt Kontraktion bezüglich e<strong>in</strong>er Norm ‖ · ‖,<br />

wenn es e<strong>in</strong>e Konstante ρ < 1 gibt, so daß<br />

‖F(x) − F(y)‖ ≤ ρ ‖x − y‖ , x, y ∈ R n . (6.3)<br />

E<strong>in</strong> Punkt x ∈ R n heißt Fixpunkt e<strong>in</strong>er Abbildung F : R n → R n , wenn F(x) = x ist.<br />

Satz 6.2 (Banachscher Fixpunktsatz für den R n ) Ist F : R n → R n e<strong>in</strong>e Kontraktion,<br />

dann hat F genau e<strong>in</strong>en Fixpunkt x ∗ und für jedes x (0) konvergiert <strong>die</strong> Folge<br />

(<br />

x (j+1) = F x (j)) , j ∈ N 0 , (6.4)<br />

gegen x ∗ .<br />

Beweis: Beg<strong>in</strong>nen wir mit der E<strong>in</strong>deutigkeit: wären x ∗ , y ∗ zwei verschiedene Fixpunkte,<br />

also ‖x ∗ − y ∗ ‖ > 0, dann wäre<br />

1 = ‖x∗ − y ∗ ‖<br />

‖x ∗ − y ∗ ‖ = ‖F (x∗ ) − F (y ∗ )‖<br />

‖x ∗ − y ∗ ‖<br />

≤ ρ ‖x∗ − y ∗ ‖<br />

‖x ∗ − y ∗ ‖ = ρ,<br />

e<strong>in</strong> Widerspruch zu ρ < 1.<br />

Jetzt zur Existenz. Für j ≥ 1 ist<br />

∥<br />

∥x (j+1) − x (j)∥ ∥<br />

∥ ∥∥F =<br />

(x (j)) (<br />

− F x (j−1))∥ ∥<br />

∥ ∥∥x ≤ ρ (j) − x (j−1)∥ ∥ ∥ ≤ · · · ≤ ρ<br />

j ∥x (1) − x (0)∥ ∥ und daher, für N > 0,<br />

∥<br />

∥x (j+N) − x (j)∥ ∥ ∑<br />

N ≤<br />

≤<br />

k=1<br />

∥<br />

∥x (j+k) − x (j+k−1)∥ N−1<br />

∥ ∑ ∥ ≤ ρ j+k ∥x (1) − x (0)∥ ∥ ∥<br />

∥x (1) − x (0)∥ ∥ ∥ ρ<br />

j<br />

∞∑<br />

ρ k =<br />

k=0<br />

k=0<br />

ρj<br />

1 − ρ<br />

∥<br />

∥x (1) − x (0)∥ ∥ ∥ .<br />

Also ist x (j) , j ∈ N 0 , e<strong>in</strong>e Cauchyfolge und konvergiert somit gegen e<strong>in</strong>en Grenzwert<br />

x ∗ , für den für beliebiges j ∈ N 0 <strong>die</strong> Ungleichung<br />

(<br />

‖F (x ∗ ) − x ∗ ∥<br />

‖ ≤ ∥F (x ∗ ) − F x (j))∥ ∥<br />

∥ ∥∥x + ∗ − x (j+1)∥ ∥<br />

∥ ∥∥x ≤ ρ ∗ − x (j)∥ ∥<br />

∥ ∥∥x + ∗ − x (j+1)∥ ∥ ,<br />

gilt und da <strong>die</strong> rechte Seite für j → ∞ gegen 0 konvergiert, ist F (x ∗ ) = x ∗ .<br />

Jetzt aber zurück zu (6.2). Das daraus entstehende Lösungsverfahren wird <strong>die</strong> Iteration<br />

(<br />

x (j+1) = F x (j)) ( )<br />

= B −1 b + I − B −1 A x (j) (6.5)<br />

verwenden, und <strong>die</strong> dabei verwendete Funktion F ist offensichtlich genau dann e<strong>in</strong>e<br />

Kontraktion, wenn <strong>die</strong> Iterationsmatrix ( I − B −1 A ) e<strong>in</strong>e Kontraktion liefert. Die Ziele<br />

<strong>die</strong>ses Kapitels s<strong>in</strong>d also:<br />


6.1 Der Spektralradius und e<strong>in</strong> allgeme<strong>in</strong>es Konvergenzkriterium 83<br />

• Bestimmung von ”<br />

guten“ Matrizen B (e<strong>in</strong>fach zu <strong>in</strong>vertieren und e<strong>in</strong>fach aus A<br />

zu gew<strong>in</strong>nen).<br />

• Beschreibung, wann ( I − B −1 A ) e<strong>in</strong>e Kontraktion ist.<br />

• Bestimmung von Matrixklassen A (und passendem B), so daß (6.5) garantiert<br />

konvergiert.<br />

Bemerkung 6.3 Wenn <strong>die</strong> Iteration (6.5) gegen x ∗ konvergiert, dann ist<br />

( )<br />

x ∗ = B −1 b + I − B −1 A x ∗ .<br />

Dies gilt sogar für jede l<strong>in</strong>eare Iteration der Form<br />

(<br />

x (j+1) = F x (j)) = Gx (j) + g<br />

mit G ∈ R n×n und g ∈ R n . Schließlich ist ja für jedes j ∈ N<br />

‖x ∗ − F (x ∗ ∥<br />

)‖ ≤ ∥x ∗ − x (j+1)∥ ∥<br />

∥ ∥∥F + (x ∗ ) − x (j+1)∥ ∥ ∥<br />

= ∥x ∗ − x (j+1)∥ ∥<br />

∥ ∥∥F +<br />

(x ∗ − x (j))∥ ∥<br />

∥ ∥∥x ≤ ∗ − x (j+1)∥ ∥<br />

∥ ∥∥x + ‖G‖ ∗ − x (j)∥ ∥ und da <strong>die</strong> rechte Seite für j → ∞ gegen Null konvergiert während <strong>die</strong> l<strong>in</strong>ke Seite von j unabhängig<br />

ist, muß x ∗ = F (x ∗ ) se<strong>in</strong>.<br />

6.1 Der Spektralradius und e<strong>in</strong> allgeme<strong>in</strong>es Konvergenzkriterium<br />

Wir kommen zum entscheidenden Begriff für <strong>die</strong> Konvergenz des iterativen Verfahrens.<br />

Def<strong>in</strong>ition 6.4 Das Spektrum S(A) e<strong>in</strong>er Matrix A ∈ R n×n ist <strong>die</strong> Menge 46<br />

S(A) = {λ ∈ C : ker C n (A − λI) ̸= {0}}<br />

ihrer Eigenwerte. Der Spektralradius ρ(A) ist def<strong>in</strong>iert als<br />

ρ(A) = max<br />

λ∈S(A) |λ| .<br />

Proposition 6.5 Es bezeichne ‖ · ‖ e<strong>in</strong>e beliebige Vektornorm auf dem R n sowie <strong>die</strong> zugehörige<br />

Operatornorm. Der Spektralradius ρ(A) bestimmt sich als<br />

und erfüllt somit ρ(A) ≤ ‖A‖.<br />

ρ(A) = lim sup<br />

j→∞<br />

∥<br />

∥A j∥ ∥1/j<br />

(6.6)<br />

46 Zur Er<strong>in</strong>nerung: Auch wenn <strong>die</strong> Matrix reell ist, können ihre Eigenwerte sehr wohl komplex se<strong>in</strong>,<br />

daher ist das Spektrum <strong>in</strong> Normalfall e<strong>in</strong>e Teilmenge der komplexen Ebene.


84 6 ITERATIVE VERFAHREN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Beweis: Wir erweitern das Problem auf C n , es sei also jetzt ‖ · ‖ e<strong>in</strong>e Fortsetzung der<br />

Vektornorm auf C n47 .<br />

Sei λ ∈ S(A) und x ∈ C n e<strong>in</strong> dazugehöriger Eigenvektor mit ‖x‖ = 1. Dann ist<br />

∥<br />

∥A j∥ ∥ ∥ ∥∥A ≥ j x∥ = |λ| j ‖x‖ = |λ| j<br />

und damit ist<br />

lim sup<br />

j→∞<br />

∥<br />

∥A j∥ ∥1/j ≥ ρ(A).<br />

Für <strong>die</strong> Umkehrung gibt es e<strong>in</strong>e <strong>in</strong>vertierbare Matrix S ∈ C n×n , <strong>die</strong> A <strong>in</strong> ihre Jordan–<br />

Normalform<br />

⎡<br />

⎤<br />

λ 1 ∗<br />

S −1 . .<br />

AS =: J =<br />

.<br />

. . .<br />

⎢<br />

⎥<br />

⎣ λ n−1 ∗ ⎦ , |λ 1| ≤ · · · ≤ |λ n | , ∗ ∈ {0, 1}.<br />

λ n<br />

überführt. Für jedes ε > 0 sei außerdem<br />

⎡<br />

1<br />

D ε = ⎢<br />

⎣<br />

ε<br />

⎤<br />

. ..<br />

⎥<br />

⎦ ,<br />

ε n−1<br />

dann ist<br />

und daher<br />

D ε JD −1<br />

ε =<br />

∥ ∥∥Dε<br />

JD −1<br />

ε<br />

⎡<br />

⎢<br />

⎣<br />

λ 1<br />

∗<br />

. .. . ..<br />

λ n−1<br />

⎤<br />

⎥ , ∗ ∈ {0, ε}<br />

∗ ⎦<br />

λ n<br />

∥ = |λ n | + f(ε), f ∈ C(R), f(0) = 0.<br />

Somit ist, für festes ε > 0,<br />

∥ ∥<br />

∥<br />

∥A j∥ ∥ ∥∥∥ j∥∥∥ ∥ ≤ ‖S‖<br />

(S AS) ∥ ∥ −1 ∥∥S −1 ∥ ∥∥J ∥ = κ(S)<br />

j ( ) ∥ j∥∥∥<br />

∥ ≤ κ(S) κ (Dε )<br />

∥ D ε JD −1<br />

ε<br />

∥<br />

≤ κ(S) κ (D ε ) ∥D ε JD −1<br />

∥ j = κ(S) κ (D ε ) (|λ n | + f(ε)) j ,<br />

ε<br />

also ist<br />

lim sup<br />

j→∞<br />

∥<br />

∥A j∥ ∥1/j ≤ lim sup<br />

j→∞<br />

(κ(S) κ (D ε )) 1/j (|λ<br />

} {{ } n | + f(ε)) ,<br />

=1<br />

47 Die p–Normen lassen sich beispielsweise ohne Änderung auf C n übertragen, nur spielt der Betrag<br />

jetzt e<strong>in</strong>e etwas wesentlichere Rolle.


6.1 Der Spektralradius und e<strong>in</strong> allgeme<strong>in</strong>es Konvergenzkriterium 85<br />

und damit<br />

lim sup<br />

j→∞<br />

∥<br />

∥A j∥ ∥1/j ≤ max<br />

λ∈S(A)<br />

was mit ε → 0 den Beweis vervollständigt.<br />

|λ| + f(ε),<br />

□<br />

Bemerkung 6.6 (Spektralradius)<br />

1. Es ist schon wichtig, komplexe Eigenwerte mitzuberücksichtigen: <strong>die</strong> Matrix<br />

[ ] 0 −1<br />

A =<br />

1 0<br />

hat <strong>die</strong> (konjugiert) komplexen Eigenwerte ±i, ihr reelles Spektrum ist h<strong>in</strong>gegen leer.<br />

Trotzdem ist ρ(A) = 1, was man auch aus (6.6) erhält, da A 2 = −I ist.<br />

2. Der Vorteil von (6.6) besteht dar<strong>in</strong>, daß wir hiermit den Spektralradius e<strong>in</strong>er Matrix mit<br />

reellen Mitteln“ bestimmen können.<br />

”<br />

3. Außerdem ist (6.6) von der gewählten Norm unabhängig. Dies kann man auch ganz<br />

e<strong>in</strong>fach direkt e<strong>in</strong>sehen, <strong>in</strong>dem man sich daran er<strong>in</strong>nert, daß auf dem R n alle Normen<br />

äquivalent s<strong>in</strong>d.<br />

Nun aber zum angekündigten Konvergenzkriterium.<br />

Satz 6.7 Das Iterationsverfahren (6.5) konvergiert genau dann für jeden Startvektor x (0) ∈<br />

C n , wenn<br />

( )<br />

ρ I − B −1 A < 1. (6.7)<br />

Beweis: Ist (6.7) erfüllt, dann gibt es e<strong>in</strong>en Index m > 0, so daß<br />

das heißt, <strong>die</strong> Abbildung<br />

F(x) :=<br />

(<br />

I − B −1 A) m<br />

x<br />

∥ ( I − B −1 A ) m ∥ ∥ ∥ < 1,<br />

ist e<strong>in</strong>e Kontraktion und konvergiert, nach Satz 6.2 gegen e<strong>in</strong>en e<strong>in</strong>deutigen Fixpunkt<br />

x ∗ , d.h., für j = 0, . . . , m − 1 gilt<br />

F k ( x (j)) = x (j+km) → x ∗ ,<br />

also konvergiert auch <strong>die</strong> ganze Folge.<br />

Nehmen wir umgekehrt an, daß das Iterationsverfahren (6.5) gegen x ∗ ∈ C n konvergiert<br />

und sei y ∈ C n e<strong>in</strong> Eigenvektor von ( I − B −1 A ) zum betragsgrößten Eigenwert<br />

λ. Setzen wir x (0) = x ∗ + y, dann ist<br />

x (1) − x ∗ =<br />

( )<br />

I − B −1 A<br />

x (0) + B −1 b −<br />

( )<br />

I − B −1 A<br />

x ∗ − B −1 b =<br />

( )<br />

I − B −1 A y = λy,


86 6 ITERATIVE VERFAHREN FÜR LINEARE GLEICHUNGSSYSTEME<br />

sowie allgeme<strong>in</strong><br />

und Konvergenz liefert |λ| < 1.<br />

x (j) − x ∗ = λ j y,<br />

Für unsere Zwecke ist <strong>die</strong> folgende reelle Aussage h<strong>in</strong>– und ausreichend.<br />

Korollar 6.8 Das Iterationsverfahren (6.5) konvergiert für jeden Startvektor x (0) ∈ R n wenn<br />

1. ρ ( I − B −1 A ) < 1.<br />

2. ∥ I − B −1 A ∥ < 1 für e<strong>in</strong>e Operatornorm ‖ · ‖.<br />

Man kann sogar Aussagen über <strong>die</strong> Konvergenzgeschw<strong>in</strong>digkeit machen und es<br />

dürfte nicht überraschend se<strong>in</strong>, daß <strong>die</strong> Konvergenz umso schneller ist, je kle<strong>in</strong>er der<br />

Spektralradius ist.<br />

Satz 6.9 Die Matrix A ∈ R n×n erfülle ρ ( I − B −1 A ) < 1 und es sei x <strong>die</strong> Lösung von<br />

Ax = b. Dann gilt, für jeden Startvektor x (0) ,<br />

⎛<br />

∥<br />

∥x (j) ⎞1/j<br />

− x∥<br />

( )<br />

lim sup ⎝<br />

∥<br />

j→∞ x (0) − x ∥ ⎠<br />

≤ ρ I − B −1 A . (6.8)<br />

Beweis: Nach Proposition 6.5 gibt es für alle ε ∈ ( 0, 1 − ρ ( I − B −1 A )) e<strong>in</strong>en Index<br />

j 0 ∈ N und e<strong>in</strong>e Konstante C > 0, so daß<br />

( ∥ j∥∥∥ ( (<br />

j ∥ I − B A) −1 ≤ C ε + ρ I − B A)) −1 < 1, j > j0 ,<br />

□<br />

und somit ist<br />

∥<br />

∥x (j) − x∥ =<br />

≤<br />

( ) j (<br />

∥ I − B −1 A x (0) − x) ∥ ( ∥ j∥∥∥ ∥ ∥∥ ≤<br />

∥ I − B A) −1 ∥∥x (0) − x∥<br />

( (<br />

j ∥ C ε + ρ I − B A)) −1 ∥∥x (0) − x∥ , j > j 0 ,<br />

also<br />

lim sup<br />

j→∞<br />

und da ε beliebig war, folgt (6.8)<br />

⎛<br />

∥<br />

∥x (j) ⎞<br />

− x∥<br />

⎝<br />

∥ x (0) − x ∥ ⎠<br />

1/j<br />

( )<br />

≤ ε + ρ I − B −1 A<br />

Die Konvergenzordnung, <strong>die</strong> (6.8) suggeriert, ist<br />

( )<br />

‖x (j) − x‖ ≤ Cρ j . ρ = I − B −1 A < 1,<br />

□<br />

der Fehler fällt also exponentiell. Ist beispielsweise ρ = 1/10, dann htte man also <strong>die</strong><br />

Fehler 1/10, 1/100, 1/1000 und so weiter, <strong>in</strong> jedem Interationsschritt wird also e<strong>in</strong>e<br />

Dezimalstelle des Ergebnisses korrekt. Aus <strong>die</strong>sem Grund wird <strong>die</strong>ses Kovergenzverhalten<br />

auch als l<strong>in</strong>eare Konvergenz bezeichnet.


6.2 Gauß–Seidel–Iteration und Jacobi–Iteration 87<br />

6.2 Gauß–Seidel–Iteration und Jacobi–Iteration<br />

Er<strong>in</strong>nern wir uns an unsere Anforderungen an <strong>die</strong> Matrix B für <strong>die</strong> implizite Iteration<br />

Bx (j+1) = b − (A − B)x (j) ,<br />

also Invertierbarkeit und e<strong>in</strong>fache Bestimmbarkeit aus A. Der e<strong>in</strong>fachste Fall ist sicherlich<br />

B = diag [ a jj : j = 1, . . . , n ] ,<br />

vorausgesetzt natürlich, daß a jj ̸= 0, j = 1, . . . , n. Und das ist auch bereits das Jacobi–<br />

Verfahren, <strong>in</strong> der deutschsprachigen Literatur auch gerne als Gesamtschrittverfahren<br />

bezeichnet:<br />

⎡<br />

⎢<br />

⎣<br />

a 11<br />

. . .<br />

beziehungsweise<br />

x (j+1)<br />

k<br />

=<br />

⎤<br />

⎥<br />

⎦ x (j+1) = b −<br />

a nn<br />

⎛<br />

⎝b k − ∑ r̸=k<br />

a kr x (j)<br />

r<br />

⎡<br />

⎤<br />

0 a 12 . . . a 1n<br />

. a .<br />

⎢ 21 .<br />

. . .<br />

.<br />

⎣ .<br />

. .. .<br />

⎥<br />

.. an−1,n<br />

⎦ x(j) (6.9)<br />

a n1 . . . a n,n−1 0<br />

⎞<br />

⎠ /a kk , k = 1, . . . , n. (6.10)<br />

Bei der Gauß–Seidel–Iteration, dem E<strong>in</strong>zelschrittverfahren, setzt man<br />

⎡<br />

⎤<br />

a 11 0<br />

⎢<br />

B = ⎣ .<br />

..<br />

⎥ . ⎦ ,<br />

a n1 . . . a nn<br />

also<br />

⎡<br />

⎢<br />

⎣<br />

⎡<br />

⎤<br />

a 11 0<br />

.<br />

. ..<br />

⎥<br />

⎦ x (j+1) = b − ⎢<br />

⎣<br />

a n1 . . . a nn<br />

beziehungsweise<br />

(<br />

x (j+1) ∑k−1<br />

k<br />

= b k − a kr x (j+1)<br />

r<br />

r=1<br />

−<br />

n∑<br />

r=k+1<br />

a kr x (j)<br />

r<br />

0 a 12 . . . a 1n<br />

. .. . .. .<br />

. .. an−1,n<br />

0<br />

)<br />

⎤<br />

⎥<br />

⎦ x(j) , (6.11)<br />

/a kk , k = 1, . . . , n. (6.12)<br />

Es gibt noch e<strong>in</strong>e andere Interpretation von (6.12), nämlich daß bei der Bestimmung<br />

von x (j+1)<br />

k<br />

noch <strong>die</strong> alten“ Komponenten x (j)<br />

” k+1 , . . . , x(j) n , aber schon <strong>die</strong> neuen“ Komponenten<br />

x (j+1)<br />

1<br />

”<br />

, . . . , x (j+1)<br />

k−1<br />

verwendet werden, <strong>die</strong> man ja gerade eben berechnet hat.<br />

Man verwendet also alte“ Werte nur noch dort, wo noch ke<strong>in</strong>e aktualisierten Werte<br />

”<br />

vorhanden s<strong>in</strong>d.<br />

Was ist nun der Vorteil von solchen iterativen Verfahren?


88 6 ITERATIVE VERFAHREN FÜR LINEARE GLEICHUNGSSYSTEME<br />

%% JacobiIt.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Jacobi-Iterationsschritt<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

%% x Naeherung fuer Loesung<br />

%% b rechte Seite<br />

function y = JacobiIt( A,x,b )<br />

n = length( A );<br />

y = zeros( n,1 );<br />

for j = 1:n<br />

z = b ( j ) - A( j,1:j-1 ) * x( 1:j-1 ) - A( j,j+1:n ) * x( j+1:n );<br />

y( j ) = z / A( j,j );<br />

end<br />

%endfunction<br />

Programm 6.1 JacobiIt.m: E<strong>in</strong>e Jacobi–Iteration nach (6.10).<br />

1. Der Rechenaufwand je Iterationsschritt hängt l<strong>in</strong>ear von der Anzahl der Elemente<br />

a jk ̸= 0 ab. Damit s<strong>in</strong>d solche Verfahren gut geeignet für große, dünnbesetzte<br />

Matrizen.<br />

2. Wenn <strong>die</strong> Matrix ”<br />

gutartig“ ist (also das Iterationsverfahren schnell konvergiert),<br />

kann der Rechenaufwand weit besser als O ( n 3) se<strong>in</strong>: jeder Iterationsschritt hat ja<br />

” nur“ O ( n 2) Operationen durchzuführen – und der Fehler fällt dabei immerh<strong>in</strong><br />

wie ρ ( I − B −1 A ) j , was bei gut konditionierten Matrizen 48 sehr schnell zu sehr<br />

guten Näherungen führen kann.<br />

3. Das Jacobi–Verfahren ist noch dazu sehr gut parallelisierbar: Die Berechnungen<br />

der e<strong>in</strong>zelnen E<strong>in</strong>träge von x (j+1) s<strong>in</strong>d (nahezu) unabhängig vone<strong>in</strong>ander, nur der<br />

Vektor x (j) muß ”<br />

gespiegelt“ werden. Für das Gauß–Seidel–Verfahren h<strong>in</strong>gegen<br />

ist das Parallelisierungspotential sehr e<strong>in</strong>geschränkt.<br />

Was aber helfen uns <strong>die</strong>se schönen Verfahren, wenn wir nicht wissen, ob und wann<br />

sie funktionieren. Natürlich kann man immer <strong>die</strong> Spektralra<strong>die</strong>n testen, aber das ist<br />

nicht so e<strong>in</strong>fach.<br />

Satz 6.10 Ist A ∈ R n×n symmetrisch und positiv def<strong>in</strong>it, dann konvergiert das Gauß–Seidel–<br />

Verfahren.<br />

48 Also solchen mit kle<strong>in</strong>em Spektralradius


6.2 Gauß–Seidel–Iteration und Jacobi–Iteration 89<br />

%% Jacobi.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Jacobi-Verfahren<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

%% b rechte Seite<br />

%% tol Genauigkeit<br />

function x = Jacobi( A,b,tol )<br />

n = length( A );<br />

x = zeros( n,1 );<br />

nrm = norm( A*x - b );<br />

while ( nrm > tol )<br />

disp( nrm );<br />

x = JacobiIt( A,x,b );<br />

nrm = norm( A*x - b );<br />

end<br />

%endfunction<br />

Programm 6.2 Jacobi.m: Das Jacobi–Verfahren.


90 6 ITERATIVE VERFAHREN FÜR LINEARE GLEICHUNGSSYSTEME<br />

%% GaussSeidelIt.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Gauss-Seidel-Iterationsschritt mit Ueberschreiben von x<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

%% b rechte Seite<br />

%% x Naeherung fuer Loesung<br />

function y = GaussSeidelIt( A,x,b )<br />

n = length( A );<br />

for j = 1:n<br />

z = b ( j ) - A( j,1:j-1 ) * x( 1:j-1 ) - A( j,j+1:n ) * x( j+1:n );<br />

x( j ) = z / A( j,j ); %% x statt y !!!<br />

end<br />

y = x;<br />

%endfunction<br />

Programm 6.3 GaussSeidelIt.m: E<strong>in</strong>e Gauß–Seidel–Iteration nach (6.12).<br />

%% GaussSeidel.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Gauss-Seidel-Verfahren<br />

%% E<strong>in</strong>gabe:<br />

%% A Matrix<br />

%% b rechte Seite<br />

%% tol Genauigkeit<br />

function x = GaussSeidel( A,b,tol )<br />

n = length( A );<br />

x = zeros( n,1 );<br />

nrm = norm( A*x - b );<br />

while ( nrm > tol )<br />

disp( nrm );<br />

x = GaussSeidelIt( A,x,b );<br />

nrm = norm( A*x - b );<br />

end<br />

%endfunction<br />

Programm 6.4 GaussSeidel.m: Das Gauß–Seidel–Verfahren.


6.2 Gauß–Seidel–Iteration und Jacobi–Iteration 91<br />

Beweis: Wir verwenden <strong>die</strong> Zerlegung<br />

A = L<br />

}<br />

+<br />

{{<br />

D<br />

}<br />

+ L T<br />

=B<br />

,<br />

}{{}<br />

=A−B<br />

wobei L e<strong>in</strong>e strikte untere Dreiecksmatrix ist, das heißt, l jj = 0, j = 1, . . . , n. Wir<br />

müssen nun also zeigen, daß<br />

(<br />

) (<br />

)<br />

ρ(G) := ρ B −1 (B − A) = ρ −(L + D) −1 L T < 1. (6.13)<br />

Wegen der positiven Def<strong>in</strong>itheit von A ist d jj = a jj > 0, j = 1, . . . , n 49 , und damit ist<br />

<strong>die</strong> Matrix G 1 , def<strong>in</strong>iert durch<br />

G 1 := D 1/2 GD −1/2 = −D 1/2 (L + D) −1 L T D −1/2<br />

= −D 1/2 (L + D) −1 D 1/2 D −1/2 L T D −1/2<br />

(<br />

= − D −1/2 (L + D) D −1/2) −1 (<br />

} D −1/2 {{ LD −1/2 ) T<br />

} = − (I + L1 ) −1 L T 1<br />

=:L 1<br />

wohldef<strong>in</strong>iert und ähnlich zu G und hat deswegen auch <strong>die</strong>selben Eigenwerte wie G 50 .<br />

Sei nun x ∈ C n , x H x = 1 51 , e<strong>in</strong> Eigenvektor von G 1 zum Eigenwert λ, dann heißt <strong>die</strong>s,<br />

daß<br />

−L T 1 x = λ (I + L 1) x<br />

und somit<br />

−<br />

x H L T 1 x } {{ }<br />

=(L 1 x) H x=(x H L 1 x) H =x H L 1 x<br />

Schreiben wir x H L 1 x = α + iβ, dann ist<br />

|λ| 2 =<br />

−α + iβ<br />

∣1 + α + iβ∣<br />

2<br />

=<br />

( )<br />

= λ 1 + x H L 1 x .<br />

α 2 + β 2<br />

1 + 2α + α 2 + β 2 . (6.14)<br />

Auf der anderen Seite ist A und damit auch D −1/2 AD −1/2 = I + L 1 + L T 1 symmetrisch<br />

und positiv def<strong>in</strong>it 52 , also<br />

( )<br />

0 < x H I + L 1 + L T 1 x = 1 + x H L 1 x + x<br />

} {{ }<br />

H L T 1 x = 1 + 2α,<br />

} {{ }<br />

=α+iβ =α−iβ<br />

was, <strong>in</strong> (6.14) e<strong>in</strong>gesetzt, |λ| < 1 liefert.<br />

49 Sonst wäre e T j Ae j ≤ 0 für e<strong>in</strong> j.<br />

50 Ist y e<strong>in</strong> Eigenvektor von G zum Eigenwert λ, dann ist D 1/2 y e<strong>in</strong> Eigenvektor von G 1 zum Eigenwert<br />

λ und umgekehrt.<br />

51 x H = [ x j : j = 1, . . . , n ] T<br />

52 Zur Er<strong>in</strong>nerung: Bei e<strong>in</strong>er komplexen Matrix gehört es zur Def<strong>in</strong>ition von positiver Def<strong>in</strong>itheit, daß<br />

<strong>die</strong> Matrix hermitesch ist. Bei rellen Matrizen fordert man es oder eben auch nicht . . .<br />


92 6 ITERATIVE VERFAHREN FÜR LINEARE GLEICHUNGSSYSTEME<br />

Def<strong>in</strong>ition 6.11 E<strong>in</strong>e Matrix A ∈ R n×n heißt zeilenweise diagonaldom<strong>in</strong>ant, wenn <strong>die</strong><br />

Diagonalelemente den Rest“ der Zeile im Absolutbetrag dom<strong>in</strong>ieren, wenn also<br />

”<br />

a jj ≥ ∑ ∣ ∣<br />

∣a jk , j = 1, . . . , n,<br />

k̸=j<br />

gilt. Diagonaldom<strong>in</strong>ante Matrizen haben <strong>in</strong>sbesondere nichtnegative Diagonale<strong>in</strong>träge.<br />

Satz 6.12 (Diagonaldom<strong>in</strong>anz und Konvergenz) Ist A ∈ R n×n zeilenweise strikt diagonaldom<strong>in</strong>ant,<br />

so konvergieren das Jacobi- und das Gauß–Seidel–Verfahren.<br />

Beweis: Für <strong>die</strong> Zerlegung aus dem Jacobi–Verfahren (B = diag A) gilt<br />

∥<br />

∥I − B −1 1 ∑ ∣ ∣<br />

A∥ = max<br />

∣<br />

∞ ∣ ajj ∣a jk j=1,...,n<br />

und im Falle strikt diagonaldom<strong>in</strong>anter Matrizen ist somit<br />

( )<br />

ρ I − B −1 ∥<br />

A ≤ ∥I − B −1 A∥ < 1.<br />

∞<br />

Für Gauß–Seidel müssen wir uns e<strong>in</strong> bißchen mehr anstrengen. Hierzu schreiben wir<br />

k̸=j<br />

A = L + D + U, l jj = u jj = 0,<br />

wobei d jj ̸= 0 ist, und setzen L 1 = −D −1 L, U 1 = −D −1 U. Die zu betrachtende Matrix<br />

ist<br />

I − B −1 A = I − (L + D) −1 (L + D + U) = I − (−DL 1 + D) −1 (L + D + U)<br />

= I − (I − L 1 ) −1 D −1 (L + D + U) = I − (I − L 1 ) −1 (I − L 1 − U 1 )<br />

= I − I + (I − L 1 ) −1 U 1 = (I − L 1 ) −1 U 1 =: H,<br />

außerdem schreiben wir J := L 1 + U 1 = I − D −1 A. Da ‖1 n ‖ ∞<br />

= 1, ist (wg. der strikten<br />

Zeilendiagonaldom<strong>in</strong>anz)<br />

|J| 1 n ≤ ‖J‖ ∞<br />

1 n < 1 n<br />

und da |J| = |L 1 | + |U 1 |, ist<br />

|U 1 | 1 n = (|J| − |L 1 |) 1 n ≤ ( ‖J‖ ∞<br />

I − |L 1 | ) 1 n . (6.15)<br />

L 1 und |L 1 | s<strong>in</strong>d strikte untere Dreiecksmatrizen und damit nilpotent, das heißt,<br />

{<br />

L n 1 = |L 1| n (I − L<br />

= 0 ⇒<br />

1 ) −1 = I + L 1 + · · · + L n−1<br />

1<br />

(I − |L 1 |) −1 = I + |L 1 | + · · · + |L 1 | n−1<br />

und damit ist<br />

∣<br />

∣(I − L 1 ) −1∣ ∣ ∣ ∣∣I = + L1 + · · · + L n−1<br />

∣ ≤ I + |L 1 | + · · · + |L 1 | n−1 = (I − |L 1 |) −1 . (6.16)<br />

1


6.2 Gauß–Seidel–Iteration und Jacobi–Iteration 93<br />

Mit (6.15) und (6.16) ist demnach<br />

∣<br />

|H| 1 n ≤ ∣(I − L 1 ) −1∣ ∣ |U1 | 1 n ≤ (I − |L 1 |) −1 ( ‖J‖ ∞<br />

I − |L 1 | ) 1 n<br />

= (I − |L 1 |) −1 ( I − |L 1 | + ( ‖J‖ ∞<br />

− 1 ) I ) 1 n<br />

= 1 n + ( ‖J‖ ∞<br />

− 1 )<br />

(I − |L 1 |) −1 1<br />

} {{ } } {{ } n<br />


94 7 AUSGLEICHSRECHNUNG<br />

Für den Ausgleichsanspruch nach<br />

§1587g Abs. 1 Satz 1 gelten <strong>die</strong> §§ 1580,<br />

1585 Abs. 1 Satz 2,3 und §1585b Abs.<br />

2,3 entsprechend.<br />

BGB, §1587k. Abs. 1<br />

Ausgleichsrechnung 7<br />

Bisher haben wir uns mit quadratischen l<strong>in</strong>earen Gleichungssystemen der Form Ax = b,<br />

A ∈ R n×n und deren numerischer Lösung beschäftigt, das heißt, <strong>die</strong> Anzahl der Gleichung<br />

und <strong>die</strong> Anzahl der Unbekannten stimmen übere<strong>in</strong> – e<strong>in</strong>e notwendige Voraussetzung<br />

wenn man für alle rechten Seiten b e<strong>in</strong>e e<strong>in</strong>deutige Lösung erhalten will.<br />

Diese Theorie läßt sich relativ e<strong>in</strong>fach auf unterbestimmte Gleichungssysteme erweitern,<br />

bei denen man weniger Gleichungen als Unbekannte hat. Man verliert zwar <strong>die</strong><br />

E<strong>in</strong>deutigkeit der Lösung, aber solange <strong>die</strong> Matrix vollen Rang hat, kann man sich<br />

(zum<strong>in</strong>dest formal) auf e<strong>in</strong> e<strong>in</strong>deutig lösbares Teilsystem zurückziehen 53 . Besser macht<br />

man es aber auf andere Art und Weise<br />

7.1 Inverse Probleme – e<strong>in</strong> kurzer Exkurs<br />

Nehmen wir jetzt also an, wir hätten es mit e<strong>in</strong>em unterbestimmten l<strong>in</strong>earen Gleichungssystem<br />

Ax = b, A ∈ R m×n , m < n, b ∈ R m , (7.1)<br />

zu tun, dessen Matrix A, der E<strong>in</strong>fachheit halber, aber den maximalen Rang m hat 54 .<br />

Anstatt nun aber den Lösungsraum e<strong>in</strong>fach e<strong>in</strong>zuschränken, suchen wir uns <strong>in</strong> unserer<br />

Lösungsmenge e<strong>in</strong>e beste Lösung, wobei natürlich noch klarstellen müssen, <strong>in</strong><br />

welchem S<strong>in</strong>ne <strong>die</strong> Lösung optimal zu se<strong>in</strong> hat.<br />

Bemerkung 7.1 Unterbestimmte Gleichungssysteme kommen <strong>in</strong> der Anwendungsrealität oft<br />

vor und zwar dann, wenn es um <strong>in</strong>verse Systeme geht. Dabei kennt man e<strong>in</strong>e (hoffentlich oder<br />

näherungsweise) l<strong>in</strong>eare Beziehung der Form y = Ax zwischen den (gesuchten) Regelgrößen<br />

x und den gemessenen Werten y, nur s<strong>in</strong>d es oftmals viel zu viele Regelgrößen und viel zu<br />

53 Die Auswahl der “besten” Lösung aus dem aff<strong>in</strong>en Lösungsraum ist h<strong>in</strong>gegen e<strong>in</strong> durchaus nichttriviales<br />

Problem.<br />

54 Das ist ohneh<strong>in</strong> der “generische” Fall, <strong>die</strong> Menge der Matrizen mit Rangdefekt bildet e<strong>in</strong>en Nullmenge<br />

<strong>in</strong> der Menger aller m × n–Matrizen.


7.1 Inverse Probleme – e<strong>in</strong> kurzer Exkurs 95<br />

wenige Messungen 55 . Das führt dann zu e<strong>in</strong>em unterbestimmten System, aus dem x nun <strong>in</strong><br />

irgende<strong>in</strong>er Form bestimmt werden muss.<br />

Abbildung 7.1: Optische Tomographie (l<strong>in</strong>ks). E<strong>in</strong> fluoreszierender Marker <strong>in</strong>nerhalb<br />

e<strong>in</strong>ens Lebewesens (hier e<strong>in</strong>e Maus) wird durch Laserbestrahlung aktiviert<br />

und das Streulicht am anderen Ende aufgesammelt. Aus <strong>die</strong>sen Informationen soll<br />

<strong>die</strong> Lage des Markers rekonstruiert werden.<br />

Im physikalischen Modell (rechts) wird der Lichtaustausch zwischen benachbarten<br />

Zellen durch entsprechende Beugungs-, Reflektions- und Absorptionsgesetze ermittelt,<br />

woraus sich der Lichte<strong>in</strong>fall auf den Detektoren ergibt.<br />

Beispiel 7.2 (Optische Tomographie) In der optischen Tomographie werden Objekte, normalerweise<br />

Lebewesen 56 ausschließlich mit Hilfe von sichtbarem Licht durchleuchtet, wobei im<br />

Inneren e<strong>in</strong> fluoreszierender Marker plaziert wird, siehe Abb. 7.1, der durch das e<strong>in</strong>fallende<br />

(Laser-) Licht aktiviert wird. Es kl<strong>in</strong>gt e<strong>in</strong> wenig abwegig mit Hilfe von Licht durch e<strong>in</strong>e Maus<br />

“h<strong>in</strong>durchschauen” zu wollen, aber tatsächlich kommt wirklich e<strong>in</strong>iges an Licht auf der anderen<br />

Seite des Objekts an, allerd<strong>in</strong>gs durch <strong>die</strong> Moleküle 57 gestreut und gebrochen.<br />

Zur Modellierung <strong>die</strong>ses Problems teilt man jeden Schnitt durch das Objekt und se<strong>in</strong>e<br />

Umgebung <strong>in</strong> kle<strong>in</strong>e Quadrate e<strong>in</strong> und modelliert den Lichtaustausch zwischen <strong>die</strong>sen Quadraten<br />

58 sowie den Randquadraten und den Detektoren. Bezeichnet x ∈ R MN <strong>die</strong> Licht<strong>in</strong>tesität an<br />

den Quadraten des M × N–Gitters und y ∈ R K <strong>die</strong> gemessenen Werte an den K Detektoren,<br />

<strong>die</strong> um das Objekt herum oder h<strong>in</strong>ter dem Objekt angebracht s<strong>in</strong>d, dann erhalten wir e<strong>in</strong> Gleichunssystem<br />

der Form<br />

y = Ax, A ∈ R K×MN .<br />

55 Die Anzahl der Messungen kann aus vielerlei Gründen beschränkt se<strong>in</strong>: Kosten, technische Randbed<strong>in</strong>gungen,<br />

Zeitbegrenzung . . .<br />

56 Und <strong>in</strong> <strong>die</strong>sem S<strong>in</strong>ne eigentlich eher Subjekte als Objekte.<br />

57 Bekanntlicherweise bei Lebewesen zumeist Wasser.<br />

58 Der E<strong>in</strong>fachheit halber werden hier normalerweise QUadrate und deren Nachbarn betrachtet.


96 7 AUSGLEICHSRECHNUNG<br />

Ab e<strong>in</strong>er bestimmten Rekonstruktionsgenauigkeit hat man dann aber mit Sicherheit wesentlich<br />

mehr Quadrate als Detektoren und das Problem wird massiv unterbestimmt!<br />

Jetzt aber genug der Realität und zurück zur Theorie. Da unser unterbestimmtes Gleichungssytem<br />

Ax = b aus (7.1) normalerweise jede Menge Lösungen hat, genauer<br />

gesagt, e<strong>in</strong>en n − m–dimensionalen Lösungsraum, müssen wir uns aus <strong>die</strong>sen Lösungen<br />

e<strong>in</strong>e passende Lösung aussuchen – warum also nicht gleich <strong>die</strong> Beste? Dazu lösen<br />

wir das Optimierungsproblem<br />

m<strong>in</strong><br />

x<br />

γ(x), Ax = b, (7.2)<br />

mit e<strong>in</strong>em vorgegeben Gütefunktional γ : R n → R, das zum<strong>in</strong>dest nach unten<br />

beschränkt se<strong>in</strong> sollte 59 ; <strong>die</strong>se untere Schranke können wir dann auch gleich auf Null<br />

setzen und so γ : R n → R + annehmen. Beliebte Werte für γ s<strong>in</strong>d γ(x) = ‖x‖ p ,<br />

1 ≤ p ≤ ∞, oder<br />

γ(x) = 1 2 xT Bx, B positiv def<strong>in</strong>it. (7.3)<br />

Die Lösung von (7.3) wollen wir uns noch schnell etwas genauer ansehen. Dazu er<strong>in</strong>nern<br />

wir uns, daß e<strong>in</strong> notwendiges Kriterium für <strong>die</strong> Existenz e<strong>in</strong>es Extremums von<br />

f : R N → R unter der Nebenbed<strong>in</strong>ung g(x) = 0, g : R n → R m , durch <strong>die</strong> Existenz<br />

Lagrange–Multiplikatoren λ ∈ R m gegeben ist, daß also<br />

∇f(x) − ∇g(x) λ = 0, ∇g :=<br />

[ ∂<br />

∂x j<br />

g k :<br />

j = 1, . . . , n<br />

k = 1, . . . , m<br />

]<br />

, (7.4)<br />

gelten muss. Dieses Resultat lernt man entweder <strong>in</strong> der Analysis unter dem Stichwort<br />

“Extrema unter Nebenbed<strong>in</strong>gungen”, siehe z.B. [16], oder <strong>in</strong> der Optimierung, siehe<br />

z.B. [35, 40]. Mit f(x) =<br />

2 1xT Bx und g(x) = Ax − b ist nun ganz e<strong>in</strong>fach ∇f(x) = Bx<br />

sowie ∇g(x) = A T , so daß unsere gesuchte Optimallösung als Lösung von<br />

[ ] ]<br />

B A<br />

T<br />

Bx − A T λ = 0<br />

Ax = b<br />

⇔<br />

A 0<br />

] [ x<br />

−λ<br />

[ 0<br />

=<br />

b<br />

gegeben ist. Daß <strong>die</strong>ses Extremum e<strong>in</strong> M<strong>in</strong>imum se<strong>in</strong> muss, liegt an der Tatsache, daß<br />

x ↦→ x T Bx e<strong>in</strong> nach oben geöffnetes Paraboloid darstellt und deswegen nur e<strong>in</strong> M<strong>in</strong>imum<br />

haben kann, siehe auch den Beweis von Proposition 7.6. Anders gesagt: Die<br />

M<strong>in</strong>imallösung bestimmt man durch Lösen des symmetrischen quadratischen m + n ×<br />

m + n–Systems<br />

[<br />

B A<br />

T<br />

Cx = d, C =<br />

A 0<br />

] [ 0<br />

, d =<br />

b<br />

]<br />

, (7.5)<br />

wobei man sich nur um <strong>die</strong> ersten n Variablen zu kümmern braucht, <strong>die</strong> Werte von λ<br />

<strong>in</strong>teressieren ja herzlich wenig.<br />

Übung 7.1 Zeigen Sie: Hat A den maximalen Rang m, dann ist C aus (7.5) <strong>in</strong>vertierbar.<br />

♦<br />

59 Sonst gibt es normalerweise ke<strong>in</strong> M<strong>in</strong>imum!


7.2 Nun aber überbestimmt 97<br />

7.2 Nun aber überbestimmt<br />

Jetzt geht es aber um überbestimmte l<strong>in</strong>eare Systeme der Form<br />

Ax ≃ b, A ∈ R m×n , m > n, b ∈ R m , (7.6)<br />

bei denen x ∈ R n gesucht wird. Im allgeme<strong>in</strong>en 60 wird das ”<br />

Gleichungssystem“ (7.6)<br />

nicht mehr lösbar se<strong>in</strong> 61 , weswegen man das folgende Ziel verfolgt:<br />

Man f<strong>in</strong>de x ∈ R n , so daß Ax − b möglichst kle<strong>in</strong> wird.<br />

“Möglichst kle<strong>in</strong>” kann beispielsweise bedeuten, daß man x so bestimmt, daß ‖Ax − b‖<br />

für e<strong>in</strong>e vorgegebene Vektornorm m<strong>in</strong>imiert wird – dabei wird das optimale x im allgeme<strong>in</strong>en<br />

sehr wohl von der gewählten Vektornorm abhängen.<br />

Beispiel 7.3 Für<br />

⎡<br />

A = ⎣<br />

1<br />

1<br />

1<br />

⎤<br />

⎡<br />

⎦ , b = ⎣<br />

⎤<br />

b 1<br />

b 2<br />

⎦ , b 1 ≤ b 2 ≤ b 3<br />

b 3<br />

haben <strong>die</strong> M<strong>in</strong>imallösungen x ∈ R für ‖Ax − b‖ p<br />

<strong>die</strong> folgende Gestalt:<br />

p = 1: Man sieht leicht, daß b 1 ≤ x ≤ b 3 gelten muß, und dann ist<br />

‖Ax − b‖ 1<br />

= (x − b 1 ) + |x − b 2 | + (b 3 − x) = b 3 − b 1 + |x − b 2 | ,<br />

was für x = b 2 m<strong>in</strong>imal wird.<br />

p = 2: Differenzieren von<br />

‖Ax − b‖ 2 2 = 3x2 − 2 (b 1 + b 2 + b 3 ) x + b 2 1 + b2 2 + b2 3<br />

liefert sofort, daß x = (b 1 + b 2 + b 3 ) /3.<br />

p = ∞: Da das Maximum von ∣ ∣ x − bj<br />

∣ ∣ immer entweder für j = 1 oder j = 3 angenommen<br />

wird, ist <strong>die</strong> optimale Wahl, x von beiden gleich weit entfernt se<strong>in</strong> zu lassen, also x =<br />

(b 3 + b 1 ) /2.<br />

Im Spezialfall b 1 = b 2 = b 3 =: b ergibt sich natürlich immer x = b, <strong>die</strong> Lösung des Gleichungssystems.<br />

60 Das hängt natürlich von der rechten Seite b ab.<br />

61 Daher auch das Symbol ”<br />

≃“ <strong>in</strong> (7.6).


98 7 AUSGLEICHSRECHNUNG<br />

Übung 7.2 Zeigen Sie: Die Summe<br />

n∑<br />

|x − b j |, b 1 ≤ . . . ≤ b n ,<br />

j=1<br />

wird durch den Median m<strong>in</strong>imiert, also<br />

{<br />

b<br />

x =<br />

m+1 , n = 2m + 1,<br />

1<br />

2 (b m + b m+1 ) , n = 2m.<br />

Wann ist <strong>die</strong> Lösung e<strong>in</strong>deutig?<br />

In <strong>die</strong>sem Kapitel soll aber nur <strong>die</strong> Norm<br />

♦<br />

‖·‖ 2<br />

: x ↦→ √ x T x<br />

betrachtet werden, was vor allem auch daran liegt, daß <strong>die</strong> Theorie am e<strong>in</strong>fachsten ist.<br />

Neuerd<strong>in</strong>gs haben sich Lösungen <strong>in</strong> der 1–Norm <strong>in</strong> vielerlei Anwendungen als besser<br />

erwiesen, oftmals s<strong>in</strong>d sie e<strong>in</strong>fach robuster gegen Ausreißer, siehe auch Übung 7.2.<br />

7.3 Least–squares–Lösungen und <strong>die</strong> Normalengleichungen<br />

Def<strong>in</strong>ition 7.4 E<strong>in</strong> Vektor x ∈ R n heißt Least–Squares–Lösung von (7.6), wenn<br />

‖Ax − b‖ 2<br />

≤ ‖Ay − b‖ 2<br />

, y ∈ R n .<br />

Bemerkung 7.5 Existiert e<strong>in</strong>e Lösung des Gleichungssystems (7.6), dann ist <strong>die</strong>se natürlich<br />

auch Least–Squares–Lösung.<br />

Das schöne an der ‖ · ‖ 2 –Norm ist <strong>die</strong> Tatsache, daß wir <strong>die</strong> Least–Squares–Lösung<br />

e<strong>in</strong>fach bestimmen können.<br />

Proposition 7.6 Sei A ∈ R m×n , m ≥ n. Dann ist jede Lösung x der Normalengleichungen<br />

e<strong>in</strong>e Lösung des Least–Squares–Problems (7.6) und umgekehrt.<br />

A}{{}<br />

T A x = A}{{}<br />

T b<br />

(7.7)<br />

∈R n×n ∈R n<br />

Korollar 7.7 Hat <strong>die</strong> Matrix A vollen Rang, dann ist <strong>die</strong> Lösung des Least–Squares–Problems<br />

e<strong>in</strong>deutig.<br />

Beweis: Hat A vollen Rang n, dann hat auch A T A ∈ R n×n den Rang n und ist damit<br />

<strong>in</strong>vertierbar. Damit gibt es aber auch (nur) genau e<strong>in</strong>e Lösung der Normalengleichungen.<br />


7.3 Least–squares–Lösungen und <strong>die</strong> Normalengleichungen 99<br />

Beweis von Proposition 7.6: Wir betrachten das (quadratische) Funktional<br />

‖Ax − b‖ 2 2<br />

= (Ax − b) T (Ax − b) = x T A T Ax − x T A T b − b T Ax + b T b<br />

= x T A T Ax − 2x T A T b + b T b,<br />

das genau dann durch x m<strong>in</strong>imiert wird, wenn <strong>die</strong> Norm durch x m<strong>in</strong>imiert wird. Ist<br />

nun x e<strong>in</strong> M<strong>in</strong>imalstelle, so muss<br />

0 = ∇ ‖Ax − b‖ 2 2 = 2AT Ax − 2A T b<br />

se<strong>in</strong>, siehe Übung 7.3, also hat jede Least–Squares–Lösung x sich an <strong>die</strong> Normalengleichungen<br />

(7.7) zu halten.<br />

Erfüllt umgekehrt x (7.7), dann erhalten wir für jedes y ∈ R n , daß<br />

‖Ay − b‖ 2 2<br />

= ‖Ax − b‖ 2 2 + (y − x)T A T A (y − x) −2x T A T Ax + 2y T A T Ax + 2 (x − y) T A T b<br />

} {{ }<br />

≥0<br />

≥<br />

‖Ax − b‖ 2 2 − 2 (x − y)T A} T {{ Ax}<br />

+2 (x − y) T A T b = ‖Ax − b‖ 2 2 ,<br />

=A T b<br />

also ‖Ax − b‖ 2<br />

≤ ‖Ay − b‖ 2<br />

und somit ist x auch e<strong>in</strong>e Least–Squares–Lösung.<br />

□<br />

Übung 7.3 Zeigen Sie: Ist B ∈ R n×n e<strong>in</strong>e symmetrische Matrix und F(x) := x T Bx,<br />

x ∈ R n , dann ist ∇F(x) = 2Bx.<br />

♦<br />

Bemerkung 7.8 Die notwendige und h<strong>in</strong>reichende Bed<strong>in</strong>gung (7.7) bedeutet, daß <strong>die</strong> Least–<br />

squares–Lösung so zu wählen ist, daß der Residuenvektor r := Ax − b <strong>die</strong> Bed<strong>in</strong>gung A T r =<br />

0 erfüllt, oder eben, daß r ∈ ker A T . Diese Bed<strong>in</strong>gung hat e<strong>in</strong>e geometrische Interpretation,<br />

siehe Abb. 7.2: Es sei<br />

V := R(A) := AR n := {Ax : x ∈ R n }<br />

der von (den Spalten von) A erzeugte Vektorraum 62 . Dann ist das orthogonale Komplement<br />

R n ⊖ R(A) =<br />

{<br />

x ∈ R n }<br />

: x T R(A) = 0<br />

gerade ker A T . Somit s<strong>in</strong>d <strong>die</strong> Least–Squares–Lösungen <strong>die</strong>jenigen Vektoren, bei denen der<br />

Residuenvektor senkrecht auf V steht.<br />

Damit hätten wir bereits e<strong>in</strong>en (naiven) Ansatz, um überbestimmte Gleichungssysteme<br />

zu lösen: wir verwenden das Cholesky–Verfahren aus Satz 5.4, um <strong>die</strong> Lösung von<br />

A T Ax = A T b zu bestimmen, was zu e<strong>in</strong>er Zerlegung<br />

A T A = GG T<br />

führt; dabei ist G aber e<strong>in</strong> quadratischer Faktor, im Gegensatz zu A. Allerd<strong>in</strong>gs führt<br />

der Übergang zu e<strong>in</strong>em Gleichungssystem bezüglich A T A, also <strong>die</strong> “Quadrierung” der<br />

Matrix auch zu e<strong>in</strong>er Quadrierung des Fehlers.<br />

62 R(A) steht für “Range” von A.


100 7 AUSGLEICHSRECHNUNG<br />

b<br />

.<br />

b-Ax<br />

y=Ax<br />

A<br />

Abbildung 7.2: Geometrische Interpretation der Least–squares–Lösung: Der Fehler<br />

ist orthogonal zum Vektor Ax.<br />

Beispiel 7.9 Es sei A ∈ R n+1×n gegeben durch<br />

⎡<br />

⎤<br />

1 1 . . . 1<br />

ε<br />

A =<br />

ε<br />

,<br />

⎢<br />

⎣<br />

. ..<br />

⎥<br />

⎦<br />

ε<br />

dann ist<br />

⎡<br />

A T A = ⎢<br />

⎣<br />

1 ε<br />

1 ε<br />

.<br />

. . .<br />

1 ε<br />

⎤<br />

⎥<br />

⎦<br />

⎡<br />

⎢<br />

⎣<br />

1 1 . . . 1<br />

ε<br />

ε<br />

. . .<br />

ε<br />

⎤<br />

⎡<br />

= ⎢<br />

⎥ ⎣<br />

⎦<br />

1 + ε 2 ⎤<br />

1 . . . 1<br />

1 1 + ε 2 . . .<br />

.<br />

.<br />

. .. . ⎥<br />

.. 1 ⎦ .<br />

1 . . . 1 1 + ε 2<br />

Diese Matrix ist quadratisch schlechter konditioniert als <strong>die</strong> Ausgangsmatrix! Denn da B :=<br />

A T A = 1 n 1 T n + ε 2 I, ist jeder Vektor y ∈ R n mit 1 T ny = 0 e<strong>in</strong> Eigenvektor von B zum Eigenwert<br />

ε 2 . Außerdem ist<br />

( )<br />

B 1 n = 1 n 1 T n1 n +ε 2 1 n =<br />

} {{ }<br />

=n<br />

Also ist, unter Verwendung des Spektralradius,<br />

)<br />

∥ ∥<br />

κ 2<br />

(A T ∥<br />

A = ∥A T ∥∥∥ −1∥∥∥2 A∥ (A A) T ≥ ρ<br />

2<br />

(<br />

n + ε 2) 1 n .<br />

( )<br />

A T A<br />

( ( ) ) −1<br />

ρ A T A


7.4 S<strong>in</strong>guläre–Werte–Zerlegung und <strong>die</strong> Pseudo<strong>in</strong>verse 101<br />

= λ (<br />

max A T A )<br />

(<br />

λ m<strong>in</strong> A T A ) = 1 + n ε 2 .<br />

Da jede Norm größer als der Spektralradius ist, ist <strong>die</strong> obige negative Aussage nicht etwa<br />

spezifisch für <strong>die</strong> 2–Norm, sondern gilt für jede beliebige Matrixnorm und damit auch für jede<br />

beliebige Konditionszahl.<br />

In [17, S. 398, (19.14)] kann man <strong>die</strong>se quadratisch verschlechterte Situation auch konkreter<br />

f<strong>in</strong>den: Für <strong>die</strong> berechnete Lösung ^x des Least–Squares–Problems ergibt sich e<strong>in</strong> relativer<br />

Vorwärtsfehler von<br />

‖x − ^x‖ 2<br />

‖x‖ 2<br />

≤ C m,n κ 2 2 (A) ^u, x ∈ Rn \ {0}.<br />

7.4 S<strong>in</strong>guläre–Werte–Zerlegung und <strong>die</strong> Pseudo<strong>in</strong>verse<br />

Wir wollen uns nun der Beschreibung von Least–squares–Lösungen etwas theoretischer<br />

nähern.<br />

Def<strong>in</strong>ition 7.10 E<strong>in</strong>e quadratische Matrix U ∈ R n×n bzw. U ∈ C n×n heißt orthogonal<br />

bzw. unitär, wenn U T U = I bzw. U H U = I. E<strong>in</strong>e Matrix D ∈ R m×n heißt diagonal, wenn<br />

a jk = 0 falls j ̸= k, j = 1, . . . , m, k = 1, . . . , n.<br />

Bemerkung 7.11 Die orthogonalen Matrizen bilden e<strong>in</strong>e multiplikative Gruppe: Jede orthogonale<br />

Matrix U hat e<strong>in</strong>e orthogonale Inverse (nämlich U T ) und das Produkt zweier orthogonaler<br />

Matrizen U, V ist wieder orthogonal (da (UV) T UV = V T U T UV = V T V = I).<br />

Satz 7.12 Zu jeder Matrix A ∈ R m×n , m, n ∈ N, gibt es orthogonale Matrizen U ∈ R m×m ,<br />

V ∈ R n×n und e<strong>in</strong>e Diagonalmatrix Σ ∈ R m×n so daß<br />

A = UΣV T , σ 11 ≥ σ 22 ≥ · · · ≥ σ l,l ≥ 0, l := m<strong>in</strong>(m, n). (7.8)<br />

Def<strong>in</strong>ition 7.13 Die Darstellung (7.8) heißt S<strong>in</strong>guläre–Werte–Zerlegung bzw. S<strong>in</strong>gular Value<br />

Decomposition (SVD), <strong>die</strong> Diagonalwerte von Σ, σ j = σ jj , j = 1, . . . , l, heißen S<strong>in</strong>gulärwerte<br />

von A.<br />

Beweis: Induktion über l. Im Fall l = 1 nehmen wir ohne E<strong>in</strong>schränkung 63 an, daß<br />

m ≤ n. Dann hat A <strong>die</strong> Form A = [a 11 · · · a 1n ] =: a T . Ist a = 0, dann bilden U = 1, Σ =<br />

0 und V = I <strong>die</strong> SVD von A. Andernfalls setzen wir v 1 = ‖a‖ −1<br />

2<br />

a, also als normierte<br />

Version von a und vervollständigen <strong>die</strong>sen Vektor zu e<strong>in</strong>er Orthonormalbasis des R n ,<br />

das heißt, wir wählen v 2 , . . . , v n so, daß<br />

R n = span {v 1 , . . . , v n } , v T j v k = δ jk , j, k = 1, . . . , n,<br />

63 Ansonsten gehen wir zu A T über.


102 7 AUSGLEICHSRECHNUNG<br />

und erhalten <strong>die</strong> Komponenten der SVD als<br />

U = 1, V = [ v j : j = 1, . . . , n ] , Σ = U T AV = [‖a‖ 2 0 · · · 0] .<br />

Sei also Satz 7.12 für e<strong>in</strong> l > 0 bewiesen und seien m, n ∈ N dergestalt, daß m<strong>in</strong>(m, n) =<br />

l + 1. Wir setzen<br />

‖Ax‖ 2 ( )<br />

2<br />

τ 1 := max<br />

x∈R n ‖x‖ 2 = max x T A T A x. (7.9)<br />

2<br />

‖x‖ 2 =1<br />

Ist τ 1 = 0, dann ist A = 0 und <strong>die</strong> SVD ergibt sich als 64 U = I, V = I, Σ = 0. Andernfalls<br />

ist τ 1 der größte Eigenwert der symmetrischen positiv def<strong>in</strong>iten Matrix A T A; sei<br />

außerdem v 1 ∈ R n e<strong>in</strong> zugehöriger normierter Eigenvektor. Diesen kann man wieder<br />

mit v 2 , . . . , v n zu e<strong>in</strong>er Orthonormalbasis des R n ergänzen und damit ist <strong>die</strong> Matrix<br />

V = [ v j : j = 1, . . . , n ] orthogonal. Wegen (7.9) ist ‖Av 1 ‖ 2<br />

= σ 1 , σ 1 = √ τ 1 , und damit<br />

ist<br />

0 ̸= u 1 := 1 σ 1<br />

Av 1 ∈ R m , ‖u 1 ‖ 2<br />

= 1.<br />

Wie vorher vervollständigen wir <strong>die</strong>sen Vektor zu e<strong>in</strong>er Orthonormalbasis, <strong>die</strong>smal<br />

mit u 2 , . . . , u m und setzen U = [ u j : j = 1, . . . , m ] . Damit ist<br />

[ ]<br />

[ ]<br />

U T σ1 0<br />

σ1 0<br />

AV =<br />

⇐⇒ A = U<br />

V T , B ∈ R m−1×n−1 , (7.10)<br />

0 B<br />

0 B<br />

wobei der größte Eigenwert von B T B höchstens σ 1 ist. Nach Induktionsannahme gibt<br />

es Matrizen Û ∈ R m−1×m−1 , ̂V ∈ R n−1×n−1 und ̂Σ ∈ R m−1×n−1 , so daß<br />

B = Û̂Σ ̂V T , σ 1 ≥ ^σ 1 ≥ · · · ≥ ^σ l−1 ≥ 0.<br />

Setzt man das <strong>in</strong> (7.10) e<strong>in</strong>, so ergibt sich, daß<br />

[ ] [ ]<br />

1 0 σ1 0<br />

A = U<br />

0 Û 0 ̂Σ<br />

} {{ } } {{ }<br />

=:U<br />

=:Σ<br />

womit der Beweis fertig ist.<br />

Bemerkung 7.14 (Beobachtungen zur SVD)<br />

[ ] 1 0<br />

0 ̂V T V T ,<br />

} {{ }<br />

=:V T<br />

□<br />

1. Der s<strong>in</strong>guläre Wert τ 1 aus (7.9) ist gleichzeitig der größte Eigenwert der symmetrischen<br />

positiv semidef<strong>in</strong>iten Matrix A T A: Seien λ 1 ≥ · · · ≥ λ n ≥ 0 <strong>die</strong> Eigenwerte von<br />

B = A T A und x 1 , . . . , x n zugehörige orthonormale Eigenvektoren, dann ist<br />

⎛ ⎞T<br />

n∑<br />

x T Bx = ⎝ α j x j<br />

⎠<br />

j=1<br />

B<br />

⎛<br />

⎝<br />

n∑<br />

j=1<br />

α j x j<br />

⎞<br />

⎠ =<br />

n∑<br />

α 2 j λ j ≤ λ 1<br />

64 Achtung: U und V können E<strong>in</strong>heitsmatrizen unterschiedlicher Größe se<strong>in</strong>.<br />

j=1<br />

n ∑<br />

j=1<br />

α 2 j = λ 1‖x‖ 2 2 .


7.4 S<strong>in</strong>guläre–Werte–Zerlegung und <strong>die</strong> Pseudo<strong>in</strong>verse 103<br />

2. Generell s<strong>in</strong>d <strong>die</strong> s<strong>in</strong>gulären Werte e<strong>in</strong>er Matrix A <strong>die</strong> (immer noch nichtnegativen)<br />

Wurzeln der Eigenwerte von A T A.<br />

3. Die Idee der SVD wird aus dem Beweis ersichtlich: man bestimmt orthogonale Vektoren<br />

u 1 , . . . , u m ∈ R m , v 1 , . . . , v n ∈ R n , so daß <strong>die</strong> von ihnen gebildeten Matrizen U und V<br />

<strong>die</strong> Ausgangsmatrix A dergestalt orthogonal transformieren, daß<br />

( )<br />

U T AV e j = σ j e j , j = 1, . . . , l,<br />

also <strong>die</strong> kanonischen E<strong>in</strong>heitsvektoren <strong>in</strong> sich selbst abbilden.<br />

4. Die SVD ist nicht immer e<strong>in</strong>deutig! Das e<strong>in</strong>fachste Gegenbeispiel ist A = 0, dann ist<br />

Σ = 0 und man kann U und V sogar frei wählen. Was natürlich e<strong>in</strong>deutig ist 65 ist <strong>die</strong><br />

Matrix Σ.<br />

Def<strong>in</strong>ition 7.15 Die Moore–Penrose–Inverse oder Pseudo<strong>in</strong>verse e<strong>in</strong>er m × n–Matrix A<br />

mit SVD A = UΣV T ist def<strong>in</strong>iert als<br />

wobei<br />

A + = VΣ + U T ,<br />

(<br />

Σ<br />

+ ) jk = { σ<br />

−1<br />

jk , σ jk ̸= 0,<br />

0 σ jk = 0,<br />

Σ + ∈ R n×m<br />

j = 1, . . . , n, k = 1, . . . , m.<br />

Der Name “Pseudo<strong>in</strong>verse” ist leicht erklärt. Ist nämlich A ∈ R n×n e<strong>in</strong>e <strong>in</strong>vertierbare<br />

Matrix, dann s<strong>in</strong>d wegen<br />

0 < |det A| = |det U|<br />

} {{ }<br />

=1<br />

|det Σ| |det V| =<br />

} {{ }<br />

=1<br />

alle s<strong>in</strong>gulären Werte von A strikt positiv und damit ist Σ + = Σ −1 . Daher ist<br />

n∏<br />

j=1<br />

A A + = UΣV T VΣ −1 U T = I = VΣ −1 U T UΣV T = A + A<br />

und damit ist A + = A −1 . Im Falle e<strong>in</strong>er <strong>in</strong>vertierbaren Matrix kann man das “Pseudo–”<br />

also getrost weglassen.<br />

Satz 7.16 Sei A ∈ R m×n , m > n.<br />

1. Die Pseudo<strong>in</strong>verse A + erfüllt <strong>die</strong> Moore–Penrose–Bed<strong>in</strong>gungen<br />

(a) A + A = (A + A) T ,<br />

(b) AA + = (AA + ) T ,<br />

65 Wegen der absteigenden Anordnung der s<strong>in</strong>gulären Werte.<br />

σ j


104 7 AUSGLEICHSRECHNUNG<br />

(c) AA + A = A,<br />

(d) A + AA + = A + .<br />

2. Der Vektor x ∗ = A + b erfüllt<br />

x ∗ ist also e<strong>in</strong>e Least–Squares–Lösung.<br />

‖Ax ∗ − b‖ 2<br />

= m<strong>in</strong><br />

x∈R n ‖Ax − b‖ 2 ,<br />

Beweis: Sei A = UΣV T . Zum Beweis von 1. bemerkt man, daß <strong>die</strong> Matrizen<br />

A + A = VΣ + U T UΣV T = VΣ + ΣV T und AA + = UΣV T VΣ + U T = UΣΣ + U T<br />

beide symmetrisch s<strong>in</strong>d und daß<br />

beziehungsweise<br />

AA + A = UΣV T VΣ + ΣV T = UΣΣ + ΣV T<br />

A + AA + = VΣ + U T UΣΣ + U T = VΣ + ΣΣ + U T .<br />

Außerdem gibt es e<strong>in</strong> 1 ≤ r ≤ l so daß σ 1 ≥ · · · ≥ σ r > σ r+1 = · · · = σ l = 0 und damit<br />

ist<br />

⎡<br />

σ 1 σ −1<br />

1 σ ⎤<br />

1<br />

. . .<br />

ΣΣ + Σ =<br />

σ r σ −1<br />

r σ r 0<br />

= Σ<br />

⎢<br />

⎣<br />

. .<br />

⎥<br />

. ⎦<br />

0<br />

und entsprechend Σ + ΣΣ + = Σ + .<br />

Um 2. nachzuweisen berechnen wir e<strong>in</strong>fach<br />

A T A x ∗ = A T AA + b = VΣ T U T UΣV T VΣ + U T b = VΣ T U T b = A T b<br />

und nach Proposition 7.6 ist x ∗ = A + y e<strong>in</strong>e Least–Squares–Lösung.<br />

□<br />

Übung 7.4 Zeigen Sie: Die Moore–Penrose–Bed<strong>in</strong>gungen bestimmen <strong>die</strong> Pseudo<strong>in</strong>verse<br />

A + e<strong>in</strong>deutig.<br />

♦<br />

Mit Hilfe der Pseudo<strong>in</strong>versen kann man <strong>die</strong> Def<strong>in</strong>ition der Konditionszahl auch auf<br />

s<strong>in</strong>guläre und nichtquadratische Matrizen erweitern, <strong>in</strong>dem man<br />

κ 2 (A) := ‖A‖ 2<br />

∥ ∥A + ∥ ∥<br />

2<br />

(7.11)<br />

setzt.<br />

So schön <strong>die</strong> SVD und <strong>die</strong> Pseudo<strong>in</strong>verse theoretisch auch se<strong>in</strong> mögen – zur Berechnung<br />

unserer Least–squares–Lösung helfen sie uns wenig, denn <strong>die</strong> Berechnung der SVD<br />

oder der Pseudo<strong>in</strong>versen s<strong>in</strong>d möglicherweise sogar noch komplizierter.


7.5 Orthogonaltransformationen 105<br />

Bemerkung 7.17 In gewissem S<strong>in</strong>ne ist <strong>die</strong> Pseudo<strong>in</strong>verse e<strong>in</strong> Liebl<strong>in</strong>gsk<strong>in</strong>d der Ingenieure,<br />

<strong>die</strong> schon vor langer Zeit herausgefunden haben, daß der Befehle p<strong>in</strong>v <strong>in</strong> Matlab/Octave immer<br />

e<strong>in</strong>e “Inverse” liefert, aber nie e<strong>in</strong>e <strong>die</strong>ser nervigen Fehlermeldungen oder Warnungen.<br />

Daß dafür <strong>die</strong> Ergebnisse nicht sonderlich s<strong>in</strong>nvoll se<strong>in</strong> können 66 nimmt man oftmals gerne<br />

<strong>in</strong> Kauf. Es braucht durchaus e<strong>in</strong>iges an Überzeugungsarbeit, um dafür zu sorgen, daß <strong>die</strong><br />

Pseudo<strong>in</strong>verse nicht <strong>in</strong> unangebrachter Weise verwendet 67 wird!<br />

7.5 Orthogonaltransformationen<br />

In <strong>die</strong>sem Kapitel wollen wir Transformationsmethoden (e<strong>in</strong>e Art Elim<strong>in</strong>ation) unter<br />

Verwendung orthogonaler Matrizen betrachten, um so <strong>die</strong> Lösung des Ausgleichsproblems<br />

direkt aus der Matrix A zu ermitteln. Warum man gerade orthogonale Matrizen<br />

verwendet, ist eigentlich ziemlich naheliegend: weil für jede orthogonale Matrix U ∈<br />

R n×n ‖Ux‖ 2<br />

=<br />

√<br />

(Ux) T (Ux) = √ x T U T Ux = ‖x‖ 2<br />

, x ∈ R n ,<br />

gilt, <strong>die</strong> 2–Norm also orthogonal <strong>in</strong>variant ist, ist auch <strong>die</strong> Matrixnorm ‖·‖ orthogonal<br />

<strong>in</strong>variant 68 und damit ist auch<br />

κ 2 (UA) = κ 2 (AV) = κ 2 (A) , A ∈ R m×n , U ∈ R m×m , V ∈ R n×n ,<br />

Multiplikation mit orthogonalen Matrizen verschlechtert also nicht <strong>die</strong> Kondition des<br />

Problems 69 . Was wir also brauchen, s<strong>in</strong>d e<strong>in</strong>fache orthogonale Matrizen, mit denen<br />

man ”<br />

etwas anfangen kann“.<br />

Def<strong>in</strong>ition 7.18 Zu 0 ̸= y ∈ R m ist <strong>die</strong> Householder–Matrix H = H(y) def<strong>in</strong>iert als<br />

H(y) = I − 2 yyT<br />

‖y‖ 2 .<br />

2<br />

Die Idee, Householder–Matrizen zur Lösung von Least–squares–Problemen zu verwenden<br />

geht 70 auf Householder [18] zurück, <strong>die</strong> praktischen Details wurden <strong>in</strong> [14]<br />

ausgearbeitet.<br />

Lemma 7.19 Householder–Matrizen s<strong>in</strong>d symmetrisch und orthogonal: H T = H und H T H =<br />

I.<br />

66 Bei der Bildung der Pseudo<strong>in</strong>versen muss entschieden werden, ab wann e<strong>in</strong> s<strong>in</strong>gulärer Wert als = 0<br />

angesehen werden soll – da steckt dann auch das gesamte numerische Teufelswerk!<br />

67 Genauso unangebracht wie das grammatisch <strong>in</strong>korrekte “verwandt” an <strong>die</strong>ser Stelle.<br />

68 Entsprechendes gilt auch immer für komplexe Matrizen und unitäre Invarianz<br />

69 Und den Traum, daß sich während der Rechnung e<strong>in</strong> Problem <strong>in</strong> e<strong>in</strong> besser konditioniertes umwandelt,<br />

sollte man schon <strong>in</strong> der Numerik I aufgegeben haben.<br />

70 Welch e<strong>in</strong> Wunder . . .


106 7 AUSGLEICHSRECHNUNG<br />

Beweis: Symmetrie ist trivial und <strong>die</strong> Orthogonalität folgt aus<br />

H T H = H 2 =<br />

(<br />

) 2<br />

I − 2<br />

‖y‖ 2 yy T = I − 4<br />

2<br />

‖y‖ 2 yy T + 4<br />

2 ‖y‖ 2 y<br />

2<br />

yT y<br />

‖y‖ 2 2<br />

} {{ }<br />

=1<br />

y T = I.<br />

Der E<strong>in</strong>fachheit halber wollen wir nun immer annehmen, daß der Householder–Vektor<br />

y für <strong>die</strong> Bildung der Householder–Matrix H(y) normiert ist, das heißt ‖y‖ 2 = 1, denn<br />

dann ist H(y) = I − 2yy T .<br />

Bemerkung 7.20 Die Householder–Transformation x ↦→ H(y)x kann man auch geometrisch<br />

<strong>in</strong>terpretieren, und zwar als Spiegelung an der Hyperebene<br />

E :=<br />

{<br />

}<br />

x ∈ R m : x T y = 0 ,<br />

siehe Abb. 7.3. Schreibt man nämlich x als x = αy + y ⊥ , y T y ⊥ = 0, dann ist 71<br />

( ) (<br />

H(y) x = I − 2yy T αy + y ⊥) = αy + y ⊥ − 2αy y T y<br />

}{{}<br />

=1<br />

−2y y T y<br />

} {{ ⊥ = −αy + y<br />

}<br />

⊥ ,<br />

=0<br />

das heißt, <strong>die</strong> Projektion von x <strong>in</strong> <strong>die</strong> Hyperebene E bleibt unverändert, während das Vorzeichen<br />

des Anteils <strong>in</strong> Richtung y umgedreht wird.<br />

□<br />

y<br />

x<br />

E<br />

H(y) x<br />

Abbildung 7.3: Die Householder–Transformation als Spiegelung an der Hyperebene<br />

E = y ⊥ . Im phyiskalischen S<strong>in</strong>n ist das also eher e<strong>in</strong>e Brechung als e<strong>in</strong>e<br />

Spiegelung: “E<strong>in</strong>fallsw<strong>in</strong>kel gleich Ausfallsw<strong>in</strong>kel”.<br />

71 Nicht vergessen: ‖y‖ 2 = 1!


7.5 Orthogonaltransformationen 107<br />

Sei also A ∈ R m×n , m > n. Die “Strategie” ist nun naheliegend: Wir wollen mit Hilfe<br />

von Householder–Matrizen wie bei der Gauß–Elim<strong>in</strong>ation A auf e<strong>in</strong>e obere Dreiecksgestalt<br />

br<strong>in</strong>gen, d.h. normierte Vektoren y 1 , . . . , y k f<strong>in</strong>den, so daß<br />

⎡<br />

⎤<br />

∗ . . . ∗ ∗ ∗ . . . ∗<br />

. .. . . . . .. .<br />

0 ∗ ∗ ∗ . . . ∗<br />

H (y k ) · · · H (y 1 ) A =<br />

a (k+1)<br />

k+1<br />

∗ . . . ∗<br />

, k = 0, . . . , n − 1. (7.12)<br />

⎢<br />

⎣<br />

.<br />

. . . ⎥<br />

. . ⎦<br />

a (k+1)<br />

m ∗ . . . ∗<br />

Für k = 0 ist (7.12) trivialerweise erfüllt. Um von (7.12) e<strong>in</strong>en Schritt weiterzukommen,<br />

müssen wir also e<strong>in</strong>en Vektor ^y k+1 ∈ R m−k und e<strong>in</strong>e Zahl α k+1 ∈ R bestimmen, so<br />

daß 72 H (^y k+1 ) a (k+1) = α k+1 e 1 ∈ R m−k , a (k+1) =<br />

denn ergibt sich unter Verwendung von<br />

daß<br />

[<br />

y k+1 :=<br />

⎡<br />

⎢<br />

⎣<br />

a (k+1)<br />

k+1<br />

.<br />

a (k+1)<br />

m<br />

]<br />

[<br />

0<br />

∈ R m Ik 0<br />

=⇒ H (y<br />

^y k+1 ) =<br />

k+1 0 H (^y k+1 )<br />

⎡<br />

⎤<br />

∗ . . . ∗ ∗ ∗ . . . ∗<br />

. .. . . . . .. .<br />

0 ∗ ∗ ∗ . . . ∗<br />

H (y k+1 ) · · · H (y 1 ) A =<br />

α k+1 ∗ . . . ∗<br />

.<br />

0 ∗ . . . ∗<br />

⎢<br />

⎣<br />

.<br />

⎥<br />

. . .. . ⎦<br />

0 ∗ . . . ∗<br />

⎤<br />

⎥<br />

⎦ ∈ R m−k , (7.13)<br />

]<br />

∈ R m×m ,<br />

Das entscheidende Problem besteht also dar<strong>in</strong>, (7.13) zu lösen. Daß und wie das geht,<br />

sagt uns das nächste Lemma.<br />

Lemma 7.21 Sei x ∈ R m . Setzt man 73 γ = 2 ‖x‖ 2 , ɛ = −sgn x 1 und<br />

y 1 =<br />

√<br />

1<br />

2 + |x 1|<br />

γ , y j = −ɛ x j<br />

γ y 1<br />

, j = 2, . . . , m, (7.14)<br />

dann ist ‖y‖ 2 = 1 und H(y) x = α e 1 , wobei α = −ɛ‖x‖ 2 .


108 7 AUSGLEICHSRECHNUNG<br />

%#<br />

%# HousehStep.m<br />

%# Berechne y-Vektor fuer Householder-Matrix<br />

%# Daten:<br />

%# x Zu transformierender Vektor<br />

function y = HousehStep( x )<br />

m = length( x );<br />

y = zeros( m,1 );<br />

g = 2 * sqrt( x’ * x );<br />

if g < eps<br />

return;<br />

endif<br />

s = sign( x(1) );<br />

if s = 0 % Sonderfall !!!<br />

s = 1;<br />

end<br />

y( 1 ) = sqrt( 0.5 + abs( x(1) )/g );<br />

gg = g * y( 1 );<br />

for j = 2:m<br />

y( j ) = s * x( j ) / gg;<br />

end<br />

%endfunction<br />

Programm 7.1 HousehStep.m: Bestimmung des Vektors y für <strong>die</strong> Householder–<br />

Matrix. Die Behandlung des Sonderfalls x = 0 wird noch gerechtfertigt werden.


7.5 Orthogonaltransformationen 109<br />

%#<br />

%# HousehStep.m<br />

%# Berechne y-Vektor fuer Householder-Matrix<br />

%# Daten:<br />

%# x Zu transformierender Vektor<br />

function y = HousehStep2( x )<br />

m = length( x );<br />

y = zeros( m,1 );<br />

g = 2 * sqrt( x’ * x );<br />

if g < eps<br />

return;<br />

endif<br />

if x(1) == 0 % Sonderfall !!!<br />

s = 1;<br />

else<br />

s = sign( x(1) );<br />

end<br />

y( 1 ) = sqrt( 0.5 - abs(x(1))/g );<br />

gg = g * y( 1 );<br />

for j = 2:m<br />

y( j ) = -s * x( j ) / gg;<br />

end<br />

%endfunction<br />

Programm 7.2 HousehStep2.m: Die “dumme” Art, den Vektor y zu bestimmen, mit<br />

der numerisch falschen Wahl von ɛ.


110 7 AUSGLEICHSRECHNUNG<br />

Übung 7.5 Folgern Sie aus (7.14), daß ‖y‖ 2 = 1.<br />

Beweis: Natürlich könnte man “e<strong>in</strong>fach” nachrechnen, daß <strong>die</strong> Bed<strong>in</strong>gungen aus (7.14)<br />

<strong>die</strong> gewünschten Eigenschaften liefern. Nachdem aber <strong>die</strong>se Voraussetzungen ja normalerweise<br />

nicht vom Himmel fallen, wollen wir sie explizit herleiten – das ist zwar<br />

etwas aufwendiger, aber auch “realistischer” und zeigt uns, wo man numerisch aufpassen<br />

muss.<br />

Da H(y) orthogonal ist, muß zuerst e<strong>in</strong>mal<br />

|α| = ‖H(y) x‖ 2<br />

= ‖x‖ 2<br />

gelten, das heißt α = ɛ‖x‖ 2 , ɛ ∈ {±1}. Nach der Def<strong>in</strong>ition von H(y) ist H(y) x = α e 1<br />

äquivalent zu<br />

) ( )<br />

x 1 − 2y 1<br />

(y T x = α, x j − 2y j y T x = 0, j = 2, . . . , m. (7.15)<br />

Aus <strong>die</strong>sen Bed<strong>in</strong>gungen ergibt sich mit β := y T x und der Zusatzforderung ‖y‖ 2 = 1,<br />

daß<br />

α y 1 = y 1 (x 1 − 2y 1 β) +<br />

} {{ }<br />

=α<br />

m∑<br />

j=2<br />

= β − 2 β ‖y‖ 2<br />

} {{ }<br />

2 = −β,<br />

=1<br />

(<br />

y j xj − 2y j β )<br />

=<br />

} {{ }<br />

=0<br />

m∑<br />

x j y j − 2β<br />

also β = −αy 1 . E<strong>in</strong>gesetzt <strong>in</strong> <strong>die</strong> erste Gleichung von (7.15) liefert <strong>die</strong>s, daß<br />

√<br />

1 −<br />

x 1 + 2αy 2 1 = α =⇒ y x1 /α<br />

1 =<br />

.<br />

2<br />

Wählen wir nun ɛ ∈ {−1, 1} so, daß<br />

ɛx 1 < 0, ⇒ x 1 = −ɛ |x 1 | (7.16)<br />

dann ergibt sich<br />

√<br />

√<br />

1<br />

y 1 =<br />

2 − −ɛ |x 1|<br />

ɛ ‖x 2 ‖ = 1<br />

2 + |x 1|<br />

2 ‖x‖ 2<br />

=⇒ β = −ɛ ‖x‖ 2<br />

y 1<br />

j=1<br />

m∑<br />

j=1<br />

y 2 j<br />

♦<br />

und schließlich<br />

y j = x j<br />

2β = −ɛ<br />

x j<br />

2y 1 ‖x‖ 2<br />

, j = 2, . . . , m.<br />

72 Hierbei bezeichnet e j wieder den j–ten kanonischen E<strong>in</strong>heitsvektor.<br />

73 Hierbei können wir das Vorzeichen sgn 0 der Zahl Null beliebig als ±1 wählen.<br />


7.5 Orthogonaltransformationen 111<br />

%#<br />

%# HousehMat.m<br />

%# Berechne Householder-Matrix H(y) = I - 2 y y^T/y^T y<br />

%# Daten:<br />

%# y Vektor<br />

function H = HousehMat( y )<br />

H = eye( length(y) ) - 2*y*y’/(y’*y);<br />

Programm 7.3 HousehMat.m: Berechnung der Householder–Matrix zu y.<br />

Bemerkung 7.22 Die Wahl von ɛ <strong>in</strong> (7.16) war theoretisch beliebig, aber numerisch absolut<br />

s<strong>in</strong>nvoll, denn nun werden unter der Wurzel bei der Bestimmung von y 1 zwei positive Zahlen<br />

ad<strong>die</strong>rt, so daß Auslöschung vermieden wird, siehe Beispiel 2.9. Und da <strong>in</strong> (7.14) durch y 1<br />

divi<strong>die</strong>rt wird, sollten wir ohneh<strong>in</strong> dafür sorgen, daß <strong>die</strong>se Zahl so groß wie möglich wird,<br />

e<strong>in</strong>fach um <strong>die</strong> Fehlerfortpflanzung möglichst kle<strong>in</strong> zu halten.<br />

Die maximale Auslöschung bei “falschen” ɛ träte übrigens genau dann auf, wenn |x 1 | ∼<br />

‖x 2 ‖ wäre, also genau dann, wenn der Vektor x sowieso schon den Wert hätte, den er haben<br />

sollte. Und das kann man tatsächlich auch deutlich sehen wie <strong>in</strong> Beispiel 7.23 gezeigt werden<br />

wird. an kann <strong>die</strong> Bestimmung des Householder–Vektors aber auch wie <strong>in</strong> Abb. 7.4 geometrisch<br />

<strong>in</strong>terpretieren. Im R 2 s<strong>in</strong>d <strong>die</strong> Spiegelungsebenen <strong>die</strong> beiden W<strong>in</strong>kelhalbierenden der von x und<br />

der x 1 –Achse erzeugten W<strong>in</strong>kel; <strong>die</strong>se W<strong>in</strong>kel summieren sich natürlich zu 2π. Wird nun e<strong>in</strong>er<br />

der W<strong>in</strong>kel immer kle<strong>in</strong>er, dann ist zwar <strong>die</strong> Spiegelung am spitzen W<strong>in</strong>kel immer unproblematischer,<br />

dafür wird aber <strong>die</strong> Spiegelung an der anderen Geraden e<strong>in</strong>e immer kritischere<br />

Operation, und am schlimmsten ist das ganze, wenn e<strong>in</strong>er der W<strong>in</strong>kel gegen 0 geht. Ke<strong>in</strong>en<br />

Unterschied gibt es, wenn x 1 = 0 ist, also <strong>in</strong> dem Fall, <strong>in</strong> dem wir ɛ nach Gusto wählen<br />

können, weil wir sgn 0 beliebig <strong>in</strong> ±1 festlegen dürfen.<br />

Beispiel 7.23 Vergleichen wir e<strong>in</strong>mal für n = 2 <strong>die</strong> beiden Rout<strong>in</strong>en aus den Programmen<br />

7.1 und 7.2, und zwar zuerst für e<strong>in</strong>e eher braven Vektor:<br />

octave> x = [ 1 1 ]’;<br />

octave> y1 = HousehStep (x); y2 = HousehStep2 (x);<br />

octave> HousehMat (y1)*x<br />

ans =<br />

-1.4142e+00<br />

-1.1102e-16<br />

octave> HousehMat (y2)*x<br />

ans =


112 7 AUSGLEICHSRECHNUNG<br />

y2<br />

x<br />

y1<br />

Abbildung 7.4: Die geometrische Interpretation der Householder–<br />

Transformation: x wird an den beiden W<strong>in</strong>kelhalbierenden gespiegelt, und<br />

das “gute” ɛ entspricht dem spitzen, das schlechte dem stumpfen W<strong>in</strong>kel.<br />

1.4142e+00<br />

4.4409e-16<br />

und <strong>in</strong> beiden Fällen wir x praktisch auf e<strong>in</strong> Vielfaches des E<strong>in</strong>heitvektors abgebildet 74 . Das<br />

wird aber anders, wenn wir den Fall<br />

octave> x = [ 1 10^(-5) ]’;<br />

octave> y1 = HousehStep (x); y2 = HousehStep2 (x);<br />

betrachten, denn nun erhalten wir das schon signifikant schlechtere Ergebnis<br />

octave> HousehMat( y1 ) * x<br />

ans =<br />

-1.0000e+00<br />

1.1911e-22<br />

octave> HousehMat( y2 ) * x<br />

ans =<br />

1.0000e+00<br />

8.2815e-13<br />

Noch <strong>in</strong>teressanter wird es für<br />

74 Daß im zweiten Fall der Fehler e<strong>in</strong> wenig größer ist hat noch nicht wirklich etwas zu sagen.


7.5 Orthogonaltransformationen 113<br />

octave> x = [ 1 .2*10^(-7) ]’;y1 = HousehStep (x); y2 = HousehStep2 (x);<br />

octave> HousehMat( y1 ) * x<br />

ans =<br />

-1.0000e+00<br />

-1.1325e-24<br />

octave> HousehMat( y2 ) * x<br />

ans =<br />

1.0000e+00<br />

2.2045e-09<br />

und richtig übel im Fall<br />

octave> x = [ 1 .18*10^(-7) ]’; y2 = HousehStep2 (x);<br />

warn<strong>in</strong>g: <strong>in</strong> /.../HousehStep2.m near l<strong>in</strong>e 26, column 12:<br />

>>> y (j) = -s * x (j) / gg;<br />

warn<strong>in</strong>g: division by zero<br />

octave> HousehMat( y2 ) * x<br />

ans =<br />

NaN<br />

NaN<br />

wo <strong>die</strong> Auslöschung absolut gnadenlos zuschlägt.<br />

Unabhängig von den numerischen Fußangeln haben wir auch schon wieder e<strong>in</strong>e neue<br />

Zerlegung für Matrizen kennengelernt, <strong>die</strong> sogenannte QR–Zerlegung.<br />

Satz 7.24 Sei A ∈ R m×n , m ≥ n. Dann gibt es e<strong>in</strong>e orthogonale Matrix Q ∈ R m×m und<br />

e<strong>in</strong>e Rechtsdreiecksmatrix 75 ⎡ ⎤<br />

∗ . . . ∗<br />

.. . .<br />

0 ∗<br />

R =<br />

∈ R m×n ,<br />

0 . . . 0<br />

⎢<br />

⎣ .<br />

⎥<br />

. .. . ⎦<br />

0 . . . 0<br />

75 Nachdem U für unitäre Matrizen reserviert se<strong>in</strong> wird, ist R jetzt der Ersatz für unser gutes altes<br />

U aus der LU–Zerlegung von oben. So e<strong>in</strong> kle<strong>in</strong>er Notationswechsel zwischendurch erhält <strong>die</strong> geistige<br />

Flexibilität.


114 7 AUSGLEICHSRECHNUNG<br />

%#<br />

%# HousehQR.m<br />

%# Berechne QR-Zerlegung fuer Matrix A<br />

%# Daten:<br />

%# A Zu zerlegende Matrix, ueberschreibe mit R<br />

function [ Q,R ] = HousehQR( A )<br />

[m,n] = size( A );<br />

Q = II = eye( m );<br />

for j = 1:n<br />

x = A( j:m,j );<br />

y = HousehStep( x );<br />

if j > 1<br />

y = [ zeros( j-1,1 ); y ];<br />

end<br />

H = II - 2*y*y’;<br />

% Berechne orthog. Vektor<br />

% Auffuellen<br />

% Householder-Matrix<br />

A = H * A;<br />

Q = Q * H;<br />

end<br />

R = A;<br />

%endfunction<br />

Programm 7.4 HousehQR.m: QR–Zerlegung mit Householder–Matrizen.<br />

so daß A = QR.<br />

Beweis: Wie man <strong>die</strong> Vektoren y 1 , . . . , y n−1 bestimmt, so daß<br />

H (y n−1 ) · · · H (y 1 ) A = R<br />

wissen wir ja bereits aus Lemma 7.21 – solange der “e<strong>in</strong>gegebene” Vektor x nicht der<br />

Nullvektor ist. F<strong>in</strong>den wir aber bei unserer Elim<strong>in</strong>ation e<strong>in</strong>e “Nullspalte” vor, dann<br />

ist das auch nicht schlimm, denn <strong>die</strong> obere Dreiecksstruktur ist ja dann <strong>in</strong>sbesondere<br />

vorhanden und wir können <strong>in</strong> <strong>die</strong>sem Fall e<strong>in</strong>fach y = 0 setzen. Bleibt nur noch zu<br />

bemerken, daß<br />

Q = H (y 1 ) T · · · H (y n−1 ) T = H (y 1 ) · · · H (y n−1 ) .<br />


7.5 Orthogonaltransformationen 115<br />

Was br<strong>in</strong>gt uns nun <strong>die</strong> QR–Zerlegung? Nun, mit A = QR wird das Normalengleichungssystem<br />

zu<br />

Schreiben wir<br />

dann ist<br />

R T Q T b = A T b = A T A x = R T Q T QR x = R T R x.<br />

R =<br />

[ ̂R<br />

0<br />

]<br />

, ̂R ∈ R n×n ,<br />

] [̂R 0]<br />

T Q T b =<br />

[̂R [ T ̂R<br />

0<br />

0<br />

]<br />

x = ̂R T ̂R x.<br />

Hat nun A (und damit auch R und ̂R) vollen Rang, dann können wir von l<strong>in</strong>ks mit ̂R −T<br />

multiplizieren und erhalten das e<strong>in</strong>fache Gleichungssystem<br />

⎡ (<br />

̂Rx = ̂R [̂R ]<br />

Q T b ) ⎤<br />

−T T 0 Q T b = [I n 0] Q T 1<br />

⎢ ⎥<br />

b = ⎣<br />

(<br />

.<br />

Q T b ) ⎦ ,<br />

n<br />

das wir direkt durch Rücksubstitution lösen können. Das fassen wir noch e<strong>in</strong>mal<br />

zusammen.<br />

Korollar 7.25<br />

[<br />

Die<br />

]<br />

Matrix A ∈ R m×n , m ≥ n, habe vollen Rang und <strong>die</strong> QR–Zerlegung<br />

̂R<br />

A = QR, R = . Dann erhält man <strong>die</strong> Least–Squares–Lösung von (7.6) als Lösung des<br />

0<br />

Gleichungssystems 76 ̂Rx = KQ T b, K =<br />

n∑<br />

e j e T j ∈ R n×m . (7.17)<br />

Hat <strong>die</strong> Matrix A nicht vollen Rang, dann hat man aber, auch mit der QR–Zerlegung,<br />

e<strong>in</strong> Problem! Denn um <strong>die</strong> Gleichung<br />

j=1<br />

̂R T Q T b = ̂R T ̂Rx<br />

durch Vorwärtselim<strong>in</strong>ation und Rücksubstitution lösen zu können, müssen ja ̂R und<br />

damit auch ̂R T vollen Rang haben, <strong>in</strong>sbesondere müssen <strong>die</strong> Diagonalelemenente von<br />

̂R von Null verschieden se<strong>in</strong>. E<strong>in</strong> Diagonalwert 0 <strong>in</strong> der Matrix R tritt aber nach Lemma<br />

7.21 genau dann auf, wenn während der Householder–Elim<strong>in</strong>ation e<strong>in</strong>e Nullspalte<br />

unter der Diagonalen erzeugt wurde, siehe auch <strong>die</strong> Bemerkung im Beweis von Satz 7.24.<br />

Was man mit Nullspalten macht, wissen wir aber aus der Gauß–Elim<strong>in</strong>ation, Stichwort<br />

Pivotsuche: Nach Anwendung e<strong>in</strong>er Spaltenpermutation können wir entweder mit<br />

76 Die Matrix K hier ist <strong>die</strong> kanonische Koord<strong>in</strong>atenprojektion vom R m <strong>in</strong> den R n .


116 7 AUSGLEICHSRECHNUNG<br />

%#<br />

%# HousehLS.m<br />

%# Loese LS-Problem<br />

%# Ax - b = m<strong>in</strong><br />

%# ueber QR-Zerlegung mit Householder-Matrizen<br />

%# Daten:<br />

%# A Matrix, voller Rang!<br />

%# b rechte Seite<br />

function x = HousehLS( A,b )<br />

[ m,n ] = size( A );<br />

[ Q,R ] = HousehQR( A );<br />

R = R( 1:n, 1:n );<br />

b = Q’ * b;<br />

% LS-relevanter Teil<br />

x = RueckSubs( R , b( 1:n ) );<br />

%endfunction<br />

Programm 7.5 HousehLS.m: Lösung des Least–squares–Problems nach (7.17).<br />

e<strong>in</strong>er von Null verschiedenen Spalte weitermachen, oder aber <strong>die</strong> elim<strong>in</strong>ierte Matrix<br />

hat <strong>die</strong> Form<br />

[ ] R B<br />

, R ∈ R r×r , B ∈ R r×n−r , r = rang A.<br />

0 0<br />

Da für Spaltenvertauschungen e<strong>in</strong>e Permutationsmatrix von rechts multipliziert werden<br />

muß, hat also <strong>die</strong> QR–Zerlegung mit Spaltenpivotsuche <strong>die</strong> Form<br />

AP = QR, P ∈ Π n ,<br />

wobei wieder Π n ⊂ R n×n <strong>die</strong> Gruppe der Permutationsmatrizen bezeichnet. Die Details<br />

zur QR–Zerlegung mit Pivotsuche f<strong>in</strong>den sich beispielsweise <strong>in</strong> [13, Sec. 6.4].<br />

Zum Schluß noch e<strong>in</strong> Wort zur Stabilität der QR–Zerlegung, <strong>die</strong> so ziemlich genauso<br />

ist, wie man es von der Gauß–Elim<strong>in</strong>ation erwarten würde. Unter Verwendung der<br />

Frobenius–Norm<br />

⎛ ⎞1/2<br />

m∑ n∑<br />

‖A‖ F = ⎝ ⎠ , A ∈ R m×n<br />

j=1 k=1<br />

a 2 jk<br />

f<strong>in</strong>det man <strong>in</strong> [17, Theorem 18.4] das folgende Resultat.


7.6 Orthogonaltransformationen II – Givens–Rotationen 117<br />

Satz 7.26 Es sei A ∈ R m×n , m ≥ n, und ̂R ∈ R m×n <strong>die</strong> mit dem Householder–Verfahren<br />

berechnete Rechtsdreiecksmatrix 77 der QR–Zerlegung von A. Dann gibt es e<strong>in</strong>e orthogonale<br />

Matrix ̂Q ∈ R n×n und e<strong>in</strong>e Matrix  ∈ R m×n , so daß<br />

 = ̂Q̂R<br />

und ∥ ∥∥A − Â ∥ ≤ C nm^u ‖A‖ F<br />

+ O<br />

(nm^u 2)<br />

F<br />

wobei C > 0 e<strong>in</strong>e moderate Konstante ist.<br />

Den Beweis schenken wir uns . . .<br />

7.6 Orthogonaltransformationen II – Givens–Rotationen<br />

E<strong>in</strong>e Alternative s<strong>in</strong>d <strong>die</strong> sogenannten Givens–Rotationen [11], wobei <strong>die</strong> Idee der<br />

Rotationsmatrizen sogar schon auf Jacobi [20] zurückgeht 78 . Um <strong>die</strong>sen Zugang zu<br />

motivieren, sehen wir uns e<strong>in</strong>mal an, wie orthogonale Matrizen eigentlich im 2 × 2–<br />

Fall aussehen. Sei also<br />

[ ] q r<br />

Q =<br />

s t<br />

e<strong>in</strong>e orthogonale Matrix, das heißt,<br />

[ ] [ ]<br />

I = Q T q s q r<br />

Q =<br />

=<br />

r t s t<br />

Damit folgen aus (7.18) <strong>die</strong> Beziehungen<br />

[ q 2 + s 2 ]<br />

qr + st<br />

qr + st r 2 + t 2<br />

1 = q 2 + s 2 = r 2 + t 2 , 0 = qr + st.<br />

(7.18)<br />

Die erste Identität sagt uns daß wir q, r, s, t parametrisieren können 79 , und zwar bis auf<br />

Vorzeichen als<br />

q = cos φ, s = s<strong>in</strong> φ, r = − s<strong>in</strong> ψ, t = cos ψ, φ, ψ ∈ [0, π).<br />

Diese Vorzeichen, <strong>die</strong> genaugenommen beispielsweise q = ± cos φ liefern würden,<br />

repräsentieren den Spiegelungsanteil Aus der zweiten Beziehung folgt unter Verwendung<br />

der Additionstheoreme, daß<br />

0 = cos φ s<strong>in</strong> ψ − s<strong>in</strong> φ cos ψ = s<strong>in</strong> (φ − ψ) ,<br />

77 Achtung: hier hat ̂R e<strong>in</strong>e andere Bedeutung als weiter oben <strong>in</strong> <strong>die</strong>sem Abschnitt<br />

78 Woran man wieder e<strong>in</strong>mal sieht, daß <strong>die</strong> ”<br />

Alten“ sich auch für Numerik <strong>in</strong>teressiert haben.<br />

79 Die E<strong>in</strong>schränkung von φ und ψ kommt daher daß Q trivialerweise genau dann orthogonal ist,<br />

wenn −Q orthogonal ist.


118 7 AUSGLEICHSRECHNUNG<br />

also φ − ψ ∈ πZ. Wählen 80 wir ψ ∈ [−π, π], dann ist entweder φ = ψ oder φ = π + ψ,<br />

was natürlich zu φ ∈ [0, 2π] führt. Im ersten Fall, φ = ψ, haben <strong>die</strong> orthogonalen<br />

Matrizen Q ∈ R 2×2 <strong>die</strong> Form<br />

[ ]<br />

cos φ s<strong>in</strong> φ<br />

Q = J (φ) =<br />

− s<strong>in</strong> φ cos φ<br />

und s<strong>in</strong>d damit je e<strong>in</strong>e Drehung bzw. Rotation um den W<strong>in</strong>kel φ. Diese Drehungen<br />

können wir nun ganz e<strong>in</strong>fach <strong>in</strong> den R n fortsetzen.<br />

Def<strong>in</strong>ition 7.27 Zu 1 ≤ j < k ≤ n und φ ∈ [0, 2π) def<strong>in</strong>ieren wir <strong>die</strong> Jacobi–Matrix<br />

J (j, k ; φ) ∈ R n×n als<br />

⎡<br />

J (j, k ; φ) =<br />

⎢<br />

⎣<br />

1 j k<br />

. .. ↓ ↓<br />

1<br />

j → cos φ s<strong>in</strong> φ<br />

1<br />

.. .<br />

1<br />

k → − s<strong>in</strong> φ cos φ<br />

1<br />

. . .<br />

1<br />

⎤<br />

⎥<br />

⎦<br />

Übung 7.6 Wie sehen <strong>die</strong> orthogonalen Matrizen <strong>in</strong> der Situation φ = ψ + π aus?<br />

♦<br />

Bemerkung 7.28 Die Anwendung der Jacobi–Matrix J (j, k ; φ) entspricht e<strong>in</strong>er Drehung<br />

um den W<strong>in</strong>kel φ <strong>in</strong> der Ebene, <strong>die</strong> von den E<strong>in</strong>heitsvektoren e j und e k aufgespannt wird.<br />

Die Auswirkung der Multiplikation e<strong>in</strong>er Matrix A von l<strong>in</strong>ks mit J (j, k ; φ) ergibt sich<br />

somit als<br />

⎧<br />

⎨ a rs r ̸= j, k,<br />

(J (j, k ; φ) A) rs = cos φ a<br />

⎩<br />

js + s<strong>in</strong> φ a ks r = j, r, s = 1, . . . , n,<br />

− s<strong>in</strong> φ a js + cos φ a ks r = k,<br />

es ändern sich also nur <strong>die</strong> beiden Zeilen a j· und a k·. Auch Jacobimatrizen können<br />

wir zur Elim<strong>in</strong>ation für A ∈ R m×n , m ≥ n, verwenden: Wir bestimmen zuerst e<strong>in</strong>en<br />

80 W<strong>in</strong>kel s<strong>in</strong>d ja nur modulo 2π def<strong>in</strong>iert.


7.6 Orthogonaltransformationen II – Givens–Rotationen 119<br />

Drehw<strong>in</strong>kel φ 12 , so daß<br />

⎡<br />

J (1, 2 ; φ 12 ) A =<br />

⎢<br />

⎣<br />

∗ ∗ . . . ∗<br />

0 ∗ . . . ∗<br />

∗ ∗ . . . ∗<br />

. .<br />

. . . .<br />

∗ ∗ . . . ∗<br />

⎤<br />

,<br />

⎥<br />

⎦<br />

dann e<strong>in</strong>en Drehw<strong>in</strong>kel φ 13 , so daß<br />

J (1, 3 ; φ 13 ) J (1, 2 ; φ 12 ) A =<br />

⎢<br />

⎣<br />

⎡<br />

∗ ∗ . . . ∗<br />

0 ∗ . . . ∗<br />

0 ∗ . . . ∗<br />

∗ ∗ . . . ∗<br />

. .<br />

. .. .<br />

∗ ∗ . . . ∗<br />

⎤<br />

,<br />

⎥<br />

⎦<br />

und so weiter, bis schließlich 81<br />

( 2∏<br />

)<br />

J (1, s ; φ 1s )<br />

s=m<br />

⎡<br />

A = ⎢<br />

⎣<br />

∗ ∗ . . . ∗<br />

0 ∗ . . . ∗<br />

.<br />

. . .. .<br />

0 ∗ . . . ∗<br />

⎤<br />

⎥<br />

⎦<br />

Als nächstes elim<strong>in</strong>ieren wir <strong>in</strong> der zweiten Spalte mit Hilfe von Drehw<strong>in</strong>keln φ 23 , . . . , φ 2m<br />

<strong>die</strong> Subdiagonalelemente. Da außerdem, für jedes B ∈ R m×n mit b 21 = · · · = b m1 = 0<br />

und r = 2, . . . , m,<br />

⎧<br />

⎨<br />

(J (2, k ; φ 2k )B) r1 =<br />

⎩<br />

b r1<br />

r ̸= 2, k<br />

cos φ 2k b 21 + s<strong>in</strong> φ 2k b k1 r = 2<br />

− s<strong>in</strong> φ 2k b 21 + cos φ 2k b k1 r = k<br />

⎫<br />

⎬<br />

= 0, k = 3, . . . , m,<br />

⎭<br />

<strong>die</strong> Nullen <strong>in</strong> der ersten Spalte bleiben also unangetastet. Damit ist <strong>die</strong> Vorgehensweise<br />

klar: Man bestimmt Drehw<strong>in</strong>kel<br />

φ 12 , . . . , φ 1m , φ 23 , . . . , φ 2m , . . . , φ n,n+1 , . . . , φ nm ,<br />

so daß<br />

( n<br />

∏<br />

r+1<br />

∏<br />

r=1 s=m<br />

J (r, s ; φ rs )<br />

)<br />

⎡<br />

A =<br />

⎢<br />

⎣<br />

∗ . . . ∗<br />

.. . .<br />

0 ∗<br />

0 . . . 0<br />

.<br />

. .. .<br />

0 . . . 0<br />

⎤<br />

, (7.19)<br />

⎥<br />

⎦<br />

81 Das etwas seltsame Produkt soll <strong>die</strong> Reihenfolge der Multiplikation andeuten!


120 7 AUSGLEICHSRECHNUNG<br />

was wieder nichts anderes als e<strong>in</strong>e QR–Zerlegung ist. Was bleibt ist <strong>die</strong> Bestimmung<br />

e<strong>in</strong>es Drehw<strong>in</strong>kels φ rs , s = r + 1, . . . , m, r = 1, . . . , n, so daß im jeweiligen Schritt<br />

[ ] [ ] [ cos φrs s<strong>in</strong> φ rs arr α<br />

=<br />

− s<strong>in</strong> φ rs cos φ rs a rs 0<br />

]<br />

, α 2 = a 2 rr + a 2 rs,<br />

was sich immer lösen läßt, wie man sich leicht geometrisch vorstellt. Allerd<strong>in</strong>gs brauchen<br />

wir nicht <strong>die</strong> W<strong>in</strong>kel selbst zu bestimmen, es genügen <strong>die</strong> Werte von deren S<strong>in</strong>us und<br />

Cos<strong>in</strong>us! Die bekommt man aber ganz e<strong>in</strong>fach. Setzen wir<br />

c rs = cos φ rs und s rs = s<strong>in</strong> φ rs ,<br />

dann erhalten wir aus der zweiten Zeile, daß<br />

⎧<br />

⎪⎨<br />

s rs a rr = c rs a rs =⇒<br />

⎪⎩<br />

s rs = (sign a rr) |a rs |<br />

√ ,<br />

a 2 rr + a 2 rs<br />

c rs = (sign a rs) |a rr |<br />

√ ,<br />

a 2 rr + a 2 rs<br />

wobei sign 0 = 1 gesetzt wird 82 . Bei <strong>die</strong>ser Wahl von c rs und s rs ergibt sich übrigens<br />

√<br />

α = (sign a rr ) (sign a rs ) a 2 rr + a 2 rs.<br />

Übung 7.7 Implementieren Sie <strong>die</strong> QR–Zerlegung mittels Givens–Rotationen <strong>in</strong> Matlab<br />

oder Octave.<br />

♦<br />

82 Aber nur der Vollständigkeit wegen, der Wert −1 wäre genau so gut.


121<br />

And now for someth<strong>in</strong>g completely<br />

different . . .<br />

Monty Python’s Fly<strong>in</strong>g Circus<br />

Polynome 8<br />

Bei vielen praktischen Problemen (z.B. CAD) ist es wichtig, Funktionen näherungsweise<br />

durch ”<br />

e<strong>in</strong>fache“ Funktionen (<strong>die</strong> mit endlich viel Information dargestellt werden können)<br />

zu repräsentieren oder zu approximieren. Die beiden wesentlichen Anwendungen s<strong>in</strong>d<br />

Modellierung: Man versucht, durch Verändern von Parametern e<strong>in</strong>e Kurve (oder Fläche)<br />

zu erhalten, <strong>die</strong> (zum<strong>in</strong>dest näherungsweise) <strong>die</strong> gewünschte Form hat.<br />

Rekonstruktion: Aus endlicher Information (z.B. Abtastwerte) soll e<strong>in</strong>e Kurve (oder<br />

Fläche) gewonnen werden, <strong>die</strong> <strong>die</strong>se Information reproduziert (z.B. <strong>in</strong>terpoliert).<br />

Die e<strong>in</strong>fachsten und ältesten Funktionen für <strong>die</strong>se Zwecke s<strong>in</strong>d <strong>die</strong> Polynome.<br />

Def<strong>in</strong>ition 8.1 E<strong>in</strong>e Funktion der Form<br />

p(x) = ∑<br />

heißt Polynom über dem Körper K, falls<br />

j∈N 0<br />

a j x j , a j ∈ K,<br />

deg p := max { j ∈ N 0 : a j ̸= 0 } < ∞.<br />

Die Zahl deg p nennt man den Grad von p, mit<br />

Π n = {p : p Polynom, deg p ≤ n}<br />

bezeichnet man den Vektorraum aller Polynome vom Grad höchstens n und mit Π = K[x]<br />

den Vektorraum aller Polynome.<br />

Bemerkung 8.2 (Polynome)<br />

1. Die Vektorräume Π n , n ∈ N, und Π s<strong>in</strong>d K–Vektorräume, also abgeschlossen unter<br />

Multiplikation mit K.<br />

2. Es ist<br />

dim Π n = n + 1, n ∈ N 0<br />

und <strong>die</strong> Monome {1, x, . . . , x n } bilden e<strong>in</strong>e Basis von Π n .


122 8 POLYNOME<br />

3. Π ist sogar e<strong>in</strong>e Algebra: Das Produkt pq zweier Polynome p, q ∈ Π ist wieder e<strong>in</strong><br />

Polynom. Das werden wir aber <strong>in</strong> <strong>die</strong>sem Abschnitt praktisch nicht ausnutzen.<br />

E<strong>in</strong> großer Vorteil von Polynomen ist, daß sie <strong>in</strong> den stetigen Funktionen auf jedem<br />

kompakten Intervall dicht liegen, das heißt, daß wir mit ihnen jede stetige Funktion<br />

beliebig genau annähern können; das ist der berühmte Satz von Weierstrass (1885),<br />

siehe [43].<br />

Satz 8.3 Es sei I ⊂ R e<strong>in</strong> kompaktes Intervall und f ∈ C(I). Dann gibt es zu jedem ε > 0 e<strong>in</strong><br />

p ∈ Π, so daß<br />

‖f − p‖ I<br />

:= max |f(x) − p(x)| < ε. (8.1)<br />

x∈I<br />

Der Beweis f<strong>in</strong>det sich <strong>in</strong> Anhang A.3.<br />

8.1 Darstellungen polynomialer Kurven und Auswertungsverfahren<br />

Die wichtigste Operation beim praktischen Rechnen mit Funktionen ist sicherlich <strong>die</strong><br />

Auswertung <strong>die</strong>ser Funktion an e<strong>in</strong>er Stelle x ∈ R. Dieses Auswertungsverfahren hängt<br />

sicherlich von der verwendeten Darstellung ab. Im CAGD 83 verwendet man nicht nur<br />

polynomiale Funktionen sondern polynomiale Kurven.<br />

Def<strong>in</strong>ition 8.4 E<strong>in</strong>e Abbildung<br />

p =<br />

⎡<br />

⎢<br />

⎣<br />

⎤<br />

p 1<br />

⎥<br />

. ⎦ : R → R d<br />

p d<br />

heißt polynomiale Kurve vom (Höchst–) Grad n, falls p j ∈ Π n , j = 1, . . . , d. In <strong>die</strong>sem Fall<br />

schreiben wir auch p ∈ Π d n.<br />

Bemerkung 8.5 Jede polynomiale Kurve p ∈ Π d n läßt sich schreiben als<br />

⎡<br />

⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤<br />

a 10 + a 11 x + · · · + a 1n x n a 10 a 11<br />

a 1n<br />

⎢<br />

⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥<br />

p(x) = ⎣<br />

.<br />

⎦ = ⎣ . ⎦ + ⎣ . ⎦ x + · · · + ⎣ . ⎦<br />

a d0 + a d1 x + · · · + a dn x n a d0 a d1 a dn<br />

} {{ } } {{ } } {{ }<br />

=a 0 =a 1<br />

n∑<br />

= a j x j ,<br />

j=0<br />

=a n<br />

x n<br />

wobei a j ∈ R d , j = 1, . . . , n. Damit s<strong>in</strong>d <strong>die</strong>se Kurven also nichts anderes als ”<br />

ganz normale“<br />

Polynome mit vektorwertigen Koeffizienten.<br />

83 Computer Aided Geometric Design.


8.1 Darstellungen polynomialer Kurven und Auswertungsverfahren 123<br />

%% Horner.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Hornerschema<br />

%% E<strong>in</strong>gabe:<br />

%% a Koeffizientenmatrix (vektorwertig!)<br />

%% x Stelle<br />

function y = Horner( a,x )<br />

n = length(a);<br />

b = a(:,n);<br />

for j = n-1:-1:1<br />

b = x * b + a(:,j);<br />

end<br />

y = b;<br />

%endfunction<br />

Programm 8.1 Horner.m: Das Hornerschema für vektorwertige Polynome.<br />

Proposition 8.6 (Horner–Schema) Ist<br />

p(x) =<br />

n∑<br />

a j x j ∈ Π d n,<br />

j=0<br />

und setzt man<br />

a 0 (x) = a n (8.2)<br />

a j (x) = x a j−1 (x) + a n−j , j = 1, . . . , n, (8.3)<br />

dann ist a n (x) = p(x).<br />

Beweis: Schreibe p(x) als<br />

p(x) = a 0 + x (a 1 + x (· · · x (a n−1 + x a n ) · · ·))<br />

und werte von <strong>in</strong>nen nach außen aus.<br />

□<br />

Im CAGD wurden das Hornerschema und damit <strong>die</strong> monomiale Darstellung von polynomialen<br />

Kurven aber <strong>in</strong>zwischen von etwas anderem verdrängt. Der Grund ist, daß<br />

<strong>die</strong> Koeffizienten a j = 1 j! p(j) (0), j = 0, . . . , n, kaum geometrische Information über <strong>die</strong><br />

resultierende Kurve geben und daß das Design mit <strong>die</strong>sen Koeffizienten praktisch<br />

unmöglich ist.


124 8 POLYNOME<br />

Def<strong>in</strong>ition 8.7 Es sei I = [t 0 , t 1 ] ⊂ R, −∞ < t 0 < t 1 < ∞, e<strong>in</strong> nichtdegeneriertes kompaktes<br />

Intervall 84 und x ∈ R. Als baryzentrische Koord<strong>in</strong>aten<br />

u (x | I) = (u 0 (x | I), u 1 (x | I))<br />

von x bezüglich I def<strong>in</strong>iert man das Paar von Zahlen, das <strong>die</strong> beiden Bed<strong>in</strong>gungen<br />

erfüllt.<br />

x = u 0 (x | I) t 0 + u 1 (x | I) t 1 , u 0 (x | I) + u 1 (x | I) = 1 (8.4)<br />

Bemerkung 8.8 (Baryzentrische Koord<strong>in</strong>aten)<br />

1. In (8.4) wird x als aff<strong>in</strong>e Komb<strong>in</strong>ation von t 0 und t 1 dargestellt. E<strong>in</strong>e aff<strong>in</strong>e Komb<strong>in</strong>ation,<br />

bei der beide Koeffizienten ≥ 0 s<strong>in</strong>d, bezeichnet man als Konvexkomb<strong>in</strong>ation.<br />

2. Die baryzentrischen Koord<strong>in</strong>aten bestimmen sich als<br />

3. Aus (8.5) folgt sofort, daß<br />

u 0 (x | I) = t 1 − x<br />

t 1 − t 0<br />

und u 1 (x | I) = x − t 0<br />

t 1 − t 0<br />

. (8.5)<br />

u 0<br />

(<br />

tj | I ) = δ 0j und u 1<br />

(<br />

tj | I ) = δ 1j , j = 0, 1. (8.6)<br />

4. Die baryzentrischen Koord<strong>in</strong>aten 85 beschreiben das Verhältnis, <strong>in</strong> dem der Punkt x das<br />

Intervall I teilt, siehe Abb. 8.1.<br />

u1<br />

:<br />

u0<br />

t0 x<br />

t1<br />

Abbildung 8.1: Baryzentrische Koord<strong>in</strong>aten als (normiertes) Teilungsverhältnis.<br />

5. Es gilt<br />

u 0 (x | I) , u 1 (x | I) ≥ 0 ⇔ x ∈ I.<br />

6. Ist I = [0, 1], dann ist u 0 (x | I) = (1 − x) und u 1 (x | I) = x. Baryzentrische Koord<strong>in</strong>aten<br />

transformieren also das Intervall I <strong>in</strong> [0, 1].<br />

84 Also das, was sich der ”<br />

Mann von der Straße“ so unter e<strong>in</strong>em Intervall vorstellt.<br />

85 Der Begriff bedeutet ja nichts anderes als ”<br />

Schwerpunktskoord<strong>in</strong>aten“.


8.1 Darstellungen polynomialer Kurven und Auswertungsverfahren 125<br />

Mit Hilfe der baryzentrischen Koord<strong>in</strong>aten können wir e<strong>in</strong> anderes Auswertungsverfahren<br />

für Polynome angeben.<br />

Satz 8.9 Es seien b 0 , . . . , b n ∈ R d . Für x ∈ I liefert der Algorithmus von de Casteljau 86 ,<br />

b 0 k (x) = b k, k = 0, . . . , n, (8.7)<br />

b j+1<br />

k (x) = u 0 (x | I) b j k (x) + u 1 (x | I) b j k+1<br />

(x), k = 0, . . . , n − j − 1, (8.8)<br />

als Ergebnis den Wert<br />

b n 0 (x) =<br />

n ∑<br />

j=0<br />

( ) n<br />

b j u n−j<br />

j<br />

0<br />

(x | I) u j 1<br />

(x | I)<br />

(8.9)<br />

} {{ }<br />

=:B n j (x | I)<br />

der Bézierkurve 87 B n b(x) := B n (b 0 , . . . , b n ) (x) =<br />

n∑<br />

b j B n j<br />

j=0<br />

(x | I)<br />

an der Stelle x.<br />

Def<strong>in</strong>ition 8.10 Die Koeffizienten b = (b 0 , . . . , b n ) bezeichnet man als Kontrollpunkte, <strong>die</strong><br />

von ihnen gebildete stückweise l<strong>in</strong>eare Funktion als Kontrollpolygon.<br />

Die schematische Arbeitsweise des Algorithmus von de Casteljau ist <strong>in</strong> Abb. 8.2<br />

dargestellt. Die Polynome B n j (x | I) s<strong>in</strong>d im Falle I = [0, 1] alte Bekannte“, nämlich<br />

”<br />

genau <strong>die</strong> Polynome, mit deren Hilfe wir <strong>die</strong> Bernste<strong>in</strong>polynome im Beweis von Satz 8.3<br />

gebildet haben. Tatsächlich ist ja B n f auch nichts anderes als e<strong>in</strong>e Bézierkurve, nur eben<br />

mit b j = f(j/n), j = 0, . . . , n. Aus disem Grund bezeichnet man <strong>die</strong> Polynome B n j<br />

(x | I)<br />

auch als Bernste<strong>in</strong>–Bézier–Basispolynome.<br />

Übung 8.1 Zeigen Sie, daß jedes stetige Vektorfeld f : I → R d auf dem kompakten<br />

Intervall I ⊂ R gleichmäßig durch polynomiale Vektorfelder approximiert werden<br />

kann.<br />

♦<br />

Lemma 8.11 Die Bernste<strong>in</strong>–Bézier–Basispolynome haben <strong>die</strong> folgenden Eigenschaften:<br />

1. (Rekursionsformel)<br />

B n j (x | I) = u 0 (x | I) B n−1<br />

j<br />

(x | I) + u 1 (x | I) B n−1<br />

j−1<br />

(x | I) . (8.10)<br />

86 Paul Faget de Casteljau, <strong>Mathematik</strong>er, <strong>in</strong> den 60ern bei Citröen <strong>in</strong> der CAD–Entwicklung tätig.<br />

87 Pierre Bézier, † 29.11.1999, Ingenieur, <strong>in</strong> den 60ern bei Renault <strong>in</strong> der CAD–Entwicklung tätig.


126 8 POLYNOME<br />

Abbildung 8.2: Der Algorithmus von de Casteljau: Die Teilungsverhältnisse von<br />

I bezüglich x werden auf <strong>die</strong> Streckenzüge übertragen, <strong>die</strong> <strong>die</strong> Koeffizienten<br />

verb<strong>in</strong>den.<br />

2. (Teilung der E<strong>in</strong>s)<br />

3. (Nichtnegativität) Für x ∈ I ist B n j<br />

n∑<br />

j=0<br />

B n j<br />

(x | I) ≥ 0.<br />

(x | I) = 1. (8.11)<br />

Beweis: Die erste Identität, (8.10), folgt aus 88<br />

( ) (( ) ( n<br />

B n j (x | I) = u n−j<br />

j<br />

0<br />

u j n − 1 n − 1<br />

1 = +<br />

j j − 1<br />

( )<br />

( n − 1<br />

= u 0 u n−1−j<br />

j<br />

0<br />

u j n − 1<br />

1 + u 1<br />

j − 1<br />

= u 0 (x | I) B n−1<br />

j<br />

))<br />

u n−j<br />

0<br />

u j 1<br />

)<br />

u n−j<br />

0<br />

u j−1<br />

1<br />

(x | I) + u 1 (x | I) Bj−1 n−1 (x | I) .<br />

Für (8.11) verwenden wir (8.10) und erhalten mit der Konvention B n −1 = Bn n+1<br />

= 0, daß<br />

n∑<br />

n−1<br />

B n j (x | I) = ∑<br />

u 0 Bj n−1 +<br />

j=0<br />

j=0<br />

n∑<br />

u 1 B n−1<br />

j−1 = (u ∑n−1<br />

0 + u 1 )<br />

} {{ }<br />

=1 j=0<br />

j=1<br />

B n−1<br />

j<br />

} {{ }<br />

=1<br />

88 Hier und im Folgenden verwenden wir <strong>die</strong> Kurzschreibweise u j = u j (x | I), x ∈ I.<br />

= 1


8.1 Darstellungen polynomialer Kurven und Auswertungsverfahren 127<br />

%% DeCasteljau.m (Numerik I)<br />

%% --------------------------------------------------------<br />

%% DeCasteljau fuer [0,1]<br />

%% E<strong>in</strong>gabe:<br />

%% b Kontrollpunkte (Matrix!)<br />

%% x Punkt <strong>in</strong> [0,1]<br />

function y = DeCasteljau( b,x )<br />

n = length(b);<br />

for j = 1:n-1<br />

for k = 1:n-j<br />

b( :,k ) = (1-x) * b( :,k ) + x * b( :,k+1 );<br />

end<br />

end<br />

y = b( :,1 );<br />

%endfunction<br />

Programm 8.2 DeCasteljau.m: Der Algorithmus von de Casteljau mit Referenz<strong>in</strong>tervall<br />

I = [0, 1].


128 8 POLYNOME<br />

mittels Induktion über n. Die Nichtnegativität folgt direkt aus (8.10).<br />

□<br />

Übung 8.2 Beweisen Sie <strong>die</strong> komb<strong>in</strong>atorische Identität<br />

( ) ( ) ( )<br />

n n − 1 n − 1<br />

= + .<br />

j j j − 1<br />

Beweis von Satz 8.9: Wir zeigen durch Induktion über j, daß<br />

♦<br />

b j k (x) =<br />

j∑<br />

b k+r B j r (x | I) , k = 0, . . . , n − j, x ∈ R, (8.12)<br />

r=0<br />

was für j = n <strong>die</strong> Formel (8.9) liefert und für j = 0 gerade (8.7), also per Def<strong>in</strong>itionem<br />

richtig ist. Für j ≥ 0 und k = 0, . . . , n − j − 1 verwenden wir schließlich <strong>die</strong> Rekursionsformel<br />

(8.8), um mit Hilfe der Induktionssanahme<br />

b j+1<br />

k (x) = u 0 b j k (x) + u 1 b j k+1 = u 0<br />

j∑<br />

b k+r B j r + u 1<br />

r=0<br />

j∑<br />

b k+r+1 B j r<br />

j∑<br />

∑j+1<br />

j+1<br />

= u 0 b k+r B j r + u 1 b k+r B j r−1 = ∑<br />

)<br />

b k+r<br />

(u 0 B j r + u 1 B j r−1<br />

=<br />

r=0<br />

j+1<br />

∑<br />

r=0<br />

b k+r B j+1<br />

r (x | I)<br />

r=1<br />

r=0<br />

r=0<br />

zu erhalten, was <strong>die</strong> Induktion fortsetzt.<br />

□<br />

Bemerkung 8.12 (Eigenschaften der Bézierkurven)<br />

1. ( ”<br />

Convex Hull Property“ ) Da für x ∈ I<br />

0 ≤ B n j (x | I) und n ∑<br />

j=0<br />

B n j<br />

(x | I) = 1,<br />

ist jeder Punkt B n b e<strong>in</strong>e Konvexkomb<strong>in</strong>ation von b 0 , . . . , b n und damit liegt <strong>die</strong><br />

Kurve 89 B n b(I) <strong>in</strong> der konvexen Hülle von b 0 , . . . , b n . Dies ist beispielsweise für <strong>die</strong><br />

Schnittbestimmung von Kurven wichtig: Man prüft zuerst e<strong>in</strong>mal, ob sich überhaupt <strong>die</strong><br />

konvexen Hüllen (also Polygone 90 ) schneiden, bevor man e<strong>in</strong> kompliziertes Verfahren zur<br />

Schnittberechnung von Kurven anwirft.<br />

89 Genauer: ihr Graph.<br />

90 Zur Bestimmung des Schnitts von Polygonen s<strong>in</strong>d e<strong>in</strong>e Vielzahl von sehr effizienten Algorithmen,<br />

Stichwort ”<br />

Clipp<strong>in</strong>g“, verfügbar.


8.2 Interpolation – der Aitken–Neville-Algorithmus 129<br />

2. ( ”<br />

Endpo<strong>in</strong>t Interpolation“ ) Ist u 0 (x | I) = 1, dann ist b j 0 (x) = b 0, j = 0, . . . , n, also<br />

auch B n b(x) = b 0 ; entsprechend natürlich auch B n b(x) = b n , wenn u 1 (x | I) = 1.<br />

Die Bézierkurven <strong>in</strong>terpolieren also an den Endpunkten des Kontrollpolygons.<br />

3. ( L<strong>in</strong>ear Precision“ ) Liegen alle Kontrollpunkte b ” j , j = 0, . . . , n, auf e<strong>in</strong>er Geraden, so<br />

ist B n b(I) e<strong>in</strong> Streckenzug auf <strong>die</strong>ser Geraden: Für alle x ∈ R mit b j k (x) und bj k+1 (x)<br />

liegt auch der Zwischenpunkt b j+1<br />

k<br />

(x) auf der Geraden. Allerd<strong>in</strong>gs ist im Normalfall <strong>die</strong><br />

Kurve B n b(x) anders parametrisiert als der Streckenzug. Zum Beispiel durchläuft für<br />

[ 0<br />

b 0 = b 2 =<br />

0<br />

] [ 1<br />

, b 1 =<br />

1<br />

]<br />

<strong>die</strong> Kurve B 2 b den Streckenzug ”<br />

h<strong>in</strong> und zurück“, siehe Abb. 8.3.<br />

4. Die Form des Kontrollpolygons beschreibt ”<br />

ungefähr“ <strong>die</strong> Form der resultierenden Kurve.<br />

b1<br />

b0 = b2<br />

1/2<br />

Abbildung 8.3: E<strong>in</strong>e Bézierkurve, deren Graph e<strong>in</strong> Streckenzug ist, der aber<br />

zweimal durchlaufen wird, das aber nicht ganz – <strong>die</strong> Kurve erreicht b 1 nie!<br />

8.2 Interpolation – der Aitken–Neville-Algorithmus<br />

In vielen Anwendungen spielt das folgende Interpolationsproblem e<strong>in</strong>e wichtige Rolle:<br />

Gegeben seien Punkte x 0 , . . . , x n ∈ I ⊂ R, I e<strong>in</strong> kompaktes Intervall. Zu<br />

vorgegebenen Werten f 0 , . . . , f n ∈ R d f<strong>in</strong>de man e<strong>in</strong>e stetige Funktion f :<br />

I → R, so daß<br />

f ( x j<br />

)<br />

= fj , j = 0, . . . , n.


130 8 POLYNOME<br />

Derartige mathematische Aufgaben entstehen oder enstanden zum Beispiel bei der Erstellung<br />

ballistischer Tabellen, bzw. bei der Approximation heuristischer (d.h. gemessener)<br />

Tabellen 91<br />

Natürlich hat das obige Interpolationsproblem unendlich viele Lösungen. Die ”<br />

prom<strong>in</strong>enteste“<br />

und ”<br />

klassischste“ s<strong>in</strong>d sicherlich Polynome.<br />

Satz 8.13 Zu vorgegebenen Stellen 92 x 0 < x 1 < · · · < x n und Daten f 0 , . . . , f n gibt es genau<br />

e<strong>in</strong> Polynom p ∈ Π n , so daß<br />

p ( x j<br />

)<br />

= fj , j = 0, . . . , n. (8.13)<br />

Der ”<br />

Standardbeweis“ für <strong>die</strong> obige Aussage verwendet <strong>die</strong> Lagrange–Darstellung<br />

p(x) =<br />

n∑<br />

j=0<br />

f j<br />

n ∏<br />

k=0<br />

k̸=j<br />

x − x k<br />

x j − x k<br />

des Interpolationspolynoms p, <strong>die</strong> aber numerisch hochgrad<strong>in</strong>g <strong>in</strong>stabil ist. Wir wollen<br />

hier e<strong>in</strong>en anderen, algorithmischen Weg gehen. Dazu schreiben wir<br />

I j k := [ x k , x k+j<br />

]<br />

, k = 0, . . . , n − j, j = 1, . . . , n.<br />

Satz 8.14 Für vorgegebene x 0 < x 1 < · · · < x n ∈ R und f 0 , . . . , f n ∈ R liefert der Aitken–<br />

Neville–Algorithmus 93<br />

f 0 k (x) = f k, k = 0, . . . , n (8.14)<br />

( )<br />

( )<br />

f j+1<br />

k (x) = u 0 x | I j+1<br />

k<br />

f j k (x) + u 1 x | I j+1<br />

k<br />

f j k+1<br />

(x), k = 0, . . . , n − j − 1, (8.15)<br />

als Endergebnis e<strong>in</strong> Polynom p(x) = f n 0<br />

(x) mit der Interpolationseigenschaft<br />

p ( x j<br />

)<br />

= fj , j = 0, . . . , n. (8.16)<br />

Der Algorithmus von Aitken–Neville sieht eigentlich ganz genauso aus wie der Algorithmus<br />

von de Casteljau, mit e<strong>in</strong>em kle<strong>in</strong>en, aber fe<strong>in</strong>en und signifikanten Unterschied:<br />

In jedem Schritt von Aitken–Neville wird e<strong>in</strong> anderes Referenz<strong>in</strong>tervall verwendet!<br />

Trotzdem ist Aitken–Neville, wie auch der Algorithmus von de Casteljau,<br />

e<strong>in</strong> sogenanntes Pyramidenschema. Der Name stammt daher, daß das Auswertungsschema,<br />

grafisch dargestellt, e<strong>in</strong>e auf dem Kopf stehende Pyramide ergibt, wenn man<br />

91 Genau <strong>die</strong>se Problematik führte I. J. Schoenberg zur Erf<strong>in</strong>dung“ der Spl<strong>in</strong>es während se<strong>in</strong>er<br />

Tätigkeit <strong>in</strong> den Ballistic Research Laboratories“, Aberdeen, Maryland, während des zweiten<br />

”<br />

”<br />

Weltkriegs.<br />

92 Diese werden auch gerne als Knoten bezeichnet, aber wir werden <strong>die</strong>sen Namen noch für etwas<br />

anderes brauchen.<br />

93 Zuerst von A. G. Aitken (1932) e<strong>in</strong>geführt und später auch von E. H. Neville (1934) untersucht, siehe<br />

[1, 27]. Insbesondere wird <strong>in</strong> [27] explizit auf [1] verwiesen.


8.2 Interpolation – der Aitken–Neville-Algorithmus 131<br />

%% AitkenNeville.m<br />

%% -------------------------------------------------------<br />

%% Aitken-Neville-Interpolation<br />

%% E<strong>in</strong>gabe:<br />

%% f Funktionswerte<br />

%% X Interpolationsknoten<br />

%% x Asuwertungsstelle<br />

function y = AitkenNeville( f,X,x )<br />

n = length( f );<br />

for j=1:n<br />

for k=1:n-j<br />

t = ( X( k+j ) - x ) / ( X( k+j ) - X( k ) );<br />

f( :,k ) = t * f( :,k ) + ( 1-t ) * f( :,k+1 );<br />

end<br />

end<br />

y = f( :,1 );<br />

%endfunction<br />

Programm 8.3 AitkenNeville.m: Der Algorithmus von Aitken–Neville. Die Matrix<br />

f enthält <strong>die</strong> zu <strong>in</strong>terpolierenden Werte, der Vektor X <strong>die</strong> Punkte, an denen<br />

<strong>in</strong>terpoliert werden soll.


132 8 POLYNOME<br />

mit den Ausgangsparametern beg<strong>in</strong>nt und dann Zeile für Zeile <strong>die</strong> Zwischenwerte des<br />

Verfahrens auflistet.<br />

f 0 f 1 . . . f n−1 f n<br />

↓ ↓ ↓ ↓<br />

f 0 0 (x) f0 1 (x) . . . f0 n−1 (x)<br />

↘ ↙<br />

↘ ↙<br />

f0 n(x)<br />

f 1 0 (x) . . . f1 n−1 (x)<br />

.<br />

.<br />

↘ ↙ ↘ ↙<br />

0<br />

(x) f n−1<br />

1<br />

(x)<br />

↘ ↙<br />

f n 0 (x)<br />

f n−1<br />

Die folgende Aussage beweist nicht nur Satz 8.14, sondern sogar etwas mehr . . .<br />

Proposition 8.15 (Eigenschaften von Aitken–Neville)<br />

1. Die Abbildungen x ↦→ f j k<br />

(x), k = 0, . . . , n − j s<strong>in</strong>d Polynome vom Grad ≤ j.<br />

2. Für j = 0, . . . , n und k = 0, . . . , n − j gilt:<br />

<strong>in</strong>sbesondere gilt also (8.16).<br />

f j k (x m) = f m , m = k, . . . , k + j, (8.17)<br />

Beweis: Eigenschaft 1. folgt sofort aus (8.14), (8.15) und der Tatsache, daß u j (· | I) ∈<br />

Π 1 , j = 1, 2, für jedes I ⊂ R.<br />

(8.17) beweisen wir durch Induktion über j, wobei der Fall j = 0 genau der Initialisierungschritt<br />

im Algorithmus von Aitken-Neville ist. Sei also (8.17) für e<strong>in</strong> j ≥ 0<br />

bewiesen. Dann ist, nach (8.14) und der Induktionsannahme,<br />

( )<br />

( )<br />

f j+1<br />

k<br />

(x k ) = u 0 x k | I j+1<br />

k<br />

f j k<br />

} {{ }<br />

(x k) + u 1 x k | I j+1<br />

} {{ }<br />

k<br />

f j k+1<br />

} {{ }<br />

(x k) = f k ,<br />

=1<br />

=f k =0<br />

sowie<br />

( ) )<br />

xk+j+1 = u0<br />

(x k+j+1 | I j+1<br />

f j+1<br />

k<br />

k<br />

} {{ }<br />

=0<br />

f j k<br />

( ) )<br />

xk+j+1 + u1<br />

(x k | I j+1<br />

k<br />

f j+1 ( )<br />

k+1 xk+j+1 = f k+j+1 .<br />

} {{ } } {{ }<br />

=1<br />

=f k+j+1<br />

Für m = k + 1, . . . , k + j haben wir schließlich nach Induktionsannahme daß f j k (x m) =<br />

f j k+1 (x m) = f m und daher<br />

( )<br />

( )<br />

f j+1<br />

k<br />

(x m ) = u 0 x m | I j+1<br />

k<br />

f j k (x m) +u 1 x m | I j+1<br />

} {{ }<br />

k<br />

f j k+1 (x m)<br />

} {{ }<br />

=f m =f<br />

( ) ( ))<br />

m<br />

=<br />

(u 0 x m | I j+1<br />

k<br />

+ u 1 x m | I j+1<br />

k<br />

f m = f m<br />

} {{ }<br />

=1


8.3 Interpolation – der Newton–Ansatz 133<br />

also gilt (8.17) auch für j + 1, womit der Beweis beendet ist.<br />

Beweis von Satz 8.13: Die Existenz e<strong>in</strong>es Interpolationspolynoms haben wir, wenn<br />

auch etwas umständlich, bewiesen. Die E<strong>in</strong>deutigkeit folgt sofort aus der Tatsache,<br />

daß jedes Polynom vom Grad ≤ n mit n + 1 Nullstellen das Nullpolynom se<strong>in</strong> muß:<br />

Sei p ∈ Π n und sei (ohne E<strong>in</strong>schränkung) a n ̸= 0. Nach dem Satz von Rolle hat dann<br />

<strong>die</strong> Ableitung p (j) m<strong>in</strong>destens n + 1 − j Nullstellen, also gibt es (m<strong>in</strong>destens) e<strong>in</strong> x ∈ R,<br />

so daß<br />

0 = p(n) (x)<br />

= a n ,<br />

n!<br />

was e<strong>in</strong>en Widerspruch liefert.<br />

□<br />

8.3 Interpolation – der Newton–Ansatz<br />

Der Algorithmus von Aitken–Neville ist e<strong>in</strong>e fe<strong>in</strong>e Sache, wenn es darum geht, den<br />

Wert e<strong>in</strong>es Interpolationspolynoms an e<strong>in</strong>er Stelle x zu berechnen. Er hat aber auch<br />

se<strong>in</strong>e Nachteile:<br />

1. Wenn man das Interpolationspolynom formal manipulieren will (ableiten, zu<br />

e<strong>in</strong>em anderen Polynom ad<strong>die</strong>ren und so), braucht man e<strong>in</strong>e explizite Darstellung<br />

des Interpolationspolynoms.<br />

2. Jede Auswertung mit Aitken–Neville hat e<strong>in</strong>en Rechenaufwand von O ( n 2) , was<br />

deutlich mehr als das O(n) des Hornerschemas 94 ist. Muß man also e<strong>in</strong> Interpolationspolynom<br />

sehr oft auswerten, kann sich e<strong>in</strong>e andere Darstellung lohnen.<br />

Def<strong>in</strong>ition 8.16 Es seien x 0 < x 1 < · · · < x n und f = [f 0 , . . . , f n ] ∈ R n+1 .<br />

1. Der Interpolationsoperator L n : R n+1 → Π n ordnet jedem Satz f von E<strong>in</strong>gangsdaten<br />

das e<strong>in</strong>deutige Polynom L n f ∈ Π n mit der Eigenschaft<br />

L n f ( x j<br />

)<br />

= fj , j = 0, . . . , n.<br />

□<br />

2. Für f ∈ C (R) d können wir L n f ganz e<strong>in</strong>fach erweitern, <strong>in</strong>dem wir f mit [f (x 0 ) , . . . , f (x n )]<br />

identifizieren.<br />

3. Die Newton–Darstellung von L n f hat <strong>die</strong> Form<br />

L n f(x) =<br />

n∑<br />

λ j (f) (x − x 0 ) · · · (x )<br />

− x j−1 ,<br />

j=0<br />

für passende Koeffizienten 95 λ j (f) ∈ R d .<br />

94 Der Aufwand von de Casteljau ist übrigens O ( n 2) .<br />

95 Die wir natürlich noch bestimmen müssen.


134 8 POLYNOME<br />

Bemerkung 8.17 (Newton–Darstellung)<br />

1. Die Newton–Darstellung erlaubt das e<strong>in</strong>fache H<strong>in</strong>zufügen von Punkten: S<strong>in</strong>d e<strong>in</strong> weiterer<br />

Punkt x n+1 und e<strong>in</strong> weiterer Wert f n+1 gegeben, dann ist<br />

L n+1 f(x) = L n f(x) + λ n+1 (f) (x − x 0 ) · · · (x − x n ) .<br />

2. Das ”<br />

h<strong>in</strong>zugefügte“ Polynom (x − x 0 ) · · · (x − x n ) hat (nicht zufällig) <strong>die</strong> Eigenschaft,<br />

das (bis auf Konstante) e<strong>in</strong>deutige Polynom kle<strong>in</strong>sten Grades zu se<strong>in</strong>, das an x 0 , . . . , x n<br />

verschw<strong>in</strong>det.<br />

Machen wir uns jetzt also an <strong>die</strong> Konstruktion der Koeffizienten λ j (f) <strong>in</strong> der Newton–<br />

Darstellung. Dazu bemerken wir zuerst, daß uns <strong>die</strong> Interpolationsbed<strong>in</strong>gungen das<br />

Gleichungssystem<br />

n∑<br />

λ j (f) (x k − x 0 ) · · · (x )<br />

k − x j−1 = fk , k = 0, . . . , n,<br />

j=0<br />

also<br />

⎡<br />

⎢<br />

⎣<br />

1 x 0 − x 0 (x 0 − x 0 ) (x 0 − x 1 ) . . .<br />

1 x 1 − x 0 (x 1 − x 0 ) (x 1 − x 1 ) . . .<br />

n−1<br />

∏ ( )<br />

x0 − x j<br />

j=0<br />

n−1<br />

∏ ( )<br />

x1 − x j<br />

j=0<br />

. .<br />

.<br />

.. . .<br />

1 x n − x 0 (x n − x 0 ) (x n − x 1 ) . . .<br />

n−1<br />

∏ ( )<br />

xn − x j<br />

j=0<br />

⎤<br />

⎥<br />

⎦<br />

⎡<br />

⎢<br />

⎣<br />

λ 0 (f)<br />

λ 1 (f)<br />

.<br />

λ n (f)<br />

⎤ ⎡<br />

⎥<br />

⎦ = ⎢<br />

⎣<br />

⎤<br />

f 0<br />

f 1<br />

⎥<br />

. ⎦ .<br />

f n<br />

Die Matrix auf der l<strong>in</strong>ke Seite ist e<strong>in</strong>e untere Dreiecksmatrix, also ist<br />

⎡<br />

⎤ ⎡ ⎤ ⎡ ⎤<br />

1<br />

λ 0 (f) f 0<br />

1 ∗<br />

λ 1 (f)<br />

⎢<br />

⎣<br />

.<br />

. . ..<br />

⎥ ⎢ ⎥<br />

⎦ ⎣ . ⎦ = f 1<br />

⎢ ⎥<br />

⎣ . ⎦ ,<br />

1 ∗ . . . ∗ λ n (f) f n<br />

also hängt λ j (f) nur von f 0 , . . . , f j und x 0 , . . . , x j ab und zwar l<strong>in</strong>ear <strong>in</strong> f 0 , . . . , f j .<br />

Def<strong>in</strong>ition 8.18 Die divi<strong>die</strong>rte Differenz [x 0 , . . . , x n ] f zu e<strong>in</strong>em Vektor 96 f ∈ R n+1 oder<br />

e<strong>in</strong>er Funktion f ∈ C (R) d ist rekursiv def<strong>in</strong>iert als<br />

[<br />

xj<br />

]<br />

f = fj = f ( x j<br />

)<br />

, j = 0, . . . , n (8.18)<br />

[<br />

x0 , . . . , x j+1<br />

]<br />

f =<br />

[<br />

x0 , . . . , x j<br />

]<br />

f −<br />

[<br />

x1 , . . . , x j+1<br />

]<br />

f<br />

x 0 − x j+1<br />

, j = 0, . . . , n − 1. (8.19)


8.3 Interpolation – der Newton–Ansatz 135<br />

%% DivDiff.m (Numerik I)<br />

%% --------------------------------------------------------<br />

%% Divi<strong>die</strong>rte Differenzen (Vektorwertig)<br />

%% E<strong>in</strong>gabe:<br />

%% f Matrix der Funktionswerte (Vektoren!)<br />

%% X Knotenvektor<br />

function y = DivDiff( f,X )<br />

n = length( X );<br />

for j = 1:n-1<br />

for k = 1:n-j<br />

f( :,k ) = ( f ( :,k ) - f ( :,k+1 ) ) / ( X( k ) - X( k+j ) );<br />

end<br />

end<br />

y = f( :,1 );<br />

%endfunction<br />

Programm 8.4 DivDiff.m: Berechnung der divi<strong>die</strong>rten Differenzen<br />

Dreiecksschema aus der Rekursionsformel (8.19).<br />

über e<strong>in</strong>


136 8 POLYNOME<br />

%% NewtonKoeff.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Koeffizienten des Interpolationspolynoms <strong>in</strong> der<br />

%% Newton-Darstellung (nicht optimal!)<br />

%% E<strong>in</strong>gabe:<br />

%% f zu <strong>in</strong>terpolierende Werte<br />

%% X Interpolationspunkte<br />

function F = NewtonKoeff( f,X )<br />

n = length( X );<br />

for j = 1:n<br />

F( :,j ) = DivDiff( f, X( 1:j ) );<br />

end<br />

%endfunction<br />

Programm 8.5 NewtonKoeff.m: Naive Berechnung des Koeffizientenvektors für das<br />

Interpolationspolynom, jede divi<strong>die</strong>rte Differenz wird separat berechnet.<br />

Satz 8.19 Es seien x 0 , . . . , x n ∈ R alle verschieden und f ∈ R d×n+1 oder f ∈ C(R) d . Dann<br />

ist<br />

n∑ [ ]<br />

L n f(x) = x0 , . . . , x j f (x − x0 ) · · · (x )<br />

− x j−1 , x ∈ R, (8.20)<br />

j=0<br />

und außerdem<br />

f(x) − L n f(x) = (x − x 0 ) · · · (x − x n ) [x, x 0 , . . . , x n ] f. (8.21)<br />

Bevor wir uns mit e<strong>in</strong>igen Konsequenzen aus der Newton–Darstellung des Interpolationspolynoms<br />

und natürlich dem Beweis von Satz 8.19 beschäftigen, sehen wir uns<br />

erst schnell an, wie man so e<strong>in</strong> Interpolationspolynom mit Matlab oder Octave bestimmt.<br />

Zuerst brauchen wir natürlich <strong>die</strong> Koeffizienten, also <strong>die</strong> divi<strong>die</strong>rten Differenzen.<br />

Der naive Ansatz wäre also, wie <strong>in</strong> NewtonKoeff.m <strong>die</strong> divi<strong>die</strong>rten Differenzen sukzessive<br />

zu bestimmen. Das ist aber hochgradig <strong>in</strong>effizient: Auf dem Weg zu Berechnung<br />

von [ x 0 , . . . , x j<br />

]<br />

f brauchen wir ja alle divi<strong>die</strong>rten Differenzen [x0 , . . . , x k ] f, k < j. Deswe-<br />

96 Ob Zeile oder Spalte ist an <strong>die</strong>ser Stelle völlig egal, aus Implementationssicht ist allerd<strong>in</strong>gs e<strong>in</strong>e Zeile<br />

eleganter.


8.3 Interpolation – der Newton–Ansatz 137<br />

%% NewtonKoeff1.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Koeffizienten des Interpolationspolynoms <strong>in</strong> der<br />

%% Newton-Darstellung (schon besser)<br />

%% E<strong>in</strong>gabe:<br />

%% f zu <strong>in</strong>terpolierende Werte<br />

%% X Interpolationspunkte<br />

function F = NewtonKoeff1( f,X )<br />

n = length( X );<br />

F = f;<br />

for j = 2:n<br />

for k = n:-1:j<br />

F( :,k ) = ( F( :,k-1 ) - F( :,k ) ) / ( X( k-j+1 ) - X( k ) );<br />

end<br />

end<br />

%endfunction<br />

Programm 8.6 NewtonKoeff1.m: Effiziente Berechnung des Koeffizientenvektors<br />

mit Überschreiben. Beachte: Der Aufwand zur Berechnun aller divi<strong>die</strong>rten Differenzen<br />

für das Interpolationspolynom ist geanu derselbe wir für <strong>die</strong> Berechnung<br />

des höchsten Koeffizienten [x 0 , . . . , x n ] f.<br />

gen packen wir alles <strong>in</strong> e<strong>in</strong> Schema mit Überschreiben:<br />

[x 0 ] f [x 0 ] f . . . [x 0 ] f [x 0 f]<br />

↘<br />

[x 1 ] f → [x 0 , x 1 ] f . . . [x 0 , x 1 ] f [x 0 , x 1 ] f<br />

↘<br />

[x 2 ] f → [x 1 , x 2 ] f . . . [x 0 , x 1 , x 2 ] f [x 0 , x 1 , x 2 ] f<br />

↘<br />

.<br />

.<br />

.<br />

.<br />

↘<br />

[x n−1 ] f → [x n−2 , x n−1 ] f . . . [x 0 , . . . , x n−1 ] f [x 0 , . . . , x n−1 ] f<br />

↘<br />

↘<br />

[x n ] f → [x n−1 , x n ] f . . . [x 1 , . . . , x n ] f → [x 0 , . . . , x n ] f<br />

Wegen des Überschreibens muß jede Spalte von unten nach oben abgearbeitet werden.<br />

Der Code hierzu f<strong>in</strong>det sich <strong>in</strong> NewtonKoeff1.m. S<strong>in</strong>d also e<strong>in</strong>e Datenmatrix f und e<strong>in</strong><br />

Vektor von Interpolationspunkten X gegeben, so liefert uns der Matlab–Aufruf<br />

F = NewtonKoeff1( f,X );


138 8 POLYNOME<br />

%% NHorner.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Hornerschema bezueglich Newton-Basis<br />

%% E<strong>in</strong>gabe:<br />

%% f Koeffizientenvektor<br />

%% X Interpolationspunkte<br />

%% x Stelle<br />

function y = NHorner( f,X,x )<br />

n = length( X );<br />

y = f( :,n );<br />

for j = n-1:-1:1<br />

y = ( x - X( j ) ) * y + f( :,j );<br />

end<br />

%endfunction<br />

Programm 8.7 NHorner.m: Das Hornerschema für <strong>die</strong> Newtondarstellung e<strong>in</strong>es<br />

Polynoms.<br />

den gewünschten Kooeffizientenvektor. Um das Interpolationspolynom an der Stelle<br />

x auszuwerten, rufen wir schließlich mit<br />

NHorner( F,X,x )<br />

<strong>die</strong> Newton–Variante des Hornerschemas aus NHorner.m auf.<br />

Jetzt aber zurück zur Theorie und e<strong>in</strong>er wichtigen, aber sehr e<strong>in</strong>fach zu beweisenden<br />

Eigenschaft der divi<strong>die</strong>rten Differenzen; zum<strong>in</strong>dest, wenn man <strong>die</strong> Darstellung (8.20)<br />

mal hat 97 .<br />

Korollar 8.20 Die divi<strong>die</strong>rten Differenzen s<strong>in</strong>d symmetrisch <strong>in</strong> den Argumenten: Für jede<br />

Permutation σ : {0, . . . , n} → {0, . . . , n} ist<br />

[<br />

xσ(0) , . . . , x σ(n)<br />

]<br />

f = [x0 , . . . , x n ] f. (8.22)<br />

Beweis: Nach (8.20) ist<br />

L n f(x) = [x 0 , . . . , x n ] f x n + q(x), q ∈ Π n−1 ,<br />

und da L n f <strong>in</strong>variant unter Vertauschung der Interpolationspunkte (bei gleichzeitiger<br />

Vertauschung der zu <strong>in</strong>terpolierenden Werte) ist, folgt <strong>die</strong> Behauptung.<br />

□<br />

Das folgende Resultat zeigt uns, was der Newton Ansatz algorithmisch macht: In jedem<br />

Schritt wird versucht, durch geeignete Interpolation des Fehlers 98 <strong>die</strong> Genauigkeit<br />

97 Man kann auch den umgekehrten Weg gehen und <strong>die</strong> divi<strong>die</strong>rte Differenz als den Leitkoeffizienten<br />

des Interpolationspolynoms def<strong>in</strong>ieren; dann muss man allerd<strong>in</strong>gs <strong>die</strong> Rekursionsformel beweisen.<br />

98 Ohne <strong>die</strong> vorher bereits erzielten Interpolationseigenschaften zu zerstören.


8.3 Interpolation – der Newton–Ansatz 139<br />

des Interpolanten Schritt für Schritt zu erhöhen.<br />

Korollar 8.21 Es seien x 0 , . . . , x n ∈ R alle verschieden und f ∈ R n+1 oder f ∈ C(R). Dann<br />

ist 99 n∑ (<br />

L n f(x) = f − Lj−1 f ) ( ) (x − x 0 · · · (x )<br />

− x j−1<br />

x j ( ) ( ). (8.23)<br />

xj − x 0 · · · xj − x j−1<br />

j=0<br />

Beweis: Nach (8.21) mit n = j − 1 und x = x j ist<br />

[<br />

x0 , . . . , x j<br />

]<br />

f =<br />

(<br />

f − Lj−1 f ) ( x j<br />

)<br />

(<br />

xj − x 0<br />

) · · · (<br />

xj − x j−1<br />

), j = 0, . . . , n.<br />

Beweis von Satz 8.19: Wir beweisen (8.20) und (8.21) simultan duch Induktion über<br />

n.<br />

Für n = 0 ist L 0 f(x) = f 0 = f (x 0 ) und<br />

f(x) − L 0 f(x) = f(x) − f (x 0 ) = (x − x 0 ) f(x) − f (x 0)<br />

(x − x 0 )<br />

Seien also (8.20) und (8.21) für e<strong>in</strong> n ≥ 0 bewiesen. Wir setzen<br />

P n+1 f(x) :=<br />

∑n+1<br />

[ ]<br />

x0 , . . . , x j f (x − x0 ) · · · (x )<br />

− x j−1<br />

j=0<br />

= (x − x 0 ) [x 0 , x] f.<br />

= P n f(x) + [x 0 , . . . , x n+1 ] f (x − x 0 ) · · · (x − x n ) .<br />

Nach der Induktionsannahme erhalten wir aus (8.20) und (8.23) 100 , daß<br />

P n+1 f(x) = L n f(x) + (f − L n f) (x n+1 )<br />

Damit ist, für j = 0, . . . , n,<br />

und außerdem<br />

P n+1 f ( x j<br />

)<br />

= Ln f ( x j<br />

)<br />

= fj<br />

(x − x 0 ) · · · (x − x n )<br />

(x n+1 − x 0 ) · · · (x n+1 − x n ) .<br />

P n+1 f (x n+1 ) = L n f (x n+1 ) + f (x n+1 ) − L n f (x n+1 ) = f (x n+1 ) = f n+1 ,<br />

also P n+1 f = L n+1 f und (8.20) gilt auch für n + 1. Andererseits ist mit dem gerade<br />

bewiesenen und nochmals der Induktionsannahme<br />

f(x) − L n+1 f(x) = (f(x) − L n f(x)) − (L n+1 f(x) − L n f(x))<br />

= (x − x 0 ) · · · (x − x n ) [x, x 0 , . . . , x n ] f − (x − x 0 ) · · · (x − x n ) [x 0 , . . . , x n , x n+1 ] f<br />

= (x − x 0 ) · · · (x − x n+1 ) [x, x 0, . . . , x n ] f − [x 0 , . . . , x n , x n+1 ] f<br />

x − x n+1<br />

= (x − x 0 ) · · · (x − x n+1 ) [x, x 0 , . . . , x n+1 ] f,<br />

99 Mit L −1 (x) = 0.<br />

100 Da (8.23) direkt aus (8.21) folgt ist dessen Verwendung zulässig!<br />


140 8 POLYNOME<br />

nach der Rekursionsformel (8.19).<br />

□<br />

Übung 8.3 Zeigen Sie:<br />

p ∈ Π n ⇔ [x 0 , . . . , x k ] p = 0, x 0 < · · · < x k , k > n.<br />

Schließlich noch e<strong>in</strong>e Aussage über den Interpolationsfehler für h<strong>in</strong>reichend oft differenzierbare<br />

Funktionen.<br />

Satz 8.22 Seien x 0 , . . . , x n alle verschieden und f ∈ C n+1 (R). Dann gibt es für jedes x ∈ R<br />

e<strong>in</strong> ξ ∈ [x 0 , . . . , x n , x], der konvexen Hülle von x 0 , . . . , x n , x 101 , so daß<br />

♦<br />

f(x) − L n f(x) = f(n+1) (ξ)<br />

(n + 1)!<br />

(x − x 0 ) · · · (x − x n ) . (8.24)<br />

Dann liefern uns <strong>die</strong> Fehlerformeln (8.24) und (8.21) auch noch e<strong>in</strong>e Aussage über <strong>die</strong><br />

divi<strong>die</strong>rten Differenzen differenzierbarer Funktionen.<br />

Korollar 8.23 Es sei f ∈ C n (R). Zu beliebigen verschiedenen Punkten x 0 , . . . , x n ∈ R gibt<br />

es e<strong>in</strong> ξ ∈ [x 0 , . . . , x n ], so daß<br />

[x 0 , . . . , x n ] f = f(n) (ξ)<br />

.<br />

n!<br />

Beweis von Satz 8.22: Für x ̸∈ {x 0 , . . . , x n } setzen wir<br />

def<strong>in</strong>ieren<br />

α =<br />

f(x) − L n f(x)<br />

(x − x 0 ) · · · (x − x n ) ,<br />

g(y) = f(y) − L n f(y) − α (y − x 0 ) · · · (y − x n ) , y ∈ R,<br />

und bemerken, daß g ( x j<br />

)<br />

= 0, j = 0, . . . , n, sowie g(x) = 0. Nach dem Satz von Rolle<br />

hat also g (j) m<strong>in</strong>destens n + 2 − j Nullstellen im Intervall [x 0 , . . . , x n , x], j = 0, . . . , n + 1,<br />

es gibt also m<strong>in</strong>destens e<strong>in</strong> ξ ∈ [x 0 , . . . , x n , x], so daß<br />

0 = g (n+1)<br />

α<br />

(ξ) = f (n+1) (ξ) − (L n f(x)) (n+1)<br />

} {{ }<br />

=0<br />

= f (n+1) (ξ) − α (n + 1)!,<br />

−α dn+1<br />

dx n+1 (x − x 0) · · · (x − x n )<br />

} {{ }<br />

=(n+1)!<br />

also ist α = f (n+1) (ξ)/(n + 1)!.<br />

□<br />

101 Alternativ: das kle<strong>in</strong>ste Intervall, das x 0 , . . . , x n und x enthält.


8.4 Approximationsgüte von Interpolationspolynomen 141<br />

8.4 Approximationsgüte von Interpolationspolynomen<br />

Wir beg<strong>in</strong>nen mit e<strong>in</strong>er (trivialen) Folgerung aus Satz 8.22.<br />

Korollar 8.24 Für f ∈ C n+1 (R) und x 0 , . . . , x n ∈ I ⊂ R ist<br />

∥<br />

∥<br />

∥f (n+1) ∥∥I<br />

‖f − L n f‖ I<br />

= max<br />

x∈I |f(x) − L nf(x)| ≤<br />

(n + 1)!<br />

max<br />

x∈I |x − x 0| · · · |x − x n | . (8.25)<br />

Wollen wir nun, daß der Interpolant L n f <strong>die</strong> Funktion f gut approximiert 102 , dann<br />

haben wir nur e<strong>in</strong>e Wahl: Wir müssen <strong>die</strong> Interpolationspunkte x 0 , . . . , x n so wählen,<br />

daß der Ausdruck<br />

max<br />

x∈I |x − x 0| · · · |x − x n | = ‖(· − x 0 ) · · · (· − x n )‖ I<br />

möglichst kle<strong>in</strong> wird. Wenn wir uns auf I = [−1, 1] beschränken, können wir <strong>die</strong>se<br />

Punkte explizit bestimmen, für beliebige Intervalle a, b verwendet man dann <strong>die</strong> Transformation<br />

x ↦→ a + x + 1 (b − a),<br />

2<br />

<strong>die</strong> [−1, 1] l<strong>in</strong>ear auf [a, b] abbildet.<br />

Bemerkung 8.25 Es bezeichne P n ⊂ Π n <strong>die</strong> Menge aller Polynome vom Grad n mit monomialem<br />

Leitterm bzw. Leitkoeffizient 1:<br />

Ist also p ∗ das Polynom, für das<br />

p ∈ P n ⇔ p(x) = x n + q(x), q ∈ Π n−1 .<br />

‖p ∗ ‖ I<br />

= m<strong>in</strong><br />

p∈P n<br />

‖p‖ I<br />

gilt, dann s<strong>in</strong>d <strong>die</strong> Nullstellen 103 von p ∗ optimale Interpolationspunkte.<br />

Unser Ziel wird es nun se<strong>in</strong>, für alle n ∈ N 0 so e<strong>in</strong> optimales p ∗ zu f<strong>in</strong>den.<br />

Def<strong>in</strong>ition 8.26 Das n–te Tschebyscheff–Polynom 104 T n , n ∈ N, ist def<strong>in</strong>iert als<br />

T n (x) = cos (n arccos x) .<br />

Und, kaum zu glauben, aber wahr, <strong>die</strong> Tschebyscheffpolynome s<strong>in</strong>d <strong>die</strong> Lösung unseres<br />

Problems.<br />

102 Das wäre ja wohl das, was man als ”<br />

gute Rekonstruktion“ bezeichnen würde.<br />

103 Man sollte aber schon nachweisen, daß <strong>die</strong>se Nullstellen auch alle e<strong>in</strong>fach und rell s<strong>in</strong>d!<br />

104 Es gibt e<strong>in</strong>e Vielzahl von Transkriptionen des Namen ”<br />

Tschebyscheff“, z.B. auch Chebychev, Chebychov.


142 8 POLYNOME<br />

Satz 8.27 Die Polynome 2 1−n T n gehören zu P n , n ≥ 1 105 , und es gilt<br />

∥<br />

∥<br />

∥2 1−n ∥∥[−1,1]<br />

T n = m<strong>in</strong> ‖ p ‖ [−1,1]<br />

. (8.26)<br />

p∈P n<br />

Die Nullstellen von T n+1 106 , n ∈ N 0 , s<strong>in</strong>d alle e<strong>in</strong>fach und rell und damit optimale Interpolationspunkte<br />

für Π n .<br />

Korollar 8.28 Sei Ln ∗ der Interpolationsoperator an den Nullstellen von T n+1 . Dann ist<br />

∥<br />

∥<br />

∥f (n+1) ∥∥[−1,1]<br />

‖f − Lnf‖ ∗ [−1,1]<br />

≤<br />

2 n (n + 1)! . (8.27)<br />

Um e<strong>in</strong>zusehen, daß tatsächlich T n ∈ Π n ist, brauchen wir etwas mehr Information<br />

über <strong>die</strong> Tschebyscheff–Polynome.<br />

Lemma 8.29 Die Tschebyscheff–Polynome T n , n ∈ N, erfüllen <strong>die</strong> Rekursionsformel<br />

T 0 (x) = 1, (8.28)<br />

T 1 (x) = x, (8.29)<br />

T n+1 (x) = 2x T n (x) − T n−1 (x), n ∈ N. (8.30)<br />

Beweis: Die Anfangsbed<strong>in</strong>gungen (8.28) und (8.29) folgen trivialerweise aus der Def<strong>in</strong>ition<br />

(und cos 0 = 1).<br />

Wir setzen x = cos θ, d.h., θ = arccos x, also T n (x) = cos nθ. Durch Addition der<br />

Additionstheoreme<br />

cos(n + 1)θ = cos nθ cos θ + s<strong>in</strong> nθ s<strong>in</strong> θ<br />

cos(n − 1)θ = cos nθ cos θ − s<strong>in</strong> nθ s<strong>in</strong> θ<br />

erhalten wir, daß<br />

also (8.30).<br />

cos(n + 1)θ + cos(n − 1)θ = 2 cos<br />

} {{ } } {{ } } {{ θ}<br />

cos } {{ nθ}<br />

,<br />

=T n+1 (x) =T n−1 (x)<br />

=x =T n (x)<br />

Als nächstes Information über <strong>die</strong> Nullstellen.<br />

□<br />

Proposition 8.30 Die Nullstellen von T n s<strong>in</strong>d<br />

x j = cos 2j − 1 π, j = 1, . . . , n. (8.31)<br />

2n<br />

105 Der Fall n = 0 verlangt den Faktor 1 und nicht 1 2 , siehe (8.28); andererseits hat T 0 auch ke<strong>in</strong>e Nullstelle<br />

und ist daher ohneh<strong>in</strong> zur Bestimmung von Interpolationsknoten ungeeignet.<br />

106 Siehe (8.31).


8.4 Approximationsgüte von Interpolationspolynomen 143<br />

%% TschebNodes.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Tschebyscheffknoten<br />

%% E<strong>in</strong>gabe:<br />

%% n % Knoten<br />

function X = TschebNodes( n )<br />

X = zeros( 1,n+1 );<br />

for j=1:n+1<br />

X( j ) = cos( (2*j-1)/(2*n+2)*pi );<br />

end<br />

%endfunction<br />

Programm 8.8 TschebNodes.m: Knotenvektor der Tschbyscheffpolynome.<br />

Außerdem s<strong>in</strong>d <strong>die</strong> Nullstellen von T ′ n<br />

und es ist 107 , mit x ′ 0 = −1, x′ n = 1,<br />

Also ist <strong>in</strong>sbesondere ‖T n ‖ [−1,1]<br />

= 1.<br />

Beweis: Es ist<br />

T n<br />

(<br />

xj<br />

)<br />

= cos<br />

(<br />

n arccos cos 2j − 1<br />

2n π )<br />

x j ′ = cos j π, j = 1, . . . , n − 1, (8.32)<br />

n<br />

T n<br />

(<br />

x<br />

′<br />

j<br />

)<br />

= (−1) n+j , j = 0, . . . , n. (8.33)<br />

= cos 2j − 1 π = 0, j = 1, . . . , n,<br />

2<br />

und mehr als n Nullstellen kann T n ja nun mal nicht haben, denn T n (x) = 2 n−1 x n +<br />

· · · ̸≡ 0 nach (8.30). Deswegen s<strong>in</strong>d <strong>die</strong> Nullstellen auch alle e<strong>in</strong>fach. Außerdem ist<br />

T ′ n(x) =<br />

n<br />

√<br />

1 − x 2<br />

s<strong>in</strong> (n arccos x)<br />

und da x ′ j ̸= −1, 1 und s<strong>in</strong> jπ = 0, j ∈ N 0, ist auch T ′ n<br />

(<br />

xj<br />

)<br />

= 0, j = 1, . . . , n − 1. Also<br />

s<strong>in</strong>d <strong>die</strong> potentiellen Extrempunkte von T n auf dem Intervall [−1, 1] <strong>die</strong> Punkte<br />

107 Wenn man genau ist: für n ≥ 1.<br />

−1, x ′ 1 , . . . , x′ n−1 , 1.


144 8 POLYNOME<br />

Aus (8.30) erhalten wir sofort, daß T n (−1) = (−1) n und T n (1) = 1 und darüberh<strong>in</strong>aus<br />

ist<br />

T n<br />

(<br />

x<br />

′<br />

j<br />

)<br />

= cos<br />

j<br />

n π = (−1)j ,<br />

woraus (8.32) folgt.<br />

Beweis von Satz 8.27: Daß T n e<strong>in</strong>fache, reelle Nullstellen hat, wurde ja <strong>in</strong> Proposition<br />

8.30 bewiesen. Daß 2 1−n T n ∈ P n folgt aus der Rekursionsformel (8.30). Außerdem<br />

wissen wir, daß ∥ ∥ 2 1−n T n<br />

∥ ∥[−1,1] = 2 1−n . Nehmen wir also an, es gäbe e<strong>in</strong> p ∈ P n ,<br />

so daß<br />

‖ p ‖ [−1,1]<br />

< 2 1−n<br />

und setzen wir q = 2 1−n T n − p. Da 2 1−n T n , p ∈ P n , ist q ∈ Π n−1 . An den Stellen x ′ j ,<br />

j = 0, . . . , n 108 , ist dann<br />

q ( x ′ j)<br />

= (−1) j 2 1−n − p ( x j<br />

)<br />

=: (−1) j µ j , j = 0, . . . , n,<br />

wobei µ j > 0, j = 0, . . . , n. Damit muß aber q zwischen x<br />

j ′ und x′ j+1<br />

, j = 0, . . . , n − 1,<br />

m<strong>in</strong>destens e<strong>in</strong>e Nullstelle haben, also hat q ∈ Π n−1 m<strong>in</strong>destens n Nullstellen und ist<br />

damit das Nullpolynom. Dann führt aber 2 1−n T n = p und somit<br />

zum Widerspruch.<br />

2 1−n > ‖ p ‖ [−1,1]<br />

=<br />

∥<br />

∥2 1−n T n<br />

∥ ∥∥[−1,1]<br />

= 2 1−n<br />

Tatsächlich liefern <strong>die</strong> Tschebyscheffknoten entscheidend bessere Interpolanten als<br />

beispielsweise gleichverteilte Knoten.<br />

Beispiel 8.31 Wir betrachten <strong>die</strong> geschlossene polynomiale Kurve, <strong>die</strong> durch <strong>die</strong> Punkte (Matlab–<br />

Vektor f)<br />

[ 0<br />

1 1 3<br />

f = 4 2 4<br />

1 1 1 1 1<br />

4<br />

3 ]<br />

1 1<br />

2 4<br />

0 0 0 0 0<br />

0 0 0 0 0 1 1 3<br />

4 2 4<br />

1 1 1 1 1 3 1 1<br />

4 2 4<br />

0<br />

auf dem Rand des E<strong>in</strong>heitsquadrats geht (siehe Abb. 8.4). Als Parameterbereich wählen wir<br />

[−1, 1] und <strong>in</strong>terpolieren e<strong>in</strong>mal an gleichverteilen Punkten mit<br />

auxPlotNewton( f, (-1:1/8:1), (-1:.01:1) )<br />

und e<strong>in</strong>mal an den Tschebyscheffknoten:<br />

auxPlotNewton( f, TschebNodes( 16 ), (-1:.01:1) )<br />

Die Ergebnisse s<strong>in</strong>d, wie Abb. 8.5 zeigt, sehr unterschiedlich.<br />

108 Wir nehmen also <strong>die</strong> Grenzen ±1 mit dazu.<br />

□<br />


8.5 Die schlechte Nachricht 145<br />

Abbildung 8.4: Interpolationsdaten für <strong>die</strong> Kurve. Frei ist noch <strong>die</strong> Wahl der<br />

zugehörigen Parameterwerte.<br />

8.5 Die schlechte Nachricht<br />

Da man also so toll, e<strong>in</strong>fach und halbwegs stabil mit Polynomen modellieren (Bézierkurven)<br />

und rekonstruieren (Interpolation) kann, werden es ja wohl alle CAD–Systeme und numerische<br />

Anwendungen verwenden, oder? Die Antwort ist ja und ne<strong>in</strong>: Bézierkurven<br />

s<strong>in</strong>d <strong>in</strong> den meisten Zeichenprogrammen tatsächlich als e<strong>in</strong> Mittel zum Freihandzeichnen<br />

enthalten und polynomiale Interpolation versteckt sich tatsächlich h<strong>in</strong>ter e<strong>in</strong>igen<br />

numerischen Verfahren. Aber:<br />

• Komplexität und Instabilität wachsen mit dem Grad des Polynoms an. Beispielsweise<br />

dauert <strong>die</strong> Auswertung e<strong>in</strong>er Bézierkurve mit 100 Kontrollpunkten doch<br />

schon e<strong>in</strong> bißchen.<br />

• Polynome s<strong>in</strong>d global. Die Änderung e<strong>in</strong>es e<strong>in</strong>zigen Kontrollpunkts ändert <strong>die</strong><br />

Kurve überall.<br />

• Interpolationspolynome haben e<strong>in</strong>en krankhaften Drang, zu oszillieren, wie Abb. 8.6<br />

zeigt. Allerd<strong>in</strong>gs sieht man dort auch, daß es so richtig schlimm erst außerhalb<br />

der konvexen Hülle der Interpolationspunkte wird, aber auch <strong>in</strong> deren Inenren<br />

wird <strong>die</strong> Oszillation für wachsenden Grad immer heftiger<br />

Noch schlimmer ist aber <strong>die</strong> Empf<strong>in</strong>dlichkeit polynomialer Interpolation gegen<br />

Störungen. Dazu e<strong>in</strong> Beispiel.<br />

Beispiel 8.32 Wir betrachten <strong>die</strong> Parabel 109 p(x) = x(1 − x) und <strong>in</strong>terpolieren an den 21<br />

gleichverteilten Punkten 0,<br />

20 1 , . . . , 1. Das Interpolationspolynom ist auch kaum von der Parabel<br />

selbst zu unterscheiden (Abb. 8.7). Stören wir aber jeden Datenwert zufällig um < 0.1%,<br />

109 E<strong>in</strong> Schuft ist, wer an Geschoßbahnen dabei denkt.


146 8 POLYNOME<br />

2<br />

Aequidistante Knoten<br />

l<strong>in</strong>e 1<br />

1.2<br />

Tschebyscheffknoten<br />

l<strong>in</strong>e 1<br />

l<strong>in</strong>e 2<br />

0<br />

1<br />

-2<br />

0.8<br />

-4<br />

0.6<br />

-6<br />

0.4<br />

-8<br />

-10<br />

0.2<br />

-12<br />

0<br />

-14<br />

-14 -12 -10 -8 -6 -4 -2 0 2<br />

-0.2<br />

-0.2 0 0.2 0.4 0.6 0.8 1 1.2<br />

Abbildung 8.5: Interpolation der ”<br />

Quadratkurve“, e<strong>in</strong>mal mit gleichverteilten<br />

Parameterwerten für <strong>die</strong> Interpolationspunkte, e<strong>in</strong>mal unter Verwendung der<br />

Tschebyscheffknoten.<br />

dann erhalten wir bereits e<strong>in</strong>e ziemlich unögliche ”<br />

Flugbahn“ (Abb. 8.7), stören wir gar den<br />

Scheitelpunkt um 1%, so wird der Interpolant endgültig wüst, siehe Abb. 8.8. Auf der anderen<br />

Seite zeigt Abb. 8.9, daß sogar wesentlich heftigere Störungen ∼ 1% weggesteckt werden, wenn<br />

<strong>die</strong> Tschebyscheffknoten verwendet werden.<br />

Das Problem ist nur leider, daß man sich <strong>in</strong> der Praxis <strong>die</strong> Interpolationspunkte<br />

nicht aussuchen kann, sondern daß <strong>die</strong>se beispielsweise von den physikalischen<br />

Eigenschaften des Meßprozesses vorgegeben werden. Außerdem ist das H<strong>in</strong>zufügen<br />

von Punkten nicht mehr so e<strong>in</strong>fach: <strong>die</strong> Polynome T n und T n+1 haben ke<strong>in</strong>e geme<strong>in</strong>samen<br />

Nullstellen 110 !<br />

110 Wohl aber T n und T 2n – was auch <strong>in</strong> manchen Verfahren ausgenutzt wird.


8.5 Die schlechte Nachricht 147<br />

1<br />

l<strong>in</strong>e 1<br />

l<strong>in</strong>e 2<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-2<br />

-4 -3 -2 -1 0 1 2 3 4<br />

Abbildung 8.6: Interpolationspolynom, das den Wert 0 an ±1, ±2 und 1 an der<br />

Stelle 0 <strong>in</strong>terpoliert. Nicht ganz das, was man gerne hätte.<br />

0.25<br />

Parabel an 21 Punkten<br />

l<strong>in</strong>e 1<br />

0.3<br />

Parabel an 21 Punkten, zuf llige St rung, < 0.1%<br />

l<strong>in</strong>e 1<br />

0.25<br />

0.2<br />

0.2<br />

0.15<br />

0.15<br />

0.1<br />

0.1<br />

0.05<br />

0.05<br />

0<br />

0<br />

0 0.2 0.4 0.6 0.8 1<br />

-0.05<br />

0 0.2 0.4 0.6 0.8 1<br />

Abbildung 8.7: Interpolanten vom Grad 20 für <strong>die</strong> Orig<strong>in</strong>aldaten und leicht (<<br />

0.1%) gestörte Werte.<br />

4.5<br />

Parabel an 21 Punkten, -1% am Scheitel<br />

l<strong>in</strong>e 1<br />

0.5<br />

Parabel an 21 Punkten, +1% am Scheitel<br />

l<strong>in</strong>e 1<br />

4<br />

0<br />

3.5<br />

-0.5<br />

3<br />

-1<br />

2.5<br />

-1.5<br />

2<br />

-2<br />

1.5<br />

-2.5<br />

1<br />

-3<br />

0.5<br />

-3.5<br />

0<br />

-4<br />

-0.5<br />

0 0.2 0.4 0.6 0.8 1<br />

-4.5<br />

0 0.2 0.4 0.6 0.8 1<br />

Abbildung 8.8: Interpolanten vom Grad 20 für Störung des Scheitelpunkts um<br />

±1%.


148 8 POLYNOME<br />

0.3<br />

l<strong>in</strong>e 1<br />

l<strong>in</strong>e 2<br />

1<br />

l<strong>in</strong>e 1<br />

l<strong>in</strong>e 2<br />

0.25<br />

0<br />

0.2<br />

-1<br />

0.15<br />

-2<br />

0.1<br />

-3<br />

0.05<br />

-4<br />

0<br />

-5<br />

-0.05<br />

0 0.2 0.4 0.6 0.8 1<br />

-6<br />

-1.5 -1 -0.5 0 0.5 1 1.5<br />

Abbildung 8.9: Zufällige Sörungen an allen Interpolationspunkten um < 1% tun<br />

bei Verwendung der Tschebyscheffknoten bei weitem nicht so weh. Auch <strong>die</strong> Oszillation<br />

ist nicht so groß, aber dafür wird das Gefälle außerhalb von [−1, 1] umso<br />

steiler.


149<br />

Im Wort Gelehrter steckt nur der Begriff,<br />

daß man ihn vieles gelehrt, aber nicht,<br />

daß er auch etwas gelernt hat.<br />

Lichtenberg<br />

Spl<strong>in</strong>es 9<br />

Um <strong>die</strong> Probleme polynomialer Kurven, <strong>in</strong>sbesondere Interpolanten, also Globalität,<br />

Oszillation, hohe Komplexität, zu umgehen, brauchen wir e<strong>in</strong>e Kurvenkonstruktion,<br />

bei der der Wert der Kurve nur lokal von e<strong>in</strong>em Teil der Koeffizienten abhängt. Um <strong>die</strong><br />

Lokalität beschreiben und (flexibel) kontrollieren zu können brauchen wir e<strong>in</strong> bißchen<br />

Term<strong>in</strong>ologie.<br />

Def<strong>in</strong>ition 9.1 Seien n ≥ m ≥ 0 111 .<br />

1. E<strong>in</strong>e Punktmenge T = T m,n = {t 0 , . . . , t n+m+1 } ⊂ R heißt Knotenfolge der Ordnung<br />

m, falls<br />

t 0 ≤ t 1 ≤ · · · ≤ t n ≤ · · · ≤ t n+m+1 (9.1)<br />

und<br />

t j < t j+m+1 , j = 0, . . . , n. (9.2)<br />

2. Die Knoten t 0 , . . . , t m bzw. t n+1 , . . . , t n+m+1 heißen l<strong>in</strong>ke bzw. rechte Randknoten,<br />

<strong>die</strong> Knoten t m+1 , . . . , t n heißen <strong>in</strong>nere Knoten.<br />

3. Dasjenige µ > 0 112 , für das<br />

t j−1 < t j = · · · = t j+µ−1 < t j+µ<br />

gilt, heißt Vielfachheit des Knotens t j = · · · = t j+µ−1 .<br />

4. Das Intervall I k j<br />

ist def<strong>in</strong>iert als<br />

I k j = [ t j , t j+k<br />

]<br />

, j = 0, . . . , n, k = 1, . . . , m.<br />

111 Das ist formal ausreichend. Die ”<br />

Vorstellung“ ist allerd<strong>in</strong>gs, daß n ≫ m und m sehr moderat (etwa<br />

m = 3) ist.<br />

112 Wie ”<br />

µultiplicity“


150 9 SPLINES<br />

9.1 Der Algorithmus von de Boor<br />

Als nächstes def<strong>in</strong>ieren wir uns auf algorithmische Weise <strong>die</strong> Kurven, <strong>die</strong> uns <strong>in</strong>teressieren<br />

werden.<br />

Algorithmus 9.2 (de Boor) Gegeben: Knotenfolge T = T m,n , Kontrollpunkte d 0 , . . . , d n ∈<br />

R d und x ∈ [t m , . . . , t n+1 ].<br />

1. Bestimme r ∈ {m, . . . , n} so daß x ∈ [t r , t r+1 ). 113<br />

2. Setze<br />

d 0 k (x) = d k, k = r − m, . . . , r.<br />

3. Für j = 1, . . . , m berechne<br />

(<br />

d j k (x) = u 0<br />

x|I m−j+1<br />

k<br />

)<br />

d j−1<br />

k−1 (x) + u 1<br />

4. Ergebnis: N m,T d(x) := d m r (x).<br />

(<br />

x|I m−j+1<br />

k<br />

)<br />

d j−1<br />

k<br />

(x), k = r − m + j, . . . , r.<br />

(9.3)<br />

Abbildung 9.1: Der Algorithmus von de Boor für m = 3 und e<strong>in</strong>en e<strong>in</strong>fachen sowie<br />

e<strong>in</strong>en doppelten Knoten.<br />

Abbildung 9.1 zeigt, was beim Algorithmus von de Boor passiert: im j–ten Schritt werden<br />

alle Intervalle abgearbeitet, <strong>die</strong> m − j + 2 Knoten und den Punkt x enthalten. Der<br />

Index r aus Schritt 1 im obigen Algorithmus ist e<strong>in</strong>deutig, solange x nicht gerade mit<br />

e<strong>in</strong>em Knoten übere<strong>in</strong>stimmt.<br />

113 E<strong>in</strong> solches r existiert nicht, wenn t n+1 = · = t n+m+1 e<strong>in</strong> (m + 1)–facher Randknoten und x = t n+1<br />

ist. Wir können uns aber dadurch behelfen, daß wir uns <strong>in</strong> <strong>die</strong>sem Fall irgende<strong>in</strong> t n+m+2 > t n+m+1<br />

dazuerf<strong>in</strong>den und mit r = n + m weitermachen.


9.1 Der Algorithmus von de Boor 151<br />

%% deBoor.m (Numerik 1)<br />

%% --------------------------------------------------------<br />

%% Algorithmus von de Boor<br />

%% E<strong>in</strong>gabe:<br />

%% d Kontrollpunkte (vektorwertig!)<br />

%% T Knotenvektor<br />

%% x Stelle<br />

function y = deBoor( d,T,x )<br />

n = length( d );<br />

m = length( T ) - n - 1;<br />

% F<strong>in</strong>de Knoten<br />

r = m+1;<br />

while (r < n ) & ( x >= T( r+1 ) )<br />

r = r + 1;<br />

end<br />

% Behebe Problem mit rechtem Randpunkt bei (m+1)-fachen Knoten<br />

if ( r == n )<br />

y = d( :,n );<br />

end<br />

% Schleife (mit Ueberschreiben)<br />

for j = 1:m<br />

for k = r:-1:r-m+j<br />

u = ( T( k+m-j+1 ) - x ) / ( T( k+m-j+1) - T( k ) );<br />

d( :,k ) = u * d( :,k-1) + (1-u) * d( :,k );<br />

end<br />

end<br />

y = d( :,r );<br />

%endfunction<br />

Programm 9.1 deBoor.m: Der Algorithmus von de Boor mit Überschreiben des Koeffizientenvektors.


152 9 SPLINES<br />

Bemerkung 9.3 Der Index r, der durch <strong>die</strong> Forderung x ∈ [t r , t r+1 ) <strong>in</strong> Algorithmus 9.2 festgelegt<br />

ist, bee<strong>in</strong>flußt nicht <strong>die</strong> Berechnungsformel, sondern lediglich, welche Kontrollpunkte<br />

zur Berechnung zu verwenden s<strong>in</strong>d. Man könnte auch den folgenden, modifizierten Algorithmus<br />

verwenden:<br />

1. Setze<br />

d 0 k (x) = d k, k = 0, . . . , n.<br />

2. Für j = 1, . . . , m berechne<br />

(<br />

d j k (x) = u 0<br />

x|I m−j+1<br />

k<br />

)<br />

d j−1<br />

k−1 (x) + u 1<br />

(<br />

x|I m−j+1<br />

k<br />

)<br />

d j−1<br />

k<br />

(x), k = j, . . . , n. (9.4)<br />

3. Wähle <strong>die</strong> r–te Komponente aus dem Ergebnisvektor (d m k (x) : k = m, . . . , n).<br />

Aber: der Rechenaufwand <strong>die</strong>ses Verfahrens ist wesentlich höher, nämlich O(nm) Operationen<br />

im Gegensatz zu O ( m 2) im Algorithmus von de Boor. Und normalerweise ist n ≫ m!<br />

Def<strong>in</strong>ition 9.4 Die Kurve N m,T d : [t m , t n+1 ] heißt Spl<strong>in</strong>ekurve vom Grad m 114 .<br />

Als nächstes e<strong>in</strong> paar e<strong>in</strong>fache Eigenschaften der Spl<strong>in</strong>ekurve, <strong>die</strong> sofort aus dem Algorithmus<br />

folgen:<br />

1. Die Spl<strong>in</strong>ekurve ist nur auf dem Intervall [t m , t n+1 ], das von den beiden <strong>in</strong>nersten<br />

Randknoten gebildet wird, def<strong>in</strong>iert. Die anderen Randknoten bee<strong>in</strong>flussen aber<br />

natürlich den Wert der Spl<strong>in</strong>ekurve, zum<strong>in</strong>dest <strong>in</strong> der Nähe des Randes 115 .<br />

2. Es ist selbstverständlich nicht verboten, <strong>die</strong> Randknoten alle identisch, also (m +<br />

1)–fach, zu wählen. Im Gegenteil, <strong>die</strong>ser Fall hat e<strong>in</strong>e nette Eigenschaft: für x =<br />

t m (also r = m) ist dann für j = 1, . . . , m und k = r − m + j, . . . , r = j, . . . , m 116<br />

das Intervall<br />

I m−j+1<br />

k<br />

= [ t k , t k+m−j+1<br />

]<br />

=<br />

[<br />

tm , t k+m−j+1<br />

]<br />

zu betrachten 117 und somit ist<br />

( )<br />

u 0 x|I m−j+1 ( [ ])<br />

= u 0 tm | tm , t k+m−j+1 = 1, k = r − m + j, . . . , r, j = 1, . . . , m,<br />

k<br />

also auch<br />

d j r−m+j (x) = dj j (x) = d 0,<br />

<strong>in</strong>sbesondere ist also d 0 = d m m (t m ) = N m,T (t m ). Da dasselbe für den rechten<br />

Rand gemacht werden kann, besitzen also <strong>die</strong> Spl<strong>in</strong>ekurven <strong>die</strong> Eigenschaft der<br />

Endpunkt<strong>in</strong>terpolation, wenn wir (m + 1)–fache Randknoten verwenden.<br />

114 Oder der Ordnung m + 1! Es gibt hier (m<strong>in</strong>destens) zwei konkurrierende Term<strong>in</strong>ologien. Daher ist<br />

bei der Verwendung von Spl<strong>in</strong>eliteratur oder von Spl<strong>in</strong>e–Toolboxen (z.B. <strong>in</strong> Matlab) erhöhte Vorsicht<br />

angesagt.<br />

115 Genauer: auf den beiden Intervallen [t m , t m+1 ] und [t n , t n+1 ]<br />

116 Wegen r = m<br />

117 Schließlich ist t j = · · · = t m , j = 1, . . . , m.


9.1 Der Algorithmus von de Boor 153<br />

3. Dies gilt natürlich nicht nur für Randknoten: An jedem m–fachen <strong>in</strong>neren Knoten<br />

t j = · · · = t j+m−1 wird der entsprechende Koeffizient d j−m <strong>in</strong>terpoliert, d.h.<br />

N m,T d ( )<br />

t j = dj−m . An e<strong>in</strong>em m + 1–fachen Knoten werden also sogar d j−m und<br />

d j−m+1 <strong>in</strong>terpoliert, <strong>die</strong> Kurve wird dort also normalerweise nicht mehr stetig<br />

se<strong>in</strong>.<br />

Abbildung 9.2: Der de Boor–Algorithmus an e<strong>in</strong>em m–fachen Knoten t j (nur ”<br />

ause<strong>in</strong>andergezogen“<br />

gezeichet), für m = 3. Die Zwischenpunkte <strong>in</strong> jedem Schritt s<strong>in</strong>d<br />

<strong>die</strong> Kontrollpunkte und am Schluß bleibt nur d j−m übrig.<br />

4. Spezialisieren wir noch e<strong>in</strong> bißchen: Ist obendre<strong>in</strong> noch m = n, haben wir also<br />

t 0 = · · · = t n < t n+1 = · · · = t 2n+1 ,<br />

dann ist der Algorithmus von de Boor nichts anderes als der Algorithmus von de<br />

Casteljau und es ist<br />

N n,T d = B n d.<br />

5. Für alle x ∈ (t r , t r+1 ) 118 werden <strong>die</strong>selben Bezugs<strong>in</strong>tervalle I m−j+1<br />

k<br />

verwendet und<br />

damit ist N m,T d| (tr ,t r+1 )<br />

e<strong>in</strong> Produkt von m aff<strong>in</strong>en Funktionen, also e<strong>in</strong> Polynom<br />

vom Grad ≤ m. Anders gesagt:<br />

118 Achtung: Ist t r = t r+1 , dann ist (t r , t r+1 ) = ∅!


154 9 SPLINES<br />

Spl<strong>in</strong>ekurven s<strong>in</strong>d stückweise Polynome!<br />

6. Da<br />

können wir d als<br />

d =<br />

N m,T<br />

(<br />

αd + βd<br />

′ ) = α N m,T d + β N m,T d ′<br />

n∑<br />

j=0<br />

d j δ j , δ j = (0, . . . , 0, 1, 0, . . . , 0).<br />

↑<br />

j<br />

,<br />

und damit <strong>die</strong> Spl<strong>in</strong>ekurve als L<strong>in</strong>earkomb<strong>in</strong>ation<br />

N m,T d(x) =<br />

n∑<br />

d j N m j (x|T) . (9.5)<br />

j=0<br />

schreiben.<br />

7. Wie erhalten wir also <strong>die</strong> sogenannten ”<br />

B–Spl<strong>in</strong>es“? Ganz e<strong>in</strong>fach: Wir lassen den<br />

Algorithmus von de Boor auf <strong>die</strong> skalaren Kontrollpunkte δ j los.<br />

Def<strong>in</strong>ition 9.5 Die Funktion N m j<br />

der Knotenfolge T.<br />

(·|T), aus (9.5) heißt j–ter B–Spl<strong>in</strong>e vom Grad m bezüglich<br />

9.2 Spl<strong>in</strong>es und Interpolation<br />

Im Rahmen <strong>die</strong>ser Vorlesung wollen wir uns im wesentlichen mit der Frage befassen,<br />

ob und wann es möglich ist, mit Spl<strong>in</strong>es zu <strong>in</strong>terpolieren. Das wesentliche Resultat,<br />

mit dessen Beweis wir uns den Rest <strong>die</strong>ses Kapitels beschäftigen werden, ist wie folgt.<br />

Satz 9.6 Es sei T = T m,n e<strong>in</strong>e Knotenfolge und es seien x 0 < x 1 < · · · < x n ∈ R.<br />

1. ( Schoenberg–Whitney ) Das Interpolationsproblem<br />

N m,T d ( x j<br />

)<br />

= fj , j = 0, . . . , n, (9.6)<br />

ist genau dann für alle f ∈ R d×n+1 e<strong>in</strong>deutig lösbar, wenn<br />

t j < x j < t j+m+1 , j = 0, . . . , n. (9.7)<br />

2. Ist (9.7) erfüllt, dann ist <strong>die</strong> Kollokationsmatrix<br />

[<br />

N<br />

m<br />

k<br />

(<br />

xj | T ) : j, k = 0, . . . , n ] (9.8)<br />

(m, m)–ban<strong>die</strong>rt und total nichtnegativ.


9.2 Spl<strong>in</strong>es und Interpolation 155<br />

Bemerkung 9.7<br />

1. Die Bed<strong>in</strong>gung (9.7), <strong>die</strong> <strong>die</strong> Knoten und <strong>die</strong> Interpolationspunkte zue<strong>in</strong>ander <strong>in</strong> Beziehung<br />

setzt, kann man auch anders schreiben, wenn man j durch j − m − 1 ersetzt und das<br />

Ergebnis, t j−m−1 < x j−m−1 < t j , mit (9.7) zu<br />

x j−m−1 < t j < x j , j = m + 1, . . . , n, (9.9)<br />

zusammenfasst, was gerade Bed<strong>in</strong>gungen an <strong>die</strong> Lage der <strong>in</strong>neren Knoten liefert, siehe<br />

Def<strong>in</strong>ition 9.1.<br />

2. Zusammen mit (9.7) kann x j ∈ (t k , t k+m+1 ) aber nur dann gelten, wenn<br />

j ≤ k + m und j + m ≤ k ⇒ k − m ≤ j ≤ k + m<br />

ist. Da, wie wir <strong>in</strong> Lemma 9.14 herausf<strong>in</strong>den werden, der B–Spl<strong>in</strong>e N m k<br />

(· | T) aber nur<br />

im offenen Intervall (t k , t k+m+1 ) von Null verschieden 119 ist, liefert <strong>die</strong>se Beobachtung<br />

auch bereits <strong>die</strong> (m, m)–Ban<strong>die</strong>rtheit der Kollokationsmatrix (9.8).<br />

Bevor wir uns daran machen, uns <strong>die</strong> Spl<strong>in</strong>es genauer anzusehen, erst e<strong>in</strong>mal e<strong>in</strong> e<strong>in</strong>faches<br />

Beispiel, das Satz 9.6 e<strong>in</strong> bißchen illustriert.<br />

Beispiel 9.8 Wir setzen m = 1 und betrachten e<strong>in</strong>e Knotenfolge T = T n,1 = t 0 < · · · <<br />

t n+2 120 .<br />

1. Im Algorithmus von de Boor müssen wir e<strong>in</strong>en Schritt berechnen, bei dem <strong>die</strong> baryzentrischen<br />

Koord<strong>in</strong>aten von x bezüglich des Intervalls [t k , t k+1 ] verwendet werden, um<br />

d k−1 und d k zu komb<strong>in</strong>ieren, k = 1, . . . , n. Damit ist aber N 1,T d nichts anderes als <strong>die</strong><br />

stückweise l<strong>in</strong>eare Funktion mit ”<br />

Bruchstellen“ an t 1 , . . . , t n , <strong>die</strong> <strong>die</strong> Punkte d 0 , . . . , d n<br />

verb<strong>in</strong>det.<br />

2. Damit können wir N 1,T d als<br />

N 1,T d =<br />

n∑<br />

d j N 1 j (·|T)<br />

j=0<br />

schreiben, wobei<br />

0 x < t j ,<br />

⎧⎪ x−t ⎨ j<br />

N 1 j (x|T) = t j+1 −t j<br />

x ∈ [ ]<br />

t j , t j+1 ,<br />

t j+2 −x<br />

⎪ ⎩<br />

t j+2 −t j+1<br />

x ∈ [ ]<br />

t j+1 , t j+2 ,<br />

0 x > t j+2 .<br />

119 Und sogar strikt positiv!<br />

120 Es s<strong>in</strong>d jetzt also alle Knoten, auch <strong>die</strong> Randknoten, e<strong>in</strong>fach – aber nur um der E<strong>in</strong>fachheit willen.


156 9 SPLINES<br />

d0<br />

d4<br />

d3<br />

d1<br />

d2<br />

t0 t1 t2 t3 t4 t5 t6<br />

Abbildung 9.3: Die l<strong>in</strong>eare Spl<strong>in</strong>ekurve (Ordnung m = 1).<br />

3. Was bedeutet nun <strong>die</strong> Schoenberg–Whitney–Bed<strong>in</strong>gung (9.7)? Zuerst e<strong>in</strong>mal muß der<br />

Interpolationspunkt x j im offenen Intervall [ t j , t j+2<br />

]<br />

, also im Träger von N<br />

1<br />

j<br />

, liegen. Das<br />

garantiert also schon e<strong>in</strong>mal, daß aller Basisfunktionen beim Interpolieren mitmachen<br />

dürfen – übrigens, wäre das nicht der Fall, dann hätte <strong>die</strong> Kollookationsmatrix e<strong>in</strong>e Nullzeile,<br />

wäre nicht <strong>in</strong>vertierbar und damit das Interpolationsproblem unlösbar.<br />

Umgekehrt garantiert (9.7) aber auch, daß <strong>in</strong> jedem Knoten<strong>in</strong>tervall höchstens zwei<br />

Interpolationspunkte liegen – sehr vernünftig, denn durch zwei Punkte läßt sich gerade<br />

noch e<strong>in</strong>e Gerade legen. Drei oder mehr Interpolationspunkte <strong>in</strong> e<strong>in</strong>em Knoten<strong>in</strong>tervall<br />

ergäben im allgeme<strong>in</strong>en wieder e<strong>in</strong> unlösbares Interpolationsproblem.<br />

Liegen außerdem zwei Punkte im Inneren e<strong>in</strong>es Knoten<strong>in</strong>tervalls, dann darf <strong>in</strong> den benachbarten<br />

Intervallen nur jeweils e<strong>in</strong> Knoten liegen; lägen nämlich <strong>in</strong> zwei benachbarten<br />

Intervallen zwei Interpolationspunkte, dann ist es e<strong>in</strong>fach, <strong>die</strong> Interpolationsbed<strong>in</strong>gungen<br />

an <strong>die</strong>sen Punktpaaren so festzulegen, daß sich <strong>die</strong> beiden Streckenzüge nicht <strong>in</strong> dem<br />

dazwischenliegenden Knoten schneiden – und damit ist dann auch der Spl<strong>in</strong>e futsch.<br />

4. Insbesondere liefert (9.7) aber auch, daß N 1 j<br />

höchstens an x j−1 , x j und x j+1 e<strong>in</strong>en von<br />

Null verschiedenen Wert hat (und wenn verschieden, dann > 0). Also hat <strong>die</strong> Kollokationsmatrix<br />

<strong>die</strong> Form ⎡<br />

⎤<br />

∗<br />

⎢<br />

⎣<br />

∗<br />

∗ ∗ ∗<br />

. .. . .. . ..<br />

∗ ∗ ∗<br />

∗ ∗<br />

ist also (1, 1)–ban<strong>die</strong>rt oder tridiagonal. Die totale Positivität ist allerd<strong>in</strong>gs nicht so<br />

offensichtlich.<br />

,<br />

⎥<br />


9.2 Spl<strong>in</strong>es und Interpolation 157<br />

N0 N1 N2 N3 N4<br />

1<br />

t0 t1 t2 t3 t4 t5 t6<br />

Abbildung 9.4: Die zugehörigen vier B–Spl<strong>in</strong>es zur Spl<strong>in</strong>ekurve aus Abb 9.3.<br />

5. Es gibt noch e<strong>in</strong>en besonders e<strong>in</strong>fachen Fall: x j = t j+1 . Dann ist <strong>die</strong> Kollokationsmatrix<br />

sogar <strong>die</strong> (0, 0)–ban<strong>die</strong>rte E<strong>in</strong>heitsmatrix und d j = f j , aber so e<strong>in</strong>fach ist’s halt nicht<br />

immer.<br />

Als Folgerung aus dem Satz von Schoenberg–Whitney können wir e<strong>in</strong>en besonderen<br />

Spl<strong>in</strong>e<strong>in</strong>terpolanten herleiten.<br />

Satz 9.9 Sei m = 2r + 1 ∈ N und T = T m,n e<strong>in</strong>e Knotenfolge mit e<strong>in</strong>fachen Knoten. Dann<br />

gibt es zu vorgegebenen Werten f j , j = 0, . . . , n − m + 1, e<strong>in</strong>en Spl<strong>in</strong>e N m,T d, so daß 121<br />

N m,T d ( t m+j<br />

)<br />

= fj , j = 0, . . . , n − m + 1, (9.10)<br />

N (k)<br />

m,T d (t l) = 0, k = r + 1, . . . , 2r, l = m, n + 1. (9.11)<br />

Ist n ≥ m + r, dann ist <strong>die</strong>ser <strong>in</strong>terpolierende Spl<strong>in</strong>e e<strong>in</strong>deutig.<br />

Def<strong>in</strong>ition 9.10 Der 122 Spl<strong>in</strong>e, der <strong>die</strong> Bed<strong>in</strong>gungen (9.10) und (9.11) erfüllt, heißt natürlicher<br />

Spl<strong>in</strong>e<strong>in</strong>terpolant an den Knoten t m , . . . , t n+1 .<br />

Beweis: Nach dem Satz von Schoenberg–Whitney, Satz 9.6, ist bei e<strong>in</strong>fachen Knoten<br />

das Spl<strong>in</strong>e<strong>in</strong>terpolationsproblem für<br />

x j = t j+r+1 ∈ ( t j , t j+2r+1<br />

)<br />

, j = 0, . . . , n,<br />

e<strong>in</strong>deutig lösbar. Dabei verwenden wir, zusätzlich zu den n + 2 − m = n + 1 − 2r Bed<strong>in</strong>gungen<br />

aus (9.10) noch Interpolationsbed<strong>in</strong>gungen an den ”<br />

letzten“ r l<strong>in</strong>ken und<br />

121 Der Spl<strong>in</strong>e <strong>in</strong>terpoliert als an den <strong>in</strong>neren Knoten und den <strong>in</strong>nersten Randknoten.<br />

122 Für n ≥ m + r ist es ”<br />

der“, sonst nur ”<br />

e<strong>in</strong>“ . . ..


158 9 SPLINES<br />

den ersten“ r rechten Randknoten; <strong>in</strong>sgesamt s<strong>in</strong>d ja auf jeder Seite m + 1 = 2r + 2 > r<br />

”<br />

Randknoten. Seien nun s −r , . . . , s r <strong>die</strong> Lösungen des Interpolationsproblems, das man<br />

erhält, wenn man zusätzlich zu (9.10) noch<br />

⎧<br />

⎨ 1 j < 0 und k = r − j,<br />

s j (x k ) = 1 j > 0 und k = n + j − r, k = 0, . . . , r − 1, n + 1, . . . , n + r,<br />

⎩<br />

0 sonst,<br />

fordert. Alle <strong>die</strong>se Spl<strong>in</strong>es <strong>in</strong>terpolieren an den Punkten t m , . . . , t n+1 , aber haben e<strong>in</strong><br />

unterschiedliches Verhalten an den 2r zusätzlich e<strong>in</strong>geführten Punkten t r+1 , . . . , t m−1<br />

bzw. t n+2 , . . . , t n+r+1 : s 0 verschw<strong>in</strong>det dort, während s −1 , . . . , s −r jeweils an e<strong>in</strong>em der<br />

l<strong>in</strong>ken ”<br />

Zusatzknoten“, s 1 , . . . , s r an e<strong>in</strong>em der rechten ”<br />

Zusatzknoten“ den Wert 1 annehmen,<br />

siehe Abb. 9.5.<br />

Diese m = 2r + 1 Spl<strong>in</strong>es s<strong>in</strong>d ̸= 0 und l<strong>in</strong>ear unabhäng<strong>in</strong>g. Betrachten wir nun das<br />

l<strong>in</strong>eare Gleichungssystem für a −r , . . . , a r , das gegeben ist durch<br />

r∑<br />

j=−r<br />

a j s (k)<br />

j<br />

(t l ) = 0, k = r + 1, . . . , 2r, l = m, n + 1,<br />

dann s<strong>in</strong>d <strong>die</strong>s 2r Gleichungen <strong>in</strong> den 2r + 1 Unbekannten a −r , . . . , a r , und es gibt<br />

immer (m<strong>in</strong>destens) e<strong>in</strong>e nichttriviale Lösung a−r, ∗ . . . , ar ∗ , <strong>die</strong> entweder a−r ∗ + · · · +<br />

ar ∗ = 0 erfüllt, oder <strong>die</strong> man so normieren kann, daß a−r ∗ + · · · + ar ∗ = 1. Auf alle Fälle<br />

setzen wir<br />

r∑<br />

s = aj ∗ s j<br />

und da für j = 0, . . . , n − m + 1<br />

s ( t m+j<br />

)<br />

=<br />

k=−r<br />

j=−r<br />

r∑<br />

ak ∗ s ( )<br />

r∑<br />

k tj+m = f j ak ∗ } {{ }<br />

,<br />

k=−r<br />

=f j<br />

ist s entweder e<strong>in</strong>e Lösung von (9.10) oder e<strong>in</strong> Lösung des homogenen Problems 123 zu<br />

(9.10), je nachdem, ob ∑ aj ∗ den Wert 1 oder 0 hat, aber erfüllt immer auch zusätzlich<br />

(9.11). Wir haben also entweder unseren gewünschten Spl<strong>in</strong>e gefunden, und <strong>die</strong> E<strong>in</strong>deutigkeit<br />

folgt aus dem nächsten Resultat, das auch <strong>die</strong> Namensgebung rechtfertigt,<br />

oder aber e<strong>in</strong>e nichttriviale Lösung des homogenen Problems. Nach Satz 9.11 wäre<br />

dann aber s (r+1) = 0, also s e<strong>in</strong> Polynom vom Grad r – e<strong>in</strong> Trivialfall, der nur e<strong>in</strong>treten<br />

kann, wenn wir zu wenige <strong>in</strong>nere Knoten haben, also wieder, wenn n < m + r ist. In<br />

<strong>die</strong>sem Fall existiert aber unser <strong>in</strong>terpolierender natürlicher Spl<strong>in</strong>e trivialerweise: er ist<br />

der polynomiale Interpolant vom Grad n − m!<br />

□<br />

123 Also mit rechter Seite 0.


9.2 Spl<strong>in</strong>es und Interpolation 159<br />

= f<br />

t[r+1]<br />

t[m−1] t[n+2] t[n+r+1]<br />

t[m]<br />

t[n+1]<br />

s[−1] ... s[−r] s[1] ... s[r]<br />

Abbildung 9.5: Das erweiterte Interpolationsproblem aus dem Beweis von Satz 9.9.<br />

Auf dem unterlegten Bereich <strong>in</strong>terpolieren alle Spl<strong>in</strong>es <strong>die</strong> vorgegebenen Werte, an<br />

den ”<br />

Zusatzpunkten“ hat genau e<strong>in</strong>er von ihnen den Wert 1, alle andere den Wert<br />

0; nur s 0 verschw<strong>in</strong>det an allen äußeren Punkten.<br />

Für k ∈ N 0 und I ⊂ R def<strong>in</strong>ieren wir nun <strong>die</strong> Energienorm 124<br />

(∫<br />

|f| k,I =<br />

I<br />

∣<br />

∣f (k) (x)<br />

∣ dx) 2 1/2<br />

, f ∈ C (k) (I).<br />

Im Spezialfall k = 2, der, wie wir gleich sehen werden, zu m = 3 gehört, ist <strong>die</strong>s das<br />

Integral über das Quadrat der zweiten Ableitung, e<strong>in</strong>e Näherung für <strong>die</strong> Biegeenergie<br />

e<strong>in</strong>es Streifens, der dem Verlauf von f folgt. Daher übrigens auch der Name Spl<strong>in</strong>e 125 :<br />

E<strong>in</strong> Spl<strong>in</strong>e 126 ist e<strong>in</strong> Kurvenl<strong>in</strong>eal, bei dem e<strong>in</strong> mehr oder weniger beweglicher Streifen<br />

mit Hilfe von Gewichten durch gewisse Punkte gezwungen wird, siehe Abb. 9.6. Da<br />

der Streifen sich so legt, daß <strong>die</strong> Biegeenergie 127 m<strong>in</strong>imiert wird, wird e<strong>in</strong> kubischer<br />

Spl<strong>in</strong>e 128 mit den den Randbed<strong>in</strong>gungen aus Satz 9.11 129 als natürlicher Spl<strong>in</strong>e bezeichnet<br />

weil er das ”<br />

natürliche“ Objekt ”<br />

Spl<strong>in</strong>e“ simuliert. Dabei ensteht <strong>die</strong> ”<br />

Natürlichkeit“<br />

aus den Randbed<strong>in</strong>gungen (9.11) für m = 3, also r = 1, das heißt aus<br />

N ′′ m,T d (t m) = N ′′ m,T d (t n+1) = 0 (9.12)<br />

am ersten und letzten Interpolationspunkt, siehe Abb. 9.7. Hierbei kann man (9.12) so<br />

<strong>in</strong>terpretieren, daß l<strong>in</strong>ks von t m und rechts von t n+1 <strong>die</strong> Kurve N m,T l<strong>in</strong>ear fortgesetzt<br />

werden soll, was auch genau das ist, was e<strong>in</strong> elastisches Material wie der Plastikstreifen<br />

tun wird, wenn ke<strong>in</strong>e weiteren Anstrengungen unternommen werden, ihn zu<br />

biegen.<br />

124 Die allerd<strong>in</strong>gs nur e<strong>in</strong>e Halbnorm ist.<br />

125 Wenn man es genau nimmt, ist also e<strong>in</strong> Spl<strong>in</strong>e gar ke<strong>in</strong> Spl<strong>in</strong>e.<br />

126 Im Schiffsbau als Straklatte bezeichnet.<br />

127 Und <strong>die</strong> entspricht dem Quadrat<strong>in</strong>tegral über <strong>die</strong> zweite Ableitung, solange <strong>die</strong> Krümmung im<br />

Vergleich zur Ableitung kle<strong>in</strong> ist.<br />

128 Zweite Ableitung!<br />

129 Die gerade für <strong>die</strong> M<strong>in</strong>imalität sorgen werden.


160 9 SPLINES<br />

Abbildung 9.6: E<strong>in</strong> ”<br />

richtiger“ Spl<strong>in</strong>e, also das Kurvenl<strong>in</strong>eal. Die moderne Form<br />

besteht aus e<strong>in</strong>em nicht allzu flexiblen Plastikstreifen und (richtig schweren)<br />

Gewichten, <strong>die</strong> <strong>die</strong> Interpolationspunkte fixieren. Vielen Dank an Herrn Dr. Hollenhorst<br />

vom Hochschulrechenzentrum der JLU Gießen, der <strong>die</strong>sen Spl<strong>in</strong>e freundlicherweise<br />

zur Verfügung stellte.<br />

Satz 9.11 (M<strong>in</strong>imalitätseigenschaften) Es sei m = 2r + 1 ∈ N und T = T m,n e<strong>in</strong>e e<strong>in</strong>fache<br />

Knotenfolge. Für f ∈ C r+1 (I) sei S f = N m,T d e<strong>in</strong> Spl<strong>in</strong>e, der (9.10) und (9.11) erfüllt.<br />

Dann ist<br />

|S f | r+1,I ≤ |f| r+1,I (9.13)<br />

Beweis: Wir beg<strong>in</strong>nen mit<br />

∫ (<br />

2<br />

|f − S f | 2 r+1,I = f (r+1) (x) − (S f ) (x)) (r+1) dx<br />

∫<br />

I<br />

(<br />

2<br />

= f (x)) (r+1) − 2f (r+1) (x)(S f ) (r+1) (x) +<br />

I<br />

∫<br />

= |f| 2 r+1,I − 2<br />

I<br />

(<br />

(S f ) (r+1) (x)) 2<br />

dx<br />

(<br />

)<br />

f (r+1) (x) − (S f ) (r+1) (x) (S f ) (r+1) (x) dx − |S f | 2 r+1,I . (9.14)<br />

Für j = m, . . . , n verwendet man partielle Integration, um zu zeigen, daß<br />

t j+1 ∫ (<br />

t j<br />

=<br />

=<br />

)<br />

f (r+1) (x) − S (r+1)<br />

f<br />

(x)<br />

(<br />

f (r) (x) − S (r)<br />

f<br />

k∑<br />

l=0<br />

)<br />

(x)<br />

S (r+1)<br />

f<br />

(x) dx<br />

S (r+1)<br />

f<br />

∣<br />

(x)<br />

(−1) r−l ( f (r−l) (x) − S (r−l)<br />

f<br />

∣ t j+1<br />

t j<br />

−<br />

)<br />

(x)<br />

t j+1 ∫ (<br />

t j<br />

S (r+l+1)<br />

f<br />

)<br />

f (r) (x) − S (r)<br />

f<br />

(x)<br />

∣<br />

(x)<br />

∣ t j+1<br />

t j<br />

S (r+2)<br />

f<br />

(x) dx


9.2 Spl<strong>in</strong>es und Interpolation 161<br />

Abbildung 9.7: Die natürliche Randbed<strong>in</strong>gung des kubischen Spl<strong>in</strong>es: Rechts<br />

vom letzten Knoten und damit Interpolationspunkt werden auf das L<strong>in</strong>eal ke<strong>in</strong>e<br />

Biegekräfte mehr ausgeübt und es nimmt den energiem<strong>in</strong>imalen l<strong>in</strong>earen Verlauf<br />

an.<br />

=<br />

r∑<br />

l=0<br />

t j+1 ∫<br />

+(−1) k+1<br />

t j<br />

(<br />

(−1) r−l ( f (r−l) (x) − S (r−l)<br />

f<br />

)<br />

f (r−k) (x) − S (r−k)<br />

f<br />

(x)<br />

)<br />

(x)<br />

S (r+l+1)<br />

f<br />

Summation über j = m, . . . , n liefert dann, daß 130<br />

∫ (<br />

)<br />

f (r+1) (x) − S (r+1)<br />

f<br />

(x) S (r+1)<br />

f<br />

(x) dx<br />

I<br />

=<br />

r∑<br />

l=0<br />

(−1) r−l ( f (r−l) (x) − S (r−l)<br />

f<br />

(x) dx,<br />

} {{ }<br />

S (r+k+2)<br />

f<br />

=0fürk=r<br />

∣<br />

(x)<br />

)<br />

(x)<br />

∣ t j+1<br />

,<br />

t j<br />

S (r+l+1)<br />

f<br />

t n+1<br />

(x)<br />

= 0.<br />

∣<br />

t m<br />

k = 1, . . . , r<br />

Beachte: Der Term für l = r verschw<strong>in</strong>det, weil S f <strong>die</strong> Funktion f an den Stellen t m , t n+1<br />

<strong>in</strong>terpoliert, <strong>die</strong> Terme für l = 0, . . . , r − 1 h<strong>in</strong>gegen wegen (9.11). E<strong>in</strong>setzen <strong>in</strong> (9.14)<br />

liefert schließlich<br />

|S f | 2 r+1,I = |f|2 r+1,I − |f − S f| 2 r+1,I ≤ |f|2 r+1,I .<br />

Hierbei gilt Gleichheit genau dann, wenn f − S f ∈ Π r .<br />

Das zeigt auch <strong>die</strong> E<strong>in</strong>deutigkeit des natürlichen Spl<strong>in</strong>e<strong>in</strong>terpolanten wenn n ≥<br />

m + r: Ist f irgende<strong>in</strong>e andere M<strong>in</strong>imallösung des Interpolationsproblems, dann ist<br />

130 Die Werte an den <strong>in</strong>neren Knoten tauchen stets zweimal, aber mit unterschiedlichen Vorzeichen auf.


162 9 SPLINES<br />

f − S f ∈ Π r , muß aber an m<strong>in</strong>destens r + 1 Stellen (den Interpolationspunkten) verschw<strong>in</strong>den.<br />

Also ist f = S f .<br />

□<br />

Übung 9.1 Was s<strong>in</strong>d <strong>die</strong> kle<strong>in</strong>sten Zahlen p, q, so daß <strong>die</strong> Kollokationsmatrix zum<br />

natürliche Spl<strong>in</strong>e<strong>in</strong>terpolant der Ordnung m = 2r + 1 e<strong>in</strong>e (p, q)–ban<strong>die</strong>rte Matrix ist.<br />

♦<br />

Bei de Boor [5] f<strong>in</strong>det man zu <strong>die</strong>sem Thema <strong>die</strong> folgende nette Aussage:<br />

Die Extremaleigenschaft des <strong>in</strong>terpolierenden Spl<strong>in</strong>es wird häufig für <strong>die</strong> große<br />

praktische Nützlichkeit der Spl<strong>in</strong>es verantwortlich gemacht. Dies ist jedoch glatter<br />

Volksbetrug“ . . ..<br />

”<br />

9.3 Eigenschaften der B–Spl<strong>in</strong>es<br />

Bevor wir uns mit B–Spl<strong>in</strong>es befassen, sehen wir uns <strong>in</strong> Abb. 9.8 erst e<strong>in</strong>mal e<strong>in</strong> paar<br />

davon an. Das erste wichtige Resultat ist e<strong>in</strong>e Rekursionsformel für B–Spl<strong>in</strong>es, mit<br />

Abbildung 9.8: E<strong>in</strong>e kle<strong>in</strong>e Kollektion kubischer B–Spl<strong>in</strong>es (m = 3) mit vierfachen<br />

Randknoten. In l<strong>in</strong>ken Bild s<strong>in</strong>d <strong>die</strong> <strong>in</strong>neren Knoten gleichverteilt, im rechten Bild<br />

<strong>in</strong> der l<strong>in</strong>ken Hälfte konzentriert.<br />

deren Hilfe man B–Spl<strong>in</strong>es der Ordnung m aus B–Spl<strong>in</strong>es der Ordnung m − 1 berechnen<br />

kann. Diese Formel geht (wieder e<strong>in</strong>mal) auf Carl de Boor zurück.<br />

Satz 9.12 (Rekursionsformel für B–Spl<strong>in</strong>es) Sei T = T m,n e<strong>in</strong>e Knotenfolge.<br />

1. Die B–Spl<strong>in</strong>es vom Grad 0 haben <strong>die</strong> Form<br />

N 0 j (x|T) = χ [t j ,t j+1) (x) = { 1 x ∈<br />

[<br />

tj , t j+1<br />

)<br />

,<br />

0 x ̸∈ [ t j , t j+1<br />

)<br />

,<br />

j = 0, . . . , n + m. (9.15)


9.3 Eigenschaften der B–Spl<strong>in</strong>es 163<br />

2. Für l ≥ 1 gilt<br />

Bemerkung 9.13<br />

N l j (x|T) = u 1<br />

( )<br />

)<br />

x|I l j N l−1<br />

j<br />

(x|T) + u 0<br />

(x|I l j+1 N l−1<br />

j+1<br />

(x|T) , (9.16)<br />

j = 0, . . . , n + m − l.<br />

1. In den Ausdrücken N l j (·|T) sollte man T = T m,n als T = T l,n+m−l auffassen. Und<br />

damit gibt es eben auch nicht n sondern n + m − l B–Spl<strong>in</strong>es der Ordnung l zu e<strong>in</strong>er<br />

vorgegebenen Knotenfolge T = T m,n .<br />

2. Explizit geschrieben lautet (9.16)<br />

N l j (x|T) =<br />

j = 0, . . . , n + m − l.<br />

x − t j<br />

N l−1<br />

t j+l − t<br />

j<br />

(x|T) + t j+l+1 − x<br />

N l−1<br />

j t j+l+1 − t<br />

j+1 j+1<br />

(x|T) , (9.17)<br />

3. Die Formel (9.17) ist für l + 1–fache Knoten nicht def<strong>in</strong>iert – ke<strong>in</strong> Wunder, da dann auch<br />

der Spl<strong>in</strong>e N l−1<br />

j<br />

oder N l−1<br />

j+1 nicht mehr vernünftig def<strong>in</strong>iert ist131 . In <strong>die</strong>sem Fall läßt man<br />

den entsprechenden Term <strong>in</strong> (9.17) e<strong>in</strong>fach wegfallen.<br />

Lemma 9.14 Die B–Spl<strong>in</strong>es s<strong>in</strong>d nichtnegative Funktionen mit kompaktem Träger. Genauer:<br />

N m j (x|T) > 0, x ∈ ( t j , t j+m+1<br />

)<br />

, N<br />

m<br />

j (x|T) = 0, x ̸∈ [ t j , t j+m+1<br />

]<br />

. (9.18)<br />

Beweis: Wir er<strong>in</strong>nern uns, daß zur Bestimmung des Wertes an der Stelle x ∈ [t r , t r+1 )<br />

gerade <strong>die</strong> Kontrollpunkte d r−m , . . . , d r verwendet werden. Um N m j<br />

(x|T) ̸= 0 zu erhalten,<br />

muß also j ∈ {r − m, . . . , r} oder eben r ∈ {j, . . . , j + m} gelten. Damit verschw<strong>in</strong>det<br />

der B–Spl<strong>in</strong>e N m j<br />

(x|T) außerhalb von [ ]<br />

t j , t j+m+1 . Gilt andererseits x ∈ (tr , t r+1 ) und<br />

ist r ∈ {j, . . . , j + m}, dann s<strong>in</strong>d wegen<br />

{ ( )<br />

tj , t<br />

(t r , t r+1 ) ⊆ j+m−k+1 , j = r − m + k, . . . , r,<br />

I m−k+1<br />

, k = 1, . . . , m,<br />

r ,<br />

alle baryzentrischen Koord<strong>in</strong>aten <strong>in</strong> (9.3) strikt positiv und damit ist auch<br />

d 1 j (x) = u ( ) ( ) ( )<br />

0 x|I<br />

m<br />

j d<br />

0<br />

j−1 (x) +u 1 x|I<br />

m<br />

} {{ }<br />

j d<br />

0<br />

j (x) = u 1 x|I<br />

m<br />

} {{ }<br />

j > 0<br />

=d j−1 =0<br />

=d j =1<br />

sowie<br />

d 1 j+1 (x) = u ( ) ( ) ( )<br />

0 x|I<br />

m<br />

j+1 d<br />

0<br />

j (x) +u 1 x|I<br />

m<br />

} {{ }<br />

j+1 d<br />

0<br />

j (x) = u 0 x|I<br />

m<br />

} {{ }<br />

j+1 > 0.<br />

=d j =1<br />

=d j+1 =0<br />

131 Genauer: Der Spl<strong>in</strong>e wäre, wie wir gleich sehen werden, nur auf der leeren Menge von Null verschieden.


164 9 SPLINES<br />

Mit demselben Argument 132 ergibt sich dann, daß<br />

d l k (x) > 0, k<br />

= j, . . . , j + l<br />

Also ist auch N m j<br />

(x|T) = d m r (x) > 0, da r ∈ {j, . . . , j + m}. □<br />

Lemma 9.15 Die B–Spl<strong>in</strong>es bilden e<strong>in</strong>e nichtnegative Teilung der E<strong>in</strong>s, d.h.<br />

n∑<br />

N m j (·|T) ≡ 1. (9.19)<br />

j=0<br />

Beweis: Ist d 0 = · · · = d n = 1, also d 0 k<br />

(x) = 1, k = 0, . . . , n, dann ist, nach (9.4) und<br />

Induktion über j,<br />

(<br />

d j k (x) = u 0<br />

(<br />

= u 0<br />

x|I m−j+1<br />

k<br />

x|I m−j+1<br />

k<br />

)<br />

d j−1<br />

k−1 (x) + u 1<br />

) (<br />

+ u 1<br />

(<br />

x|I m−j+1<br />

k<br />

x|I m−j+1<br />

k<br />

)<br />

d j−1<br />

k<br />

(x)<br />

)<br />

= 1, k = j, . . . , m.<br />

Beweis von Satz 9.12: Nach Lemma 9.14 haben <strong>die</strong> B–Spl<strong>in</strong>es N 0 j<br />

(·|T), j = 0, . . . , n + m,<br />

als Träger das Intervall [ )<br />

t j , t j+1 , <strong>in</strong>sbesondere s<strong>in</strong>d also <strong>die</strong> Träger der verschiedenen<br />

B–Spl<strong>in</strong>es disjunkt und Lemma 9.15 liefert (9.15).<br />

Um N m j<br />

(·|T) mit Hilfe der B–Spl<strong>in</strong>es der Ordnung m − 1 ausdrücken zu können,<br />

benutzen wir <strong>die</strong> Zwischenpunkte d 1 j<br />

(x), j = 1, . . . , n, aus (9.4) und schreiben<br />

□<br />

N m,T d(x) =<br />

n∑<br />

d j N m j (x|T) =<br />

j=0<br />

n∑<br />

j=1<br />

d 1 j (x) Nm−1<br />

j<br />

(x|T) . (9.20)<br />

Ist <strong>in</strong>sbesondere d j = δ jk , dann ist, nach (9.3)<br />

⎧ ( )<br />

d 1 j (x) = u ( ) ( ) ⎨ u 1 x|I<br />

m<br />

( k )<br />

j = k,<br />

0 x|I<br />

m<br />

j dj−1 + u 1 x|I<br />

m<br />

j dj = u<br />

⎩ 0 x|I<br />

m<br />

k+1<br />

j = k + 1,<br />

0 sonst.<br />

(9.21)<br />

Setzt man (9.21) <strong>in</strong> (9.20) e<strong>in</strong>, dann ergibt sich<br />

N m j<br />

(x|T) = u 1<br />

(<br />

x|I<br />

m<br />

j<br />

)<br />

N<br />

m−1<br />

j<br />

( )<br />

(x|T) + u 0 x|I<br />

m<br />

j+1 N<br />

m−1<br />

j+1<br />

(x|T) . (9.22)<br />

□<br />

132 Man ersetzt d 1 j<br />

(x) durch dl+1<br />

j<br />

(x)


9.4 Der Spl<strong>in</strong>eraum 165<br />

9.4 Der Spl<strong>in</strong>eraum<br />

Das ”<br />

B“ bei den B–Spl<strong>in</strong>es kommt natürlich nicht von ungefähr: <strong>die</strong> B–Spl<strong>in</strong>es bilden<br />

e<strong>in</strong>e Basis e<strong>in</strong>es bestimmten Raums von stückweise polynomialen Funktionen.<br />

Def<strong>in</strong>ition 9.16 Zu m ∈ N und e<strong>in</strong>er Knotenfolge T = T m,n ist der Spl<strong>in</strong>eraum S m (T)<br />

def<strong>in</strong>iert als Menge aller<br />

1. stückweisen Polynome 133<br />

f ∈ S m (T) ⇒ f| (tj ,t j+1) ∈ Π m, j = m, . . . , n, (9.23)<br />

2. <strong>die</strong> an e<strong>in</strong>em µ–fachen Knoten t j , t j−1 < t j = · · · = t j+µ−1 < t j+µ , differenzierbar von<br />

der Ordnung m − µ s<strong>in</strong>d:<br />

f ∈ S m (T) ⇒ f ∈ C m−µ ( t j−1 , t j+µ<br />

)<br />

. (9.24)<br />

Offensichtlich ist S m (T) e<strong>in</strong> Vektorraum, das heißt,<br />

f, g ∈ S m (T) ⇒ αf + βg ∈ S m (T), α, β ∈ R.<br />

Satz 9.17 (Curry–Schoenberg) Für jedes m ∈ N und jede Knotenfolge T = T m,n s<strong>in</strong>d <strong>die</strong><br />

B–Spl<strong>in</strong>es N m j<br />

(·|T), j = 0, . . . , n, e<strong>in</strong>e Basis von S m (T).<br />

Für <strong>die</strong>sen Satz ist mehr zu beweisen, als man zuerst denken mag: zwar folgt (9.23)<br />

sofort aus dem Algorithmus von de Boor, aber wir müssen trotzdem noch zeigen,<br />

daß <strong>die</strong> B–Spl<strong>in</strong>es l<strong>in</strong>ear unabhängig s<strong>in</strong>d, <strong>die</strong> gewünschten Differenzierbarkeitseigenschaften<br />

haben und daß <strong>die</strong> Dimension von S m (T) tatsächlich n + 1 ist. Es gibt e<strong>in</strong>en<br />

sehr schönen Beweis von Satz 9.17, bei dem man <strong>die</strong> Kontrollpunkte zu e<strong>in</strong>er stückweise<br />

polynomialen Kurve direkt angeben kann, aber <strong>die</strong>ser beruht auf dem sogenannten<br />

Blossom<strong>in</strong>g Pr<strong>in</strong>ciple und ist eher etwas für e<strong>in</strong>e Spezialvorlesung 134 . Hier<br />

wollen wir den direkten Weg gehen. Dafür müssen wir aber e<strong>in</strong>e zusätzliche Annahme<br />

machen, <strong>in</strong>dem wir fordern, daß<br />

t m < t m+1 und t n < t n+1 , (9.25)<br />

daß also ke<strong>in</strong> Randknoten als <strong>in</strong>nerer Knoten auftritt 135 . Dies ist <strong>in</strong>sbesondere für (m +<br />

1)–fache Randknoten der Fall.<br />

E<strong>in</strong>e sehr hilfreiche Aussage, <strong>die</strong> uns mit e<strong>in</strong> bißchen Rechenarbeit konfrontieren<br />

wird, ist e<strong>in</strong>e Formel für <strong>die</strong> Ableitung e<strong>in</strong>es B–Spl<strong>in</strong>es.<br />

133 Nicht vergessen: E<strong>in</strong>gschränkt auf <strong>die</strong> leere Menge hat jede Funktion jede Eigenschaft, deswegen –<br />

vorsichtshalber – <strong>die</strong> offenen Intervalle.<br />

134 leider . . .<br />

135 Kl<strong>in</strong>gt irgendwo plausibel.


166 9 SPLINES<br />

Lemma 9.18 Sei m ∈ N und T = T m,n e<strong>in</strong>e Knotenfolge. Dann ist, für x ∈ R \ T,<br />

d<br />

dx Nm j (x|T) =<br />

m<br />

N m−1<br />

m<br />

t j+m − t<br />

j<br />

(x|T) −<br />

N m−1<br />

j t j+m+1 − t<br />

j+1<br />

(x|T) , j = 0, . . . , n.<br />

j+1<br />

(9.26)<br />

Ist t j oder t j+1 e<strong>in</strong> Knoten der Vielfachheit m + 1, dann macht (9.26) zuerst e<strong>in</strong>mal<br />

ke<strong>in</strong>en S<strong>in</strong>n. Allerd<strong>in</strong>gs ist <strong>in</strong> <strong>die</strong>sem Fall auch das Träger<strong>in</strong>tervall des betreffenden<br />

B–Spl<strong>in</strong>es N m−1<br />

j<br />

oder N m−1<br />

j+1<br />

auch e<strong>in</strong>e e<strong>in</strong>punktige Teilmenge von T, was <strong>die</strong> Division<br />

durch 0 wieder kompensiert.<br />

Beweis: Induktion über m, wobei der Fall m = 1 sich sehr e<strong>in</strong>fach von Hand“<br />

”<br />

überprüfen lässt. Da N m j<br />

auf jeder offenen und konvexen Teilmenge U ⊂ R \ T 136<br />

e<strong>in</strong> Polynom ist, können wir immer und fast überall nach Herzenslust differenzieren.<br />

Unter Verwendung der Rekursionsformel (9.17) ergibt sich dann<br />

( d<br />

dx Nm j (·|T))<br />

(x)<br />

=<br />

=<br />

( ( d · − tj<br />

N m−1<br />

dx t j+m − t<br />

j<br />

(·|T) + t ))<br />

j+m+1 − ·<br />

N m−1<br />

j t j+m+1 − t<br />

j+1 (·|T) (x)<br />

j+1<br />

1<br />

N m−1<br />

1<br />

t j+m − t<br />

k<br />

(·|T) −<br />

N<br />

j t j+m+1 − t<br />

j+1 m−1 (·|T)<br />

j+1<br />

+ x − t j d<br />

( )<br />

N m−1<br />

t j+m − t j dx<br />

j<br />

(·|T) (x) +<br />

t j+m+1 − x d<br />

( )<br />

N m−1<br />

t j+m+1 − t j+1 dx<br />

j+1 (·|T) (x). (9.27)<br />

Jetzt wird es Zeit für <strong>die</strong> Induktionshypothese, <strong>die</strong> zusammen mit (9.17)<br />

x − t j d<br />

t j+m − t j dx<br />

=<br />

=<br />

=<br />

(<br />

N m−1<br />

j<br />

)<br />

(·|T) (x)<br />

(<br />

x − t j m − 1<br />

N<br />

t j+m − t j t j+m−1 − t<br />

j m−2 (x|T) − m − 1<br />

)<br />

N m−2<br />

j t j+m − t<br />

j+1 (x|T) j+1<br />

(<br />

m − 1 x − tj<br />

N<br />

t j+m − t j t j+m−1 − t<br />

j m−2 (x|T) + t )<br />

j+m − x<br />

N m−2<br />

j t j+m − t<br />

j+1 (x|T)<br />

} {{ j+1<br />

}<br />

=Nj<br />

m−1 (x|T)<br />

− m − 1 (<br />

tj+m − x<br />

+<br />

x − t )<br />

j<br />

t j+m − t j t j+m − t j+1 t j+m − t<br />

} {{ j+1<br />

}<br />

=(t j+m −t j)/(t j+m −t j+1)<br />

m − 1<br />

N m−1<br />

t j+m − t<br />

j<br />

(x|T) − m − 1 N<br />

j t j+m − t<br />

j+1 m−2<br />

j+1<br />

N m−2<br />

j+1 (x|T)<br />

(x|T) (9.28)<br />

136 Wir bleiben also immmer <strong>in</strong> e<strong>in</strong>em der ”<br />

Stückchen“, <strong>in</strong> <strong>die</strong> T <strong>die</strong> relle Achse zerlegt.


9.4 Der Spl<strong>in</strong>eraum 167<br />

und<br />

t j+m+1 − x d<br />

( )<br />

N m−1<br />

t j+m+1 − t j+1 dx<br />

j+1 (·|T) (x)<br />

= t ( )<br />

j+m+1 − x m − 1<br />

N m−2<br />

t j+m+1 − t j+1 t j+m − t<br />

j+1 (x|T) − m − 1<br />

N m−2<br />

j+1 t j+m+1 − t<br />

j+2 (x|T) j+2<br />

(<br />

m − 1 x − tj+1<br />

=<br />

+ t )<br />

j+m+1 − x<br />

N<br />

t j+m+1 − t j+1 t j+m − t j+1 t j+m − t<br />

j+1 m−2 (x|T)<br />

} {{ j+1<br />

}<br />

=(t j+m+1 −t j+1)/(t j+m −t j+1)<br />

(<br />

m − 1 x − tj+1<br />

−<br />

N m−2<br />

t j+m+1 − t j+1 t j+m − t<br />

j+1 (x|T) + t )<br />

j+m+1 − x<br />

N m−2<br />

j+1 t j+m+1 − t<br />

j+2 (x|T)<br />

} {{ j+2<br />

}<br />

=Nj+1 m−1 (x|T)<br />

m − 1<br />

=<br />

N m−2<br />

t j+m − t<br />

j+1 (x|T) − m − 1<br />

N m−1<br />

j+1 t j+m+1 − t<br />

j+1<br />

(x|T) . (9.29)<br />

j+1<br />

liefert. E<strong>in</strong>setzen von (9.28) und (9.29) <strong>in</strong> (9.27) ergibt dann<br />

( d<br />

dx Nm j (·|T))<br />

(x)<br />

=<br />

=<br />

1<br />

N m−1<br />

1<br />

t j+m − t<br />

j<br />

(x|T) −<br />

N m−1<br />

j t j+m+1 − t<br />

j+1 (x|T) + m − 1 N<br />

j+1 t j+m − t<br />

j<br />

m−1 (x|T)<br />

j<br />

− m − 1 N m−2<br />

t j+m − t<br />

j+1 (x|T) + m − 1 N m−2<br />

j+1 t j+m − t<br />

j+1 (x|T) − m − 1<br />

N<br />

j+1 t j+m+1 − t<br />

j+1 m−1 (x|T)<br />

j+1<br />

m<br />

N m−1<br />

m<br />

t j+m − t<br />

k<br />

(x|T) −<br />

N m−1<br />

j t j+m+1 − t<br />

j+1 (x|T) ,<br />

j+1<br />

und somit (9.26).<br />

□<br />

Übung 9.2 Verifizieren Sie (9.26) für m = 1. Was bedeutet das geometrisch?<br />

Damit wissen wir auch, wie <strong>die</strong> Ableitung e<strong>in</strong>er Spl<strong>in</strong>ekurve (bis auf <strong>die</strong> Werte an den<br />

Knoten) aussieht.<br />

Korollar 9.19 Es se<strong>in</strong> m ∈ N und T = T m,n e<strong>in</strong>e Knotenfolge. Dann ist, für alle x ∈ R \ T,<br />

wobei d n+1 = d −1 = 0 137 .<br />

137 Und wieder N m−1<br />

j<br />

(x|T) / ( t j+m − t j<br />

) ≡ 0.<br />

d<br />

dx N ∑n+1<br />

d j − d j−1<br />

m,T d(x) = m<br />

N<br />

t<br />

j=0 j+m − t<br />

j m−1 (x|T) , (9.30)<br />

j<br />


168 9 SPLINES<br />

Beweis: Mit Lemma 9.18 ist<br />

d<br />

dx N m,T d(x) = m<br />

n∑<br />

j=0<br />

∑n+1<br />

= m<br />

j=0<br />

(<br />

N<br />

m−1<br />

j<br />

(x|T)<br />

d j<br />

t j+m − t j<br />

d j − d j−1<br />

t j+m − t j<br />

N m−1<br />

j<br />

(x|T) .<br />

− Nm−1 j+1 (x|T)<br />

)<br />

t j+1+m − t j+1<br />

Proposition 9.20 Sei m ∈ N 0 und T = T m,n . Dann ist N m j<br />

(·|T) ∈ S m (T), j = 0, . . . , n.<br />

Beweis: Induktion über m 138 . Für m = 0 müssen alle Knoten e<strong>in</strong>fach se<strong>in</strong> (maximale<br />

Vielfachheit ist m + 1 = 1) und <strong>die</strong> B–Spl<strong>in</strong>es s<strong>in</strong>d stückweise konstante Funktionen<br />

und gehören damit trivialerweise zu C −1 (R).<br />

Für m − 1 → m, m ≥ 1, folgt <strong>die</strong> stückweise Polynomialität direkt aus dem Algorithmus<br />

von de Boor, wir brauchen uns also nur noch um <strong>die</strong> Differenzierbarkeit zu<br />

kümmern. An e<strong>in</strong>em m + 1–fachen Knoten liefert uns ja bereits der de–Boor–Algorithmus<br />

<strong>die</strong> Unstetigkeit: Der Spl<strong>in</strong>e muß an <strong>die</strong>ser Stelle den Wert 1 und 0 haben. Hat h<strong>in</strong>gegen<br />

e<strong>in</strong> Knoten t ∈ ( )<br />

t j , t 139 j+m+1 <strong>die</strong> Vielfachheit µ ≤ m, dann können wir <strong>in</strong> e<strong>in</strong>em offenen<br />

Intervall U mit U ∩ T = {t} differenzieren und <strong>die</strong> Ableitungsfunktion ist nach<br />

(9.26) wohldef<strong>in</strong>iert (auch an der Stelle t) und <strong>in</strong> U nach Induktionsvoraussetzung<br />

(m − 1 − µ)–mal stetig differenzierbar. Also ist N m j<br />

<strong>in</strong> U (m − µ)–mal stetig differenzierbar.<br />

□<br />

□<br />

Lemma 9.21 Sei m ∈ N und T m,n e<strong>in</strong>e Knotenfolge. Dann s<strong>in</strong>d <strong>die</strong> B–Spl<strong>in</strong>es N m j<br />

unabhängig.<br />

(·|T) l<strong>in</strong>ear<br />

Beweis: Induktion über m. Der Fall m = 0 ist trivial, da <strong>die</strong> B–Spl<strong>in</strong>es alle disjunkten<br />

Träger haben. Für den Schluß m → m + 1 nehmen wir an, ke<strong>in</strong> Knoten hätte Vielfachheit<br />

m + 1 und es gäbe e<strong>in</strong>en Knotenvektor d = ( d j : j = 0, . . . , n ) , so daß<br />

0 = N m,T d =<br />

n∑<br />

d j N m j (·|T) . (9.31)<br />

j=0<br />

Ableitung beider Seiten liefert für alle x ∈ R \ T, daß<br />

0 = d dx N ∑n+1<br />

d j − d j−1<br />

m,T d = m<br />

N m−1<br />

t j+m − t<br />

j<br />

(·|T) .<br />

j<br />

j=0<br />

138 Wie soll man Rekursionsformeln auch sonst ausnutzen?<br />

139 Also im Inneren des Tägers des B–Spl<strong>in</strong>es N m j<br />

(·|T).


9.4 Der Spl<strong>in</strong>eraum 169<br />

Nach Proposition 9.20 ist <strong>die</strong> rechte Seite stetig 140 und nach der Induktionshypothese<br />

muß schließlich d j = d j−1 se<strong>in</strong>, also<br />

0 = d 0 = d 1 = d 2 = · · · = d n = d n+1 = 0.<br />

Übung 9.3 Ergänzen Sie den Beweis von Lemma 9.21 um den Fall (m + 1)–facher<br />

Knoten. (H<strong>in</strong>weis: Jeder (m + 1)–facher <strong>in</strong>nerer Knoten zerlegt <strong>die</strong> Spl<strong>in</strong>ekurven <strong>in</strong><br />

Teilkurven, und man kann alles auf den Fall (m + 1)–facher Randknoten zurückführen)<br />

♦<br />

Lemma 9.22 Für m ∈ N 0 und e<strong>in</strong>e Knotenfolge T = T m,n ist<br />

dim S m (T) = n + 1.<br />

Beweis: Auf dem, nach (9.25) nichtleeren Intervall I m = (t m , t m+1 ) def<strong>in</strong>ieren wir e<strong>in</strong><br />

beliebiges Polynom p m . Sei nun t m+1 = t m+2 = · · · = t m+µ < t m+µ+1 e<strong>in</strong> Knoten der<br />

Vielfachheit µ. Wir betrachten e<strong>in</strong> Polynom p m+1 auf ( )<br />

t m+1 , t m+µ+1 und schreiben es<br />

als<br />

m∑ a j<br />

p m+1 =<br />

j! (x − t m+1) j .<br />

j=0<br />

Die Differenzierbarkeitsbed<strong>in</strong>gungen s<strong>in</strong>d nun<br />

p (j)<br />

m (t m+1 ) = p (j)<br />

m+1 (t m+1) = a j , j = 0, . . . , m − µ.<br />

Also hat der Raum aller stückweisen Polynome mit der geforderten Differenzierbarkeit<br />

auf den erstem beiden Intervallen <strong>die</strong> Dimension m + 1 + µ – <strong>die</strong> vollen m + 1 Freiheitsgrade<br />

von p m und <strong>die</strong> µ noch freien Parameter von p m+1 . Hat nun t m+µ+1 se<strong>in</strong>erseits<br />

Vielfachheit ν, so kommen weitere ν freie Parameter h<strong>in</strong>zu und so weiter. Wir haben<br />

also für <strong>die</strong> Knotenfolge<br />

T l = {t m , . . . , t m+l+1 } , t m < t m+1 , t m+l < t m+l+1 ,<br />

(plus geeignete Randknoten), daß dim S m (T l ) = m + l + 1. Für l = n − m folgt dann<br />

<strong>die</strong> Behauptung.<br />

□<br />

Beweis von Satz 9.17: Der Beweis ist jetzt e<strong>in</strong> e<strong>in</strong>faches Spiel mit den schon bewiesenen<br />

Bauklötzen: Nach Proposition 9.20 ist<br />

□<br />

span { N m j<br />

(·|T) : j = 0, . . . , n } ⊆ S m (T),<br />

aber da wegen der l<strong>in</strong>earen Unabhängigkeit der B–Spl<strong>in</strong>es (Lemma 9.21) und wegen<br />

Lemma 9.22 <strong>die</strong> Dimension der beiden Vektorräume jeweils n + 1 ist, müssen sie halt<br />

auch übere<strong>in</strong>stimmen.<br />

□<br />

140 Wir haben ke<strong>in</strong>e (m + 1)–fachen Knoten mehr.


170 9 SPLINES<br />

9.5 Knotene<strong>in</strong>fügen<br />

Def<strong>in</strong>ition 9.23 E<strong>in</strong>e Knotenfolge T ∗ = T m,n ∗ heißt Verfe<strong>in</strong>erung von T = T m,n , falls<br />

1. t ∗ 0 = t 0, . . . , t ∗ m = t m ,<br />

2. t ∗ n ∗ +1 = t n+1, . . . , t ∗ n ∗ +m+1 = t n+m+1,<br />

3. es gibt τ : {m + 1, . . . , n − 1} → {m + 1, . . . , n ∗ − 1} monoton steigend, so daß t ∗ τ(j) =<br />

t j , j = m + 1, . . . , n − 1.<br />

Formal schreiben wir das als T ⊆ T ∗ . 141<br />

Da Polynome unendlich oft differenzierbar s<strong>in</strong>d, <strong>in</strong>sbesondere an zusätzlichen“ Knoten,<br />

”<br />

ist S m (T) ⊆ S m (T ∗ ), wann immer T ⊆ T ∗ . Anders gesagt, für jeden Vektor d =<br />

(d 0 , . . . , d n ) gibt es e<strong>in</strong>en Vektor d ∗ = (d0 ∗ , . . . , d∗ n∗), so daß<br />

N m,T d =<br />

n∑<br />

d j N m j<br />

j=0<br />

} {{ }<br />

∈ S m (T)<br />

n ∗<br />

∑<br />

(·|T) = dj ∗ Nm j (·|T ∗ ) = N m,T ∗ d ∗ . (9.32)<br />

j=0<br />

} {{ }<br />

∈ S m (T ∗ )<br />

Die Frage ist natürlich: ”<br />

Wie bestimmt man d ∗ ?“ Nun, im entscheidenden Fall des<br />

E<strong>in</strong>fügens e<strong>in</strong>es Knotens (und natürlich läßt sich jede Verfe<strong>in</strong>erung e<strong>in</strong>er Knotenfolge<br />

darauf zurückführen, <strong>in</strong>dem man Knoten für Knoten e<strong>in</strong>fügt) kann man das Verfahren<br />

angeben. Um <strong>die</strong> Situation zu fixieren sei, für e<strong>in</strong> j ∈ {m, . . . , n − 1}<br />

und<br />

T ∗ = {tk ∗ : k = 0, . . . , n + m + 2} , t∗<br />

t 0 ≤ · · · ≤ t j ≤ t ∗ ≤ t j+1 ≤ · · · ≤ t n+m+1 ,<br />

k = ⎧<br />

⎨<br />

⎩<br />

t k k = 0, . . . , j,<br />

t ∗ k = j + 1,<br />

t k−1 k = j + 2, . . . , n + m + 2.<br />

(9.33)<br />

Der folgende Satz wird normalerweise Boehm zugeschrieben, alternativ spricht man<br />

beim Knotene<strong>in</strong>fügen auch gerne vom Oslo–Algorithmus 142 .<br />

Satz 9.24 (Knotene<strong>in</strong>fügen) Sei T ∗ e<strong>in</strong>e Verfe<strong>in</strong>erung der Knotenfolge T = T m,n gemäß<br />

(9.33). Dann ergibt sich das Kontrollpolygon d ∗ als<br />

d ∗ k = ⎧<br />

⎨<br />

⎩<br />

(<br />

d k , k = 0, . . . , j − m,<br />

u 0 t ∗ |I m ) (<br />

k dk−1 + u 1 t ∗ |I m )<br />

k dk , k = j − m + 1, . . . , j,<br />

d k−1 , k = j + 1, . . . , n + 1.<br />

(9.34)


9.5 Knotene<strong>in</strong>fügen 171<br />

Abbildung 9.9: Zwei Beispiele für Knotene<strong>in</strong>fügen bei kubischen Spl<strong>in</strong>es, m = 3.<br />

Beweis: Übungsaufgaben.<br />

□<br />

Übung 9.4 Beweisen Sie <strong>die</strong> Leibniz–Formel für divi<strong>die</strong>rte Differenzen:<br />

n∑ [ ] [ ]<br />

[x 0 , . . . , x n ] (fg) = x0 , . . . , x j f xj , . . . , x n g. (9.35)<br />

Übung 9.5 Die abgebrochene Potenz (· − y) n + ist def<strong>in</strong>iert als<br />

{<br />

(x − y) n + = 0, x ≤ y,<br />

(x − y) n , x > y.<br />

Zeigen Sie: Zu e<strong>in</strong>er Kontenfolge T = T m,n ergibt sich der j–te B–Spl<strong>in</strong>e als<br />

j=0<br />

N m j (x|T) = [ t j , . . . , t j+m+1<br />

] (· − x)<br />

m<br />

+ , j = 0, . . . , n,<br />

H<strong>in</strong>weis: Verwenden Sie <strong>die</strong> Leibniz–Formel für divi<strong>die</strong>rte Differenzen, (9.35), um<br />

nachzuweisen, daß <strong>die</strong> rechte Seite des obigen Ausdrucks <strong>die</strong> Rekursionsformel für<br />

B–Spl<strong>in</strong>es erfüllt.<br />

♦<br />

Übung 9.6 Es sei T ∗ <strong>die</strong> Knotenfolge, <strong>die</strong> entsteht, wenn der Knoten t j ≤ t ∗ < t j+1 <strong>in</strong><br />

T = T m,n e<strong>in</strong>gefügt wird. Zeigen Sie, daß dann<br />

N<br />

⎧⎪ m k (·|T ∗ ) , k = 0, . . . , j − m,<br />

⎨<br />

N m k (·|T) = (<br />

u 1 t ∗ |J m )<br />

k N<br />

m<br />

k<br />

(·|T ∗ (<br />

) + u 0 t ∗ |J m )<br />

k N<br />

m<br />

k+1<br />

(·|T ∗ ) , k = j − m + 1, . . . , j,<br />

⎪ ⎩<br />

N m k+1 (·|T ∗ ) , k = j + 1, . . . , n,<br />

141 Die obigen Bed<strong>in</strong>gungen bedeuten e<strong>in</strong>e ”<br />

⊂“–Relation, <strong>die</strong> Vielfachheiten berücksichtigt.<br />

142 Das Gebiet ist noch jung genug, um Prioritätenkonflikte zu erlauben.<br />


172 9 SPLINES<br />

mit J m k = [ tk ∗, k+m] t∗ , und folgern Sie daraus <strong>die</strong> Formel zum Knotene<strong>in</strong>fügen.<br />

H<strong>in</strong>weis: Verwenden Sie <strong>die</strong> Darstellung des B–Spl<strong>in</strong>es als divi<strong>die</strong>rte Differenz von<br />

abgebrochenen Potenzen.<br />

♦<br />

9.6 Die Schoenberg–Whitney–Bed<strong>in</strong>gung<br />

So, jetzt machen wir uns also an den Beweis des Interpolationssatzes von Schoenberg<br />

und Whitney, also Teil 1 von Satz 9.6. Dazu bezeichnen wir mit<br />

N m (X | T) = [ N m (<br />

k xj |T ) : j, k = 0, . . . , n ]<br />

<strong>die</strong> Kollokationsmatrix des Interpolationsproblems, das dann <strong>die</strong> Form<br />

N m (X | T) d = f<br />

annimmt und genau dann e<strong>in</strong>deutig lösbar ist, wenn det N m (X | T) ̸= 0. E<strong>in</strong>e Richtung<br />

von Satz 9.6 ist jetzt recht e<strong>in</strong>fach.<br />

Proposition 9.25 Sei m ∈ N 0 und T = T m,n e<strong>in</strong>e Knotenfolge. Ist das Spl<strong>in</strong>e–Interpolationsproblem<br />

an Stellen x 0 , . . . , x n immer e<strong>in</strong>deutig lösbar, so ist t j < x j < t j+m+1 , j = 0, . . . , n.<br />

Beweis: Nehmen wir an, es gäbe e<strong>in</strong> j, so daß <strong>die</strong> Schoenberg–Whitney–Bed<strong>in</strong>gung<br />

(9.7), also t j < x j < t j+m+1 , verletzt ist. Dann ist entweder x j ≤ t j oder x j ≥ t j+m+1 . Im<br />

ersten Fall gilt, da der Träger von N m k (·|T) das Intervall [t k, t k+m+1 ] ist, <strong>die</strong> Beziehung<br />

(<br />

xj |T ) = 0, k = j, . . . , n,<br />

N m k<br />

also haben <strong>die</strong> ersten j + 1 Zeilen der Kollokationsmatrix <strong>die</strong> Form<br />

⎡<br />

⎤<br />

N 0 (x 0 |T) . . . N j−1 (x 0 |T) 0 . . . 0<br />

⎢<br />

⎣<br />

.<br />

. .. . . . ..<br />

⎥<br />

( .<br />

N 0 xj |T ) (<br />

. . . N j−1 xj |T ) ⎦<br />

0 . . . 0<br />

und s<strong>in</strong>d damit l<strong>in</strong>ear abhängig, also ist det N m (X |T) = 0. Im anderen Fall, x j<br />

t j+m+1 , ist<br />

(<br />

xj |T ) = 0, k = 0, . . . , j,<br />

N m k<br />

und, da x j ≤ x l , j ≤ l, gilt natürlich auch<br />

N m k (x l|T) = 0, k = 0, . . . , j, l = j, . . . , n.<br />

Damit haben <strong>die</strong> ersten j + 1 Spalten von N m (X |T) <strong>die</strong> Form<br />

⎡<br />

N m 0 (x 0|T) . . . N m ⎤<br />

j<br />

(x 0 |T)<br />

. . .. .<br />

N m (<br />

0 xj−1 |T ) . . . N m (<br />

j xj−1 |T )<br />

0 . . . 0<br />

,<br />

⎢<br />

⎣ .<br />

..<br />

⎥<br />

. . ⎦<br />

0 . . . 0<br />

s<strong>in</strong>d also ebenfalls l<strong>in</strong>ear abhängig.<br />

≥<br />


9.6 Die Schoenberg–Whitney–Bed<strong>in</strong>gung 173<br />

Bemerkung 9.26 Die Idee <strong>die</strong>ses Beweises läßt sich auf e<strong>in</strong>e viel allgeme<strong>in</strong>ere Situation anwenden.<br />

Sieht man nämlich mal genau h<strong>in</strong>, dann haben wir nur ausgenutzt, daß <strong>die</strong> B–Spl<strong>in</strong>es<br />

e<strong>in</strong>en wohldef<strong>in</strong>ierten kompakten Träger haben, und sonst nichts.<br />

Die Umkehrung ist etwas aufwendiger, gibt aber gleichzeitig auch mehr Information<br />

über Eigenschaften der Spl<strong>in</strong>efunktionen. Deswegen kann man durchaus e<strong>in</strong>mal<br />

zu e<strong>in</strong>em Blick <strong>in</strong> Kapitel A.4 raten. Für hier soll es aber genug se<strong>in</strong> mit den Spl<strong>in</strong>es.


174 10 NICHTLINEARE GLEICHUNGEN<br />

Also daß Rechnen e<strong>in</strong> fundament und<br />

grundt aller Künste ist / Dann ohne zal<br />

mag ke<strong>in</strong> Musicus se<strong>in</strong>en Gesang / ke<strong>in</strong><br />

Geometer se<strong>in</strong> Mensur vollbr<strong>in</strong>ge / auch<br />

ke<strong>in</strong> Astronomus den lauff des Himmels<br />

erkennen.<br />

Adam Riese [32]<br />

Nichtl<strong>in</strong>eare Gleichungen 10<br />

Das Thema <strong>die</strong>ses Kapitels ist <strong>die</strong> Lösung beliebiger, auch nichtl<strong>in</strong>earer Gleichungen<br />

der Form<br />

F(x) = 0, F : R n → R n , n ∈ N, (10.1)<br />

wobei F natürlich gewissen Voraussetzungen zu genügen hat, und zwar m<strong>in</strong>destens<br />

stetig, meistens sogar differenzierbar se<strong>in</strong> soll. Daß <strong>die</strong> rechte Seite von (10.1) den Wert<br />

0 hat, ist ke<strong>in</strong>e E<strong>in</strong>schränkung: Für beliebige rechte Seite G(x) ist ja 143<br />

F(x) = G(x) ⇔ (F − G) (x) = 0.<br />

Beispiel 10.1 Die Berechnung der Quadratwurzel e<strong>in</strong>er rationalen Zahl 0 < y ∈ Q war<br />

schon <strong>in</strong> der griechischen Antike e<strong>in</strong> wichtiges Problem und gelöst. Die dazugehörige nichtl<strong>in</strong>eare<br />

Gleichung ist<br />

f(x) = 0, f(x) = x 2 − y,<br />

und kann über <strong>die</strong> oft als Heron–Verfahren bezeichnete Iteration<br />

x (0) = y, x (k+1) = 1 (<br />

x (k) +<br />

y )<br />

2 x (k) , k ∈ N 0 , (10.2)<br />

gelöst werden, <strong>die</strong> sogar schon den Babyloniern bekannt war 144 .<br />

Das Heron–Verfahren kann auch geometrisch <strong>in</strong>terpretiert werden, nämlich als Konstruktion<br />

flächengleicher Rechtecke, <strong>die</strong> <strong>in</strong> der Grenze e<strong>in</strong> Quadrat ergeben, dessen Seitenlänge <strong>die</strong><br />

gewünschte Wurzel ist – starten kann man ja mit dem Rechteck mit den Seitenlängen y und 1.<br />

E<strong>in</strong> Konstruktionsschritt ist <strong>in</strong> Abb. 10.1 beschrieben.<br />

Die Durchführung des ”<br />

Iterationsschritts“, das heißt <strong>die</strong> Berechnung der Seiten e<strong>in</strong>es Rechtecks<br />

aus ihrer Summe und der Fläche des Rechtecks, ist als babylonischer Keilschrifttext überliefert,<br />

143 Das setzt natürlich voraus, daß auch G e<strong>in</strong>e ”<br />

gute“ Funktion im S<strong>in</strong>ne e<strong>in</strong>es funktionierenden numerischen<br />

Verfahrens ist.<br />

144 Siehe z.B. [10]


a<br />

175<br />

siehe [31, S. 125–127]. Laut [29] s<strong>in</strong>d Keilschrifttexte wesentlich stärker algebraisch als geometrisch<br />

orientiert – ganz im Gegensatz zu den Rechenmeistern der Renaissance, siehe z.B.<br />

[21].<br />

(a+b)/2<br />

a+b<br />

Abbildung 10.1: E<strong>in</strong> Iterationsschritt (10.2) des Heron–Verfahrens geometrisch:<br />

Konstruiere zu vorgegebenen Seitenlängen a und b das flächengleiche Rechteck<br />

mit den Seitenlängen a+b<br />

2<br />

und 2ab<br />

a+b .<br />

Eigentlich ist das alles aber noch viel e<strong>in</strong>facher mit der geometrischen Heuristik und<br />

Rechtfertigung des Heron–Verfahrens: Wir wollen ja e<strong>in</strong> Rechteck <strong>in</strong> e<strong>in</strong> flächengleiches<br />

Quadrat konvertieren, nichts anderes bedeutet Wurzelziehen, denn <strong>die</strong> Seitenlänge<br />

des Quadrats ist ja dann <strong>die</strong> gesuchte Wurzel. Hat <strong>die</strong>ses Rechteck nun Fläche y und<br />

e<strong>in</strong>e bekannte Seite der Länge x, dann hat <strong>die</strong> andere Seite offensichtlich Länge y/x.<br />

Ist unser Rechteck ke<strong>in</strong> Quadrat, dann ist x entweder zu kurz, und damit y/x zu lang<br />

oder x ist zu lang und y/x zu kurz. E<strong>in</strong> besserer Wert als x liegt also immer zwischen<br />

x und y/x und könnte somit als<br />

x ∗ = α x + (1 − α) y , α ∈ (0, 1), (10.3)<br />

x<br />

geschrieben werden. Es gibt sogar e<strong>in</strong> magisches“ α, das genau das gewünschte Quadrat<br />

liefert, aber das zu bestimmen ist nicht e<strong>in</strong>fach. Also wählt man etwas universell<br />

”<br />

passendes und naheliegendes, nämlich α = 1 2<br />

und schon ist man bei der Heron–<br />

Iteration! Sollte zufällig x so gewählt gewesen se<strong>in</strong>, daß wir schon e<strong>in</strong> Quadrat haben,<br />

dann liefert (10.3) für jedes α auch <strong>die</strong>ses x zurück – das ist eben <strong>die</strong> Fixpunkteigenschaft.<br />

Übung 10.1 Zeigen Sie, daß das Heron–Verfahren immer gegen <strong>die</strong> Quadratwurzel<br />

von y konvergiert. H<strong>in</strong>weis: Bestimmen Sie <strong>die</strong> Fixpunkte der Iteration.<br />


176 10 NICHTLINEARE GLEICHUNGEN<br />

10.1 Term<strong>in</strong>ologie<br />

Def<strong>in</strong>ition 10.2 E<strong>in</strong> iteratives Verfahren x (k) ∈ R n , k ∈ N 0 , mit lim k→∞ x (k) = x hat <strong>die</strong><br />

Konvergenzordnung p ≥ 1, bezüglich des Fehlermaßes 145 ε k ≥ 0, k ∈ N, lim k→∞ ε k = 0<br />

wenn es e<strong>in</strong>e Konstante C > 0 gibt, so daß<br />

Ist p = 1, so muß außerdem C < 1 se<strong>in</strong>.<br />

lim sup<br />

k→∞<br />

ε k+1<br />

ε p k<br />

= C. (10.4)<br />

Anschaulich heißt das, daß ε k wir C ρ pk für e<strong>in</strong> 0 < ρ < 1 gegen Null konvergiert.<br />

Def<strong>in</strong>ition 10.3 Sei X e<strong>in</strong> metrischer Raum. E<strong>in</strong> iteratives Verfahren x (k) ∈ X, k ∈ N 0 ,<br />

heißt global konvergent, wenn es für jeden Startwert x (0) konvergiert und lokal konvergent,<br />

wenn es e<strong>in</strong>e offene Menge U ⊂ X gibt, so daß das Verfahren für alle Startwerte x (0) ∈ U<br />

konvergiert.<br />

10.2 Das Bisektionsverfahren<br />

Das e<strong>in</strong>fachste Verfahren zur Nullstellenbestimmung ist das Bisektionsverfahren, oder<br />

E<strong>in</strong>schlußverfahren, das e<strong>in</strong>e Nullstelle mit beliebiger Genauigkeit ermittelt, vorausgesetzt,<br />

man kennt Stellen, an der <strong>die</strong> Funktion e<strong>in</strong>en positiven und e<strong>in</strong>en negativen<br />

Wert hat. S<strong>in</strong>d also x (0) und y (0) so, daß 146<br />

f<br />

(<br />

x (0)) < 0,<br />

(<br />

f y (0)) > 0,<br />

dann setzen wir, für k ∈ N 0 ,<br />

z = x(k) + y (k)<br />

2<br />

{<br />

x (k+1) x<br />

(k)<br />

f(z) > 0,<br />

=<br />

z f(z) < 0,<br />

{ z f(z) > 0,<br />

y (k+1) =<br />

y (k) f(z) < 0.<br />

Ist zufällig f(z) = 0, dann haben wir ohneh<strong>in</strong> <strong>die</strong> Nullstelle gefunden.<br />

Satz 10.4 Ist f ∈ C[a, b] und s<strong>in</strong>d x (0) , y (0) ∈ [a, b] so daß<br />

(<br />

f x (0)) (<br />

< 0, f y (0)) > 0,<br />

(10.5)<br />

dann konvergieren <strong>die</strong> Folgen x (k) , y (k) , k ∈ N 0 , def<strong>in</strong>iert durch (10.5) von l<strong>in</strong>earer Ordnung<br />

gegen e<strong>in</strong>e Nullstelle x von f.<br />

145 ∥<br />

Normalerweise def<strong>in</strong>iert durch Abschätzungen der Form ε k ≥ ∥x (k) ∥<br />

− x∥.<br />

146 Wäre f an e<strong>in</strong>er der beiden Stellen = 0, dann können wir uns das Verfahren sparen!


10.2 Das Bisektionsverfahren 177<br />

%#<br />

%# Bisekt.m<br />

%# Bisektionsverfahren<br />

%# Daten:<br />

%# f Funktione<br />

%# x Startwert - f(x) < 0<br />

%# y Startwert - f(y) > 0<br />

%# t Toleranz<br />

function xx = Bisekt( f,x,y,t )<br />

while norm( x - y ) > t<br />

z = .5 * ( x + y );<br />

fz = feval( f,z );<br />

if fz > 0<br />

y = z;<br />

else<br />

x = z;<br />

end<br />

end<br />

xx = x;<br />

%endfunction<br />

Programm 10.1 Bisekt.m: Das Bisektionsverfahren.


178 10 NICHTLINEARE GLEICHUNGEN<br />

Bemerkung 10.5 (Bisektionsverfahren)<br />

1. Der große Vorteil des Bisektionsverfahrens ist se<strong>in</strong>e E<strong>in</strong>fachheit: Es ist fast schon trivial<br />

zu programmieren und verlangt auch ke<strong>in</strong>e großen mathematischen Fähigkeiten, was es<br />

besonders populär macht.<br />

2. Die Konvergenzaussage gilt 147 nicht nur für Intervalle, sondern für beliebige konvexe<br />

metrische Räume, also <strong>in</strong>sbesondere für Funktionen f ∈ C (R n ). Damit ist es auch besonders<br />

flexibel, weil man nicht viel von f wissen muss, Hauptsache, f kann ausgewertet<br />

werden.<br />

3. Man kann sogar zeigen, daß für <strong>die</strong> Nullstellensuche bei beliebigen stetigen Funktionen<br />

das Bisektionsverfahren optimal ist – es gibt ke<strong>in</strong>e bessere Konvergenzrate. Allerd<strong>in</strong>gs<br />

liegt das nicht daran, daß das Bisektionsverfahren so genial ist, sondern daran, daß <strong>die</strong><br />

stetigen Funktionen so e<strong>in</strong>e große Klasse bilden und daß man für ”<br />

bessere“ Verfahren<br />

immer e<strong>in</strong>e h<strong>in</strong>reichend pathologische stetige Funktion f<strong>in</strong>den kann, bei der Bisektion<br />

dann doch wieder besser abschneidet.<br />

4. Der hauptsächliche Nachteil ist <strong>die</strong> relativ langsame, ”<br />

nur“ l<strong>in</strong>eare Konvergenz, <strong>die</strong> im<br />

wesentlichen unabhängig von der Funktion ist. Auf der anderen Seite ist <strong>die</strong>se ”<br />

Unabhängigkeit“<br />

aber auch genau der Grund, warum das Bisektionsverfahren optimal auf<br />

der Klasse der stetigen Funktionen ist.<br />

5. Außerdem muß man zuerst e<strong>in</strong>mal e<strong>in</strong> Intervall f<strong>in</strong>den, <strong>in</strong> dem e<strong>in</strong> Vorzeichenwechsel<br />

stattf<strong>in</strong>det. S<strong>in</strong>d <strong>in</strong> <strong>die</strong>sem Intervall dann mehrere Nullstellen, wird es schwer, vorherzusagen,<br />

welche Nullstelle gefunden wird.<br />

Beweis von Satz 10.4: Wir können ohne E<strong>in</strong>schränkung annehmen, daß x (0) < y (0)<br />

ist 148 , und halten fest, daß das Bisekstionsverfahren ausgehend von a 0 = x (0) und<br />

b 0 = y (0)<br />

• entweder Intervalle I k = [a k , b k ] bestimmt, so daß g (a k ) < 0, g (b k ) > 0 und<br />

|b k − a k | = 2 −k (b − a),<br />

• oder abbricht, weil g (a k ) = 0 oder g (b k ) = 0 (oder beides) für e<strong>in</strong> k > 0 ist.<br />

Da g stetig ist, gibt es nach dem Zwischenwertsatz im ersten Fall 149 immer e<strong>in</strong>e Nullstelle<br />

t k ∈ (a k , b k ), und da<br />

t k − a k ≤ b k − a k ≤ b − a<br />

2 k sowie b k − t k ≤ b k − a k ≤ b − a<br />

2 k<br />

147 Ohne echten Mehraufwand im Beweis.<br />

148 Andernfalls funktioniert der Beweis ganz genauso!<br />

149 Und nur der ist <strong>in</strong>teressant, denn im zweiten Fall haben wir ja schon e<strong>in</strong>e Nullstelle gefunden.


10.3 Regula falsi und das Sekantenverfahren 179<br />

ist, konvergieren sogar beide Folgen gegen e<strong>in</strong>e 150 Nullstelle. Die l<strong>in</strong>eare Konvergenzordnung<br />

ergibt sich aus dem Fehlermaß ε k = |b k − x ∗ | bzw. ε k = |a k − x ∗ | als<br />

ist.<br />

|b k+1 − x ∗ |<br />

|b k − x ∗ |<br />

∼ |a k+1 − x ∗ |<br />

|a k − x ∗ |<br />

∼ 1 2<br />

□<br />

10.3 Regula falsi und das Sekantenverfahren<br />

Das nächste Verfahren zur Nullstellenbestimmung ist e<strong>in</strong> ”<br />

Klassiker“, nämlich <strong>die</strong> Regula<br />

Falsi. Der Name stammt von Fibonacci (Leonardo Pisano, 13. Jhdt.), der sie aus im<br />

Arabischen als Elchataym kennenlernte und late<strong>in</strong>isch als<br />

regula duarum falsarum positionum<br />

bezeichnete. Bei ihm ist sie <strong>die</strong> Methode, mit der alle mathematischen Probleme gelöst<br />

werden können, siehe [39, Kap. 13, S. 447]. Zur Erklärung des Namens sagt laut [10,<br />

S. 245] der Rechenmeister Peter Bienewitz (1527)<br />

Vnd heisst nit darum falsi dass 151 sie falsch und unrecht wehr, sunder, dass sie auss<br />

zweyen falschen vnd vnwahrhaftigen zalen und zweyen lügen <strong>die</strong> wahrhaftige vnd<br />

begehrte zal f<strong>in</strong>den lernt.<br />

Typischerweise wurde <strong>die</strong> Regula Falsi <strong>in</strong> der Renaissance genutzt, um l<strong>in</strong>eare Gleichungen<br />

zu lösen, was sie <strong>in</strong> e<strong>in</strong>em Schritt tut – wir werden sie als Iterationsverfahren<br />

für beliebige nichtl<strong>in</strong>eare Gleichungen verwenden. Vorher aber e<strong>in</strong> Beispiel aus [32]:<br />

Item e<strong>in</strong>er spricht / Gott grüß euch Gesellen alle dreissig. Antwortet e<strong>in</strong>er / wann<br />

unser noch so viel und halb so viel weren / so weren unser dreissig. Die frag wie<br />

viel ihr gewesen 152 .<br />

So, jetzt aber aus der Spaß und zurück zur <strong>Mathematik</strong>. Die Regula Falsi ist nämlich<br />

e<strong>in</strong>e Verallgeme<strong>in</strong>erung des Bisektionsverfahrens: s<strong>in</strong>d x (k) und y (k) zwei Punkte mit<br />

(<br />

f x (k)) (<br />

f y (k)) < 0,<br />

dann unterteilt man nicht am Mittelpunkt des Intervalls<br />

Nullstelle z der Geraden l mit<br />

l<br />

(<br />

x (k)) = f<br />

(<br />

x (k)) ,<br />

(<br />

l y (k)) (<br />

= f y (k)) .<br />

[<br />

x (k) , y (k)] , sondern an der<br />

150 Vorsicht: nicht <strong>die</strong>! Man denke nur an e<strong>in</strong> ganzes Nullstellen<strong>in</strong>tervall im Inneren oder an <strong>die</strong> Nullstellen<br />

e<strong>in</strong>er Funktion wie x s<strong>in</strong><br />

x 1 <strong>in</strong> der Nähe der Null.<br />

151 Was zeigt, wie progressiv <strong>die</strong> Rechtschreibreform 1999 wirklich war.<br />

152 Für <strong>die</strong>, <strong>die</strong> es nicht gleich begriffen haben: Zu lösen ist <strong>die</strong> Gleichung<br />

2 5 x = 30 und tatsächlich<br />

kommt – nach Adam Riese eben – auch 12 heraus.


180 10 NICHTLINEARE GLEICHUNGEN<br />

Da<br />

l<br />

ist<br />

(<br />

(1 − α) x (k) + α y (k)) = (1 − α) l<br />

z = (1 − α) x (k) + α y (k) , α =<br />

und der Iterationsschritt ist wie beim Bisektionsverfahren<br />

⎧<br />

(<br />

⎨<br />

x (k+1) x (k) f x (k)) ⎧<br />

f(z) > 0,<br />

⎨<br />

=<br />

(<br />

⎩ z f x (k)) y (k+1) =<br />

f(z) < 0,<br />

⎩ z<br />

(<br />

x (k)) (<br />

+ α l y (k)) (<br />

= (1 − α) f x (k)) + α f<br />

(y (k))<br />

f<br />

(x (k))<br />

f ( x (k)) − f ( y (k)),<br />

(10.6)<br />

y (k)<br />

(<br />

f y (k)) f(z) > 0,<br />

(<br />

f y (k)) f(z) < 0.<br />

(10.7)<br />

Übrigens wurde <strong>die</strong> Regula Falsi auch dazu benutzt, Gleichungen <strong>in</strong> zwei Unbekanx0<br />

x1 x2<br />

y0<br />

Abbildung 10.2: Geometrische Interpretation der Regula Falsi.<br />

nten zu lösen. Hier e<strong>in</strong> Beispiel aus [32]:<br />

Item / zween wöllen e<strong>in</strong> Pferdt kaufen / Als A. vnd B. für 15. fl. Spricht A. zum<br />

B. gib mir de<strong>in</strong>es gelts e<strong>in</strong> drittheil / so will ich me<strong>in</strong>s darzu thun / vnd das Pferdt<br />

bezahlen. Spricht B. zum A. gib mir von de<strong>in</strong>em gelt e<strong>in</strong> viertheil / so wil ich<br />

mit me<strong>in</strong>em gelt h<strong>in</strong>zu das pferdt bezahlen. Nun frage ich / wie viel jeglicher <strong>in</strong><br />

sonderheit gelts hab? 153<br />

Übung 10.2 Zeigen Sie, daß <strong>die</strong> Regula Falsi <strong>in</strong> e<strong>in</strong>em reellen Intervall konvergiert und<br />

Konvergenzordnung 1 hat.<br />

♦<br />

153 Also x + 1 3 y = 1 10<br />

4x + y = 15 und damit x = 10<br />

11 und y = 12 11 3 . Die wesentlich <strong>in</strong>teressantere Frage,<br />

wie man 10<br />

11 beziehungsweise 11 3 e<strong>in</strong>er Währung bestimmt oder erhält, wird von Adam Riese leider<br />

nicht beantwortet.


10.3 Regula falsi und das Sekantenverfahren 181<br />

Allerd<strong>in</strong>gs erbt <strong>die</strong> Regula Falsi immer noch e<strong>in</strong> Problem des Bisektionsverfahrens:<br />

Um konvergieren zu können, brauchen wir Startwerte x (0) und y (0) , an denen f verschiedene<br />

Vorzeichen hat. Das Sekantenverfahren umgeht <strong>die</strong>ses Problem, <strong>in</strong>dem man<br />

zur Berechnung von x (k+1) <strong>die</strong> Gerade (Sekante!) verwendet, <strong>die</strong> f an den Stellen x (k−1)<br />

und x (k) <strong>in</strong>terpoliert. Die Regel lautet also<br />

x (k+1) = x (k) −<br />

x (k) − x (k−1) (<br />

f ( x (k)) − f ( x (k−1)) f x (k)) , (10.8)<br />

ihre Herleitung ist wie <strong>die</strong> von (10.6). Das Schöne am Sekantenverfahren ist nun, daß<br />

x0 x1<br />

x3<br />

x2<br />

Abbildung 10.3: Geometrische Interpretation des Sekantenverfahrens.<br />

es lokal konvergent mit e<strong>in</strong>er höheren Konvergenzordnung als 1 ist.<br />

Satz 10.6 Es sei x ∈ R e<strong>in</strong>e e<strong>in</strong>fache Nullstelle von f ∈ C 2 (U x ) für e<strong>in</strong>e offene Umgebung<br />

U x von x. Dann ist das Sekantenverfahren (<br />

lokal konvergent gegen x und <strong>die</strong> Konvergenzordnung<br />

ist m<strong>in</strong>destens p = 1 2<br />

1 + √ )<br />

5 .<br />

(<br />

Die Zahl p = 1 2<br />

1 + √ )<br />

5 heißt Goldener Schnitt und ist der Grenzwert zweier aufe<strong>in</strong>anderfolgender<br />

Fibonacci–Zahlen. Der goldene Schnitt spielt als Proportion e<strong>in</strong>e (mehr<br />

oder weniger) zentrale und oft überschätzte Rolle <strong>in</strong> Kunst und Architektur, aber auch<br />

<strong>in</strong> der Natur.<br />

Beweis: Für ε > 0 bezeichne<br />

B ε (x) = {y ∈ R : |y − x| < ε}<br />

<strong>die</strong> Kugel vom Radius ε um x. Wir wählen ε so kle<strong>in</strong>, daß B ε (x) ⊆ U x ; dann gilt für <strong>die</strong><br />

Zahl<br />

M ε = max<br />

f ′′ (y)<br />

∣2f ′ (y ′ ) ∣ ,<br />

y,y ′ ∈B ε (x)


182 10 NICHTLINEARE GLEICHUNGEN<br />

daß<br />

lim M ε =<br />

ε→0<br />

f ′′ (x)<br />

∣2f ′ (x) ∣ < ∞.<br />

Also gibt es e<strong>in</strong> ε 0 , so daß für alle ε < ε 0<br />

B ε (x) ⊆ U x und εM ε =: γ < 1 und 0 ̸∈ f ′ (B ε (x)) .<br />

Wir fixieren nun e<strong>in</strong> solches ε < ε 0 . Dann ist aber x <strong>die</strong> e<strong>in</strong>zige Nullstelle von f <strong>in</strong> B ε (x):<br />

Die Taylor–Formel um x für y ∈ B ε (x)<br />

liefert<br />

also<br />

f(y) = f(x) + (y − x) f ′ (x) +<br />

}{{}<br />

=0<br />

|f(y)| ≥ |y − x| ∣ ∣ f ′ (x) ∣ ∣<br />

(<br />

f(y) = (y − x) f ′ (x)<br />

(<br />

1 −<br />

∣<br />

y − x<br />

2<br />

=1/[x (k−1) ,x (k) ]f<br />

(y − x)2<br />

f ′′ (ξ),<br />

2<br />

f ′′ (ξ)<br />

f ′ (x)<br />

1 + y − x<br />

2<br />

ξ ∈ [x, y] ⊂ B ε (x),<br />

f ′′ )<br />

(ξ)<br />

f ′ ,<br />

(x)<br />

)<br />

∣ > |y − x| ∣ f ′ (x) ∣ (1 − εM ε ) > 0.<br />

Wir starten nun mit x (0) , x (1) ∈ B ε (x) und iterieren nach (10.8). Dann gilt für k ∈<br />

N unter Verwendung der divi<strong>die</strong>rten Differenzen, siehe Def<strong>in</strong>ition 8.18, solange 154<br />

x (k−1) , x (k) ̸= x<br />

x (k+1) − x = x (k) x (k) − x (k−1) (<br />

−<br />

f ( x (k)) − f ( x<br />

} {{ (k−1)) f x (k)) f<br />

(x (k))<br />

− x = x (k) − x − [<br />

x<br />

}<br />

(k−1) , x (k)] f<br />

=<br />

=<br />

(<br />

x (k) − x) ⎛ f<br />

⎝1 −<br />

(<br />

x (k) − x) ⎛ ⎝1 −<br />

(<br />

x (k)) ⎞<br />

− f(x) 1<br />

[<br />

x (k) − x x (k−1) , x (k)] ⎠<br />

f<br />

[ ] ⎞<br />

x (k) , x f<br />

[<br />

x (k−1) , x (k)] ⎠<br />

f<br />

=<br />

=<br />

( ) ( )<br />

x (k) − x x (k−1) − x<br />

[<br />

x (k−1) , x (k)] f<br />

[<br />

x (k−1) , x (k)] [ ]<br />

f − x (k) , x f<br />

x (k−1) − x<br />

} {{ }<br />

=[x (k−1) ,x (k) ,x]f<br />

[<br />

]<br />

( ) ( ) x (k−1) , x (k) , x f<br />

x (k) − x x (k−1) − x [<br />

x (k−1) , x (k)] f<br />

154 Ansonsten s<strong>in</strong>d wir sowieso fertig und haben <strong>die</strong> Nullstelle gefunden!


10.3 Regula falsi und das Sekantenverfahren 183<br />

S<strong>in</strong>d nun x (k−1) , x (k) ∈ B ε (x), dann ist<br />

[<br />

x (k−1) , x (k)] f = f ′ (ξ 1 ) ,<br />

[<br />

]<br />

x (k−1) , x (k) , x f = 1 2 f′′ (ξ 2 ) ,<br />

ξ 1 , ξ 2 ∈ B ε (x),<br />

und damit ist<br />

∣<br />

∣x (k+1) ∣<br />

− x∣ = ∣x (k) ∣<br />

− x∣<br />

∣x (k−1) − x∣<br />

} {{ } } {{ }<br />

≤ε ≤ε<br />

f ′′ (ξ 2 )<br />

∣2f (ξ 1 ) ∣<br />

} {{ }<br />

≤ ε 2 M ε < ε, (10.9)<br />

≤M ε<br />

also ist auch x (k+1) ∈ B ε (x). Außerdem ist<br />

∣ ∣<br />

∣x (k+1) ∣∣x<br />

− x∣ ≤ εM (k) ∣ ε − x∣ ≤ (εM ε ) 2 ∣x (k−1) ∣ − x∣ ≤ · · · ≤ γ k+1 ∣x (0) − x∣,<br />

} {{ }<br />

≤ε<br />

und deswegen konvergiert <strong>die</strong> Folge x (k) → x für k → ∞.<br />

Bleibt noch <strong>die</strong> Konvergenzordnung. Dazu können wir annehmen, daß x (k) ̸= x,<br />

k ∈ N 0 , denn ∣ sonst hätten wir ja Konvergenz nach endlich vielen Schritten. Wir def<strong>in</strong>ieren<br />

∣∣x<br />

E k = M (k) ∣<br />

ε − x∣, k ∈ N, und erhalten aus (10.9), daß<br />

∣ ∣∣x<br />

E k+1 = M (k+1) ε − x∣ ≤ M 2 ε<br />

∣<br />

∣x (k) − x<br />

∣<br />

∣<br />

∣x (k−1) − x<br />

∣ ≤ E k E k−1 .<br />

{ }<br />

Mit E = max E 0 , E 1/p<br />

1<br />

ist E k ≤ E pk für k = 0, 1, und generell folgt für k ≥ 1 unter<br />

Verwendung der Identität 155 p 2 = p + 1, daß<br />

Also ist<br />

und damit<br />

E k+1 ≤ E k E k−1 ≤ E pk +p k−1 = E pk−1 (p+1) = E pk−1 p 2 = E pk+1 .<br />

∣<br />

∣x (k) − x∣ = E k<br />

≤ Epk<br />

=: ε k<br />

M ε M ε<br />

ε k+1<br />

ε p k<br />

= M p−1<br />

ε .<br />

Zum Abschluß <strong>die</strong>ses Abschnitts noch e<strong>in</strong>e ”<br />

Gebrauchsanweisung“ für <strong>die</strong> Regula Falsi,<br />

natürlich wieder von Adam Riese persönlich [32, S. 57,58]:<br />

Regula Falsi oder Position.<br />

Wirdt gefaßt von zweyen falschen zahlen / welche der auffgab nach / mit fleiß exam<strong>in</strong>irt<br />

sollen werden / <strong>in</strong> massen das fragstück begeren ist / sagen sie der warheit<br />

155 Sie def<strong>in</strong>iert den goldenen Schnitt.<br />


184 10 NICHTLINEARE GLEICHUNGEN<br />

zu viel / so bezeichne sie mit dem zeichen + plus / wo aber zu wenig / so beschreib<br />

sie mit dem zeichen − m<strong>in</strong>us genannt. Als dann nimb e<strong>in</strong> lügen von der andern<br />

/ was da bleibt / behalt für den theiler / multiplicir darnach im Creuz e<strong>in</strong> falsche<br />

zahl mit der andern lügen / nimb e<strong>in</strong>s vom andern / vnd das da bleibt theil ab mit<br />

fürgemachtem theiler / so kompt berichtung der frag.<br />

10.4 Das Newton–Verfahren und Fixpunktiterationen<br />

Das Sekantenverfahren kann für beliebige stetige Funktionen durchgeführt werden –<br />

<strong>die</strong> zweimalige stetige Differenzierbarkeit brauchen wir ”<br />

nur“, um <strong>die</strong> Konvergenz<br />

und <strong>die</strong> Konvergenzordnung zu beweisen. Ist f ∈ C 1 (R) (beziehungsweise auf e<strong>in</strong>em<br />

Intervall, <strong>in</strong> dem <strong>die</strong> Nullstellensuche durchgeführt werden soll), dann kann man <strong>die</strong><br />

Sekante auch durch <strong>die</strong> Tangente an f <strong>in</strong> x (k) ersetzen und mit deren Nullstelle weiteriterieren.<br />

Die Iterationsvorschrift lautet jetzt also<br />

x0<br />

x2<br />

x1<br />

Abbildung 10.4: Geometrische Interpretation des Newton–Verfahrens.<br />

f<br />

(x (k))<br />

x (k+1) = x (k) −<br />

f ′ ( x (k)), k ∈ N 0, x (0) ∈ R; (10.10)<br />

offensichtlich gibt es Schwierigkeiten an Punkten mit Ableitung 0, also mit horizontaler<br />

Tangente. Die ist nicht unerwartet, denn Geraden, <strong>die</strong> parallel zur x–Achse verlaufen,<br />

lassen sich sehr schwer mit selbiger schneiden. Die Konvergenzaussage für das<br />

Newton–Verfahren ist sogar noch besser als für das Sekantenverfahren.<br />

Satz 10.7 Es sei x ∈ R e<strong>in</strong>e e<strong>in</strong>fache Nullstelle von f ∈ C 2 (U x ) für e<strong>in</strong>e offene Umgebung<br />

U x von x. Dann ist das Newton–Verfahren lokal quadratisch konvergent gegen x.


10.4 Das Newton–Verfahren und Fixpunktiterationen 185<br />

Beweis: Die Bestimmung von M ε ist genau wie im Beweis von Satz 10.6. Über <strong>die</strong><br />

verallgeme<strong>in</strong>erte Def<strong>in</strong>ition 156 der divi<strong>die</strong>rten Differenzen mit mehrfachen Knoten,<br />

[x, . . . , x]f := f(n) (x)<br />

,<br />

} {{ } n!<br />

n+1<br />

ist nun ganz analog<br />

f<br />

(x (k)) (<br />

x (k+1) − x = x (k) − x −<br />

f ′ ( x (k)) = x (k) − x) ⎛ (<br />

f x (k)) ⎞<br />

− f(x)<br />

⎝1 − (<br />

x (k) − x ) f ′ ( x (k)) ⎠<br />

(<br />

= x (k) − x) ⎛ [ ] ⎞<br />

x (k) , x f<br />

⎝1 − [<br />

x (k) , x (k)] ⎠<br />

f<br />

=<br />

=<br />

( ) 2 [<br />

x (k) − x x (k) , x (k)] [ ]<br />

]<br />

f − x (k) , x f<br />

) 2<br />

[x<br />

[<br />

x (k) , x (k)] (<br />

(x (k)<br />

f x (k) − x ) , x (k) , x f<br />

= (k) − x [<br />

x (k) , x (k)] f<br />

( ) 2 f<br />

x (k) ′′ (ξ 2 )<br />

− x<br />

2f ′ (ξ 1 ) .<br />

Der übrige Konvergenzbeweis läuft wieder wie bei Satz 10.6, <strong>die</strong> Konvergenzordnung<br />

ergibt sich aus<br />

∣<br />

∣x (k+1) − x∣<br />

∣ ∣∣∣<br />

lim<br />

k→∞ ∣ x (k) − x ∣ 2 = f ′′ (x)<br />

2f ′ (x) ∣ .<br />

Das Newton–Verfahren ist e<strong>in</strong>e Iteration der Form<br />

(<br />

x (k+1) = Φ x (k)) , k ∈ N 0 , (10.11)<br />

und das Auff<strong>in</strong>den e<strong>in</strong>er Nullstelle von f bedeutet nichts anderes, als e<strong>in</strong>en Fixpunkt<br />

von Φ zu f<strong>in</strong>den. Das heißt, falls f ′ (x) ̸= 0, dann ist<br />

f(x) = 0 ⇔ x = Φ(x) := x − f(x)<br />

f ′ (x) .<br />

Die ”<br />

Standardaussage“ über <strong>die</strong> Existenz e<strong>in</strong>es Fixpunkts ist der folgende Satz, den wir<br />

jetzt, als Gegenstück zu der Version aus Satz 6.2 mal für allgeme<strong>in</strong>e metrische Räume<br />

formulieren 157 .<br />

156 Diese Erweiterung ist konsistent! Siehe Korollar 8.23.<br />

157 Den Banachschen Fixpunktsatz kann man gar nicht oft genug beweisen und e<strong>in</strong>e schöne Wiederholung<br />

ist’s allemal.<br />


186 10 NICHTLINEARE GLEICHUNGEN<br />

Satz 10.8 (Banachscher Fixpunktsatz, metrisch)<br />

und Φ : X → X e<strong>in</strong>e Kontraktion, das heißt,<br />

Sei X e<strong>in</strong> vollständiger metrischer Raum<br />

d (Φ(x), Φ(y)) ≤ γ d(x, y), 0 < γ < 1, x, y ∈ X.<br />

Dann besitzt Φ e<strong>in</strong>en e<strong>in</strong>deutig bestimmten ( Fixpunkt x ∗ = Φ (x ∗ ) und für jeden Startwert<br />

x (0) ∈ X konvergiert <strong>die</strong> Folge x (k+1) = Φ x (k)) , k ∈ N 0 , gegen x ∗ und es ist<br />

d<br />

(x ∗ , x (k)) ≤ γk (<br />

1 − γ d x (1) , x (0)) . (10.12)<br />

Beweis: Beg<strong>in</strong>nen wir mit der E<strong>in</strong>deutigkeit. Für zwei Fixpunkte x ∗ , y ∗ ∈ X ist<br />

d (x ∗ , y ∗ ) = d (Φ (x ∗ ), Φ (y ∗ )) ≤ γ d (x ∗ , y ∗ ) ⇒ x ∗ = y ∗ .<br />

Für <strong>die</strong> Existenz des Fixpunkts bemerken wir zuerst, daß für k ∈ N 0 ,<br />

(<br />

d x (k+1) , x (k)) ( (<br />

= d Φ x (k)) (<br />

, Φ x (k−1))) ≤ γ d<br />

und somit, für m > 0,<br />

(<br />

d x (k+m) , x (k)) m−1 ∑<br />

≤<br />

j=0<br />

(<br />

d x (k+j+1) , x (k+j)) ≤ γ k d<br />

(<br />

x (k) , x (k−1)) ≤ · · · ≤ γ k d<br />

(x (1) , x (0)) m−1 ∑<br />

j=0<br />

γ j ≤<br />

(<br />

x (1) , x (0)) ,<br />

γk (<br />

1 − γ d x (1) , x (0)) ,<br />

also ist x (k) , k ∈ N 0 , e<strong>in</strong>e Cauchyfolge, <strong>die</strong> wegen der Vollständigkeit 158 von X gegen<br />

e<strong>in</strong>en Grenzwert x ∗ konvergiert, für den offensichtlich (10.12) gilt. Weil für beliebiges<br />

k ∈ N 0<br />

(<br />

d (Φ (x ∗ ), x ∗ ) ≤ d<br />

≤<br />

Φ (x ∗ ), Φ<br />

(1 + γ) d<br />

(<br />

x (k))) (<br />

+ d x (k+1) , x (k)) + d<br />

(<br />

x ∗ , x (k)) + γ k d<br />

(x (1) , x (0))<br />

(x ∗ , x (k))<br />

und weil <strong>die</strong> rechte Seite für k → ∞ gegen 0 konvergiert, ist x ∗ der gesuchte Fixpunkt.<br />

□<br />

Nun können wir e<strong>in</strong> e<strong>in</strong>faches Konvergenzkriterium für Fixpunktverfahren mit<br />

Funktionen Φ : R n → R n geben. Dafür er<strong>in</strong>nern wir uns an <strong>die</strong> Def<strong>in</strong>ition des Spektralradius<br />

e<strong>in</strong>er Matrix A ∈ R n×n als<br />

ρ(A) = max {|λ| : ker C n (A − λI) ̸= {0}} = lim <strong>in</strong>f<br />

k→∞<br />

∥<br />

∥A k∥ ∥1/k . (10.13)<br />

Außerdem bezeichnen wir <strong>die</strong> Jacobi–Matrix 159 e<strong>in</strong>er differenzierbaren Funktion Φ :<br />

R n → R n mit J [Φ]:<br />

[ ]<br />

∂Φj<br />

J [Φ] = : j, k = 1, . . . , n .<br />

∂x k<br />

158 Wie man sieht wird <strong>in</strong> <strong>die</strong>sem Bereich wirklich jede Voraussetzung gebraucht!<br />

159 Das ist nun schon <strong>die</strong> zweite Jacobi–Matrix, <strong>die</strong> hier auftaucht, aber, Kontext sei Dank, Verwechslungen<br />

sollten eigentlich ausgeschlossen se<strong>in</strong>.


10.4 Das Newton–Verfahren und Fixpunktiterationen 187<br />

Proposition 10.9 Ist Φ : R n → R n auf e<strong>in</strong>er offenen Menge U ⊂ R n stetig differenzierbar<br />

und gibt es e<strong>in</strong>en Fixpunkt x ∈(<br />

U, so daß x = Φ(x) und ρ (J [Φ] (x)) < 1, dann ist das<br />

Iterationsverfahren x (k+1) = Φ x (k)) , k ∈ N 0 , lokal konvergent gegen x.<br />

Beweis: Ist ρ (J [Φ] (x)) < 1, dann gibt es 160 e<strong>in</strong>e Vektornorm ‖·‖, so daß ‖J [Φ] (x)‖ < 1<br />

und wegen der stetigen Differenzierbarkeit von Φ und der Stetigkeit der Norm gibt es<br />

für jedes ‖J [Φ] (x)‖ < γ < 1 e<strong>in</strong> ε > 0, so daß<br />

sup ‖J [Φ] (y)‖ < γ.<br />

y∈B ε (x)<br />

Nach dem Hauptsatz der Differential- und Intgralrechnung ist für y, y ′ ∈ B ε (x)<br />

Φ(y) − Φ ( y ′) =<br />

=<br />

=<br />

∫ 1<br />

0<br />

∫ 1<br />

0<br />

∫ 1<br />

0<br />

d<br />

dt Φ ( y ′ + t ( y − y ′)) ∫ 1<br />

dt =<br />

0<br />

D y−y ′Φ ( ty + (1 − t)y ′) dt<br />

(<br />

J [Φ]<br />

(<br />

ty + (1 − t)y<br />

′ )) ( y − y ′) dt,<br />

d<br />

dt Φ ( ty + (1 − t)y ′) dt<br />

also<br />

∥ Φ(y) − Φ<br />

(<br />

y<br />

′ )∥ ∥ ≤ max<br />

ξ∈B ε (x) ‖J [Φ] (ξ)‖ ∥ ∥ y − y<br />

′ ∥ ∥ = γ<br />

∥ ∥y − y<br />

′ ∥ ∥ ,<br />

und damit ist Φ auf B ε (x) e<strong>in</strong>e Kontraktion, <strong>die</strong> nach Satz 10.8 für alle Startwerte x (0) ∈<br />

B ε (x) gegen den e<strong>in</strong>deutigen Fixpunkt x konvergiert. Nur der Vollständigkeit halber:<br />

Daß für x (0) ∈ B ε (x) <strong>die</strong> Folge x (k) immer <strong>in</strong> B ε (x) bleibt sieht man daran, daß<br />

(<br />

∥<br />

∥x (k+1) ∥<br />

− x∥ = ∥Φ x (k)) ∥<br />

− Φ (x) ∥ ≤ γ ∥x (k) − x∥ ≤ γ ε < ε.<br />

Übung 10.3 Zeigen Sie, daß es für jede Matrix A ∈ R n×n und zu jedem ε > 0 e<strong>in</strong>e<br />

Vektornorm ‖·‖ gibt, deren zugehörige Operatornorm <strong>die</strong> Bed<strong>in</strong>gung ‖A‖ < ρ(A) + ε<br />

erfüllt.<br />

♦<br />

Bemerkung 10.10 (Zu Proposition 10.9)<br />

1. Der Trick beim Konvergenzbeweis bestand dar<strong>in</strong>, <strong>die</strong> Norm so geeignet zu wählen, daß<br />

wir bezüglich <strong>die</strong>ser Norm e<strong>in</strong>e Kontraktion erhalten und so den Banachschen Fixpunktsatz<br />

anwenden können. Wegen der Äquivalenz aller Normen auf dem R n konvergiert<br />

dann das Newton–Verfahren aber auch für jede beliebige andere Norm.<br />

160 Siehe Übungsaufgabe 10.3.<br />


188 10 NICHTLINEARE GLEICHUNGEN<br />

2. Die Existenz e<strong>in</strong>es Fixpunkts muß angenommen werden und folgt nicht automatisch.<br />

Beispielsweise ist <strong>die</strong> Ableitung der Abbildung Φ(x) = x 2 + 1 auf dem Intervall ( −<br />

2 1, 2<br />

1 )<br />

kle<strong>in</strong>er als 1 und damit ist auch |Φ(x) − Φ(x)| < |x − y| für x, y ∈ ( − 1 2 , 1 2)<br />

, aber mit<br />

x (0) = 0 erhalten wir <strong>die</strong> divergente Iterationsfolge<br />

x (1) = 1, x (2) = 2, x (3) = 5, . . .<br />

(<br />

Die Funktion Φ(x) = x 2 − 1 hat h<strong>in</strong>gegen zwei Fixpunkte, nämlich 1 2<br />

1 ± √ )<br />

5 , aber<br />

ke<strong>in</strong>er von beiden liegt im Kontraktivitätsbereich. In <strong>die</strong>sem Fall erhalten wir ( sowohl oszillierende<br />

Folgen x (2k) = 0, x (2k+1) = −1, wie auch divergente: Ist x = 1 2<br />

1 ± √ )<br />

5 +<br />

y =: x 1 + y, y > 0, dann ist<br />

Φ(x) = −1 + x 2 1<br />

} {{ }<br />

=x 1<br />

+2x 1 y + y 2 = x 1 + 2x 1 y + y 2 > x 1 + 2y,<br />

und damit divergiert <strong>die</strong> Iteration für jeden Startwert ”<br />

rechts von“ x 1 – von lokaler Konvergenz<br />

kann also nicht <strong>die</strong> Rede se<strong>in</strong>.<br />

Man kann aus Fixpunktiterationen auch unter gewissen Voraussetzungen <strong>die</strong> Konvergenzordnung<br />

ablesen: Ist nämlich<br />

x = Φ(x) und D k Φ(x) = 0, k = 1, . . . , p − 1,<br />

aber<br />

∂x ∂p<br />

α Φ(x) ̸= 0 für m<strong>in</strong>destens e<strong>in</strong>en Multi<strong>in</strong>dex α ∈ N n 0<br />

, dann ist nach der Taylor–<br />

Formel<br />

(<br />

x (k+1) − x = Φ x (k)) − x<br />

=<br />

∑p−1<br />

∑ 1 ∂ j Φ<br />

( ) α<br />

α! ∂x α (x) x (k) − x + ∑<br />

j=1 |α|=j<br />

} {{ }<br />

=0<br />

|α|=p<br />

und wenn x (k) → x für k → ∞, dann ist<br />

∥<br />

∥x (k+1) ∥<br />

− x<br />

lim sup<br />

∥<br />

k→∞ x (k) − x ∥ p ∞<br />

1 ∂ p Φ<br />

(<br />

α! ∂x α (x)<br />

∥<br />

∞<br />

≤ max<br />

|α|=p<br />

∣<br />

( α ∥∥∥x x (k) − x)<br />

+ O (k) − x∥ p+1) ,<br />

∂ p Φ<br />

∂x α (x) ∣ ∣∣∣<br />

,<br />

was auf Konvergenzordnung ≥ p schließen lässt 161<br />

Mit <strong>die</strong>ser Theorie können wir jetzt auch das Newton–Verfahren für e<strong>in</strong> nichtl<strong>in</strong>eares<br />

Gleichungssystem, also unser F(x) = 0 aus (10.1), <strong>in</strong> Angriff nehmen. Ist nämlich<br />

F : R n → R n differenzierbar, so können wir <strong>die</strong> Iteration<br />

x (k+1) = x (k) − J −1 [F]<br />

(<br />

x (k)) F<br />

verwenden. Und siehe da – <strong>die</strong>ses Verfahren konvergiert!<br />

(<br />

x (k)) , k ∈ N 0 , x (0) ∈ R n , (10.14)<br />

161 Das ist nicht ganz konsistent mit unserer Def<strong>in</strong>ition von Konvergenzordnung, aber erstens machen<br />

es alle Bücher so und zweitens können alle <strong>die</strong> es nicht glauben, gerne <strong>die</strong> Details selbst ausarbeiten.


10.4 Das Newton–Verfahren und Fixpunktiterationen 189<br />

Satz 10.11 Ist F : R n → R n zweimal stetig differenzierbar und ist x ∈ R n e<strong>in</strong>e e<strong>in</strong>fache<br />

Nullstelle von F, das heißt,<br />

F(x) = 0, und det J[F](x) ̸= 0, (10.15)<br />

dann ist das Newton–Verfahren (10.14) lokal konvergent gegen x.<br />

Beweis: Nach Proposition 10.9 müssen wir ”<br />

nur“ zeigen, daß <strong>die</strong> Iterationsfunktion<br />

Φ(x) := x − J −1 [F] (x) F(x), x ∈ R n ,<br />

<strong>die</strong> Bed<strong>in</strong>gung ρ (J [Φ] (x)) < 1 erfüllt. Aus der zweimaligen Differenzierbarkeit von F<br />

werden wir sogar mehr bekommen, nämlich<br />

Da F zweimal stetig differenzierbar ist, ist für y ∈ R n<br />

F(x + y) = F(x)<br />

}{{}<br />

=0<br />

J [Φ] (x) = 0. (10.16)<br />

[ [ 1 ∂ 2 F l<br />

+J[F](x) y +<br />

2 yT<br />

( ) ] ]<br />

ξjk y : l = 1, . . . , n ,<br />

∂x j ∂x<br />

} k<br />

{{ }<br />

=:G(x,y)<br />

wobei ξ j,k ∈ [x, x + y], j, k = 1, . . . , n, und<br />

[ ∂ 2 F l<br />

( ) ] [ ∂ 2 ]<br />

F l<br />

lim ξjk = (x) =: H [F l ] (x), l = 1, . . . , n,<br />

y→0 ∂x j ∂x k ∂x j ∂x k<br />

weil F zweimal stetig differenzierbar ist 162 . Daraus können wir nun folgern, daß es e<strong>in</strong>e<br />

Konstante C > 0 gibt, so daß<br />

[ ‖G(x, y)‖ ∞<br />

≤ C max<br />

∂ 2 ]∥<br />

F l ∥∥∥∞<br />

l=1,...,n<br />

∥ (x) ‖y‖ 2 ∞<br />

∂x j ∂x . (10.17)<br />

k<br />

Damit erhalten wir, daß<br />

Φ(x + y) − Φ(x) = (x + y) − J −1 [F](x + y) F(x + y) − x + J −1 [F](x) F(x)<br />

(<br />

)<br />

= y − J −1 [F](x) (F(x + y) − F(x)) + J −1 [F](x) − J −1 [F](x + y) F(x + y)<br />

= y − J −1 [F](x) (J[F](x) y + G(x, (<br />

(F(x)<br />

+ J −1 [F](x) − J −1 [F](x + y))<br />

+J[F](ξ) y )<br />

}{{}<br />

=0<br />

(<br />

)<br />

= −J −1 [F](x) G(x, y) + J −1 [F](x) − J −1 [F](x + y) J[F](ξ) y,<br />

162 Die n × n–Matrix H [f] =<br />

[<br />

∂ 2 f<br />

∂x j ∂x k<br />

Matrix der skalarwertigen Funktion f.<br />

]<br />

: j, k = 1, . . . , n bezeichnet man (bekanntlich ?) als Hesse–


190 10 NICHTLINEARE GLEICHUNGEN<br />

wobei ξ ∈ [x, x + y]. Die Funktion J −1 [F] existiert <strong>in</strong> e<strong>in</strong>er Umgebung von x und ist dort<br />

differenzierbar (weil J[F] differenzierbar ist), also gibt es e<strong>in</strong>e Konstante D > 0, so daß<br />

∥<br />

∥J −1 [F](x) − J −1 [F](x + y) ∥ ≤ D ‖y‖ ∞<br />

,<br />

∞<br />

also ist, für h<strong>in</strong>reichend kle<strong>in</strong>e y<br />

(<br />

)<br />

∥ J −1 [F](x) − J −1 [F](x + y) J[F](ξ) y∥ ≤ (D + 2π) ‖J[F](x)‖ ∞ ‖y‖ 2 ∞ . (10.18)<br />

∞<br />

Aus (10.17) und (10.18) folgt nun, daß es e<strong>in</strong>e 163 Konstante E > 0 gibt, so daß<br />

‖Φ(x + y) − Φ(x)‖ ∞<br />

≤ E ‖y‖ 2 ∞<br />

⇒<br />

‖Φ(x + y) − Φ(x)‖ ∞<br />

‖y‖ ∞<br />

≤ E ‖y‖ ∞<br />

.<br />

Dies bedeutet aber nichts anderes als daß Φ an x differenzierbar ist und J[Φ](x) = 0. □<br />

Korollar 10.12 Das Newton–Verfahren (10.14) konvergiert für zweimal stetig differenzierbare<br />

Funktionen F lokal von quadratischer Ordnung gegen e<strong>in</strong>e e<strong>in</strong>fache Nullstelle x von F.<br />

Bemerkung 10.13 (Newtonverfahren)<br />

1. Die große Schwäche des Newtonverfahrens und letztlich aller Fixpunktiterationen ist <strong>die</strong><br />

nur lokale Konvergenz, weswegen <strong>die</strong> Wahl e<strong>in</strong>es guten Startwerts entscheidend ist. Im<br />

Falle e<strong>in</strong>es ”<br />

falschen“ Startwerts kann <strong>die</strong> Folge divergieren, oszillieren oder auch gegen<br />

e<strong>in</strong>e andere Nullstelle konvergieren.<br />

2. Die hier vorgestellten Newton–Verfahren reagieren sehr empf<strong>in</strong>dlich auf e<strong>in</strong>e doppelte<br />

Nullstellen, bei der zum<strong>in</strong>dest <strong>die</strong> Konvergenzordnung auf l<strong>in</strong>ear s<strong>in</strong>kt. Das an sich<br />

wäre ja noch zu verkraften, aber <strong>die</strong> fast waagerechten Tangenten <strong>in</strong> der Nähe der Lösung<br />

führen zu sehr kle<strong>in</strong>en Divisoren und zu e<strong>in</strong>er großen Empf<strong>in</strong>dlichkeit gegen Rundungsfehler.<br />

3. Bei der praktischen Ausführung des Newton–Verfahrens müssen Ableitungen oder, im<br />

Fall n > 1 e<strong>in</strong>e volle Jacobi–Matrix bestimmt werden. Das ist nicht so schlimm im Falle<br />

von Polynomen, deren Ableitungen beim Hornerschema e<strong>in</strong>fach mitberechnet werden<br />

können, bei komplizierteren Funktionen h<strong>in</strong>gegen muß man numerisch differenzieren,<br />

was den e<strong>in</strong>zelnen Iterationsschritt sehr aufwendig machen kann.<br />

4. Beim Broyden–Verfahren [6] wird <strong>die</strong>ses Problem umgangen, <strong>in</strong>dem man aus e<strong>in</strong>er<br />

näherungsweisen Jacobi–Matrix B k an x (k) über <strong>die</strong> Iteration<br />

(<br />

x (k+1) = x (k) − λ k B −1<br />

k F x (k))<br />

163 letzte . . .<br />

1<br />

B k+1 = B k +<br />

∥ x (k+1) − x (k)∥ ∥ 2 (∆F − B k ∆x) (∆x) T ,<br />

2


10.4 Das Newton–Verfahren und Fixpunktiterationen 191<br />

(<br />

e<strong>in</strong>e neue näherungsweise Jacobi–Matrix B k+1 bestimmt, wobei ∆F = F x (k+1)) −<br />

(<br />

F x (k)) und ∆x = x (k+1) − x (k) . Die Schrittweite λ k wird dabei über e<strong>in</strong> M<strong>in</strong>imierungsproblem<br />

bestimmt, wenn sie aber ”<br />

zu kle<strong>in</strong>“ wird, bleibt auch nichts anderes übrig, als B k+1<br />

durch numerische Differentiation zu bestimmen. Mehr Information hierzu f<strong>in</strong>det sich <strong>in</strong><br />

[41, S. 246–249] und vor allem auch <strong>in</strong> [26].<br />

5. Für n = 1 gibt es e<strong>in</strong>e e<strong>in</strong>fache Methode zur Konvergenzbeschleunigung von Iterationsverfahren,<br />

<strong>die</strong> auf Aitken zurückgeht. Setzt man ∆x (k) := x (k+1) − x (k) , und konvergiert<br />

<strong>die</strong> Folge x (k) mit Konvergenzordnung 164 ≥ 1 gegen x, dann konvergiert <strong>die</strong><br />

Folge<br />

(∆x (k)) 2<br />

(x (k+1) − x (k)) 2<br />

y (k) := x (k) −<br />

∆ 2 x (k)<br />

schneller gegen x, es gilt nämlich<br />

= x (k) −<br />

x (k+2) − 2x (k+1) + x (k)<br />

y (k) − x<br />

lim<br />

k→∞ x (k) − x = 0.<br />

Details f<strong>in</strong>den sich beispielsweise <strong>in</strong> [41, S. 274–279].<br />

E<strong>in</strong> paar ergänzende Anmerkung, zum e<strong>in</strong>en e<strong>in</strong> ”<br />

realistisches“ Beispiel für e<strong>in</strong> nichtl<strong>in</strong>eares<br />

System, zum anderen <strong>die</strong> Anwendung des Newtonverfahrens auf Polynome,<br />

f<strong>in</strong>den sich im Anhang unter A.5 und A.6.<br />

164 Achtung: Das bedeutet bereits exponentielle Konvergenz.


192 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

Das Erlernen der deutschen Sprache ist<br />

für das Gel<strong>in</strong>gen der Integration von<br />

zentraler Bedeutung und wird daher<br />

gefördert.<br />

Teilhabe- und Integrationsgesetz<br />

NRW, §2 (3)<br />

<strong>Numerische</strong> Integration und<br />

orthogonale Polynome 11<br />

In vielen praktischen Anwendungen steht man vor der Aufgabe, e<strong>in</strong> Integral zu berechnen.<br />

Leider lassen sich nur <strong>die</strong> wenigsten Funktionen, beispielsweise Polynome, wirklich<br />

explizit <strong>in</strong>tegrieren, für allgeme<strong>in</strong>ere Funktionen muß man numerische Methoden<br />

f<strong>in</strong>den.<br />

Das Ziel <strong>in</strong> <strong>die</strong>sem Abschnitt soll es se<strong>in</strong>, (eigentliche) Integrale der Form<br />

I(f) =<br />

∫ b<br />

a<br />

f(x) w(x) dx, w(x) ≥ 0, x ∈ [a, b], (11.1)<br />

bezüglich e<strong>in</strong>er stetigen 165 und nichtnegativen Gewichtsfunktion 166 w näherungsweise<br />

zu berechnen. Das “richtige” Kriterium ist hier nicht <strong>die</strong> Positivität oder Nichtnegativität<br />

der Gewichtsfunktion sondern <strong>die</strong> strikte Quadratpositivität für das Funktional<br />

167 I, <strong>die</strong> fordert, daß<br />

I(f 2 ) > 0, f ̸= 0. (11.2)<br />

Das und nichts anderes ist <strong>die</strong> Forderung, <strong>die</strong> man wirklich an <strong>die</strong> Gewichtsfunktion<br />

w stellt. Ist w stetig, so muss natürlich w ≥ 0 se<strong>in</strong> und w darf nicht zu oft den Wert<br />

Null annehmen, denn dann könnte es ja f ̸= 0 mit I ( f 2) = 0 geben.<br />

165 Der E<strong>in</strong>fachheit halber!<br />

166 Der bei weitem wichtigste Fall ist dabei natürlich w ≡ 1.<br />

167 E<strong>in</strong> Funktional ist e<strong>in</strong>e (l<strong>in</strong>eare) Abbildung von e<strong>in</strong>em Funktionenraum <strong>in</strong> e<strong>in</strong>en Körper.


11.1 Quadraturformeln 193<br />

11.1 Quadraturformeln<br />

Def<strong>in</strong>ition 11.1 E<strong>in</strong>e Quadraturformel Q n mit den Knoten 168 x 0 , . . . , x n und Verwendung<br />

der Gewichte w 0 , . . . , w n ist e<strong>in</strong> l<strong>in</strong>eares Funktional der Form<br />

Q n (f) =<br />

n∑<br />

w j f ( )<br />

x j , f ∈ C[a, b]. (11.3)<br />

j=0<br />

E<strong>in</strong>e Quadraturformel Q n hat Exaktheitsgrad m für e<strong>in</strong> Integral I, falls<br />

Q n (p) = I(p), p ∈ Π m . (11.4)<br />

Die Forderung f ∈ C[a, b] <strong>in</strong> (11.3) wird deswegen gemacht, daß <strong>die</strong> Punktauswertung<br />

überhaupt e<strong>in</strong>e s<strong>in</strong>nvolle Aktion auf f ist (e<strong>in</strong>e lediglich <strong>in</strong>tegrierbare Funktion kann<br />

man ja auf e<strong>in</strong>er Nullmenge beliebig abändern).<br />

Bemerkung 11.2 Oftmals fordert man, daß <strong>die</strong> Knoten der Quadraturformel alle im Intervall<br />

[a, b] liegen und daß <strong>die</strong> Gewichte alle nichtnegativ s<strong>in</strong>d. Im allgeme<strong>in</strong>en ist es aber nicht so<br />

e<strong>in</strong>fach, <strong>die</strong>se beiden Forderungen zu erfüllen, ironischerweise passiert <strong>die</strong>s aber automatisch<br />

bei den “besten” Quadraturformeln, der sogenannten Gauß–Quadratur 169 .<br />

Def<strong>in</strong>ition 11.3 Die Momente µ j , j ∈ N 0 , des Integrals I s<strong>in</strong>d def<strong>in</strong>iert als<br />

(<br />

µ j = I (·) j) ∫ b<br />

= x j w(x) dx.<br />

a<br />

Analog def<strong>in</strong>iert man <strong>die</strong> Momente der Quadraturformel als γ n,j = Q n<br />

(<br />

(·)<br />

j ) .<br />

Was br<strong>in</strong>gt uns nun <strong>die</strong>ser Exaktheitsgrad? Auf alle Fälle e<strong>in</strong>mal Abschätzungen der<br />

Approximationsgüte der Quadraturformel. Zu <strong>die</strong>sem Zweck def<strong>in</strong>ieren wir das Fehlerfunktional<br />

E n (f) = I(f) − Q n (f), f ∈ C [a, b] ,<br />

und erhalten <strong>die</strong> folgende (e<strong>in</strong>fache) Aussage.<br />

Proposition 11.4 Ist Q n e<strong>in</strong>e Quadraturformel für I vom Exaktheitsgrad m ≥ 0 mit nichtnegativen<br />

Gewichten und ist f ∈ C m+1 [a, b], dann ist<br />

|E n (f)| ≤ 2µ 0<br />

(b − a) m+1<br />

(m + 1)!<br />

∥<br />

∥f (m+1)∥ ∥ ∥∞ (11.5)<br />

168 Schon wieder e<strong>in</strong>e doppelte Benutzung desselben Begriffs, aber ”<br />

Knoten“ ist <strong>in</strong> der Quadraturtheorie<br />

absolut Standard und alles andere wäre nur gekünstelt.<br />

169 Dazu aber später noch mehr.


194 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

Beweis: Ist p ∈ Π m e<strong>in</strong> beliebiges Polynom, dann ist<br />

|E n (f)| = |I(f) − Q n (f)| = ∣ I(f) −I(p) + Qn (p) −Q<br />

} {{ } n (f) ∣ = |I(f − p) − Qn (f − p)|<br />

=0<br />

≤ |I(f − p)| + |Q n (f − p)|<br />

n∑ ∣ ( ) ( )∣<br />

≤ |f(x) − p(x)| w(x) dx + w j ∣f xj − p xj ∣<br />

≤<br />

∫ b<br />

a<br />

⎛<br />

⎝<br />

∫ b<br />

a<br />

w(x) dx +<br />

n∑<br />

w j<br />

⎞<br />

⎠<br />

j=0<br />

‖f − p‖ ∞<br />

,<br />

j=0<br />

=2µ 0<br />

} {{ }<br />

da<br />

µ 0 = I(1) = Q n (1) =<br />

n∑<br />

w j .<br />

j=0<br />

Wählt man p als das Interpolationspolynom an irgendwelchen Punkten 170 ξ 0 , . . . , ξ m ∈<br />

[a, b] und verwendet man <strong>die</strong> Fehlerformel<br />

f(x) − L m f(x) = f(m+1) (ξ)<br />

(m + 1)! (x − ξ 0) · · · (x − ξ m ) , x, ξ ∈ [a, b],<br />

aus (8.24), so ergibt sich (11.5).<br />

□<br />

Bemerkung 11.5 (Exaktheit)<br />

1. Ist [a, b] = [−1, 1], so kann man sogar <strong>die</strong> Tschebyscheffknoten zur Interpolation verwenden<br />

und erhält <strong>die</strong> wesentlich bessere Abschätzung<br />

1<br />

∥<br />

|E n (f)| ≤ 2µ 0<br />

2 m ∥f (m+1)∥ ∥ ∥∞ .<br />

(m + 1)!<br />

Außerdem kann man ja immer das Intervall [a, b] auf [−1, 1] transformieren, <strong>in</strong>dem man<br />

<strong>die</strong> Variable t = 2 x−a<br />

b−a − 1 e<strong>in</strong>führt.<br />

2. Der Beweis zeigt auch, daß<br />

|E n (f)| ≤ 2µ 0 m<strong>in</strong><br />

p∈Π m<br />

‖f − p‖ ∞<br />

→ 0<br />

für wachsendes m, nach dem Satz von Weierstraß, Satz 8.3.<br />

170 Natürlich gilt: Je besser <strong>die</strong> Punkte, desto besser <strong>die</strong> Abschätzung.


11.1 Quadraturformeln 195<br />

3. Die e<strong>in</strong>zige Konstante, <strong>die</strong> <strong>in</strong> (11.5) e<strong>in</strong>geht, ist µ 0 , e<strong>in</strong> Wert, der nur vom Integral selbst<br />

abhängt. F<strong>in</strong>det man also für e<strong>in</strong> vorgegebenes Integral I Quadraturformeln von hohem<br />

Exaktheitsgrad, dann kann man für “gute” Funktionen auch auf e<strong>in</strong>e gute näherungsweise<br />

Berechnung des Integrals hoffen, vorausgesetzt, man erfüllt <strong>die</strong> Bed<strong>in</strong>gung an <strong>die</strong> Nichtnegativität<br />

der Gewichte. Anderfalls erhielte man <strong>in</strong> (11.5) e<strong>in</strong>en Term der Form<br />

n∑<br />

∣<br />

∣ wj j=0<br />

und der hängt nun leider sehr wohl von der Quadraturformel ab und kann noch dazu<br />

sehr stark wachsen.<br />

Gute Quadraturformeln wären nach Proposition 11.4 also solche, <strong>die</strong> nichtnegative<br />

Gewichte und hohen Exaktheitsgrad haben. Dabei gibt es natürlich E<strong>in</strong>schränkungen<br />

bezüglich der Anzahl der Knoten.<br />

Proposition 11.6 (Exaktheitsgrad von Quadraturformeln)<br />

Für e<strong>in</strong> Integral I gilt:<br />

1. Jede Quadraturformel Q n für I mit n + 1 Knoten hat höchstens Exaktheitsgrad 2n + 1.<br />

2. Jede Quadraturformel Q n für I mit n + 1 Knoten und Exaktheitsgrad 2n hat positive<br />

Gewichte.<br />

Beweis: Sei ω(x) = (x − x 0 ) · · · (x − x n ). Dann ist ω 2 ∈ Π 2n+2 und es gilt 171<br />

(<br />

I ω 2) ∫ b<br />

= ω 2 (t) w(t) dt > 0 =<br />

a<br />

n∑<br />

w j ω 2 ( )<br />

x j = Qn<br />

(ω 2) ,<br />

was 1. beweist. Für 2. verwenden wir e<strong>in</strong>e Idee von Stieltjes 172 und setzen<br />

l j (x) = ∏ k̸=j<br />

j=0<br />

x − x k<br />

x j − x k<br />

, j = 0, . . . , n, x ∈ R,<br />

das heißt, es ist l j ∈ Π n und l j (x k ) = δ jk , j, k = 0, . . . , n. Hat nun <strong>die</strong> Quadraturformel<br />

(m<strong>in</strong>destens) Exaktheitsgrad 2n, dann ist<br />

0 <<br />

∫ b<br />

a<br />

l 2 j (t) w(t) dt = I (l 2 j<br />

) ( )<br />

= Q n l 2 j =<br />

n∑<br />

k=0<br />

w k l 2 j (x k)<br />

} {{ }<br />

= w j , j = 0, . . . , n.<br />

=δ jk<br />

171 Wäre I ( ω 2) = 0, dann wäre <strong>die</strong> “Gewichtsfunktion” w <strong>die</strong> Nullfunktion – <strong>die</strong>sen Trivialfall wollen<br />

wir ausschließen.<br />

172 Siehe [10, S. 163]<br />


196 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

Es gibt nun e<strong>in</strong>en “e<strong>in</strong>fachen” Weg, Quadraturformeln vom Exaktheitsgrad n zu bekommen,<br />

den wir auch im Beweis der vorhergehenden Proposition schon verwendet haben:<br />

Man verwendet Interpolation von f an den Punkten x 0 , . . . , x n durch e<strong>in</strong> Polynom vom<br />

Grad n, also<br />

n∑<br />

L n f(x) = f ( )<br />

x j lj (x), x ∈ R,<br />

und setzt<br />

Q n (f) = I (L n f) =<br />

=<br />

∫ b<br />

a<br />

⎛<br />

⎝<br />

j=0<br />

⎞<br />

n∑<br />

f ( )<br />

x j lj (t) ⎠ w(t) dt =<br />

j=0<br />

n∑<br />

I ( )<br />

l j f ( )<br />

x j .<br />

} {{ }<br />

=:w j<br />

j=0<br />

(<br />

n∑ ∫ )<br />

b<br />

l j (t)w(t) dt f ( )<br />

x j<br />

j=0<br />

a<br />

Die so erhaltenen Quadraturformeln bezeichnet man dann als <strong>in</strong>terpolatorisch. Da<br />

L n : C[a, b] → Π n e<strong>in</strong>e Projektion ist, ist L n p = p für alle p ∈ Π n und damit<br />

Q n (p) = I (L n p) = I(p),<br />

also hat Q n (m<strong>in</strong>destens) Exaktheitsgrad n. Nun haben <strong>die</strong>se Quadraturformeln eben<br />

im allgeme<strong>in</strong>en ke<strong>in</strong>e nichtnegativen Gewichte mehr.<br />

Def<strong>in</strong>ition 11.7 Sei I e<strong>in</strong> Integral und Q n e<strong>in</strong>e Quadraturformel dazu. Dann nennt man <strong>die</strong><br />

Quadraturformel Q n<br />

1. <strong>in</strong>terpolatorisch, wenn<br />

w j = I ( l j<br />

)<br />

, j = 0, . . . , n.<br />

2. Gauß–Formel, wenn Q n den maximalen Exaktheitsgrad 2n + 1 hat.<br />

Mit <strong>die</strong>ser Term<strong>in</strong>ologie können wir wie <strong>in</strong> alle Quadraturformeln Q n vom Exaktheitsgrad<br />

≥ n charakterisieren, siehe [10, Theorem 3.2.1].<br />

Satz 11.8 Seien I e<strong>in</strong> Integral und Q n e<strong>in</strong>e Quadraturformel dazu. Dann hat Q n genau dann<br />

den Exaktheitsgrad n + k, k = 0, . . . , n + 1, wenn Q n <strong>in</strong>terpolatorisch ist und<br />

0 = I (ω · p) =<br />

∫ b<br />

a<br />

ω(t) p(t) w(t) dt, p ∈ Π k−1 , ω(x) =<br />

n∏ ( )<br />

x − xj . (11.6)<br />

j=0<br />

Bemerkung 11.9 (Quadratur, Knoten und Exaktheit)


11.2 Klassische Formeln 197<br />

1. Gleichung (11.6) ist e<strong>in</strong>e Bed<strong>in</strong>gung an <strong>die</strong> Knoten x j , j = 0, . . . , n, <strong>die</strong> passend gewählt<br />

werden müssen, um Exaktheit größer als n zu liefern – Exaktheitsgrad n ist ja bei allen<br />

<strong>in</strong>terpolatorischen Formeln “e<strong>in</strong>gebaut”. Mehr zu <strong>die</strong>sem Thema <strong>in</strong> Kapitel 11.4.<br />

2. Wir können Satz 11.8 auch noch anders <strong>in</strong>terpretieren: Es ist <strong>die</strong> Bestimmung der Knoten,<br />

was zählt, <strong>die</strong> Gewichte ergeben sich für jede “halbwegs gute” Quadraturformel dann e<strong>in</strong>fach<br />

aus der Tatsache, daß <strong>die</strong>se <strong>in</strong>terpolatorisch se<strong>in</strong> muss. Und genau das ist ja auch<br />

das Thema bei der Gauß–Quadratur: Wie bestimmt man <strong>die</strong> optimalen Knoten?<br />

Beweis von Satz 11.8: Sei Q n e<strong>in</strong>e Quadraturformel vom Exaktheitsgrad n + k ≥ n.<br />

Insbesondere ist also für j = 0, . . . , n,<br />

I ( l j<br />

)<br />

= Qn<br />

(<br />

lj<br />

)<br />

=<br />

n ∑<br />

k=0<br />

w k l j (x k )<br />

} {{ }<br />

=δ jk<br />

= w j ,<br />

also ist Q n <strong>in</strong>terpolatorisch. Außerdem ist 173 für jedes p ∈ Π k−1 das Produkt 174 p · ω<br />

<strong>in</strong> Π n+k und verschw<strong>in</strong>det 175 an x j , j = 0, . . . , n. Wegen des Exaktheitsgrads k + n ist<br />

damit<br />

n∑<br />

I (ω · p) = Q n (ω · p) = w j (ω · p) ( )<br />

x j = 0,<br />

} {{ }<br />

j=0<br />

=0<br />

woraus auch (11.6) folgt.<br />

Sei nun Q n e<strong>in</strong>e <strong>in</strong>terpolatorische Quadraturformel für I, <strong>die</strong> (11.6) erfüllt und sei p ∈<br />

Π n+k . Wir schreiben p als 176 p = qω + L n p, und erhalten, daß<br />

I (p) = I (q · ω + L n p) = I (q · ω) + I (L<br />

} {{ } n p) = Q<br />

} {{ } n (p).<br />

=0 =Q n (L n p)<br />

11.2 Klassische Formeln<br />

Die “klassischen” Quadraturformeln für w ≡ 1 s<strong>in</strong>d <strong>die</strong> sogenannten Newton–Cotes–<br />

Formeln, <strong>die</strong> man durch Polynom<strong>in</strong>terpolation an gleichverteilten 177 Interpolationsknoten<br />

im Intervall [a, b] erhält. Diese Konstruktionen gehen tatsächlich für den Fall [a, b] =<br />

[−1, 1] und w ≡ 1 auf Newton (1687) bzw. Cotes 178 (1712) zurück. Setzt man<br />

h = b − a<br />

n<br />

und<br />

t = x − a<br />

h ,<br />

173 Mit der Konvention, daß Π −1 = {0}.<br />

174 Zur Er<strong>in</strong>nerung: ω ∈ Π n+1<br />

175 Ist k = 0, dann ist p = p · ω = 0.<br />

176 Diese kle<strong>in</strong>e Formel ist so e<strong>in</strong>fach wie genial: Algebraisch gesehen ist Polynom<strong>in</strong>terpolation also<br />

nichts anderes als der Rest bei Division durch das Knotenpolynom ω beziehungsweise, noch<br />

hochgestochener formuliert, <strong>die</strong> Normalform modulo des (Haupt-) Ideals 〈ω〉.<br />

177 Und <strong>die</strong>se Knotenwahl ist nicht gerade optimal!<br />

178 Roger Cotes (1682–1716) bearbeitete <strong>die</strong> zweite Auflage von I. Newtons Pr<strong>in</strong>cipia.<br />


198 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

dann wird x ∈ [a, b] <strong>in</strong> t ∈ [0, n] transformiert und es ist<br />

l j (x) = ∏ k̸=j<br />

=x k<br />

{ }} {<br />

x − (a + kh)<br />

a + jh − a − kh = ∏ k̸=j<br />

a + th − a − kh<br />

h (j − k)<br />

= ∏ k̸=j<br />

t − k<br />

j − k ,<br />

also, da w ≡ 1,<br />

w j =<br />

∫ b<br />

a<br />

∫ n<br />

l j (x) dx = h<br />

0<br />

∏<br />

k̸=j<br />

t − k<br />

j − k dt.<br />

Man sieht sofort, daß <strong>die</strong>se Quadraturformeln rationale Gewichte haben also z.B. mit<br />

Maple exakt bestimmt und verwendet werden können. Die Newton–Cotes–Formeln<br />

kann man nun für kle<strong>in</strong>e Werte von n explizit angeben – e<strong>in</strong>ige von ihnen haben sogar<br />

e<strong>in</strong>en eigenen Namen; <strong>die</strong> folgende Tabelle stammt aus [41, S. 108], alle Gewichte s<strong>in</strong>d<br />

immer noch mit der Intervalllänge b − a zu multiplizieren.<br />

n Gewichte Name<br />

1<br />

1<br />

2<br />

1<br />

2<br />

Trapezregel<br />

2<br />

1<br />

6<br />

2<br />

3<br />

1<br />

6<br />

Simpson–Regel<br />

3<br />

1<br />

8<br />

3<br />

8<br />

3<br />

8<br />

1<br />

8<br />

“Pulcherrima”, 3/8–Regel<br />

4<br />

7<br />

90<br />

32<br />

90<br />

12<br />

90<br />

32<br />

90<br />

7<br />

90<br />

Milne–Regel<br />

5<br />

19<br />

288<br />

75<br />

288<br />

50<br />

288<br />

50<br />

288<br />

75<br />

288<br />

19<br />

288<br />

6<br />

41<br />

840<br />

216<br />

840<br />

27<br />

840<br />

272<br />

840<br />

27<br />

840<br />

216<br />

840<br />

41<br />

840<br />

Weddle–Regel<br />

Die Liste bricht nicht ganz ohne tieferen Grund ab: Für n > 6 werden e<strong>in</strong>ige der<br />

Gewichte negativ.<br />

Übung 11.1 Bestimmen Sie <strong>die</strong> Gewichte der Newton–Cotes–Formel für n = 7.<br />

Die Simpson–Regel 179 ist auch als Keplersche Faßregel bekannt und besitzt, wenn<br />

man sich den Grad des zugehörigen Interpolationspolynome ansieht, zwar nur Exaktheitsgrad<br />

2, aber e<strong>in</strong>e Fehlerabschätzung der Form<br />

|E 2 f| ≤ h5<br />

∥<br />

∥f (4)∥ ∥ ∥∞ , f ∈ C 4 [a, b] , (11.7)<br />

90<br />

<strong>die</strong> um e<strong>in</strong>e Größenordnung besser ist als das, was man aus (11.5) erwarten könnte.<br />

Der Name “pulcherrima” bedeutet übrigens “<strong>die</strong> allerschönste”. Generell ist <strong>die</strong> Fehlerordnung<br />

der meisten Newton–Cotes–Formeln um e<strong>in</strong>ige Größenordnungen besser als<br />

man erwarten würde. Das hat e<strong>in</strong>en relativ e<strong>in</strong>fachen Grund . . .<br />

179 Nicht Bart oder Homer, sondern Thomas Simpson (1710–1761), Selfmademathematiker. Die Formel<br />

selbst war aber schon Cavalieri (1639) bekannt.<br />


11.3 Zusammengesetzte Quadraturformeln 199<br />

Beispiel 11.10 Die verbesserte Abschätzung (11.7) für <strong>die</strong> Simpson–Regel kann man beispielsweise<br />

durch Hermite–Interpolation beweisen. Dazu verwendet man für x 0 = a, x 1 = a + h<br />

und x 2 = b das Interpolationspolynom 180<br />

das <strong>die</strong> Bed<strong>in</strong>gungen<br />

erfüllt. Da<br />

H 3 f(x) = f (x 0 ) + (x − x 0 ) [x 0 , x 2 ] f + (x − x 0 ) (x − x 2 ) [x 0 , x 1 , x 2 ] f<br />

} {{ }<br />

=L 2 f<br />

+ (x − x 0 ) (x − x 1 ) (x − x 2 ) [x 0 , x 1 , x 1 , x 2 ] f,<br />

H 3 f ( x j<br />

)<br />

= f<br />

(<br />

xj<br />

)<br />

, j = 0, 1, 2, (H3 f) ′ (x 1 ) = f ′ (x 1 )<br />

∫ b<br />

a<br />

(x − x 0 ) (x − x 1 ) (x − x 2 ) dx = 0,<br />

ist<br />

∫ b<br />

a<br />

H 3 f(t) dt =<br />

∫ b<br />

a<br />

L 2 f(t) dt = Q 2 (f),<br />

aber für f ∈ C 4 [a, b] liefert H 3 f den Fehlerterm<br />

I − Q 2 (f) =<br />

∫ b<br />

a<br />

= f(4) (ξ)<br />

4!<br />

(f − H 3 (f)) (t) dt =<br />

∫ 2h<br />

also <strong>die</strong> Größenordnung h 5 statt h 3 .<br />

0<br />

∫ b<br />

a<br />

(t − x 0 ) (t − x 1 ) 2 (t − x 2 ) f(4)<br />

4!<br />

t (t − h) 2 (t − 2h) dt = − h5<br />

90 f(4) (ξ),<br />

(ξ(t)) dt<br />

Warum man sich für den Exponenten von h <strong>in</strong>teressiert sollte klar se<strong>in</strong>: Wenn das Intervall<br />

kle<strong>in</strong> wird, dann fällt der Fehler viel schneller und <strong>die</strong> Formel ist genauer. Allerd<strong>in</strong>gs<br />

muss f auch ”<br />

glatter“ se<strong>in</strong> und e<strong>in</strong>e stetige vierte Ableitung besitzen.<br />

11.3 Zusammengesetzte Quadraturformeln<br />

Bereits <strong>in</strong> der (sehr groben) Fehlerabschätzung (11.5) zeigt sich, daß e<strong>in</strong>e Quadraturformel<br />

auf e<strong>in</strong>em kle<strong>in</strong>en Intervall normalerweise genauer se<strong>in</strong> wird, als auf e<strong>in</strong>em<br />

großen Intervall. Die Idee ist also e<strong>in</strong>fach, nur <strong>die</strong> Notation e<strong>in</strong> wenig aufwendiger.<br />

Sei also Q n e<strong>in</strong>e Quadraturformel, dann def<strong>in</strong>ieren wir zu N ∈ N <strong>die</strong> aufsteigende<br />

Punktfolge x j,k , j = 1, . . . , N, k = 0, . . . , n, wobei x j,k < x j ′ ,k ′ falls j < j′ oder j = j ′ und<br />

k < k ′ , sowie<br />

x 1,0 = a, x j,n = x j+1,0 , j = 1, . . . , N − 1, x N,n = b,<br />

so daß wir e<strong>in</strong>e überlappende Zerlegung von [a, b] erhalten. Das Teil<strong>in</strong>tegral auf [ x j,0 , x j,n<br />

]<br />

180 Die etwas seltsame Reihenfolge x 0 , x 2 , x 1 , x 1 , <strong>in</strong> der <strong>die</strong> Interpolationspunkte <strong>in</strong> <strong>die</strong> Newton–<br />

Darstellung e<strong>in</strong>gegeben werden, ist ke<strong>in</strong> Tipfehler, sondern durchaus Absicht.


200 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

a<br />

x[2,0] x[2,1] ... x[2,n]<br />

b<br />

x[1,0] x[1,1] x[1,2] ... x[1,n]<br />

x[N,n-1]x[N,n]<br />

Abbildung 11.1: Zerlegung des Intervalls [a, b] für zusammengesetzte Quadraturformel.<br />

bestimmt man nun jeweils mit der transformierten Quadraturformel Q n – das setzt<br />

natürlich voraus, daß <strong>die</strong> Knoten x j,k ebenfalls Transformationen der Knoten der<br />

Quadraturformel Q n s<strong>in</strong>d. Genauer: Bezeichnet man mit<br />

<strong>die</strong> Knoten von Q n , dann ist<br />

0 = x 0 < x 1 < · · · < x n−1 < x n = 1<br />

x k = x j,k − x j,0<br />

x j,n − x j,0<br />

, j = 1, . . . , N. (11.8)<br />

dt ergibt sich dann <strong>die</strong> zusam-<br />

Ausgehend von e<strong>in</strong>er Quadraturformel Q n für I = ∫ 1<br />

0<br />

mengesetzte Formel als<br />

Q n,N (f) =<br />

N∑ ( ) −1<br />

xj,n − x j,0<br />

} {{ }<br />

=:h −1<br />

j<br />

j=1<br />

( )) · − xj,0<br />

Q n<br />

(f<br />

=<br />

x j,n − x j,0<br />

N∑<br />

j=1<br />

(<br />

h −1<br />

j<br />

Q n<br />

(f<br />

h −1<br />

j<br />

(· − xj,0<br />

) )) .<br />

(11.9)<br />

Beispiel 11.11 Im Newton–Cotes–Fall wäre<br />

x j,k = a +<br />

(j − 1)(n + 1) + k<br />

(b − a) = a + h ((j − 1)(n + 1) + k) , h = b − a<br />

Nn<br />

Nn .<br />

Damit entspricht <strong>die</strong> zusammengesetzte Trapezregel gerade der Integration des stückweise l<strong>in</strong>earen<br />

Interpolanten.<br />

Das Ziel ist es also, das Integral<br />

I(f) =<br />

∫ b<br />

a<br />

f(t) dt =<br />

N∑<br />

j=1<br />

x∫<br />

j,n<br />

x j,0<br />

f(t) dt =:<br />

N∑<br />

I j (f),<br />

j=1<br />

f ∈ C[a, b],<br />

anzunähern und e<strong>in</strong>e Abschätzung für den Fehler anzugeben.


11.3 Zusammengesetzte Quadraturformeln 201<br />

Proposition 11.12 Sei Q n <strong>die</strong> Newton–Cotes–Formel für das Integral ∫ 1<br />

0 dt und Q n,N <strong>die</strong><br />

daraus gebildete zusammengesetzte Quadraturformel. Dann ist, für f ∈ C n+1 [a, b],<br />

⎛<br />

∥<br />

∥<br />

∥f (n+1) ∥∥[xj,0<br />

⎞<br />

⎜<br />

|I(f) − Q n,N (f)| ≤ (b − a) max ⎝h n ,x j,n] ⎟<br />

j<br />

⎠ . (11.10)<br />

j=1,...,n<br />

n!<br />

Bemerkung 11.13 Aus (11.10) folgt sofort <strong>die</strong> globale Fehlerabschätzung<br />

∥ ( ) ∥∥f (n+1)<br />

n ∥<br />

|I(f) − Q n,N (f)| ≤ (b − a) max h [a,b]<br />

j<br />

, (11.11)<br />

j=1,...,n n!<br />

aber dennoch sagt uns (11.10) e<strong>in</strong>iges mehr: Man könnte versuchen, den Gesamtfehler dadurch<br />

zu drücken, daß man h j kle<strong>in</strong> macht, wo der Betrag von f (n+1) sehr groß wird und dafür <strong>die</strong><br />

Schrittweite <strong>in</strong> Bereichen groß macht, wo f (n+1) betragsmäßig sehr kle<strong>in</strong> wird. Auf <strong>die</strong>se Art<br />

und Weise erhält man, unter Ausnutzung von zusätzlicher 181 Information über f möglicherweise<br />

bessere Quadraturformeln, ohne <strong>die</strong> Zahl der Knoten und damit den Rechenaufwand zu<br />

vergrößern.<br />

Derartige Verfahren, <strong>die</strong> versuchen, ihre Parameter (<strong>in</strong> <strong>die</strong>sem Fall <strong>die</strong> Knoten) aus Informationen<br />

über <strong>die</strong> zu verarbeitenden Daten (<strong>in</strong> <strong>die</strong>sem Fall <strong>die</strong> Funktion, bzw. deren Werte an<br />

bestimmten Stellen) zu bestimmen, bezeichnet man als adaptiv. Dies steht im Gegensatz zu<br />

(nichtadaptiven) Verfahren, bei denen <strong>die</strong> Parameter von Anfang an feststehen – solche Verfahren<br />

s<strong>in</strong>d zwar meist etwas schneller, dafür aber weniger flexibel.<br />

Beweis von Proposition 11.12: Mit der Bezeichnung<br />

ist, für j = 1, . . . , N,<br />

I j (f) =<br />

=<br />

x∫<br />

j,n<br />

x j,0<br />

f(t) dt =<br />

n∑<br />

k=0<br />

x∫<br />

j,n<br />

t j,k := x j,k − x j,0<br />

x j,n − x j,0<br />

, j = 1, . . . , N,<br />

x j,0<br />

(<br />

Ln f(t) + [ t, x j,0 , . . . , x j,n<br />

]<br />

f<br />

)<br />

dt<br />

∫ 1<br />

h −1<br />

j<br />

l k<br />

(h −1( ) )<br />

t + x j,k dt f ( x∫<br />

j,n<br />

) [ ]<br />

x j,k + t, xj,0 , . . . , x j,n f dt<br />

}<br />

0<br />

{{ }<br />

x j,0<br />

=w k<br />

(<br />

= h −1<br />

j<br />

Q n,N<br />

(f<br />

h −1<br />

j<br />

x∫<br />

j,n<br />

181 Stellt sich natürlich <strong>die</strong> Frage, wo man <strong>die</strong>se herbekommt.<br />

) (· )) ( ) ( ) f (n+1)<br />

− xj,0 + t − xj,0 · · · t − xj,n (ξ(t)) dt .<br />

(n + 1)!<br />

x j,0<br />

} {{ }<br />

=:R j (f)


202 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

Damit ist<br />

N∑<br />

I(f) = I j (f) =<br />

j=1<br />

N∑<br />

j=1<br />

(<br />

h −1<br />

j<br />

Q n<br />

(f<br />

h −1<br />

j<br />

(· − xj,0<br />

) )) +<br />

N∑<br />

R j (f) = Q n,N (f) +<br />

j=1<br />

N∑<br />

R j (f).<br />

j=1<br />

Den Fehlerterm R j (f) spalten wir wie folgt auf und verwenden den Mittelwertsatz der<br />

Integration 182<br />

∣ ∣ Rj (f) ∣ x n−1 j,k+1<br />

∑<br />

∫<br />

∣∣∣∣∣∣<br />

( ) ( ) f (n+1)<br />

=<br />

x − xj,0 · · · x − xj,n (n + 1)! (ξ(x)) dx ∣k=0<br />

x j,k<br />

∣ ∥ ∑n−1<br />

f (n+1) x j,k+1 ∫<br />

∣∣∣∣∣∣ ∥<br />

∥f<br />

(ξ k ) ( ) ( ) (n+1) ∥∥[xj,0<br />

=<br />

x − xj,0 · · · x − xj,n dx ≤ n h n+1<br />

,x j,n]<br />

(n + 1)!<br />

j<br />

(n + 1)!<br />

∣k=0<br />

x j,k ∥<br />

Damit ist<br />

≤ h n+1<br />

j<br />

∥<br />

∥f (n+1) ∥∥[xj,0<br />

,x j,n]<br />

.<br />

n!<br />

|I − Q n,N (f)| ≤<br />

⎛<br />

n∑<br />

∣ Rj (f) ∣ ≤<br />

j=1<br />

⎜<br />

⎝ max<br />

j=1,...,n hn j<br />

∥<br />

∥<br />

∥f (n+1) ∥∥[xj,0<br />

,x j,n]<br />

n!<br />

⎞<br />

⎟<br />

⎠<br />

n∑<br />

j=1<br />

h j<br />

} {{ }<br />

=b−a<br />

Beispiel 11.14 Mit der verbesserten Fehlerformel aus Beispiel 11.10 und den Punkten x j =<br />

a + jh, j = 0, . . . , 2N, können wir <strong>die</strong> den Fehler für <strong>die</strong> zusammengesetzten Simpson–<br />

Regel bestimmen:<br />

2N−2 ∑<br />

E 2 (f) = −<br />

j=0<br />

1<br />

90 h5 f (4) ( 2N−2<br />

) 1 ∑<br />

ξ j = −<br />

90 h4<br />

= − b − a<br />

90 h4 f (4) (ξ), ξ ∈<br />

j=0<br />

b − a<br />

2N − 1<br />

} {{ }<br />

=h<br />

[<br />

m<strong>in</strong> ξ j,<br />

j=0,...,2N−2<br />

f (4) ( 2N−2<br />

) b − a ∑<br />

ξ j = −<br />

90 h4<br />

max<br />

j=0,...,2N−2 ξ j<br />

Die Existenz der “magischen” Stelle ξ ergibt sich dabei aus der Ungleichung<br />

m<strong>in</strong><br />

( 2N−2<br />

) ∑<br />

j=0,...,2N−2 f(4) ξ j ≤<br />

j=0<br />

f (4) ( ξ j<br />

)<br />

2N − 1 ≤<br />

max<br />

( )<br />

j=0,...,2N−2 f(4) ξ j<br />

.<br />

j=0<br />

□<br />

f (4) ( ξ j<br />

)<br />

2N − 1<br />

]<br />

. (11.12)<br />

182 Dafür darf das Polynom ke<strong>in</strong>en Vorzeichenwechsel haben – deswegen <strong>die</strong> Aufspaltung.


11.4 Gauß–Quadratur 203<br />

für <strong>die</strong> <strong>in</strong> der Summe gebildete Konvexkomb<strong>in</strong>ation und nach dem Zwischenwertsatz wird<br />

deren Wert eben an e<strong>in</strong>er Stelle ξ angenommen, <strong>die</strong> im kle<strong>in</strong>sten Intervall liegt, das alle ξ j ,<br />

j = 0, . . . , 2N − 2, enthält.<br />

Diese Fehlerabschätzung (11.12) ist wesentlich besser als <strong>die</strong> aus Proposition 11.12, vorausgesetzt<br />

natürlich, daß f h<strong>in</strong>reichend oft differenzierbar ist und daß sich <strong>die</strong> vierte Ableitung<br />

von f im Vergleich zur zweiten Ableitung “brav verhält” 183 , sonst muß man h schon sehr kle<strong>in</strong><br />

wählen.<br />

Geometrisch ist <strong>die</strong> zusammengesetzte Simpsonformel<br />

Q 2,N (f) = b − a<br />

6N (f 0 + 4f 1 + 2f 2 + 4f 3 + 2f 4 + · · · + 4f 2N−1 + f 2N ) ,<br />

f j = f (a + jh) , j = 0, . . . , 2N,<br />

<strong>die</strong> Integration der Interpolationsparabeln an den Punkten<br />

siehe Abb. 11.2.<br />

x 2j , x 2j+1 , x 2j+2 , j = 0, . . . , 2N − 2,<br />

h = b − a<br />

2N ,<br />

x0 x1 x2 x3 x4 x5 x6 x7 x8<br />

Abbildung 11.2: Geometrische Interpretation der zusammengesetzten Simpson–<br />

Formel.<br />

11.4 Gauß–Quadratur<br />

E<strong>in</strong>e Gauß–Formel ist e<strong>in</strong>e Quadraturformel Q n , <strong>die</strong> den maximalen Exaktheitsgrad<br />

2n + 1 hat. Die Existenz solcher Formeln und ihre Konstruktion wurden bereits 1816<br />

von Gauß [9] angegeben. Das Orig<strong>in</strong>alargument von Gauß verwendet überraschenderweise<br />

ganz andere Techniken und f<strong>in</strong>det sich ebenfalls im Anhang<br />

183 Daß das nicht der Fall se<strong>in</strong> muß zeigen schon <strong>die</strong> Monome x m , m groß, bei denen <strong>die</strong> vierte<br />

Ableitung um e<strong>in</strong>en Faktor (m − 2)(m − 3) = O ( m 2) größer ist – soviel zum Wert “asymptotischer”<br />

Blankoaussagen.


204 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

Wir können uns aber, dank Satz 11.8, das Leben wesentlich leichter machen, denn<br />

wir wissen, daß e<strong>in</strong>e Quadraturformel mit Knoten x j , j = 0, . . . , n, genau dann e<strong>in</strong>e<br />

Gaußsche Quadraturformel ist, wenn<br />

1. sie <strong>in</strong>terpolatorisch ist.<br />

2. das Polynom ω = (· − x 0 ) · · · (· − x n ) zu allen Polynomen vom Grad ≤ n orthogonal<br />

ist, das heißt, wenn<br />

∫ b<br />

p(x) ω(x) dx = 0, p ∈ Π n .<br />

a<br />

Damit gehört ω aber zu e<strong>in</strong>er ganz bestimmten und besonders <strong>in</strong>teressanten Klasse<br />

von Polynomen.<br />

Def<strong>in</strong>ition 11.15 E<strong>in</strong> Polynom p ∈ Π n heißt orthogonales Polynom der Ordnung n bezüglich<br />

der Gewichtsfunktion w, wenn p ̸= 0 und<br />

∫ b<br />

a<br />

p(x) q(x) w(x) dx = 0, q ∈ Π n−1 .<br />

Das heißt, daß p orthogonal zu Π n−1 ist, und zwar <strong>in</strong> Bezug auf das Skalarprodukt<br />

〈f, g〉 := 〈f, g〉 w<br />

:=<br />

∫ b<br />

a<br />

f(x) g(x) w(x) dx. (11.13)<br />

Übung 11.2 Zeigen Sie: Ist w e<strong>in</strong>e stetige, nichtnegative Funktion und ist w(x) > 0 für<br />

e<strong>in</strong> x ∈ [a, b], dann ist 〈f, g〉 w<br />

e<strong>in</strong> Skalarprodukt auf Π × Π. Kann man e<strong>in</strong>e der obigen<br />

Bed<strong>in</strong>gungen an w weglassen?<br />

♦<br />

Nun kann man leicht sehen, daß es für “vernünftige” Gewichtsfunktionen immer orthogonale<br />

Polynome aller Ordnungen n ∈ N 0 gibt. Man erhält <strong>die</strong>se Polynome zum<br />

Beispiel durch das Gram–Schmidt Orthogonalisierungsverfahren: S<strong>in</strong>d p 0 , . . . , p n orthogonale<br />

Polynome der Ordnung 0, . . . , n und ist w ≥ 0 und stetig 184 , dann ist<br />

〈 n∑ (·)<br />

p n+1 (x) = x n+1 n+1 〉<br />

, p j<br />

−<br />

p j (x), x ∈ R, (11.14)<br />

〈p j , p j 〉<br />

j=0<br />

e<strong>in</strong> orthogonales Polynom der Ordnung n + 1, denn es ist, für k = 0, . . . , n,<br />

〉<br />

〈 n∑ (·)<br />

〈p n+1 , p k 〉 =<br />

〈(·) n+1 n+1 〉<br />

, p 〉<br />

〉<br />

j<br />

, p k −<br />

〈p j , p k 〉 =<br />

〈(·) n+1 , p<br />

〈p<br />

j=0 j , p j 〉 } {{ }<br />

k −<br />

〈(·) n+1 , p k = 0.<br />

=δ jk<br />

184 Das ist sogar mehr als wirklich nötig wäre, es genügt, wenn das Integral I = ∫ b<br />

a<br />

w(x) dx strikt<br />

quadratpositiv ist, d.h. I ( f 2) > 0 für alle f ∈ Π.


11.4 Gauß–Quadratur 205<br />

Zusammen mit Übung 11.3 zeigt <strong>die</strong>s, daß p n+1 e<strong>in</strong> orthogonales Polynom der Ordnung<br />

n + 1 ist 185 . Da der Leitterm von p n+1 bei <strong>die</strong>ser Konstruktion das Monom x n+1<br />

ist, bezeichnet man <strong>die</strong> durch (11.14) <strong>in</strong>duktiv konstruierten orthogonalen Polynome<br />

als monische orthogonale Polynome.<br />

Übung 11.3 Zeigen Sie, daß <strong>die</strong> orthogonalen Polynome p 0 , . . . , p n e<strong>in</strong>e Basis von Π n<br />

bilden.<br />

♦<br />

Damit könnte man also Gaußsche Quadraturformeln dadurch konstruieren, daß man<br />

mittels (11.14) e<strong>in</strong>e Folge p 0 , . . . , p n von monischen orthogonalen Polynomen konstruiert<br />

186 und dann mit e<strong>in</strong>em geeigneten Verfahren <strong>die</strong> Nullstellen von p n bestimmt<br />

– daß <strong>die</strong> alle e<strong>in</strong>fach und rell s<strong>in</strong>d, werden wir noch sehen, und zwar <strong>in</strong> Proposition<br />

11.17.<br />

E<strong>in</strong> etwas netterer Ansatz verwendet l<strong>in</strong>eare Algebra und <strong>die</strong> Momentenmatrix 187<br />

⎡<br />

⎤<br />

µ 0 µ 1 . . . µ n<br />

[〈<br />

M = (·) j , (·) k〉 ]<br />

µ 1 µ 2 . . . µ n+1<br />

: j, k = 0, . . . , n = ⎢<br />

⎣ . .<br />

..<br />

⎥ . . ⎦ .<br />

µ n µ n+1 . . . µ 2n<br />

Diese n + 1 × n + 1–Matrix ist positiv def<strong>in</strong>it,<br />

〈 n<br />

〉<br />

∑ n∑<br />

(<br />

x T Mx = x j (·) j , x k (·) k =: 〈p, p〉 = I p 2) > 0, x ∈ R n+1 \ {0},<br />

j=0<br />

k=0<br />

und besitzt e<strong>in</strong>e QR–Zerlegung M = QR, bei der alle Diagonalelemente von R ungleich<br />

Null s<strong>in</strong>d, denn R ist ja <strong>in</strong>vertierbar. Daher ist, für j = 0, . . . , n,<br />

(<br />

r nn δ nj = r nj = Q T M<br />

)nj n = ∑<br />

q kn m<br />

}{{} kj =<br />

k=0<br />

=(Q T )<br />

〈<br />

nk<br />

n<br />

〉<br />

∑<br />

= q kn (·) k , (·) j ,<br />

das heißt, das Polynom<br />

ist orthogonal zu Π n−1 .<br />

k=0<br />

q n (x) =<br />

n∑<br />

k=0<br />

n∑<br />

q kn x k , x ∈ R, q n ∈ Π n ,<br />

k=0<br />

q kn<br />

〈<br />

(·) k , (·) j〉<br />

185 . . . das bis auf Normierung e<strong>in</strong>deutig bestimmt ist.<br />

186 Nur zur Er<strong>in</strong>nerung: für <strong>die</strong> Berechnung von p k braucht man p 0 , . . . , p k−1 .<br />

187 E<strong>in</strong>e Matrix, deren E<strong>in</strong>träge auf den “Antidiagonalen” konstant s<strong>in</strong>d, bezeichnet man als Hankelmatrix<br />

zu dem Vektor (µ 0 , . . . , µ 2n ).


206 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

Übung 11.4 Untersuchen Sie <strong>die</strong> Beziehung zwischen der klassischen Gram–Schmidt<br />

Orthogonalisierung und der QR–Zerlegung.<br />

♦<br />

Wenn wir jetzt mal für e<strong>in</strong>en Moment 188 annehmen, daß Gaußsche Quadraturformeln<br />

für alle “vernünftigen” Gewichtsfunktionen existieren, dann können wir mit den <strong>in</strong>zwischen<br />

vertrauten Methoden auch den Fehler angeben.<br />

Satz 11.16 Sei w ∈ C[a, b] e<strong>in</strong>e stetige, nichtnegative Gewichtsfunktion und Qn ∗ <strong>die</strong> Gauß–<br />

Quadraturformel für das Integral I = ∫ b<br />

a w(x) dx. Dann gibt es für jedes f ∈ C2n+2 [a, b] e<strong>in</strong><br />

ξ ∈ [a, b], so daß<br />

I(f) − Qn(f) ∗ = f(2n+2) (ξ)<br />

〈ω n+1 , ω n+1 〉 , (11.15)<br />

(2n + 2)!<br />

wobei ω n+1 = (· − x 0 ) · · · (· − x n ) das monische orthogonale Polynom der Ordnung n + 1<br />

ist.<br />

Beweis: Aus den vorherigen Bemerkungen wissen wir, daß <strong>die</strong> Knoten der Gaußschen<br />

Quadraturformel 189 gerade <strong>die</strong> Nullstellen von ω n+1 s<strong>in</strong>d. Nun sei H n ∈ Π 2n+1 wieder<br />

der Hermite–Interpolant, der <strong>die</strong> Bed<strong>in</strong>gungen<br />

H n f ( x j<br />

)<br />

= f<br />

(<br />

xj<br />

)<br />

, (Hn f) ′ ( x j<br />

)<br />

= f<br />

′ ( x j<br />

)<br />

, j = 0, . . . , n,<br />

erfüllt. Wegen der Exaktheit der Gauß–Formel ist dann<br />

I (H n f) = Q ∗ n (H n f) =<br />

n∑<br />

j=0<br />

w j H n f ( )<br />

x j =<br />

} {{ }<br />

=f(x j)<br />

n∑<br />

w j f ( )<br />

x j = Q<br />

∗<br />

n (f),<br />

j=0<br />

also<br />

I(f) − Q ∗ n(f) = I(f) − I (H n f) = I (f − H n f) .<br />

Für f − H n f verwenden wir wieder <strong>die</strong> Fehlerformel 190<br />

(f − H n f) (x) = f(2n+2) (ξ(x))<br />

(2n + 2)!<br />

(x − x 0 ) 2 · · · (x − x n ) 2 = f(2n+2) (ξ(x))<br />

(2n + 2)!<br />

ω 2 n+1 (x),<br />

und mit dem Mittelwertsatz der Integralrechnung erhalten wir, daß<br />

I (f − H n f) =<br />

∫ b<br />

a<br />

f (2n+2) (ξ(x))<br />

(2n + 2)!<br />

= f(2n+2) (ξ)<br />

(2n + 2)!<br />

ω 2 n+1 (x) w(x) dx = f(2n+2) (ξ)<br />

(2n + 2)!<br />

〈ω n+1 , ω n+1 〉 .<br />

188 Genauer: bis zum Beweis von Proposition 11.17.<br />

189 Immer vorausgesetzt, <strong>die</strong>se existiert, aber . . .<br />

190 Siehe auch Beispiel 11.10.<br />

∫ b<br />

a<br />

ω 2 n+1 (x) w(x) dx<br />


11.5 Orthogonale Polynome 207<br />

11.5 Orthogonale Polynome<br />

Wir haben gesehen, daß <strong>die</strong> Existenz und Bestimmung Gaußscher Quadraturformeln<br />

wesentlich mit orthogonalen Polynomen verknüpft ist. Das ist sicherlich e<strong>in</strong>e, aber<br />

nicht <strong>die</strong> e<strong>in</strong>zige, Begründung, sich orthogonale Polynome e<strong>in</strong> bißchen näher anzusehen.<br />

Zuerst rechtfertigen wir e<strong>in</strong>mal <strong>die</strong> Existenz (und E<strong>in</strong>deutigkeit) Gaußscher Quadraturformeln,<br />

<strong>in</strong>dem wir zeigen, daß e<strong>in</strong> orthogonales Polynom immer e<strong>in</strong>fache, reelle<br />

Nullstellen haben muß.<br />

Proposition 11.17 E<strong>in</strong> orthogonales Polynom p n ∈ Π n vom Grad n zum Integral ∫ b<br />

a<br />

w(x) dx<br />

bezüglich e<strong>in</strong>er nichtnegativen, stetigen Gewichtsfunktion w ∈ C[a, b] hat n e<strong>in</strong>fache, reelle<br />

Nullstellen <strong>in</strong> [a, b].<br />

Beweis: Nehmen wir zuerst an, irgende<strong>in</strong> p n , n ≥ 1, hätte ke<strong>in</strong>e Nullstelle <strong>in</strong> [a, b], sei<br />

also beispielsweise p n > 0. Dann ist<br />

0 <<br />

∫ b<br />

a<br />

p n (x) w(x) dx = 〈1, p n 〉 ,<br />

im Widerspruch zur Orthogonalität. Hat p n e<strong>in</strong>e Nullstelle der Ordnung ≥ 2 <strong>in</strong> [a, b],<br />

sagen wir ξ, dann ist p n / (x − ξ) 2 ∈ Π n−2 e<strong>in</strong> Polynom, das überall genau dasselbe<br />

Vorzeichen hat wie p n . Wegen der Orthogonalität ist dann<br />

0 =<br />

〈<br />

p n ,<br />

〉 〈 〉<br />

p n<br />

p 2 n<br />

(· − ξ) 2 = 1,<br />

(· − ξ) 2 ,<br />

woraus p n = 0 folgen würde – auch wieder nicht das, was man sich unter e<strong>in</strong>em<br />

“anständigen” orthogonalen Polynom vorstellt.<br />

Also hat jedes p n <strong>in</strong> [a, b] nur e<strong>in</strong>fache Nullstellen, sagen wir ξ 1 , . . . , ξ m , m ≤ n. Nun<br />

ist aber das Polynom<br />

p n (x) (x − ξ 1 ) · · · (x − ξ m )<br />

} {{ }<br />

=:q∈Π m<br />

auf [a, b] entweder ≥ 0 oder ≤ 0 und damit<br />

0 ̸=<br />

∫ b<br />

a<br />

p n (x) q(x) w(x) dx = 〈p n , q〉 ,<br />

weswegen m = n se<strong>in</strong> muß, denn ansonsten wäre das Integral wegen der Orthogonalität<br />

von p n ja = 0.<br />

□<br />

Aus Satz 11.8 und den Betrachtungen über <strong>die</strong> Gaußschen Quadraturformeln erhalten<br />

wir nun <strong>die</strong> Existenz und E<strong>in</strong>deutigkeit <strong>die</strong>ser speziellen Formeln.


208 11 NUMERISCHE INTEGRATION UND ORTHOGONALE POLYNOME<br />

Korollar 11.18 Sei w ∈ C[a, b] e<strong>in</strong>e positive 191 Gewichtsfunktion. Dann gibt es genau e<strong>in</strong>e<br />

Quadraturformel Q n vom Exaktheitsgrad 2n + 1, deren Knoten <strong>die</strong> Nullstellen des 192 orthogonalen<br />

Polynoms s<strong>in</strong>d.<br />

Die nächste Eigenschaft ist e<strong>in</strong>e Rekursionsformel für orthonormale Polynome, der Beweis<br />

ist aus [8, S. 234].<br />

Satz 11.19 Die orthonormalen 193 Polynome p n bezüglich e<strong>in</strong>er positiven Gewichtsfunktion<br />

w ∈ C[a, b] erfüllen e<strong>in</strong>e Drei–Term–Rekursionsformel<br />

mit Startwerten<br />

p n (x) = (α n x + β n ) p n−1 (x) − γ n p n−2 (x), x ∈ R, n ∈ N, (11.16)<br />

p 0 ≡ µ −1/2<br />

0<br />

, p −1 ≡ 0. (11.17)<br />

Beweis: Wir zeigen, daß <strong>die</strong> Polynome q n , def<strong>in</strong>iert durch<br />

√<br />

q n+1 (x) = x p n (x) − 〈(·)p n , p n 〉 p<br />

} {{ } n (x) − 〈q n , q n 〉 p n−1 (x), x ∈ R, n ∈ N 0 ,<br />

} {{ }<br />

=:a n<br />

=:b n >0<br />

mit den Startwerten wir <strong>in</strong> (11.17) orthogonale Polynome s<strong>in</strong>d. Die orthonormalen<br />

Polynome s<strong>in</strong>d dann<br />

p n+1 (x) =<br />

=<br />

q n+1 (x)<br />

√<br />

〈qn+1 , q n+1 〉<br />

(<br />

1<br />

√<br />

〈qn+1 , q n+1 〉 x − 〈(·)p n, p n 〉<br />

√<br />

〈qn+1 , q n+1 〉<br />

) √<br />

〈q n , q n 〉<br />

p n (x) −<br />

〈q n+1 , q n+1 〉 p n−1(x),<br />

woraus (11.16) sofort folgt.<br />

Die Orthogonalität selbst beweisen wir durch Induktion über n; für n = 0, das heißt<br />

q 0 ≡ 1, ist nichts zu zeigen und n = 1 ist auch offensichtlich. Sei also <strong>die</strong> Orthogonalität<br />

für e<strong>in</strong> n ≥ 1 bewiesen, dann betrachten wir, für j = 0, . . . , n, <strong>die</strong> Werte<br />

〈q n+1 , p j 〉 = 〈(·) p n , p j 〉 − a n 〈p n , p j 〉 − b n 〈p n−1 , p j 〉 ;<br />

für j < n − 1 s<strong>in</strong>d <strong>die</strong>se Werte natürlich Null. Unter Verwendung der Induktionshypothese<br />

ist außerdem<br />

〈q n+1 , p n−1 〉 = 〈(·) p n , p n−1 〉 − b n 〈p n−1 , p n−1 〉 = 〈p n , (·) p n−1 〉 − b n 〈p n−1 , p n−1 〉<br />

= 〈p n , q n 〉 + a n−1 〈p n , p n−1 〉 +b<br />

} {{ } n−1 〈p n , p n−2 〉 −b<br />

} {{ } n 〈p n−1 , p n−1 〉<br />

} {{ }<br />

=0<br />

=0<br />

=1<br />

=<br />

〈<br />

p n ,<br />

√〈q n , q n 〉p n<br />

〉<br />

− b n =<br />

√<br />

〈q n , q n 〉 〈p n , p n 〉 −b<br />

} {{ } } {{ } n = 0,<br />

=b =1<br />

n<br />

191 Das heißt: w ≥ 0 und es gibt m<strong>in</strong>destens e<strong>in</strong> x ∈ [a, b], so daß w(x) > 0.<br />

192 Normierung spielt ja für <strong>die</strong> Lage der Nullstellen ke<strong>in</strong>e Rolle.<br />

193 Dadurch s<strong>in</strong>d <strong>die</strong> Polynome bis auf Vorzeichen e<strong>in</strong>deutig def<strong>in</strong>iert, <strong>in</strong> mehreren Variablen stimmt<br />

das übrigens nicht mehr – nur e<strong>in</strong> Beispiel, warum es da noch e<strong>in</strong>iges zu tun gibt, siehe [48].


11.5 Orthogonale Polynome 209<br />

sowie<br />

〈q n+1 , p n 〉 = 〈x p n , p n 〉 −a<br />

} {{ } n 〈p n , p n 〉<br />

} {{ }<br />

=a n<br />

womit also q n+1 ⊥ Π n . Daß q n+1 ̸≡ 0 ist, folgt <strong>in</strong>duktiv aus der Tatsache, daß p n ̸≡ 0.<br />

□<br />

Über <strong>die</strong> Rekursionsformel könnte man nun sehr elegant <strong>die</strong> Knoten und Gewichte der<br />

Quadraturformel bestimmen, leider braucht man dazu aber Eigenwertverfahren und<br />

für <strong>die</strong> war nun leider absolut ke<strong>in</strong>e Zeit mehr. Insofern:<br />

Manches sagt ich,<br />

mehr noch wollt ich,<br />

ließe zur Rede<br />

Raum das Geschick.<br />

Die Stimme weicht,<br />

Wunden schwellen:<br />

Wahres sprach ich;<br />

will nun enden.<br />

(Die Edda, Das jüngere Sigurdlied)<br />

=1<br />

= 0,


210 A ANHANG<br />

And it didn’t stop be<strong>in</strong>g magic just<br />

because you found out how it was done<br />

T. Pratchett, ”<br />

Wee Free Men“<br />

Anhang<br />

A<br />

In <strong>die</strong>sem Abschnitt s<strong>in</strong>d Beweise und anderes vertiefendes Material zusammengefasst,<br />

<strong>die</strong> zum Verständnis des Stoffes beitragen, aber der Endlichkeit der Zeit zum<br />

Opfer fielen, <strong>die</strong> <strong>in</strong> e<strong>in</strong>em Semester zur Verfgung steht. Es ist also nicht verboten, sich<br />

<strong>die</strong> Sachen auch mal anzusehen.<br />

A.1 Rückwärtsfehler der Gauß–Elim<strong>in</strong>ation<br />

Für den Beweis der Rückwärtsfehlerabschätzung <strong>in</strong> Satz 4.21 sehen wir uns zuerst<br />

e<strong>in</strong>mal den Fehler bei der Vorwärtselim<strong>in</strong>ation und Rücksubstitution an. Dazu wird es<br />

opportun se<strong>in</strong>, auch das alternative Modell der Gleitkommaarithmetik zu verwenden,<br />

das annimmt, daß<br />

x ⊙ y = x · y , |δ| ≤ ^u, · = +, −, ×, /. (A.1)<br />

1 + δ<br />

Diese Annahme ist (ohne Beweis!) durchaus s<strong>in</strong>nvoll, denn mit ^u = 4u kann man auf<br />

alle Fälle garantieren, daß (2.4) und (A.1) gleichzeitig gelten.<br />

Übung A.1 Zeigen Sie:<br />

1. Zu jedem 0 ̸= x ∈ D(F) gibt es e<strong>in</strong> 0 ̸= ^x ∈ F, so daß<br />

^x = x (1 + δ) , |δ| ≤ u.<br />

2. Zu jedem δ ∈ [−^u, ^u] gibt es e<strong>in</strong> ϑ ∈ [−^u, 2^u], so daß<br />

1 + δ = 1<br />

1 + ϑ . ♦<br />

Jetzt aber zum Rückwärtsfehler der Vorwärtselim<strong>in</strong>ation.


A.1 Rückwärtsfehler der Gauß–Elim<strong>in</strong>ation 211<br />

Proposition A.1 Die durch Vorwärtselim<strong>in</strong>ation (Rücksubstitution) berechnete Lösung ^x von<br />

Lx = b, (Ux = b) L, U ∈ R n×n , erfüllt ^L^x = b ( ^U^x = b), wobei ^L ( ^U) ebenfalls e<strong>in</strong>e untere<br />

(obere) Dreicksmatrix ist, <strong>die</strong><br />

∣<br />

∣^L − L ∣ (<br />

≤ n^u |L| + O ^u 2) ,<br />

(A.2)<br />

beziehungsweise<br />

erfüllt.<br />

∣ ^U − U ∣ (<br />

≤ n^u |U| + O ^u 2) ,<br />

(A.3)<br />

Beweis: Wir bezeichnen mit l j = [ l jk : k = 1, . . . , j − 1 ] ∈ R j−1 den Anfang des j–ten<br />

Zeilenvektors von L 194 . Mit der Vorwärtselim<strong>in</strong>ation bestimmen wir nun Vektoren<br />

^x j ∈ R j , j = 1, . . . , n, durch<br />

(<br />

^x j = b j ⊖ l j−1 ⊙ ^x j−1) ⊘ l jj , x 0 = 0,<br />

wobei ^x n = ^x. Nun wissen wir von den Skalarprodukten (Beispiel 2.21) bereits, daß für<br />

x ∈ F j−1 ∑j−1<br />

l j ( ) ∑j−1<br />

( )<br />

⊙ ^x = l jk^x k 1 + δjk = 1 + δjk ljk ^x k ,<br />

k=1<br />

wobei |δ jk | ≤ (j − 1)^u. Mittels (A.1) bekommen wir somit, daß<br />

k=1<br />

^x j = b j − l j ⊙ ^x j−1<br />

(<br />

1 + ηj<br />

)<br />

ljj<br />

,<br />

∣ ηj<br />

∣ ∣ ≤ 2^u,<br />

da η j den Fehler e<strong>in</strong>er Subtraktion und e<strong>in</strong>er Division aufnimmt. Wir brauchen also<br />

nur noch<br />

{ ( )<br />

1 + δjk ljk , j < k<br />

^l jk = ( )<br />

1 + ηj ljj , j = k,<br />

zu setzen und erhalten sogar, daß<br />

∣<br />

∣^L − L ∣ ∣ ≤ max{2, n − 1} ^u |L| + O<br />

(<br />

^u 2)<br />

gilt, also <strong>in</strong>sbesondere (A.2).<br />

Der Beweis für <strong>die</strong> Rücksubstitution funktioniert natürlich ganz analog.<br />

(A.4)<br />

□<br />

Übung A.2 Geben Sie e<strong>in</strong> Verfahren an, das <strong>die</strong> Vorwärtselim<strong>in</strong>ation bzw. Rücksubstitution<br />

mit e<strong>in</strong>em von n unabhängigen Rückwärtsfehler ausführt.<br />

♦<br />

Bemerkung A.2 Gehen wir nur vom Standardmodell (2.4) aus, dann ist (A.4) mit der Konstante<br />

max{4, n − 1} erfüllt, was für n ≥ 5 auch ke<strong>in</strong> Be<strong>in</strong>bruch ist.<br />

194 Also das, was unterhalb der Diagonalen steht


212 A ANHANG<br />

Proposition A.3 Sei A ∈ F n×n . Wenn alle Hauptm<strong>in</strong>oren von A <strong>in</strong>vertierbar s<strong>in</strong>d, dann<br />

erfüllt <strong>die</strong> berechnete LU–Zerlegung ̂L, Û <strong>die</strong> Bed<strong>in</strong>gung<br />

(<br />

∣<br />

∣<br />

∣A − ̂LÛ ∣ ≤ 3n^u |A| + ∣̂L ∣<br />

∣<br />

∣Û<br />

)<br />

∣<br />

(<br />

+ O ^u 2) .<br />

(A.5)<br />

Beweis: Induktion über n. Im Fall n = 1 ist Û = A, ̂L = 1, und (A.5) ist trivialerweise<br />

richtig: Die l<strong>in</strong>ke Seite hat Wert 0.<br />

Sei also (A.5) für e<strong>in</strong> n ≥ 1 bewiesen und sei A ∈ R n+1×n+1 , das wir schreiben als<br />

[<br />

a11 w<br />

A =<br />

T ]<br />

, v, w ∈ R n , B ∈ R n×n . (A.6)<br />

v B<br />

Nach Annahme, a 11 ̸= 0, können wir für den ersten Schritt der Gauß–Elim<strong>in</strong>ation den<br />

Vektor ŷ (1) = v ⊘ a 11 und <strong>die</strong> Matrix  1 = B ⊖ ŷ (1) ⊗ w T als Näherung des ”<br />

elim<strong>in</strong>ierten“<br />

A 1 = B − ŷ (1) ⊗ w T berechnen. Dabei ist<br />

∣<br />

∣ŷ (1) − y (1)∣ ∣ ∣ ≤ ^u<br />

∣ ∣∣y (1) ∣ ∣ ∣ = ^u<br />

|v|<br />

|a 11 |<br />

sowie ∣ ∣∣ŷ (1) ⊗ w T − y (1) w T ∣ ∣ ∣ ≤ 2^u<br />

∣ ∣∣y (1) w T ∣ ∣ ∣ + O<br />

(<br />

^u 2) ,<br />

also ∣ ∣∣ Â 1 − A 1<br />

∣ ∣∣ ≤ 3^u |A1 | + O<br />

(<br />

^u 2) .<br />

(A.7)<br />

Nach Induktionsannahme ergibt <strong>die</strong> (numerische!) Zerlegung von  1 dann Matrizen<br />

̂L 1 , Û 1 , so daß ∣ ∣ (∣ ∣ ∣ ∣ ∣ ∣)<br />

(<br />

∣∣ ∣∣ ∣∣ ∣∣ ∣∣ ∣∣ ∣∣  1 − ̂L 1 Û 1 ≤ 3n^u  1 + ∣∣̂L 1 Û 1 + O ^u 2) .<br />

Wir erhalten dann, daß<br />

̂L =<br />

[ ] [ 1 0<br />

a11 w T ]<br />

ŷ (1) , Û =<br />

,<br />

̂L 1 0 Û 1<br />

wobei <strong>die</strong> erste Zeile von Û wegen der 1 oben l<strong>in</strong>ks“ <strong>in</strong> ̂L exakt ist. Damit erhalten wir,<br />

”<br />

daß<br />

[<br />

∣<br />

∣A − ̂LÛ ∣ =<br />

a11 w T ] [<br />

a<br />

∣<br />

− 11 w T ]∣ ∣∣∣<br />

v B a 11 ŷ (1) ŷ (1) w T + ̂L 1 Û 1 [<br />

]∣ [<br />

]∣ =<br />

0 0 ∣∣∣ ∣ v − a 11 ŷ (1) B − ŷ (1) w T =<br />

0 0 ∣∣∣<br />

− ̂L 1 Û 1<br />

∣ v − a 11 ŷ (1) A 1 − ̂L 1 Û 1 [<br />

]∣ 0 0 ∣∣∣∣ [<br />

]∣<br />

≤<br />

(<br />

∣ a 11 ŷ (1) − y (1)) +<br />

0 0 ∣∣∣<br />

A 1 − Â 1<br />

∣ v − a 11 y (1) Â 1 − ̂L 1 Û 1


A.2 Nachiteration 213<br />

≤<br />

≤<br />

≤<br />

[<br />

]∣ [ ]∣ 0 0 ∣∣∣ ∣<br />

+<br />

0 0 ∣∣∣<br />

a 11 ^u|v|/ |a 11 | A 1 − Â 1<br />

∣ 0 Â 1 − ̂L 1 Û 1<br />

[ ] [ ]<br />

0 0<br />

0 0 ∣ ∣ ∣<br />

3^u<br />

+ 3n^u<br />

∣ ∣∣ ∣∣ ∣∣<br />

|v| |A 1 |<br />

0 |A 1 | + ∣̂L 1 Û 1<br />

[ |a11 | ∣ w<br />

T ∣ ]<br />

(<br />

∣ ∣ ∣ ∣<br />

3(n + 1)^u<br />

∣ ∣∣ ∣∣ ∣∣ = 3(n + 1)^u |A| + ∣̂L ∣<br />

|v| |A 1 | + ∣̂L 1 Û 1<br />

∣<br />

∣Û<br />

)<br />

∣ .<br />

Und das war’s dann auch schon.<br />

Beweis von Satz 4.21: Aus Proposition A.1 erhalten wir, daß<br />

)<br />

(̂L + F)<br />

^y = b,<br />

(Û + E ^x = ^y,<br />

□<br />

wobei<br />

(<br />

|E| ≤ n^u|Û| + O ^u 2) ,<br />

(<br />

|F| ≤ n^u|̂L| + O ^u 2) ,<br />

also (̂LÛ + G)<br />

^x = b,<br />

wobei<br />

∣<br />

∣<br />

|G| = ∣̂LE + FÛ + FE∣ ≤ 2n^u ∣̂L ∣<br />

∣<br />

∣Û<br />

∣ + O<br />

(<br />

^u 2) .<br />

Nach Proposition A.3 ist damit Â^x = b, wobei<br />

∣ ∣ ∣ ∣∣ ∣∣G<br />

∣Â − A ∣<br />

= + ̂LÛ − A∣ ≤ |G| + ∣A − ̂LÛ∣<br />

(<br />

)<br />

∣<br />

∣<br />

∣<br />

∣<br />

≤ 2n^u ∣̂L ∣ ∣Û ∣ + 3n^u |A| + ∣̂L ∣ ∣Û ∣<br />

(<br />

) (<br />

∣<br />

∣<br />

≤ n^u 3 |A| + 5 ∣̂L ∣ ∣Û ∣ + O ^u 2) .<br />

+ O<br />

(^u 2)<br />

A.2 Nachiteration<br />

Es ist ganz <strong>in</strong>teressant, sich klarzumachen, wie und warum <strong>die</strong> Nachiteration funktioniert,<br />

und vor allem, daß das nicht so ganz trivial ist.<br />

Nehmen wir an, wir berechnen <strong>die</strong> arithmetischen Operationen <strong>in</strong> (4.38) mit e<strong>in</strong>er<br />

Genauigkeit<br />

ũ ≤ ^u.<br />

Außerdem machen wir e<strong>in</strong>e Annahme an <strong>die</strong> Stabilität unseres Lösungsverfahrens,<br />

namlich, daß für jede rechte Seite b <strong>die</strong> berechnete Lösung ^x <strong>die</strong> Beziehung<br />

∥<br />

(A + E) ^x = b, ∥A −1 E∥ < 1,<br />

(A.8)<br />

∞<br />


214 A ANHANG<br />

erfüllt; siehe Bed<strong>in</strong>gung (3.9) <strong>in</strong> Satz 3.9.<br />

In jeder Zeile von A ⊗ ^x j−1 berechnen wir e<strong>in</strong> Skalarprodukt auf R n und zusammen<br />

mit der Subtraktion erhalten wir also, daß <strong>die</strong> berechnete Größe ˜r j den Wert<br />

∣<br />

∣˜rj − b + A^x j−1<br />

∣ ∣ ≤ (n + 1) ũ ( |b| + |A| ∣ ∣^xj−1<br />

∣ ∣<br />

)<br />

+ O<br />

(ũ 2) . (A.9)<br />

Dann rundet man <strong>die</strong>sen Wert auf ”<br />

Arbeitsgenauigkeit“ ^u, also ist<br />

∣<br />

∣^rj − ˜r j<br />

∣ ∣ ≤ ^u ∣ ∣˜rj<br />

∣ ∣<br />

Also:<br />

∣<br />

∣<br />

∣^r j − b + A^x j−1 ≤ ∣ ∣<br />

∣˜r j − b + A^x j−1 + ∣ ∣<br />

∣^r j − ˜r j ≤<br />

∣ ∣ ∣ ∣<br />

∣˜rj − b + A^x j−1 + ^u ∣˜rj ≤ ∣ ∣ (∣ ∣ ∣ ∣)<br />

∣˜rj − b + A^x j−1 + ^u ∣b − A^xj−1 + ∣˜rj − b + A^x j−1 = ^u ∣ ∣<br />

∣b − A^x j−1 + (1 + ^u) ∣ ∣<br />

∣˜r j − b + A^x j−1 und mit (A.9) ergibt sich<br />

∣<br />

∣^rj − b + A^x j−1<br />

∣ ∣ ≤ ^u ∣ ∣ b − A^xj−1<br />

∣ ∣ + (1 + ^u) (n + 1) ũ<br />

(<br />

|b| + |A|<br />

∣ ∣^xj−1<br />

∣ ∣<br />

)<br />

+ O<br />

(ũ 2) . (A.10)<br />

Mit f j := ^r j − b + A^x j−1 ergibt sich dann<br />

∣<br />

∣ fj ≤ ^u ∣ A<br />

(^xj−1 − x )∣ ∣<br />

+ (1 + ^u) (n + 1) ũ ( |A| |x| + |A| |x| + |A| ∣ ∣^xj−1 − x ∣ ) + O<br />

(ũ 2)<br />

≤ (^u + (1 + ^u)(n + 1)ũ) |A| ∣ ∣^xj−1 − x ∣ (<br />

+ 2 (1 + ^u) (n + 1)ũ |A| |x| + O ũ 2)<br />

= (^u + (n + 1)ũ) |A| ∣ ∣^xj−1 − x ∣ ∣ + 2(n + 1)ũ |A| |x| + O (^u ũ) . (A.11)<br />

Die berechnete Korrekturgröße ^y j erfüllt dann<br />

(<br />

A + Ej<br />

)<br />

^yj = ^r j ,<br />

wobei 195<br />

(<br />

A + Ej<br />

) −1 =<br />

(<br />

I + A −1 E j<br />

) −1<br />

A −1 =: ( I + F j<br />

)<br />

A −1 ,<br />

Deswegen ist<br />

‖F j ‖ ∞<br />

≤<br />

∥ A −1 E j<br />

∥ ∥∞<br />

1 − ‖A −1 E j ‖ ∞<br />

.<br />

(A.12)<br />

^y j = ( A + E j<br />

) −1 ^rj = ( I + F j<br />

)<br />

A<br />

−1^r j<br />

= ( I + F j<br />

)<br />

A<br />

−1 ( e j + b − A^x j−1<br />

)<br />

=<br />

(<br />

I + Fj<br />

) ( A −1 e j + x − ^x j−1<br />

)<br />

, (A.13)<br />

195 Der <strong>in</strong>zwischen wohlbekannte Trick mit der geometrischen Reihe . . .


A.2 Nachiteration 215<br />

und ∣ ∣^xj − (^x j−1 + ^y j<br />

)∣ ∣ ≤ ^u ∣ ∣^xj−1 + ^y j<br />

∣ ∣ ≤ ^u (∣ ∣ x − ^xj−1<br />

∣ ∣ + |x| +<br />

∣ ∣^yj<br />

∣ ∣<br />

)<br />

,<br />

also, mit (A.13),<br />

∣<br />

∣^xj − (^x )∣<br />

j−1 + ^y j ∣ ≤ ^u (∣ ∣ ) ( ∣ ∣) ∣ (∣ x − ^xj−1 + |x| + ^u I + ∣Fj ∣ ∣ ∣A<br />

−1 ∣ ∣ ∣ ∣)<br />

∣ ∣fj + ∣x − ^xj−1 . (A.14)<br />

Weiter geht’s mit<br />

^x j − x = ^x j−1 + ^y j + (^x j − (^x ))<br />

j−1 + ^y j −x<br />

} {{ }<br />

=:z j , (Rundung!)<br />

= ^x j−1 − x + ( I + F j<br />

) ( A −1 f j + x − ^x j−1<br />

)<br />

+ z j<br />

= F j<br />

(<br />

x − ^xj−1<br />

)<br />

+<br />

(<br />

I + Fj<br />

)<br />

A −1 f j + z j ,<br />

und daher ist, unter Verwendung von (A.14) und (A.11)<br />

∣<br />

∣^xj − x ∣ ∣ ≤ ∣ ∣ Fj<br />

∣ ∣<br />

∣ ∣x − ^xj−1<br />

∣ ∣ +<br />

(<br />

I +<br />

∣ ∣Fj<br />

∣ ∣<br />

) ∣ ∣ ∣A<br />

−1 ∣ ∣ ∣<br />

∣ ∣fj<br />

∣ ∣ +<br />

∣ ∣zj<br />

∣ ∣<br />

Somit ist<br />

wobei<br />

≤<br />

∣ ∣F j<br />

∣ ∣<br />

∣ ∣ x − ^x j−1<br />

∣ ∣ + ( I + ∣ ∣F j<br />

∣ ∣<br />

) ∣ ∣ ∣A<br />

−1 ∣ ∣ ∣<br />

∣ ∣ f j<br />

∣ ∣<br />

+^u (∣ ∣ x − ^xj−1<br />

∣ ∣ + |x|<br />

)<br />

+ ^u<br />

(<br />

I +<br />

∣ ∣Fj<br />

∣ ∣<br />

) (∣ ∣ ∣A<br />

−1 ∣ ∣ ∣<br />

∣ ∣fj<br />

∣ ∣ +<br />

∣ ∣x − ^xj−1<br />

∣ ∣<br />

)<br />

= ( (1 + ^u) ∣ ∣ ) ∣ ∣ ( ∣ ∣) ∣ Fj + 2^uI ∣x − ^xj−1 + ^u |x| + (1 + ^u) I + ∣Fj ∣ ∣A<br />

−1 ∣ ∣<br />

∣ ∣fj ≤<br />

( (1 + ^u) ∣ ∣ ) ∣ ∣ Fj + 2^uI ∣x − ^xj−1 + ^u |x|<br />

+ (1 + ^u) ( I + ∣ ∣) ( ∣ Fj (^u + (n + 1)ũ) |A| ∣^xj−1 − x ∣ )<br />

+ 2(n + 1)ũ |A| |x|<br />

=<br />

+O (^u ũ)<br />

((1 + ^u) ∣ ∣ ( ∣ ∣) ∣ Fj + (^u + (n + 1)ũ) I + ∣Fj ∣ (<br />

∣A<br />

−1 ∣ |A| + O ^u 2)) ∣ ∣^xj−1 − x ∣ + (^uI + 2(n + 1)ũ |A|) |x| + O (^uũ)<br />

‖^x j − x‖ ∞<br />

≤ ( (1 + ^u) ‖F j ‖ ∞<br />

+ (n + 2)^u ( )<br />

1 + ‖F j ‖ ∞ κ∞ (A) ) ‖^x j−1 − x‖ ∞<br />

+ (^u )<br />

+ 2(n + 1)ũ ‖A‖ ∞ ‖x‖∞ + O<br />

(^u 2)<br />

(<br />

=: γ j ‖^x j−1 − x‖ ∞<br />

+ η j ‖x‖ ∞<br />

+ O ^u 2) ,<br />

(A.15)<br />

γ j ≤ (1 + ^u) ∥ ∥ A −1 E j<br />

∥ ∥∞ + (n + 2)^u κ ∞ (A)<br />

1 − ‖A −1 E j ‖ ∞<br />

. (A.16)<br />

Unter der ”<br />

Stabilitätsannahme“ ‖E j ‖ ∞<br />

≤ Cn^u‖A‖ ∞ ist also γ j < 1, falls<br />

2(C + 1)nκ ∞ (A) ≪ ^u −1 (A.17)


216 A ANHANG<br />

A.3 Der Satz von Weierstrass – Beweis<br />

Eigentlich immer noch e<strong>in</strong> sehr schöner Beweis und fast der Orig<strong>in</strong>albeweis von Bernste<strong>in</strong><br />

aus [3].<br />

Beweis von Satz 8.3: Ohne E<strong>in</strong>schränkung können wir annehmen, daß I = [0, 1]. Dann<br />

können wir e<strong>in</strong>e Folge von approximierenden Polynomen explizit angeben, nämlich <strong>die</strong><br />

Bernste<strong>in</strong>polynome 196<br />

Nun ist<br />

j=0<br />

(B n f) (x) =<br />

n∑<br />

B n j (x) =<br />

j=0<br />

j=0<br />

n∑<br />

j=0<br />

n ∑<br />

j=0<br />

sowie<br />

n∑ j<br />

n n Bn j (x) = ∑ j n!<br />

n j!(n − j)! xj (1 − x) n−j =<br />

und<br />

n∑<br />

j=0<br />

= x<br />

j=1<br />

j(j − 1)<br />

n 2 B n j (x) = n ∑<br />

( ) n<br />

f(j/n) x j (1 − x) n−j<br />

j<br />

} {{ }<br />

∈ Π n . (A.18)<br />

=:B n j (x)<br />

( n<br />

j<br />

)<br />

x j (1 − x) n−j = (x + 1 − x) n = 1,<br />

n∑<br />

j=1<br />

(n − 1)!<br />

(j − 1)!(n − j)! xj (1 − x) n−j<br />

n∑ (n − 1)!<br />

(j − 1)!(n − j)! xj−1 (1 − x) n−j ∑n−1<br />

= x Bj<br />

n−1 (x) = x<br />

j=0<br />

= n − 1<br />

n<br />

j(j − 1)<br />

n 2 n!<br />

j!(n − j)! xj (1 − x) n−j<br />

j=2<br />

= n − 1<br />

n x2 .<br />

j=0<br />

n∑ (n − 2)!<br />

(j − 2)!(n − j)! xj (1 − x) n−j = n − 1<br />

n<br />

Mit <strong>die</strong>sen drei Identitäten erhalten wir, daß für jedes x ∈ [0, 1]<br />

n∑<br />

( ) j 2 n<br />

n − x B n j (x) = ∑<br />

( j<br />

2<br />

n 2 − 2 j )<br />

n x + x2 B n j (x)<br />

j=0<br />

=<br />

j=0<br />

n∑<br />

( j(j − 1)<br />

j=0<br />

n 2<br />

∑n−2<br />

x2<br />

j=0<br />

+ j<br />

n 2 − 2 j n x + x2 )<br />

B n j (x)<br />

= n − 1<br />

n x2 + 1 n x − 2x2 + x 2 = 1 n<br />

x(1 − x)<br />

B n−2<br />

j<br />

(x)<br />

196 Der Name kommt daher, daß der Beweis im Orig<strong>in</strong>al von S. Bernste<strong>in</strong> [3] stammt, dem übrigens <strong>die</strong><br />

wahrsche<strong>in</strong>lichkeitstheoretische Idee durchaus klar war.


A.4 Schoenberg–Whitney und <strong>die</strong> totale Nichtnegativität der Kollokationsmatrix217<br />

Diese Formel erlaubt es uns nun zu zeigen, daß <strong>die</strong> Basispolynome recht gut lokalisiert<br />

s<strong>in</strong>d: für δ > 0 und x ∈ [0, 1] ist<br />

∑<br />

B n j (x) ≤ 1 ∣ ∣ j ∣∣≥δ<br />

δ 2<br />

n −x<br />

n ∑<br />

j=0<br />

( j<br />

n − x ) 2<br />

B n j<br />

(x) =<br />

x(1 − x)<br />

nδ 2 ≤ 1<br />

4nδ 2 .<br />

(A.19)<br />

Das war’s dann auch schon fast! Sei nun f ∈ C[0, 1], dann ist f ja nicht nur stetig,<br />

sondern sogar gleichmäßig stetig, das heißt, für alle ε > 0 gibt es e<strong>in</strong> δ > 0 so daß<br />

|x − y| < δ ⇒ |f(x) − f(y)| < ε 2 .<br />

Sei also ε > 0 vorgegeben und δ > 0 passend gewählt. Dann ist, für beliebiges x ∈ [0, 1],<br />

∣ ∣∣∣∣∣ n∑<br />

n∑<br />

|f(x) − B n f(x)| =<br />

(f(x) − f(j/n)) B n j<br />

∣<br />

(x) ≤ |f(x) − f(j/n)| B n j (x)<br />

j=0<br />

j=0<br />

∑<br />

= |f(x) − f(j/n)| B n ∣ } {{ }<br />

j (x) +<br />

∑<br />

|f(x) − f(j/n)| B n ∣ } {{ }<br />

j (x)<br />

∣ j ∣∣ ε −1 δ −2 ‖f‖ I<br />

.<br />

Der Beweis zeigt uns, daß <strong>die</strong> Approximationsgeschw<strong>in</strong>digkeit (also der Grad, der<br />

für e<strong>in</strong>e bestimmte Approximationsgüte notwendig ist) entscheidend davon abhängt,<br />

wie gleichmäßig stetig <strong>die</strong> Funktion f, denn der Wert δ = δ(ε) kann beliebig schnell<br />

fallen. Dies ist e<strong>in</strong> weiterer Beleg dafür, daß Stetigkeit alle<strong>in</strong> oftmals nicht genug ist,<br />

e<strong>in</strong> generelles Pr<strong>in</strong>zip bei Anwendungen.<br />

A.4 Schoenberg–Whitney und <strong>die</strong> totale Nichtnegativität der Kollokationsmatrix<br />

Def<strong>in</strong>ition A.4 Sei d = (d 0 , . . . , d n ) ∈ R n+1 . 197 E<strong>in</strong>e Teilmenge Σ = {σ 1 , . . . , σ k } ⊂<br />

{0, . . . , n} heißt Signatur bezüglich d, falls<br />

d σl d σl+1 < 0, l = 0, . . . , k − 1. (A.20)<br />

Mit Σ(d) bezeichnen wir <strong>die</strong> Menge aller Signaturen für d und def<strong>in</strong>ieren <strong>die</strong> Anzahl der echten<br />

Vorzeichenwechsel von d, <strong>in</strong> Zeichen S(d), als<br />

S(d) = max<br />

Σ∈Σ(d) #Σ.<br />

197 Wir betrachten jetzt also skalare Spl<strong>in</strong>ekurven, den Fall d = 1.<br />


218 A ANHANG<br />

ε/2<br />

ε/2<br />

δ<br />

Abbildung A.1: Idee des Beweises von Satz 8.3: Auf dem farbig unterlegten δ–<br />

Intervall um den Punkt x weichen <strong>die</strong> Funktionen um maximal ε vone<strong>in</strong>ander ab,<br />

und <strong>die</strong>se Abweichung ist wegen der gleichmäßigen Stetigkeit unabhängig von<br />

der Lage des δ– ”<br />

Fensters“, auf dem Rest des Intervalls hat <strong>die</strong> (blaue) ”<br />

Maskierungsfunktion“<br />

h<strong>in</strong>gegen so e<strong>in</strong>en kle<strong>in</strong>en Wert, daß der Fehler dort machen<br />

kann, was er will.<br />

Wir zeigen zuerst, daß <strong>die</strong> Zahl der Vorzeichenwechsel durch Knotene<strong>in</strong>fügen nicht<br />

vergrößert wird.<br />

Lemma A.5 Ist T ∗ e<strong>in</strong>e Verfe<strong>in</strong>erung von T = T n,m und ist d ∗ ∈ R 1×n∗ der durch Knotene<strong>in</strong>fügen<br />

aus d enstandene Koeffizientenvektor, dann gilt<br />

S (d ∗ ) ≤ S (d) .<br />

Beweis: Es genügt natürlich, sich auf Verfe<strong>in</strong>erungen zu beschränken, <strong>die</strong> nur e<strong>in</strong>en<br />

Knoten e<strong>in</strong>fügen, allgeme<strong>in</strong>e Verfe<strong>in</strong>erungen ergeben sich durch Iteration. Sei also<br />

t 0 ≤ · · · ≤ t j ≤ t ∗ ≤ t j+1 ≤ · · · ≤ t n+m+1<br />

und T ∗ = T ∪ {t ∗ }. Nach Satz 9.24 ergeben sich <strong>die</strong> Koeffizienten als<br />

d ∗ k = ⎧<br />

⎨<br />

⎩<br />

(<br />

d k k = 0, . . . , j − m,<br />

u 0 t ∗ |I m ) (<br />

k dk−1 + u 1 t ∗ |I m )<br />

k dk k = j − m + 1, . . . , j,<br />

d k−1 k = j + 1, . . . , n + 1.


A.4 Schoenberg–Whitney und <strong>die</strong> totale Nichtnegativität der Kollokationsmatrix219<br />

Abbildung A.2: Die Beweisidee von Lemma A.5. Die Variation des gestrichelten<br />

Polygons auf der rechten Seite, also S (d ∗ ), ist kle<strong>in</strong>er als <strong>die</strong> Variation des<br />

durchgezogenen Polygons (es werden ja zusätzliche Ecken dazwischengeschoben)<br />

mit schwarzen und weißen Ecken, bei dem man wiederum <strong>die</strong> schwarzen ”<br />

Ecken“<br />

vergessen kann, weil sie auf Verb<strong>in</strong>dungsgeraden liegen.<br />

Sei<br />

d ′ = ( d 0 , . . . , d j−m , dj−m+1 ∗ , d j−m+1, dj−m+2 ∗ , . . . , d j−1, dj ∗ , d )<br />

j, d j+1 , . . . , d n .<br />

Da dk ∗ e<strong>in</strong>e Konvexkomb<strong>in</strong>ation von d k−1 und d k ist, k = j − m + 1, . . . , j, ist<br />

S (d k−1 , dk ∗ , d k) = S (d k−1 , d k ) ,<br />

also S (d ′ ) = S (d). Andererseits ist<br />

d ∗ = ( d 0 , . . . , d j−m , dj−m+1 ∗ , . . . , d∗ j , d )<br />

j, d j+1 , . . . d n<br />

e<strong>in</strong>e Teilfolge von d ′ und damit ist S (d ∗ ) ≤ S (d ′ ) = S (d).<br />

□<br />

Def<strong>in</strong>ition A.6 E<strong>in</strong> Punkt x ∈ R heißt isolierte Nullstelle e<strong>in</strong>er Funktion f ∈ C (R) falls<br />

f(x) = 0 und es für alle kompakten Intervalle I ∋ x mit nichtleerem Inneren e<strong>in</strong>en Punkt y ∈ I<br />

gibt, so daß f(y) ̸= 0.<br />

Bemerkung A.7 Isolierte Nullstellen müssen nicht e<strong>in</strong>fach se<strong>in</strong>: f(x) = x 2n hat e<strong>in</strong>e 2n–<br />

fache isolierte Nullstelle an x = 0. Umgekehrt hat <strong>die</strong> abgebrochene Potenz 198 (· − x 0 ) n + zwar<br />

jede Menge Nulstellen, nämlich (−∞, x 0 ], aber ke<strong>in</strong>e davon ist isoliert.<br />

Lemma A.8 Sei k ≥ 0, T = T m,n e<strong>in</strong>e Knotenfolge und d ∈ R n+1 e<strong>in</strong> Kontrollvektor so daß<br />

d l = 0, l ̸∈ {j, . . . , j + k} und so, daß <strong>die</strong> Spl<strong>in</strong>efunktion N m,T d auf ke<strong>in</strong>em Teil<strong>in</strong>tervall von<br />

I := [ t j , t j+k+m+1<br />

]<br />

verschw<strong>in</strong>det. Dann hat Nm,T d höchstens k isolierte Nullstellen <strong>in</strong> I.<br />

Beweis: Da N m,T d| J<br />

∈ Π m , J = [t l , t l+1 ], l = j, . . . , j + k + m, kann <strong>die</strong>se Funktion nur<br />

entweder vollständig verschw<strong>in</strong>den oder (im Inneren) isolierte Nullstellen haben. Da<br />

der Spl<strong>in</strong>e außerhalb von I verschw<strong>in</strong>det, s<strong>in</strong>d <strong>die</strong> Nullstellen am Rand nicht isoliert!<br />

198 Bei de Boor: ”<br />

Stutzfunktion“ – kl<strong>in</strong>gt auch nicht besser.


220 A ANHANG<br />

Nach Lemma 9.14 ist N m,T d(x) = 0, falls x ̸∈ I. Sei also x ∗ e<strong>in</strong>e Nullstelle von N m,T d<br />

im Inneren von I. Falls x ̸∈ T fügen wir x ∗ als m–fachen Knoten <strong>in</strong> <strong>die</strong> Knotenfolge T<br />

e<strong>in</strong>, falls x mit e<strong>in</strong>em µ–fachen Knoten (µ ≤ m) übere<strong>in</strong>stimmt, dann erhöhen wir<br />

dessen Vielfachheit auf m. Dies liefert e<strong>in</strong>e Knotenfolge T ∗ mit zugehörigem Kontrollvektor<br />

d ∗ . Nun ist aber<br />

# {x ∈ I ◦ : N m,T d(x) = 0} = # {x ∈ I ◦ : N m,T ∗d ∗ (x) = 0} ≤ S (d ∗ ) ≤ S (d) ≤ k.<br />

Außerdem kann e<strong>in</strong>e isolierte Nullstelle durch Knotene<strong>in</strong>fügen offensichtlich nur dann<br />

entstehen, wenn vorher e<strong>in</strong> Vorzeichenwechsel da war.<br />

□<br />

Beweis von Satz 9.6, ⇐“: Nehmen wir an, es gäbe e<strong>in</strong>en Vektor 0 ̸= d ∈ R n+1 ,<br />

” (<br />

so daß N m (X |T) d = 0, das heißt, daß N m,T xj |T ) = 0, j = 0, . . . , n. Ist nun für e<strong>in</strong><br />

j ∈ {m, . . . , n}<br />

j∑<br />

0 = N m,T d| Ij<br />

= d k N m k (·|T) ,<br />

dann ist nach dem Algorithmus von de Boor<br />

und N m,T d zerfällt <strong>in</strong><br />

N m,T d =<br />

j−m−1<br />

∑<br />

k=0<br />

k=j−m<br />

d j−m = · · · = d j = 0<br />

d k N m k (·|T)<br />

} {{ }<br />

=:f 1<br />

+<br />

n∑<br />

k=j+1<br />

d k N m k (·|T)<br />

} {{ }<br />

=:f 2<br />

,<br />

<strong>die</strong> <strong>die</strong> disjunkten Träger [ ] [ ]<br />

t 0 , t j und tj+1 , t n+m+1 haben. Auf <strong>die</strong>se Art und Weise<br />

können wir alle Teil<strong>in</strong>tervalle, auf denen der Spl<strong>in</strong>e identisch verschw<strong>in</strong>det, entfernen<br />

und schließlich annehmen, daß wir nur noch isolierte Nullstellen haben: Gäbe es<br />

nämlich e<strong>in</strong> nichttriviales Teil<strong>in</strong>tervall von irgende<strong>in</strong>em I j , auf dem der Spl<strong>in</strong>e verschw<strong>in</strong>det,<br />

dann müßte er, da er ja auf I j e<strong>in</strong> Polynom ist, auf ganz I j verschw<strong>in</strong>den.<br />

Also können wir e<strong>in</strong>en Kontrollvektor d f<strong>in</strong>den, so daß N m (X |T) d = 0, und<br />

es ( j und k gibt, ) so daß d l = 0, l ̸∈ {j, . . . , j + k} und N m,T d hat im offenen Intervall<br />

tj , t j+k+m+1 nur isolierte Nullstellen. Nun liegen aber <strong>in</strong> <strong>die</strong>sem Intervall <strong>die</strong> Interpolationspunkte<br />

x j , . . . , x j+k , also müßte N m,T d dort k + 1 isolierte Nullstellen haben,<br />

was aber Lemma A.8 widerspricht. Also ist <strong>die</strong> Matrix N m (X | T) nichts<strong>in</strong>gulär. □<br />

Beweis von Satz 9.6, 2: Sei t j e<strong>in</strong> Knoten der Vielfachheit < m und t j ≤ t ∗ ≤ t j+1 .<br />

Nach Satz 9.24 ist dann für <strong>die</strong> durch E<strong>in</strong>fügen von t ∗ entstandene Knotenfolge T ∗<br />

n+1<br />

N m k (·|T) = ∑<br />

α k,l N m l (·|T ∗ ) , (A.21)<br />

l=0


A.4 Schoenberg–Whitney und <strong>die</strong> totale Nichtnegativität der Kollokationsmatrix221<br />

wobei<br />

⎧<br />

⎨ (<br />

α k,l = u<br />

⎩ 0 t ∗ |I m l<br />

)<br />

δ kl (<br />

l = 0, . . . , k − m,<br />

δk,l−1 + u 1 t ∗ |I m )<br />

l δkl l = k − m + 1, . . . , k,<br />

δ k,l−1 l = k + 1, . . . , n + 1.<br />

Insbesondere gilt 199 , daß<br />

Wir setzen<br />

und def<strong>in</strong>ieren <strong>die</strong> Spaltenvektoren<br />

α k,l ̸= 0 ⇒ l ∈ {k, k + 1}. (A.22)<br />

X I = {x i : i ∈ I} , I ⊆ {0, . . . , n},<br />

N m j (X I |T) := [ N m j (x i |T) : i ∈ I ] , j = 0, . . . , n, I ⊆ {0, . . . , n}.<br />

Dann ist, für I, J ⊂ {0, . . . , n}, #I = #J = k, 200<br />

det N m (X |T) (I, J) = det [ N m j (X I |T) : j ∈ J ]<br />

= det [ N m j 1<br />

(X I |T) , N m j (X I |T) : j ∈ J \ {j 1 } ]<br />

⎡<br />

⎤<br />

∑n+1<br />

= det ⎣ α j1 ,l 1<br />

N m l 1<br />

(X I |T ∗ ) , N m j (X I |T) : j ∈ J \ {j 1 } ⎦<br />

=<br />

∑n+1<br />

l 1 =0<br />

l 1 =0<br />

α j1 ,l 1<br />

det [ N m l 1<br />

(X I |T ∗ ) , N m j (X I |T) : j ∈ J \ {j 1 } ]<br />

.<br />

=<br />

=<br />

∑n+1<br />

l 1 =0<br />

n+1<br />

∑<br />

l 1 =0<br />

α j1 ,l 1 · · ·<br />

· · ·<br />

n+1<br />

∑<br />

l k =0<br />

∑n+1<br />

l k =0<br />

α jk ,l k<br />

det [N m r (X I |T ∗ ) : r = l 1 , . . . , l k ]<br />

α j1 ,l 1 · · · α jk ,l k<br />

det N m (X |T ∗ ) (I, {l 1 , . . . , l k }) .<br />

Da, nach (A.22), α jr ,l r<br />

= 0 falls l r ̸∈ {j r , j r + 1}, und da 201 j 1 < · · · < j k , müssen <strong>die</strong><br />

Elemente jeder Indexmenge L = {l 1 , . . . , l k } <strong>in</strong> der obigen Summe auf alle Fälle <strong>die</strong><br />

Bed<strong>in</strong>gung l 1 ≤ · · · ≤ l k erfüllen. Tritt aber irgendwo Gleichheit e<strong>in</strong>, d.h. ist l r =<br />

l r+1 , dann enthält <strong>die</strong> Matrix N m (X |T ∗ ) (I, L) zwei identische Spalten und damit ist <strong>die</strong><br />

199 Wegen der beteiligten δ k,l und δ k,l−1 .<br />

200 Zur Er<strong>in</strong>nerung: N m (X |T) ist <strong>die</strong> Kollokationsmatrix und für e<strong>in</strong>e Matrix A bezeichnet A(I, J) <strong>die</strong><br />

Teilmatrix, <strong>die</strong> durch <strong>die</strong> mit I bzw. J <strong>in</strong>dizierten Zeilen bzw. Spalten gebildet wird.<br />

201 Dies ist <strong>die</strong> kanonische Annahme, daß J aufsteigend numeriert ist


222 A ANHANG<br />

Determ<strong>in</strong>ante gleich Null. Damit läuft <strong>die</strong> Summe über alle l 1 < · · · < l k , also über<br />

alle L ⊆ {0, . . . , n + 1} 202 mit #L = k. Mit anderen Worten, für<br />

α(J, L) :=<br />

k∏<br />

α jr ,l r<br />

≥ 0, J ⊆ {0, . . . , n}, L ⊆ {0, . . . , n + 1}, #J = #L,<br />

r=1<br />

haben wir, daß<br />

det N m (X |T) (I, J) = ∑ #L=k<br />

α(J, L) det N m (X |T ∗ ) (I, L) . (A.23)<br />

Fügen wir nun noch e<strong>in</strong>en Knoten e<strong>in</strong>, dann ergibt sich enstprechend für <strong>die</strong> neue<br />

Knotenfolge T ∗∗<br />

det N m (X |T) (I, J) = ∑ #L=k<br />

α(J, L) det N m (X |T ∗ ) (I, L)<br />

= ∑ α(J, L) ∑<br />

α(L, L ′ ) det N m (X |T ∗∗ ) ( I, L ′)<br />

#L=k #L ′ =k<br />

= ∑ ∑<br />

α(J, L)α(L, L ′ ) det N m (X |T ∗∗ ) ( I, L ′) .<br />

#L ′ =k #L=k<br />

} {{ }<br />

=:α 2 (J,L ′ )<br />

In <strong>die</strong>sem S<strong>in</strong>ne haben wir, für beliebiges N ∈ N, nach E<strong>in</strong>fügen von N Knoten 203 , für<br />

das resultierende T N∗ ,<br />

det N m (X |T) (I, J) = ∑ #L=k<br />

α N (J, L) det N m<br />

(X |T N∗) (I, L) , (A.24)<br />

wobei<br />

α N (J, L) = ∑<br />

#L 1 =k<br />

· · ·<br />

∑<br />

N+1<br />

∏<br />

#L N−1 =k r=1<br />

α (L r , L r+1 ) , L r ⊂ {0, . . . , n + r}, r = 1, . . . , N.<br />

(A.25)<br />

Wir wählen nun T N∗204 so dicht, daß zwischen je zwei Interpolationspunkten x j und<br />

x j+1 m<strong>in</strong>destens m + 1 Knoten liegen und daher, für k = 0, . . . , n,<br />

N m j (x k |T ∗ ) ̸= 0 ⇒ N m j (x l |T ∗ ) = 0, l ̸= k.<br />

Also hat jede Spalte jeder der (oberen Dreiecks-) Matrizen N m<br />

(<br />

X |T<br />

N∗ ) (I, L), L ⊂ {0, . . . , n +<br />

N}, höchstens e<strong>in</strong>en von Null verschiedenen E<strong>in</strong>trag. Liegt wenigstens e<strong>in</strong>er davon<br />

202 Achtung: Der Index kann jetzt auch n + 1 werden!<br />

203 Es genügt, wenn <strong>die</strong>se Knoten e<strong>in</strong>fach, also t ∗ 1 < t∗ 2 < · · · < t∗ N und neu, also t∗ j<br />

204 Genauer, <strong>die</strong> e<strong>in</strong>gefügten Knoten.<br />

̸∈ T, s<strong>in</strong>d.


A.5 E<strong>in</strong>e Anwendung nichtl<strong>in</strong>earer Gleichungen: Das Bierkastenproblem 223<br />

nicht auf der Diagonale, dann ist det N m<br />

(<br />

X |T<br />

N∗ ) (I, L) = 0, andernfalls ergibt sich<br />

det N m<br />

(X |T N∗) (I, L) =<br />

k∏<br />

N m l r<br />

(x ir |T ∗ ) > 0.<br />

} {{ }<br />

>0<br />

r=1<br />

Setzt man das <strong>in</strong> (A.24) und berücksichtigt man (A.25), dann heißt das gerade, daß<br />

det N m (X ) (I, J) > 0.<br />

□<br />

A.5 E<strong>in</strong>e Anwendung nichtl<strong>in</strong>earer Gleichungen: Das Bierkastenproblem<br />

Es ist vielleicht e<strong>in</strong>mal ganz illustrativ, zu sehen, wie man von e<strong>in</strong>em realen Anwendungsproblem<br />

zum Newtonverfahren und dessen ganz praktischen Schwierigkeiten<br />

kommen kann. Das folgende Problem stammt aus der Automatisierungstechnik<br />

und beschäftigt sich mit Robotern, <strong>die</strong> Getränkekisten, genauer Stapel von Getränkekisten<br />

205 , bewegt und zwar ber e<strong>in</strong> H<strong>in</strong>dernis h<strong>in</strong>weg. Um <strong>die</strong>ses H<strong>in</strong>dernis zu umfahren,<br />

muss <strong>die</strong> Bahn des Roboters durch e<strong>in</strong>en bestimmten Punkt h<strong>in</strong>durchgeführt<br />

werden. Aus technischen Gründen 206 ist <strong>die</strong> Bahn e<strong>in</strong>e Komb<strong>in</strong>ation aus Geradenstücken<br />

und Kreisbögen mit e<strong>in</strong>em festen Radius r. Damit <strong>die</strong> Bierkästen nicht umfallen<br />

Abbildung A.3: E<strong>in</strong>e zulässige Bahn durch den vorgegebenen Punkt. Die Kreise<br />

mit dem vorgegebeben Radius s<strong>in</strong>d e<strong>in</strong>gezeichnet.<br />

muss <strong>die</strong> Bahn ausserdem im Anfangs- und Endpunkt e<strong>in</strong>e senkrechte Tangente haben,<br />

siehe Abb. A.3. Die Aufgabe ist nun:<br />

Wie bestimmt man den kürzesten derartigen Weg.<br />

205 Daher der <strong>in</strong>terne ”<br />

Codename“ des Projekts: Das Bierkastenproblem<br />

206 So ist das D<strong>in</strong>g halt e<strong>in</strong>fach gebaut.


224 A ANHANG<br />

Dabei überlegt man sich zunächst, daß sich das Problem ziemlich vere<strong>in</strong>fachen lässt.<br />

Da der Pfad senkrecht beg<strong>in</strong>nt und endet, besteht er immer aus e<strong>in</strong>em Halbkreis und<br />

zwei Geraden, siehe Abb. A.4. Die beiden Mittelpunkte s<strong>in</strong>d durch Anfangs- bzw.<br />

Abbildung A.4: Die Kreis- und Geradenanteile. Genau genommen <strong>in</strong>teressiert<br />

e<strong>in</strong>en also nur e<strong>in</strong> Pfad vom ersten Kreismittelpunkt über e<strong>in</strong>em Punkt, dessen<br />

Abstand zum ”<br />

Ausweichpunkt“ mit dem Radius übere<strong>in</strong>stimmt zum Mittelpunkt<br />

des zweiten Kreises.<br />

Endpunkt und Radius e<strong>in</strong>deutig bestimmt, der e<strong>in</strong>zige ”<br />

Freiheitsgrad“ besteht also <strong>in</strong><br />

der Wahl des Punktes, an dem sich <strong>die</strong> beiden L<strong>in</strong>ienstücke treffen und <strong>die</strong>ser muss<br />

auf e<strong>in</strong>em Kreis mit dem Radius r um den Ausweichpunkt c liegen, siehe Abb. A.5,<br />

c<br />

r<br />

a<br />

b<br />

Abbildung A.5: Das wirkliche Optimierungsproblem.<br />

und zwar so, daß der Gesamtweg m<strong>in</strong>imal wird. Das Optimierungsproblem besteht<br />

also dar<strong>in</strong>, e<strong>in</strong>en Punkt x auf dem Kreis so zu wählen, daß der Gesamtweg m<strong>in</strong>imiert<br />

wird, also<br />

m<strong>in</strong> w(x) := m<strong>in</strong> ‖x − a‖ x<br />

x 2<br />

+ ‖x − b‖ 2<br />

, ‖x − c‖ 2<br />

= r. (A.26)


A.5 E<strong>in</strong>e Anwendung nichtl<strong>in</strong>earer Gleichungen: Das Bierkastenproblem 225<br />

Das Geme<strong>in</strong>e an der Sache ist, daß man hier wirklich w, also <strong>die</strong> Summe der beiden<br />

Streckenlängen zu m<strong>in</strong>imieren hat und nicht den sehr populären Wert ‖x − a‖ 2 2 +<br />

‖x − b‖ 2 2<br />

. Durch <strong>die</strong> unsche<strong>in</strong>bare Quadrierung wird das Problem deutlich e<strong>in</strong>facher,<br />

allerd<strong>in</strong>gs ist halt dann auch <strong>die</strong> Lösung e<strong>in</strong>e andere.<br />

Wir bemerken zuerst e<strong>in</strong>mal, daß das M<strong>in</strong>imum e<strong>in</strong>deutig se<strong>in</strong> muss, es kann also<br />

nur genau e<strong>in</strong>en Punkt geben, für den der Weg am kürzesten ist. Das ist e<strong>in</strong>e Konsequenz<br />

aus der (strikten) Konvexität der Norm, <strong>die</strong> besagt, daß<br />

x + x ′<br />

∥ 2 ∥ < 1 (<br />

‖x‖2 + ∥ ∥x ′∥ )<br />

∥<br />

2<br />

2<br />

2<br />

ist. Wären nun x, x ′ zwei Punkte auf dem Kreis, für <strong>die</strong> der Weg w(x) = w (x ′ ) m<strong>in</strong>imal<br />

ist, dann ist<br />

( x + x<br />

′<br />

)<br />

w =<br />

x + x ′<br />

2 ∥ − a<br />

2 ∥ +<br />

x + x ′<br />

∥ − b<br />

2<br />

2 ∥ 2<br />

=<br />

1 [ (<br />

∥ (x − a) + x ′ − a )]∥ ∥∥2 +<br />

1 [ (<br />

2<br />

∥ (x − b) + x ′ − b )]∥ ∥∥2<br />

2<br />

< 1 (<br />

‖x − a‖2 + ∥ ∥x ′ − a ∥ 2<br />

2<br />

+ ‖x − b‖ 2<br />

+ ∥ ∥x ′ − b ∥ ) 1 ( (<br />

2<br />

= w(x) + w x<br />

′ )) ,<br />

2<br />

und der Weg über den Mittelpunkt wäre kürzer. Nun liegt der Mittelpunkt aber im<br />

Kreis, doch wenn wir ihn mit dem Kreiszentrum verb<strong>in</strong>den und <strong>die</strong>se Gerade wieder<br />

mit dem Kreis schneiden, dann erhalten wir sogar e<strong>in</strong>en noch kürzeren Weg.<br />

Mit demselben Argument erhalten wir auch, daß w(x) ke<strong>in</strong>e lokalen M<strong>in</strong>ima auf<br />

dem Kreis haben, also ”<br />

auf und ab“ gehen kann. Gäbe es e<strong>in</strong>en Punkt x, so daß zwischen<br />

x und der M<strong>in</strong>imalstelle x ∗ größere Werte als w(x) auftauchen, dann gibt es e<strong>in</strong>en<br />

” nächstgelegenen“ Punkt x′ , so daß w(x) = w(x ′ ) ≤ w(y) für alle y ∈ [x, x ′ ] ist, was<br />

aber für den Mittelpunkt 1 2 (x + x′ ) nicht zutrifft. Mit anderen Worten: w(x) fällt monoton<br />

bis w (x ∗ ) und steigt von dort aus wieder.<br />

x<br />

a<br />

b<br />

Abbildung A.6: Parametrisierung und Koord<strong>in</strong>atensystem.


226 A ANHANG<br />

Nun parametrisieren wir x als<br />

x = c + r<br />

[ s<strong>in</strong> φ<br />

cos φ<br />

]<br />

, φ ∈ [−π, π] ,<br />

nehmen der E<strong>in</strong>fachheit an, daß r = 1 ist 207 , und erhalten, daß<br />

w(x) = w(φ) = l a (φ) + l b (φ)<br />

√<br />

:= (c 1 + s<strong>in</strong> φ − a 1 ) 2 + (c 2 + cos φ − a 2 ) 2<br />

√<br />

+ (c 1 + s<strong>in</strong> φ − b 1 ) 2 + (c 2 + cos φ − b 2 ) 2 .<br />

Dann ist<br />

und somit<br />

l ′ a(φ) = 2 (c 1 − a 1 + s<strong>in</strong> φ) cos φ − 2 (c 2 − a 2 + cos φ) s<strong>in</strong> φ<br />

2l a (φ)<br />

= (c 1 − a 1 ) cos φ − (c 2 − a 2 ) s<strong>in</strong> φ<br />

l a (φ)<br />

w ′ (φ) = (c − a)T s ′ (φ)<br />

l a (φ)<br />

+ (c − b)T s ′ [<br />

(φ)<br />

s<strong>in</strong> φ<br />

, s(φ) =<br />

l b (φ)<br />

cos φ<br />

]<br />

.<br />

Auf der anderen Seite ist aber auch<br />

also<br />

l 2 a(φ) = (c 1 + s<strong>in</strong> φ − a 1 ) 2 + (c 2 + cos φ − a 2 ) 2<br />

= (c 1 − a 1 ) 2 + 2 (c 1 − a 1 ) s<strong>in</strong> φ + s<strong>in</strong> 2 φ + (c 2 − a 2 ) 2 + 2 (c 2 − a 2 ) cos φ + cos 2 φ<br />

= 1 + ‖c − a‖ 2 2 + 2 (c − a)T s (φ) =: 1 + ‖c − a‖ 2 2 + 2 f a(φ),<br />

w ′ (φ) = √<br />

f a(φ)<br />

′ + √<br />

f<br />

b ′ (φ) .<br />

1 + ‖c − a‖ 2 2 + 2 f a(φ) 1 + ‖c − b‖ 2 2 + 2 f b(φ)<br />

Der Nenner <strong>die</strong>ses Ausdrucks ist ̸= 0 wenn ‖c − a‖ > 1 und ‖c − b‖ > 1 s<strong>in</strong>d,<br />

was auch geometrisch–anschaulich e<strong>in</strong>e vernünftige Annahme darstellt: Anfangs- und<br />

Endpunkt liegen ausserhalb des Kreises um c.<br />

Damit könne wir unsere Bestimmungsgleichung 0 = w ′ (φ) für das M<strong>in</strong>imum <strong>in</strong><br />

umformen. Da<br />

0 = g(φ) = l b (φ) f ′ a(φ) + l a (φ) f ′ b (φ)<br />

g ′ (φ) = l ′ b (φ) f′ a(φ) + l b (φ) f ′′<br />

a (φ) + l ′ a(φ) f ′ b (φ) + l a(φ) f ′′<br />

b (φ)<br />

207 So viel Normalisierung kann und darf schon se<strong>in</strong>.


A.5 E<strong>in</strong>e Anwendung nichtl<strong>in</strong>earer Gleichungen: Das Bierkastenproblem 227<br />

ist, können wir nun (versuchen,) φ über e<strong>in</strong>e univariate Newton–Iteration oder über<br />

Bisektion zu bestimmen.<br />

Betrachtet man <strong>die</strong> Menge der Punkte x, für wie w(x) konstant ist, also <strong>die</strong> Niveaul<strong>in</strong>ien<br />

von w, dann ist <strong>die</strong>s gerade e<strong>in</strong>e Ellipse mit den beiden Brennpunkten a und<br />

b. Diese Ellipse hat <strong>die</strong> beiden Halbachsen α und β, <strong>die</strong> <strong>die</strong> Bed<strong>in</strong>gung α 2 + β 2 =<br />

‖a − b‖ 2 erfüllen. Jeder Punkt auf der Ellipse hat dann <strong>in</strong> der Summe den Abstand 2α<br />

von den beiden Brennpunkten und <strong>die</strong> Suche nach dem kürzesten Weg ist äquivalent<br />

zum Auff<strong>in</strong>den der Berührellipse mit der großen Halbachse α, siehe Abb. A.7. Dazu<br />

6<br />

5<br />

l<strong>in</strong>e 1<br />

l<strong>in</strong>e 2<br />

l<strong>in</strong>e 3<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-6 -4 -2 0 2 4 6<br />

Abbildung A.7: Berührellipse an <strong>die</strong> Kugel und der zugehörige kürzeste Weg.<br />

empfiehlt es sich, e<strong>in</strong> paar Vere<strong>in</strong>fachungen zu machen. Wir setzen e = ‖a − b‖ 2<br />

und<br />

wählen a = [−e, 0], b = [0, e] und legen damit den Ursprung <strong>in</strong> <strong>die</strong> Mitte zwischen den<br />

beiden Punkten. Die Gleichung für <strong>die</strong> Ellipse ist dann<br />

und <strong>die</strong> der Kugel ja bekanntlich<br />

x 2<br />

α 2 + y2<br />

β 2 = 1, α2 − β 2 = e 2 = ‖a − b‖ 2 2 , (A.27)<br />

(x − c 1 ) 2 + (y − c 2 ) 2 = r 2 . (A.28)<br />

Dieses Gleichungssystem aus (A.27) und (A.28) hat im allgeme<strong>in</strong>en vier Lösungen,<br />

beispielsweise, wenn c = 0 und β < r < α ist. Zwei der Lösungen s<strong>in</strong>d anschaulich<br />

sofort klar, nämlich der nachste Punkt wie <strong>in</strong> Abb A.7 und <strong>die</strong> Berührellipse an den<br />

fernsten Punkt des Kreises. Die beiden anderen Lösungen entsprechen Ellipsen mit<br />

negativer Halbachse, deren ”<br />

Mittelpunkt“ im Unendlichen liegt, was zu Berührhyperbeln<br />

an den Kreis führt. Das wird sich auch <strong>in</strong> unserem Fall nicht ändern, und wir<br />

müssten α so bestimmen, daß es zwei komplexe und e<strong>in</strong>e doppelte reelle Lösung des<br />

Gleichungssystems gibt. Dieses Problem lässt sich mit Methoden der Computeralgebra<br />

angehen, ist da aber dann schon e<strong>in</strong> echter Härtetest, siehe [34].


228 A ANHANG<br />

Um das Problem ausgehend von <strong>die</strong>ser geometrischen Überlegung numerisch anzugehen,<br />

verwenden wir <strong>die</strong> parametrischen Darstellungen von Kugel und Ellipse als<br />

K(φ) = c − r<br />

[ s<strong>in</strong> φ<br />

cos φ<br />

]<br />

[ α s<strong>in</strong> ψ<br />

, E(ψ) =<br />

β cos ψ<br />

]<br />

, φ, ψ ∈ [−π, π].<br />

Wir müssen also α, φ und ψ so bestimmen, daß wir e<strong>in</strong>en Berührpunkt erhalten, daß<br />

also <strong>die</strong> Tangenten<br />

[<br />

K ′ cos φ<br />

(φ) = −r<br />

− s<strong>in</strong> φ<br />

]<br />

[<br />

, E ′ α cos ψ<br />

(φ) =<br />

−β s<strong>in</strong> ψ<br />

koll<strong>in</strong>ear s<strong>in</strong>d: K ′ (φ) = λE ′ (ψ), λ ̸= 0. Da <strong>die</strong> Tangentialvektoren nie = 0 s<strong>in</strong>d, können<br />

wir ohne weiteres λ ̸= 0 fordern. Setzen wir s φ := s<strong>in</strong> φ, c φ := cos φ und dasselbe für<br />

ψ, dann erhalten wir das Gleichungssystem<br />

zusammen mit den Nebebed<strong>in</strong>gungen<br />

0 = c 1 − r s φ − α s ψ ,<br />

0 = c 2 − r c φ − β c ψ ,<br />

0 = λ α c ψ − r c φ ,<br />

0 = λ β s ψ − r s φ ,<br />

0 = s 2 φ + c2 φ − 1,<br />

0 = s 2 ψ + c2 ψ − 1,<br />

0 = α 2 − β 2 − e 2 .<br />

Und das s<strong>in</strong>d nun wieder sieben Gleichungen <strong>in</strong> den sieben Unbekannten s φ , c φ , s ψ ,<br />

c ψ , α, β, λ, <strong>die</strong> sich sehr e<strong>in</strong>fach und schnell mit dem Newton–Verfahren lösen lassen<br />

(etwa fünf bis sechs Iterationen für <strong>die</strong> optimale Genauigkeit von 10 −16 ). Insbesondere<br />

ist <strong>die</strong> Jacobi–Matrix sehr e<strong>in</strong>fach und kommt ohne komplizierte oder numerisch ungenaue<br />

Operationen aus.<br />

E<strong>in</strong> wenig trickreich ist hierbei allerd<strong>in</strong>gs <strong>die</strong> Wahl des Startwerts. E<strong>in</strong>e vernünftige<br />

erste Näherung ist der Schnittpunkt der Verb<strong>in</strong>dung zwischen c und dem Mittelpunkt<br />

(0, 0) der Ellipse mit dem Kreis. Dieser Verb<strong>in</strong>dungsvektor ist gerade 0 − c = −c und<br />

der Schnittpunkt<br />

y = c −<br />

Der zurückgelegte Weg w(y) ist<br />

r<br />

[ ]<br />

sφ<br />

c =: c − r<br />

‖c‖ 2 c φ<br />

⇒<br />

[<br />

sφ<br />

c φ<br />

]<br />

]<br />

= c<br />

‖c‖ 2<br />

.<br />

‖y − (0, −e)‖ 2<br />

+ ‖y − (0, e)‖ 2<br />

= 2α, ⇒ α = ‖y − (0, −e)‖ 2 + ‖y − (0, e)‖ 2<br />

,<br />

2


A.6 Nullstellen von Polynomen 229<br />

woraus wir β = √ α 2 − e 2 und <strong>die</strong> Näherungen für<br />

erhalten. Das können wir noch zu<br />

˜s ψ = c 1 − rs φ<br />

, ˜c ψ = c 2 − rc φ<br />

α<br />

β<br />

s ψ =<br />

˜s ψ<br />

˜s 2 ψ + ˜c2 ψ<br />

und c ψ = ˜c ψ<br />

˜s 2 ψ + ˜c2 ψ<br />

normieren und haben so den W<strong>in</strong>kel <strong>in</strong> der Ellipse angenähert. Nachdem <strong>die</strong> Tangenten<br />

gegenläufig s<strong>in</strong>d, ist λ = −1 e<strong>in</strong> ganz gut geratener Wert. Das Ganze funktioniert<br />

gut, solange c zwischen den Brennpunkten liegt, genauer, wenn sich <strong>die</strong> Projektion von<br />

c auf <strong>die</strong> Verb<strong>in</strong>dungsgerade der Brennpunkte zwischen den Brennpunkten bef<strong>in</strong>det.<br />

Ansonsten divergiert gelegentlich das Verfahren oder konvergiert gegen <strong>die</strong> andere<br />

Extremlösung, nämlich den Kreispunkt, der zum längsten Weg gehört.<br />

A.6 Nullstellen von Polynomen<br />

E<strong>in</strong>e Schwierigkeit des Newton–Verfahrens, <strong>die</strong> wir bisher noch gar nicht so recht <strong>in</strong><br />

Betracht gezogen haben, ist <strong>die</strong> Bestimmung der Ableitung. Wenn man <strong>die</strong>se nicht<br />

gerade explizit kennt, wie beispielsweise bei S<strong>in</strong>us und Cos<strong>in</strong>us, ist es normalerweise<br />

schwierig und aufwendig, sie zu bestimmen – glücklicherweise mit e<strong>in</strong>er Ausnahme,<br />

das s<strong>in</strong>d <strong>die</strong> Polynome.<br />

Dazu er<strong>in</strong>nern wir uns an das Hornerschema zur Auswertung e<strong>in</strong>es Polynoms<br />

p(x) =<br />

n∑<br />

p j x j , p n ̸= 0, x ∈ R,<br />

j=0<br />

an der Stelle ξ ∈ R. Die Berechnungsregel lautet<br />

q n = p n , q j = q j (ξ) = ξ q j+1 + p j , j = n − 1, . . . , 0 (A.29)<br />

wobei dann p(ξ) = q 0 (ξ).<br />

Lemma A.9 Für ξ ∈ R erfüllt das Polynom<br />

∑n−1<br />

q(x) := q j+1 (ξ) x j , x ∈ R,<br />

j=0<br />

<strong>die</strong> Bed<strong>in</strong>gung<br />

p(x) = q 0 (ξ) + (x − ξ)q(x), x ∈ R. (A.30)


230 A ANHANG<br />

Beweis: Iteration von (A.29) liefert, daß<br />

also ist<br />

und<br />

n−j<br />

∑<br />

q j = p j+k ξ k , j = 0, . . . , n,<br />

k=0<br />

∑n−1<br />

∑n−1<br />

(x − ξ) q(x) + q 0 = (x − ξ) q j+1 x j + q 0 = q 0 +<br />

j=0<br />

j=0<br />

q j+1 x j+1<br />

} {{ }<br />

n∑<br />

= q j x j<br />

j=0<br />

∑n−1<br />

−<br />

j=0<br />

ξq j+1 (ξ) x j ,<br />

n−1<br />

∑<br />

ξq j+1 (ξ) x j =<br />

j=0<br />

=<br />

n−1<br />

∑<br />

j=0<br />

n−j−1<br />

∑<br />

k=0<br />

j=0 k=0<br />

n−1 n−j<br />

∑ ∑<br />

p j+1+k ξ k+1 x j = p j+k ξ k x j<br />

n∑ ∑n−j<br />

p j+k ξ k x j −<br />

} {{ }<br />

=q j<br />

j=0 k=1<br />

n∑<br />

p j x j =<br />

j=0<br />

n∑<br />

q j x j − p(x).<br />

j=0<br />

Korollar A.10 Für ξ ∈ R ist<br />

p ′ (ξ) = q (ξ) .<br />

□<br />

(A.31)<br />

Beweis: Ableiten von (A.30) nach x ergibt<br />

was mit x = ξ sofort (A.31) liefert.<br />

p ′ (x) = q(x) + (x − ξ) q ′ (x),<br />

Um q auszuwerten kann man nun wieder auf das Hornerschema zurückgreifen<br />

und <strong>die</strong> gerade berechneten Werte q j (ξ) verwenden. Das ergibt e<strong>in</strong> zweizeiliges Hornerschema<br />

r n = q n = p n , q j = ξq j+1 + p j , r j = ξr j+1 + q j , j = n − 1, . . . , 0. (A.32)<br />

□<br />

Korollar A.11 Für e<strong>in</strong> Polynom p ∈ Π n und ξ ∈ R berechnet das zweizeilige Hornerschema<br />

(A.32) <strong>die</strong> Werte p(ξ) = q 0 und p ′ (ξ) = r 1 .


A.6 Nullstellen von Polynomen 231<br />

%#<br />

%# Horner2Z.m<br />

%# Hornerschema mit Ableitungsberechnung<br />

%# Daten:<br />

%# p Koeffizientenvektor<br />

%# x Punkt<br />

function [q,r] = Horner2Z( p,x )<br />

n = length(p);<br />

q = r = p(n);<br />

for j=n-1:-1:2<br />

q = x*q + p(j);<br />

r = x*r + q;<br />

end<br />

q = x*q + p(1);<br />

%endfunction<br />

Programm A.1 Horner2Z.m: Das zweizeilige Hornerschema.<br />

Unter Verwendung des zweizeiligen Hornerschemas können wir nun sehr e<strong>in</strong>fach<br />

das Newton–Verfahren für Polynome programmieren und so <strong>die</strong> Nullstellen von Polynomen<br />

bestimmen. Unter gewissen Voraussetzungen kann man sogar ”<br />

extreme“ Nullstellen<br />

f<strong>in</strong>den.<br />

Proposition A.12 Sei p ∈ Π n e<strong>in</strong> Polynom mit n reellen Nullstellen ξ 1 ≤ · · · ≤ ξ n . Dann<br />

konvergiert für alle Startwerte x (0) ≥ ξ n bzw. x (0) ≤ ξ 1 das Newton–Verfahren gegen ξ n bzw.<br />

ξ 1 .<br />

Beweis: Wir bemerken zuerst, daß nach dem Satz von Rolle alle Nullstellen von<br />

p ′ , p ′′ , . . ., zwischen ξ 1 und ξ n liegen. Da p ke<strong>in</strong>e weiteren Nullstellen hat, ist entweder<br />

p(x) > 0, x > ξ n , oder p(x) < 0, x > ξ n . Nehmen wir den ersten Fall an 208 . Da, für<br />

x > ξ n ,<br />

0 < p(x) = p (ξ n ) +p ′ (ξ) (x − ξ<br />

} {{ }<br />

n ) , ξ ∈ [ξ n , x] ,<br />

=0<br />

und da p ′ rechts von ξ n ke<strong>in</strong>e Nullstelle mehr hat, ist also p ′ (x) > 0, x > ξ n . Sei nun<br />

ξ ′ ≤ ξ n <strong>die</strong> größte Nullstelle von p ′ , dann ist für x > ξ n ≥ ξ ′ auch<br />

0 < p ′ (x) = p ′ ( ξ ′) +p ′′ (ξ) ( x − ξ ′) , ξ ∈ [ ξ ′ , x ] ,<br />

} {{ }<br />

=0<br />

208 Das ist ke<strong>in</strong>e E<strong>in</strong>schränkung, ansonsten ersetzen wir p durch −p.


232 A ANHANG<br />

%#<br />

%# PolyNewton.m<br />

%# Nullstelle e<strong>in</strong>es Polynoms mit dem Newton-Verfahren<br />

%# Daten:<br />

%# p Koeffizientenvektor<br />

%# x0 Startwert<br />

%# t Toleranz<br />

function x = PolyNewton( p,x0,t )<br />

x = x0; x0 = 1-x0;<br />

[f,ff] = Horner2Z( p,x );<br />

while ( abs(f) > t ) && ( abs(x-x0) > t )<br />

x0 = x;<br />

x = x - f/ff;<br />

[f,ff] = Horner2Z( p,x );<br />

end<br />

%endfunction<br />

Programm A.2 PolyNewton.m: Nullstellen von Polynomen mit dem Newton–<br />

Verfahren.


A.6 Nullstellen von Polynomen 233<br />

das heißt, p ′′ (x) > 0, x > ξ n , und mit Iteration <strong>die</strong>ses Arguments erhält man, daß<br />

sgn p (j) (x) = sgn p(x), x > ξ n , j = 1, . . . , n.<br />

Insbesondere ist p rechts von ξ n konvex und damit ist<br />

(x (k))<br />

p<br />

x (k+1) = x (k) −<br />

p ′ ( x<br />

} {{ (k)) < x (k) ,<br />

}<br />

>0<br />

solange x (k) > ξ n . Bleibt zu zeigen, daß auch x (k+1) > ξ n . Dazu bemerken wir, daß<br />

(<br />

0 = p (ξ n ) = p x (k)) (<br />

(ξ<br />

+ ξ n − x (k)) ( p ′ x (k)) n − x (k)) 2<br />

+<br />

p ′ (ξ)<br />

(<br />

> p x (k)) +<br />

(ξ n − x (k)) ( p ′ x (k))<br />

(<br />

und, nach der Iterationsregel, p x (k)) (<br />

=<br />

(<br />

0 > x (k) − x (k+1) + ξ n − x (k)) ( p ′ x (k)) =<br />

} 2 {{ }<br />

>0<br />

x (k) − x (k+1)) ( p ′ x (k)) , also<br />

(ξ n − x (k+1)) ( p ′ x (k)) ,<br />

} {{ }<br />

>0<br />

und damit x (k+1) > ξ n . Da <strong>die</strong> Folge x (k) monoton fallend und ≥ ξ n ist, muß sie e<strong>in</strong>en<br />

Grenzwert x ∗ besitzen und da<br />

p<br />

(x (k))<br />

∣ ∣∣∣∣∣ ∣p ′ ( ∣<br />

x (k)) = ∣x (k+1) − x (k)∣ ∣ → 0<br />

konvergiert, muß p (x ∗ ) = 0 und damit x ∗ = ξ n se<strong>in</strong>.<br />

Damit haben wir e<strong>in</strong>e ”<br />

Strategie“, alle Nullstellen e<strong>in</strong>es Polynoms zu f<strong>in</strong>den: Man<br />

startet das Newton–Verfahren nach Möglichkeit ”<br />

weit genug“ rechts oder l<strong>in</strong>ks, f<strong>in</strong>det<br />

e<strong>in</strong>e Nullstelle 209 , divi<strong>die</strong>rt <strong>die</strong>se ab und sucht weiter, bis man schließlich alle Nullstellen<br />

gefunden hat. Das Abdivi<strong>die</strong>ren von Nullstellen ist nicht weiter schwer: Für<br />

ξ ∈ R ist<br />

n∑<br />

j=0<br />

a j x j = a n x n−1 (x − ξ) + (a n−1 + a n ξ) x n−1 +<br />

} {{ }<br />

=:b n−1<br />

n−2<br />

∑<br />

j=0<br />

a j<br />

}{{}<br />

=:b j<br />

x j = a n x n−1 (x − ξ) +<br />

n−1<br />

□<br />

∑<br />

b j x j ;<br />

<strong>die</strong> zugehörige Funktion ist <strong>in</strong> DivideZero.m implementiert. Um nun alle Nullstellen<br />

zu f<strong>in</strong>den, divi<strong>die</strong>rt man e<strong>in</strong>e gefundene Nullstelle ab und verwendet sie gleichzeitig<br />

210 als Startwert für das nächste Newton–Verfahren.<br />

209 Am besten natürlich <strong>die</strong> betragsgrößte oder betragskle<strong>in</strong>ste.<br />

210 In der Hoffnung, daß sie e<strong>in</strong>e extremale Nullstelle war.<br />

j=0


234 A ANHANG<br />

%#<br />

%# DivideZero.m<br />

%# Abdivi<strong>die</strong>ren e<strong>in</strong>er Nullstelle, gibt gemachten Fehler als zweiten Wert<br />

%# zurueck<br />

%# Daten:<br />

%# p Koeffizientenvektor<br />

%# x Nullstelle<br />

function [q,err] = DivideZero( p,x )<br />

n = length( p );<br />

q = zeros( 1,n-1 );<br />

for j = n:-1:2<br />

t = q( j-1 ) = p( j );<br />

p( j-1 ) = p( j-1 ) + t*x;<br />

end<br />

err = p( 1 );<br />

%endfunction<br />

Programm A.3 DivideZero.m: Abdivi<strong>die</strong>ren e<strong>in</strong>er Nullstelle.


A.6 Nullstellen von Polynomen 235<br />

%#<br />

%# PolyZeros.m<br />

%# F<strong>in</strong>de Nullstellen e<strong>in</strong>es Polynoms mit vorgegebener Toleranz und durch<br />

%# Abdivi<strong>die</strong>ren<br />

%# Daten:<br />

%# p Koeffizientenvektor<br />

%# x0 Startwert<br />

%# t Toleranz<br />

function z = PolyZeros( p,x0,t )<br />

n = length( p );<br />

z = zeros( 1,n-1 );<br />

x = x0;<br />

for j = 1:n-1<br />

z( j ) = x = PolyNewton( p,x,t );<br />

disp(x);<br />

p = DivideZero( p,x );<br />

end<br />

%endfunction<br />

Programm A.4 PolyZeros.m: Newton–Verfahren mit Adivi<strong>die</strong>ren.


236 A ANHANG<br />

Beispiel A.13 Leider ist <strong>die</strong> hier vorgestellte Variante des Newton–Verfahrens nicht übermäßig<br />

stabil, <strong>in</strong>sbesondere das Abdivi<strong>die</strong>ren führt zu Problemen.<br />

1. Betrachten wir das Polynom<br />

13<br />

∏<br />

p(x) =<br />

j=0<br />

(<br />

x − 2 −j) , x ∈ R,<br />

siehe [41, S. 259–260]. Startet man das Newton–Verfahren mit der größten Nullstelle<br />

x (0) = 1, dann erhält man <strong>die</strong> folgenden Nullstellen 211<br />

ε = 10 −6<br />

ε = ^u<br />

Exakt Berechnet rel. Fehler Berechnet rel. Fehler<br />

1 1 0 1 0<br />

0.5 0.50580 0.011600 0.5000 2.6645 × 10 −15<br />

0.25 −0.13001 1.5201 0.25000 2.1575 × 10 −11<br />

0.125 −0.24151 2.9321 0.12500 1.1627 × 10 −6<br />

0.0625 → 0.062352 0.0023729<br />

0.03125 0.039506 0.26421<br />

0.015625 →<br />

der Startwert x (0) = 2 liefert sogar das noch weniger begeisternde Ergebnis<br />

ε = 10 −6<br />

ε = ^u<br />

Exakt Berechnet rel. Fehler Berechnet rel. Fehler<br />

1 1.0000 8.5183 × 10 −10 1.0000 2.2204 × 10 −16<br />

0.5 0.50580 0.011592 0.50000 2.4125 × 10 −12<br />

0.25 −0.12996 1.5199 0.25000 1.3175 × 10 −8<br />

0.125 −0.24163 2.9330 0.12500 3.1917 × 10 −5<br />

0.0625 → 0.058106 0.070300<br />

0.03125 0.054892 0.75654<br />

0.015625 →<br />

2. E<strong>in</strong> anderes ”<br />

Monster“ ist das schon klassische Wilk<strong>in</strong>son–Polynom<br />

p(x) = (x − 1) · · · (x − 20) , x ∈ R,<br />

mit den ganz sauber getrennten Nullstellen 1, . . . , 20. Dieses Polynom hat <strong>die</strong> Rundungsfehleranalyse<br />

sehr stark motiviert und bee<strong>in</strong>flußt, siehe [47]. Die Details s<strong>in</strong>d <strong>in</strong><br />

[44, 45] ausgearbeitet. Die Koeffizienten <strong>die</strong>ses Polynoms s<strong>in</strong>d sehr groß (bis zur Größenordnung<br />

10 18 ), was relative Fehler unvermeidlich macht, und das Problem ist extrem schlecht<br />

konditioniert bezüglich <strong>die</strong>ser Nullstellen. Deswegen ist e<strong>in</strong>e numerische Berechnung<br />

praktisch unmöglich.<br />

211<br />

”<br />

→“ bedeutet, daß <strong>die</strong> Rechnung nicht mehr term<strong>in</strong>iert, also das Verfahren sich ”<br />

aufhängt“.


A.7 Quadratur nach Art des Gaußes 237<br />

A.7 Quadratur nach Art des Gaußes<br />

In <strong>die</strong>sem “Bonus–Abschnitt” sehen wir uns noch an, wie Gauß <strong>die</strong> Knoten und Gewichte<br />

der Gauß–Quadratur für das Intervall [0, 1] hergeleitet hat. Gauß selbst hat mit formalen<br />

Potenzreihen gerechnet 212 und sich um Fragen der Konvergenz, <strong>die</strong> man sich zu <strong>die</strong>ser<br />

Zeit auch nicht unbed<strong>in</strong>gt gestellt hat, gekümmert. Man kann aber zeigen, daß alle betrachteten<br />

Reihen tatsächlich auf e<strong>in</strong>em passenden Bereich konvergieren – und nur da<br />

sieht man sie sich dann auch an. Auch bei der Darstellung der meisten Rechenschritte<br />

versuche ich hier, den “Gaußschen Geist” beizubehalten, also e<strong>in</strong>e (freie) Übertragung<br />

der Orig<strong>in</strong>alarbeit [9]. Doch zuerst <strong>die</strong> Übungsaufgaben für das Selbststudium.<br />

Übung A.3 [Kettenbrüche] Seien Zahlen v k , w k , k ∈ N 0 , gegeben. Dann heißt, für<br />

n ∈ N,<br />

C n := v 1|<br />

|w 1<br />

+ v 2|<br />

|w 2<br />

+ · · · vn|<br />

|w n<br />

=<br />

w 1 +<br />

w 2 +<br />

v 1<br />

v 2<br />

, C 0 := 0,<br />

. ..<br />

+ v n<br />

w n<br />

n–te Konvergente des Kettenbruchs<br />

v 1 |<br />

+ v 2|<br />

+ · · · =<br />

|w 1 |w 2<br />

w 1 +<br />

v 1<br />

v 2<br />

w 2 +<br />

. ..<br />

.<br />

Zeigen Sie:<br />

1. Sei C n = V n /W n . Dann erfüllen V n und W n <strong>die</strong> Rekursionsformeln<br />

2. Für n ∈ N 0 gilt<br />

V 0 = 0, V 1 = v 1 , V n+1 = w n+1 V n + v n+1 V n−1<br />

, n ∈ N.<br />

W 0 = 1, W 1 = w 1 , W n+1 = w n+1 W n + v n+1 W n−1<br />

und damit <strong>die</strong> (formale) Identität<br />

212 Ja, wirklich gerechnet!<br />

V n<br />

W n<br />

− V n+1<br />

W n+1<br />

= (−1) n+1 v 1 · · · v n+1<br />

W n W n+1<br />

,<br />

v 1 |<br />

|w 1<br />

+ v 2|<br />

|w 2<br />

+ · · · =<br />

∞∑<br />

k=0<br />

(−1) k v 1 · · · v k+1<br />

W k W k+1<br />

.


238 A ANHANG<br />

3. (D. Bernoulli) Für jede Folge von reellen Zahlen c n , n ∈ N 0 , mit c n+1 ̸= c n gibt es<br />

e<strong>in</strong>en Kettenbruch<br />

v 1 |<br />

+ v 2|<br />

+ v 3|<br />

+ · · · ,<br />

|w 1 |w 2 |w 3<br />

so daß<br />

ist, und zwar<br />

c n = v 1|<br />

|w 1<br />

+ · · · + v n|<br />

|w n<br />

v 1 = c 1 , w 1 = 1,<br />

v n =<br />

c n−1 − c n<br />

c n−1 − c n−2<br />

, w n = c n − c n−2<br />

c n−1 − c n−2<br />

, n ≥ 2.<br />

Übung A.4 [Quadratur á la Gauß] Seien paarweise verschiedene Knoten x 0 , x 1 , . . . x n ∈<br />

[0, 1] gegeben und sei<br />

ω(x) := (x − x 0 ) · · · (x − x n ) ∈ Π n+1 .<br />

Außerdem seien ω 1 (x) und ω 2 (x) gegeben durch<br />

♦<br />

∞∑<br />

ω(x) µ j x −j =: ω 1 (x) + ω 2 (x), ω 1 ∈ Π n , ω 2 (x) =<br />

j=0<br />

∞∑<br />

c j x −j .<br />

j=1<br />

1. Zeigen Sie:<br />

∫ 1<br />

0<br />

ω(t)<br />

t − x k<br />

dt = ω 1 (x k ) , k = 0, . . . , n,<br />

und bestimmen Sie daraus <strong>die</strong> Gewichte wj ∗ , j = 0, . . . , n, der zugehörigen <strong>in</strong>terpolatorischen<br />

Quadraturformel<br />

Q ∗ n(f) =<br />

n∑<br />

wj ∗ f ( )<br />

x j .<br />

j=0<br />

2. Seien θ j , j ∈ N 0 , <strong>die</strong> Fehlermomente der Quadraturformel Q ∗ n, d.h.,<br />

θ j :=<br />

∫ 1<br />

0<br />

t j dt − Q n<br />

((·) j) ,<br />

und sei<br />

Θ(x) :=<br />

∞∑<br />

θ j−1 x −j .<br />

j=1


A.7 Quadratur nach Art des Gaußes 239<br />

Untersuchen Sie den Term<br />

und zeigen Sie, daß<br />

ω(x)<br />

n∑<br />

j=0<br />

w ∗ j<br />

x − x j<br />

Θ(x) = ω 2(x)<br />

ω(x) , x ∈ R \ {0}.<br />

H<strong>in</strong>weis: Verwenden Sie für 0 ̸= t ∈ R e<strong>in</strong>e Taylorentwicklung der Funktion<br />

(t − x) −1 nach x um den Punkt x = 0.<br />

3. Betrachten Sie <strong>die</strong> Kettenbruchentwicklung<br />

∞∑<br />

j=1<br />

µ j−1 x −j = 1<br />

|x − α 1|<br />

|x − α 2|<br />

|x − · · · , a i > 0,<br />

und zeigen Sie (Notation wie <strong>in</strong> der vorhergehenden Aufgabe): W n ist e<strong>in</strong> Polynom<br />

vom Grad n <strong>in</strong> x und setzt man setzt man ω(x) = W n+1 (x), so gilt<br />

ω 2 (x) =<br />

∞∑<br />

i=2n+2<br />

c j x −j .<br />

4. Folgern Sie daraus, daß <strong>die</strong> Quadraturformel bezüglich der Nullstellen von W n+1 (x)<br />

(warum hat <strong>die</strong>ses Polynom n + 1 Nullstellen?) Exaktheitsgrad 2n + 1 hat.<br />

Bestimmung der Gewichte. Da wir e<strong>in</strong>e <strong>in</strong>terpolatorische Quadraturformel im Auge haben,<br />

ergeben sich <strong>die</strong> Gewichte als w j = I ( l j<br />

)<br />

, j = 0, . . . , n. Bedenkt man, daß<br />

l j =<br />

ω<br />

ω ′ ( x j<br />

) (· − xj<br />

), j = 0, . . . , n, (A.33)<br />

dann besteht der “<strong>in</strong>teressante” Teil der Bestimmung von w ∗ j<br />

<strong>in</strong> der Berechnung des<br />

Wertes I ( ω/(· − x j ) ) . Sei nun ω = x n+1 + a n x n + · · · + a 0 , dann ist, da ω ( x j<br />

)<br />

= 0,<br />

ω(x) = ω(x) − ω ( ) (<br />

)<br />

x j = x n+1 − x n+1 (<br />

+ a n x n − x n ) ( )<br />

j + · · · + a1 x − xj .<br />

Da für k = 0, . . . , n<br />

j<br />

♦<br />

x k+1 − x k+1<br />

j<br />

x − x j<br />

= x k + x k−1 x j + · · · + x x k−1<br />

j<br />

+ x k j ,


240 A ANHANG<br />

erhalten wir, daß für x ∈ R \ { x j<br />

}<br />

und damit<br />

( ) ω<br />

I =<br />

· − x j<br />

ω(x)<br />

x − x j<br />

= x n + x n−1 x j + x n−2 x 2 j<br />

+ · · · + x n j<br />

+ a n x n−1 + a n x n−2 x j + · · · + a n x n−1<br />

j<br />

+ a n−1 x n−2 + · · · + a n−1 x n−2<br />

j<br />

. .. .<br />

+ a 1<br />

= I (x n ) + x j I ( x n−1) + x 2 j I ( x n−2) + · · · + x n j I(1)<br />

+ a n I ( x n−1) + a n x j I ( x n−2) + · · · + a n x n−1<br />

j<br />

I(1)<br />

+ a n−1 I ( x n−2) + · · · + a n−1 x n−2<br />

j<br />

I(1)<br />

.. . .<br />

+ a 1 I(1)<br />

= µ n + x j µ n−1 + x 2 j µ n−2 + · · · + x n j µ 0<br />

+ a n µ n−1 + a n x j µ n−2 + · · · + a n xj n−1 µ 0<br />

+ a n−1 µ n−2 + · · · + a n−1 x n−2<br />

j<br />

µ 0<br />

.. . .<br />

+ a 1 µ 0<br />

( ) (<br />

)<br />

= µ n + µ n−1 xj + a n + . . . + µ0 x n j + a nxj n−1 + · · · + a 1<br />

(<br />

)<br />

n∑<br />

n∑<br />

= µ k x n−k<br />

j<br />

+ a s x n−s<br />

j<br />

k=0<br />

= ω 1<br />

(<br />

xj<br />

)<br />

.<br />

s=k+1<br />

} {{ }<br />

=(ω (·) −k )| Π (x j)<br />

Zusammen mit (A.33) liefert <strong>die</strong>s, daß<br />

w ∗ j = I ( l j<br />

)<br />

=<br />

ω 1<br />

(<br />

xj<br />

)<br />

ω ′ ( x j<br />

) , j = 0, . . . , n. (A.34)<br />

E<strong>in</strong>e kle<strong>in</strong>e Bemerkung am Rande: (A.34) ist noch e<strong>in</strong>e Formel, um nur aus der Kenntnis<br />

der Knoten und der Momente <strong>die</strong> Gewichte der <strong>in</strong>terpolatorischen Quadraturformel<br />

zu bestimmen, und das gilt für alle Integrale I.<br />

Bestimmung der Fehlermomente. Da 213 für a, x ∈ R, a ̸= x,<br />

213 Induktion!<br />

d j<br />

dx j (a − x)−1 = j! (a − x) −j−1 ,


A.7 Quadratur nach Art des Gaußes 241<br />

können wir für j = 0, . . . , n <strong>die</strong> Taylorentwicklung von w∗ j<br />

x−x j<br />

nach x j um x j = 0 als<br />

wj<br />

∗ ( )∣<br />

∞∑<br />

= w ∗ x k j d k 1 ∣∣∣∣xj ∞∑<br />

j<br />

x − x j k! dx k = w ∗ x k ∣<br />

j<br />

j<br />

x − x<br />

k=0 j j k! k! 1 ∣∣∣xj ∞∑<br />

(x − x<br />

=0 k=0<br />

j ) k+1 = wj<br />

∗ x k j<br />

=0<br />

x k+1<br />

k=0<br />

bestimmen und erhalten somit, daß<br />

n∑<br />

j=0<br />

wj<br />

∗ ∑<br />

n<br />

= x −1 wj<br />

∗ x − x j<br />

j=0<br />

=<br />

} {{ }<br />

=Q ∗ n(1)<br />

∑<br />

n<br />

+x −2 wj ∗ x ∑<br />

n<br />

j +x −3<br />

j=0<br />

} {{ }<br />

=Q ∗ n((·))<br />

∞∑ µ k − ( µ k − Qn<br />

∗ (<br />

(·)<br />

k ))<br />

x k+1 =<br />

k=0<br />

j=0<br />

w ∗ j x2 j<br />

} {{ }<br />

=Q ∗ n((·) 2 )<br />

+ · · ·<br />

∞∑<br />

(µ k−1 − θ k−1 ) x −k =<br />

k=1<br />

∞∑<br />

k=1<br />

µ k−1<br />

x k<br />

− Θ(x),<br />

also<br />

∞∑ µ k−1<br />

Θ(x) =<br />

x k −<br />

k=1<br />

} {{ }<br />

=:M(x)<br />

n∑<br />

j=0<br />

w ∗ j<br />

x − x j<br />

.<br />

(A.35)<br />

Da <strong>die</strong> Quadraturformel <strong>in</strong>terpolatorisch ist, ist auf alle Fälle θ j = 0, j = 0, . . . , n, das<br />

heißt,<br />

∞∑ θ ( )<br />

j<br />

Θ(x) =<br />

x j+1 = x−(n+2) θ n+1 + θ n+2 x −1 + · · ·<br />

j=n+1<br />

und damit besitzt <strong>die</strong> Funktion x ↦→ ω(x) Θ(x) nur negative Exponenten. Nun ist, mit<br />

(A.35),<br />

⎛<br />

⎞<br />

n∑ wj<br />

ω(x) Θ(x) = ω(x) ⎝M(x) ∗ n∑ w<br />

− ⎠<br />

j<br />

∗ = ω(x) M(x) − ω(x)<br />

x − x j x − x j<br />

j=0<br />

n∑<br />

= ω 1 (x) +ω<br />

} {{ } 2 (x) − w ∗ ω(x)<br />

j<br />

x − x<br />

∈Π j=0<br />

j<br />

n<br />

} {{ }<br />

Also ergibt der polynomiale Teil <strong>die</strong> Identität<br />

∈Π n<br />

.<br />

j=0<br />

n∑ wj<br />

∗ ω 1 (x) = ω(x)<br />

x − x j<br />

j=0<br />

(A.36)<br />

und, weil ω(x) Θ(x) nur negative Potenzen von x enthält, erhalten wir<br />

ω 2 (x) = ω(x) Θ(x).<br />

(A.37)


242 A ANHANG<br />

Kettenbrüche. Jetzt verwenden wir <strong>die</strong> Bernoullische Formel aus Aufgabe A.3, um <strong>die</strong><br />

Koeffizienten v j und w j der Kettenbruchentwicklung<br />

M(x) =<br />

∞∑<br />

j=1<br />

µ j−1 x −j = v 1<br />

| w 1<br />

+ v 2<br />

| w 2<br />

+ · · ·<br />

zu bestimmen, und zwar ist, mit<br />

c j =<br />

j∑<br />

µ k−1 x −k , j ∈ N,<br />

k=1<br />

zuerst e<strong>in</strong>mal v 1 = µ 0 und w 1 = x sowie<br />

sowie<br />

w j =<br />

v j =<br />

c j−1 − c j<br />

= −µ j−1 x −j<br />

c j−1 − c j−2 µ j−2 x −j+1 = −µ j−1<br />

x −1 , j > 1,<br />

µ j−2<br />

c j − c j−2<br />

= µ j−1x −j + µ j−2 x −j+1<br />

c j−1 − c j−2 µ j−2 x −j+1 = µ j−1<br />

x −1 + 1, j > 1.<br />

µ j−2<br />

Multiplizieren wir nun 214 jeweils v j und w j mit x, dann erhalten wir daß v 1 = 1, w 1 = x<br />

und<br />

v j = − µ j−1<br />

und w j = x + µ j−1<br />

j ≥ 2. (A.38)<br />

µ j−2 µ j−2<br />

Insbesondere ist V j ∈ Π j−1 und W j ∈ Π j , j ∈ N, und für alle m ∈ N ist nach Teil 2 von<br />

Aufgabe A.3<br />

M(x) − V m(x)<br />

W m (x) = ∞ ∑<br />

k=m<br />

Da man für p ∈ Π j <strong>die</strong> Laurententwicklung<br />

erhält 215 , ist also<br />

M(x) − V n+1(x)<br />

W n+1 (x) =<br />

(<br />

Vk+1 (x)<br />

W k+1 (x) − V )<br />

k(x)<br />

=<br />

W k (x)<br />

1<br />

∞ p = ∑<br />

α k x −k<br />

∞ ∑<br />

k=n+1<br />

k=j<br />

∞∑<br />

(−1) k v 1 · · · v k+1<br />

W k (x)W k+1 (x) .<br />

k=m<br />

(−1) k v 1 · · · v k+1<br />

=<br />

W k (x)W k+1 (x)<br />

} {{ }<br />

∈Π 2k+1<br />

∞∑<br />

k=2n+2<br />

α k<br />

x k+1 ,<br />

214 Das ändert den Wert des Kettebruchs nicht.<br />

215 Wie man das beweist? E<strong>in</strong>fach mit p durchmultiplizieren, das liefert dann <strong>die</strong> Bed<strong>in</strong>gungsgleichungen<br />

für <strong>die</strong> α j , j ≥ n.


A.7 Quadratur nach Art des Gaußes 243<br />

oder<br />

M(x) W n+1 (x) = V n+1 (x) + W n+1 (x)<br />

∞∑<br />

k=2n+2<br />

α k<br />

x k+1 .<br />

(A.39)<br />

Exaktheit der Quadraturformel. Da W n+1 durch e<strong>in</strong>e Drei–Term–Rekursionsformel def<strong>in</strong>iert<br />

ist, hat es n + 1 verschiedene reelle Nullstellen, xj ∗ , j = 0, . . . , n. Dann ist<br />

e<strong>in</strong> Vielfaches von W n+1 und es ist<br />

ω ∗ (x) := (x − x ∗ 0 ) · · · (x − x∗ n)<br />

ω ∗ 1 (x) + ω∗ 2 (x) = M(x) ω∗ (x) = V n+1 (x) + ω ∗ (x)<br />

∞∑<br />

k=2n+2<br />

α k<br />

x k+1 ,<br />

das heißt, wenn wir nur <strong>die</strong> Terme mit negativem Exponenten betrachten,<br />

ω ∗ 2 (x) = ω∗ (x)<br />

∞∑<br />

k=2n+2<br />

α k<br />

x k+1<br />

und damit liefert (A.37), daß für <strong>die</strong>se Knotenwahl<br />

∞∑<br />

k=1<br />

θ k−1<br />

x k<br />

= Θ(x) = ω∗ 2 (x)<br />

ω ∗ (x) =<br />

∞ ∑<br />

k=2n+1<br />

α k−1<br />

x k ,<br />

also, nach Koeffizientenvergleich, daß θ 0 = · · · = θ 2n+1 = 0. Das war’s!


244 LITERATUR<br />

Uns ist <strong>in</strong> alten mæren<br />

wunders viel geseit<br />

von Helden lobebæren<br />

von grôzer arebeit<br />

Das Nibelungenlied<br />

Literatur<br />

A<br />

[1] A. G. Aitken, On <strong>in</strong>terpolation by iteration of proportional parts, without the use of<br />

differences, Proc. Ed<strong>in</strong>burgh Math. Soc. 3 (1932), 56–76.<br />

[2] E. Anderson, Z. Bai, C. Bischof, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum,<br />

S. Hammarl<strong>in</strong>g, A. McKenney, S. Ostrouchov, and D. Sorensen, LAPACK user’s<br />

guide, second ed., SIAM, 1995.<br />

[3] S. N. Bernste<strong>in</strong>, Démonstration du théorème de Weierstrass, fondée su le calcul des probabilitiés,<br />

Commun. Soc. Math. Kharkov 13 (1912), 1–2.<br />

[4] C. de Boor, A practical guide to spl<strong>in</strong>es, Spr<strong>in</strong>ger–Verlag, New York, 1978.<br />

[5] C. de Boor, Spl<strong>in</strong>efunktionen, Lectures <strong>in</strong> Mathematics, ETH Zürich, Birkhäuser,<br />

1990.<br />

[6] C. G. Broyden, A class of methods for solv<strong>in</strong>g nonl<strong>in</strong>ear simulaneous equations, Math.<br />

Comp. 19 (1965), 577–593.<br />

[7] C. K. Chui, Multivariate spl<strong>in</strong>es, CBMS-NSF Regional Conference Series <strong>in</strong> Applied<br />

Mathematics, vol. 54, SIAM, 1988.<br />

[8] P. J. Davis, Interpolation and approximation, Dover Books on Advanced Mathematics,<br />

Dover Publications, 1975.<br />

[9] C. F. Gauss, Methodus nova <strong>in</strong>tegralium valores per approximationem <strong>in</strong>veniendi, Commentationes<br />

societate regiae scientiarum Gott<strong>in</strong>gensis recentiores III (1816).<br />

[10] W. Gautschi, Numerical analysis. an <strong>in</strong>troduction, Birkhäuser, 1997.<br />

[11] W. Givens, Computation of plane unitary rotations transform<strong>in</strong>g a matrix to triangular<br />

form, SIAM J. Appl. Math. 6 (1958), 26–50.


LITERATUR 245<br />

[12] D. Goldberg, What every computer scientist should know about float<strong>in</strong>g–po<strong>in</strong>t arithmetic,<br />

ACM Comput<strong>in</strong>g Surveys 23 (1991), 5–48.<br />

[13] G. Golub and C. F. van Loan, Matrix computations, The Johns Hopk<strong>in</strong>s University<br />

Press, 1983.<br />

[14] G. H. Golub, Numerical methods for solv<strong>in</strong>g l<strong>in</strong>ear least squares problems, Numer.<br />

Math. 7 (1965), 206–216.<br />

[15] G. H. Golub (ed.), Stu<strong>die</strong>s <strong>in</strong> numerical analysis, MAA Stu<strong>die</strong>s <strong>in</strong> Mathematics,<br />

vol. 24, The Mathematical Association of America, 1984.<br />

[16] H. Heuser, Lehrbuch der Analysis. Teil 2, 2. ed., B. G. Teubner, 1983.<br />

[17] N. J. Higham, Accuracy and stability of numerical algorithms, SIAM, 1996.<br />

[18] A. S. Householder, Unitary triangularization of a nonsymmetric matrix, J. Assoc.<br />

Comp. Mach. 5 (1958), 339–342.<br />

[19] E. Isaacson and H. B. Keller, Analysis of Numerical Methods, John Wiley & Sons,<br />

1966.<br />

[20] C. G. J. Jacobi, Über e<strong>in</strong> leichtes Verfahren, <strong>die</strong> <strong>in</strong> der Theorie der Säkularstörungen<br />

vorkommenden Gleichungen numerisch aufzulösen, Crelle’s Journal 30 (1846), 51–94.<br />

[21] D. Jörgensen, Der Rechenmeister, Rütten & Loenig, 1999, Roman.<br />

[22] S. Karl<strong>in</strong>, Total positivity, Stanford University Press, Stanford CA, 1968.<br />

[23] E. Kreyszig, Introductionary functional analysis with applications, John Wiley & Sons,<br />

1978.<br />

[24] K. S. Kunz, Numerical Analysis, McGraw-Hill Book Company, 1957.<br />

[25] C. A. Micchelli, Mathematical aspects of geometric model<strong>in</strong>g, CBMS-NSF Regional<br />

Conference Series <strong>in</strong> Applied Mathematics, vol. 65, SIAM, 1995.<br />

[26] J. J. Moré and D. J. Sorensen, Newton’s method, Stu<strong>die</strong>s <strong>in</strong> Numerical Analysis<br />

(G. H. Golub, ed.), MAA Stu<strong>die</strong>s <strong>in</strong> Mathematics, vol. 24, The Mathematical Association<br />

of America, 1984, pp. 29–82.<br />

[27] E. H. Neville, Iterative <strong>in</strong>terpolation, J. Indian Math. Soc. 20 (1934), 87–120.<br />

[28] G. Nürnberger, Approximation by spl<strong>in</strong>e functions, Spr<strong>in</strong>ger–Verlag, 1989.<br />

[29] J. Oates, Babylon, Thames and Hudson, 1979, Deutsche Ausgabe: Gustav Lübbe<br />

Verlag, 1983. Lizenzausgabe für Gondrom Verlag, 1990.


246 LITERATUR<br />

[30] J. M. Peña (ed.), Shape preserv<strong>in</strong>g representations <strong>in</strong> Computer Aided Geometric Design,<br />

Nova Science Publishers, 1999.<br />

[31] W. Popp, Wege des exakten denkens. vier jahrtausende mathematik, Weltbild Verlag,<br />

1987, Orig<strong>in</strong>alausgabe Franz Ehrenwirth Verlag, 1981.<br />

[32] A. Riese, Rechenbuch / auff L<strong>in</strong>ien und Ziphren / <strong>in</strong> allerley Handhierung / Geschäfften<br />

unnd Kauffmannschafft, Franck. Bey. Chr. Egen. Erben, 1574, Facsimile: Verlag Th.<br />

Schäfer, Hannover, 1987.<br />

[33] T. Sauer, Computeralgebra, Vorlesungsskript, Justus–Liebig–<strong>Universität</strong> Gießen,<br />

2001.<br />

[34] , Optimierung, Vorlesungsskript, <strong>Universität</strong> <strong>Passau</strong>, 2013.<br />

[35] I. J. Schoenberg, Card<strong>in</strong>al spl<strong>in</strong>e <strong>in</strong>terpolation, CBMS-NSF Regional Conference Series<br />

<strong>in</strong> Applied Mathematics, vol. 12, SIAM, 1973.<br />

[36] L. L. Schumaker, Spl<strong>in</strong>e funtions: Basic theory, Pure and Applied Mathematics: A<br />

Wiley–Interscience Series of Texts, Monographs and Tracts, John Wiley & Sons,<br />

1981.<br />

[37] H. R. Schwarz, <strong>Numerische</strong> <strong>Mathematik</strong>, B. G. Teubner, Stuttgart, 1988.<br />

[38] L.E. Sigler, Fibonacci’s Liber Abaci. Leoanardo Pisano’s book of calculation, Spr<strong>in</strong>ger,<br />

2002.<br />

[39] P. Spellucci, <strong>Numerische</strong> Verfahren der nichtl<strong>in</strong>earen Optimierung, Internationale<br />

Schriftenreihe zu <strong>Numerische</strong>n <strong>Mathematik</strong>, Birkhäuser, 1993.<br />

[40] J. Stoer, <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> <strong>Numerische</strong> <strong>Mathematik</strong> I, 4 ed., Heidelberger<br />

Taschenbücher, Spr<strong>in</strong>ger Verlag, 1983.<br />

[41] J. Stoer and R. Bulirsch, <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> <strong>Numerische</strong> <strong>Mathematik</strong> II, 2 ed., Heidelberger<br />

Taschenbücher, Spr<strong>in</strong>ger Verlag, 1978.<br />

[42] K. Weierstraß, Über <strong>die</strong> analytische Darstellbarkeit sogenannter willkührlicher Funktionen<br />

reller Argumente, Sitzungsber. Kgl. Preuss. Akad. Wiss. Berl<strong>in</strong> (1885), 633–<br />

639,789–805.<br />

[43] J. H. Wilk<strong>in</strong>son, The evaluation of zeros of ill–conditioned polynomials I, Numer. Math.<br />

1 (1959), 150–166.<br />

[44] , The evaluation of zeros of ill–conditioned polynomials II, Numer. Math. 1<br />

(1959), 167–180.<br />

[45] , Error analysis of float<strong>in</strong>g po<strong>in</strong>t computation, Numer. Math. 2 (1960), 319–340.


LITERATUR 247<br />

[46] , The perfidious polynomial, Stu<strong>die</strong>s <strong>in</strong> Numerical Analysis (G. H. Golub,<br />

ed.), MAA Stu<strong>die</strong>s <strong>in</strong> Mathematics, vol. 24, The Mathematical Association of<br />

America, 1984, pp. 1–28.<br />

[47] Yuan Xu, Common zeros of polynomials <strong>in</strong> several variables and higher dimensional<br />

quadrature, Pittman Research Monographs, Longman Scientific and Technical,<br />

1994.


Index<br />

A<br />

1–Norm, 31<br />

∞–Norm, 32<br />

p–Normen, 32<br />

a–priori–Abschatzungen, 27<br />

abgebrochene Potenz, 171<br />

absoluter Fehler, 12<br />

adaptiv, 201<br />

Addition, 16<br />

Additionstheoreme, 142<br />

aff<strong>in</strong>e Komb<strong>in</strong>ation, 124<br />

Aitken–Neville–Algorithmus, 130<br />

Akkumulator, 16<br />

Algebra, 122<br />

Algorithmus von de Casteljau, 125<br />

Ausloschung, 111<br />

B–Spl<strong>in</strong>e, 154<br />

Bézierkurve, 125<br />

Banachscher Fixpunktsatz, 82<br />

ban<strong>die</strong>rt, 74, 154<br />

baryzentrische Koord<strong>in</strong>aten, 124<br />

Basis, 13<br />

Bernste<strong>in</strong>–Bézier–Basispolynome, 125<br />

Bernste<strong>in</strong>polynome, 125, 216<br />

Betragsmatrix, 56<br />

Biegeenergie, 159<br />

b<strong>in</strong>ar, 13<br />

Bisektionsverfahren, 176<br />

Blossom<strong>in</strong>g Pr<strong>in</strong>ciple, 165<br />

Broyden–Verfahren, 190<br />

Cauchyfolge, 82, 186<br />

CAVALIERI, 198<br />

Cholesky–Zerlegung, 73, 74<br />

compensated summation, 27<br />

Cramersche Regel, 6<br />

Determ<strong>in</strong>ante, 41<br />

diagonal, 101<br />

Diagonaldom<strong>in</strong>anz, 92<br />

Distanz, 14<br />

divi<strong>die</strong>rte Differenz, 134<br />

Doolittle–Methode, 42<br />

Doolittle–Verfahren, 74<br />

doppelte Nullstellen, 190<br />

Drehung, 118<br />

Drei–Term–Rekursionsformel, 208<br />

Dreiecksungleichung, 31<br />

dualer Vektor, 34<br />

dunnbesetzte Matrizen, 88<br />

Effizienz, 4<br />

E<strong>in</strong>schlusverfahren, 176<br />

E<strong>in</strong>zelschrittverfahren, 87<br />

Elchataym, 179<br />

Energienorm, 159<br />

Erwartungswert, 7<br />

Euklidischer Abstand, 31<br />

Exaktheitsgrad, 193, 196<br />

Exponentenbereich, 13<br />

Fehlerfunktional, 193<br />

Fibonacci–Zahlen, 181<br />

Fixpunkt, 81, 82, 186<br />

Frobenius–Norm, 116<br />

Frobeniusnorm, 32<br />

Funktional, 192<br />

Gaus–Elim<strong>in</strong>ation, 42, 61, 80<br />

Gaus–Formel, 196, 203<br />

Gaus–Matrix, 48<br />

Gaus–Quadratur, 193<br />

Gaus–Seidel–Iteration, 87<br />

Gaus–Transformation, 48<br />

248


INDEX 249<br />

Gesamtschrittverfahren, 87<br />

Gewichte, 193<br />

Gewichtsfunktion, 192<br />

Givens–Rotationen, 117<br />

gleichmasig stetig, 217<br />

Gleitkommaoperationen, 16<br />

Gleitkommazahl, 14<br />

Gleitkommazahlen, 13<br />

global konvergent, 176<br />

Goldener Schnitt, 181<br />

Grad, 121<br />

Gram–Schmidt, 204<br />

Guard Digit, 18<br />

Gutefunktional, 96<br />

Halbordnung, 56<br />

Hankelmatrix, 205<br />

Hauptm<strong>in</strong>ore, 41<br />

Hauptuntermatrix, 41<br />

Hermite–Interpolant, 206<br />

hermitesche Matrix, 73<br />

Heron–Verfahren, 174<br />

Hesse–Matrix, 189<br />

Householder–Matrix, 105<br />

Householder–Transformation, 112<br />

Householder–Vektor, 106<br />

<strong>in</strong>nere Knoten, 149<br />

<strong>in</strong>stabil, 7<br />

Integral, 192<br />

Interpolation, 30, 196<br />

Interpolationsoperator, 133<br />

Interpolationsproblem, 30, 129<br />

<strong>in</strong>terpolatorisch, 196<br />

isolierte Nullstelle, 219<br />

Iterationsmatrix, 82<br />

iterative ref<strong>in</strong>ement, 68<br />

iteratives Verfahren, 81<br />

Iteratives Verfe<strong>in</strong>ern, 68<br />

Jacobi–Matrix, 118, 186<br />

Jacobi–Verfahren, 87<br />

Jordan–Normalform, 84<br />

kanonische Koord<strong>in</strong>atenprojektion, 115<br />

Keplersche Fasregel, 198<br />

Knoten, 149, 193, 197<br />

Knotenfolge, 149<br />

Knotenpolynom, 197<br />

Kollokationsmatrix, 154, 155, 172<br />

komponentenweiser Ruckwartsfehler, 25<br />

Konditionszahl, 25, 34, 104<br />

konsistent, 33<br />

Kontraktion, 82, 186<br />

Kontrollpolygon, 125<br />

Kontrollpunkte, 125<br />

Konvergenzordnung, 86, 176<br />

Konvexkomb<strong>in</strong>ation, 124, 128, 203, 219<br />

kubischer Spl<strong>in</strong>e, 159<br />

Lagrange–Darstellung, 130<br />

Lagrange–Multiplikatoren, 96<br />

Least–Squares–Losung, 98, 104, 115<br />

Leibniz–Formel, 171<br />

Leibniz–Regel, 6<br />

Leitkoeffizient, 141<br />

Leitkoeffizienten, 138<br />

Leitterm, 141, 205<br />

l<strong>in</strong>eare Konvergenz, 86<br />

L<strong>in</strong>eares Gleichungssystem, 30<br />

lokal konvergent, 176<br />

Manhattan–Norm, 31<br />

Mantisse, 13<br />

Mantissenlange, 13<br />

Matlab, 36, 152<br />

Matrix, 30<br />

Matrix–Norm, 32<br />

Median, 98<br />

Milne–Regel, 198<br />

Momente, 193<br />

Momentenmatrix, 205<br />

monische orthogonale Polynome, 205<br />

Monom, 205<br />

Monome, 121<br />

monotone Matrixnorm, 58<br />

Moore–Penrose–Bed<strong>in</strong>gungen, 103<br />

Moore–Penrose–Inverse, 103<br />

Multiplikation, 16


250 INDEX<br />

Nachiteration, 68<br />

Naherung, 4<br />

naturlicher Spl<strong>in</strong>e, 159<br />

naturlicher Spl<strong>in</strong>e<strong>in</strong>terpolant, 157<br />

Newton–Cotes–Formeln, 197<br />

Newton–Darstellung, 133<br />

nichtl<strong>in</strong>eares Gleichungssystem, 188<br />

nichtnegative Teilung der E<strong>in</strong>s, 164<br />

nilpotent, 92<br />

Norm, 31<br />

Normalengleichungen, 98<br />

normalisiert, 14<br />

normiert, 106<br />

Nullspalte, 115<br />

obere Dreiecksmatrix, 38, 49<br />

Octave, 36, 152<br />

Operatornorm, 33, 83, 187<br />

Optimierungsproblem, 96<br />

Optische Tomographie, 95<br />

orthogonal, 101, 204<br />

orthogonal <strong>in</strong>variant, 105<br />

orthogonale Matrix, 113<br />

orthogonales Polynom, 204<br />

Orthogonalisierungsverfahren, 204<br />

Oslo–Algorithmus, 170<br />

parallelisierbar, 88<br />

Pascal–Matrix, 78<br />

Permutationsmatrix, 59<br />

Pivotelement, 59<br />

Pivotsuche, 115<br />

Polynom, 121<br />

polynomiale Kurve, 122<br />

positiv def<strong>in</strong>it, 72<br />

positiv semidef<strong>in</strong>it, 72<br />

Positive Homogenitat, 31<br />

Positivitat, 31<br />

Projektion, 60, 196<br />

Pseudo<strong>in</strong>verse, 103<br />

Pulcherrima, 198<br />

Pyramidenschema, 130<br />

Quadraturformel, 193<br />

Quadratwurzel, 174<br />

Randknoten, 149<br />

Rechtsdreiecksmatrix, 113<br />

Regula Falsi, 179<br />

Rekursionsformel, 208<br />

relativer Fehler, 12<br />

Residuenvektor, 99<br />

Rotation, 118<br />

Rucksubstitution, 39, 55, 115, 211<br />

Ruckwartsfehler, 24, 56<br />

Rundungsfehlere<strong>in</strong>heit, 14<br />

runnig error analysis, 27<br />

Satz von Hahn–Banach, 34<br />

Satz von Weierstrass, 122<br />

Schoenberg–Whitney, 154<br />

Schoenberg–Whitney–Bed<strong>in</strong>gung, 172<br />

Sekantenverfahren, 181<br />

Signatur, 217<br />

SIMPSON, TH., 198<br />

Simpson–Regel, 198<br />

S<strong>in</strong>gular Value Decomposition, 101<br />

S<strong>in</strong>gulare–Werte–Zerlegung, 101<br />

S<strong>in</strong>gularwerte, 101<br />

Skalarprodukt, 22, 204<br />

Skalierung, 67<br />

Spaltenpivotsuche, 61, 64<br />

Spaltensummennorm:, 33<br />

Spektralradius, 83, 100, 186<br />

Spektrum, 83<br />

Spiegelung, 106<br />

Spl<strong>in</strong>e, 159<br />

Spl<strong>in</strong>ekurve, 152<br />

Spl<strong>in</strong>eraum, 165<br />

Stabilitat, 116<br />

Standardabweichung, 7<br />

Standardmodell der Gleitkommaarithmetik,<br />

20<br />

Storungsanfalligkeit, 4<br />

Straklatte, 159<br />

strikte Quadratpositivitat, 192<br />

Summationsalgorithmus, 27<br />

SVD, 101


INDEX 251<br />

symmetrisch, 72<br />

Tangente, 184<br />

total nichtnegativ, 78, 154<br />

total positiv, 78<br />

Totalpivotsuche, 61, 64<br />

Trapezregel, 198<br />

Tschebyscheff–Polynom, 141<br />

Tschebyscheffknoten, 194<br />

uberbestimmt, 30<br />

Uberlauf, 13<br />

unit roundoff, 14<br />

unitar, 101<br />

unterbestimmt, 30<br />

untere Dreiecksmatrix, 38<br />

Unterlauf, 13<br />

Varianz, 7<br />

Vektor, 30<br />

Vektornorm, 187<br />

Vektornormen, 32<br />

Vektorraum, 32<br />

Verfe<strong>in</strong>erung, 170<br />

Vertauschungsmatrix, 59<br />

vertraglich, 33<br />

Vielfachheit, 149<br />

Vorwartselim<strong>in</strong>ation, 39, 55, 211<br />

Vorzeichenwechsel, 217<br />

Weddle–Regel, 198<br />

Worst–Case–Fehler, 32<br />

Zeilenform, 49<br />

Zeilenpivotsuche, 61, 64<br />

Zeilensummennorm:, 33<br />

zeilenweise diagonaldom<strong>in</strong>ant, 92<br />

Zerlegung, 55<br />

zusammengesetzten Simpson–Regel, 202<br />

zweizeiliges Hornerschema, 230

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!