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
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