Numerische Mathematik [überarbeitete und erweiterte Auflage] 9783486719703

Dieses Buch richtet sich an Mathematik- und Informatikstudenten im Haupt- und Nebenfach. Die Darstellungen sind dem übli

275 65 12MB

German Pages 579 [577] Year 2012

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

Numerische Mathematik [überarbeitete und erweiterte Auflage]
 9783486719703

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

π = 3.141 592 653 589 793 238 462 643 383 279 . . . 3

1

4

1

5

5

3

9

Now I, even I, would celebrate 6

2

5

In rhymes inapt, the great 8

7

9

9

Immortal Syracusan, rivaled nevermore, 3

2

3

8

4

Who in his wondrous love, 6

6

2

Passed on before, 4

3

3

8

3

2

7

9

Let men his guidance how to circles mensurate. Orr, A. C. Literary Digest, Vol. 32 (1906), p. 84

Numerische Mathematik von

Prof. Dr. Martin Hermann 3., überarbeitete und erweiterte Auflage

Oldenbourg Verlag München

Dr. Martin Hermann ist seit 1991 Universitätsprofessor für Numerische Mathematik an der Friedrich-Schiller-Universität Jena (FSU). Sein Spezialgebiet ist die numerische Behandlung parameterabhängiger nichtlinearer Differentialgleichungen. Seit vielen Jahren werden von ihm die Grundvorlesung „Numerische Mathematik“ für Studenten der Mathematik, Wirtschaftsmathematik, Physik, Informatik und Lehramt sowie Spezialvorlesungen zu ausgewählten Gebieten der Numerischen Mathematik gehalten. Er ist Sprecher des Interdisziplinären Zentrums für Wissenschaftliches Rechnen, Kurator des Collegium Europaeum Jenense an der FSU Jena und Mitglied vieler nationaler und internationaler Fachorganisationen.

Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. © 2011 Oldenbourg Wissenschaftsverlag GmbH Rosenheimer Straße 145, D-81671 München Telefon: (089) 45051-0 www.oldenbourg-verlag.de Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen. Lektorat: Kathrin Mönch Herstellung: Constanze Müller Einbandgestaltung: hauser lacour Gesamtherstellung: Beltz Bad Langensalza GmbH, Bad Langensalza Dieses Papier ist alterungsbeständig nach DIN/ISO 9706. ISBN 978-3-486-70820-2

Vorwort zur ersten Auflage Die Numerische Mathematik besch¨ aftigt sich mit der Entwicklung, Analyse, Implementierung und Testung von numerischen Rechenverfahren, die f¨ ur die L¨osung mathematischer Problemstellungen auf einem Computer geeignet sind. Im Vordergrund steht dabei nicht die Diskussion von Existenz und Eindeutigkeit der entsprechenden L¨osungen, sondern deren konkrete Berechnung in Form von Maschinenzahlen. Die Existenz mindestens einer L¨ osung wird deshalb stets als nachgewiesen vorausgesetzt. Im allgemeinen erh¨alt man als Ergebnis einer numerischen Rechnung nur eine Approximation f¨ ur die (unbekannte) exakte L¨ osung. Diese N¨ aherung kann durch die Anh¨aufung der unvermeidbaren Rundungsfehler v¨ ollig verf¨ alscht sein, da auf einem Computer nicht der K¨orper der reellen Zahlen, sondern nur eine endliche Zahlenmenge, die sogenannten Maschinenzahlen, zur Verf¨ ugung steht. Somit geh¨ oren zu einer numerischen Rechnung auch stets Fehlerabsch¨ atzungen. Unterschiedlich genaue N¨ aherungen f¨ ur ein und dieselbe exakte L¨osung werden als qualitativ gleichwertig angesehen, wenn deren Fehler durch die Erh¨ohung des technischen Aufwandes beliebig klein gemacht werden k¨onnen. Durch die gegenw¨ artige Entwicklung extrem schneller Rechner mit großen Speichermedien und neuer leistungsf¨ ahiger mathematischer Methoden wird es zunehmend m¨oglich, mathematische Problemstellungen einer L¨ osung zuzuf¨ uhren, denen immer komplexere und realit¨ atsn¨ ahere Modelle aus den konkreten Anwendungen zugrundeliegen. Heute ist man bereits in der Lage, durch numerische Simulationen auf dem Rechner ganze technische Abl¨ aufe vor der eigentlichen Fertigung zu verstehen und zu beherrschen. Dies trifft auch auf die sehr umfangreichen und extrem kostenaufwendigen Experimente in den Naturwissenschaften zu. An der Nahtstelle zwischen Numerischer Mathematik, Informatik sowie den Natur- und Ingenieurwissenschaften hat sich bereits eine neue Wissenschaftsdisziplin entwickelt, das Wissenschaftliche Rechnen (Scientific Computing). Wichtige Komponenten dieser neuen Disziplin m¨ ussen deshalb in der Ausbildung auf dem Gebiet der Numerischen Mathematik ber¨ ucksichtigt werden. Das vorliegende Lehrbuch u ¨ber die Grundlagen der Numerischen Mathematik ist aus Manuskripten zu Vorlesungen und Seminaren, die der Verfasser seit etwa 15 Jahren an der Friedrich-Schiller-Universit¨ at Jena abgehalten hat, hervorgegangen. Es richtet sich an Studierende der Mathematik (einschließlich Lehramt f¨ ur Gymnasien), Informatik und Physik. Die Themen wurden so ausgew¨ ahlt, daß anhand dieses Buches der f¨ ur die deutschen Universit¨ aten typische Grundkurs Numerische Mathematik“ studiert werden ” kann. Dieser findet je nach Universit¨ atsprofil und Studiengang im 2. bis 4. Semester

VI

Vorwort zur ersten Auflage

statt. Die numerische Behandlung gew¨ ohnlicher und partieller Differentialgleichungen bleibt deshalb unber¨ ucksichtigt. Der Text sollte in den Grundz¨ ugen schon mit geringen Vorkenntnissen der Linearen Algebra und Analysis verst¨andlich sein. Schwerpunktm¨ aßig werden im Buch diejenigen numerischen Techniken betrachtet, die auf den heute u ¨blichen Computern in Form von Software-Paketen implementiert vorliegen und in den Anwendungen tats¨ achlich auch zum Einsatz kommen. Eine h¨aufig genutzte Bibliothek f¨ ur numerische Software ist die Netlib, die im World Wide Web unter der URL bzw. E-mail Adresse http://www.netlib.org

bzw.

[email protected]

zu erreichen ist. Um die Studenten schon sehr schnell mit der numerischen Software vertraut zu machen, wird an der Friedrich-Schiller-Universit¨at Jena das Software-Paket Matlabr1 im Grundkurs zur Numerischen Mathematik eingesetzt. Im vorliegenden Buch sind die angegebenen numerischen Algorithmen in einem einfachen Pseudocode formuliert, so daß ihre Implementierung in den Sprachelementen von Matlabr einfach zu realisieren ist, dar¨ uber hinaus aber auch andere moderne Programmiersprachen Verwendung finden k¨ onnen. Es geh¨ ort zu den Zielen des Verfassers, neben den theoretischen Grundlagen auch die experimentelle Seite der Numerischen Mathematik zur Geltung zu bringen. Numerische Demonstrationen unter Verwendung moderner Multimedia-Techniken auf einem Computer zeigen dem Studierenden die vielf¨altigen Steuerungsm¨ oglichkeiten der numerischen Algorithmen besonders einpr¨agsam auf. Sie f¨ uhren gleichzeitig in die experimentelle Numerik ein, die die Grundlage der neuen Wissenschaftsdisziplin Wissenschaftliches Rechnen ist. ¨ Am Ende eines jeden Kapitels sind Aufgaben zur Ubung der gewonnenen theoretischen und praktischen Fertigkeiten angegeben. Auch hier wird h¨aufig der Bezug zur Matlabr ¨ hergestellt. F¨ ur weitergehende interessante Ubungsaufgaben, auch zur Vorbereitung auf die (leider oftmals nicht zu umgehenden) Pr¨ ufungen, sei auf die im gleichen Verlag erschienene zweib¨ andige Aufgabensammlung von N. Herrmann2 verwiesen. Meinem Kollegen, Herrn Dr. Dieter Kaiser m¨ ochte ich f¨ ur die Hilfe bei der Erstellung der ¨ Abbildungen meinen Dank aussprechen. Gleichfalls m¨ochte ich allen meinen Ubungsassistenten f¨ ur gelegentliche wertvolle Hinweise sowie dem Verlag f¨ ur die Unterst¨ utzung bei der Herausgabe des Lehrbuches danken.

Jena, im Juli 2000

1 2

Martin Hermann

Matlabr ist eine registrierte Handelsmarke der Firma The MathWorks Inc., Natick, MA, U.S.A. N. Herrmann: H¨ ohere Mathematik f¨ ur Ingenieure − Aufgabensammlung, Bde. 1 und 2. Oldenbourg Verlag, M¨ unchen 1995.

Vorwort zur zweiten Auflage Der Autor m¨ ochte zuerst seine Freude zum Ausdruck bringen, daß die erste Auflage der Numerischen Mathematik bei vielen Studenten und Hochschullehrern auf eine positive Resonanz gestoßen ist. Ihnen allen sei f¨ ur ihre Bemerkungen und Kommentare ganz herzlich gedankt. ¨ Die vorliegende zweite Auflage stellt eine wesentliche Uberarbeitung und Erweiterung des urspr¨ unglichen Textes dar. So sind jetzt wichtige numerische Verfahren auch als Matlabr -Programme dargestellt. Hierdurch wird dem Leser ein Werkzeug in die Hand gegeben, mit dem er die Algorithmen direkt am Computer erproben und eigenst¨andig numerische Experimente durchf¨ uhren kann. Augenf¨allig ist auch das neu aufgenommene 9. Kapitel, das sich mit u ¨berbestimmten linearen Gleichungssystemen und deren L¨ osung mittels Kleinste-Quadrate-Techniken besch¨aftigt. Neu hinzugekommen sind des weiteren die Abschnitte Singul¨ arwertzerlegung einer beliebigen rechteckigen Matrix (Abschnitt 2.5.2), Transformationsmatrizen: Schnelle Givens-Transformationen (Abschnitt 3.3.3) sowie Trigonometrische Interpolation, DFT und FFT (Abschnitt 6.7). Schließlich wurde dem Text eine Liste von Monographien und Lehrb¨ uchern hinzugef¨ ugt, anhand derer sich der Leser in der umfangreichen Literatur zur Numerischen Mathematik orientieren kann und die ihm eine Hilfe bei dem weiterf¨ uhrenden Studium sein soll. Abschließend m¨ ochte ich die Gelegenheit nutzen, allen denjenigen herzlich zu danken, die zur Entstehung dieser zweiten Auflage beigetragen haben. An erster Stelle ist wieder Herr Dr. Dieter Kaiser zu nennen, der mir bei der Anfertigung und der Erprobung der ¨ Matlabr -Programme sowie bei der Uberarbeitung einiger Abbildungen geholfen hat. ¨ Herrn Dipl. Math. Thomas Milde sei f¨ ur die Uberlassung eines Manuskriptes zur trigonometrischen Interpolation sowie f¨ ur das Korrekturlesen einiger Abschnitte des Textes gedankt. Mein Dank geht auch an Frau Margit Roth vom Oldenbourg Wissenschaftsverlag, die mein Projekt stets fachkundig begleitet hat.

Jena, im Januar 2006

Martin Hermann

Vorwort zur dritten Auflage Seit dem Erscheinen der ersten Auflage vor genau zehn Jahren hat sich dieses Lehrbuch zu einem Standardtext der Numerischen Mathematik im deutschsprachigen Raum entwickelt. Es wird sowohl im Bachelor- als auch im Masterstudium mathematischnaturwissenschaftlicher und technischer Fachrichtungen verwendet. Auch in der Ausbildung von Regelschul- und Gymnasiallehrern konnte es mit Erfolg eingesetzt werden. Ich freue mich, daß dieses Lehrbuch auf so große Resonanz unter den Studierenden und Lehrenden gestoßen ist. ¨ Die nun vorliegende dritte Auflage stellt wieder eine Uberarbeitung und Erweiterung der Vorg¨ angerversion dar. Auf Wunsch einiger Rezensenten habe ich im Kapitel zur numerischen Behandlung nichtlinearer Gleichungssysteme einen Abschnitt u ¨ber nichtlineare Ausgleichsprobleme neu aufgenommen. Im Mittelpunkt stehen hier das GaußNewton-Verfahren, allgemeine Abstiegsverfahren, die Trust-Region-Strategie und das Levenberg-Marquardt-Verfahren. In den einzelnen Kapiteln sind weitere Matlabr -Programme hinzugekommen und die bereits vorhandenen Codes wurden noch einmal u ¨berarbeitet. Ich habe des weiteren versucht, die biografischen Angaben von Wissenschaftlern, die heute zu den Pionieren der Numerischen Mathematik und des Wissenschaftlichen Rechnens z¨ahlen, zu erg¨anzen. Dieses Vorhaben hat sich jedoch bei einigen Personen als extrem schwierig herausgestellt, da trotz intensiver Recherche an Universit¨aten des In- uns Auslands keine Informationen u altlich waren, was ich sehr bedaure. In diesem Zusammenhang ¨ber sie erh¨ m¨ ochte ich den Herren Gerald De Mello, John Dennis, Mike Powell, Stefan Wild, Arieh Iserles, Hans Josef Pesch, Klaus Schittkowski, Garry Tee, Mike Osborne, Alexander Ramm, David Miller und Philip Wolfe danken, die mir wichtige Hinweise bei dieser Recherche gegeben haben. Abschließend m¨ ochte ich die Gelegenheit nutzen, allen Studierenden und Kollegen herzlich zu danken, die mich auf Schreibfehler aufmerksam gemacht haben. Mein ganz besonderer Dank geht wieder an Herrn Dr. Dieter Kaiser, der mich bei der Anfertigung und der Erprobung der Matlabr -Programme mit seinen hervorragenden Programmierkenntnissen unterst¨ utzt hat. Mein Dank geht auch an Frau Kathrin M¨onch vom Oldenbourg Wissenschaftsverlag, die mein Projekt stets fachkundig begleitet hat. Jena, im Juli 2011

Martin Hermann

Inhaltsverzeichnis Vorwort zur ersten Auflage

V

Vorwort zur zweiten Auflage

VII

Vorwort zur dritten Auflage

IX

1 Wichtige Ph¨ anomene des numerischen Rechnens 1.1 Numerische Algorithmen und Fehler . . . . . . . . . . . . . 1.2 Fehlerfortpflanzung, Kondition und numerische Instabilit¨at 1.3 Rundungsfehler bei Gleitpunkt-Arithmetik . . . . . . . . . . 1.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Lineare Gleichungssysteme 2.1 Aufl¨ osung gestaffelter Systeme . . . . . . . . . . . . . . 2.2 LU -Faktorisierung und Gauß-Elimination . . . . . . . . 2.3 Pivot-Strategien und Nachiteration . . . . . . . . . . . . 2.4 Systeme mit speziellen Eigenschaften . . . . . . . . . . . 2.4.1 Positiv definite Systeme . . . . . . . . . . . . . . 2.4.2 Tridiagonale Gleichungssysteme . . . . . . . . . . 2.4.3 Die Formel von Sherman und Morrison . . . . . 2.5 Genauigkeitsfragen, Fehlerabsch¨ atzungen . . . . . . . . 2.5.1 Normen . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Singul¨ arwertzerlegung, SVD . . . . . . . . . . . . 2.5.3 Fehlerabsch¨ atzungen, Kondition . . . . . . . . . 2.5.4 Rundungsfehleranalyse der Gauß-Elimination . . 2.6 Iterative Verfahren . . . . . . . . . . . . . . . . . . . . . 2.6.1 Konvergenz der Nachiteration . . . . . . . . . . . 2.6.2 Spektralradius und Konvergenz einer Matrix . . 2.6.3 Spezielle Iterationsverfahren . . . . . . . . . . . . 2.6.4 Ausblick: Entwicklung neuer Iterationsverfahren

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . .

. . . . . . . . . . . . . . . . .

. . . .

. . . . . . . . . . . . . . . . .

. . . .

. . . . . . . . . . . . . . . . .

. . . .

. . . . . . . . . . . . . . . . .

. . . .

. . . . . . . . . . . . . . . . .

. . . .

. . . . . . . . . . . . . . . . .

. . . .

1 3 8 19 32

. . . . . . . . . . . . . . . . .

39 39 44 50 71 71 76 81 84 84 90 95 102 111 111 112 115 126

XII 2.7

Inhaltsverzeichnis Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

3 Eigenwertprobleme 3.1 Eigenwerte und Eigenvektoren . . . . . . . . . . . . . . . . . . . . . 3.1.1 Stetigkeitsaussagen . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Eigenschaften symmetrischer Matrizen . . . . . . . . . . . . . 3.1.3 Gerschgorin Kreise . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Nichtsymmetrisches Eigenwertproblem: die Potenzmethode . . . . . 3.2.1 Das Grundverfahren . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Inverse Potenzmethode . . . . . . . . . . . . . . . . . . . . . 3.2.3 Deflationstechniken . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Symmetrisches Eigenwertproblem: QR-Methode . . . . . . . . . . . . 3.3.1 Transformationsmatrizen: Givens-Rotationen . . . . . . . . . 3.3.2 Transformationsmatrizen: Householder-Reflexionen . . . . . . 3.3.3 Transformationsmatrizen: Schnelle Givens-Transformationen 3.3.4 QR-Algorithmus f¨ ur symmetrische Eigenwertprobleme . . . . 3.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

145 145 147 150 151 155 155 160 162 165 165 172 177 182 187

4 Nichtlineare Gleichungen in einer Variablen 4.1 Problemstellung . . . . . . . . . . . . . . . . . 4.2 Fixpunkt-Iteration . . . . . . . . . . . . . . . 4.3 Newton-Verfahren . . . . . . . . . . . . . . . 4.4 Das Verfahren von M¨ uller . . . . . . . . . . . 4.5 Intervall-Verfahren . . . . . . . . . . . . . . . 4.6 Fehleranalyse der Iterationsverfahren . . . . . 4.7 Techniken zur Konvergenzbeschleunigung . . 4.8 Globalisierung lokal konvergenter Verfahren . 4.8.1 D¨ ampfungsstrategien . . . . . . . . . . 4.8.2 Homotopieverfahren . . . . . . . . . . 4.9 Nullstellen reeller Polynome . . . . . . . . . . 4.9.1 Anwendung des Newton-Verfahrens . . 4.9.2 Das QD-Verfahren . . . . . . . . . . . 4.10 Aufgaben . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

195 195 199 205 211 215 219 226 231 232 234 239 239 250 257

5 Nichtlineare Gleichungen in mehreren Variablen 5.1 Fixpunkte von Funktionen mehrerer Variablen . . 5.2 Newton-Verfahren . . . . . . . . . . . . . . . . . . 5.3 Quasi-Newton-Verfahren . . . . . . . . . . . . . . . 5.4 Das Verfahren von Brown . . . . . . . . . . . . . . 5.5 Nichtlineares Ausgleichsproblem . . . . . . . . . . 5.5.1 Problemstellung . . . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

265 265 268 274 279 286 286

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

Inhaltsverzeichnis . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

288 292 296 302 307 310

6 Interpolation und Polynom-Approximation 6.1 Taylor-Polynome . . . . . . . . . . . . . . . . . 6.2 Interpolation und Lagrange-Polynome . . . . . 6.3 Vandermonde-Ansatz . . . . . . . . . . . . . . . 6.4 Iterierte Interpolation . . . . . . . . . . . . . . 6.5 Dividierte Differenzen . . . . . . . . . . . . . . 6.6 Hermite-Interpolation . . . . . . . . . . . . . . 6.7 Kubische Spline-Interpolation . . . . . . . . . . 6.8 Trigonometrische Interpolation, DFT und FFT 6.9 Aufgaben . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

317 318 322 330 332 336 349 356 370 384

7 Ausgleichsprobleme, Methode der Kleinsten Quadrate 7.1 Diskrete Kleinste-Quadrate Approximation . . . . . . . . 7.1.1 Polynomapproximationen . . . . . . . . . . . . . . 7.1.2 Empirische Funktionen . . . . . . . . . . . . . . . . 7.1.3 Nichtlineare Approximation . . . . . . . . . . . . . 7.2 Stetige Kleinste-Quadrate-Approximation . . . . . . . . . 7.2.1 Polynomapproximation . . . . . . . . . . . . . . . 7.2.2 Approximation mit verallgemeinerten Polynomen . 7.2.3 Harmonische Analyse . . . . . . . . . . . . . . . . 7.2.4 Konstruktion von Orthogonalsystemen . . . . . . . 7.3 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

391 391 391 398 404 408 408 413 415 418 428

. . . . . . . . . .

435 435 437 439 443 448 454 457 460 462 471

5.6 5.7 5.8

5.5.2 Gauß-Newton-Verfahren . . . . . 5.5.3 Abstiegsverfahren . . . . . . . . 5.5.4 Levenberg-Marquardt-Verfahren Deflationstechniken . . . . . . . . . . . . Zur Kondition nichtlinearer Gleichungen Aufgaben . . . . . . . . . . . . . . . . .

XIII . . . . . .

. . . . . .

. . . . . .

8 Kleinste-Quadrate-L¨ osungen 8.1 Einf¨ uhrung . . . . . . . . . . . . . . . . . . . . . 8.2 Eigenschaften der QR-Faktorisierung . . . . . . . 8.3 Gram-Schmidt-Verfahren . . . . . . . . . . . . . 8.4 Kleinste Quadrate Probleme . . . . . . . . . . . . 8.5 Methode der Normalgleichungen . . . . . . . . . 8.6 LS-L¨ osung mittels QR-Faktorisierung . . . . . . 8.7 LS-L¨ osung mittels MGS . . . . . . . . . . . . . . 8.8 Schnelle Givens LS-L¨ oser . . . . . . . . . . . . . 8.9 Das LS-Problem f¨ ur eine Matrix mit Rangabfall . 8.10 Aufgaben . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

XIV 9 Numerische Differentiation und Integration 9.1 Numerische Differentiation . . . . . . . . . . . . . . . . 9.1.1 Beliebige St¨ utzstellenverteilung . . . . . . . . . ¨ 9.1.2 Aquidistante St¨ utzstellenverteilung . . . . . . . 9.1.3 Numerische Differentiation mit gest¨orten Daten 9.1.4 Differentiationsformeln ohne Differenzen . . . . 9.1.5 Extrapolation nach Richardson . . . . . . . . . 9.2 Numerische Integration . . . . . . . . . . . . . . . . . 9.2.1 Grundformeln zur Integration . . . . . . . . . . 9.2.2 Zusammengesetzte Quadraturformeln . . . . . 9.2.3 Adaptive Techniken . . . . . . . . . . . . . . . 9.2.4 Romberg-Integration . . . . . . . . . . . . . . . 9.2.5 Gaußsche Quadraturformeln . . . . . . . . . . . 9.3 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . .

Inhaltsverzeichnis

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

475 476 476 482 484 487 491 496 497 507 512 516 521 528

Literaturverzeichnis

535

Liste der verwendeten Symbole

545

Verzeichnis der Algorithmen

547

Verzeichnis der Matlab-Programme

549

Tabellenverzeichnis

551

Abbildungsverzeichnis

553

Index

555

Kapitel 1

Wichtige Ph¨ anomene des numerischen Rechnens ¨ Uber den Umgang mit ausgedruckten Ergebnissen einer numerischen Rechnung: Der (naive) Anf¨ anger glaubt an jede einzelne Ziffer. Der (erfahrene) Programmierer vertraut auf die H¨alfte der Stellen. Der (wissende) Pessimist mißtraut sogar dem Vorzeichen. Karl Nickel

Die Numerische Mathematik stellt heute eine eigenst¨andige Fachdisziplin innerhalb der Mathematik dar. Die Entwicklung der modernen Numerischen Mathematik begann mit der richtungsweisenden Arbeit Numerical inverting of matrices of high order“ 1 von ” John von Neumann2 und Herman Goldstine3 . Dabei handelt es sich um eine der ersten Publikationen, die sich mit dem Einfluß von Rundungsfehlern auf die Ergebnisse numerischer Berechnungen besch¨ aftigten. Die Entwicklung numerischer Techniken (die i.allg. noch Hand-Rechenverfahren waren) l¨ aßt sich u uckverfolgen. ¨ber Jahrhunderte zur¨ F¨ ur die heutige Numerische Mathematik ist jedoch die Synergie charakteristisch, die sich aus dem Einsatz programmierbarer elektronischer Hochleistungsrechner, die mo1

J. Neumann and H. Goldstine: Numerical inverting of matrices of high order, Bull. Amer. Math. Soc. vol.53, no. 11 (1947), 1021-1099 2 J´ anos Neumann Margittai (1903–1957), o ¨sterreichisch-ungarischer Mathematiker. Er nannte sich auch Johann von Neumann (von Margitta); heute ist er vor allem unter seinem in den USA gew¨ ahlten Namen John von Neumann bekannt. Er gilt als Begr¨ under der Informatik. Auf seinen Ideen beruhen fast alle modernen Rechner. 3 Hermann Heine Goldstine (1913–2004), US-amerikanischer Mathematiker und Informatiker. Er gilt als der Erfinder des Flußdiagramms. Er entwickelte mit anderen Kollegen an der University of Pennsylvania den Electronical Numerical Integrator and Computer (ENIAC), einen der ersten elektronischen Rechner.

2

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

derne mathematische Analysis sowie die Erfordernis, hochdimensionale und komplexe Probleme aus den Anwendungen l¨ osen zu m¨ ussen, ergibt. ¨ Uber die letzten zwei Jahrzehnte hat sich eine neue interdisziplin¨are Fachrichtung, das Wissenschaftliche Rechnen (engl. scientific computing, computational science) herausgebildet, die zwischen der Numerischen Mathematik, der Informatik und den angewandten Wissenschaften angesiedelt ist. Hochleistungsrechner sowie Methoden der Informatik und Numerischen Mathematik werden hier genutzt, um komplexe natur- und ingenieurwissenschaftliche Problemstellungen zu l¨osen. Beruhte die traditionelle Wissenschaft noch auf den zwei Pfeilern Theorie und Experiment, dann stellt das Wissenschaftliche Rechnen den dritten Pfeiler dar. Das oftmals sehr teure Experiment kann nun durch eine viel preiswertere Computersimulation ersetzt werden. Viele Forschungsergebnisse, wie etwa die Entschl¨ usselung des menschlichen Genoms, die Berechnung grundlegender physikalischer Gr¨ oßen in der Teilchenphysik, die Weiterentwicklung elektronischer Bauteile sowie die moderne Krebstherapie sind ohne das Wissenschaftliche Rechnen nicht denkbar. Die Numerische Mathematik spielt in diesem Umfeld eine zentrale Rolle. Sie stellt geeignete numerische Algorithmen zur Verf¨ ugung, die auf den modernen Hochleistungsrechnern zum Einsatz kommen. Das vorliegende Buch soll den Leser mit den Grundbegriffen des numerischen Rechnens vertraut machen und ihm die grundlegenden Techniken und Algorithmen der Numerischen Mathematik in die Hand geben. Ein wichtiges Hilfsmittel in diesem Text sind Programme, die in der Sprache der Matlab geschrieben sind. Sie lassen sich jedoch recht einfach so umformulieren, daß sie auch mit den nicht kommerziellen Matlab-Clones SciLab und GNU Octave verwendet werden k¨ onnen. Die Matlab stellt eine numerische Rechenumgebung bereit und geh¨ort zu den Programmiersprachen der 4. Generation. Der Name wurde urspr¨ unglich aus den Worten Matrizen Laboratorium (engl.: matrix laboratory) gebildet, wobei heute Mathematisches Laboratorium (engl.: mathematical laboratory) besser zutrifft. Cleve Moler1 begann etwa 1977 mit der Entwicklung der Matlab. Seine Intention war, seinen Studenten einen einfachen Zugang zu den wichtigen Programmpaketen der Numerischen Mathematik Linpack und Eispack zu erm¨ oglichen, ohne daß diese die Programmiersprache Fortran erlernen m¨ ussen. Seine neue mathematisch-orientierte Programmierumgebung wurde von den Mathematikern und Anwendern in aller Welt begeistert aufgenommen, so daß er mit den Wissenschaftlern Jack Little und Steve Bangert im Jahre 1984 die Firma MathWorks, Inc. gr¨ unden konnte. Im Mai 2011 hatte sie weltweit etwa 2200 Mitarbeiter, wobei die Mehrzahl von ihnen am Stammsitz der Firma in Natick, Massachusetts ans¨ assig ist. Die Matlab erm¨ oglicht Manipulationen mit Vektoren und Matrizen, das Plotten von Funktionen und Daten, die einfache Implementierung von Algorithmen sowie die Integration von Programmen, die in den Computersprachen C, C++, Java oder Fortran geschrieben sind. F¨ ur spezielle Problemstellungen der Mathematik und den Anwendungen stehen eine Vielzahl von sogenannten Toolboxen zur Verf¨ ugung. 1

Cleve Barry Moler (geb. 1939), US-amerikanischer Mathematiker und Informatiker

1.1 Numerische Algorithmen und Fehler

1.1

3

Numerische Algorithmen und Fehler

Unter dem Begriff numerisches Rechnen versteht man heute die Verwendung eines Computers, um mathematische Problemstellungen in einer endlichen Teilmenge der reellen Zahlen, den sogenannten Maschinenzahlen, n¨ aherungsweise zu l¨osen. Diejenige mathematische Fachdisziplin, die sich vorrangig mit dem numerischen Rechnen besch¨aftigt, heißt Numerische Mathematik. Den Ausgangspunkt f¨ ur das numerische Rechnen stellt ein gegebenes mathematisches Problem dar. Dieses ist durch eine vorzugebende Eingangsinformation (den Eingabedaten) und eine gesuchte Ausgangsinformation (den Ausgabedaten bzw. Resultaten) charakterisiert. Bei den hier interessierenden Fragestellungen bestehen diese Informationen aus Zahlen und Funktionen. Wir wollen dies an einigen einfachen und instruktiven Beispielen erl¨ autern. √ • Wir betrachten als erstes die Berechnung von y = 5 + 4 + x2 . Die Eingabedaten bestehen aus der Zahl x, die Ausgabedaten aus dem Funktionswert y. • Meist treten jedoch mehrere Eingabe- und Ausgabedaten auf. Ein Beispiel hierf¨ ur stellt das lineare Gleichungssystem Ax = b,

A ∈ Rn×n ,

det(A) 6= 0,

b ∈ Rn

dar. Die Eingabedaten sind jetzt {A, b} = {aij , bi : i, j = 1, . . . , n}, also n2 + n Zahlen. Die Ausgabedaten sind {x} = {xi : i = 1, . . . , n}, die n Komponenten der gesuchten L¨ osung x. • Die zur Beschreibung eines mathematischen Problems erforderliche Eingangsinformation kann auch Funktionen enthalten. Ist beispielsweise das bestimmte Integral Z b I= f (x)dx a

zu berechnen, dann ben¨ otigt man die Eingabedaten {a, b, f }, d.h., die Eingangsinformation besteht hier aus den beiden Integrationsgrenzen a und b sowie der Integrandenfunktion f (x). Die Ausgangsinformation enth¨alt nur den Zahlwert I. • Schließlich kann die Ausgangsinformation ebenfalls aus Funktionen bestehen. Ein Beispiel hierf¨ ur ist das Anfangswertproblem y 0 (t) = f (t, y(t)), t ≥ a,

y(a) = ya .

Die Eingangsinformation {a, ya , f } setzt sich aus den Zahlen a und ya , die die Anfangsbedingung bestimmen, sowie der Funktion f (t, y) als rechter Seite der Differentialgleichung zusammen. Die Ausgangsinformation ist die L¨osungsfunktion y(t). Im folgenden beschr¨ anken wir uns auf den Fall, daß sich das mathematische Problem nur durch endlich viele Eingabe- und Ausgabedaten sowie Problemfunktionen beschreiben l¨ aßt.

4

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Der zentrale Gegenstand der Numerischen Mathematik ist der numerische Algorithmus. Dieser kommt zur n¨ aherungsweisen Bestimmung der Ausgangsinformation (L¨osung) eines gegebenen mathematischen Problems zum Einsatz und l¨aßt sich wie folgt charakterisieren. Definition 1.1. Unter einem numerischen Algorithmus versteht man eine Vorschrift, die endlich vielen Eingabedaten und Problemfunktionen in eindeutiger Weise einen Satz von endlich vielen Ausgabedaten (Resultate) zuordnet, wobei nur endlich viele arithmetische und logische Operationen und Auswertungen der Problemfunktionen zul¨assig sind.  Implementiert man nun einen numerischen Algorithmus auf einem beliebigen Computer, dann hat man stets die Genauigkeit der resultierenden numerischen L¨osung zu untersuchen. Computer sind n¨ amlich endliche Maschinen, d.h., jede beliebige reelle Zahl l¨ aßt sich auf einem Computer mit nur endlich vielen Ziffern darstellen. Die genaue Anzahl h¨ angt vom speziellen Rechner ab. Somit ist die Menge der Zahlen, auf die beim numerischen Rechnen tats¨ achlich zur¨ uckgegriffen werden kann, vergleichbar klein. Insbesondere hat man es bei den Computerzahlen mit einer endlichen Menge zu tun und nicht mit einem Zahlk¨ orper. Folglich sind auch solche wichtigen Rechengesetze wie das Assoziativ- und Distributivgesetz i.allg. nicht mehr g¨ ultig. Das Ergebnis einer numerischen Rechnung ist also stets fehlerbehaftet. Im weiteren betrachten wir die wichtigsten Fehlerquellen, die beim numerischen Rechnen zu beachten sind. Voraussetzung 1.1. Ein numerischer Algorithmus werde durch einen funktionalen Zusammenhang der Form zi = fi (x1 , . . . , xn ),

i = 1, . . . , m,

(1.1)

zwischen einem Vektor x = (x1 , . . . , xn )T gegebener Eingabedaten und einem Vektor z = (z1 , . . . , zm )T gesuchter Resultate beschrieben.  Der funktionale Zusammenhang zwischen dem Eingabedaten- und dem Resultatevektor werde an einem einfachen Beispiel erl¨ autert. Beispiel 1.1. 1) Gegeben seien die Koeffizienten x1 und x2 eines reellen quadratischen Polynoms P (t) der Form P (t) = t2 + x1 t + x2 , t ∈ R. (1.2) Gesucht sind die Nullstellen z1 und z2 von P (t), die sich nach der bekannten Formel √ 1 z1/2 = (−x1 ± d) (1.3) 2 bestimmen lassen, sofern x21 − 4x2 ≡ d ≥ 0 gilt.

1.1 Numerische Algorithmen und Fehler

5

Im Falle d < 0 ergeben sich die konjugiert komplexen Nullstellen zu: zˆ1/2 =

√ 1 (−x1 ± i −d). 2

(1.4)

Ein funktionaler Zusammenhang zwischen den Eingabedaten und den Resultaten wird hier also durch die Funktionen fi : R2 → R : (x1 , x2 )T → zi , 2

T

gi : R → C : (x1 , x2 ) → zˆi ,

falls

d ≥ 0, (i = 1, 2)

falls

d < 0, (i = 1, 2)

(1.5)

beschrieben. 2) Es seien umgekehrt z1 und z2 die vorgegebenen reellen Nullstellen eines quadratischen Polynoms P (t), P (t) = t2 + x1 t + x2 . Gesucht sind die Koeffizienten x1 und x2 . Aus P (t) = t2 + x1 t + x2 = (t − z1 )(t − z2 ) = t2 − (z1 + z2 ) t + z1 z2

(1.6)

folgt (siehe auch die Vietaschen1 Wurzels¨ atze): x1 = −(z1 + z2 ),

x2 = z1 z2 .

(1.7)

Der funktionale Zusammenhang wird in diesem Falle durch folgende Funktionen beschrieben: f1 :R2 → R : (z1 , z2 )T → x1 = −(z1 + z2 ), f2 :R2 → R : (z1 , z2 )T → x2 = z1 · z2 .

(1.8) 

Das Tupel der Resultate kann durch unterschiedliche Fehlerarten beeinflußt (genauer verf¨ alscht) werden: Eingabefehler, Approximationsfehler, Rundungsfehler, menschlicher Irrtum sowie Software- und Hardwarefehler. Im folgenden sollen die einzelnen Fehlerquellen kurz beschrieben werden. Eingabefehler ¨ Diese liegen zu Beginn der Rechnung fest. Sie entstehen einerseits bei der Ubertragung der Eingabedaten auf den Computer durch die dabei oftmals erforderliche Rundung. Zum Beispiel muß die irrationale Zahl π auf einem Rechner durch eine t-stellige rationale Zahl ersetzt werden, wenn t die vom Computer bzw. der Software verwendete Mantissenl¨ ange bezeichnet (siehe Abschnitt 1.3). Eingabefehler treten andererseits auf, wenn das Tupel der Eingabedaten x1 , . . . , xn bereits fehlerbehaftet ist, also wenn z.B. • die Eingabedaten aus anderen numerischen Berechnungen resultieren, oder 1

Fran¸cois Vi` ete oder Franciscus Vieta, wie er sich in latinisierter Form nannte (1540–1603), franz¨ osischer Advokat und Mathematiker

6

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens • die Eingabedaten durch praktische Messungen im Labor entstanden sind und deshalb nur im Rahmen der Meßgenauigkeit bestimmt werden konnten.

Notation: Den N¨ aherungswert f¨ ur eine exakte Gr¨oße x kennzeichnen wir im folgenden mit einer Tilde, d.h., x ≈ x ˜. Eingabefehler sind, vom Standpunkt der Numerischen Mathematik aus gesehen, unvermeidbare (probleminh¨ arente) Fehler, die sich nicht mit numerischen Techniken eliminieren lassen. Approximationsfehler Mit diesen Fehlern muß man immer dann rechnen, wenn ein unendlicher oder kontinuierlicher mathematischer Prozeß durch einen endlichen oder diskreten Ausdruck ersetzt wird. Als Beispiele hierf¨ ur k¨ onnen genannt werden: ∗ • Es sei {xi }∞ i=1 eine unendliche Folge, die gegen den Grenzwert x konvergiert. Als Approximation f¨ ur den Grenzwert verwendet man das N -te Glied der Folge, d.h., x∗ ≈ xN , N groß.

• Es sei die konvergente Reihe s =

∞ X

si gegeben. Die N -te Partialsumme wird als

i=1

Approximation f¨ ur diese Reihe verwendet, d.h., s ≈

N X

si , N groß.

i=1

• Es ist die erste Ableitung einer Funktion f (x) an einer Stelle x0 durch den Grenzwert f (x0 + h) − f (x0 ) f 0 (x0 ) ≡ lim h→0 h definiert. Als Approximation f¨ ur den Ableitungswert verwendet man den Differenzenquotienten, d.h., f 0 (x0 ) ≈

f (x0 + h) − f (x0 ) , h

h klein.

• Zu berechnen ist das bestimmte Integral Z b I= f (x) dx. a

Gilt f (x) ≥ 0 f¨ ur alle x ∈ [a, b], dann bestimmt dieses Integral den Inhalt der Fl¨ ache, die durch die Funktion f (x) und die x-Achse auf dem Intervall [a, b] begrenzt wird. Als Approximation f¨ ur I verwendet man den Fl¨acheninhalt des Trapezes mit den vier Eckpunkten (a, 0), (b, 0), (a, f (a)) und (b, f (b)), d.h., es ist h I ≈ (f (a) + f (b)), h ≡ b − a klein. 2

1.1 Numerische Algorithmen und Fehler

7

Rundungsfehler F¨ uhrt man die arithmetischen Grundrechenoperationen {+, −, ×, /} auf der Menge der Computerzahlen (Zahlen mit einer begrenzten Anzahl von Stellen, siehe Abschnitt 1.3) aus, dann m¨ ussen die Ergebnisse i.allg. gerundet werden. Die dadurch resultierenden Rundungsfehler sind zwar sehr klein, sie d¨ urfen aber keinesfalls untersch¨atzt werden. Da moderne Rechenanlagen in kurzer Zeit eine gewaltige Anzahl von arithmetischen Operationen abarbeiten, k¨ onnen sich diese Fehler derart addieren, daß tats¨achlich selbst das Vorzeichen von dem Ergebnis einer numerischen Rechnung nicht mehr stimmen muß! Eine genaue Analyse der Rundungsfehler in einem numerischen Algorithmus stellt in den meisten F¨ allen ein schwieriges und aufwendiges Problem dar, wenn man sich nicht mit groben Fehlerschranken begn¨ ugt. Menschlicher Irrtum, Software- und Hardwarefehler Die Fehler in einem gegebenen mathematischen Modell m¨ ussen m¨oglichst vor den numerischen Berechnungen gefunden und beseitigt werden. Fehlerhafte Software l¨aßt sich i.allg. nur anhand umfangreicher Testprobleme erkennen. Der vor einigen Jahren gefundene Bug im Pentium-Prozessor zeigt, daß man auch bei der Hardware stets mit Fehlern rechnen muß. Die Behandlung der letztgenannten Fehlerarten kann jedoch nicht durch die Numerische Mathematik erfolgen. Es ist u ¨blich, Fehler auf zweierlei Arten zu messen. Definition 1.2. Es sei x ˜ ≡ (˜ x1 , . . . , x ˜n )T ∈ Rn eine N¨aherung f¨ ur den Vektor der exakten Eingabedaten x ≡ (x1 , . . . , xn )T ∈ Rn . Man unterscheidet: • absolute Fehler:

• relative Fehler:

δ(˜ xk ) ≡ x ˜ k − xk ,

ε(˜ xk ) ≡

k = 1, . . . , n,

x ˜ k − xk δ(˜ xk ) = , xk xk

k = 1, . . . , n,

(xk 6= 0). 

Mit der Angabe des relativen Fehlers einer N¨ aherung hat man indirekt eine Normierung der Zahlen vorgenommen, so daß die Gr¨ oßenordnung des exakten Wertes bei der Fehlerbetrachtung keine Rolle mehr spielt. Die Genauigkeit eines N¨ aherungswertes x ˜ wird oftmals wie folgt angegeben. Definition 1.3. Die Zahl x ˜ n¨ ahert den exakten Wert x auf d signifikante (geltende) Ziffern (Stellen) an, wenn d die gr¨ oßte positive ganze Zahl bezeichnet, mit

|ε(˜ x)| =

|˜ x − x| 1 ≈ 10−d . |x| 2

(1.9) 

8

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Beispiel 1.2. |˜ x − x| 1 = 0.000507 ≈ 10−3 . |x| 2 Folglich n¨ ahert x ˜ den exakten Wert x auf 3 signifikante Ziffern an.

1) Es seien x = 3.141592 und x ˜ = 3.14. Dann ist

2) Es seien y = 1, 000, 000 und y˜ = 999, 996. Dann ist

|˜ y − y| 1 = 0.000004 ≈ 10−5 . |y| 2

Somit n¨ ahert y˜ den exakten Wert y auf 5 signifikante Ziffern an.



Bemerkung 1.1. Eine Alternative zu der hier betrachteten Vorgehensweise stellt die sogenannte Intervall-Analyse dar. In den meisten praktischen Problemstellungen sind untere und obere Schranken f¨ ur die Komponenten des Eingabedatenvektors bekannt: αi ≤ xi ≤ βi , 1 ≤ i ≤ n. Des weiteren l¨ aßt sich nachvollziehen, wie man aus diesen Einschließungen Fehlerschranken f¨ ur die Resultate zi (einschließlich aller Zwischenergebnisse) bekommt: γi ≤ zi ≤ τi (1 ≤ i ≤ m). Die Analyse, in welcher Weise [γi , τi ] von den Intervallen [αi , βi ] abh¨ angt, ist einfach durchzuf¨ uhren, wenn die fi monotone Funktionen sind. Probleme treten jedoch dann auf, wenn f¨ ur jedes Zwischenergebnis qualitativ andersartige Betrachtungen angestellt werden m¨ ussen. Es gibt heute anspruchsvolle Software-Pakete, die mit Intervallen anstelle von Zahlen arbeiten. Man muß dabei jedoch beachten, daß f¨ ur sehr große Intervalle [γi , τi ] die Resultate zi oftmals irrelevant sind. 

1.2

Fehlerfortpflanzung, Kondition und numerische Instabilit¨ at

In diesem Abschnitt wollen wir von einer gegebenen mathematischen Problemstellung ausgehen. Wie bei der Beschreibung des numerischen Algorithmus (1.1) m¨oge ein solches Problem formal durch einen funktionalen Zusammenhang zi = fi (x1 , . . . , xn ),

i = 1, . . . , m,

(1.10)

zwischen dem Vektor der Eingabedaten x ≡ (x1 , . . . , xn )T und dem Vektor der zugeh¨ origen Resultate z ≡ (z1 , . . . , zm )T dargestellt werden. Wir wollen des weiteren annehmen, daß ein korrekt gestelltes Problem im Sinne der folgenden Definition vorliegt. Definition 1.4. Ein Problem heißt korrekt gestellt (engl.: well-posed“), falls ” • zu jedem Satz x von zul¨ assigen Eingabedaten genau ein Satz z von Resultaten existiert, und • die Resultate stetig von den Eingabedaten abh¨angen.



1.2 Fehlerfortpflanzung, Kondition und numerische Instabilit¨at

9

Die Korrektheit eines mathematischen Problems ist eine der Grundvoraussetzungen, damit es auch einer numerischen Behandlung zugef¨ uhrt werden kann, d.h., nur f¨ ur korrekt gestellte Probleme lassen sich vern¨ unftige numerische L¨osungsstrategien entwickeln. Eine weitere, f¨ ur die Numerische Mathematik wichtige Eigenschaft des jeweiligen Problems ist dessen Kondition. Die Diskussion dieser Problemeigenschaft basiert auf der folgenden Fragestellung: Wie wirken sich (sehr kleine) absolute bzw. relative Fehler in den Eingabedaten auf die Resultate aus? Wir treffen hierzu 2 Vereinbarungen. Voraussetzung 1.2. 1) Die Funktionen fi (x), i = 1, . . . , m, seien in einer hinreichend großen Umgebung des Vektors x der Eingabedaten differenzierbar. 2) Alle arithmetischen Operationen zur Auswertung der fi (x), i = 1, . . . , m, m¨ogen ohne Fehler, d.h. rundungsfehlerfrei ausf¨ uhrbar sein.  Zuerst wollen wir die Anf¨ alligkeit der vier arithmetischen Grundrechenoperationen gegen¨ uber Fehlern in den Eingabedaten untersuchen. Die Fragestellung lautet pr¨aziser formuliert: Gegeben: F¨ ur die Eingabedaten x = (x1 , x2 )T liegen die N¨aherungen x ˜ = (˜ x1 , x ˜ 2 )T T vor, die mit den absoluten Fehlern δ(˜ x) = (δ(˜ x1 ), δ(˜ x2 )) und den relativen Fehlern ε(˜ x) = (ε(˜ x1 ), ε(˜ x2 ))T versehen sind. Diese Fehler m¨ogen dem Betrag nach in der Gr¨ oßenordnung der Maschinengenauigkeit des verwendeten Rechners liegen und sind demzufolge als sehr klein zu betrachten. Gesucht: Schranken, f¨ ur die bei der Addition (Subtraktion), Multiplikation und Division auftretenden Fehlern in den Resultaten, welche allein aus der Fortpflanzung der Fehler in den Eingabedaten resultieren. Wir gehen somit von der Vereinfachung aus, daß sich die Grundrechenoperationen exakt, d.h. rundungsfehlerfrei ausf¨ uhren lassen. Dies ist bei der Realisierung auf einem Rechner nat¨ urlich nicht gegeben. Die Fragestellung ist jedoch insofern relevant, als daß bei jeder numerischen Rechnung die zugeh¨origen Eingabedaten der Wortl¨ange des jeweiligen Rechners anzupassen sind. So k¨ onnen zum Beispiel irrationale Zahlen (π, e, etc.) nicht mit unendlicher Stellenzahl verarbeitet werden. Unterscheidet sich die exakte L¨ osung des Problems mit den gerundeten Eingabedaten schon wesentlich von der exakten L¨ osung des urspr¨ unglichen Problems, dann macht es keinen Sinn, dieses Problem mit einem noch so guten numerischen Verfahren zu l¨osen. Die bei der numerischen Rechnung zus¨ atzlich anfallenden Rundungsfehler der Zwischen- und Endresultate w¨ urden diese inh¨ arente Instabilit¨ at (man spricht hier von schlechter Kondition der Problemstellung) nur noch verst¨ arken. Addition (bzw. Subtraktion) Das exakte Resultat z der Addition (Subtraktion) zweier exakter Eingabedaten x1 und x2 ist z = f (x1 , x2 ) ≡ x1 + x2 .

10

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

F¨ ur die gen¨ aherten Eingabedaten x ˜1 und x ˜2 ergibt sich bei (rundungs-)fehlerfreier Ausf¨ uhrung der Rechenoperation das exakte Resultat z˜: z˜ ≡ f (˜ x1 , x ˜2 ) = x ˜1 + x ˜2 = x1 + δ(˜ x1 ) + x2 + δ(˜ x2 ). Hieraus resultiert f¨ ur den absoluten Fehler des Resultates z˜ die Darstellung δ(˜ z ) ≡ z˜ − z = δ(˜ x1 ) + δ(˜ x2 ).

(Absoluter Fehler)

(1.11)

Der absolute Fehler des Resultates ergibt sich somit unmittelbar aus der Summe der absoluten Fehler der Eingabedaten. Da vor diesen in der Formel (1.11) jeweils der Vorfaktor Eins steht, werden die (unvermeidbaren) Fehler in den Eingabedaten nicht weiter verst¨ arkt. Damit ist die Addition im Hinblick auf den absoluten Fehler unproblematisch. Wir wollen jetzt den relativen Fehler ε(˜ z ) von z˜ untersuchen. Dieser bestimmt sich zu: ε(˜ z) ≡

δ(˜ z) δ(˜ x1 ) + δ(˜ x2 ) = , z x1 + x2

Verwendet man die Beziehungen ε(˜ x1 ) ≡ sich die Darstellung ε(˜ z) =

x1 6= −x2 .

δ(˜ x1 ) δ(˜ x2 ) , ε(˜ x2 ) ≡ , x1 6= 0 6= x2 , so ergibt x1 x2

x1 x2 ε(˜ x1 ) + ε(˜ x2 ). x1 + x2 x1 + x2

(Relativer Fehler)

(1.12)

Der folgende Sachverhalt ist daraus unschwer zu erkennen: • Ist sign(x1 ) = sign(x2 ) (dies entspricht der eigentlichen Addition!), dann gilt xi ≤ 1, x1 + x2

i = 1, 2,

d.h., die Vorfaktoren in der Formel (1.12) sind beschr¨ankt und es tritt keine Anfachung der relativen Fehler ε(˜ x1 ) und ε(˜ x2 ) auf! • Ist sign(x1 ) 6= sign(x2 ) (dies entspricht der eigentlichen Subtraktion!), dann tritt im Falle x1 ≈ −x2 eine gef¨ ahrliche Verst¨ arkung der (vorliegenden) relativen Fehler ε(˜ xi ), i = 1, 2, auf. Letzteres Ph¨ anomen wird in der Numerischen Mathematik wie folgt bezeichnet. Definition 1.5. Ist x1 ≈ −x2 , dann wird der relative Fehler bei der Addition (eigentliche Subtraktion!) extrem verst¨ arkt. Man nennt diesen Effekt Ausl¨ oschung f¨ uhrender Dezimalstellen, da beide Zahlen denselben Exponenten und u uhrende ¨bereinstimmende f¨ Mantissenstellen haben, die bei der Differenzbildung zu Null werden und eine ReNormalisierung erforderlich machen (siehe auch Abschnitt 1.3). 

1.2 Fehlerfortpflanzung, Kondition und numerische Instabilit¨at

11

Wir wollen diese Definition mit einem Beispiel untersetzen. Beispiel 1.3. Es seien die folgenden zwei Zahlen x1 und x2 sowie die zugeh¨origen N¨ aherungen x ˜1 und x ˜2 gegeben. x1 = 1.36, x ˜1 = 1.41 ⇒ δ(˜ x1 ) = 0.05, x2 = −1.35, x ˜2 = −1.39 ⇒ δ(˜ x2 ) = −0.04,

ε(˜ x1 ) = 0.05/1.36 = 0.0367 . . . ε(˜ x2 ) = 0.0296 . . .

Somit gilt: z = x1 + x2 = 0.01,

z˜ = x ˜1 + x ˜2 = 0.02

δ(˜ z ) = δ(˜ x1 ) + δ(˜ x2 ) = 0.01, ε(˜ z ) = δ(˜ z )/z = 1.



Obwohl der relative Fehler der Problemdaten weniger als 5% betr¨agt, ergibt sich ein relativer Fehler des Resultats von ungef¨ ahr 100%.  Multiplikation In diesem Falle ist z = f (x1 , x2 ) ≡ x1 · x2 , so daß f¨ ur gest¨orte Eingabedaten die Beziehung z˜ = f (˜ x1 + x ˜2 ) = x ˜1 · x ˜2 gilt. F¨ ur den absoluten Fehler des Resultates folgt daraus δ(˜ z)

=

z˜ − z = x ˜1 x ˜2 − x1 x2 = (x1 + δ(˜ x1 ))(x2 + δ(˜ x2 )) − x1 x2

=

x2 δ(˜ x1 ) + x1 δ(˜ x2 ) + δ(˜ x1 )δ(˜ x2 ).

Da vorausgesetzt wird, daß δ(˜ x1 ) und δ(˜ x2 ) betragsm¨aßig sehr klein sind (jeweils in der Gr¨ oßenordnung der Maschinengenauigkeit), kann der quadratische Term δ(˜ x1 ) δ(˜ x2 ) vernachl¨ assigt werden. Man erh¨ alt deshalb in linearer N¨aherung δ(˜ z )  x2 δ(˜ x1 ) + x1 δ(˜ x2 ).

(Absoluter Fehler)

(1.13)

Die obige Formel sagt aus, daß bei vern¨ unftig skalierten Eigabedaten x1 und x2 die Multiplikation zu keinem extremen Anwachsen des absoluten Resultatefehlers f¨ uhren kann. F¨ ur den relativen Fehler von z˜ ergibt sich aus (1.13) die Darstellung ε(˜ z) ≡

δ(˜ z) δ(˜ x1 ) x2 + δ(˜ x2 ) x1 δ(˜ x1 ) δ(˜ x2 )  = + , z x1 x2 x1 x2

das heißt, es ist ε(˜ z )  ε(˜ x1 ) + ε(˜ x2 ).

(Relativer Fehler)

(1.14)

Im Gegensatz zur Addition verh¨ alt sich die Multiplikation auch hinsichtlich des relativen Fehlers v¨ ollig problemlos, da in der Formel (1.14) jeweils eine Eins als Vorfaktor vor den Gr¨ oßen ε(˜ xi ), i = 1, 2, steht.

12

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Division ¨  Als Ubungsaufgabe zeige man die folgenden Fehlerfortpflanzungsgesetze f¨ ur die Division z = f (x1 , x2 ) ≡ x1 /x2 , x2 6= 0: δ(˜ z) 

1 x1 δ(˜ x1 ) − 2 δ(˜ x2 ), x2 x2

(Absoluter Fehler)

(1.15)

ε(˜ z )  ε(˜ x1 ) − ε(˜ x2 ).

(Relativer Fehler)

(1.16)

Die Darstellung (1.15) des absoluten Resultatefehlers impliziert, daß es sich bei der Division genau dann um ein schlecht konditioniertes Problem handelt, falls der Divisor betragsm¨ aßig sehr klein ist. Aus den obigen Untersuchungen ergibt sich nun zusammenfassend die folgende Aussage. Folgerung 1.1. Bei numerischen Rechnungen sind unbedingt zu vermeiden: • die Division durch betragskleine Zahlen, sowie • die Addition von Zahlen mit umgekehrten Vorzeichen, die sich im Betrag nur wenig unterscheiden.  Wir wollen jetzt das Fehlerfortpflanzungsverhalten f¨ ur das allgemeine Problem (1.10) untersuchen. Hierzu treffen wir die Voraussetzung 1.3. Die Funktionen fi : Ω → R, i = 1, . . . , m, seien auf der offenen und konvexen Menge Ω ⊆ Rn definiert und stetig differenzierbar.  Faßt man auch die Funktionen fi (x) zu einem Vektor F (x) ≡ (f1 (x), . . . , fm (x))T zusammen, dann l¨ aßt sich ein gegebenes mathematisches Problem in der Form z = F (x)

(1.17)

aufschreiben. Verwendet man in der Formel (1.17) anstelle der exakten Eingabedaten x = (x1 , . . . , xn )T die gest¨ orten Daten x ˜ = (˜ x1 , . . . , x ˜n )T und wertet die Funktionen fi (x) exakt aus, so ergibt sich z˜ = F (˜ x). Der Vektor der absoluten Fehler der Resultate δ(˜ z ) = (δ(˜ z1 ), . . . , δ(˜ zm ))T berechnet sich dann zu δ(˜ z ) = z˜ − z = F (˜ x) − F (x).

(1.18)

Die Taylorentwicklung von F (˜ x) an der Stelle x lautet (f¨ ur δ(˜ x) → 0) F (˜ x) = F (x) + J(x)(˜ x − x) + o(k˜ x − xk) = F (x) + J(x) δ(˜ x) + o(kδ(˜ x))k).

(1.19)

1.2 Fehlerfortpflanzung, Kondition und numerische Instabilit¨at

13

Die in (1.19) auftretende Jacobi 1 -Matrix J(x) ∈ Rm×n von F (x) ist wie folgt definiert:  ∂f

1

(x)

 ∂x1   ∂f2  (x)  J(x) ≡  ∂x1  ···    ∂f m (x) ∂x1

∂f1 (x) ∂x2 ∂f2 (x) ∂x2 ···

··· ··· ···

∂fm (x) · · · ∂x2

 ∂f1 (x)  ∂xn   ∂f2 (x)   ∂xn . ···     ∂fm (x) ∂xn

(1.20)

Substituiert man nun (1.19) in (1.18), so resultiert δ(˜ z ) = F (x) + J(x) δ(˜ x) + o(kδ(˜ x)k) − F (x) = J(x) δ(˜ x) + o(kδ(˜ x)k),

δ(˜ x) → 0.

Da wir davon ausgegangen sind, daß die tats¨ achlichen Eingabedaten x ˜ gegen¨ uber den exakten Eingabedaten x nur geringf¨ ugig ver¨ andert sind (in der Gr¨oßenordnung der Maschinengenauigkeit), ist der Summand o(kδ(˜ x)k) im Vergleich zum ersten Summanden vernachl¨ assigbar. Wir k¨ onnen deshalb in erster N¨aherung schreiben δ(˜ z )  J(x) δ(˜ x).

(1.21)

In komponentenweiser Darstellung erh¨ alt man daraus

δ(˜ zi ) 

Pn

j=1



∂fi (x) ∂xj

 δ(˜ xj ),

i = 1, . . . , m.

(1.22)

Die in der Formel (1.22) auftretenden Faktoren vor den absoluten Fehlern der Eingabedaten geben Anlaß zu der Definition 1.6. Die Gr¨ oße ∂fi σij ≡ (x) ∂xj

(1.23)

heißt absolute Konditionszahl des i-ten Resultates in Bezug auf die j-te Komponente des Eingabedatenvektors.  Die Konditionszahl σij gibt an, um welchen Faktor verst¨arkt (oder ged¨ampft) die Komponente δ(˜ xj ) in die Fehlerkomponente δ(˜ zi ) eingeht. 1

Carl Gustav Jacob Jacobi, eigentlich Jacques Simon (1804–1851), deutscher Mathematiker. Neben der Jacobi-Matrix sind nach ihm u.a. die Jacobi-Polynome, das Jacobi-Verfahren, das Jacobi-Symbol, aber auch ein Mondkrater benannt.

14

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Es werde jetzt der relative Fehler der Resultate untersucht. Hierzu wollen wir xj 6= 0, δ(˜ xj ) j = 1, . . . , n, und fi (x) 6= 0, i = 1, . . . , m, voraussetzen. Mit ε(˜ xj ) = folgt nun xj aus (1.22)  n  X δ(˜ zi ) xj ∂fi ε(˜ zi ) =  (x) ε(˜ xj ), fi (x) fi (x) ∂xj j=1

i = 1, . . . , m.

(1.24)

Beim relativen Fehler treten also andere Faktoren vor den (relativen) Fehlern der Eingabedaten auf. Definition 1.7. Die Gr¨ oße xj ∂fi τij ≡ (x) fi (x) ∂xj

(1.25)

heißt relative Konditionszahl des i-ten Resultates in Bezug auf die j-te Komponente des Eingabedatenvektors.  Man beachte: Die Vorfaktoren xj /fi (x) wirken sich besonders ung¨ unstig auf den relativen Fehler der Resultate aus, wenn ein betragsm¨aßig kleines Resultat fi (x) aus einer betragsm¨ aßig großen Komponente xj des Eingabedatenvektors berechnet wird! Nach den Formeln (1.23) und (1.25) ergeben sich f¨ ur das Problem (1.17) ganze Matrizen Σ(x) ≡ [σij (x)] ∈ Rm×n und T (x) ≡ [τij (x)] ∈ Rm×n von Konditionszahlen. Um + + jeweils nur eine einzige Konditionszahl zu erhalten, kann man ein geeignetes Maß f¨ ur die Gr¨ oßenordnung der Matrizen Σ(x) und T (x) verwenden. Hier bietet sich eine der im Abschnitt 2.5.1 definierten Matrixnormen k · kp an. Man erh¨alt damit (condp F )(x) ≡ kΣ(x)kp ,

Σ(x) = [σij (x)],

(rcondp F )(x) ≡ kT (x)kp ,

T (x) = [τij (x)].

(1.26)

Die auf diese Weise definierten Konditionszahlen h¨angen offensichtlich von der verwendeten Matrixnorm ab. Da es aber hier nur auf die Gr¨oßenordnung ankommt, spielt die spezielle Matrixnorm keine signifikante Rolle. Deshalb wird der Index p in (1.26) h¨aufig auch weggelassen. Definition 1.8. Ein Problem mit relativ großen Konditionszahlen bezeichnet man als schlecht konditioniert. Es handelt sich dabei um eine nat¨ urliche Instabilit¨at des gegebenen mathematischen Problems in dem Sinne, daß kleine Fehler in den Eingabedaten zu großen Fehlern in den Resultaten f¨ uhren k¨ onnen. Sind dagegen die Konditionszahlen relativ klein, so liegt eine gut konditionierte Problemstellung vor.

1.2 Fehlerfortpflanzung, Kondition und numerische Instabilit¨at

15

Unter Verwendung der im Abschnitt 1.3, Formel (1.49), erkl¨arten relativen Maschinengenauigkeit ν l¨ aßt sich der obige Sachverhalt auch wie folgt formulieren. Ein mathematisches Problem heißt gut konditioniert bez¨ uglich der relativen Fehler, falls ν · (rcond F )(x)  1

(1.27)

gilt. Anderenfalls wird das Problem als schlecht konditioniert bezeichnet. F¨ ur die absoluten Fehler gilt eine zu (1.27) entsprechende Formel bzw. Aussage.  Man beachte: Die Kondition eines Problems l¨aßt sich mit den Mitteln der Numerischen Mathematik nicht ver¨ andern. Diese spezielle Form der Instabilit¨at bzw. Stabilit¨ at ist eine Eigenschaft des gegebenen mathematischen Problems und h¨angt nicht vom gew¨ ahlten Rechenprozeß ab. Bereits bei der mathematischen Modellierung naturwissenschaftlich-technischer Prozesse sollte man diesem Sachverhalt Rechnung zu tragen. Beispiel 1.4. Gegeben sei das mathematische Problem z = F (x), mit  x1  e T T x = (x1 , x2 ) , z = (z1 , z2 ) und F (x) =  x2  . x1 − x2 Man berechnet f¨ ur die absoluten Konditionszahlen  x1 x1  e e Σ(x) =  x2 x22  1 1 und f¨ ur die relativen Konditionszahlen 

|x1 |

 T (x) =  x1 x1 − x2

1



 x2  . x1 − x2

Folglich ist das Problem bez¨ uglich der absoluten Fehler schlecht konditioniert, falls |x1 | groß und/oder |x2 | klein ist. Das Problem ist bez¨ uglich der relativen Fehler schlecht konditioniert, wenn |x1 | ≈ |x2 | und sign(x1 ) = sign(x2 ) gilt.

(Ausl¨oschung!!) 

Neben der nat¨ urlichen Stabilit¨ at/Instabilit¨ at (besser: gute/schlechte Kondition) kennt man noch die sogenannte numerische Stabilit¨ at/Instabilit¨ at. Dieser Stabilit¨atstyp bezieht sich auf den jeweiligen numerischen Algorithmus. Ein Algorithmus wird numerisch instabil genannt, wenn es Eingabedaten gibt, bei denen sich die Rundungsfehler w¨ ahrend der Rechnung so akkumulieren, daß ein v¨ollig verf¨alschtes Ergebnis entsteht.

16

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Damit ist es nat¨ urlich m¨ oglich, daß durch die Anwendung einer instabilen Berechnungsmethode auf ein gut konditioniertes Problem eine numerische L¨osung erzeugt wird, die vollst¨ andig von der exakten L¨ osung des gegebenen Problems abweicht. Wir wollen dies an einem Beispiel demonstrieren. Beispiel 1.5. Gegeben sei das folgende mathematische Problem: Das Resultat z ist f¨ ur x = 30 aus der Formel z ≡ f (x) = ln (x −

p x2 − 1)

(1.28)

zu berechnen. Wir wollen nun die Kondition dieses Problems studieren, wobei wir uns auf den absoluten Fehler des Resultates beschr¨anken. Da nur eine Eingabegr¨oße und auch nur ein Resultat in (1.28) auftreten, k¨onnen wir in (1.23) die Indizes i und j weglassen. Des weiteren geht die partielle Ableitung in die gew¨ohnliche Ableitung u ¨ber, die sich f¨ ur das gegebene Problem wie folgt berechnet:   x 1 1 0 √ f (x) = 1 − √ = −√ . 2 2 2 x −1 x− x −1 x −1 Somit ergibt sich eine absolute Konditionszahl σ = |f 0 (30)| ≈ 0.033. Das gestellte Problem ist offensichtlich sehr gut konditioniert. Bei einer absoluten St¨orung δ(˜ x) der Problemgr¨ oße x, mit δ(˜ x) ≈ 5 · 10−2 , erh¨ alt man (bei exakter Rechnung) in erster N¨ aherung f¨ ur den absoluten Resultatefehler: δ(˜ z ) = z˜ − z = f (x + δ(˜ x)) − f (x)  f 0 (x) δ(˜ x) ≈ −0.00165. W¨ ahrend der numerischen Behandlung des Problems (Rechnung mit einer durch den Computer vorgeschriebenen Wortl¨ ange) treten Rundungsfehler auf, die das Resultat √ √ 2 stark verf¨ alschen k¨ onnen. Wegen x − 1 = 899 = 29.9833287 . . . liegt bei der x=30 √ Berechnung von (x − x2 − 1) das oben beschriebene Ph¨anomen der Ausl¨ oschung x=30 vor. Eine 4-stellige Rechnung ergibt zum Beispiel: p (x − x2 − 1) = 30 − 29.98 = 0.02. x=30

Genauer gilt: (x −

p

x2 − 1)

= 30 − 29.9833287 . . . = 0.0166713 . . . x=30

Der hier auftretende absolute Fehler 0.02 − 0.0166713 . . . = 0.0033287 . . . wird beim ¨ Ubergang zum Logarithmus verst¨ arkt, da die Konditionszahl σ ˆ von z = f (x) = ln(x) (in Bezug auf die Eingangsgr¨ oße x = 0.0166713 . . .) groß ist: d 1 = ≈ 60. σ ˆ = ln(x) dx x x=0.0166713... x=0.0166713... Die Berechnung des Logarithmus ist in diesem Falle ein schlecht konditioniertes Problem, so daß ein sehr großer absoluter Resultatefehler entsteht: ˆ z ) = ln (0.02) − ln (0.0166713 . . .) = 0.1820436 . . . δ(˜

1.2 Fehlerfortpflanzung, Kondition und numerische Instabilit¨at

17

Demgegen¨ uber bleibt in exakter Arithmetik, wie wir oben gesehen haben, der absolute Resultatefehler selbst bei einer großen St¨ orung der Eingabegr¨oße (zu x ˜ = x + δ(˜ x), mit δ(˜ x) ≈ 5 · 10−2 ) klein.  Das obige Beispiel liefert die Motivation daf¨ ur, das Ph¨anomen der numerischen Stabilit¨ at (beziehungsweise numerischen Instabilit¨ at) eingehender zu untersuchen. Wir fassen jetzt die Vorschrift (1.28) nicht nur als mathematisches Problem, sondern auch als numerischen Algorithmus zu dessen L¨ osung auf. Dies soll heißen, daß jede einzelne Rechenoperation und jede Auswertung der Problemfunktionen nur n¨aherungsweise (gerundet) realisiert werden kann. Jeder Algorithmus l¨ aßt sich in eine Kette aufeinanderfolgender Elementaralgorithmen zerlegen. F¨ ur unser obiges Beispiel erh¨ alt man: g1 : R → R2 : x → (x, x2 )T , √ T g3 : R2 → R2 : (s, t)T → s, t , g5 : R → R : w → ln (w).

g2 : R2 → R2 : (y, z)T → (y, z − 1)T , g4 : R2 → R : (u, v)T → u − v,

(1.29)

Es gilt dann: z = f (x) = g5 ◦ g4 ◦ g3 ◦ g2 ◦ g1 (x). Die Berechnung von z = f (x) wird also mit Hilfe einer Faktorisierung der Abbildung f gem¨ aß f = g5 ◦ g4 ◦ g3 ◦ g2 ◦ g1 (1.30) durchgef¨ uhrt. Bei einer komplexeren Abbildung nimmt man i.allg. keine so detaillierte Faktorisierung vor, da sonst die Anzahl der Elementaralgorithmen zu groß und damit un¨ ubersichtlich wird. Deshalb faßt man die Elementaralgorithmen zu (stabilen) Teilalgorithmen zusammen. F¨ ur unser Beispiel l¨ aßt sich der Prozeß etwa folgendermaßen unterteilen:  p T g1 : R → R2 : x → x, x2 − 1 ,

g2 : R2 → R : (u, v)T → u − v,

g3 : R → R : y → ln (y), und damit z = f (x) = g3 ◦ g2 ◦ g1 (x). Anhand einer solchen Faktorisierung von f, f = gk ◦ gk−1 ◦ · · · ◦ g1 ,

(1.31)

l¨ aßt sich nun analysieren, ob ein numerischer Algorithmus stabil oder instabil ist. Bei diesen Untersuchungen hat man folgende Sachverhalte zu ber¨ ucksichtigen: • es ist mit einer St¨ orung der gegebenen (exakten) Eingabedaten x ≡ x(0) in der (0) (0) Form x ˜ = x + δ(˜ x(0) ) zu rechnen; • bei der numerischen Auswertung der Teilalgorithmen gi , i = 1, . . . , k, treten anstelle der exakten Zwischenresultate x(i) = gi (x(i−1) ) = gi ◦ · · · ◦ g1 (x(0) )

18

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens durch Rundungsfehler verf¨ alschte Ergebnisse auf, die wie folgt dargestellt werden k¨ onnen: x ˜(i) = gi (˜ x(i−1) ) + δ(˜ x(i) ). (1.32)

Der absolute Fehler δ(˜ x(i) ) wird entsprechend der nat¨ urlichen Stabilit¨ at (Kondition) von gi+1 , gi+2 , . . . , gk an das Endresultat weitergegeben. Die nat¨ urliche Stabilit¨at von gi+1 , . . . , gk ist aber gerade durch deren partielle Ableitungen, insbesondere durch die Funktionalmatrizen Dgi+1 , . . . , Dgk , bestimmt. Da sich bei einem Produkt von Abbildungen hi ≡ gk ◦ · · · ◦ gi+1 , i = 0, . . . , k − 1, (1.33) die Funktionalmatrizen nach der Kettenregel multiplizieren, geht der Fehler δ(˜ x(i) ) um den Faktor Dhi = Dgk · · · Dgi+1 (1.34) verst¨ arkt (oder abgeschw¨ acht) in das Endresultat ein: δ(˜ x(k) ) = x ˜(k) − z  Df δ(˜ x(0) ) + Dh1 δ(˜ x(1) ) + · · · + Dhk−1 δ(˜ x(k−1) ) + δ(˜ x(k) ). (1.35) Somit erweist sich ein Algorithmus als gef¨ ahrlich, wenn die Elemente der Matrizen Dhi im Vergleich zu den Elementen von Df betragsm¨aßig groß sind, da dann ein Fehler in den gi sehr ung¨ unstig in das Endresultat eingeht. Es liegt in diesem Falle numerische Instabilit¨ at vor. Bemerkung 1.2. Geht man bei der numerischen Berechnung von z = f (x) davon aus, daß der Eingabedatenvektor mit gewissen Eingabefehlern behaftet ist, x ˜(0) = x(0) + δ(˜ x(0) ) ≡ x + δ,

(1.36)

und daß nur mit einer bestimmten endlichen Stellenzahl gerechnet werden kann, so liefert die Faktorisierung von f im g¨ unstigsten Fall: δ(˜ x(1) ) = · · · = δ(˜ x(k−1) ) = 0,

gk (˜ x(k−1) ) = (gk ◦ · · · ◦ g1 )(x + δ) = f (x + δ), (1.37)

δ(˜ x(k) ) = rd(f (x + δ)) − f (x + δ). In (1.37) bezeichnet rd(f ) den gerundeten Wert von f . Diese Rundungsoperation wird in Abschnitt 1.3 genauer untersucht. Damit tritt bei jedem numerischen Algorithmus in erster N¨ aherung mindestens der von der gew¨ahlten Faktorisierung unabh¨angige Fehler Df δ + rd(f (x + δ)) − f (x + δ) auf.

(1.38) 

Ausgehend von dem Fehler (1.38), den man bei allen numerischen Berechnungen ber¨ ucksichtigen muß, definiert man nun wie folgt:

1.3 Rundungsfehler bei Gleitpunkt-Arithmetik

19

Definition 1.9. Bezeichnen k · k eine Vektornorm und k · kM eine dazu vertr¨agliche Matrixnorm (siehe Abschnitt 2.5.1), dann wird die Gr¨oße kDf kM kδk + krd(f (x + δ)) − f (x + δ)k unvermeidbarer Fehler genannt.

(1.39) 

Das Problem, einen stabilen numerischen Algorithmus zu entwickeln, beinhaltet damit folgende Zielstellung. Es ist daf¨ ur Sorge zu tragen, daß die auf der Basis der vorliegenden Faktorisierung durch Fehlerfortpflanzung in das Endresultat eingehenden Fehler in der Gr¨ oßenordnung des unvermeidbaren Fehlers (1.39) bleiben.

1.3

Rundungsfehler bei Gleitpunkt-Arithmetik

Ein Computer arbeitet i.allg. mit mehreren Typen von Zahlen, die sich durch ihre interne Darstellungs- und Verarbeitungsweise unterscheiden. Die beiden wichtigsten sind: • Festpunktzahlen (engl.: fixed point numbers“), in Programmiersprachen meist ” vom Typ integer. Sie werden zur Angabe von ganzen Zahlen verwendet. • Gleitpunktzahlen (engl.: floating point numbers“), in Programmiersprachen meist ” vom Typ real. Sie werden zur Darstellung von Zahlen mit Angabe eines rationalen Anteils verwendet. Festpunktzahlen Jede Zahl wird als ganze Zahl dargestellt. Betr¨ agt beispielsweise die Wortl¨ange 24 bit, dann ergibt sich der Zahlbereich:  −8, 388, 607 (= −223 + 1) Zahlbereich: . 8, 388, 607 (= 223 − 1) Offensichtlich steht mit dieser Zahlendarstellung auf dem Computer nur ein sehr kleiner Zahlbereich f¨ ur das numerische Rechnen zur Verf¨ ugung. Dieser Zahlbereich l¨aßt sich wesentlich vergr¨ oßern durch die Darstellung der Zahlen als Gleitpunktzahlen. Gleitpunktzahlen Jede Zahl x ∈ R l¨ aßt sich in halblogarithmischer Darstellung wie folgt angeben: x = Vorzeichen Mantisse × BasisExponent .

(1.40)

Zum Beispiel besitzt die reelle Zahl x = −8432.1 die halblogarithmische Darstellung: x=

− |{z}

0.84321 | {z } ×

104 . |{z}

Vorzeichen Mantisse BasisExponent

20

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Da die Mantisse und der Exponent auf einem Computer nicht beliebig große Werte annehmen k¨ onnen, m¨ ussen sie entsprechend beschr¨ankt werden. Man kommt damit zu den sogenannten Gleitpunktzahlen xM , die f¨ ur eine beliebige Basis β wie folgt erkl¨art sind: xM ≡ ± 0.x1 x2 . . . xt × β e = ± 0 ≤ xj ≤ β − 1,

j = 1, . . . , t,



x1 x2 xt + 2 + ··· + t β β β



× βe, (1.41)

−L ≤ e ≤ U.

Um gewisse Mehrdeutigkeiten bei dieser Zahlendarstellung auszuschließen, wollen wir f¨ ur die weiteren Betrachtungen voraussetzen, daß die Mantisse der verwendeten Gleitpunktzahlen stets im Sinne der Definition 1.10 normiert ist. Definition 1.10. Gilt x1 6= 0 in (1.41), dann spricht man von einer normalisierten Gleitpunktdarstellung.  Die Gleitpunkt-Null 0M “ spielt eine gewisse Ausnahmerolle. Sie wird in den u ¨blichen ” Modellen wie folgt definiert: 0M ≡ + 0.000 . . . 0 × β −L .

(1.42)

Definition 1.11. Die Menge R = R(β, t, L, U ) aller in der Form (1.41), (1.42) darstellbaren und normalisierten Zahlen xM wird als die Menge der Maschinenzahlen bezeichnet.  Bemerkung 1.3. Offensichtlich besteht R(β, t, L, U ) nur aus endlich vielen Elementen. Exakter formuliert lautet diese Aussage: die Menge der Maschinenzahlen besitzt genau N Elemente, mit N ≡ 2 (β − 1) β t−1 (U + L + 1) + 1.

(1.43)

Diese Anzahl berechnet sich wie folgt: • es sind zwei Vorzeichen m¨ oglich, • die f¨ uhrende Mantissenstelle kann β − 1 Werte annehmen, • f¨ ur jede der verbleibenden t − 1 Mantissenstellen gibt es β M¨oglichkeiten, und • der Exponent kann U + L + 1 Werte durchlaufen. • Die 1 ist noch zu addieren, um die Maschinen-Null zu ber¨ ucksichtigen.



1.3 Rundungsfehler bei Gleitpunkt-Arithmetik

21

Eine der nachteiligsten Eigenschaften der Maschinenzahlen ist deren ungleichm¨aßige Verteilung. Dies soll an einem Beispiel demonstriert werden. Beispiel 1.6. Wir betrachten R(2, 3, 1, 2), d.h., die Menge aller Zahlen x, die sich in der Form x = ± 0.x1 x2 x3 × 2e , −1 ≤ e ≤ 2, xi ∈ {0, 1} darstellen lassen. Man erh¨ alt: (0.000)2 × 2−1

=

(0.100)2 × 2−1

=

(0.101)2 × 2−1

=

(0.110)2 × 2−1

=

(0.111)2 × 2−1

=

(0.100)2 × 20

=

(0.101)2 × 20

=

(0.110)2 × 20

=

(0.111)2 × 20

=

(0.100)2 × 21

=

(0.101)2 × 21

=

(0.110)2 × 21

=

(0.111)2 × 21

=

0 1 1 1 · = 2 2 4 1 1 1 5 ( + )· = 2 8 2 16 1 1 1 3 ( + )· = 2 4 2 8 1 1 1 1 7 ( + + )· = 2 4 8 2 16 1 1 ·1= 2 2 1 1 5 ( + )·1= 2 8 8 1 1 3 ( + )·1= 2 4 4 1 1 1 ( + + )·1= 2 4 8 1 ·2=1 2 1 1 5 ( + )·2= 2 8 4 1 1 3 ( + )·2= 2 4 2 1 1 1 ( + + )·2= 2 4 8

7 8

7 , etc. 4

Da die negativen Maschinenzahlen symmetrisch zum Nullpunkt angeordnet sind, brauchen sie nicht gesondert berechnet zu werden. Der Abbildung   1.1 ist zu entnehmen, daß sich beispielsweise jede Zahl x ∈ R aus dem Intervall 14 , 12 relativ genau durch eine Maschinenzahl xM ∈ R(2, 3, 1, 2) approximieren l¨ aßt. Andererseits k¨ onnen die reellen Zahlen aus dem Intervall [2, 3] wesentlich ungenauer durch diese Maschinenzahlen angen¨ahert werden. Ein Blick auf die Abbildung 1.1 lehrt, daß es in R(2, 3, 1, 2) genau 16 positive Maschinenzahlen gibt. Addiert man hierzu die 16 negativen Zahlen sowie die Maschinen-Null,

22

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Abbildung 1.1: Die positiven Maschinenzahlen aus R(2, 3, 1, 2)

so kommt man auf eine Gesamtanzahl von N = 33 Maschinenzahlen. Dies l¨aßt sich auch mit der Formel (1.43) berechnen: N = 2 (β − 1) β t−1 (U + L + 1) + 1 = 2 · 1 · 22 · (2 + 1 + 1) + 1 = 8 · 4 + 1 = 33.  Damit nun eine Zahl y ∈ R, y 6= 0, im Computer verarbeitet werden kann, muß sie durch eine solche Maschinenzahl xM ≡ rd(y) ∈ R(β, t, L, U )

(1.44)

( rd“ als Abk¨ urzung des engl. Wortes: rounded value“) dargestellt werden, f¨ ur die ” ” die Norm des relativen Fehlers |εrd | ≡ (|rd(y) − y|)/(|y|) m¨oglichst klein ist. Diese Maschinenzahl rd(y) wird nun u ¨blicherweise mittels der folgenden Prozedur bestimmt. 1) y = 0:

es wird rd(y) ≡ 0M gesetzt.

2) y 6= 0: f¨ uhrt

zuerst wird y in eine normalisierte halblogarithmische Darstellung u ¨bery = ± 0.y1 y2 · · · yt yt+1 · · · × β e ,

y1 6= 0.

In Abh¨ angigkeit vom Exponenten e sind jetzt 3 F¨alle zu unterscheiden: 2.1)

e < −L: Es liegt ein sogenannter Exponentenunterlauf (engl.: underflow“) vor. ” ¨ Ublicherweise wird hier rd(y) ≡ 0M gesetzt. Man beachte, daß die meisten Computer einen Exponentenunterlauf nicht standardm¨aßig anzeigen! F¨ ur den relativen Fehler |εrd | = |rd(y) − y|/|y| ergibt sich |εrd | =

|0 − y| = 1, |y|

¨ d.h., er betr¨ agt 100%. Dies ist nicht verwunderlich, da beim Ubergang von y zu xM s¨ amtliche Informationen verlorengehen. 2.2)

−L ≤ e ≤ U : In diesem Fall sind 2 verschiedene Rundungsvorschriften u ¨blich, um die Mantisse auf t Stellen zu verk¨ urzen.

1.3 Rundungsfehler bei Gleitpunkt-Arithmetik

23

2.2.1) Die Mantisse wird nach der t-ten Stelle abgebrochen: rd(y) ≡ ± 0.y1 y2 · · · yt × β e .

(1.45)

Aus y 6= 0 folgt 0.y1 y2 · · · yt ≥ β −1 . Somit l¨aßt sich der relative Fehler wie folgt absch¨ atzen: |εrd | =

|rd(y) − y| β −t β e ≤ −1 e = β 1−t . |y| β β

(1.46)

Da f¨ ur den relativen Fehler bei der obigen Rundungsvorschrift die Absch¨ atzung 0 ≥ εrd ≥ −β 1−t gilt, spricht man von einer unsymmetrischen Rundung. Auch der Begriff Abbrechen (engl.: chopping“) ist ge” br¨ auchlich. 2.2.2) G¨ unstiger f¨ ur numerische Rechnungen ist jedoch die nach dem Vorbild der Schulmathematik ausgef¨ uhrte symmetrische Rundung. H¨aufig spricht man in diesem Fall auch nur von Runden (engl.: rounding“). Die Vor” schrift lautet:

rd(y) ≡

1 β 2 1 ≥ β 2

   ± 0.y1 y2 · · · yt × β e

f¨ ur yt+1
0 {ε = 2−n : fl(1 + ε) > 1}.

(1.52)

Dieses kann nach dem Algorithmus 1.1 gr¨ oßenordnungsm¨aßig berechnet werden. W¨ ahrend die Summe aus zwei Gleitpunktzahlen xM , yM ∈ R(β, t, L, U ) i.allg. wieder in R(β, t, L, U ) liegt, ist das bei der Multiplikation nicht zu erwarten, da das Resultat stets 2t (oder 2t−1) signifikante Stellen aufweist. Die Ergebnisse der Gleitpunkt-Operationen m¨ ussen somit wieder in die Menge der Maschinenzahlen abgebildet werden. F¨ ur die folgenden Betrachtungen wollen wir deshalb ein einfaches Modell f¨ ur die maschineninterne Realisierung der Gleitpunkt-Operationen verwenden, das die Arbeitsweise zahlreicher Computer recht gut beschreibt: 1) Aus je zwei Operanden einer arithmetischen Grundrechenoperation wird zun¨achst ein Zwischenresultat mit doppelter Wortl¨ ange gebildet, 2) anschließend wird dieses Ergebnis auf die einfache Wortl¨ ange gerundet.

1.3 Rundungsfehler bei Gleitpunkt-Arithmetik

25

Maschinen-Epsilon ε = 1; t = 2; while t > 1 ε = ε/2; t = 1 + ε; end εmach = 2 · ε.

Algorithmus 1.1: Maschinen-Epsilon

F¨ ur β = 10 wollen wir beispielhaft die Gleitpunkt-Addition bzw. die GleitpunktSubtraktion diskutieren. Hierzu seien zwei normalisierte Gleitpunktzahlen gegeben: xM = sign(xM ) · x ¯M · 10b1 , x ¯M = b2

yM = sign(yM ) · y¯M · 10 , y¯M =

t X

αk 10−k ,

k=1 t X

(1.53)

βk 10

−k

.

k=1

Ohne Beschr¨ ankung der Allgemeinheit m¨ oge |xM | ≥ |yM | gelten. Wir setzen weiter sign(xM ) = 1 voraus und untersuchen zun¨ achst den Fall d ≡ b1 − b2 ≤ t. Der Exponent von yM wird nun durch Verschieben der Mantisse y¯M nach rechts um d Stellen dem Exponenten von xM angeglichen: yM = sign(yM ) · yˆM · 10b1 ,

yˆM =

t X

d+t X

βk 10−d−k =

k=1

βk−d 10−k .

k=d+1

Mit den Koeffizienten αk ≡ 0 f¨ ur k = t + 1, . . . , 2t sowie βk−d ≡ 0 f¨ ur k = 1, . . . , d und k = t + d + 1, . . . , 2t erh¨ alt man bei 2t-stelliger Addition von xM und yM : 2t X k=1

αk 10−k + sign(yM ) ·

2t X

βk−d 10−k ≡ γ0 +

k=1

2t X

γk 10−k ,

k=1

mit γ0 ∈ {0, 1} und γk ∈ {0, . . . , 9} f¨ ur k = 1 . . . , 2t. Es ist γ0 = 1 nur m¨oglich f¨ ur sign(yM ) = 1, x ¯M + yˆM ≥ 1. Dieser Sachverhalt l¨ aßt sich nun, wie in der Tabelle 1.1 angegeben, veranschaulichen. Die Addition ist exakt, da alle Summanden βk−d 10−k von yˆM in die Rechnung eingehen: x ¯M + sign(yM )ˆ yM = γ0 +

2t X k=1

γk 10−k .

26

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens 100 10−1 . . . 10−d 10−d−1 . . . 10−t 10−t−1 . . . 10−t−d 10−t−d−1 . . . 10−2t x ¯M

α1

...

αd

αd+1

yˆM

0

...

0

β1

γ1

...

γd

γd+1

x ¯M ± yˆM

γ0

...

0

0

...

0

. . . βt−d βt−d+1 . . .

...

βt

0

...

0

γt+d

γt+d+1

...

γ2t

...

αt γt

0

γt−d+1 . . .

Tabelle 1.1: Modell Gleitpunkt-Addition (bzw. Subtraktion)

Dieses Ergebnis wird jetzt auf t Stellen gerundet und man definiert vereinbarungsgem¨aß fl(xM + yM ) ≡ rd(¯ xM + sign(yM )ˆ yM ) · 10b1 . Wegen 10b1 rd(¯ xM ± yˆM ) = rd(¯ xM 10b1 ± yˆM 10b1 ) gilt fl(xM + yM ) = rd(xM + yM ).

(1.54)

Es ist dann nach (1.50) fl(xM + yM ) = rd(xM + yM ) = (xM + yM ) · (1 + ε),

|ε| ≤ ν.

Wir betrachten jetzt den anderen Fall d ≡ b1 − b2 > t. Hier gilt |ˆ yM | < 10−d ≤ 10−t−1 . Unser Modell liefert daher fl(xM + yM ) ≡ xM , und man erkennt unschwer, daß rd(xM + yM ) = xM ist. Somit haben wir auch in dieser Situation fl(xM + yM ) = rd(xM + yM ) = (xM + yM ) · (1 + ε),

|ε| ≤ ν.

F¨ ur xM < 0 geht man entsprechend vor. ¨  Als Ubungsaufgabe untersuche man entsprechend die Gleitpunkt-Operationen fl(xM ∗ yM ) und fl(xM /yM ) f¨ ur xM , yM ∈ R(β, t, L, U ). Bemerkung 1.5. Bei dem vereinbarten Modell f¨ ur die Realisierung der GleitpunktOperationen besteht zwischen dem exakten Ergebnis a einer arithmetischen Grundrechenoperation und dem maschinenintern realisierten Ergebnis a ˜ die Beziehung a ˜ = rd(a) = a · (1 + ε),

mit

|ε| ≤ ν.

(1.55)

Aus den Darstellungen  fl(xM + yM ) = (xM + yM ) (1 + ε1 ) = xM (1 + ε1 ) + yM (1 + ε1 ),    fl(xM ∗ yM ) = xM (1 + ε2 ) ∗ yM ,    fl(xM /yM ) = xM (1 + ε3 )/yM

|εi | ≤ ν

1.3 Rundungsfehler bei Gleitpunkt-Arithmetik

27

erkennt man unmittelbar: Das maschinenintern realisierte Resultat l¨ aßt sich als das exakte Ergebnis der Grundrechenoperationen f¨ ur etwas gest¨ orte Eingabedaten interpretieren. Diese Erkenntnis bildet die Grundlage der sogenannten R¨ uckw¨ artsanalyse (engl.: back” ward error analysis“) von Wilkinson1 , der folgende Idee zugrunde liegt. Arbeitet man mit Daten, die schon durch Eingabefehler verf¨alscht sind, dann k¨onnen auftretende Rundungsfehler als unerheblich angesehen werden, wenn • sich das maschinenintern realisierte Resultat als exaktes Resultat f¨ ur nur geringf¨ ugig gest¨ orte Eingabedaten deuten l¨ aßt, und • diese St¨ orungen gr¨ oßenordnungsm¨ aßig unterhalb der Fehler in den Eingabedaten liegen.  Die obige Bemerkung weist schon darauf hin, daß eine ausf¨ uhrliche Rundungsfehleranalyse komplexer Algorithmen sehr aufwendig und keineswegs einfach ist. Die Situation wird dar¨ uber hinaus noch dadurch erschwert, daß jede Rechenanlage Unterschiede bei der Ausf¨ uhrung der Gleitpunkt-Operationen aufweist. Abschließend wollen wir anhand einiger Beispiele demonstrieren, daß die f¨ ur den K¨orper der reellen Zahlen geltenden Rechengesetze in der endlichen Menge der Maschinenzahlen ihre G¨ ultigkeit verloren haben. So sind zum Beispiel die beiden Gleitpunkt-Operationen fl(xM + yM ) und fl(xM ∗ yM ) noch kommutativ, das Assoziativit¨ats- und das Distributivit¨ atsgesetz gelten jedoch nicht mehr, wie die folgende Rechnung zeigt. Beispiel 1.7. Wir gehen von folgender Problemstellung aus: Zu berechnen ist die Summe s∗ = x + y + z f¨ ur x, y, z ∈ R. Dies soll auf einem Rechner realisiert werden, der mit der Menge der Maschinenzahlen R(10,3,20,20) sowie der zugeh¨ origen Rundungsvorschrift (1.45) arbeitet. 1) Gegeben seien die Zahlen xM = 0.123 · 100 , yM = 0.456 · 10−3 und zM = 0.789 · 10−2 . Man berechnet s1 = fl(fl(xM + yM ) + zM ) = 0.130 · 100 , s2 = fl(xM + fl(yM + zM )) = 0.131 · 100. Das exakte Ergebnis lautet: s∗ = 0.131346 · 100 . Somit wirkt sich hier die unterschiedliche Reihenfolge der Gleitpunktadditionen nur unwesentlich auf das Resultat aus. 2) Gegeben seien die Zahlen xM = −0.123 · 100 , yM = 0.124 · 100 und zM = 0.987 · 10−3 . 1

James Jim“ Hardy Wilkie“ Wilkinson (1919–1986), englischer Mathematiker ” ”

28

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens Man berechnet s1 = fl(fl(xM + yM ) + zM ) = 0.198 · 10−2 , s2 = fl(xM + fl(yM + zM )) = fl(−0.123 · 100 + 0.124 · 100 ) = 0.100 · 10−2 . Das exakte Resultat ist s∗ = 0.1987 · 10−2 . Damit ergibt sich f¨ ur die relativen Fehler ∗ s1 − s∗ ≈ 0.0035, |ε(s2 )| ≡ s2 − s ≈ 0.50. |ε(s1 )| ≡ s∗ s∗ Somit ist der relative Fehler f¨ ur die zweite Summationsfolge etwa 140 mal so groß wie f¨ ur die erste. Der Grund daf¨ ur ist offensichtlich die bei der zweiten Summationsfolge auftretende Ausl¨ oschung! 

Beispiel 1.8. Berechnet man auf einem herk¨ommlichen Computer in doppelter Genauigkeit (zum Beispiel mit der Matlab, 16 geltende Stellen) die theoretisch gleichwertigen Ausdr¨ ucke 1) 1020 +17 −10 +130 −1020 , 20 20 2) 10 +17 −10 −10 +130, 3) 1020 −1020 +17 −10 +130, 4) 1020 +17 +130 −1020 −10, so erh¨ alt man f¨ ur 1)–4) entsprechend die Resultate 0, 120, 137, -10.



Beispiel 1.9. Gegeben sei der (einfache) arithmetische Ausdruck z = 333.75 x62 + x21 (11 x21 x22 − x62 − 121 x42 − 2) + 5.5 x82 + x1 /(2 x2 ), der f¨ ur die Eingabedaten x1 = 77617 und x2 = 33096 berechnet werden soll. Die mit Mathematica berechnete exakte L¨ osung ist z = −54767/66192. Man erh¨alt wiederum auf einem herk¨ ommlichen Rechner unter Verwendung der Matlab (16 geltende Stellen) das Resultat z˜ = −1.1806·1021 . Von Kulisch1 wurde mittels Intervallrechnung gefunden, daß der mathematisch korrekte Wert von z in dem Intervall [z− , z+ ] = [−0.8273960599468214, −0.8273960599468213] liegt. Zumindest stimmt bei dem mit der u ¨blichen Computerarithmetik berechneten Ergebnis noch das Vorzeichen!  Beispiel 1.10. Der Einfluß der Rundungsfehler auf das Ergebnis einer numerischen Rechnung l¨ aßt sich sehr sch¨ on an dem folgenden Problem veranschaulichen. In Gleitpunktarithmetik mit vorgegebener Genauigkeit (L¨ange der Mantisse in Bit) wird eine Punktfolge (xi , yi ) nach der Vorschrift2 p xi+1 = yi − sign (xi ) |Bxi − C|, yi+1 = A − xi , x0 = 0, y0 = 0 1

Siehe das sehr interessante Memorandum u at Karls¨ber Computer, Arithmetik und Numerik, Universit¨ ruhe, Institut f¨ ur Angewandte Mathematik, 1996 2 Siehe B. Martin: Graphic Potential of Recursive Functions, in: J. Lansdown and R. A. Earnshow (Hrg.): Computers in Art, Design, and Animation, Springer Verlag, New York et al. 1989, pp. 109– 129

1.3 Rundungsfehler bei Gleitpunkt-Arithmetik

29

berechnet und in ein Koordinatensystem eingezeichnet. Insgesamt wurden 640,000 Iterationen durchgef¨ uhrt. Nach jeweils 10,000 Punkten wurde der Grauwert nach einem vorher zuf¨ allig festgelegten Schema ge¨ andert. F¨ ur die Parameterwerte1 A = 12,

B = −3,

C = 36

sind die resultierenden Punktmengen f¨ ur eine 17-Bit-Rechnung sowie eine 33-Bit-Rechnung (unter Verwendung der Routine runde, siehe Beispiel 1.4) in den Abbildungen 1.2 und 1.3 angegeben. Beide Bilder sind offensichtlich qualitativ sehr unterschiedlich. Nat¨ urlich erh¨ alt man noch interessantere Grafiken, wenn man anstelle der Graut¨one unterschiedliche Farben verwenden kann. 

Abbildung 1.2: Rechnung mit 17 Bit Genauigkeit

Eine Sammlung von Beispielen aus der Praxis, bei denen sich Fehler in der Software katastrophal auswirkten, wird u.a. von Th. Huckle2 im Internet bereitgestellt. Bemerkung 1.6. F¨ ur die Arithmetik mit bin¨aren Gleitpunktzahlen in Mikroprozessoren existieren heute international verbindliche Normen. Derartige internationale Normen werden von der Weltnormenorganisation ISO (Abk. f¨ ur: International Standardization Organization) erarbeitet. Ihr geh¨ oren etwa 95 Normungsorganisationen aus aller 1

Siehe auch U. Kulisch: Memorandum u at Karlsru¨ber Computer, Arithmetik und Numerik, Universit¨ he, Institut f¨ ur Angewandte Mathematik, 1996 2 Siehe http://wwwzenger.informatik.tu-muenchen.de/persons/huckle/bugse.html

30

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Abbildung 1.3: Rechnung mit 33 Bit Genauigkeit

Welt an. Auf dem Gebiet der Elektrotechnik und Elektronik ist f¨ ur die Normung jedoch eine eigenst¨ andige Organisation, die IEC (Abk. f¨ ur: International Electrotechnical Commission), zust¨ andig. Die Bestrebungen, eine Normung von Gleitpunkt-Zahlensystemen zu schaffen, datieren auf die 1970er Jahre zur¨ uck. Man verfolgt seit diesem Zeitpunkt die Zielstellung, daß ¨ Programme ohne Anderung von einem Computer auf einen anderen u ¨bertragen werden k¨ onnen. Insbesondere sollen programmtechnische Maßnahmen gegen Rundungsfeh¨ ler oder arithmetische Ausnahmen (Exponenten-Uberlauf oder -Unterlauf) auf allen Rechnern gleich wirksam sein. Schließlich einigte man sich im Jahre 1985 auf den von der amerikanischen IEEE1 Computer-Gesellschaft beschlossenen IEEE Standard 754-85 (IEEE Standard for Binary Floating Arithmetic, Abk.: IEEE 754). Diese amerikanische Norm wurde dann 1989 durch die IEC zur internationalen Norm IEC 559:1989 (Binary Floating-Point Arithmetic for Microprocessor Systems) erhoben. Der IEEE 754Standard enth¨ alt Festlegungen zu folgenden Themengebieten: • Zahlenformat und Codierung f¨ ur zwei Typen von Gleitpunkt-Zahlensystemen: Grundformate und erweiterte Formate. F¨ ur jeden Typ gibt es ein Format einfacher L¨ ange und doppelter L¨ ange, • verf¨ ugbare Grundoperationen und Rundungsvorschriften, 1

Abk. f¨ ur: Institute of Electrical and Electronics Engineers

1.3 Rundungsfehler bei Gleitpunkt-Arithmetik

31

• Konvertierung zwischen verschiedenen Zahlenformaten und zwischen Dezimalund Bin¨ arzahlen, sowie ¨ • Behandlung der Ausnahmef¨ alle wie zum Beispiel Exponenten-Uberlauf oder Exponenten-Unterlauf und Division durch Null. Wir haben uns in diesem einf¨ uhrenden Text dazu entschieden, ein einfacheres Modell f¨ ur die Darstellung der Gleitpunktzahlen auf einem Computer sowie die zugeh¨orige Gleitpunkt-Arithmetik zu verwenden, das aber alle wichtigen Aspekte wiedergibt. Es ist f¨ ur jede geradzahlige Basis β g¨ ultig, w¨ ahrend sich der IEEE 754-Standard nur auf die Basis β = 2 bezieht. Mit unseren Bezeichnungen bilden im IEEE Standard die einfach genaue Menge der Maschinenzahlen R(2,24,125,128) und das doppelt genaue System R(2,53,1021,1024) die Grundformate. F¨ ur die erweiterten Formate werden in dieser Vorschrift nur Unter- bzw. Obergrenzen f¨ ur die Parameter festgelegt. Die meisten Implementierungen besitzen nur ein erweitertes Format, dem i.allg. die Menge der Maschinenzahlen R(2,64,16381,16384) entspricht. F¨ ur weitergehende Informationen zu diesem Gegenstand siehe zum Beispiel die Monografien von Ch. Ueberhuber1 und M. L. Overton2 , sowie den sehr interessanten Bericht von W. Kahan3 . 

1

Ch. Ueberhuber: Numerical Computation, Vol. 1, Springer Verlag, Berlin et al., 1997 M. L. Overton: Numerical Computing with IEEE Floating Point Arithmetic. SIAM, Philadelphia, 2001 3 W. Kahan: IEEE Standard 754 for Binary Floating-Point Arithmetic. Lecture Notes, Univ. of California, Elect. Eng. & Computer Science, 1996 2

32

1.4

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Aufgaben

Aufgabe 1.1. Es sei die folgende Rekursionsvorschrift gegeben: 1 13 4 , xn+1 = xn − xn−1 , 3 3 3 Man zeige mittels Induktion, daß diese Rekursion die Folge  n 1 xn = 3 x0 = 1,

x1 =

n = 1, 2, . . .

(1.56)

(1.57)

erzeugt. Mit Matlab berechne man die Folge nach obiger Rekursionsvorschrift und vergleiche die numerisch gewonnenen Folgenglieder mit dem theoretischen Ergebnis. Man argumentiere, warum die Rekursion (1.56) instabil ist, d.h., warum so gewaltige Unterschiede zwischen (1.57) und den numerischen Werten bestehen. Aufgabe 1.2. Es sei eine ¨ ahnliche Rekursionsvorschrift wie in Aufgabe 1.1 gegeben: 1 11 5 , xn+1 = xn − xn−1 , 2 2 2 Hier erzeugt die Rekursion die Folge  n 1 xn = . 2 x0 = 1,

x1 =

n = 1, 2, . . .

(1.58)

(1.59)

Mit Matlab berechne man die Folge nach obiger Rekursionsvorschrift und vergleiche die numerisch gewonnenen Folgenglieder mit dem theoretischen Ergebnis. Man erkennt ¨ Ubereinstimmung! Die Vorschrift (1.58) stellt aber genau wie (1.56) ein instabiles Verfahren dar. Um dies zu erkennen, st¨ ore man den Wert von x0 (oder von x1 ) etwas und ¨ berechne die Folge neu. Jetzt liegt keine Ubereinstimmung mehr vor. Man begr¨ unde, warum letzteres Verhalten nicht bei den exakten Startwerten zu beobachten ist. Aufgabe 1.3. Zu berechnen seien die bestimmten Integrale Z 1 yn = xn ex dx, n ≥ 0.

(1.60)

0

Dazu zeige man mittels partieller Integration, daß die folgende Rekursionsformel yn bestimmt: y0 = e − 1, yn+1 = e − (n + 1)yn , n = 0, 1 . . . (1.61) Mit der Matlab berechne man die Integrale nach der Vorschrift (1.61). Nun zeige man, daß theoretisch lim yn = 0 und lim (n + 1)yn = e n→∞

n→∞

gilt (um den ersten Grenzwert zu best¨ atigen, untersuche man das Verhalten von xn im Integral; f¨ ur den zweiten benutze man die Rekursionsformel!). Wiederum stimmen die theoretischen Resultate nicht mit den numerisch bestimmten Zahlwerten u ¨berein. Man begr¨ unde diese Instabilit¨ at.

1.4 Aufgaben

33

Aufgabe 1.4. Schreiben Sie mit m¨ oglichst wenig arithmetischen Operationen ein Programm zur Berechnung von  n 1 f (n) = 1 + , mit n ∈ N, n wobei nur die vier Grundrechenoperatoren +, −, ∗ und / benutzt werden d¨ urfen. Verglei1 chen Sie die so gewonnenen Ergebnisse sowohl mit f (n) = exp (n ∗ ln (1 + )) als auch n mit denjenigen Zahlwerten, die sich aus dem folgenden primitiven Algorithmus ergeben:

f = 1;

p = 1 + 1/n

for i = 1 : n f =f ∗p end

Der obige Algorithmus ben¨ otigt offensichtlich n Multiplikationen, Ihr Programm sollte aber nur O(log2 n) Multiplikationen erfordern. Was f¨ ur ein Verhalten zeigt sich f¨ ur große n? Welcher Algorithmus ist genauer? Warum ist dies der Fall? Hinweis: Man rechne mit verschiedenen Genauigkeiten. In der Matlab muß dazu nach jeder Operation gerundet werden, um eine k¨ urzere Mantisse zu simulieren. Die folgende Matlab-Funktion kann hierzu verwendet werden (t ist die verwendete Mantissenl¨ange). function y = runde(x,t); [ma,ex] = log2(x); y = pow2(round(pow2(ma,t)),ex-t).

Aufgabe 1.5. Wie wirken sich Fehler in den Eingabedaten bei der Auswertung folgender Funktion aus? p f (x) = 1 − x2 , mit − 1 ≤ x ≤ 1. Man verwende sowohl absolute als auch relative Fehler. An welcher Stelle ist der absolute, wo der relative Fehler am gr¨ oßten? Wie sieht der relative Fehler f¨ ur die Funktion p g(x) = 1 − x2 + 1, mit − 1 ≤ x ≤ 1 im Vergleich zu dem von f aus?

34

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

Aufgabe 1.6. Wie verhalten sich absoluter und relativer Fehler bei folgender Funktion? sin x 1 1 f (x) = 5 − 4 + 2 . x x 6x Beachten Sie insbesondere die Stelle x = 0, an der die Funktion f (x) fortsetzbar ist (f (0) = 1/120). Bei der Implementierung dieser Funktion treten in der N¨ahe von 0 Probleme auf, wie Division durch Null bzw. Division durch betragsm¨aßig kleine Zahlen. Es resultiert ein sehr großer absoluter Fehler (¨ uberpr¨ ufen!). Zur Beseitigung der numerischen Schwierigkeiten gebe man eine N¨aherung g(x) an, die in der Umgebung von Null die Funktion f (x) hinreichend genau approximiert; es soll nicht einfach g(x) = 1/120 gesetzt werden. Hinweis: Man betrachte die Sinusreihe (gilt f¨ ur alle Punkte der Aufgabe). Aufgabe 1.7. Im Beispiel 1.1 sind f¨ ur ein quadratisches Polynom Formeln aufgelistet, welche die Koeffizienten mit den Nullstellen verkn¨ upfen. Man bestimme die zugeh¨origen absoluten und relativen Konditionszahlen. Aufgabe 1.8. F¨ ur große x bestimme man das Verhalten von y(x) in Abh¨angigkeit von ε > 0, wenn y L¨ osung der Differentialgleichung y 0 = y beziehungsweise y 0 = −y ist mit der gest¨ orten Anfangsbedingung y(0) = 1 + ε. Was folgt f¨ ur die Kondition der ungest¨ orten Anfangswertaufgabe (ε = 0)? Aufgabe 1.9. Gegeben seien die drei Gleitpunktzahlen x1 = 0.423918 · 102 ,

x2 = 0.767676 · 10−2 ,

x3 = −0.423835 · 102

sowie eine 6-stellige Gleitpunktarithmetik. Bei welcher Reihenfolge der Addition von x1 , x2 , x3 ist der geringste relative Fehler zu erwarten? Aufgabe 1.10. Gegeben sei die Gleichung ax2 + bx + c = 0. Es werde a 6= 0 und b2 −4ac > 0 vorausgesetzt. Die Wurzeln berechnet man u ¨blicherweise mit den bekannten Formeln: √ √ −b + b2 − 4ac −b − b2 − 4ac x1 = und x2 = . 2a 2a Man zeige, daß sich diese Wurzeln auch nach folgender Vorschrift ermitteln lassen: x1 =

−2c −2c √ √ und x2 = . 2 b + b − 4ac b − b2 − 4ac

Wann sollte man welche Formel verwenden? Aufgabe 1.11. Unter Verwendung der Formeln aus Aufgabe 1.10 zur Berechnung der Wurzeln einer quadratischen Gleichung l¨ ose man die folgenden quadratischen Polynome 1)

x2 − 1, 000.001x + 1 = 0,

3) x2 − 100, 000.00001x + 1 = 0,

2)

x2 − 10, 000.0001x + 1 = 0,

4) x2 − 1, 000, 000.000001x + 1 = 0.

1.4 Aufgaben

35

Aufgabe 1.12. Man entwickle Strategien, um Genauigkeitsverluste bei der Berechnung der folgenden Funktionen zu vermeiden: √ 1) x2 + 1 − x 5), log(x) − 1, 2) 3) 4)

x−3 (sin(x) − x), √ √ x + 2 − x, x

e − e,

6) 7) 8)

cos(x) − e−x , sin(x) sinh(x) − tanh(x), √ ln(x + x2 + 1).

Aufgabe 1.13. Verwenden Sie Ihren Computer, um die Werte der Funktionen f1 (x) = x8 − 8x7 + 28x6 − 56x5 + 70x4 − 56x3 + 28x2 − 8x + 1, f2 (x) = (((((((x − 8)x + 28)x − 56)x + 70)x − 56)x + 28)x − 8)x + 1, f3 (x) = (x − 1)8 . an 101 gleichverteilten Stellen aus dem Intervall [0.99,1.01] zu berechnen. Man f¨ uhre bei der Berechnung keinerlei Umsortierungen etc. durch. Beachten Sie: Alle drei Funktionen sind identisch und sollten die gleichen Funktionswerte ergeben! Begr¨ unden Sie die Beobachtung, daß nicht alle berechneten Werte positiv sind. Aufgabe 1.14. Es sei die nichtlineare Nullstellenaufgabe f (x) = 0 mit der Funktion f (x) ≡ x sin x − σ, 0 ≤ σ ≤ 1, 0 ≤ x ≤ π gegeben. Zeigen Sie: 1) f (x) hat auf [0, π] zwei reelle Nullstellen x∗0 < x∗1 . r √ π 2) l0 ≤ x∗0 ≤ u0 , l0 = σ, u0 = σ, 2 r r π π π π π2 ∗ l1 ≤ x1 ≤ u1 , l1 = + ( − σ), u1 = + − σ. 2 2 2 2 4 (Hinweis: lj und uj sind die Nullstellen geeigneter Minoranten bzw. Majoranten von f .) 3) Es seien x ˜0 ∈ [l0 , u0 ] und x ˜1 ∈ [l1 , u1 ] N¨aherungswerte f¨ ur x∗0 und x∗1 . Sch¨atzen Sie die absoluten Fehler δ(˜ xj ) und die relativen Fehler ε(˜ xj ) betragsm¨aßig ab! 4) F¨ ur σ = 0.01 gebe man unter Verwendung von lj und uj sachgem¨aße N¨aherungen x ˜j und m¨ oglichst gute Schranken f¨ ur deren absoluten und relativen Fehler an! Aufgabe 1.15. Untersuchen Sie, wie sich Datenfehler bei Auswertung der folgenden Funktionen auf den Funktionswert u ¨bertragen:

36

Kapitel 1 Wichtige Ph¨anomene des numerischen Rechnens

1) z = f (x) = 2) z = f (x) =

x1 , (x1 , x2 )T ∈ R2 , x2 6= 0, x2 √

x, x ≥ 0,

3) z = f (x) = log x, x > 0, 4) z = f (x) = x31 − x32 , (x1 , x2 )T ∈ R2 . Als Maß f¨ ur die Fehler verwende man sowohl absolute als auch relative Fehlergr¨oßen. Aufgabe 1.16. Es sei x = (a, b)T ∈ R2 , |a| > |b| und f (x) = a3 − b3 . Zur Berechnung von f liegen drei Algorithmen vor: 1) u = a3 2) u = a2 + ab + b2 3) u = a3 b3 v = b3 v =a−b v =1− u f = u − v, f = uv, f = uv. Geben sie jeweils an, wie sich die Rundungsfehler auf das Resultat f auswirken. Beurteilen Sie die Stabilit¨ at der Algorithmen insbesondere f¨ ur den Fall a ≈ b, wobei ung¨ unstige Rundungsfehlerkonstellationen zu ber¨ ucksichtigen sind. √ √ ur 2 Aufgabe 1.17. Es ist der Ausdruck f = ( 2 − 1)6 mit dem N¨aherungswert 1.4 f¨ zu berechnen. Dabei kann f auch nach folgenden Vorschriften ermittelt werden: 1 f= √ , ( 2 + 1)6

√ f = 99 − 70 2,

f=

1 √ . 99 + 70 2

Berechnen Sie den jeweiligen absoluten und relativen Fehler von f . Welche der Vorschriften f¨ uhrt zum besten Resultat? R1 Aufgabe 1.18. F¨ ur das bestimmte Integral In = 0 (1 − x)n sin x dx ist eine Rekursionsformel (Hinweis: partielle Integration!) aufzustellen, und von I0 aus I10 zu berechnen (Taschenrechner, Zwischenresultate auf 4 Mantissenstellen runden). Mit Hilfe des verallgemeinerten Mittelwertsatzes der Integralrechnung ermittle man untere und obere Schranken f¨ ur I10 und vergleiche diese mit den Rechenresultaten. Zur Kl¨arung der dabei anfallenden Erkenntnisse untersuche man, wie sich ein Fehler, der bei der Berechnung von I0 entsteht, durch Anwendung der Rekursionsformel fortpflanzt, wobei Rundungsfehler zu vernachl¨ assigen sind. Anschließend wende man ausgehend von I12 = 0 die Rekursionsformel r¨ uckw¨ arts an und untersuche ebenfalls die Fortpflanzung des Fehlers in I12 . Aufgabe 1.19. Es seien √ a=

8+

p √ 18 − 8 2 √ 4 2

und b =

√  1  1+2 2 . 4

1.4 Aufgaben

37

Die Auswertung beider Formeln in Matlab (format long e) ergibt: a = 9.571067811865475e-001, b = 9.571067811865476e-001, b − a = 1.110223024625157e-016. In welcher Relation stehen die Zahlen a und b zueinander? Begr¨ unden Sie Ihre Antwort mathematisch. Nehmen Sie zu den numerischen Resultaten a und b Stellung. Aufgabe 1.20. Die Gleitpunkt-Arithmetik eines Computers gen¨ ugt bekanntlich nicht den Rechengesetzen der reellen Zahlen. Weisen Sie diesen Sachverhalt experimentell mit Hilfe der Matlab nach. W¨ ahlen Sie hierzu n = 100, 000 und bestimmen Sie auf (0, 1) gleichverteilte Zufallszahlen (siehe Matlab-Funktion rand) ak , bk sowie ck , k = 1, . . . , n. Berechnen Sie dann die relative H¨ aufigkeit, mit der die Gleichheit in der Gleichungskette       ak bk ak bk ak bk = ak = = bk ck ck ck ck | {z } | {z } | {z } | {z } rk

sk

tk

rk

mindestens einmal bzw. genau dreimal verletzt ist. Weiterhin seien %k , σk und τk die Mantissen der Matlab-Gleitpunkt-Darstellungen von rk , sk und tk . Berechnen Sie die Gr¨ oße Mn ≡ max{|%k − σk |, |%k − τk |, |σk − τk |}. k

Bewerten Sie Ihre Ergebnisse! Aufgabe 1.21. Die Sinusfunktion soll f¨ ur x ∈ [0, 35] mit Hilfe der Sinus-Reihe berechnet werden. Wir bezeichnen die so gewonnenen N¨aherungen mit sin(x). (Diese N¨ aherungen h¨ angen nat¨ urlich vom konkreten Algorithmus ab, mit dem die Reihe ausgewertet wird.) Stellen Sie den relativen Fehler ε(x) =

sin(x) − sin x , sin x

sin x 6= 0,

f¨ ur ein hinreichend feines Gitter 0 = x0 < x1 < · · · < xN −1 < xN = 35 graphisch dar. Geben Sie eine theoretische Begr¨ undung f¨ ur das Verhalten von ε(x) an. (Fehler in den Eingabedaten, Approximationsfehler, Rundungsfehler).

Kapitel 2

Lineare Gleichungssysteme

IĚ empfehle Ihnen diesen ModuŊ zur NaĚahmung. SĚwerliĚ werden Sie je wieder direct eliminiren, wenigĆenŊ niĚt, wenn Sie mehr alŊ zwei Unbekannte haben. DaŊ indirecte Verfahren lŁt siĚ halb im SĚlafe auŊf§hren oder man kann wŁhrend deŊselben an andere Dinge denken. C. F. Gau

2.1

Aufl¨ osung gestaffelter Systeme

Gegeben sei ein System von n linearen algebraischen Gleichungen a11 x1 + a12 x2 + · · · + a1n xn = b1 a21 x1 + a22 x2 + · · · + a2n xn = b2 ................................. an1 x1 + an2 x2 + · · · + ann xn = bn

(2.1)

f¨ ur die n Unbekannten x1 , . . . , xn , das wir in Matrizenschreibweise wie folgt darstellen wollen: A x = b,

A ∈ Rn×n ,

b ∈ Rn .

(2.2)

Eine Aussage bez¨ uglich der Existenz und Eindeutigkeit von L¨osungen x ∈ Rn des Systems (2.1) bzw. (2.2) vermittelt der aus den Kursen zur linearen Algebra bekannte Satz 2.1.

40

Kapitel 2 Lineare Gleichungssysteme

Satz 2.1. Es seien A ∈ Rn×n und b ∈ Rn . Gilt det(A) 6= 0 (regul¨ are Matrix), dann existiert genau ein x ∈ Rn mit A x = b. Wir wollen im folgenden stets davon ausgehen, daß die Voraussetzungen des Satzes 2.1 erf¨ ullt sind. Die dann existierende eindeutige L¨osung x = A−1 b kann (theoretisch) mit der Cramerschen 1 Regel berechnet werden. Untersucht man jedoch den hierzu erforderlichen Rechenaufwand, dann kommt man zu dem Resultat, daß etwa n2 n! flops erforderlich sind (zur Definition eines flops siehe die Bemerkung 2.1). Selbst eine trickreiche rekursive Bestimmung der anfallenden Unterdeterminanten reduziert den Aufwand nur auf 2n flops. Bemerkung 2.1. Der Aufwand eines numerischen Verfahrens (asymptotisch f¨ ur große n) wurde fr¨ uher in der Anzahl wesentlicher Operationen (Multiplikationen, Divisionen) gemessen. Von Golub und van Loan stammt der Vorschlag, an Stelle der wesentlichen Operationen den Begriff des flops zu verwenden. In der ersten Auflage ihres richtungsweisenden Buches zur numerischen linearen Algebra2 verstehen sie unter einem flop den Arbeitsaufwand, der zu einer Anweisung der Form aij = aij + aik · akj

(2.3)

geh¨ ort (d.h., eine Gleitpunktmultiplikation, eine Gleitpunktaddition sowie eine Aufdatierung). In der im Jahre 1990 erschienenen zweiten Auflage des Buches definieren die Autoren diesen Begriff jedoch neu. In Anlehnung an die Wissenschaftsdisziplin Supercomputing wollen sie jetzt unter einem flop den Arbeitsaufwand verstanden wissen, der zur Realisierung einer beliebigen Gleitpunkt-Operation (engl.: floating point operati” on“) auf einem Computer ben¨ otigt wird. Die zuletzt genannte Definition soll auch f¨ ur unsere weiteren Studien zugrunde gelegt werden.  Betrachten wir wieder die Cramersche Regel zur Bestimmung der L¨osung x des linearen Gleichungssystems (2.2) und nehmen an, daß uns ein extrem schneller Rechner zur Verf¨ ugung steht. Ein solcher stellt der im Jahre 2010 in China entwickelte Rechner Tianhe-1A (zu Deutsch: Milchstraße-1A) dar. Mit einer Rechenleistung von 2.56 Petaflops (d.h. 2.56 × 1015 Rechenoperationen pro Sekunde) ist er derzeit der schnellste Computer der Welt. Die L¨ osung eines Systems der Dimension n = 30 mit der Cramerschen Regel w¨ urde dann auf einem solchen Supercomputer etwa 3,028,000,682,788 Jahre in Anspruch nehmen! Dies ist nat¨ urlich indiskutabel, wenn man ber¨ ucksichtigt, daß das Alter der Erde nur 4,600,000,000 Jahre betr¨ agt. Selbst im Falle, daß die Dimension des Gleichungssystems n = 28 betr¨ agt, m¨ ußten wir noch 3,023,402,335 Jahre (etwa ein Erdalter) warten, bis das Ergebnis auf diesem Computer berechnet ist. Im Vergleich zur Cramerschen Regel ben¨ otigen die modernen numerischen Algorithmen der Matlab zur L¨ osung eines linearen Gleichungssystems mit n = 28 auf einem Intel-5-Prozessor nur 1.5 × 10−4 Sekunden. 1 2

Gabriel Cramer (1704–1752), schweizer Mathematiker G. H. Golub and C. F. Van Loan: Matrix Computations. The John Hopkins University Press, Baltimore and London, 1996

2.1 Aufl¨osung gestaffelter Systeme

41

Alle im folgenden beschriebenen numerischen Verfahren sind bereits f¨ ur n ≥ 3 wesentlich effektiver als die Cramersche Regel. Sie sollte deshalb nur f¨ ur den Spezialfall n = 2 als Rechenverfahren oder aber f¨ ur theoretische Studien verwendet werden. Die heute gebr¨ auchlichen numerischen Techniken zur effektiven L¨osung von (2.2) lassen sich generell in zwei Verfahrensklassen einteilen: • direkte (endliche) Verfahren (man nennt sie auch Eliminationsverfahren ), die in endlich vielen Rechenschritten zu einer Approximation x ˜ der exakten L¨osung x = A−1 b f¨ uhren, sowie • iterative Verfahren, die i.allg. eine unendliche Folge {x(k) }∞ aherungen k=0 von N¨ erzeugen, die unter geeigneten Voraussetzungen an die Systemmatrix A gegen die exakte L¨ osung x = A−1 b konvergiert. Man wird dann nach einer endlichen Anzahl von Iterationsschritten (zum Beispiel nach m Schritten oder wenn sich eine bestimmte Anzahl signifikanter Stellen der Iterierten nicht mehr ¨andert) abbrechen und die zuletzt berechnete Iterierte x(m) als Approximation von x verwenden, d.h., x ˜ = x(m) . Wir wollen uns in den n¨ achsten Abschnitten mit den wichtigsten direkten Verfahren besch¨ aftigen. Das klassische direkte Verfahren zur Aufl¨osung von (2.2) stellt die GaußElimination dar. Bereits im ¨ altesten erhaltenen chinesischen Mathematikbuch Neun ” B¨ ucher u ¨ber arithmetische Kunst“ (Jiu Zhang Suanshu), das zwischen 200 vor und 100 nach Christus geschrieben wurde, findet man f¨ ur ein dreidimensionales lineares Gleichungssystem einen Algorithmus, der der heutigen Gauß-Elimination sehr nahe kommt. Erst im Jahre 1759 wurde von Joseph-Louis Lagrange1 in Europa ein Verfahren publiziert, welches die grundlegenden Elemente dieser Technik enth¨alt. Carl Friedrich Gauß2 entwickelte die Methode der Kleinsten Quadrate (siehe Kapitel 7) und besch¨aftigte sich in diesem Rahmen mit der L¨ osung der Normalgleichungen (7.8). In seinen Tageb¨ uchern erw¨ ahnt er mehrmals ein Eliminationsverfahren, das er zwischen 1803 und 1809 zur Berechnung der Bahn des Asteroiden Pallas einsetzte. Publiziert wurde diese Methode von ihm erst in seinem astronomischen Hauptwerk Theoria Motus Corporum Coele” stium in sectionibus conicis solem ambientium“ 3 . In diesem Text entwickelt Gauß eine systematische Methode zur Berechnung der Umlaufbahn eines Planeten, die auf drei Beobachtungen basiert. Mit Hilfe dieser Methode konnte Gauß den Ort des von einem italienischen Astronomen nur kurze Zeit beobachteten Zwergplaneten Ceres berechnen und diesen Anfang 1802 wieder auffinden. Auf Gauß geht bereits eine Variante der Elimination zur¨ uck, die (in der heutigen Terminologie) auf einer Faktorisierung der Systemmatrix basiert, die der LU-Faktorisierung (2.20) sehr ¨ahnlich ist. Aber erst die Entwicklung der Matrizen-Algebra und die Konstruktion mechanischer und elektronischer Rechenger¨ ate f¨ uhrte zu einer systematischen Besch¨aftigung mit den sogenannten Eliminationsverfahren. Der Begriff Elimination“ wurde im Zusammenhang mit der ” 1

Joseph-Louis Lagrange (1736–1813), italienischer Mathematiker und Astronom Johann Carl Friedrich Gauß (1777–1855), deutscher Mathematiker und Naturwissenschaftler 3 Carl Friedrich Gauß: Theoria motus corporum coelestium in sectionibus conicis solem ambientium. Hamburg: Friedrich Perthes and I.H. Besser, 1809 2

42

Kapitel 2 Lineare Gleichungssysteme

L¨osung linearer Gleichungssysteme erstmals von S. de Lacroix1 verwendet. Die bereits am Anfang des ersten Kapitels erw¨ ahnte Arbeit2 von John von Neumann und Herman Goldstine besch¨ aftigte sich erstmals mit der Auswirkung von Rundungsfehlern auf den Eliminationsprozeß und begr¨ undete damit die moderne Numerische Mathematik. Auf George Forsythe3 geht der Vorschlag zur¨ uck, anstelle der zuvor verwendeten Bezeichnung Hochschul-Elimination“ den Terminus Gauß-Elimination“ zu verwen” ” den, der heute allgemein u ¨blich ist. Eine sehr interessante Arbeit zur Geschichte der Gauß-Elimination findet man in einer Arbeit4 von J. Grcar. Modifikationen der GaußElimination geh¨ oren auch noch heute zu den in der numerischen Praxis am h¨aufigsten verwendeten Techniken. Das Prinzip aller direkten numerischen Techniken besteht darin, das urspr¨ ungliche Gleichungssystem mittels geeigneter Transformationsmatrizen Qi und Ri in eine solche Gestalt zu transformieren, aus der sich die L¨osung sehr einfach ermitteln l¨aßt. Eine derartige Transformation w¨ urde etwa wie folgt aussehen: ˆ A

ˆ b

y

}| { z z }| { z }| { (Qn−1 · · · Q1 ) A (R1 · · · Rn−1 ) (R1 · · · Rn−1 )−1 x = (Qn−1 · · · Q1 ) b, Aˆ y = ˆb einfach zu l¨ osendes System,

(2.4)

x = (R1 · · · Rn−1 ) y.

Aus diesem Grunde wollen wir zun¨ achst Systeme betrachten, deren Koeffizientenmatrix A bereits viele Null-Elemente besitzt und sehr einfach strukturiert ist. Das am einfachsten zu l¨ osende lineare Gleichungssystem liegt offensichtlich dann vor, wenn A eine Diagonalmatrix ist. In diesem Falle ergibt sich jede Komponente des L¨osungsvektors x ∈ Rn aus nur einer einzigen Division: xi = bi /aii , i = 1, . . . , n. Den n¨ achst komplizierteren Fall stellen die sogenannten gestaffelten Systeme dar. Man versteht darunter Gleichungssysteme in 4-Gestalt ( 4“ - Abk¨ urzung f¨ ur Dreieck ), wie ” z.B. das obere 4-System: u11 x1 + u12 x2 + u22 x2 +

··· + ··· +

u1n xn = u2n xn = .. .

z1 z2 .. .

(2.5)

unn xn = zn Die zugeh¨ orige Matrizendarstellung sei U x = z, 1

U ∈ Rn×n obere 4 −Matrix.

(2.6)

Sylvestre Fran¸cois de Lacroix (1765–1843), franz¨ osischer Mathematiker. Nach ihm wurde ein Mondkrater benannt. 2 J. Neumann and H. Goldstine: Numerical inverting of matrices of high order, Bull. Amer. Math. Soc. vol.53, no. 11 (1947), 1021-1099 3 George E. Forsythe (1917–1972), US-amerikanischer Mathematiker und Informatiker 4 Joseph F. Grcar: Mathematicians of Gaussian Elimination. Notices of the AMS vol. 58, no. 6 (2011), 782–792

2.1 Aufl¨osung gestaffelter Systeme

43

Unter der Voraussetzung uii 6= 0, i = 1, . . . , n, l¨aßt sich das System (2.5), beginnend mit der n-ten Zeile, rekursiv aufl¨ osen: zn zn−1 − un−1,n xn z1 − u12 x2 − · · · − u1n xn xn := , xn−1 := , . . . , x1 := , unn un−1,n−1 u11 bzw. xi =

!

n X

zi −

uik xk

/uii ,

i = n, n − 1, . . . , 1.

(2.7)

k=i+1

Der vom Algorithmus (2.7) ben¨ otigte Rechenaufwand l¨aßt sich wie folgt ermitteln. Aufwandsberechnung: 1) i-te Zeile: je n − i Additionen und Multiplikationen, 1 Division; 2) insgesamt f¨ ur die Zeilen n bis 1: Pn 1 i=1 (i − 1) = 2 n(n − 1) Multiplikationen, ebenso viele Additionen sowie n Divisionen. 1 Damit ergibt sich ein Gesamtaufwand von 2 n(n − 1) + n = n2 flops. 2



Gestaffelte Systeme von unterer 4-Gestalt l11 z1 l21 z1 + .. .

l22 z2

= =

ln1 z1 +

ln2 z2 +

· · · + lnn zn =

b1 b2 .. .

(2.8)

bn ,

die wir in Matrizendarstellung wie folgt angeben wollen, L z = b,

L ∈ Rn×n untere 4 −Matrix,

(2.9)

werden v¨ ollig analog, jedoch mit der ersten Zeile beginnend, aufgel¨ost: z1 =

b1 b2 − l21 z1 bn − ln1 z1 − · · · − ln,n−1 zn−1 , z2 = , . . . , zn = , l11 l22 lnn

bzw. zi =

bi −

i−1 X

! lik zk

/lii ,

i = 1, . . . , n.

(2.10)

k=1

Der Rechenaufwand betr¨ agt hier ebenfalls n2 flops, wovon man sich durch einfaches Nachrechnen u ¨berzeugen kann.

44

Kapitel 2 Lineare Gleichungssysteme

Definition 2.1. Die obige Aufl¨ osungsvariante (2.7) f¨ ur Systeme der Form (2.6) heißt R¨ uckw¨ arts-Substitution. Die Aufl¨ osungsvariante (2.10) f¨ ur Systeme der Form (2.9) heißt Vorw¨ arts-Substitution. 

2.2

LU -Faktorisierung und Gauß-Elimination

Zur numerischen L¨ osung linearer Gleichungssysteme (2.1) mit einer Koeffizientenmatrix A, die keine spezielle Struktur (Diagonalmatrix, Dreiecksmatrix) aufweist, bietet ¨ uhrung in ein System mit einer sich die allgemeine Strategie (2.4) an. Da die Uberf¨ Diagonalmatrix im Hinblick auf den numerischen Aufwand nicht besonders g¨ unstig ist, wird das System (2.1) u ¨blicherweise in die gestaffelte Form (2.6) transformiert. Eine N¨ aherung f¨ ur die L¨ osung x = A−1 b erh¨ alt man anschließend mittels R¨ uckw¨arts- und Vorw¨ arts-Substitutionen. ¨ Bei der Uberf¨ uhrung von (2.1) in das obere 4-System (2.6) kann die erste Zeile unver¨ andert u ¨bernommen werden. Die restlichen Zeilen sind nun so zu modifizieren, daß die Koeffizienten von x1 verschwinden, d.h., es ist x1 aus den Zeilen 2 bis n zu eliminieren. So entsteht ein System der Form a11 x1 +

a12 x2 + a022 x2

+

··· +

a1n xn =

b1

··· +

a02n xn

b02

=

.. .. . . a0n2 x2 + · · · + a0nn xn = b0n .

(2.11)

Man erkennt unmittelbar, daß das Teilsystem, bestehend aus den Zeilen 2 bis n, von der ersten Zeile entkoppelt ist. Hat man somit die Form (2.11) erzeugt, dann l¨aßt sich dasselbe Verfahren auf die letzten n − 1 Zeilen von (2.11) anwenden. Nach n − 1 solchen Schritten erh¨ alt man schließlich ein gestaffeltes Gleichungssystem (oberes 4−System). Damit ist es ausreichend, zur Darstellung der Gauß-Elimination den Eliminationsschritt von (2.1) nach (2.11) zu beschreiben. Es werde a11 6= 0 vorausgesetzt. Um ai1 x1 in der Zeile i, i = 2(1)n, zu eliminieren, subtrahiert man von der Zeile i ein Vielfaches der unver¨anderten Zeile 1: Zeile i neu = Zeile i − li1 ·Zeile 1, oder explizit: (ai1 − li1 a11 ) x1 + (ai2 − li1 a12 ) x2 + · · · + (ain − li1 a1n ) xn = bi − li1 b1 . | {z } | {z } | {z } | {z } . b0i a0 a0 =0 i2

ai1 . Die Forderung ai1 − li1 a11 = 0 impliziert li1 = . a11

in

(2.12)

2.2 LU -Faktorisierung und Gauß-Elimination

45

Definition 2.2. Das Element a11 = 6 0 nennt man das Pivotelement 1 und die erste Zeile die zugeh¨ orige Pivotzeile. Die Elemente lik werden als Gaußsche Multiplikatoren bezeichnet.  Im weiteren wollen wir nur noch die Matrix A des Gleichungssystems (2.2) betrachten und vorerst die rechte Seite b außer acht lassen. Nach dem ersten Eliminationsschritt entsteht in den Zeilen 2, . . . , n und den Spalten 2, . . . , n der transformierten Matrix eine sogenannte Restmatrix der Dimension (n − 1, n − 1), die noch keine Dreiecksgestalt aufweist. Auf diese wird die Eliminationsvorschrift erneut angewandt, man erh¨alt dann eine (n − 2, n − 2)-dimensionale Restmatrix, etc. Dieser Vorgang l¨aßt sich formal wie folgt beschreiben: A ≡ A(1) → A(2) → · · · A(k) → A(k+1) · · · → A(n) ≡ U,

(2.13)

mit 

A(k)

(1)

(1)

a11

a12 (2) a22

     =    

··· ··· ··· ··· .. .

··· ···

(1)

a1n (2) a2n .. .

akk .. .

(k)

···

akn .. .

(k)

···

ann

ank

(k)

(k)

      .    

(2.14)

Auf die in (2.14) eingerahmte (n − k + 1, n − k + 1)-dimensionale Restmatrix kann man wieder den bekannten Eliminationsschritt anwenden, falls f¨ ur das k-te Pivotelement (k) akk 6= 0 gilt. Die zugeh¨ orige Rechenvorschrift lautet: (k)

lik =

aik

(k+1)

aij

(k)

,

i = k + 1, . . . , n,

akk

(2.15) (k)

(k)

= aij − lik akj ,

i, j = k + 1, . . . , n.

¨ Der Ubergang A(k) → A(k+1) l¨ aßt sich durch die Multiplikation von links mit einer n×n Matrix Lk ∈ R darstellen: A(k+1) = Lk A(k) , 1

(2.16)

Das Wort pivot“ kommt aus dem Franz¨ osischen und bedeutet soviel wie Dreh- oder Angel” punkt. Als Pivot wird auch ein Offensiv-Spieler im Basketball bezeichnet, der u ¨blicherweise mit dem R¨ ucken zum gegnerischen Korb steht und versucht, das Angriffsspiel aufzubauen (Quelle: http://www.yourDictionary.com ).

46

Kapitel 2 Lineare Gleichungssysteme

wobei      Lk =     



1 ..

     = I − lk (e(k) )T .    

. 1 −lk+1,k .. .

..

.

−ln,k

(2.17)

1

Hierbei sind lk ≡ (0, . . . , 0, lk+1,k , . . . , ln,k )T und e(k) ∈ Rn der k-te Einheitsvektor. | {z } k

Man beachte, daß in (2.17) auf der rechten Seite nicht das Skalarprodukt (engl.: inner ” product“) zwischen den Vektoren lk und e(k) , sondern das dyadische Produkt (engl.: outer product“) steht. Dieses dyadische Produkt ist wie folgt erkl¨art. ” Definition 2.3. Es seien x, y ∈ Rn . Das dyadische Produkt xy T dieser beiden Vektoren ergibt eine Matrix B ∈ Rn×n der Gestalt     B ≡ xy T =  

x1 x2 .. . xn



x1 y1

x1 y2

···

···

x1 yn

  x2 y1     ..   (y1 , y2 , . . . , yn ) =   .    ..  .  xn y1

x2 y2

···

···

 x2 yn    ..  .  .  ..  .  



.. . .. . xn y2

···

(2.18)

· · · xn yn

Man kann sich leicht davon u ur eine beliebige ¨berzeugen, daß die Matrix B den Rang 1 f¨ Dimension n besitzt.  Definition 2.4. Die durch die Formel (2.17) erkl¨arten Matrizen Lk werden GaußTransformationsmatrizen oder k¨ urzer Gauß-Transformationen genannt.  Bei den Gauß-Transformationen Lk handelt es sich um sogenannte Frobenius 1 -Matrizen. Man versteht darunter Matrizen, die sich in h¨ochstens einer Spalte von der Einheitsmatrix unterscheiden. Sie besitzen die Eigenschaft, daß die Inverse L−1 k aus Lk durch (k) T Vorzeichenwechsel in den Elementen lik entsteht, d.h., L−1 ) . k = I + lk (e 1

Ferdinand Georg Frobenius (1849–1917), deutscher Mathematiker

2.2 LU -Faktorisierung und Gauß-Elimination Das Produkt der L−1 ullt k , k = 1, . . . , n − 1, erf¨  1  l21 1   l31 l32 −1 L ≡ L−1 1 · · · Ln−1 =   ..  . ln1

ln2

47

    ,  

1 ..

···

. ln,n−1

(2.19)

1

wie man sich leicht davon u ¨berzeugen kann. Die spezielle Struktur der Matrizen Lk und L gibt Anlaß zu folgender Definition. Definition 2.5. Eine untere oder obere 4-Matrix, deren Diagonalelemente alle gleich 1 sind, heißt unipotent und wird im folgenden auch als 1-4-Matrix bezeichnet.  ¨ Durch die vorangegangenen Uberlegungen kommen wir zu folgendem Resultat. Satz 2.2. Das obige Verfahren (2.13)–(2.17) erzeugt unter der Voraussetzung an die (k) Pivotelemente akk 6= 0, k = 1, . . . , n − 1, eine Faktorisierung der Matrix A in der Form A = L U,

L untere 1-4-Matrix, U obere 4-Matrix.

(2.20)

Beweis: Offensichtlich entsteht nach der Anwendung von n−1 Gauß-Transformationen von links auf die Matrix A eine obere 4-Matrix U : Ln−1 Ln−2 · · · L2 L1 A = U.

(2.21)

−1 −1 −1 Mit L ≡ (Ln−1 Ln−2 · · · L2 L1 )−1 = L−1 1 L2 · · · Ln−2 Ln−1 kann (2.21) in der Form (2.20) geschrieben werden, d.h., A = L U. (2.22)

Dabei wurde ber¨ ucksichtigt, daß es sich bei den Matrizen Lk um 1-4-Matrizen handelt. Die Inversen L−1 k sind dann ebenfalls 1-4-Matrizen (die Lk sind Frobenius-Matrizen!) und das Produkt von 1-4-Matrizen ergibt wiederum eine 1-4-Matrix (Strukturerhaltung bei der Multiplikation!). Damit ist die Behauptung des Satzes gezeigt.  Definition 2.6. Die Faktorisierung (2.20) wird LU-Faktorisierung der Matrix A genannt.  Wir kommen jetzt wieder auf die Bestimmung einer L¨osung x des linearen Gleichungssystems (2.2) zur¨ uck. Anders als bei der L¨ osung niedrig-dimensionaler Probleme mit Bleistift und Papier wird man auf dem Computer zuerst nur die LU -Faktorisierung der Systemmatrix A berechnen. Die so berechnete Faktorisierung (2.20) kann dann wie folgt zur L¨ osung des Gleichungssystems ausgenutzt werden: Man ersetzt in (2.2) die Matrix A durch ihre Faktorisierung LU, d.h., LU x = b. Mit

48

Kapitel 2 Lineare Gleichungssysteme

der Festlegung z ≡ U x ergibt sich daraus das untere Dreieckssystem Lz = b. Dieses System wird in einem ersten Schritt mit der Vorw¨arts-Substitution gel¨ost. Anschließend kann aus dem oberen Dreieckssystem U x = z die gesuchte L¨osung x mit der R¨ uckw¨ arts-Substitution ermittelt werden. Unter der Gauß-Elimination wollen wir hier den folgenden numerischen L¨osungsalgorithmus f¨ ur n-dimensionale lineare Gleichungssysteme verstehen, der eine direkte Umsetzung dieser L¨ osungsstrategie darstellt:

Gauß-Elimination 1. Schritt: Man bestimme die LU -Faktorisierung der Matrix A: A = L U , U obere 4-Matrix, L untere 1-4-Matrix. 2. Schritt: Man berechne den Hilfsvektor z mittels Vorw¨artsSubstitution aus dem unteren 4-System L z = b. 3. Schritt: Man berechne den L¨ osungsvektor x mittels R¨ uckw¨artsSubstitution aus dem oberen 4-System U x = z.

Algorithmus 2.1: Gauß-Elimination

F¨ ur die Abspeicherung der bei der Gauß-Elimination anfallenden Zwischen- und Endwerte reicht der Speicherplatz aus, den die Eingabedaten A und b belegen, d.h., es ist insgesamt nur ein Feld der Gr¨ oße n × (n + 1) erforderlich. Jedes Speicherschema sollte sich an der Darstellung (2.14) der Matrizen A(k) orientieren. In die dort nicht besetzten Speicherpl¨ atze k¨ onnen n¨ amlich die Gaußschen Multiplikatoren lik wie folgt eingetragen werden:  (1)  (1) (1) a11 a12 · · · · · · · · · a1n  (2) (2)   l21 a22 · · · · · · · · · a2n    ..   .   l l 31 32 (k)  . A = . (2.23) . (k) (k)  ..  .. akk · · · akn    .. .. ..   ..  . . . .  ln1

ln2

···

(k)

ank

···

(k)

ann

Damit bleibt der Speicherbedarf nach der Eingabe von A und b konstant. Die Algorithmen der bekanntesten Programmpakete zur Matrizen-Numerik wie Matlab, Lapack, Linpack und Eispack sind so implementiert, daß auf dem Feld, in dem die Systemmatrix A abgespeichert ist, auch die LU -Faktorisierung durchgef¨ uhrt wird. Nach Falk1 sollte man jedoch stets eine Kopie der Systemmatrix A im Speicher behalten. 1

Siehe den zweiten Band des Buches von R. Zurm¨ uhl und S. Falk: Matrizen und ihre Anwendungen. Springer Verlag, Berlin et al., 1986

2.2 LU -Faktorisierung und Gauß-Elimination

49

Dies wird von ihm wie folgt schl¨ ussig begr¨ undet: Grundregel: Die Originalmatrix A wird unter keinen Umst¨anden zerst¨ort (¨ uberschrie” ben), sondern bleibt unver¨ andert im Speicher. Der Leser kann sich dies gar nicht fest genug einpr¨ agen. In der Praxis ist die Matrix A im allgemeinen von hoher Ordnung, etwa n = 10, 000 mit einem meist ausgepr¨ agten Profil (schwache Besetzung, H¨ ulle, Band usw. [. . .]), deren viele Millionen Elemente oft in ¨ außerst m¨ uhseligen und aufwendigen Proze¨ duren aus einer mechanischen Modellbildung samt anschließender finiter Ubersetzung von gew¨ ohnlichen oder partiellen linearen Differentialgleichungen bzw. mit Hilfe von Finite-Elemente-Methoden (FEM) gewonnen wurden. Diese immense technische Information zu zerst¨ oren, w¨ are der gr¨ oßte Widersinn, abgesehen davon, daß zum Schluß der Rechnung die L¨ osung etwa der Gleichung Ax = r einzuschließen bzw. abzusch¨atzen ist, [. . .].“ F¨ ur die Gauß-Elimination bestimmt sich nun der Rechenaufwand zu: 1) k-ter Eliminationsschritt zur Berechnung der LU -Faktorisierung: (k+1) Es sind (n − k) Multiplikatoren lik sowie (n − k)2 Werte aij zu berechnen. Dies 2 erfordert einen Aufwand von [(n − k) + 2(n − k) ] flops. 2) Da die Aufwandsabsch¨ atzungen ausschließlich f¨ ur große Systeme von Bedeutung sind, d.h., n in der Gr¨ oßenordnung von n = 1.000–100.000, gibt man u ¨blicherweise nur den Term an, der die gr¨ oßte Potenz von n enth¨alt. Im vorliegenden Fall l¨aßt sich unter Ber¨ ucksichtigung dieser Asymptotik die erforderliche Anzahl von flops wie folgt absch¨ atzen: Unter Ausnutzung der Beziehungen q X i=1

i=

q(q + 1) 2

und

q X i=1

i2 =

1 3 1 2 1 q + q + q 3 2 6

berechnet sich der Gesamtaufwand f¨ ur die LU -Faktorisierung (n − 1 Eliminationsschritte) zu {(n − 1) + (n − 2) + · · · + 1} + 2{(n − 1)2 + (n − 2)2 + · · · + 1} 1 2 2 n(n − 1) + n(n − 1)(2n − 1)  n3 (f¨ ur n → ∞). 2 6 3 Folglich sind f¨ ur die Faktorisierung asymptotisch 2n3 /3 flops erforderlich. Wir schreiben dies oftmals auch in der Form O(n3 ) flops. =

3) F¨ ur die sich anschließenden R¨ uckw¨ arts- und Vorw¨artssubstitutionen werden jeweils n2 flops ben¨ otigt (siehe die Ausf¨ uhrungen des vorangegangenen Abschnittes).  Der Hauptaufwand steckt damit in der LU -Zerlegung. Bei Systemen (2.1) mit gleicher Systemmatrix, aber unterschiedlichen rechten Seiten, braucht diese jedoch nur einmal berechnet zu werden, d.h., der Algorithmus 2.1 ist in diesem Falle besonders effektiv

50

Kapitel 2 Lineare Gleichungssysteme

(siehe auch die Bemerkungen zur Berechnung der Inversen einer Matrix im folgenden Abschnitt). Das Programm 2.1 enth¨ alt eine Implementierung der LU -Faktorisierung f¨ ur die Matlab. Die L¨ osung eines linearen Gleichungssystems kann dann mit Hilfe des Programms 2.4 vorgenommen werden (siehe Abschnitt 2.3). Programm 2.1

LU -Faktorisierung ohne Pivotisierung

function [L,U]=lupur(A) % % A: (n x n)-Matrix % % L: untere (n x n)-1-Dreiecksmatrix-Matrix % U: obere (n x n)-Dreiecksmatrix-Matrix % [n,m]=size(A); for k=1:n-1 if A(k,k) ~= 0 A(k+1:n,k)=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n); else error(’Verfahren nicht durchf¨ uhrbar’) end end U=triu(A); L=tril(A,-1)+eye(n);

2.3

Pivot-Strategien und Nachiteration

Das folgende Beispiel zeigt, daß die Gauß-Elimination bereits bei gutartigen Problemen versagen kann. Beispiel 2.1. Gegeben sei die Matrix   0 1 A= ; offensichtlich ist det(A) = −1 (6= 0). 1 0 Da das erste Pivotelement gleich Null ist, versagt die Gauß-Elimination (trotz nichtsingul¨ arer Matrix!). Dieses Problem l¨ aßt sich durch eine Vertauschung der Zeilen beseitigen:     0 1 1 0 A= =⇒ Aˆ = = I = L · U, mit L = U = I. 1 0 0 1  Es treten aber auch bei relativ kleinen Pivotelementen numerische Schwierigkeiten auf.

2.3 Pivot-Strategien und Nachiteration

51

Beispiel 2.2. Gegeben sei das lineare Gleichungssystem 10−4 x1 + x2 = 1 x1 + x2 = 2

.

(2.24)

Dieses System werde auf einem Computer mit R ≡ R(10, 3, 20, 20) und symmetrischem Runden berechnet. Die exakte L¨ osung von (2.24) lautet: x1 =

104 9998 und x2 = . 9999 9999

(2.25)

Approximiert man die Komponenten der exakten L¨osung durch Zahlen aus R, dann ergibt sich x1 = 0.100 · 101 und x2 = 0.100 · 101 . Um das Gleichungssystem (2.24) mit der Gauß-Elimination in der (endlichen) Menge der Maschinenzahlen l¨ osen zu k¨ onnen, m¨ ussen zuerst die Eingabedaten durch Zahlen aus R dargestellt werden. Es resultiert das folgende System 0.100 · 10−3 + 0.100 · 101 x2 = 0.100 · 101 0.100 · 101 + 0.100 · 101 x2 = 0.200 · 101

.

(2.26)

In einem ersten Rechenschritt wird der zugeh¨ orige Gaußsche Multiplikator berechnet: l21 =

a21 0.100 · 101 = = 0.100 · 105 . a11 0.100 · 10−3

Man beachte: Aus einem kleinen Pivotelement entsteht hier ein großer Multiplikator. Nun ist das l21 -fache der ersten Zeile von der zweiten Zeile zu subtrahieren: (0.100 · 101 − 0.100 · 105 · 0.100 · 10−3 ) x1 + (0.100 · 101 − 0.100 · 105 · 0.100 · 101 ) x2 = 0.200 · 101 − 0.100 · 105 · 0.100 · 101 . Somit ergibt sich das obere 4-System U x = z zu 0.100 · 10−3 x1 + 0.100 · 101 x2 = 0.100 · 101 − 0.100 · 105 x2 = −0.100 · 105 Als L¨ osung berechnet man daraus: x2 = 0.100 · 101

und x1 = 0.000 · 10−20 .

.

52

Kapitel 2 Lineare Gleichungssysteme

Offensichtlich ist dieses Resultat falsch! Vertauscht man jedoch vor der Elimination die Reihenfolge der Gleichungen in (2.26), 0.100 · 101 + 0.100 · 101 x2 = 0.200 · 101 0.100 · 10−3 + 0.100 · 101 x2 = 0.100 · 101

,

(2.27)

dann wird das Pivotelement groß und damit der Gaußsche Multiplikator klein: −3 ˆl21 = 0.100 · 10 = 0.100 · 10−3 . 0.100 · 101 Es bestimmt sich jetzt das obere 4-System zu:

0.100 · 101 x1 + 0.100 · 101 x2 = 0.200 · 101 0.100 · 101 x2 = 0.100 · 101

.

Die hieraus berechnete L¨ osung ist: x2 = 0.100 · 101

und x1 = 0.100 · 101 .

Ein Vergleich mit der exakten L¨ osung (2.25) zeigt, daß der Zeilentausch vor der Ausf¨ uhrung der Gauß-Elimination zu einer hinreichend genauen numerischen Approximation f¨ uhrt.  Durch ein Vertauschen der Zeilen hat man im obigen Beispiel erreicht, daß |ˆl21 | < 1 gilt. In der allgemeinen Rechenvorschrift (2.12) werden durch diese Strategie die Elemente von li1 · Zeile 1, im Vergleich mit denen der Zeile i, nicht zu groß. Damit wirkt man der Ursache f¨ ur das Versagen des urspr¨ unglichen Verfahrens entgegen. Der durch (k) Rundungsfehler bedingte Fehler in den akj (Pivotzeile) wird n¨amlich anderenfalls mit (k+1)

einem großen Faktor auf die aij (neue transformierte Zeilen) u ¨bertragen. Ein solches Vertauschen von Zeilen oder Spalten w¨ ahrend des eigentlichen Eliminationsprozesses wird allgemein Pivot-Strategie genannt, siehe Definition 2.7. Definition 2.7. Unter einer Spaltenpivot-Strategie (bzw. partiellen Pivotisierung) versteht man das folgende Vorgehen: im k-ten Schritt der LU -Faktorisierung, k = 1, . . . , n− 1, wird das Pivot-Element als betragsm¨ aßig gr¨oßtes Element in der ersten Spalte der (n−k +1)×(n−k +1)-dimensionalen Restmatrix bestimmt. Die zugeh¨orige Zeile bringt man durch einen Zeilentausch an die erste Position dieser Restmatrix, d.h., man macht sie zur Pivot-Zeile.  F¨ ugt man nun die Spaltenpivot-Strategie zur LU -Faktorisierung hinzu, dann ergibt sich der Algorithmus 2.2. Die Spaltenpivot-Strategie ist nicht die einzige M¨oglichkeit, die oben dargestellten Instabilit¨ aten des Eliminationsprozesses zu reduzieren, wie der folgenden Bemerkung zu entnehmen ist.

2.3 Pivot-Strategien und Nachiteration

53

LU -Faktorisierung mit Spaltenpivot-Strategie 1. Schritt:

Man w¨ ahle im Schritt A(k) → A(k+1) einen Index p ∈ {k, . . . , n} (k)

(k)

mit |apk | ≥ |ajk |, j = k(1)n. 2. Schritt:

Man vertausche die Zeilen p und k :  (k)  a , i=p    kj (k) (k) A(k) → Aˆ(k) mit a ˆij = apj , i = k ;     a(k) , sonst ij (k)

Jetzt gilt:

3. Schritt:

Die Zeile p wird zur Pivotzeile.

(k)

|ˆ a | |ˆ a | |ˆlik | = ik = ik ≤ 1. (k) (k) |ˆ akk | |apk |

Man f¨ uhre den n¨ achsten Eliminationsschritt, angewandt auf Aˆ(k) , aus:

Aˆ(k) → A(k+1) .

Algorithmus 2.2: LU -Faktorisierung mit Spaltenpivot-Strategie

Bemerkung 2.2. • Anstelle der Spaltenpivot-Strategie mit Zeilentausch kann man in v¨olliger Analogie auch eine Zeilenpivot-Strategie mit Spaltentausch durchf¨ uhren. Da das PivotElement wie zuvor nur in einem (n − k + 1)-dimensionalen Feld und nicht in der gesamten Restmatrix gesucht wird, spricht man ebenfalls von einer partiellen Pivotisierung. Der Aufwand l¨ aßt sich f¨ ur die beiden Formen der partiellen Pivotisierung in der u ¨blichen Asymptotik zu jeweils O(n2 ) Vergleiche und Umspeicherungen absch¨ atzen. • Kombiniert man beide Strategien und sucht in der gesamten Restmatrix nach dem betragsgr¨ oßten Element, dann wird dieses Vorgehen vollst¨ andige Pivotisierung genannt. Hier ben¨ otigt man O(n3 ) Vergleiche und Umspeicherungen. Geht man aber davon aus, daß auf den heutigen Rechnern Vergleiche und Umspeicherungen denselben Zeitaufwand wie die arithmetischen Grundrechenoperationen erfordern, dann liegt der numerische Aufwand f¨ ur die vollst¨andige Pivotisierung etwa in der gleichen Gr¨ oßenordnung wie der f¨ ur den eigentlichen Eliminationsprozeß. Deshalb wird die vollst¨ andige Pivotisierung in der Praxis so gut wie nie angewendet. Es

54

Kapitel 2 Lineare Gleichungssysteme kann jedoch gezeigt werden, daß die Gauß-Elimination mit vollst¨andiger Pivotisierung viel bessere Stabilit¨ atseigenschaften besitzt als die Gauß-Elimination mit partieller Pivotisierung (siehe Abschnitt 2.5.4). • Von H. R. Schwarz1 stammt der Vorschlag, das Pivot-Element sowohl in der ersten Zeile als auch in der ersten Spalte der Restmatrix zu suchen. Er nennt diese Form der Pivotisierung Suche im Haken. Der Aufwand liegt hier zwischen der partiellen und der vollst¨ andigen Pivotisierung, da die Pivot-Suche in einem 2(n − k + 1)-dimensionalen Feld stattfindet. Diese Form der Pivotisierung ist jedoch in den praktisch relevanten Implementierungen der Gauß-Elimination (zum Beispiel in den Programm-Paketen: Matlab, Lapack, IMSL, Nag) nicht realisiert. Neben den Zeilenvertauschungen m¨ ußten auch noch Spaltenvertauschungen ber¨ ucksichtigt werden, was auch gegen diese Variante der Pivotisierung spricht. 

Der bei der Spaltenpivot-Strategie zu vollziehende Zeilentausch l¨aßt sich mathematisch mittels sogenannter Permutationsmatrizen beschreiben. Eine solche Permutationsmatrix P ∈ Rn×n hat genau eine Eins in jeder Zeile und jeder Spalte und besteht ansonsten aus Nullen. Beispiel 2.3. Beispiele f¨ ur Permutationsmatrizen P ∈ R4×4 sind: 

1  0   0 0

0 1 0 0

0 0 1 0

 0 0  , 0  1



0  1   0 0

1 0 0 0

0 0 1 0

 0 0  , 0  1



0  1   0 0

0 0 1 0

1 0 0 0

 0 0  , 0  1



0 1 0 0

0 0 1 0

 1 0  , 0  0



0 1 0 0

0 0 0 1

 0 0  , 1  0



0 0 1 0

0 1 0 0

 1 0  . 0  0

0  0   0 1

1  0   0 0

0  0   0 1



1  0   0 0

0 0 1 0

0 1 0 0

 0 0  , 0  1



Multipliziert man eine Matrix A ∈ Rn×n von links (rechts) mit einer Permutationsmatrix, dann f¨ uhrt dies zu einer Vertauschung der Zeilen (Spalten). Permutationsmatrizen sind orthogonal, d.h., sie erf¨ ullen P −1 = P T

bzw.

P T P = I.

(2.28)

Es kann leicht gezeigt werden, daß das Produkt von Permutationsmatrizen wieder eine Permutationsmatrix ist. In diesem Abschnitt sind wir an speziellen Permutationsmatrizen, den sogenannten Vertauschungsmatrizen interessiert. Es handelt sich dabei um Permutationen, die durch die Vertauschung zweier Zeilen aus der Einheitsmatrix ent1

Siehe Schwarz, H. R. und K¨ ockler, N.: Numerische Mathematik. Vieweg + Teubner, Wiesbaden 2009

2.3 Pivot-Strategien und Nachiteration

55

stehen:             Tij =           

1

 ..

.

      ← Zeile i           ← Zeile j      

1 0 .. . .. . .. .

... ... ... 1 .. 1 . .. .. . . . 1 ..

1

... ... ... 0 1 ..

↑ Spalte i

↑ Spalte j

.

(2.29)

1

Vertauschungsmatrizen sind orthogonal und symmetrisch, so daß Tij Tij = I gilt. Die i-te und j-te Zeile einer Matrix A ∈ Rn×n werden miteinander vertauscht, wenn man A von links mit der obigen Vertauschungsmatrix Tij multipliziert; von rechts f¨ uhrt die Multiplikation zu einem Tausch der Spalten i und j. Um beispielsweise die Zeilen 1 und 3 einer Matrix A ∈ R3×3 miteinander zu vertauschen, multipliziert man von links mit der Vertauschungsmatrix T13 :  0 T13 A = 0 1

0 1 0

 1 0 0

 a11 a21 a31

a12 a22 a32

  a13 a31 a23  = a21 a33 a11

a32 a22 a12

 a33 a23  . a13

Unter Verwendung solcher Permutationsmatrizen kann die spaltenpivotisierte Faktorisierung einer Matrix A folgendermaßen aufgeschrieben werden: U = Ln−1 Pn−1 Ln−2 Pn−2 · · · P3 L2 P2 L1 P1 A,

(2.30)

wobei U eine obere 4-Matrix ist (siehe Algorithmus 2.2) und Pk die im k-ten Eliminationsschritt verwendete Vertauschungsmatrix bezeichnet. Es verbleibt die Frage: Wird die Matrix A durch die Folge von Transformationen (2.30) wiederum in das Produkt zweier 4-Matrizen L und U zerlegt und wenn ja, wie sieht die untere 1-4 Matrix L jetzt aus? Wir wollen das Resultat beispielhaft f¨ ur n = 5 herleiten. Es ist: U = L4 P4 L3 ·I· P3 L2 P2 L1 P1 A. (2.31) ↑ ≡ P 4 P4

56

Kapitel 2 Lineare Gleichungssysteme

ˆ 4 ≡ L4 und f¨ Im ersten Schritt setzen wir L ugen wie angezeigt zwischen L3 und P3 eine intelligente Einheitsmatrix“ I ≡ P4 P4 (P4 ist eine Vertauschungsmatrix!) ein. Damit ” geht (2.31) u ¨ber in ˆ 4 · P4 L3 P4 ·P4 P3 L2 P2 L1 P1 A. U =L | {z } ˆ3 ≡L ˆ 3 ≡ P4 L3 P4 und f¨ Im zweiten Schritt setzen wir L ugen zwischen L2 und P2 wiederum eine intelligente Einheitsmatrix“ I ≡ P3 P4 P4 P3 ein. Die obige Formel nimmt damit ” die Gestalt an ˆ4 L ˆ 3 P4 P3 L2 ·I · P2 L1 P1 A. U =L ↑ ≡ P3 P4 P4 P3 Die restlichen Schritte verlaufen v¨ ollig analog. Es ergeben sich dabei die transformierten ˆ 2 ≡ P4 P3 L2 P3 P4 und Lˆ1 ≡ P4 P3 P2 L1 P2 P3 P4 : Matrizen L ˆ4 L ˆ 3 · P4 P3 L2 P3 P4 ·P4 P3 P2 L1 P1 A, U =L | {z } ˆ ≡ L2 ˆ4 L ˆ3 L ˆ 2 P4 P3 P2 L1 · I · P1 A, U =L ↑ ≡ P2 P3 P4 P4 P3 P2 ˆ4 L ˆ3 L ˆ 2 · P4 P3 P2 L1 P2 P3 P4 ·P4 P3 P2 P1 A. U =L {z } | ˆ1 ≡L Somit ist ˆ4 L ˆ3 L ˆ2 L ˆ 1 P4 P3 P2 P1 A. U =L

(2.32)

P ≡ P4 P3 P2 P1 .

(2.33)

Wir setzen nun

Die Matrix P ist das Produkt von Vertauschungsmatrizen und somit eine Permutationsmatrix. Sie enth¨ alt die gesamte Information u ¨ber die w¨ahrend des Eliminationsprozesses ausgef¨ uhrten Zeilenvertauschungen. Mit dieser Definition nimmt die Gleichung (2.32) die Form an ˆ4 L ˆ3 L ˆ2 L ˆ 1 P A. U =L

(2.34)

Man kann sich leicht davon u ¨berzeugen, daß die modifizierten Gauß-Transformationen ˆ i , i = 1, . . . , 4, genau wie die urspr¨ L unglichen Gauß-Transformationen Li , untere 1-4Matrizen sind. Aus (2.34) ergibt sich nun: ˆ4 L ˆ3 L ˆ2 L ˆ 1 )−1 U = P A bzw. (L

ˆ −1 L ˆ −1 L ˆ −1 L ˆ −1 · U = P A. L 2 4 |1 {z 3 } ≡L

2.3 Pivot-Strategien und Nachiteration

57

ˆ −1 L ˆ −1 L ˆ −1 L ˆ −1 ist ebenfalls eine 1-4-Matrix, da die Invertierung und Die Matrix L ≡ L 1 2 3 4 das Produkt von 1-4-Matrizen strukturerhaltend sind. Zusammenfassend haben wir die folgende Darstellung der Matrix A erhalten: P A = L U,

L untere 1-4-Matrix, U obere 4-Matrix.

(2.35)

Bemerkung 2.3. Die Gauß-Elimination mit Spaltenpivotisierung erzeugt somit eine LU -Faktorisierung f¨ ur eine zeilenpermutierte Matrix A.  Es ist offensichtlich, daß die Darstellung (2.35) auch f¨ ur beliebiges n gilt. Die untere 1-4-Matrix L ergibt sich dann zu ˆ −1 L ˆ −1 · · · L ˆ −1 . L≡L 1 2 n−1

(2.36)

ˆ k berechnen sich nach der VorDie zugeh¨ origen modifizierten Gauß-Transformationen L schrift: ˆ n−1 L

≡ Ln−1 ,

ˆk L

≡ Pn−1 · · · Pk+1 Lk Pk+1 · · · Pn−1 ,

(2.37) k = n − 2(−1)1.

Schließlich bestimmt sich die Permutationsmatrix P zu P = Pn−1 Pn−2 · · · P1 .

(2.38)

Bemerkung 2.4. In der Praxis wird man nat¨ urlich die Vertauschungsmatrizen Pj sowie die resultierende Permutationsmatrix P nicht als zweidimensionale Felder abspeichern. Ist P = Pn−1 · · · P1 und ergibt sich Pk aus der Einheitsmatrix durch Vertauschen der Zeilen k und pk , dann ist p = (p1 , . . . , pn−1 )T eine sachgem¨aße Kodierung von P in Vektorform. Man nennt p den zugeh¨ origen Permutationsvektor. Ist x ∈ Rn , dann kann dieser Vektor durch P x wie folgt u ¨berschrieben werden: for k = 1 : n − 1 τ = x(k) x(k) = x(p(k)) x(p(k)) = τ end Es soll jetzt noch eine weitere M¨ oglichkeit, die Permutationsmatrix P in Vektorform abzuspeichern, angegeben werden, die insbesondere f¨ ur die Implementierung mit der

58

Kapitel 2 Lineare Gleichungssysteme

Matlab von Bedeutung ist. Man startet mit dem Vektor p = (1, 2, 3, . . . , n)T . Werden nun im k-ten Schritt die Zeilen k und pk vertauscht, dann werden in p die Komponenten k und pk getauscht. Ist wiederum x ∈ Rn , dann erh¨alt man den Vektor P x mit dem Matlab-Befehl P x = x(p). F¨ ur eine Matrix A ∈ Rn×n ergibt sich P A sehr einfach mit dem Befehl P A = A(p, :).  Die numerische Bestimmung einer L¨ osung des linearen Gleichungssystems (2.1) wird man jetzt mit der folgenden Modifikation des Algorithmus 2.1 (siehe Algorithmus 2.3) vornehmen, die auf den obigen Betrachtungen basiert.

Gauß-Elimination mit Spalten-Pivotisierung 1. Schritt: Man bestimme die LU -Faktorisierung der Matrix A: P A = L U , U obere 4-Matrix, L untere 1-4-Matrix 2. Schritt: Man berechne den Hilfsvektor z mittels Vorw¨artsSubstitution aus dem unteren 4-System L z = P b 3. Schritt: Man berechne den L¨ osungsvektor x mittels R¨ uckw¨artsSubstitution aus dem oberen 4-System U x = z

Algorithmus 2.3: Gauß-Elimination mit Spalten-Pivotisierung

Ein Matlab-Implementierung, die die LU -Faktorisierung mit partieller Pivotisierung realisiert, ist im Programm 2.2 angegeben. F¨ ur die L¨osung eines linearen Gleichungssystems kann wieder das Programm 2.4 verwendet werden. Beispiel 2.4. Gegeben sei das lineare Gleichungssystem      0 1 0 x1 1 1 2 3 x2  = 6 2 4 1 x3 7 F¨ ur die Kodierung der Permutationsmatrizen Pk mittels eines Permutationsvektors p verwenden wir die erste Variante, die auf einem (n − 1)-dimensionalen Vektor basiert. Man berechnet:       1 0 0 0 0 1 2 4 1 P1 = 0 1 0 , p = (3, ·)T , P1 A = 1 2 3 , L1 = − 12 1 0 , 1 0 0 0 1 0 0 0 1  2 L1 P1 A = 0 0

4 0 1

1



5 , 2

0



1 P2 = 0 0

0 0 1

 0 1 , 0

p = (3, 3)T ,

2.3 Pivot-Strategien und Nachiteration Programm 2.2

59

LU -Faktorisierung mit partieller Pivotisierung

function [L,U,p]=luppart(A) % % A: (n x n)-Matrix % % L: untere (n x n)-1-Dreiecksmatrix-Matrix % U: obere (n x n)-Dreiecksmatrix-Matrix % p: Permutationsvektor mit A(p,:) = L * U (Variante 2) % [n,m]=size(A); L=eye(n); p=1:n; for k=1:n-1 [ma,j]=max(abs(A(k:n,k))); j=j+k-1; if A(j,k) ~= 0 if j~=k A([k,j],:)=A([j,k],:); L([k,j],1:k-1)=L([j,k],1:k-1); p([k,j])=p([j,k]); end L(k+1:n,k)=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-L(k+1:n,k)*A(k,k+1:n); else error(’Matrix A ist singul¨ ar’) end end U=triu(A);

 2 4 P2 L1 P1 A = 0 1 0 0  2 L2 P2 L1 P1 A = 0 0  1 ˆ 2 = L2 = 0 L 0

4 1 0

ˆ −1 L 1

5 2

 1 0  = U, 5 2

 0 0 = I, 1

0 1 0 

ˆ −1 = I, L 2

 1 0 ,

1 = 0 1 2



1 L2 = 0 0

0 1 0

 0 0 = I, 1

 0 P = P2 P1 = 1 0

0 0 1



1 ˆ 1 = P2 L1 P2 =  0 L − 12

 0 0 1 0 , 0 1



ˆ −1 L ˆ −1 L=L 1 2

1 = 0 1 2

 1 0 , 0

 0 0 1 0 , 0 1  0 0 1 0 , 0 1

60

Kapitel 2 Lineare Gleichungssysteme 

    0 0 1 1 7 P b = 1 0 0 6 = 1 . 0 1 0 7 6 Nun ist das untere 4-System mit der Vorw¨ arts-Substitution zu l¨osen:        1 0 0 7 z1 7 Lz = P b :  0 1 0 z2  = 1 =⇒ z =  1  . 1 5 z3 6 0 1 2 2 Jetzt kann das obere 4-System mittels R¨ uckw¨arts-Substitution gel¨ost werden:        2 4 1 7 x1 1 U x = z : 0 1 0  x2  =  1  =⇒ x = 1 5 x3 1 0 0 52 2

 In Erg¨ anzung zu der im Programm 2.2 implementierten LU -Faktorisierung mit partieller Pivotisierung ist im Programm 2.3 die LU -Faktorisierung mit vollst¨andiger Pivotisierung in die Sprache der Matlab umgesetzt. Mit dem Programm 2.4 kann nun ein lineares Gleichungssystem Ax = b mit der GaußElimination unter Verwendung der Diagonalstrategie, der partiellen Pivotisierung oder der vollst¨ andigen Pivotisierung gel¨ ost werden. Bez¨ uglich der Durchf¨ uhrbarkeit der LU -Faktorisierung mit partieller Pivotisierung und der zugeh¨ origen Gauß-Elimination (Algorithmen 2.2 und 2.3) gilt der folgende Satz. Satz 2.3. Es sei A ∈ Rn×n eine regul¨ are Matrix. Dann existiert vor dem k-ten Eliminationsschritt stets eine Zeilenpermutation derart, daß das resultierende Pivotelement (k) akk von Null verschieden ist. Beweis: Die Regularit¨ at von A ist gleichbedeutend mit det(A) 6= 0. 1) Es werde a11 = 0 angenommen. Dann existiert in der ersten Spalte mindestens ein ai1 6= 0, denn anderenfalls ist det(A) = 0. Eine Vertauschung der i-ten Zeile von A mit der ersten Zeile erzeugt an der Position (1,1) ein Pivot ungleich Null. Diese Zeilenvertauschung zieht aber in der Determinante von A einen Vorzeichenwechsel nach sich. Wir setzen deshalb v1 = 1, falls vor dem ersten Eliminationsschritt ein Zeilentausch erforderlich ist, anderenfalls (a11 6= 0) wird v1 = 0 festgelegt. Zur Vereinfachung m¨ ogen die Matrixelemente nach einem eventuellen Zeilentausch wieder mit aik bezeichnet werden. 2) Die Addition eines Vielfachen der ersten Zeile zu den u ¨brigen Zeilen ¨andert den Wert der Determinante nicht. Unter Beachtung dieser Regeln ergibt sich nun (hier am Fall n = 4 demonstriert): a11 a12 a13 a14 a11 a12 a13 a14 (2) (2) (2) a22 a23 a24 a23 a24 v1 a21 a22 v1 0 det(A) = (−1) = (−1) 0 a(2) a(2) a(2) , d.h. a31 a32 a33 a34 32 33 34 a41 a42 a43 a44 0 a(2) a(2) a(2) 42

43

44

2.3 Pivot-Strategien und Nachiteration Programm 2.3

61

LU -Faktorisierung mit vollst¨ andiger Pivotisierung

function [L,U,p,q]=lupvoll(A) % % A: (n x n)-Matrix % % L: untere (n x n)-1-Dreiecksmatrix-Matrix % U: obere (n x n)-Dreiecksmatrix-Matrix % p,q: Permutationsvektoren mit L * U = A(p,q) % [n,m]=size(A); p=1:n;q=p; for k=1:n-1 [ma,j]=max(abs(A(k:n,k:n))); [ma,l]=max(ma); j=j(l)+k-1;l=l+k-1; if A(j,l) ~= 0 if j~=k A([k,j],:)=A([j,k],:); p([k,j])=p([j,k]); end if l~=k A(:,[k,l])=A(:,[l,k]); q([k,l])=q([l,k]); end A(k+1:n,k)=A(k+1:n,k)/A(k,k); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n); else error(’Matrix A ist singul¨ ar’) end end U=triu(A); L=tril(A,-1)+eye(n);

a(2) 22 det(A) = (−1)v1 a11 a(2) 32 a(2) 42

(2)

a23 (2) a33 (2) a43

(2)

a24 (2) a34 (2) a44

.

(2.39)

¨ Die Uberlegungen f¨ ur den ersten Eliminationsschritt u ¨bertragen sich sinngem¨aß auf die folgenden reduzierten Systeme bzw. ihre zugeh¨origen Determinanten. So existiert min(2) destens ein aj2 6= 0 j = 2(1)4, da anderenfalls die dreireihige Determinante in (2.39) und damit det(A) verschwinden w¨ urde. Eine Vertauschung der j-ten Zeile mit der zweiten Zeile bringt an die Position (2,2) ein Pivotelement ungleich Null. 

62 Programm 2.4

Kapitel 2 Lineare Gleichungssysteme Linearer Gleichungsl¨ oser

function x=lingl(A,b,typ) % % A: (n x n)-Matrix % b: n-dim-Vektor % typ: String mit == ’pur’ ohne Pivotisierung % ’part’ mit partieller Pivotisierung % ’voll’ mit vollst¨ andiger Pivotisierung % ’chol’ mit Cholesky-Verfahren % % x: L¨ osung des linearen Gleichungssystems A * x = b % global p q n=length(b); x=zeros(n,1);z=x; if strcmp(typ,’chol’) [L,ind]=cholesky(A); if ind ~= 1 error(’Gleichungssystem nicht mit Cholesky-Verfahren l¨ osbar’) end U=L’; for k=1:n z(k)=(b(k)-L(k,1:k-1)*z(1:k-1))/L(k,k); end else switch typ case ’pur’ [L,U]=lupur(A); case ’part’ [L,U,p]=luppart(A); b=b(p); case ’voll’ [L,U,p,q]=lupvoll(A); b=b(p); otherwise error(’typ kann nur ’’pur’’, ’’part’’, ’’voll’’ oder ’’chol’’ sein’) end for k=1:n z(k)=b(k)-L(k,1:k-1)*z(1:k-1); end end for k=n:-1:1 x(k)=(z(k)-U(k,k+1:n)*x(k+1:n))/U(k,k); end if strcmp(typ,’voll’),x(q)=x;end

2.3 Pivot-Strategien und Nachiteration

63

Wenn wir mit ukk , k = 1, . . . , n − 1, das nach einem eventuellen Zeilentausch im k-ten Eliminationsschritt verwendete, in der Diagonalen stehende Pivotelement und mit unn das Pivot f¨ ur den leeren n-ten Schritt bezeichnen, dann ergibt sich als unmittelbare Folge aus dem Satz 2.3 der Satz 2.4. Satz 2.4. Sind im Verlauf der LU -Faktorisierung (siehe Algorithmus 2.2) insgesamt Pn−1 v ≡ i=1 vi Zeilenvertauschungen erforderlich, dann bestimmt sich die Determinante zu Qn det(A) = (−1)v k=1 ukk . (2.40)

Somit kann der Wert der Determinante von A als Nebenprodukt bei der LU -Faktorisierung bestimmt werden. Sind keine Zeilenvertauschungen erforderlich, dann ergibt sich wegen det(L) = 1: det(A) = det(L U ) = det(L) det(U ) =

n Y

ukk .

k=1

Bemerkung 2.5. Der numerische Nachweis der Singularit¨at bzw. Nichtsingularit¨at einer Matrix A sollte niemals u uhrt werden. Die Multiplikation ¨ber die Determinante gef¨ von Ax = b mit einem beliebigen skalaren Faktor α 6= 0 f¨ uhrt n¨amlich zu einer Koeffizientenmatrix, deren Determinante sich wie folgt bestimmt: det(α A) = αn det(A). Somit kann man aus einer Matrix mit einer kleinen Determinante stets eine Matrix mit einer beliebig großen Determinante erzeugen und umgekehrt − ohne etwas an der linearen Abh¨ angigkeit oder Unabh¨ angigkeit der Spaltenvektoren von A zu ver¨andern. Die Determinante ist aus der Sicht der Numerischen Mathematik nur als invariante Boolesche Gr¨ oße interessant, f¨ ur die in exakter Arithmetik gilt det(A) = 0 oder

det(A) 6= 0.

F¨ ur das Erkennen von Matrizen, deren Abstand zu einer Matrix mit exaktem Rangabfall sehr klein ist (sogenannte fastsingul¨ are Matrizen ), m¨ ussen andere mathematische Hilfsmittel, wie zum Beispiel die Singul¨ arwertzerlegung 1 , herangezogen werden. Siehe hierzu auch die Bemerkung 2.8 (S. 80).  Werden bei der Gauß-Elimination keine Zeilen- oder Spaltenvertauschungen durch(k) gef¨ uhrt, d.h., das Diagonalelement akk der jeweiligen Matrix A(k) ist in jedem Fall das Pivot, dann spricht man von einer Diagonalstrategie. Diese Diagonalstrategie ist bei einigen Spezialf¨ allen linearer Gleichungssysteme anwendbar und sogar sinnvoll. Einen solchen Spezialfall wollen wir an dieser Stelle darstellen. 1

Siehe u.a. G. H. Golub and C. F. Van Loan: Matrix Computations. The Johns Hopkins University Press, Baltimore and London, 1996

64

Kapitel 2 Lineare Gleichungssysteme

Definition 2.8. Eine Matrix A ∈ Rn×n heißt strikt diagonal-dominant, wenn f¨ ur ihre Elemente aij gilt: |aii | >

n X

|aik |,

i = 1, . . . , n.

(2.41)

k=1 k6=i



Die Diagonalstrategie erweist sich f¨ ur strikt diagonal-dominante Matrizen als sachgem¨ aß, wie der folgende Satz zeigt. Satz 2.5. Ist A ∈ Rn×n eine strikt diagonal-dominante Matrix, dann ist die Diagonalstrategie stets anwendbar. Beweis: Nach Voraussetzung ist |a11 | >

n X

|a1k | ≥ 0.

k=2

Damit stellt a11 6= 0 ein zul¨ assiges Pivotelement dar. Es soll gezeigt werden, daß sich die Eigenschaft der Diagonaldominanz auf das reduzierte Gleichungssystem u ¨bertr¨agt. Man berechnet: li1 =

ai1 ai1 a1k (2) ⇒ aik = aik − li1 · a1k = aik − , a11 a11

i, k = 2, . . . , n.

(2.42)

F¨ ur die Diagonalelemente (k = i) folgt daraus die Absch¨atzung: (2)

|aii | = |aii −

ai1 a1i ai1 a1i | ≥ |aii | − | |, a11 a11

i = 2, . . . , n.

(2.43)

Die Summe der Betr¨ age der Außendiagonalelemente der i-ten Zeile (i = 2, . . . , n) des reduzierten Systems erf¨ ullt unter Beachtung der Voraussetzung (2.41) die Ungleichung n X

(2)

|aik |

=

k=2 k6=i

n X k=2 k6=i

=

n X k=1 k6=i

n

|aik −

k=2 k6=i

k=2 k6=i

(

n ai1 X |aik | − |ai1 | + | | |a1k | − |a1i | a11

)

k=2

< |aii | − |ai1 | + | (2)

n

X ai1 a1k ai1 X |≤ |aik | + | | |a1k | a11 a11

(2)

ai1 ai1 a1i (2) | {|a11 | − |a1i |} = |aii | − | | ≤ |aii |. a11 a11

Folglich steht mit a22 , wegen |a22 | >

n X

(2)

|a2k | ≥ 0, ein geeignetes Pivotelement zur

k=3

Verf¨ ugung und die Diagonalstrategie ist tats¨ achlich anwendbar.



2.3 Pivot-Strategien und Nachiteration

65

¨ Uber die garantierte Durchf¨ uhrbarkeit der Gauß-Elimination ohne Zeilenvertauschungen hinaus ist f¨ ur diagonal-dominante Matrizen bekannt, daß die Gauß-Elimination ohne Pivotisierung ein perfekt stabiles Verfahren ist. Insbesondere gilt hier f¨ ur den im Abschnitt 2.5 definierten Wachstumsfaktor %pn ≤ 2, d.h., die transformierten Matrixelemente wachsen w¨ ahrend des Eliminationsprozesses nicht an.1 Eine andere Klasse von Matrizen, f¨ ur die die Diagonalstrategie problemlos durchf¨ uhrbar ist, stellen die symmetrischen, positiv definiten Matrizen dar (siehe auch Abschnitt 2.4). Im folgenden wollen wir zeigen, daß selbst die Spaltenpivotisierung nicht in jedem Fall zu einem vern¨ unftigen Ergebnis f¨ uhrt. Zur Demonstration betrachten wir das Beispiel 2.5. 0.3000 · 102 x1 0.5291 · 101 x1

0.5914 · 106 x2 0.6130 · 101 x2

+ −

0.5917 · 106 0.4678 · 102 .

= =

(2.44)

Die exakte L¨ osung dieses Problems lautet x1 = 10 und x2 = 1. Bei partieller Pivotisierung ist offensichtlich kein Zeilentausch erforderlich. Als erster Multiplikator ergibt sich bei 4-stelliger Rechnung (R = R(10, 4, 20, 20) sowie der Rundungsvorschrift (1.47)): l21 =

0.5291 · 101 = 0.1764 · 100 0.300 · 102

(klein!)

Damit erh¨ alt man das gestaffelte System 0.3000 · 102 x1

+ 0.5914 · 106 x2 − 0.1043 · 106 x2

= =

0.5917 · 106 −0.1044 · 106 .

Die R¨ uckw¨ arts-Substitution ergibt: x2 = 0.1001 · 101 und x1 = −0.1000 · 102 . Offensichtlich ist dieses Resultat falsch!



Die Ursache f¨ ur das Versagen der partiellen Pivotisierung im obigen Beispiel l¨aßt sich leicht feststellen: Der Betrag des Pivotelementes ist zu klein im Vergleich zum Maximum der Betr¨ age der u uhrt bei der Rechnung ¨brigen Matrixelemente in der ersten Zeile. Dies f¨ zu einem Verlust an geltenden Stellen. Mit einer einfachen Maßnahme kann man dem abhelfen. Die Gleichungen werden am Anfang der Rechnung so skaliert, daß f¨ ur die resultierenden Koeffizienten a ˆik gilt: n X

|ˆ aik | = 1,

i = 1, . . . , n.

(2.45)

k=1 1

Siehe zum Beispiel das Buch von N. J. Higham: Accuracy and Stability of Numerical Algorithms. SIAM, Philadelphia, 1996

66

Kapitel 2 Lineare Gleichungssysteme

Dies erreicht man dadurch, daß f¨ ur jede Gleichung des Systems die Summe der Betr¨ age der Matrixelemente (der Skalenfaktor ) gebildet und anschließend jede Gleichung durch den zugeh¨ origen Skalenfaktor dividiert wird. Offensichtlich erzeugt diese Skalierung Matrixelemente a ˆik , f¨ ur die |ˆ aik | ≤ 1, i, k = 1, . . . , n, gilt. Insbesondere f¨ uhrt sie in Kombination mit der Spalten-Pivotisierung zu einer Vorschrift, mit der das richtige“ ” Pivotelement bestimmt wird (ohne die aufwendige vollst¨andige Pivotisierung verwenden zu m¨ ussen). Wir wollen dies anhand des folgenden Beispiels demonstrieren. Beispiel 2.6. Das Gleichungssystem sowie die Menge der zugrundeliegenden Maschinenzahlen seien wie im vorangegangenen Beispiel gegeben. Aus der Anwendung der Vorschrift (2.45) auf das lineare System (2.44) resultiert das skalierte Problem 0.5073 · 10−4 x1 0.4633 · 100 x1

+ 0.1000 · 101 x2 − 0.5368 · 100 x2

= =

0.1001 · 101 0.4095 · 101

Faktor 0.5914 · 106 Faktor 0.1142 · 102 .

Wendet man nun darauf die partielle Pivotisierungsstrategie an, dann ist − anders als beim urspr¨ unglichen System − ein Zeilentausch erforderlich: 0.4633 · 100 x1 0.5073 · 10−4 x1

− +

0.5368 · 100 x2 0.1000 · 101 x2

= =

0.4095 · 101 0.1001 · 101 .

Der zugeh¨ orige Multiplikator berechnet sich jetzt zu l21 =

0.5073 · 10−4 = 0.1095 · 10−3 , 0.4633 · 100

und das gestaffelte System lautet: 0.4633 · 100 x1

− 0.5368 · 100 x2 + 0.1000 · 101 x2

= =

0.4096 · 101 0.1001 · 101 .

Schließlich ergibt sich mit der R¨ uckw¨ arts-Substitution eine vern¨ unftige Approximation der exakten L¨ osung zu x2 = 0.1001 · 101

und

x1 = 0.9998 · 101 .



Die Skalierung der Ausgangsgleichungen gem¨aß (2.45) u urlich nicht ¨bertr¨agt sich nat¨ immer auf die Gleichungen der reduzierten Systeme, so daß der f¨ ur den ersten Schritt g¨ unstige Einfluß auf die Spalten-Pivotisierung in den sp¨ateren Eliminationsschritten verlorengehen kann. Deshalb sollten eigentlich alle reduzierten Systeme stets wieder skaliert werden. Da sich der Rechenaufwand hierdurch etwa verdoppelt und jede Skalierung wieder Rundungsfehler nach sich zieht, f¨ uhrt man die Skalierung in der Praxis nur implizit durch. Unter den in Frage kommenden Elementen bestimmt man dasjenige

2.3 Pivot-Strategien und Nachiteration

67

zum Pivot, welches dem Betrag nach, relativ zur Summe der Betr¨age der Elemente der zugeh¨ origen Zeile, am gr¨ oßten ist. Man spricht in diesem Falle von einer relativen Spaltenpivotisierung 1 , die sich wie folgt darstellt: Vor Ausf¨ uhrung des k-ten Schrittes wird ein Index p so bestimmt, daß gilt: ( max

k≤i≤n

(k)

|aik | Pn

(k)

j=k

|aij |

)

(k)

|apk | = Pn . (k) j=k |apj |

(2.46)

Ist p 6= k, dann wird die p-te Zeile mit der k-ten Zeile vertauscht. Man beachte: Die Zahlen lik , i > k, sind jetzt nicht mehr betragsm¨aßig durch Eins beschr¨ ankt! In den Naturwissenschaften und der Technik treten h¨aufig Problemstellungen auf, bei denen die L¨ osungen mehrerer Gleichungssysteme mit ein und derselben Koeffizientenmatrix A ∈ Rn×n gesucht sind, d.h., die Systeme unterscheiden sich nur in der jeweiligen rechten Seite b ∈ Rn . Sind etwa m solche Gleichungssysteme mit den rechten Seiten b(1) , . . . , b(m) zu l¨ osen, dann faßt man diese m Vektoren zu einer Matrix B ≡ b(1) , b(2) , . . . , b(m) ∈ Rn×m zusammen. Zu bestimmen ist jetzt eine Matrix X ≡ (x(1) , . . . , x(m) ) ∈ Rn×m als L¨ osung der Matrizengleichung A X = B.

(2.47)

In den g¨ angigen Programmpaketen zur Numerischen Mathematik sind fast alle Implementierungen der Gauß-Elimination auf die L¨osung von Matrizensystemen der Form (2.47) ausgerichtet. Dabei wird die LU -Faktorisierung nur einmal bestimmt. Liegt sie vor, dann wird f¨ ur jede der verschiedenen rechten Seiten b(k) nur noch eine Vorw¨artsund eine R¨ uckw¨ arts-Substitution ausgef¨ uhrt, um den k-ten Spaltenvektor der L¨osungsmatrix X zu berechnen. In algorithmischer Formulierung k¨onnen wir dies, wie im Algorithmus 2.4 angegeben, aufschreiben. Der Rechenaufwand bestimmt sich zu 2n3 /3 + 2mn2 flops. Die obige Vorgehensweise findet speziell Anwendung bei der Invertierung einer regul¨aren Matrix A. Da die gesuchte Inverse X ≡ A−1 die Beziehung A X = I;

I − Einheitsmatrix der Dimension n

(2.48)

erf¨ ullt, l¨ aßt sich diese wie folgt effektiv und numerisch stabil berechnen. Bezeichnen x(1) , . . . , x(n) die Spaltenvektoren von X ∈ Rn×n , d.h., X = [x(1) , . . . , x(n) ], und sind e(1) , . . . , e(n) die Einheitsvektoren im Rn , dann f¨ uhrt man die numerische Bestimmung 1

Siehe zum Beispiel das Buch von Schwarz, H. R. und K¨ ockler, N.: Numerische Mathematik. Vieweg + Teubner, Wiesbaden 2009

68

Kapitel 2 Lineare Gleichungssysteme

Gauß-Elimination f¨ ur AX = B 1. Schritt:

Berechne

A = LU

2. Schritt:

for i = 1 : m L¨ ose L z (i) = b(i) L¨ ose U x(i) = z (i) end

Algorithmus 2.4: Gauß-Elimination f¨ ur AX = B

von A−1 auf die Berechnung von n linearen Gleichungssystemen mit ein und derselben Systemmatrix A zur¨ uck: Ax(i) = e(i) ,

i = 1, . . . , n.

(2.49)

Somit braucht auch hier die LU -Faktorisierung von A nur einmal berechnet zu werden (mit dem u ¨blichen Aufwand von 2/3 n3 flops). Damit ergibt sich ein Gesamtaufwand f¨ ur die Invertierung von 8/3 n3 flops. Auch bei der Berechnung von Ausdr¨ ucken der Form y = CA−1 Dx,

(2.50)

wobei C, A, D ∈ Rn×n und x ∈ Rn gegeben sind, sollte man niemals die Inverse von A explizit bestimmen. Dies trifft insbesondere f¨ ur Bandmatrizen zu, da durch eine Invertierung die spezielle Struktur der Matrix zerst¨ort und damit der Rechenaufwand enorm ansteigen w¨ urde. Außerdem ist es sachgem¨aß, den Vektor y von rechts nach links, d.h. niemals von innen heraus, zu berechnen. Eine vern¨ unftige algorithmische Umsetzung der obigen Formel ist im Algorithmus 2.5 angegeben. Die bisher betrachteten Varianten der LU -Faktorisierung garantieren nicht, daß die mit ihnen berechnete numerische L¨ osung x ˜ die jeweils geforderte Genauigkeit besitzt. Wir wollen deshalb der Frage nachgehen, ob sich x ˜ ohne großen zus¨atzlichen Aufwand (< O(n3 ) flops) noch nachtr¨ aglich verbessern l¨aßt. Eine genauere Approximation erh¨alt man sicher dann, wenn die Rechnung noch einmal mit vergr¨oßerter Mantissenl¨ange durchgef¨ uhrt wird. Offensichtlich gehen dabei aber alle Informationen, die w¨ahrend der Gauß-Elimination f¨ ur x ˜ bereits erhalten wurden, verloren. Des weiteren erweist sich der hierzu erforderliche Aufwand als zu groß, da nochmals O(n3 ) flops ben¨otigt werden. Eine wesentlich g¨ unstigere Strategie ist unter dem Namen Nachiteration bekannt und soll im Anschluß an die folgende Definition erl¨autert werden.

2.3 Pivot-Strategien und Nachiteration

69

Realisierung von (2.50) 1. Schritt: Bilde u = Dx. 2. Schritt: Berechne den Hilfsvektor v mittels Gauß-Elimination aus dem linearen Gleichungssystem A v = u. 3. Schritt: Bilde y = Cv.

Algorithmus 2.5: Realisierung der Vorschrift (2.50)

Definition 2.9. Bezeichnet x ∈ Rn die exakte L¨osung des Gleichungssystems (2.1) und ist x ˜ ∈ Rn eine N¨ aherung f¨ ur x, dann sei der zu x ˜ geh¨orende Residuenvektor r(˜ x ) ∈ Rn wie folgt definiert: r(˜ x) ≡ b − A x ˜ = A (x − x ˜). Oftmals wird f¨ ur r(˜ x) auch die k¨ urzere Bezeichnung Residuum verwendet.

(2.51) 

Es sei nun x(0) ≡ x ˜ die mittels der Gauß-Elimination berechnete Approximation der exakten L¨ osung x von (2.1). 4x(0) ∈ Rn m¨ oge einen Korrekturvektor bezeichnen, f¨ ur den gilt: x = x(0) + 4x(0) .

(2.52)

Setzt man diesen Ausdruck in (2.1) ein, so resultiert Ax = Ax(0) + A 4 x(0) = b bzw.

A 4 x(0) = b − Ax(0) = r(x(0) ).

Die Korrektur 4x(0) erf¨ ullt somit das lineare Gleichungssystem A 4 x(0) = r(x(0) ).

(Korrekturgleichung)

(2.53)

Die Koeffizientenmatrix von (2.53) ist die gleiche wie beim urspr¨ unglichen System (2.1), so daß zur Berechnung von 4x(0) die bereits bestimmte LU -Faktorisierung der Matrix A verwendet werden kann. Da die numerische L¨osung der Korrekturgleichung (2.53) ˜ (0) wegen der nicht zu vermeidenden Rundungsfehler nur zu einer Approximation 4x (0) von 4x f¨ uhrt, erh¨ alt man nach (2.52) ein ˜ (0) , x(1) ≡ x(0) + 4x mit x(1) 6= x. Trotzdem wird die N¨ aherungsl¨ osung x(1) i.allg. eine bessere Approxima−1 (0) tion von x = A b darstellen, als dies mit x der Fall ist. Die Idee der Nachiteration

70

Kapitel 2 Lineare Gleichungssysteme

(engl.: iterative refinement“) besteht nun darin, diesen Prozeß solange zu wiederholen, ” bis die Iterierte x(i) die exakte L¨ osung hinreichend genau approximiert. Mit der im Programm 2.5 dargestellten Matlab-Funktion nachit liegt eine Implementierung der Nachiteration vor. Programm 2.5

Nachiteration

function [x,i,ind] = nachit(x0,A,b,L,U,TOL1,TOL2,N0) % % x0: N¨ aherung f¨ ur x=inv(A)*b % A: Systemmatrix des Gleichungssystems % b: rechte Seite des Gleichungssystems % L,U: Faktoren der LU-Faktorisierung von A % TOL1 und TOL2: Toleranzen % N0: maximale Iterationsschrittanzahl % % x: letzte Iterierte; i: ben¨ otigte Anzahl an Iterationen % ind: Information ¨ uber den Rechenverlauf, mit % ind=1: Verfahren konvergiert, ’L¨ osung’ x ist berechnet, % ind=2: maximale Iterationsschrittanzahl N0 ¨ uberschritten % x=x0; i=0; while i < N0 r=b-A*x; if norm(r) < TOL1*(1+norm(b)) % x ist ’L¨ osung’ ind=1; return end % L¨ osung des linearen Gleichungssystems A*w=r % unter Verwendung der LU-Faktorisierung von A w=L\r; w=U\w; if norm(w) < TOL2*(1+norm(x)) % x ist ’L¨ osung’ ind=1; return end i=i+1; x=x+w; end % maximale Iterationsschrittanzahl N0 ¨ uberschritten ind=2;

Wie man leicht nachrechnet, betr¨ agt der Aufwand f¨ ur die Nachiteration O(n2 ) flops pro Iterationsschritt. Da in der Praxis i.allg. nur einige Schritte der Nachiteration zum Erreichen der geforderten Genauigkeit ben¨ otigt werden, ist der zus¨atzliche Rechenaufwand gering im Vergleich zu den O(n3 ) flops f¨ ur die LU -Faktorisierung der Matrix A. Bemerkung 2.6. Bei einer verbesserten Implementierung der Nachiteration sollte das Residuum mit doppelter Mantissenl¨ ange berechnet werden, um m¨oglichen Ausl¨ oschungen vorzubeugen. Nach der Bestimmung des Residuenvektors kann wieder auf die standardm¨ aßig verwendete Genauigkeit gerundet werden. Wie sich die Nachiteration realisieren l¨ aßt, wenn der verwendete Computer keine Zahlendarstellung mit doppelter

2.4 Systeme mit speziellen Eigenschaften

71

¨ Mantissenl¨ ange erm¨ oglicht, ist der Ubungsaufgabe 2.1 zu entnehmen.



Die Konvergenz der Nachiteration wird im Abschnitt 2.6.1 eingehend untersucht.

2.4 2.4.1

Systeme mit speziellen Eigenschaften Positiv definite Systeme

In diesem Abschnitt betrachten wir eine f¨ ur die Anwendungen wichtige Klasse von Matrizen A ∈ Rn×n , bei denen der Aufwand f¨ ur die LU -Faktorisierung betr¨achtlich reduziert werden kann. Es handelt sich dabei um einen Spezialfall symmetrischer Matrizen (wie u ¨blich wird eine Matrix A symmetrisch genannt, wenn A = AT gilt), wie aus der folgenden Definition zu ersehen ist. Definition 2.10. Eine symmetrische Matrix A heißt positiv definit , falls die zugeh¨orige quadratische Form QA (x) positiv definit ist, d.h., falls gilt:

T

QA (x) ≡ x Ax =

Pn

i=1

Pn

k=1 aik xi xk



≥ =

0 0

∀x ∈ Rn , ⇔ x = 0.

(2.54) 

Aus der linearen Algebra sind die folgenden notwendigen und hinreichenden Bedingungen f¨ ur die positive Definitheit einer Matrix A bekannt: • Die Determinanten aller f¨ uhrenden Hauptuntermatrizen von A sind positiv. Dabei versteht man unter einer f¨ uhrenden Hauptuntermatrix eine Matrix der Form   a11 a12 · · · a1k a21 a22 · · · a2k    k = 1, . . . , n; (2.55)  .. , ..  . . ... ak1 ak2 · · · akk • Alle Eigenwerte von A sind positiv; • A l¨ aßt sich mittels Gauß-Transformationen Lk in eine obere 4-Matrix mit positiven Diagonalelementen u uhren; ¨berf¨ • Die Cholesky-Faktorisierung (2.61) von A ist in exakter Arithmetik durchf¨ uhrbar. Es sollen nun einige notwendige Bedingungen f¨ ur die positive Definitheit von A angegeben werden, mit deren Hilfe man oftmals sehr schnell ausschließen kann, daß eine vorliegende Matrix positiv definit ist. Hierzu wird das folgende Resultat ben¨otigt.

72

Kapitel 2 Lineare Gleichungssysteme

Satz 2.6. Ist A ∈ Rn×n positiv definit und besitzt X ∈ Rn×k den Rang k, dann ist auch die Matrix B ≡ X T AX ∈ Rk×k positiv definit. Beweis: Mit z ∈ Rk berechnet sich die quadratische Form von B zu QB (z) = z T Bz = z T X T AXz = (Xz)T A(Xz). Da A positiv definit ist, gilt QB (z) ≥ 0. Im Falle QB (z) = 0 ist Xz = 0, woraus wegen des vollen Spaltenranges von X sofort z = 0 folgt.  Im folgenden Satz sind vier notwendige Bedingungen f¨ ur die positive Definitheit einer Matrix A genannt. Satz 2.7. F¨ ur jede positiv definite Matrix A ∈ Rn×n gilt: •

A ist invertierbar;

(2.56)



aii > 0 f¨ ur i = 1, . . . , n;

(2.57)



maxi,j=1,...,n |aij | = maxi=1,...,n aii ;

(2.58)



Bei der Gauß-Elimination ohne Pivotsuche ist jede Restmatrix wiederum positiv definit.

(2.59)

Beweis: 1) Es werde angenommen, A ist nicht invertierbar. Dann existiert ein x 6= 0 mit Ax = 0. Dies f¨ uhrt aber auf xT Ax = 0 f¨ ur x 6= 0, was einen Widerspruch zur Voraussetzung (2.54) darstellt. 2) Setzt man in (2.54) f¨ ur x den Einheitsvektor ei ∈ Rn ein, so folgt QA (ei ) ≡ eTi Aei = aii > 0, 3)

da ei 6= 0.

¨  Die dritte Aussage ist als Ubungsaufgabe zu zeigen!

4) Es werde die symmetrische Matrix A = A(1) in der Form " # a11 z T (1) A = , mit z = (a12 , . . . , a1n )T , z B (1) geschrieben. Nach dem ersten Transformationsschritt mit der Gauß-Transformation L1 ergibt sich   a11 z T     A(2) = L1 A(1) =  0.  , wobei L1 = I − l1 eT1 , l1 = (0, l21 , . . . , ln1 )T .  .. (2)  B 0

2.4 Systeme mit speziellen Eigenschaften

73

Multipliziert man nun die Matrix A(2) von rechts mit LT1 , so wird in der ersten Zeile auch z T eliminiert; die Matrix B (2) bleibt jedoch unver¨ andert, d.h., 

a11

  L1 A(1) LT1 =  0.  .. 0

0···0



B (2)

  . 

Nach Satz 2.6 ist die Matrix L1 ALT1 ebenfalls positiv definit. Dies muß dann aber auch auf die Blockmatrix B (2) zutreffen.  Offensichtlich besagen (2.58) und (2.59), daß bei der LU -Faktorisierung von positiv definiten Matrizen A die Diagonalstrategie f¨ ur die Wahl der Pivotelemente sachgem¨aß ist. Eine vollst¨ andige oder partielle Pivotisierung w¨ urde i.allg. zur Zerst¨orung der Struktur von A f¨ uhren. Aus der obigen Darstellung l¨ aßt sich die sogenannte rationale Cholesky 1 -Faktorisierung ableiten, die durch den folgenden Satz begr¨ undet wird. Satz 2.8. Jede positiv definite Matrix A ∈ Rn×n kann eindeutig in der Form A = L D LT ,

(2.60)

dargestellt werden, wobei L eine untere 1-4-Matrix und D eine positive Diagonalmatrix ist. Beweis: Man setzt f¨ ur k = 2, . . . , n − 1 die im Beweis von Satz 2.7(4.) angegebene −1 Konstruktion fort und erh¨ alt so unmittelbar L ≡ L−1 1 · · · Ln−1 . Des weiteren ist D die Diagonalmatrix der Pivotelemente (Diagonalstrategie!).  Wie man sich einfach davon u ur die Faktorisierung (2.60) asym¨berzeugen kann, sind f¨ ptotisch n3 /3 flops erforderlich, d.h. nur etwa die H¨alfte des Aufwandes der LU -Faktorisierung. Eine in der Praxis h¨ aufiger verwendete Faktorisierung positiv definiter Matrizen ist die traditionelle Cholesky-Faktorisierung. Sie l¨ aßt sich aus dem Satz 2.8 als eine direkte Folgerung ableiten. Folgerung 2.1. Da die Diagonalelemente der Matrix D ≡ diag(d1 , . . . , dn ) echt positiv √ √ 1 sind, existiert D 2 = diag( d1 , . . . , dn ). Damit l¨ aßt sich die Formel (2.60) auch in der Form A = G GT 1

Andr´ e-Louis Cholesky (1875–1918), franz¨ osischer Mathematiker

(2.61)

74

Kapitel 2 Lineare Gleichungssysteme 1

schreiben, wobei G die untere 4-Matrix G ≡ L D 2 bezeichnet (man beachte, daß die Matrix G jetzt keine 1-4-Matrix mehr ist!).  Der Weg, die untere 4-Matrix G = (gij ) aus der LDLT -Faktorisierung zu berechnen, ist nicht zwangsl¨ aufig. Sie kann auch direkt nach der folgenden Rechenvorschrift bestimmt werden:

for

k=1:n gkk = (akk − for

Pk−1 j=1

1

2 2 gkj )

i=k+1:n gik =

aik −

Pk−1 j=1

gij gkj

(2.62)

gkk

end end Diese Vorschrift folgt unmittelbar aus der elementweisen Auswertung von (2.61):      g11 g11 · · · gn1 a11 · · · an1  ..  ..  =  .. ..  . .. .. (2.63)  .  . . .   . .  gn1 · · · gnn gnn an1 · · · ann 2 2 2 F¨ ur i = k ergibt sich: akk = gk1 + · · · + gk,k−1 + gkk .

F¨ ur i > k ergibt sich: aik = gi1 gk1 + · · · + gi,k−1 gk,k−1 + gik gkk . Im Programm 2.6 ist die Implementierung des Verfahrens (2.62) als Matlab-Funktion cholesky dargestellt. Auf der Basis der GGT -Faktorisierung lassen sich nun lineare Systeme Ax = b mit positiv definiter Matrix A wie folgt l¨ osen. Substituiert man die Faktorisierung (2.61) in (2.2), so ergibt sich GGT x = b. Mit z ≡ GT x erfolgt dann die Aufl¨osung des linearen Gleichungssystems Ax = b mit dem sogenannten Cholesky-Verfahren analog der Gauß-Elimination (siehe Algorithmus 2.1) in drei Schritten, wie dem Algorithmus 2.6 zu entnehmen ist. Im Programm 2.4 (siehe Abschnitt 2.3) ist auch die L¨osung eines linearen Gleichungssystems mit positiv definiter Systemmatrix A unter Verwendung der Cholesky-Faktorisierung vorgesehen. Die Cholesky-Faktorisierung erfordert neben der Ausf¨ uhrung der Grundrechenoperationen auch die Bestimmung von n Quadratwurzeln, w¨ahrend die Gauß-Elimination ein rein rationaler Prozeß ist. Der Vorteil der Cholesky-Zerlegung besteht jedoch in der Ausnutzung der in A vorliegenden Symmetrie. Wie sich dies im Rechenaufwand niederschl¨ agt, ergibt die folgende Aufwandsbetrachtung:

2.4 Systeme mit speziellen Eigenschaften Programm 2.6

75

Traditionelle Cholesky-Faktorisierung

function [G,ind]=cholesky(A) % % A zu faktorisierende Matrix % % G Cholesky-Matrix % ind=1 Berechnung erfolgreich % ind=2 Fehler bei Berechnung % Wurzel aus negativer Zahl oder Dimensionsfehler % [n,k]=size(A); ind=1; if n ~= k, ind=2; return, end for k=1:n if A(k,k) 0. kej k kej k

2) Es gilt auf Grund der Eigenschaft 2 einer Vektornorm (siehe (2.77)) kλ Ak = max kλ Axk = |λ| max kAxk = |λ kAk. kxk=1

kxk=1

88

Kapitel 2 Lineare Gleichungssysteme

3) Wir haben kA + Bk

max k(A + B) xk ≤ max {kA xk + kB xk}

=

kxk=1

kxk=1

max kA xk + max kB xk = kAk + kBk.

=

kxk=1

kxk=1

4) Um die Submultiplikativit¨ at nachzuweisen, werde A 6= 0 und B 6= 0 vorausgesetzt. Anderenfalls ist (2.85) trivial erf¨ ullt. Dann gilt kA Bk



max x6=0

kAB xk kA(Bx)k kBxk = max x6=0 kxk kBxk kxk Bx6=0



max

Bx6=0

kA(Bx)k kBxk kAyk kBxk · max = max · max = kAk kBk. x6=0 kxk y6=0 kyk x6=0 kxk kBxk

Die Vertr¨ aglichkeit der so definierten Matrixnorm mit der gegebenen Vektornorm ist eine direkte Folge der Definition (2.90). Die letzte Behauptung ist offensichtlich, da ein Vektor x 6= 0 existiert, mit kAxk = kAk kxk.  Gem¨ aß der Definition 2.13 ist die der Maximumnorm kxk∞ zugeordnete Matrixnorm kAk∞ gegeben durch   n o kAk∞ ≡ max kAxk∞ = max max |(Ax)i | = max max |(Ax)i | kxk∞ =1

kxk∞ =1

i

i

kxk∞ =1

(2.91)

n ) n X X aik xk = max |aik | = kAkZ . = max max i i kxk∞ =1 (

k=1

k=1

In der obigen Berechnung wurde ausgenutzt, daß sich die beiden Maximierungsprozesse vertauschen lassen (was jedoch nicht f¨ ur eine Kombination aus Maximierung und Minimierung zutreffen w¨ urde). Des weiteren wurde auf die Tatsache zur¨ uckgegriffen, Pn daß sich das Maximum von | k=1 aik xk | f¨ ur fixiertes i und kxk∞ = 1 dadurch ergibt, indem man xk = +1 im Falle von aik ≥ 0 und xk = −1 im Falle von aik < 0 setzt. Analog ergibt sich aus (2.90) f¨ ur kxk1 die Spaltensummennorm kAkS . Wir wollen jetzt die zur Euklidischen Vektornorm kxk2 zugeh¨orige nat¨ urliche Matrixnorm kAk2 herleiten. Aus (2.90) folgt 1

1

kAk2 ≡ max kAxk2 = max {(Ax)T (Ax)} 2 = max {xT AT Ax} 2 . kxk2 =1

kxk2 =1

kxk2 =1

AT A ist symmetrisch und positiv semidefinit, da QAT A (x) = xT (AT A)x ≥ 0 f¨ ur alle x 6= 0 ∈ Rn . Somit sind die Eigenwerte λi von AT A reell und nichtnegativ. Die n Eigenvektoren x(1) , . . . , x(n) bilden eine vollst¨andige, orthonormierte Basis im Rn : AT Ax(i) = λi x(i) ,

λi ∈ R,

λi ≥ 0,

(x(i) )T x(j) = δij .

(2.92)

2.5 Genauigkeitsfragen, Fehlerabsch¨atzungen

89

Damit kann ein beliebiger Vektor x ∈ Rn in der Gestalt x=

n X

ci x(i)

(2.93)

i=1

dargestellt werden. Setzt man diese Darstellung in die quadratische Form ein, so ergibt sich   !T n n X X xT AT Ax = ci x(i) AT A  cj x(j)  i=1

=

j=1

 !T  n n n X X X  ci x(i) cj λj x(j)  = c2i λi . i=1

j=1

i=1

Die Eigenwerte λi seien ohne Beschr¨ ankung der Allgemeinheit der Gr¨oße nach geordnet: λ1 ≥ λ2 ≥ · · · ≥ λn ≥ 0. Aus der Beziehung kxk2 = 1 folgt

n X

c2i = 1. Deshalb berechnet sich

i=1

( kAk2 = max

kxk2 =1

n X

) 12 c2i λi

=

p λ1 .

i=1



Der maximal m¨ ogliche Wert σ1 ≡ λ1 wird offensichtlich f¨ ur x = x(1) mit c1 = 1 sowie c2 = · · · = cn = 0 angenommen. Damit sind wir zu folgendem Ergebnis gekommen: kAk2 ≡ max kAxk2 = σ1 , kxk2 =1

(2.94)

wobei σ1 die Wurzel aus dem gr¨ oßten Eigenwert von AT A bezeichnet. Die Norm kAk2 wird auch als Spektralnorm genannt. F¨ ur sp¨ atere Untersuchungen ist es erforderlich, nach der Spektralnorm der Inversen A−1 einer regul¨ aren Matrix A ∈ Rn×n zu fragen. Entsprechend der Formel (2.94) √ −1 gilt kA k2 = µ1 , wobei µ1 den gr¨ oßten Eigenwert von (A−1 )T A−1 = (AAT )−1 bezeichnet. Da aber eine inverse Matrix bekanntlich die reziproken Eigenwerte der urspr¨ unglichen Matrix besitzt, ist µ1 gleich dem Reziproken des kleinsten (positiven) Eigenwertes der (positiv definiten) Matrix AAT . Die Matrix AAT ist aber ¨ ahnlich zur Matrix AT A, denn es gilt A−1 (AAT )A = AT A, so daß AAT und AT A die gleichen Eigenwerte besitzen. Hieraus ergibt sich p kA−1 k2 = 1/ λn ,

90

Kapitel 2 Lineare Gleichungssysteme

wobei λn den kleinsten Eigenwert der Matrix AT A bezeichnet. Wird nun σn ≡ gesetzt, dann erhalten wir das Resultat kA−1 k2 = 1/σn .



λn

(2.95)

Bemerkung 2.8. Die Wurzeln σ1 ≥ · · · ≥ σn aus den Eigenwerten λ1 ≥ · · · ≥ λn der Matrix AT A werden auch als Singul¨ arwerte (engl.: singular values“) der Matrix A ” bezeichnet. Sie lassen sich numerisch mit der sogenannten Singul¨ arwertzerlegung (SVD) (engl.: singular value decomposition“) ermitteln. Ist σn sehr klein, dann wird die Ma” trix A numerisch singul¨ ar. Der kleinste Singul¨arwert beschreibt im wesentlichen den Abstand von A zur Klasse der singul¨ aren Matrizen. Die Singul¨arwerte sind deshalb zur Charakterisierung einer Matrix besser geeignet als die Determinante. Im folgenden Abschnitt wird diese Thematik noch etwas detaillierter beschrieben.  Bemerkung 2.9. Zur besseren Kennzeichnung des Zusammenhangs zwischen der Matrixnorm und ihrer erzeugenden Vektornorm werden wir im weiteren stets die Symbole k · k∞ und k · k1 anstelle von k · kZ und k · kS verwenden. 

2.5.2

Singul¨ arwertzerlegung, SVD

Bevor wir zur Beschreibung der eigentlichen Singul¨arwertzerlegung kommen, m¨ ussen noch einige Grundbegriffe eingef¨ uhrt werden. Dies ist insbesondere deshalb notwendig, da wir in diesem Abschnitt stets von einer Matrix A ∈ Rm×n ausgehen wollen, mit Dimensionszahlen m und n, die nicht notwendigerweise m = n erf¨ ullen. Gegeben sei eine Menge von n (Spalten-)Vektoren a1 , . . . , an ∈ Rm . Unter dem Span dieser Vektoren versteht man den linearen Teilraum, der durch a1 , . . . , an aufgespannt“ ” wird. Den Span symbolisiert man u ¨blicherweise durch die Schreibweise span{a1 , . . . , an } ≡ {x ∈ Rm : x = c1 a1 + · · · + cn an , ci ∈ R}.

(2.96)

Wenn wir [ a1 | · · · |an ] schreiben, dann verstehen wir darunter diejenige Matrix aus dem Rm×n , deren i-te Spalte mit dem Vektor ai u ¨bereinstimmt, i = 1, . . . , n. Es sei nun A = [ a1 | · · · | an ] eine Matrix im Rm×n . Der Wertebereich von A ist durch R(A) ≡ span{a1 , . . . , an }

(2.97)

definiert. Der Nullraum oder Kern von A ist durch N (A) ≡ {x ∈ Rn : Ax = 0} erkl¨ art.

(2.98)

2.5 Genauigkeitsfragen, Fehlerabsch¨atzungen

91

Der Rang einer Matrix ist gleich der maximalen Anzahl ihrer linear unabh¨angigen Spalten, d.h., rang(A) ≡ dim(R(A)).

(2.99)

Gilt f¨ ur eine Matrix A ∈ Rm×n die Beziehung rang(A) = min{m, n}, dann besitzt A Vollrang. Ist f¨ ur eine Matrix A ∈ Rm×m die Beziehung det(A) 6= 0 erf¨ ullt (d.h., rang(A) = m), dann spricht man von einer nichtsingul¨ aren (regul¨aren) Matrix. Die Matrix A = [ a1 | · · · | an ] ∈ Rm×n heißt spaltenorthogonal, wenn die Spalten von A paarweise orthonormal sind, d.h., aTi aj = δij ,

i, j = 1, . . . , n.

Ist n = m, dann spricht man von einer orthogonalen Matrix. Gilt n > m und ist AT spaltenorthogonal, dann bezeichnet man die Matrix als zeilenorthogonal. Unter einer Faktorisierung der Matrix A versteht man ihre Zerlegung in das Produkt einfacherer Matrizen. Solche Faktorisierungen sind bei praktischen Berechnungen mit Matrizen sehr n¨ utzlich, da durch sie die L¨ osung eines Problems sehr vereinfacht werden kann. In den vorangegangenen Abschnitten wurde die Zerlegung einer gegebenen Matrix in das Produkt einer unteren und einer oberen Dreiecksmatrix mittels gewisser Varianten der LU -Faktorisierung beschrieben. Wie wir gesehen haben, reduziert sich dann die L¨ osung eines linearen Gleichungssystems auf die Berechnung zweier zugeordneter Dreieckssysteme. Im Kapitel 3 wird die sogenannte QR-Faktorisierung betrachtet, bei der die Matrix als das Produkt einer orthogonalen Matrix und einer oberen Dreiecksmatrix dargestellt wird. Wir wollen jetzt zu einer weiteren Faktorisierung der Matrix A ∈ Rm×n kommen. Offensichtlich ist AT A ∈ Rn×n quadratisch und positiv semidefinit, da xT (AT A)x = kAxk22 ≥ 0 f¨ ur alle x ∈ Rn gilt. Dies impliziert wiederum, daß die Matrix AT A nur relle und nichtnegative Eigenwerte besitzt, die wie folgt angeordnet seien: λ1 ≥ λ2 ≥ · · · ≥ λn ≥ 0. Wir schreiben nun diese Eigenwerte in der Form λk = σk2 ,

σk ≥ 0.

(2.100)

Die Zahlen σ1 ≥ σ2 ≥ · · · ≥ σn ≥ 0 heißen Singul¨ arwerte von A.

(2.101)

92

Kapitel 2 Lineare Gleichungssysteme

Es gilt folgender Satz. Satz 2.12. ( Singul¨ arwertzerlegung) Es sei A ∈ Rm×n eine beliebige Matrix. Dann existieren zwei orthogonale Matrizen U = [ u1 | · · · | um ] ∈ Rm×m und V = [ v1 | · · · | vn ] ∈ Rn×n , so daß U T AV = Σ eine (m × n)-Diagonalmatrix der folgenden Form ist:   D 0 Σ= , D ≡ diag(σ1 , . . . , σr ), σ1 ≥ σ2 · · · ≥ σr > 0. 0 0 Die σ1 , . . . , σr stellen hierbei die nichtverschwindenden Singul¨ arwerte von A dar und r ist der Rang von A. Definition 2.14. Die Zerlegung der Matrix A A = U ΣV T

(2.102)

wird Singul¨ arwertzerlegung genannt. Abgeleitet von der englischen Bezeichnung singu” lar value decomposition“ wird sie h¨ aufig mit SVD abgek¨ urzt.  Beweis: Der Beweis basiert auf dem folgenden Resultat, das in den Standardtexten zur Linearen Algebra zu finden ist1 : • (Eigenwertzerlegung) Zu jeder reellen und symmetrischen Matrix A ∈ Rn×n gibt es eine orthogonale Matrix V ∈ Rn×n mit V T AV = Λ = diag(λ1 , . . . , λn ) ∈ Rn×n , wobei λ1 , . . . , λn die Eigenwerte von A sind. Wie wir bereits erw¨ ahnt haben, ist die Matrix AT A symmetrisch und positiv semidefinit. Damit ist die Voraussetzung der obigen Aussage (Eigenwertzerlegung) erf¨ ullt, d.h., es existiert eine orthogonale Matrix V = [ v1 | · · · |vn ] ∈ Rn×n , so daß die Beziehung V T (AT A)V = Λ = diag(λ1 , . . . , λn ),

λi ≥ 0

besteht. Ohne Beschr¨ ankung der Allgemeinheit k¨onnen wir davon ausgehen, daß λ1 ≥ · · · ≥ λr > 0, 1

λr+1 = · · · = λn = 0,

r ∈ {0, . . . , n}

Siehe z.B. die Monographie von A. Kielbasinski und H. Schwetlick: Numerische lineare Algebra. VEB Verlag der Wissenschaften, Berlin, 1988, Seite 36

2.5 Genauigkeitsfragen, Fehlerabsch¨atzungen

93

gilt. Aus der Eigenwertgleichung AT Avj = λj vj folgt unmittelbar λj = vjT AT Avj = kAvj k22 . Dies impliziert Avj 6= 0 f¨ ur j = 1, . . . , r Avj = 0 f¨ ur j = r + 1, . . . , n. Mit σj ≡

p λj

und uj ≡ Avj /σj ,

(j = 1, . . . , r)

ergibt sich f¨ ur i, j = 1, . . . , r uTi uj

1 T T λj T = vi A Avj = v vj = σi σj σi σj i



1, 0,

i=j . i 6= j

Die Vektoren {u1 , . . . , ur } bilden daher ein Orthonormalsystem und k¨onnen durch Hinzunahme weiterer Vektoren ur+1 , . . . , um ∈ Rm zu einer orthonormalen Basis des Rm erg¨ anzt werden. Die daraus resultierende Matrix U = [ u1 | · · · | um ] ∈ Rm×m ist somit orthogonal. Mit σr+1 = · · · = σn = 0 folgt wegen (U T AV )ij = uTi Avj =



σj uTi uj = σj , j = 1, . . . , r 0, j = r + 1, . . . , n

die gesuchte Beziehung U T AV = Σ.



Unter Verwendung des in der Definition 2.3 erkl¨arten dyadischen Produktes l¨aßt sich die Singul¨ arwertzerlegung (2.102) auch in der Form

A=

r X

σi ui viT

(2.103)

i=1

darstellen. Hieraus ergibt sich unmittelbar die nachstehende Folgerung. Folgerung 2.2. Es sei die Singul¨ arwertzerlegung der Matrix A in der Form (2.102) bzw. (2.103) gegeben, mit σ1 ≥ σ2 ≥ · · · ≥ σr > σr+1 = · · · = σn = 0. Dann gilt • rang(A) = r, • N (A) = span{vr+1 , . . . , vn }, • R(A) = span{u1 , . . . , ur },

94

Kapitel 2 Lineare Gleichungssysteme • A=

r X

σi ui viT = Ur Σr VrT ,

i=1

mit

Ur ≡ [ u1 | · · · | ur ],

Vr ≡ [ v1 | · · · | vr ]

Σr ≡ diag(σ1 , . . . , σr ),

• kAk2F = σ12 + σ22 + · · · + σr2 , • kAk2 = σ1 .



F¨ ur zwei Matrizen wollen wir die Singul¨ arwertzerlegung angeben. Beispiel 2.8. 1) Gegeben sei die singul¨ are (3 × 3)-Matrix  1 A = 4 7

2 5 8

 3 6 . 9

Ruft man in der Matlab die Singul¨ arwertzerlegung mit dem Befehl [U,S,V] = svd(A) auf, dann erh¨ alt man  −0.214837 U = −0.520587 −0.826338

 0.887231 0.408248 0.249644 −0.816497 , −0.387943 0.408248

 −0.479671 V = −0.572368 −0.665064

 −0.776691 −0.408248 −0.075686 0.816497  , 0.625318 −0.408248

Σ = S = diag(16.8481, 1.06837, 0.00000). Da der Singul¨ arwert σ3 verschwindet, gilt rang(A) = 2. 2) Wir betrachten nun die rechteckige (3 × 2)-Matrix  1 A = 3 5

 2 4 . 6

2.5 Genauigkeitsfragen, Fehlerabsch¨atzungen Der obige Aufruf der Matlab f¨ uhrt  −0.229848 U = −0.524745 −0.819642 V =

95

jetzt zu folgendem Resultat:  0.883461 0.408248 0.240782 −0.816497 , −0.401896 0.408248

  −0.619629 −0.784894 , −0.784894 0.619629

Σ = S = diag(9.52552, 0.514301). Da σ2 6= 0 ist, weist die Matrix A Vollrang auf.



Einer der wichtigsten Aspekte der Singul¨ arwertzerlegung ist der sensible Umgang mit dem Rangkonzept, wie die Folgerung 2.3 belegt. Folgerung 2.3. Es sei die Singul¨ arwertzerlegung der Matrix A ∈ Rm×n gegeben, wobei f¨ ur die Singul¨ arwerte gelte σ1 ≥ σ2 ≥ · · · ≥ σr > σr+1 = · · · = σn = 0. Ist k < r = rang(A) und Ak ≡

k X

σi ui viT ,

i=1

dann gilt: min rang(B)=k

kA − Bk2 = kA − Ak k2 = σk+1 .

(2.104)

 Mit k = r − 1 erkennt man unmittelbar, daß der kleinste nichtverschwindende Singul¨ arwert σr von A identisch mit dem 2-Norm-Abstand von A zur Menge aller Matrizen mit einem Rangabfall ist. Bei einer quadratischen Matrix spricht man im Falle eines sehr kleinen σr von einer fastsingul¨ aren Matrix. Eine fastsingul¨are Matrix ist im Sinne der Numerik mit einer singul¨ aren Matrix gleichzusetzen. Die Singul¨arwertzerlegung ist ein ausgezeichnetes Hilfsmittel, die Fastsingularit¨ at einer gegebenen Matrix aufzusp¨ uren.

2.5.3

Fehlerabsch¨ atzungen, Kondition

Wir untersuchen jetzt zwei Problemstellungen, die die Genauigkeit einer berechneten N¨ aherung x ˜ f¨ ur die exakte L¨ osung x von Ax = b betreffen.

1. Problem:

Welche R¨ uckschl¨ usse k¨ onnen aus der Gr¨oße des Residuenvektors r ≡ b − A˜ x auf den Fehler z ≡ x ˜ − x gezogen werden?

96

Kapitel 2 Lineare Gleichungssysteme

Im folgenden bezeichne kAk eine beliebige Matrixnorm und kxk eine dazu vertr¨agliche Vektornorm. Der Fehlervektor z ≡ x ˜ − x erf¨ ullt Az = −r (siehe Formel (2.53)). Aus kbk = kAxk ≤ kAk kxk,

d.h., kxk ≥

kbk kAk

und kzk = kA−1 rk ≤ kA−1 k krk (2.105)

ergibt sich f¨ ur den relativen Fehler der N¨ aherung kzk k˜ x − xk krk krk = ≤ kAk kA−1 k ≡ cond(A) . | {z } kbk kxk kxk kbk

(2.106)

cond(A)

Definition 2.15. Der Zahlwert cond(A) ≡ kAk kA−1 k

(2.107)

heißt die Konditionszahl der Matrix A bez¨ uglich der zugrunde liegenden Matrixnorm. Soll im Text auf eine spezielle Norm hingewiesen werden, dann verwenden wir die Bezeichnung condk (A) (≡ kAkk kA−1 kk )).  Die Konditionszahl cond(A) ist mindestens gleich eins, denn es gilt stets: 1 ≤ kIk = kA A−1 k ≤ kAk kA−1 k = cond(A). Bemerkung 2.10. F¨ ur die Spektralnorm berechnet sich die Konditionszahl zu (siehe die Darstellungen (2.94) und (2.95)) cond2 (A) ≡ kAk2 kA−1 k2 =

r

µ1 σ1 = . µn σn

(2.108)

Ber¨ ucksichtigt man die Bemerkung 2.8, dann ergibt sich unmittelbar die folgende Aussage. Die Konditionszahl cond2 (A) ist groß, wenn der Abstand der Matrix A zur Klasse der singul¨ aren Matrizen klein ist. Solche Matrizen nennt man in der Numerik auch fastsingul¨ ar. Das Bestehen von Beziehungen der Form (2.87) zwischen den Matrixnormen sichert, daß dieses Resultat auch f¨ ur die in anderen Normen berechneten Konditionszahlen gilt.  Die Absch¨ atzung (2.106) bedeutet konkret: Neben einem relativ kleinen Residuenvektor r, bezogen auf die Gr¨ oße des Konstantenvektors b, ist die Konditionszahl ausschlaggebend f¨ ur den relativen Fehler der N¨ aherung x ˜. Somit kann nur bei kleiner Konditionszahl aus einem relativ kleinen Residuenvektor auf einen kleinen relativen Fehler geschlossen werden! Das Rechnen mit endlicher Genauigkeit bedingt, daß die Koeffizienten aik und bi des zu l¨ osenden Gleichungssystems im Rechner nicht exakt darstellbar sind. Deshalb ist es

2.5 Genauigkeitsfragen, Fehlerabsch¨atzungen

97

von grundlegendem Interesse, den m¨ oglichen Einfluß von Fehlern in den Eingabedaten auf die L¨ osung x zu studieren (siehe auch die Ausf¨ uhrungen in Kapitel 1). 2. Problem:

¨ Wie groß kann die Anderung 4x der L¨osung x von Ax = b sein, falls die Matrix A um 4A und der Konstantenvektor b um 4b abge¨ andert werden?

Voraussetzung 2.3. Bei den nachfolgenden Betrachtungen gehen wir davon aus, daß 4A ∈ Rn×n und 4b ∈ Rn sehr kleine St¨ orungen sind (mit Elementen, die etwa in der Gr¨ oßenordnung der Maschinengenauigkeit liegen); insbesondere m¨oge f¨ ur 4A gelten: • kA−1 k k 4 Ak < 1, • det(A + 4A) 6= 0.



Das gest¨ orte Gleichungssystem werde wie folgt aufgeschrieben: (A + 4A) (x + 4x) = b + 4b.

(2.109)

Nach dem Ausmultiplizieren ergibt sich 4x = (A + 4A)−1 (4b − 4A x) = (I + A−1 4 A)−1 A−1 (4b − 4A x). | {z } [A(I+A−1 4A)]−1

F¨ ur vertr¨ agliche Normen folgt daraus k 4 xk ≤ k(I + A−1 4 A)−1 k kA−1 k {k 4 Ak kxk + k 4 bk}. Somit ist k 4 xk ≤ k(I + A−1 4 A)−1 k kA−1 k | {z } kxk



k 4 bk k 4 Ak + kxk

 .

(2.110)

Faktor 1

Bevor wir mit der Absch¨ atzung (2.110) fortfahren, soll zuerst einmal der mit Faktor 1“ ” gekennzeichnete Term bearbeitet werden. Hierzu ben¨otigen wir das folgende Resultat. Satz 2.13. Besitzt eine Matrix C ∈ Rn×n die Eigenschaft kCk < 1, dann ist I − C nichtsingul¨ ar und es gilt

(I − C)−1 =

∞ X

Ck.

(Neumannsche Reihe1 )

k=0 1

Carl Gottfried Neumann (1832–1925), deutscher Mathematiker

(2.111)

98

Kapitel 2 Lineare Gleichungssysteme

Beweis: 1) Ist I − C singul¨ ar, dann existiert ein Vektor x mit kxk = 1 und (I − C)x = 0. Hieraus w¨ urde 1 = kxk = kCxk ≤ kCk kxk = kCk folgen, was aber der Voraussetzung kCk < 1 widerspricht. 2) Wir zeigen jetzt, daß die Partialsummen der Neumannschen Reihe gegen (I −C)−1 konvergieren, d.h., m X

C k → (I − C)−1

f¨ ur m → ∞.

k=0

Offensichtlich gen¨ ugt es, (I − C)

m X

Ck → I

f¨ ur m → ∞

(2.112)

k=0

zu beweisen. Die linke Seite kann wie folgt geschrieben werden (I − C)

m X k=0

Ck =

m X

(C k − C k+1 ) = C 0 − C m+1 = I − C m+1 .

k=0

Da kC m+1 k ≤ kCkm+1 → 0 f¨ ur m → ∞, ergibt sich (2.112).



Aus der Gleichung (2.111) folgt nun f¨ ur kCk < 1 unmittelbar die wichtige Beziehung

k(I − C)−1 k ≤

∞ X k=0

kC k k ≤

∞ X

kCkk =

k=0

1 . 1 − kCk

(2.113)

Es werde C ≡ −A−1 · 4A gesetzt. Unter Ausnutzung der Ungleichung (2.113) l¨aßt sich nun die Absch¨ atzung (2.110) wie folgt weiterf¨ uhren: k 4 xk kxk



= ≤



k 4 bk kA k k 4 Ak + −1 1 − kA 4 Ak kxk   kAk kA−1 k k 4 Ak k 4 bk + 1 − kA−1 4 Ak kAk kAk kxk   kAk kA−1 k k 4 Ak k 4 bk + . 1 − kA−1 k k 4 Ak kAk kbk 1

−1



2.5 Genauigkeitsfragen, Fehlerabsch¨atzungen Mit kA−1 k k 4 Ak = cond(A)

k 4 xk ≤ kxk

99

k 4 Ak < 1 lautet das Ergebnis: kAk

cond(A) k 4 Ak 1 − cond(A) kAk



k 4 Ak k 4 bk + kAk kbk

 ≡ εrel .

(2.114)

Somit stellt die Konditionszahl cond(A) eine wichtige Kenngr¨oße f¨ ur ein lineares Glei¨ chungssystem dar, da sie die Empfindlichkeit der L¨osung x gegen¨ uber Anderungen 4A und 4b beschreibt. Die Absch¨ atzung (2.114) ist unabh¨angig von dem Fehler, der bei der numerischen Berechnung noch zus¨ atzlich anf¨ allt, d.h., (2.114) gibt das unvermeidbare relative Fehlerniveau an. Definition 2.16. Entsprechend den Ausf¨ uhrungen im Abschnitt 1.2 wird ein lineares Gleichungssystem Ax = b gut konditioniert genannt, falls gilt:

cond(A) ν |λj |, j = 2, 3, . . . , n, impliziert, daß f¨ ur k → ∞ die Koeffizienten von v (2) , . . . , v (n) gegen Null konvergieren. Bis auf den Vorfaktor α1 λk1 unterscheidet sich Ak x(0) somit immer weniger von v (1) , d.h., die Richtung von Ak x(0) approximiert f¨ ur k → ∞ diejenige von v (1) beliebig genau. F¨ ur die numerische Bestimmung des Eigenvektors v (1) ist die Vorgehensweise (3.18) jedoch noch nicht geeignet, da f¨ ur k → ∞ der Vorfaktor α1 λk1 in (3.19) im Falle |λ1 | < 1 gegen Null bzw. im Falle |λ1 | > 1 gegen ∞ konvergiert, so daß entweder mit Exponentenunterlauf oder Exponenten¨ uberlauf gerechnet werden muß. Diese numerischen

3.2 Nichtsymmetrisches Eigenwertproblem: die Potenzmethode

157

Schwierigkeiten lassen sich aber beseitigen, indem man die Potenzen von Ak x(0) geeignet skaliert. Zu Beginn der skalierten Variante hat man einen Startvektor x(0) ∈ Cn auszuw¨ahlen, f¨ ur den gilt: (0)

kx(0) k∞ = 1 ≡ xp0 .

(3.20)

Die Norm k · k∞ ist f¨ ur Elemente aus Cn analog wie im reellen Fall zu verstehen. Durch (3.20) ist ein Index p0 festgelegt. Es sei y (1) ≡ Ax(0) =

n X

αj Av (j) =

j=1

n X

αj λj v (j) .

j=1

(1)

Dann berechnet sich µ(1) ≡ yp0 zu:

(1)

µ(1) =

(1)

n X

(1)

n X

α1 λ1 vp0 +

yp0 = 1

αj λj vp(j) 0

j=2

α1 vp0 +

αj vp(j) 0

 n X λj (j) (1) α v + α v p j  1 0 λ 1 p0    j=2  . = λ1  n  X  (1) (j)  α 1 vp0 + αj vp0 

j=2

j=2

Mit p1 , 1 ≤ p1 ≤ n, werde diejenige kleinste ganze Zahl bezeichnet, f¨ ur welche (1) (1) |yp1 | = ky (1) k∞ gilt. Schließlich definiert man den Vektor x(1) ≡ y (1) /yp1 , f¨ ur den (1) (1) xp1 = 1 = kx k∞ gilt. Damit ist der erste Iterationsschritt des Verfahrens abgeschlossen. Im zweiten Schritt bestimmt man y (2) ≡ Ax(1) =

Ay (1) = (1)

y p1

=

n 1 X

1

(1)

yp1

αj λj Av (j) =

j=1

α1 λ21 v (1) + α2 λ22 v (2) + · · · + αn λ2n v (n) (1)

(2)

(n)

α1 λ1 vp1 + α2 λ2 vp1 + · · · + αn λn vp1

µ(2) ≡ yp(2) = 1

  = λ1 

n 1 X (1)

yp1

αj λ2j v (j)

j=1

,

(1)

(2)

(n)

(1)

(2)

(n)

α1 λ21 vp1 + α2 λ22 vp1 + · · · + αn λ2n vp1 α1 λ1 vp1 + α2 λ2 vp1 + · · · + αn λn vp1

(1) α1 vp1

+ α2

(1) α1 vp1



+ α2

λ2 λ1



2

λ2 λ1



(2) vp1 (2) vp1

+ · · · + αn



λn λ1

+ · · · + αn



λn λ1

2 

(n) vp1

(n) vp1

  ,

158

Kapitel 3 Eigenwertprobleme p2 : 1 ≤ p2 ≤ n, x(2) ≡

1 (2) y p2

|yp(2) | = ky (2) k∞ , 2

y (2) .

Die weiteren Iterationsschritte ergeben sich entsprechend, so daß ein beliebiger Schritt der Potenzmethode wie folgt dargestellt werden kann.

k-ter Schritt Potenzmethode y (k)

=

Ax(k−1) , k  n  X λj (1) (j) α v + α v p j pk−1   1 k−1 λ1   j=2   = λ1  k−1 n   X λj   (1) α1 vpk−1 + αj vp(j) k−1 λ 1 j=2 

µ(k)



1 ≤ pk ≤ n,

pk : x(k)

(k)

ypk−1



y (k) (k)

(k)

|ypk | = ky (k) k∞ ,

(3.21)

und

.

y pk

Neben der Voraussetzung 3.1 m¨ oge noch eine weitere Bedingung an den Startvektor x(0) erf¨ ullt sein. Voraussetzung 3.2. In der Darstellung (3.17) des Startvektors x(0) gelte α1 6= 0.  Ist diese Voraussetzung in der Praxis nicht erf¨ ullt (das stellt man i.allg. anhand der Divergenz der Potenzmethode fest), dann wird u ¨blicherweise der Startvektor x(0) gewechselt. Im Englischen bezeichnet man ein solches Vorgehen als trial and error“. ” Der Verfahrensvorschrift (3.21) ist zu entnehmen, daß sich unter den Voraussetzungen λj 3.1 und 3.2 wegen | | < 1, j = 2, . . . , n, der Grenzwert λ1 lim µ(k) = λ1

k→∞

(3.22)

ergibt. Es kann dar¨ uber hinaus gezeigt werden, daß die Vektorfolge {x(k) }∞ k=0 gegen einen Eigenvektor v, mit kvk∞ = 1, konvergiert, der zum dominanten Eigenwert λ1 geh¨ ort1 . 1

Siehe J. H. Wilkinson: The Algebraic Eigenvalue Problem. Clarendon Press, Oxford 1965, pp. 570–572

3.2 Nichtsymmetrisches Eigenwertproblem: die Potenzmethode

159

F¨ ur die genauere Untersuchung der Konvergenzeigenschaften des Verfahrens ben¨otigen wir den Begriff der Konvergenzordnung. ? Definition 3.1. Es sei {x(k) }∞ k=0 eine Folge, die gegen den Grenzwert x konvergiert. (k) (k) (k) ? Weiter bezeichne e den absoluten Fehler e ≡ x − x , k ≥ 0. Existieren positive Konstanten α und β mit

ke(k+1) k = β, k→∞ ke(k) kα lim

(3.23)

dann besitzt {x(k) }∞ k=0 die Konvergenzordnung α mit der asymptotischen Fehlerkonstanten β.  Gilt α = 1, dann spricht man von linearer Konvergenz, im Falle α = 2 von quadratischer Konvergenz. Ist insbesondere α > 1, dann handelt es sich um superlineare Konvergenz. Lineare Konvergenz bedingt, daß eine asymptotische Fehlerkonstante β kleiner als eins vorliegt. Insbesondere konvergiert hier die Folge um so schneller, je kleiner β ist. Offensichtlich wird die Konvergenzgeschwindigkeit der Folge {µ(k) }∞ k=1 → λ1 durch (λj /λ1 )k , j = 2, 3, . . . , n, beeinflußt. Der entscheidende Term dabei ist (λ2 /λ1 )k , d.h., das Konvergenzverhalten dieser Folge l¨ aßt sich symbolisch in der Form k ! λ2 (k) |µ − λ1 | = O (3.24) λ1 ausdr¨ ucken. Mit anderen Worten formuliert heißt dies, es existiert eine positive Konstante C, so daß gilt: |µ(k) − λ1 | lim = C. (3.25) k k→∞ λ2 λ1 Damit ergibt sich |µ(k+1) − λ1 | λ2 = λ1 . k→∞ |µ(k) − λ1 | lim

(3.26)

Die Formel (3.26) sagt aus, daß hier lineare Konvergenz vorliegt (α = 1), die um so schneller verl¨ auft, je kleiner β = |λ2 /λ1 | ist. Bemerkung 3.2. F¨ ur die Konvergenz der Potenzmethode ist es eigentlich nicht erforderlich, daß die Matrix A nur einfache Eigenwerte besitzt (wie oben vereinfachend angenommen wurde). So gilt: • Ist die Vielfachheit des betragsgr¨ oßten Eigenwertes λ1 gleich r, r > 1, und sind v (1) , . . . , v (r) die zugeh¨ origen linear unabh¨angigen Eigenvektoren, dann konvergiert die Potenzmethode ebenfalls gegen λ1 , wie sich leicht zeigen l¨aßt.

160

Kapitel 3 Eigenwertprobleme

• Die Folge {x(k) }∞ orenden und auf eins nork=0 konvergiert gegen einen, zu λ1 geh¨ mierten Eigenvektor, der sich als Linearkombination von v (1) , . . . , v (r) darstellt und von der Wahl des Startvektors x(0) abh¨angt. 

3.2.2

Inverse Potenzmethode

Die sogenannte inverse Potenzmethode basiert auf der soeben beschriebenen gew¨ohnlichen Potenzmethode, f¨ uhrt aber i.allg. zu schnellerer Konvergenz. Sie erm¨oglicht zudem die numerische Approximation eines beliebigen (nicht zwingend betragsgr¨oßten!) Eigenwertes. Wie bisher werde davon ausgegangen, daß die Matrix A die Eigenwerte λ1 , . . . , λn so¨ wie die zugeh¨ origen linear unabh¨ angigen Eigenvektoren v (1) , . . . , v (n) besitzt. Uberf¨ uhrt man nun die Matrix A unter Verwendung einer noch geeignet zu w¨ahlenden Zahl q ∈ C in die Matrix B ≡ (A − qI)−1 ,

q 6= λi ,

i = 1, 2, . . . , n,

(3.27)

dann ergibt sich der folgende Satz. Satz 3.6. Die Eigenwerte der in Formel (3.27) definierten Matrix B sind (λ1 − q)−1 , (λ2 − q)−1 , . . . , (λn − q)−1 . Die zugeh¨ origen Eigenvektoren von B stimmen mit denen der Matrix A u ¨berein, d.h., die Eigenvektoren sind v (1) , . . . , v (n) . Beweis: Mit dem Eigenvektor w und dem Eigenwert γ lautet das Eigenwertproblem f¨ ur die neue Matrix B: Bw = γw,

d.h., (A − qI)−1 w = γw.

Hieraus erh¨ alt man w = γ(A − qI)w und nach Umordnung Aw = gilt λ =

1 + γq 1 , d.h., γ = und w = v. γ λ−q

1 + γq w. Folglich γ 

Die inverse Potenzmethode ergibt sich nun aus der direkten Anwendung der gew¨ohnlichen Potenzmethode auf die Matrix B ≡ (A − qI)−1 .

3.2 Nichtsymmetrisches Eigenwertproblem: die Potenzmethode

161

Man erh¨ alt: k-ter Schritt inverse Potenzmethode y (k)

=

(A − qI)−1 x(k−1) , n X (k)

µ(k)

=

ypk−1 (k−1) xpk−1

1 ≤ pk ≤ n,

pk : x(k)

(k)

ypk−1 =

=

y (k) (k)

=

j=1

αj

1 v (j) (λj − q)k pk−1

n X

1 αj v (j) k−1 pk−1 (λ − q) j j=1

(k)

|ypk | = ky (k) k∞

, (3.28)

und

.

y pk

Die Folge {µ(k) } konvergiert jetzt gegen 1/(λl − q), mit 1 1 ≡ max . |λl − q| 1≤i≤n |λi − q|

(3.29)

Dabei bezeichnet λl denjenigen Eigenwert von A, der zu q am n¨achsten liegt. Ist der Index l explizit bekannt, dann l¨ aßt sich µ(k) in (3.28) wie folgt schreiben:    k n X λl − q (l) (j) α v + α v l pk−1 j  pk−1  λj − q   j=1   1 j6 = l   µ(k) = (3.30)  .   n (k−1)  X λl − q  λl − q (j)   α vp(l) + αj vpk−1   l k−1 λj − q j=1 j6=l

Offensichtlich wird durch die Festlegung der Zahl q das Konvergenzverhalten der Folge {µ(k) }∞ achlich Konvergenz eintritt, muß 1/(λl − q) ein eink=1 bestimmt. Damit tats¨ deutig dominanter Eigenwert von B sein. Je n¨aher man q an den Eigenwert λl von A platziert, um so mehr erh¨ oht sich die Konvergenzgeschwindigkeit. F¨ ur die zugeh¨orige Konvergenzordnung gilt n¨ amlich: (k+1) 1 µ − λl − q λl − q = lim , (3.31) k→∞ λ−q µ(k) − 1 λl − q wobei λ denjenigen Eigenwert von A bezeichnet, der nach λl den kleinsten Abstand zu q aufweist.

162

Kapitel 3 Eigenwertprobleme

F¨ ur die praktische Realisierung des Verfahrens sind noch die folgenden Gesichtspunkte von Interesse. Bemerkung 3.3. • Die Berechnung von y (k) in (3.28) wird i.allg. mittels Gauß-Elimination vorgenommen. Die LU -Faktorisierung ist dabei nur einmal erforderlich. • F¨ ur die Berechnung eines bestimmten Eigenwertes mit der inversen Potenzmethode kann eine Sch¨ atzung von q durch die Methode der Gerschgorin-Kreise vorgenommen werden. • Zu einem vorgegebenen Startvektor x(0) l¨aßt sich eine Sch¨atzung f¨ ur den Eigenwert u ¨ber den sogenannten Rayleigh-Quotienten bestimmen:

q=

(x(0) )T Ax(0) . (x(0) )T x(0) 

Das Programm 3.1 enth¨ alt eine Matlab-Implementierung der inversen Potenzmethode.

3.2.3

Deflationstechniken

Zahlreiche Techniken sind m¨ oglich, um weitere Eigenwerte einer Matrix zu approximieren, wenn bereits eine N¨ aherung f¨ ur den dominanten Eigenwert ermittelt wurde. Wir betrachten hier gewisse Abspaltungsverfahren, die unter dem Begriff Deflationstechniken bekannt sind. Ihr Grundprinzip l¨ aßt sich wie folgt beschreiben: Aus der gegebenen Matrix A wird eine neue Matrix B konstruiert, die bis auf den dominanten Eigenwert die gleichen Eigenwerte wie A besitzt. Der dominante Eigenwert ist in B durch den Eigenwert Null ersetzt. Die Grundlage f¨ ur diese Deflationstechniken stellt der folgende Satz dar. Satz 3.7. Die n × n-Matrix A besitze die Eigenwerte λ1 , . . . , λn mit den zugeh¨ origen Eigenvektoren v (1) , . . . , v (n) . Die Vielfachheit von λ1 sei Eins. Ist x ein n-dimensionaler Vektor mit der Eigenschaft, daß xT v (1) = 1 gilt, dann besitzt die Matrix B ≡ A − λ1 v (1) xT

(3.32)

die Eigenwerte 0, λ2 , . . . , λn sowie die Eigenvektoren v (1) , w(2) , . . . , w(n) . Dabei stehen v (i) und w(i) wie folgt in Beziehung: v (i) = (λi − λ1 )w(i) + λ1 xT w(i) v (1) ,

i = 2, 3, . . . , n.

(3.33)

3.2 Nichtsymmetrisches Eigenwertproblem: die Potenzmethode Programm 3.1

163

Inverse Potenzmethode

function [ev,ew]=ipm(A,q,tol,nmax) % % A: (n x n)-Matrix % q: komplexe Zahl ’nahe’ am gesuchten Eigenwert % tol: gew¨ unschte relative Genauigkeit (Eingabe nicht notwendig) % nmax: maximale Iterationszahl (Eingabe nicht notwendig) % % ev: normierter Eigenvektor von A % ew: Eigenwert von A (’nahe’ q) % [n,k]=size(A); if nargin == 2, tol=1e-12; nmax=50*n; end [L,U,p]=luppart(A-q*eye(n)); y=eye(n,1); x=inf; z=zeros(n,1); ev=z;ew=inf; for i=1:nmax x=y; for k=1:n z(k)=x(k)-L(k,1:k-1)*z(1:k-1); end for k=n:-1:1 y(k)=(z(k)-U(k,k+1:n)*y(k+1:n))/U(k,k); end [ypk,pk]=max(abs(y)); ypk=y(pk); y=y(p)/ypk; if norm(x-y)/(norm(y)+eps) < tol, ew=1/ypk+q; ev(p)=y/norm(y); return end end disp (’maximale Iterationszahl erreicht’)

Beweis:

=1 (1)

(1) T

(1)

1) Bv = (A − λ1 v x )v = Av vektor von B zum Eigenwert 0.

(1)

− λ1 v

(1)

z }| { xT v (1) = 0 · v (1) , d.h., v (1) ist Eigen-

2) F¨ ur die Eigenvektoren w(2) , . . . , w(n) von B verwenden wir folgenden Ansatz (die unbekannten Parameter αi sind noch geeignet zu bestimmen): w(i) =

1 αi v (i) − v (1) , i = 2, . . . , n. λi − λ1 λi − λ1

Man berechnet Bw

(i)

 αi 1 (i) (1) = (A − λ1 v v − v λi − λ1 λi − λ1 λi αi λ1 αi λ1 (1) T (1) = v (i) − Av (1) − v (1) xT v (i) + v x v } | {z λi − λ1 λi − λ1 λi − λ1 λi − λ1  x )

(1) T

=1

164

Kapitel 3 Eigenwertprobleme  = λi Wird nun αi ≡

 1 λ1 (i) (1) T (i) v − v x v . λi − λ1 λi (λi − λ1 ) λ1 T (i) x v gesetzt, dann erkennt man unmittelbar, daß der Vektor λi w(i) =

1 λ1 v (i) − xT v (i) v (1) λi − λ1 λi (λi − λ1 )

der Eigenvektor zum Eigenwert λi ist. Die Umstellung nach v (i) ergibt v (i) = (λi − λ1 )w(i) +

λ1 T (i) (1) x v v . λi

(3.34)

=1

Hieraus resultiert xT v (i)

z }| { λ1 T (i) T (1) = (λi − λ1 )xT w(i) + x v x v . Diese Formel l¨aßt λi

sich wie folgt umformen:     λ1 λi − λ1 T (i) T (i) 1− x v = (λi − λ1 )x w ,→ xT v (i) = (λi − λ1 )xT w(i) λi λi ,→ xT v (i) = λi xT w(i) . Setzt man das letzte Resultat in Formel (3.34) ein, so ergibt sich v (i) = (λi − λ1 )w(i) + λ1 xT w(i) v (1) ,

d.h., die Formel (3.33) ist best¨ atigt. Eine einfache Rechnung zeigt schließlich, daß das System v (1) , w(2) , . . . , w(n) linear unabh¨angig ist.  Eine in der Praxis oft verwendete Deflationstechnik ist die Deflation nach Wieland 1 . Hier setzt man x≡

1 (1) λ1 vi

[ai1 , ai2 , . . . , ain ]T .

(3.35)

(1)

In (3.35) bezeichnet vi eine Komponente von v (1) , die nicht verschwindet. Die Zahlen ai1 , . . . , ain sind die Elemente der i-ten Zeile von A. Diese Wahl von x ergibt xT v (1) =

1

(1)

(1)

[a , a , . . . , ain ] [v1 , v2 , . . . , vn(1) ]T = (1) i1 i2

λ 1 vi

1 (1) λ 1 vi

n X

(1)

aij vj .

j=1

|

{z

}

i-te Komponente von Av (1)

Da Av (1) = λ1 v (1) ist, folgt unmittelbar xT v (1) = x erf¨ ullt die Voraussetzungen von Satz 3.7. 1

Helmut Wielandt (1910–2001), deutscher Mathematiker

1 (1)

λ 1 vi

(1)

(λ1 vi ) = 1, d.h., der Vektor

3.3 Symmetrisches Eigenwertproblem: QR-Methode

165

Man beachte, daß mit (3.35) gilt: die i-te Zeile von B ≡ A − λ1 v (1) xT besteht nur aus Nullen. Ist λ 6= 0 ein beliebiger Eigenwert von B zum Eigenvektor w, dann impliziert die Gleichung Bw = λw, daß die i-te Komponente von w ebenfalls null sein muß. Dies bedeutet aber: die i-te Spalte der Matrix B liefert keinen Beitrag zum Produkt Bw = λw. Deshalb kann die Matrix B durch eine Matrix B 0 der Dimension (n − 1) × (n − 1) ersetzt werden, die durch Streichen der i-ten Zeile und der i-ten Spalte in B erhalten wird. Offensichtlich besitzt die Matrix B 0 die Eigenwerte λ2 , λ3 , . . . , λn . Gilt nun |λ2 | > |λ3 |, dann kann die Potenzmethode wiederum auf B 0 angewendet werden, um den neuen dominanten Eigenwert λ2 sowie den zugeh¨ origen Eigenvektor (w(2) )0 (der Matrix B 0 ) numerisch zu ermitteln. Um schließlich den entsprechenden Eigenvektor der urspr¨ unglichen Matrix A zu finden, konstruiert man einen Vektor w(2) , indem zwischen die Komponenten (2) (2) (wi−1 )0 und (wi )0 eine Null-Komponente eingef¨ ugt wird und berechnet danach v (2) entsprechend der Formel (3.33). Das oben dargestellte Verfahren kann (theoretisch) dazu verwendet werden, um sukzessive alle Eigenwerte und Eigenvektoren von A numerisch zu approximieren. Dieser Prozeß erweist sich jedoch als sehr empfindlich gegen¨ uber Rundungsfehlern. Seine Anwendung ist deshalb nur f¨ ur einige (wenige) ausgew¨ahlte Eigenwerte und Eigenvektoren sachgem¨ aß. Sind alle Eigenwerte einer Matrix zu approximieren, dann sollte auf ¨ Verfahren zur¨ uckgegriffen werden, die auf Ahnlichkeitstransformationen beruhen. Im folgenden Abschnitt betrachten wir f¨ ur symmetrische Matrizen derartige Techniken. ¨ Ihre Ubertragung auf den Fall nichtsymmetrischer Matrizen soll der Spezialliteratur zu diesem Gegenstand vorbehalten bleiben1 .

3.3

Symmetrisches Eigenwertproblem: QR-Methode

In diesem Abschnitt betrachten wir den Spezialfall, daß im Eigenwertproblem (3.1) eine symmetrische Matrix A ∈ Rn×n auftritt. Zur Bestimmung des dominanten Eigenwertes von A (falls ein solcher existiert) l¨ aßt sich nat¨ urlich auch hier die Potenzmethode anwenden. Andererseits ist es f¨ ur symmetrische Matrizen relativ einfach, Verfahren zu konstruieren, mit denen sich alle (reellen) Eigenwerte numerisch stabil berechnen lassen. Diese numerischen Techniken basieren im wesentlichen auf der Existenz einer orthogo¨ der Form (3.8). Sie kann mit geeigneten orthogonalen nalen Ahnlichkeitstransformation Transformationsmatrizen erzeugt werden, die wir im folgenden darstellen wollen.

3.3.1

Transformationsmatrizen: Givens-Rotationen

Im Kapitel 2 haben wir ausf¨ uhrlich die Gauß-Transformationen (2.17) studiert und gezeigt, wie man mit ihrer Hilfe eine vollbesetzte Matrix in eine obere 4-Gestalt 1

Siehe zum Beispiel: G. H. Golub and C. F. Van Loan: Matrix Computations. The Johns Hopkins University Press, Baltimore and London, 1990

166

Kapitel 3 Eigenwertprobleme

u uhren kann. Eine wichtige Eigenschaft der Gauß-Transformationen war, daß ih¨berf¨ re Inversen ohne aufwendige Berechnungen direkt aufgeschrieben werden k¨onnen, d.h., Lk = I − lk (e(k) )T



(k) T L−1 ) . k = I + lk (e

Offensichtlich sind aber die Gauß-Transformationen keine orthogonalen Matrizen. Dies hat zur Konsequenz, daß beim Eliminationsprozeß Instabilit¨atseffekte auftreten k¨onnen, die sich nur mit einer zus¨ atzlichen Pivotisierungsstrategie (partielle oder vollst¨andige Pivotisierung) reduzieren lassen. Wir wollen jetzt orthogonale Matrizen (die perfekt konditioniert sind!) betrachten, mit denen man ebenfalls eine Matrix in eine obere 4-Gestalt transformieren kann. Die Inverse einer orthogonalen Matrix erh¨ alt man durch Transponieren, so daß auch hier die Invertierung mit nur geringem Aufwand ausgef¨ uhrt werden kann. Als Givens 1 -Rotationen (Synonyme sind u.a.: Givens-Matrizen, Givens-Transformationen; manchmal werden diese auch Jacobi-Rotationen genannt) bezeichnet man Matrizen der folgenden Form, die von W. Givens im Jahre 1953 erstmalig verwendet wurden: 

Gkl

           =          

1

 ..

.

      ← Zeile k           ← Zeile l      

1 c .. . .. . .. . −s

... ... ... s .. 1 . .. .. . . . 1 .. ...

... ...

c 1 ..

↑ Spalte k

↑ Spalte l

.

,

(3.36)

1

wobei c und s wie folgt in Relation stehen: c2 + s2 = 1. Letztere Gleichung legt nahe, c und s mittels eines Winkels θ in der Form c = cos θ und s = sin θ zu schreiben. Vom geometrischen Standpunkt aus gesehen, beschreibt dann die obige Matrix eine Drehung um den Winkel θ in der (k, l)-Ebene. Diese geometrische Interpretation spielt bei unseren Betrachtungen jedoch nur eine untergeordnete Rolle, so daß wir die Abh¨angigkeit von θ nicht explizit angeben werden. Offensichtlich sind Givens-Rotationen Rang-2 Modifikationen der Einheitsmatrix. Weitaus wichtiger f¨ ur die weiteren Untersuchungen ist die folgende Eigenschaft der Matrizen Gkl . Wie man sich leicht davon u ullen diese (Gkl )T Gkl = I, ¨berzeugen kann, erf¨ 1

James Wallace Givens, Jr. (1910–1993), Mathematiker und Pionier der Informatik

3.3 Symmetrisches Eigenwertproblem: QR-Methode

167

d.h., es handelt sich um orthogonale Matrizen. Wendet man Gkl auf einen Vektor x ∈ Rn an, so folgt: x → y = Gkl x,

mit

  cxk + sxl , −sxk + cxl , = (Gkl x)i =  xi ,

yi

falls i = k falls i = l sonst.

(3.37)

Multipliziert man eine Matrix A = [a1 , a2 , . . . , an ] ∈ Rn×n von links mit Gkl , so operiert die Givens-Transformation auf den Spalten dieser Matrix: Gkl A = [Gkl a1 , . . . , Gkl an ]. Ein Blick auf (3.37) lehrt, daß bei einer derartigen Transformation nur die beiden Zeilen k und l der Matrix A modifiziert werden. Wir wollen jetzt die Frage untersuchen: Wie sind die Matrixelemente c und s in (3.36) zu w¨ ahlen, damit eine Komponente des Vektors y zu null gemacht wird? Hierzu reicht es aus, den Spezialfall n = 2 zu betrachten, da die Givens-Transformation Gkl nur das k-te und das l-te Element von x ∈ Rn ver¨andert. Es sei deshalb x ∈ R2 ein zu ullen m¨ogen. Damit transformierender Vektor, dessen Komponenten x21 + x22 6= 0 erf¨ ergibt sich das folgende Bestimmungssystem f¨ ur c und s:      c s x1 r x1 c + x2 s = r = , d.h. (3.38) −s c x2 0 −x1 s + x2 c = 0. Aus der letzten Gleichung folgt c = so erh¨ alt man 

x21 + x2 x2

x1 s. Wird dies in die erste Gleichung eingesetzt, x2



Hieraus ergibt sich c=

s = r,

d.h.

s=

x2 r. x21 + x22

x1 x2 x1 r= 2 r. x2 x21 + x22 x1 + x22

(3.39)

(3.40)

Die Voraussetzung s2 + c2 = 1 f¨ uhrt nun auf x22 r2 x21 r2 + = 1 ,→ r2 (x21 + x22 ) = (x21 + x22 )2 ,→ r2 = x21 + x22 , (x21 + x22 )2 (x21 + x22 )2 p woraus r = ± x21 + x22 folgt. Setzt man dies in (3.39) und (3.40) ein, so ergibt sich schließlich q x1 x2 c= , s= , r = ± x21 + x22 . (3.41) r r

168

Kapitel 3 Eigenwertprobleme

¨ Ublicherweise verwendet man f¨ ur r das positive Vorzeichen, was wir im folgenden auch tun wollen. Des weiteren wird von einigen Autoren vorgeschlagen, den Algorithmus so zu modifizieren, daß anstelle der Division durch r nur durch eine Zahl dividiert wird, die betragsm¨ aßig nahe bei Eins liegt, um einem m¨oglichen Exponenten¨ uberlauf vorzubeugen1 . Der Nutzen dieser Strategie ist auf den heutigen Computern nicht mehr ersichtlich. Kehren wir nun wieder zum allgemeinen Fall zur¨ uck. Um im Vektor x ∈ Rn die Komponente xl zu eliminieren, d.h., yl = 0 zu erzeugen, hat man daher c=

xk , r

s=

xl r

und

r=

q

x2k + x2l

(3.42)

zu setzten. Das Matlab-Programm 3.2 berechnet zu einem vorgegebenen Vektor x = (xk , xl )T die zugeh¨ orige Givens-Rotation Gkl sowie den transformierten Vektor Gkl x = (r, 0)T . Programm 3.2

Givens-Transformation

function [G,x] = givens(xk,xl) % % x_k, x_l: Komponenten des zu transformierenden Vektors x % % G: erzeugte Givens-Rotation % x: transformierter Vektor x=(r,0)’ % if xl~=0 r=norm([xk,xl]); G=[xk,xl;-xl,xk]/r; x=[r;0]; else G=eye(2); x=[xk;0]; end

Die Givens-Transformationen Gkl kann man auch dazu verwenden, eine gegebene Matrix A ∈ Rn×n auf obere 4-Gestalt zu bringen. Im Unterschied zu der auf den (nichtorthogonalen) Gauß-Transformationen Lk basierenden LU -Faktorisierung (siehe Kapitel 2) wird der resultierende obere 4-Faktor bei der Verwendung orthogonaler Transformationsmatrizen u ¨blicherweise mit R (rij = 0, i > j) bezeichnet. F¨ ur eine Matrix A ∈ R4×4 l¨ aßt sich diese Transformation schematisch wie folgt be1

Siehe z.B.: Gene H. Golub and Charles F. Van Loan: Matrix Computations. 3. Auflage, The Johns Hopkins University Press Ltd., London, 1996, Seite 216

3.3 Symmetrisches Eigenwertproblem: QR-Methode

169

schreiben:  × × A= × ×

× × × ×

× × × ×

  × × (1) G3 4 · × ×  −→  × × × 0

   × × × × ×  0 × × × G(2) · 0 3 4     0 × × × −→  0 0 × × × 0

   × × × × × × × (1)  (1) × × × × × × 2 3 · × 12· G G −→ −→  0 × × × × × × × × × 0 × × ×    × × × × × × × (2)  (3) × × × × × × 23· 0 34· G G −→ −→ R.    × × × 0 0 × × 0 × × 0 0 × ×

Die oben verwendete Konvention, mit dem Symbol ד ein Element zu kennzeichnen, ” das Null oder ungleich Null sein kann (mit großer Wahrscheinlichkeit aber ungleich Null ist), w¨ ahrend das Symbol 0“ f¨ ur ein tats¨achliches Nullelement steht, geht auf J. ” H. Wilkinson zur¨ uck. Die Darstellung einer Matrix in dieser Form wird nach Stewart1 ein Wilkinson Diagramm genannt. F¨ ur das vorliegende Beispiel kann aus dem zugeh¨origen Wilkinson Diagramm die folgende Transformation abgelesen werden: (3)

(2)

(2)

(1)

(1)

(1)

G34 G23 G34 G12 G23 G34 A = R. (1)

(2)

(2)

(3)

F¨ uhrt man die Bezeichnung Q ≡ (G34 )T · · · (G34 )T (G23 )T (G34 )T ein, dann l¨aßt sich A in der faktorisierten Form A = QR

(3.43)

angeben, die man nun QR-Faktorisierung“ nennt. Im Unterschied zur LU -Faktorisie” rung handelt es sich bei der Matrix Q ∈ Rn×n um keine untere 4-Matrix. Vielmehr ist Q eine vollbesetzte, orthogonale Matrix, d.h., sie erf¨ ullt die Bedingung QT Q = QQT = I. Man kann sich leicht davon u ur die QR-Faktorisierung einer beliebigen ¨berzeugen, daß f¨ Matrix A ∈ Rn×n mittels Givens-Transformationen ein Rechenaufwand von etwa 1/2 n2 Quadratwurzelberechnungen sowie 2n3 flops erforderlich ist. Das Matlab-Programm 3.3 berechnet die QR-Faktorisierung einer gegebenen Matrix A ∈ Rn×m , n ≥ m, unter Zuhilfenahme des zuvor dargestellten Programms 3.2.

1

Siehe das Buch von G. W. Stewart: Matrix Algorithms, Vol. I: Basic Decompositions. SIAM, Philadelphia, 1998

170 Programm 3.3

Kapitel 3 Eigenwertprobleme Givens-QR-Faktorisierung

function [Q,R] = qrgivens(A) % % A: (n x m)-Matrix, n >= m % % Q: orthogonale (n x n)-Matrix % R: (n x m)-Matrix mit oberer(m x m)-Dreiecksmatrix % [n,m]=size(A); Q=eye(n); for k=1:m [~,l]=max(abs(A(k+1:n,k))); l=l+k; if A(k,k)==0 && A(l,k)==0 ,error(’Matrix A hat nicht vollen Rang’),end j=find(A(k+1:n,k)~=0)+k; j=[l;j(j~=l)]’; for l=j [G,x]=givens(A(k,k),A(l,k)); Q([k,l],:)=G*Q([k,l],:); A(k,k)=x(1); A(l,k)=0; A([k,l],k+1:m)=G*A([k,l],k+1:m); end end Q=Q’; R=triu(A); end

Wurde f¨ ur eine Matrix A ∈ Rn×n die QR-Faktorisierung berechnet, dann l¨aßt sich die L¨osung x eines linearen Gleichungssystems Ax = b wie folgt numerisch ermitteln. Die Substitution von A = QR in Ax = b ergibt: Ax = b

,→

QRx = b

,→

Rx = QT b.

Dies f¨ uhrt auf die im Algorithmus 3.1 dargestellte L¨osungstechnik f¨ ur lineare Gleichungssysteme. Im Programm 3.4 kann die L¨ osung eines linearen Gleichungsystems auf der Grundlage von Givens-Transformationen berechnet werden. Dieses Programm ist nicht nur auf Givens-Transformationen beschr¨ ankt, sondern erm¨oglicht auch die L¨osung des Systems Ax = b unter Verwendung anderer QR-Faktorisierungstechniken, wie die Householder QR-Faktorisierung (siehe Abschnitt 3.3.2) sowie die Gram-Schmidt und die modifizierte Gram-Schmidt QR-Faktorisierung (siehe Abschnitt 8.3).

3.3 Symmetrisches Eigenwertproblem: QR-Methode

171

Elimination mit QR-Faktorisierung 1. Schritt: Man bestimme die QR-Faktorisierung der Matrix A: A = Q R, R obere 4-Matrix, Q orthogonale Matrix. 2. Schritt: Man berechne den Hilfsvektor z mittels Matrix-VektorMultiplikation z = QT b. 3. Schritt: Man berechne den L¨ osungsvektor x mittels R¨ uckw¨artsSubstitution aus dem oberen 4-System R x = z.

Algorithmus 3.1: Elimination mit QR-Faktorisierung

Programm 3.4

Linearer QR-Gleichungsl¨ oser

function x=linqrgl(A,b,typ) % % A: (m x n)-Matrix % b: m-dim-Vektor % typ: String mit == ’givens’ Givens-Rotation % ’house’ Householder-Verfahren % ’grasch’ mit Gram-Schmidt % ’mgrasch’ mit modifizierten Gram-Schmidt % % x: L¨ osung des linearen Quadratmittelproblem ||A*x - b||2 ==> min % [m,n]=size(A); x=zeros(n,1); switch typ case ’givens’ [Q,R]=qrgivens(A); case ’house’ [Q,R]=qrhouse(A); case ’grasch’ [Q,R]=grasch(A); case ’mgrasch’ [Q,R]=mgrasch(A); otherwise error(’typ kann nur ’’givens’’, ’’house’’, ’’grasch’’ oder ’’mgrasch’’ sein’) end b=Q(:,1:n)’*b; for k=n:-1:1 x(k)=(b(k)-R(k,k+1:n)*x(k+1:n))/R(k,k); end

172

Kapitel 3 Eigenwertprobleme

Da die QR-Faktorisierung ausschließlich mit orthogonalen (Givens-) Transformationsmatrizen realisiert wird, erweist sich das Verfahren als extrem stabil. Eine zus¨atzliche Pivotisierungsstrategie ist deshalb nicht erforderlich. Trotzdem verwendet man in der Praxis zur L¨ osung linearer Gleichungssysteme Ax = b viel h¨aufiger die LU -Faktorisierung, da diese nur ein Drittel des Rechenaufwandes ben¨otigt (siehe Abschnitt 2.2). Bei d¨ unnbesetzten Matrizen1 (engl.: sparse matrices“) f¨allt der Vergleich jedoch wesentlich g¨ uns” tiger aus. Hier liegt das eigentliche Einsatzgebiet der QR-Faktorisierung mittels GivensTransformationen.

3.3.2

Transformationsmatrizen: Householder-Reflexionen

Im Jahre 1958 f¨ uhrte A. S. Householder2 Matrizen H ∈ Rn×n der folgenden Gestalt ein3 : H=I−

2 vT v

vv T ,

(3.44)

wobei v ∈ Rn einen beliebigen nichtverschwindenden Vektor bezeichnet. Da diese Matrizen - aus geometrischer Sicht - eine Spiegelung (Reflexion) an der auf v senkrecht stehenden Hyperebene beschreiben, werden sie auch als Householder-Reflexionen (Synonyme: Householder-Matrizen, Householder-Transformationen) bezeichnet. Der Vektor v heißt Householder-Vektor . Folgende, einfach nachzuweisende Eigenschaften zeichnen die Householder-Reflexionen aus: • H ist symmetrisch, d.h., H T = H, • H ist orthogonal , d.h., HH T = H T H = I, • H ist involutorisch, d.h., H 2 = I. Die Householder-Transformationen stimmen dar¨ uber hinaus in zwei Merkmalen mit den im Abschnitt 2.2 betrachteten Gauß-Transformationen u ¨berein. So handelt es sich bei beiden Matrizen um eine Rang-1 Modifikation der Einheitsmatrix. Des weiteren k¨ onnen sowohl die Gauß-Transformationen als auch die Householder-Transformationen dazu verwendet werden, im transformierten Vektor gleichzeitig mehrere Komponenten zu null zu machen. Dem gegen¨ uber l¨ aßt sich mit den im vorangegangenen Abschnitt eingef¨ uhrten Givens-Transformationen nur in einer Komponente eine Null erzeugen. 1

D¨ unnbesetzte Matrizen sind solche Matrizen, bei denen nur wenige Elemente ungleich Null sind Alston Scott Householder (1904–1993), US-amerikanischer Mathematiker und Pionier der numerischen linearen Algebra. Er organisierte die ber¨ uhmten Gatlinburg Conferences u ¨ber Numerische Mathematik, die heute immer noch unter dem Namen Householder Symposia stattfinden. 3 Siehe A. S. Householder: The Theory of Matrices in Numerical Analysis, Blaisdell, New York, 1964 2

3.3 Symmetrisches Eigenwertproblem: QR-Methode

173

Soll nun 0 6= x ∈ Rn mit Hilfe einer Householder-Transformation auf ein Vielfaches des ersten Einheitsvektors e1 ∈ Rn abgebildet werden, dann erh¨alt man  y = Hx =

I−

2 vT v

vv T



 x=x−

2 vT x vT v

 v ≡ −αe1 ,

α ∈ R.

(3.45)

 T  2 vT x v v Hieraus folgt T v = x + αe1 , d.h., v = (x + αe1 ). Da sich die Transforv v 2v T x mationsmatrizen (3.44) f¨ ur v und vˆ ≡ c v, 0 6= c ∈ R, nicht unterscheiden, k¨onnen wir v = x + αe1 , α ∈ R, schreiben. Hiermit berechnet man nun v T x = xT x + αx1

und v T v = xT x + 2αx1 + α2 ,

so daß sich f¨ ur Hx ergibt  Hx =

1−2

xT x + αx1 T x x + 2αx1 + α2

 x − 2α

vT x e1 . vT v

Damit Hx zu einem Vielfachen von e1 wird, muß der Faktor vor x verschwinden. Dies f¨ uhrt auf xT x + αx1 1−2 T = 0 ,→ α2 = xT x, d.h., x x + 2αx1 + α2 α = ±kxk2 .

(3.46)

Bestimmt man somit f¨ ur einen beliebigen Vektor x ∈ Rn den Householder-Vektor v ∈ Rn zu v = x ± kxk2 e1 , dann gilt  Hx =

I−

2 vT v

vv T

 x = ∓kxk2 e1 .

(3.47)

Da α bis auf das Vorzeichen durch die obige Vorschrift bestimmt ist, w¨ahlt man zur Vermeidung von m¨ oglichen Ausl¨ oschungen bei der praktischen Berechnung des Householder-Vektors v = (x1 + α, x2 , . . . , xn )T besser α ≡ sign(x1 ) kxk2 .

(3.48)

Oftmals wird v noch so normalisiert, daß v1 = 1 gilt. Dies ist f¨ ur eine effektive Speicherung des Householder-Vektors sinnvoll; der Teilvektor (v2 , . . . , vn )T wird dann als wesentlicher Teil von v bezeichnet. Eine Matrix A = [a1 , a2 , . . . , an ] ∈ Rn×n l¨ aßt sich ebenfalls mit Hilfe von HouseholderReflexionen in eine obere 4-Gestalt u uhren, indem man sukzessive die Elemente ¨berf¨

174

Kapitel 3 Eigenwertprobleme

unterhalb der Diagonalen eliminiert. Im ersten Schritt einer solchen Transformation werden in der Spalte a1 in den Positionen 2, . . . , n Nullen erzeugt und man erh¨alt   −α(1)  0    (2) (2) A ≡ A(1) → A(2) ≡ H1 A(1) = [ mit  , a2 , a3 , . . . , a(2) .. n ],   . 0 H1 = I −

2 (1) (1) (1) v (1) (v (1) )T , v (1) ≡ a1 + α(1) e1 und α(1) ≡ sign(a11 ) ka1 k2 . (v (1) )T v (1)

Nach dem k-ten Schritt ist A bis auf eine Restmatrix T (k+1) ∈ R(n−k)×(n−k) auf obere 4-Gestalt gebracht:

A(k+1)



×

     =     

0 .. . .. . .. . 0

··· .. . .. .

···

× 0 .. .

···

···

 × ..  .    ··· ×  ,    (k+1)   T

k = 1, . . . , n − 1.

0

Ab der 2. Transformationsmatrix muß darauf geachtet werden, daß bereits erzeugte Nullen nicht wieder zerst¨ ort werden! Man konstruiert deshalb folgende orthogonale Matrizen   Ik 0 Hk+1 = (3.49) ˆ k+1 , 0 H ˆ k+1 ∈ R(n−k)×(n−k) wie im ersten Schritt mit T (k+1) anstelle von A gebilwobei H det wird. Auf diese Weise lassen sich in der n¨achsten Teilspalte unterhalb der Diagonalen Nullen erzeugen. Nach genau n − 1 Schritten erh¨alt man die obere 4-Matrix R ≡ Hn−1 · · · H1 A, d.h., unter Beachtung der Orthogonalit¨at und Symmetrie der Transformationsmatrizen Hi ergibt sich die folgende QR-Faktorisierung von A: A = Q R,

Q ≡ H1 · · · Hn−1 .

(3.50)

Wie man leicht nachrechnet, ergibt sich f¨ ur eine beliebige Matrix A ∈ Rn×n bei der QRFaktorisierung auf der Basis von Householder-Transformationen ein Rechenaufwand von 4/3 n3 flops. Diese Sch¨ atzung geht jedoch davon aus, daß die Matrix Q in faktorisierter Form abgespeichert wird, d.h., in jedem Teilschritt werden nur die wesentlichen Teile der Householder-Vektoren gespeichert. Eine nachtr¨agliche explizite Berechnung der Matrix Q w¨ urde noch einmal 4/3 n3 flops erfordern. Damit ergibt sich dann ein Gesamtaufwand von 8/3 n3 flops.

3.3 Symmetrisches Eigenwertproblem: QR-Methode

175

Im Programm 3.5 ist eine m¨ ogliche Implementierung der Householder-QR-Faktorisierung f¨ ur die Matlab dargestellt. Die Householder-Vektoren werden dabei so normiert, daß v T v = 1 gilt. Dadurch entf¨ allt der Nenner in der Darstellung (3.44). Zur L¨osung eines linearen Gleichungssystems kann wieder auf das Programm 3.4 zur¨ uckgegriffen werden.

Programm 3.5

Householder-QR-Faktorisierung

function [Q,R] = qrhouse(A) % % A: (n x m)-Matrix, n >= m % % Q: orthogonale (n x n)-Matrix % R: (n x m)-Matrix mit oberer(m x m)-Dreiecksmatrix % [n,m]=size(A); Q=eye(n); for k=1:m v=A(k:n,k); nx=norm(v); if nx ~= 0 alpha=sign(v(1))*nx; v(1)=v(1)+alpha; v=v/norm(v); % damit ist v’*v=1 % Q = Q * H Q(:,k:n)=Q(:,k:n)-2*(Q(:,k:n)*v)*v’; % A = H * A A(k:n,k+1:m)=A(k:n,k+1:m)-2*v*(v’*A(k:n,k+1:m)); A(k,k)=-alpha; else error(’Matrix A hat nicht vollen Rang’) end end R=triu(A); end

Beispiel 3.3. Gegeben seien  0   A = 6 8

−4 −3 1

2



 −2  −1

  −2    und b = −6 . 7

(3.51)

Gesucht ist ein x ∈ R3 mit Ax = b. Diese L¨ osung ist mittels einer Householder-QRFaktorisierung von A zu bestimmen. Die Householder-Vektoren v sollen dabei so nor-

176

Kapitel 3 Eigenwertprobleme

miert werden, daß jeweils die erste Komponente gleich Eins ist. Man berechnet:           0 0 1 10 1 p           (1) (1) (1) 2 2 2          a1 =  6 ⇒ v¯ = 6 + | 0 +{z6 + 8} · 0 =  6  ⇒ v = 0.6 α(1) =10 8 8 0 8 0.8   1.00 0.60 0.80    (v (1) )T v (1) = 12 + 0.62 + 0.82 = 2, v (1) (v (1) )T =  0.60 0.36 0.48 0.80 0.48 0.64 Die Householder-Matrix H1 und das neue A(2)  1  2 (1) (1) T H1 = I3 − (1) T (1) v (v ) =  0 (v ) v 0   0 −0.60 −0.80    = −0.60 0.64 −0.48 −0.80 −0.48 0.36 

bestimmen sich zu   0 0 1.00 0.60  2  1 0  − 2 0.60 0.36 0 1 0.80 0.48

−10

1

 A(2) = H1 A(1) =   0 0

2

0.80



 0.48  0.64



 0 −2  5 −1 (2)

Die erste Spalte der (2 × 2)-Restmatrix ist nun a ˆ2 = (0, 5)T . Folgende Berechnungen werden durchgef¨ uhrt: ! ! ! ! p 0 1 5 1 (2) (2) v¯ = + 02 + 5 2 = ⇒ v = | {z } 0 5 5 1 α(2) =5

(v

ˆ 2 = I2 − H

(2) T (2)

) v

2

2

= 1 + 1 = 2,

2 v (2) (v (2) )T = (2) (v )T v (2)

v

(2)

(v

! 1 0 0

1

0 0 −1

0

) =

2 − 2

Somit ergibt sich  1  H2 =  0 0

1

(2) T



 −1 . 0

1 1

! 1

1 1 ! 1 = 1

0 −1

! −1 0

.

3.3 Symmetrisches Eigenwertproblem: QR-Methode

177

Es ist nun

R = A(3) = H2 A(2)

 1   = 0 0

0 0 −1

 −10    −1  0 0 0 0

Schließlich ergibt sich   0 −0.60 −0.80 1    Q = H1 H2 =  −0.60 0.64 −0.48 0 −0.80 −0.48 0.36 0

0 0 −1

 −10 1     0 −2 =  0 −5 5 −1 0 0

1

0

2







0

0.80

   −1  = −0.60 0.48 0 −0.80 −0.36

 2  1 . 2

0.60



 −0.64 . 0.48

Auf der Grundlage dieser QR-Faktorisierung bestimmt sich die L¨osung x des Gleichungssystems Ax = b wie folgt:      0 0.80 0.60 −2 1      T     Rx = Q b =  −0.60 0.48 −0.64 −6 ⇒ x = 2 . −0.80 −0.36 0.48 7 3 

3.3.3

Transformationsmatrizen: Schnelle Givens-Transformationen

Wie im Falle der gew¨ ohnlichen Givens-Transformationen (siehe Abschnitt 3.3.1) lassen sich auch die sogenannten Schnellen Givens-Transformationen am besten anhand eines (2 × 2)-Beispiels darstellen. Gegeben seien ein Vektor x ∈ R2 sowie eine Diagonalmatrix D = diag(d1 , d2 ) ∈ R2×2 c s mit positiven Diagonalelementen. An die Stelle der bekannten Givens-Matrix ( −s c) tritt jetzt die Matrix   β 1 M1 ≡ 1 . (3.52) 1 α1 Mit ihr bilden wir M1T x sowie M1T DM1 =





β x + x2 = 1 1 x1 + α1 x2

d2 + β12 d1 d1 β1 + d2 α1



 d1 β1 + d2 α1 ≡ D1 . d1 + α12 d2

(3.53)

(3.54)

F¨ ur die Multiplikation (3.53) sind somit nur noch 2 Gleitpunkt-Multiplikationen erforderlich. Die Multiplikation mit einer gew¨ ohnlichen Givens-Matrix w¨ urde 4 GleitpunktMultiplikationen ben¨ otigen.

178

Kapitel 3 Eigenwertprobleme

Ist x2 6= 0, dann ergibt sich mit α1 = −

x1 , x2

β1 = −α1

d2 d1

(3.55)

f¨ ur das Produkt (3.53)

M1T x

  x2 (1 + γ1 ) = , 0

γ1 ≡ −α1 β1 =

d2 x21 , d1 x22

(3.56)

d.h., in der zweiten Komponente des Resultate-Vektors wird eine Null erzeugt. Des weiteren geht in (3.54) die Matrix D1 in die Diagonalmatrix

D1 = M1T DM1 =

  d2 (1 + γ1 ) 0 0 d1 (1 + γ1 )

(3.57)

u ¨ber. Gilt analog x1 6= 0 und definiert man 

1 M2 ≡ β2

 α2 , 1

(3.58)

dann ergeben sich mit α2 = −

x2 , x1

β2 = −α2

d1 d2

(3.59)

entsprechende Resultate:

M2T x

d1 x22 d2 x21

(3.60)

  d1 (1 + γ2 ) 0 . 0 d2 (1 + γ2 )

(3.61)

  x1 (1 + γ2 ) = , 0

γ2 = −α2 β2 =

und D2 ≡ M2T DM2 =

Im Unterschied zu den Givens-Transformationen sind die Matrizen M1 und M2 nicht orthogonal. Aus ihnen lassen sich aber die orthogonalen Matrizen −1/2

S1 ≡ D1/2 M1 D1

−1/2

und S2 ≡ D1/2 M2 D2

(3.62)

3.3 Symmetrisches Eigenwertproblem: QR-Methode

179

bilden. Von der Orthogonalit¨ at der Matrizen Si , i = 1, 2, u ¨berzeugt man sich wie folgt: −1/2

SiT Si = Di

−1/2

= Di

−1/2

MiT D1/2 D1/2 Mi Di −1/2

Di Di

−1/2

= Di

−1/2

MiT DMi Di

= I.

F¨ ur die so konstruierten orthogonalen Matrizen S1 und S2 gilt: −1/2

SiT (D−1/2 x) = Di

−1/2

MiT D1/2 D−1/2 x = Di

M1T x,

i = 1, 2.

Somit ist S1T (D−1/2 x) = D1T

  x2 (1 + γ1 ) , 0

S2T (D−1/2 x) = D2T



 x1 (1 + γ2 ) , 0

(3.63)

d.h., die zweite Komponente des Vektors x wird auch wieder in eine Null transformiert. Offensichtlich besteht f¨ ur die Gr¨ oßen γ1 und γ2 der Zusammenhang

γ1 γ2 = 1.

(3.64)

Deshalb l¨ aßt sich stets diejenige Transformation Mi ausw¨ahlen, f¨ ur die der zugeh¨orige Wachstumsfaktor (1 + γi ) nach oben durch 2 beschr¨ankt ist. Wir kommen nun zu folgender Definition. Definition 3.2. Matrizen der Form

M1 =

 β1 1

1 α1



 bzw.

M2 =

1 β2

 α2 , 1

die −1 ≤ αi βi ≤ 0 erf¨ ullen, heißen Schnelle Givens-Transformationen (engl.: fast Gi” vens transformations“).  Die Vormultiplikation mit einer Schnellen Givens-Transformation erfordert im Vergleich mit der gew¨ ohnlichen Givens-Transformation nur die H¨alfte an Multiplikationen. Auch das Zu-Null-Machen einer Komponente kann ohne die explizite Berechnung von Quadratwurzeln realisiert werden! Der (n × n)-Fall l¨ aßt sich analog der gew¨ ohnlichen Givens-Transformationen darstellen. An die Stelle der Matrizen Gkl (siehe Formel (3.36)) treten jetzt Transformationen vom

180

Kapitel 3 Eigenwertprobleme

Typ 1 (Erweiterung von M1 ) 

1

 ..

           F (k, l, α, β) ≡           

.

      ← Zeile k           ← Zeile l      

1 β .. . .. . .. .

... ...

1

... ...

...

1 ..

. 1 ...

1 .. . .. . .. . α 1 ..

.

,

1 ↑ Spalte k

↑ Spalte l

(3.65)

bzw. Transformationen vom Typ 2 (Erweiterung von M2 )             F (k, l, α, β) ≡           

1

 ..

.

      ← Zeile k           ← Zeile l      

1 1 .. . .. . .. .

... ... ...

β

... ...

1 ..

. 1 ...

α .. . .. . .. . 1 1 ..

.

.

1 ↑ Spalte k

↑ Spalte l

(3.66)

Wir wollen nun darstellen, wie sich die Schnellen Givens-Transformationen dazu verwenden lassen, um von einer Matrix A ∈ Rn×n die QR-Faktorisierung zu berechnen. Wie bei den gew¨ ohnlichen Givens-Transformationen f¨ uhrt die sukzessive Anwendung von Schnellen Givens-Transformationen Mj (jede einzelne Matrix Mj soll jetzt eine Transformation vom Typ 1 oder 2 darstellen) zu einer oberen Dreiecksmatrix T MN · · · M2T M1T A = T

obere 4-Matrix.

(3.67)

3.3 Symmetrisches Eigenwertproblem: QR-Methode

181

Setzt man im ersten Schritt D = I, dann gilt M1T M1 = D1 ,

M2T D1 M2 = D2 ,

T MN DN −1 MN = DN .

...,

Es ist aber T D N = MN DN −1 MN T T = MN MN −1 DN −2 MN −1 MN T T T = MN MN −1 MN −2 DN −3 MN −2 MN −1 MN

(3.68)

.. . T T T = MN MN −1 · · · M1 M1 M2 · · · MN .

Mit M ≡ M1 M2 · · · MN lassen sich (3.67) und (3.68) in der Form M T A = T,

DN = M T M

schreiben. Setzt man schließlich −1/2

Q ≡ M DN

,

(3.69)

so ergibt sich −1/2

QT A = DN

−1/2

M T A = DN

T ≡R

obere 4-Matrix.

(3.70)

Die Matrix Q ist orthogonal, da −1/2

QT Q = DN

−1/2

M T M DN

= I.

Wir haben damit das folgende Ergebnis erhalten. Folgerung 3.2. Die orthogonale Matrix Q l¨ aßt sich durch das Paar (M, D) repr¨ asentieren, mit M = M1 M2 · · · MN

und

D = M T M.

(3.71)

Es gilt dann QT A = R

bzw.

A = QR

(3.72)

mit Q ≡ M D−1/2 ,

R ≡ D−1/2 T

und

T ≡ M T A.

(3.73) 

182

Kapitel 3 Eigenwertprobleme

3.3.4

QR-Algorithmus fu ¨ r symmetrische Eigenwertprobleme

In diesem Abschnitt soll die Frage beantwortet werden, wie sich s¨ amtliche Eigenwerte einer reellen symmetrischen Matrix A ∈ Rn×n simultan berechnen lassen. F¨ ur derartige Matrizen ist bekannt (siehe Abschnitt 3.1.2): • A besitzt nur reelle Eigenwerte λ1 , . . . , λn ∈ R und • die Eigenvektoren von A bilden eine Orthonormalbasis η1 , . . . , ηn ∈ Rn , d.h., es gilt: QT AQ = Λ ≡ diag(λ1 , . . . , λn ),

(3.74)

mit Q ≡ [η1 , . . . , ηn ] ∈ Rn×n . Die Formel (3.74) legt nahe, die Matrix A mittels orthogonaler Matrizen in Diago¨ nalgestalt zu u uhren, da die Eigenwerte unter Ahnlichkeitstransformationen inva¨berf¨ riant sind. Versucht man jedoch, eine symmetrische Matrix durch Konjugation mit Householder-Matrizen auf Diagonalgestalt zu bringen, so erweist sich dies als unm¨oglich, wie das folgende Beispiel zeigt:     

× × .. .

× × .. .

··· ···

× × .. .

×

×

···

×





   H1 ·   −→   

× 0 .. . 0

  × ··· × × 0 ··· T  × × ··· ×  × ···  ·H1  .. ..  −→  .. ..  . . . .  × ··· × × × ···

0 × .. .

   . 

×

Anders ist es, wenn man A nur auf Tridiagonalgestalt bringen m¨ochte. In diesem Falle st¨ oren sich die Householder-Matrizen von links und rechts nicht gegenseitig:

      

× × × .. .

× × × .. .

× × × .. .

··· ··· ···

× × × .. .

×

×

×

···

×





     P1 ·   −→     

× × × ··· × × × ··· 0 × × ··· .. .. .. . . . 0 × × ···

× × × .. . ×





   ·P T   1   −→     

× × 0 .. . 0

× 0 × × × × .. .. . . × ×

 ··· 0 ··· ×   ··· ×  . ..  .  ··· × (3.75)

Es gilt hierzu der folgende Satz. Satz 3.8. Es sei eine symmetrische Matrix A ∈ Rn×n gegeben. Dann existiert eine orthogonale Matrix P ∈ Rn×n , die das Produkt von n − 2 Householder-Reflexionen ist, so daß P AP T Tridiagonalgestalt besitzt.

3.3 Symmetrisches Eigenwertproblem: QR-Methode Beweis: Bei Fortsetzung der in (3.75) aufgezeigten Strategie erh¨alt Transformationen P1 , . . . , Pn−2 , mit  × ×  × × ×   T .. . .. Pn−2 · · · P1 A P1T · · · Pn−2 = . .. . | {z } | {z }   × × × T P P × ×

183 man Householder    .  

Damit liegt die behauptete Tridiagonalgestalt vor.



Das Ausgangsproblem (s¨ amtliche Eigenwerte einer reellen symmetrischen Matrix simultan zu berechnen) kann nun auf die Bestimmung der Eigenwerte einer symmetrischen Tridiagonalmatrix zur¨ uckgef¨ uhrt werden. Die folgende Technik, die unter dem Namen QR-Iteration bekannt ist, wurde unabh¨ angig und etwa gleichzeitig von G. F. Francis1 und V. N. Kublanovskaya2 vorgeschlagen. Es handelt sich dabei um eine Modifikation des auf H. Rutishauser3 zur¨ uckgehenden sogenannten LR-Algorithmus. Die Grundidee von Rutishauser4 war die Erzeugung einer Folge von Matrizen {Ak }∞ ur jede Matrix Ak k=1 , A1 ≡ A, nach der folgenden Vorschrift: f¨ wird eine LU -Faktorisierung Ak = Lk Uk durchgef¨ uhrt. Danach wird eine neue Matrix Ak+1 durch Vertauschung der LU -Faktoren erzeugt, d.h., Ak+1 = Uk Lk . Daran schließt sich wieder eine LU -Faktorisierung von Ak+1 an, etc. Man kann nun unter bestimmten Voraussetzungen beweisen, daß die Matrizen Ak gegen eine obere 4-Matrix A∞ konvergieren, deren Diagonalelemente (A∞ )kk mit den Eigenwerten der urspr¨ unglichen Matrix Au ¨bereinstimmen. Die beschriebene LR-Iteration versagt jedoch, wenn eine der entstehenden Matrizen Ak keine LU -Faktorisierung besitzt. Auch treten Schwierigkeiten dadurch auf, daß zwar diese Faktorisierung (theoretisch) existieren kann, aber oftmals (numerisch) ein schlecht konditioniertes Problem darstellt. Wir konzentrieren uns deshalb im weiteren auf die sogenannte QR-Iteration, bei der die beschriebenen Nachteile der LR-Iteration vermieden werden. Formal ergibt sich die QR-Iteration aus der LR-Iteration, indem man in jedem Schritt des Verfahrens die LU Faktorisierung durch eine QR-Faktorisierung ersetzt. Man erzeugt somit eine Folge von Matrizen {Ak }∞ k=1 nach dem im Algorithmus 3.2 beschriebenen Iterationsverfahren. F¨ ur die so erzeugten Matrizen Ak lassen sich nun die folgende Aussagen zeigen. Satz 3.9. Es gilt: • die Ak sind alle konjugiert zu A, 1

J. G. F. Francis: The QR transformation: a unitary analogue to the LR transformation, Part I and II. Comput. J. 4 (1961), pp. 265–272 2 V. N. Kublanovskaya: On some algorithms for the solution of the complete eigenvalue problem. Z. ˘ Vy˘ cisl. Mat. i Mat. Fiz. 1 (1961), pp. 555-570 3 H. Rutishauser: Solution of eigenvalue problems with the LR transformation. Nat. Bur. Standards Appl. Math. Ser. 49 (1958), pp. 47–81 4 Heinz Rutishauser (1918–1970), schweizer Mathematiker und Pionier der Numerischen Mathematik

184

Kapitel 3 Eigenwertprobleme

QR-Iteration A1 = A for k = 1, 2, . . . Ak = Qk Rk (QR-Faktorisierung mittels Givens-Rotationen) Ak+1 = Rk Qk (Vertauschung der Faktoren) end

Algorithmus 3.2: QR-Iteration

• ist A symmetrisch, so auch alle Ak , • ist A symmetrisch und tridiagonal, so auch alle Ak . Beweis: 1) Es seien A = Q R und A0 = R Q. Dann gilt QA0 QT = QRQQT = QR = A. 2) Es gilt: (A0 )T = (A0 )T QT Q = QT RT QT Q = QT AT Q = QT AQ = A0 . 3) Es sei A symmetrisch und tridiagonal. Die orthogonale Matrix Q werde mit n − 1 Givens-Rotationen G12 , . . . , Gn−1,n erzeugt, so daß sich Q zu QT = Gn−1,n · · · G12 darstellt. Man erh¨ alt dann A 

×  ×       

× × ×

 × × .. .

× .. . ×

..

. × ×

     −→   ×  ×

        

×

× ×

R = QT A • × • .. .. . . . .. × × ×

      −→ •   ×  ×

3.3 Symmetrisches Eigenwertproblem: QR-Methode

 −→

×  ×       

× × .. .

A0 = RQ • × • .. .. .. . . . × × × × × ×

185

      •   ×  ×

= QT AQ.

Nach 2) ist A0 wieder symmetrisch. Dies bedeutet jedoch, daß die neu erzeugten und mit •“ gekennzeichneten Elemente (fill-in) verschwinden m¨ ussen. Somit ist ” auch A0 tridiagonal.  Bez¨ uglich der Konvergenz der QR-Iteration gilt der folgende Satz. Satz 3.10. Es sei A ∈ Rn×n symmetrisch und besitze die Eigenwerte λ1 , . . . , λn , mit |λ1 | > |λ2 | > · · · > |λn | > 0. Die Matrizen Ak , Qk und Rk m¨ ogen wie im Algorithmus 3.2 definiert sein. Dann gilt (k) mit Ak = (aij ): • lim Qk = I, k→∞

• lim Rk = Λ ≡ diag(λ1 , . . . , λn ), k→∞



(k) aij

k ! λi f¨ ur i > j. = O λj

Beweis: Siehe z.B. die Monographie von J. H. Wilkinson.1



Bemerkung 3.4. Eine genaue Analyse zeigt, daß das Verfahren auch im Falle mehrfacher Eigenwerte λi = · · · = λj konvergiert. Falls aber λi = −λi+1 gilt, kann keine Konvergenz mehr nachgewiesen werden.  Liegen zwei Eigenwerte λi , λi+1 betragsm¨ aßig dicht beieinander, so konvergiert das Verfahren nur sehr langsam. In diesem Fall verwendet man u ¨blicherweise sogenannte Shift-Strategien. Man versucht hier, die beiden Eigenwerte dichter an den Nullpunkt zu verschieben, um damit den Quotienten |λi+1 /λi | zu verkleinern. In jedem Iterationsschritt k wird ein Shift-Parameter σk eingef¨ uhrt und anstelle von Algorithmus 3.2 der Algorithmus 3.3 verwendet. Der Algorithmus 3.3 erzeugt eine Folge von Matrizen Ak , f¨ ur die gilt: • Ak − σk I = Qk Rk 1

,→

QTk Ak − σk QTk = Rk

,→

J. H. Wilkinson: The Algebraic Eigenvalue Problem, Clarendon Press, Oxford, 1965

186

Kapitel 3 Eigenwertprobleme

QR-Iteration mit Shift A1 = A for k = 1, 2, . . . Ak − σk I = Qk Rk (QR-Faktorisierung mittels Givens-Rotationen) Ak+1 = Rk Qk + σk I (Vertauschung der Faktoren) end

Algorithmus 3.3: QR-Iteration mit Shift

QTk Ak Qk − σk I = Rk Qk , d.h., QTk Ak Qk = Ak+1 . Somit sind Ak und Ak+1 konjugiert zueinander. • die Folge {Ak }∞ k=1 konvergiert gegen Λ mit der Geschwindigkeit   λ i − σ1 (k) × · · · × λi − σk f¨ aij = O ur i > j. λj − σ1 λj − σk Um zu einer Konvergenzbeschleunigung zu gelangen, sollte σk m¨oglichst nahe an den Eigenwerten λi , λi+1 liegen. Zur Bestimmung eines solchen σk wird von J. H. Wilkinson die sogenannte explizite Shift-Strategie vorgeschlagen, die sich wie folgt skizzieren l¨aßt. Das untere Ende der Tridiagonalmatrix Ak werde in der Form .. ..

.

..

.

(k) cn−1

dn

(k)

cn

dn

. (k)

(k)

dargestellt. Die untere (2×2)-Blockmatrix besitzt zwei Eigenwerte. Der Shift-Parameter (k) σk wird nun gleich demjenigen Eigenwert gesetzt, der n¨aher an cn liegt. Bessere Ergebnisse lassen sich mit den impliziten Shift-Strategien erzielen1 . Ihre Darstellung w¨ urde jedoch den Rahmen dieses Textes sprengen. Neben den Eigenwerten interessieren nat¨ urlich auch die zugeh¨origen Eigenvektoren. Sie lassen sich wie folgt numerisch approximieren. Ist Q ∈ Rn×n eine orthogonale Matrix, f¨ ur die gilt A ≈ QT ΛQ, Λ = diag(λ1 , . . . , λn ), 1

J. H. Wilkinson: The Algebraic Eigenvalue Problem, Clarendon Press, Oxford, 1965

3.4 Aufgaben

187

dann approximieren die Spalten von Q die Eigenvektoren von A, d.h., Q ≈ [η1 , η2 , . . . , ηn ]. Damit ergibt sich das im Algorithmus 3.4 dargestellte Gesamt-Verfahren zur Berechnung s¨ amtlicher Eigenwerte und Eigenvektoren einer symmetrischen Matrix. Eine MatlabImplementierung dieses Algorithmus ist im Programm 3.6 angegeben.

QR-Algorithmus 1. Schritt: Man reduziere A mittels Householder-Reflexionen auf Tridiagonalgestalt: A → A1 = P AP T , A1 symmetrisch und tridiagonal, P orthogonal. 2. Schritt: Man approximiere die Eigenwerte von A mit der QR-Iteration unter Verwendung von Givens-Rotationen, die auf A1 angewendet werden: GA1 GT ≈ Λ, (k) G ist das Produkt aller Givens-Rotationen Gij . 3. Schritt: Die Spalten von GP approximieren die Eigenvektoren von A, d.h., G P ≈ [η1 , η2 , . . . , ηn ].

Algorithmus 3.4: QR-Algorithmus

Insgesamt erfordert der obige QR-Algorithmus einen Rechenaufwand von: 1)  4/3 n3 flops f¨ ur die Transformation auf Tridiagonalgestalt sowie 2)  O(n2 ) flops pro Schritt der QR-Iteration.

3.4

Aufgaben

Aufgabe 3.1. Es sei A ∈ Rn×n symmetrisch und besitze die Eigenwerte λ1 , λ2 , . . . , λn . F¨ ur x ∈ Rn und λ ∈ R sei d ≡ Ax − λx. Zeigen Sie: min |λi − λ| ≤ i

kdk2 . kxk2

Aufgabe 3.2. F¨ ur jede der folgenden Behauptungen beweise man, daß sie richtig ist oder gebe ein Gegenbeispiel an. Hierbei sei A eine beliebige (n×n)-dimensionale Matrix. Wir schreiben abk¨ urzend EW“ f¨ ur Eigenwert. ” 1) Falls λ ein EW von A ist und µ eine komplexe Zahl bezeichnet, dann ist λ − µ ein EW von A − µI. 2) Sind A reell und λ ein EW von A, dann ist auch −λ ein EW von A.

188 Programm 3.6

Kapitel 3 Eigenwertprobleme QR-Algorithmus

function [Q,R]=qralg(A,tol,nmax) % % A: symmetrische (n x n)-Matrix % tol: gew¨ unschte relative Genauigkeit (Eingabe nicht notwendig) % nmax: maximale Iterationszahl (Eingabe nicht notwendig) % % Q: in den Spalten sin die normierten Eigenvektoren von A % R: die Eigenwerte von A sind auf der Diagonalen von R % [n,m]=size(A); if nargin == 1, tol=1e-14; nmax=n*50; end Q=eye(n); for k=1:n-2 v=A(k+1:n,k); nx=norm(v); if nx ~= 0 alpha=sign(v(1))*nx; v(1)=v(1)+alpha; v=v/norm(v); % damit ist v’*v=1 % Q = Q * H Q(:,k+1:n)=Q(:,k+1:n)-2*(Q(:,k+1:n)*v)*v’; % A = H * A * H A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-2*v*(v’*A(k+1:n,k+1:n)); A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-2*(A(k+1:n,k+1:n)*v)*v’; A(k+1,k)=-alpha; A(k,k+1)=-alpha; else error(’Matrix A hat nicht vollen Rang’) end end A=triu(A,-1)-triu(A,2); for i=1:nmax [QQ,R]=qrgivens(A); d=diag(R,1); Q=Q*QQ; if norm(d,inf) < tol R=diag(diag(R)); return end A=R*QQ; end error (’maximale Iterationszahl erreicht’)

¯ ein EW von A. 3) Sind A reell und λ ein EW von A, dann ist auch λ 4) Ist λ ein EW von A und ist A nichtsingul¨ar, dann ist λ−1 ein EW von A−1 . 5) Verschwinden alle EWe von A, dann ist A = 0. 6) Ist A diagonalisierbar und alle ihre EWe gleich, dann ist A eine Diagonalmatrix.

3.4 Aufgaben

189

Aufgabe 3.3. 1) Beweisen Sie: F¨ ur jeden Eigenwert λi einer Matrix A ∈ Rn×n und f¨ ur eine beliebige Matrix B ∈ Rn×n gilt entweder det(λi I − B) = 0 oder es ist λi ∈ M ≡ {λ ∈ C : k(λI − B)−1 (A − B)k ≥ 1}. 2) Beweisen Sie mit Hilfe von 1) den Satz von Gerschgorin: F¨ ur die Eigenwerte λ1 , λ2 , . . . , λn von A = (aij ) ∈ Rn×n gilt: λi ∈

n [

Kj ,

n X  Kj ≡ λ : |λ − ajj | ≤ |ajk | .

j=1

k=1 k6=j

Aufgabe 3.4. Es sei A ∈ Rn×n eine Matrix, deren Zeilensummen alle gleich α sind. 1) Man zeige, daß α ein Eigenwert von A ist. 2) Man gebe den zugeh¨ origen Eigenvektor an. Aufgabe 3.5. Es sei A ∈ Rn×n . 1) Man zeige, daß A und AT die gleichen Eigenwerte besitzen. 2) Besitzen auch A und AT die gleichen Eigenvektoren? Man beweise diese Aussage oder gebe ein Gegenbeispiel an. Aufgabe 3.6. Gibt es einen reellen Wert f¨ ur den Parameter α, so daß die Matrix   1 0 α A = 4 2 0  6 5 3 1) ausschließlich reelle Eigenwerte besitzt? 2) nur komplexe Eigenwerte mit nichtverschwindenden Imagin¨arteilen besitzt? Man gebe entweder den Wert von α an, f¨ ur den die Bedingungen erf¨ ullt sind, oder begr¨ unde, warum ein solcher nicht existiert. Aufgabe 3.7. Es sei A ∈ Rn×n symmetrisch, λ ∈ R und u ∈ Rn mit kuk2 = 1. ¨ Beweisen Sie die Aquivalenz folgender Aussagen: 1) Es existiert eine symmetrische Matrix 4A ∈ Rn×n mit (A + 4A)u = λu und k 4 Ak2 ≤ ε. 2) F¨ ur r ≡ Au − λu gilt krk2 ≤ ε. Aufgabe 3.8. Es sei A ∈ Rn×n eine Matrix vom Rang 1. Dann ist A von der Form uv T , wobei u und v zwei n-dimensionale nichtverschwindende Vektoren bezeichnen. 1) Man zeige, daß der Skalar uT v ein Eigenwert von A ist. 2) Wie lauten die anderen Eigenwerte von A?

190

Kapitel 3 Eigenwertprobleme

3) Es werde die Potenzmethode auf A angewendet. Wie viele Iterationen sind erforderlich, damit das Verfahren exakt gegen denjenigen Eigenvektor von A konvergiert, der zum dominanten Eigenwert geh¨ort? Aufgabe 3.9. Es sei A ∈ Rn×n symmetrisch und besitze die Eigenwerte |λ1 | > |λ2 | ≥ · · · ≥ |λn−1 | ≥ |λn |. Das Mises-Rayleigh-Verfahren zur Berechnung von λ1 hat die Form y (0) : Startvektor, y (k+1) = Ay (k) , µk+1 =

(y (k+1) )T y (k) , k = 0, 1, 2, . . . (y (k) )T y (k)

1) Beweisen Sie: µk+1 = λ1 [1 + O(ε2k )] f¨ ur k → ∞ und ε =

λ2 . λ1

2) Welche analoge Beziehung gilt f¨ ur das einfache Mises-Verfahren (Potenzmethode)? 3) Leiten Sie aus obiger Notation eine numerisch brauchbare Realisierung des MisesRayleigh-Verfahrens her! Aufgabe 3.10. Die Matrix A ∈ Rn×n habe die Eigenwerte λ1 > λ2 ≥ · · · ≥ λn−1 ≥ λn . Der Eigenwert λ1 soll mit der Potenzmethode, angewandt auf die Matrix A˜ ≡ A−µI, µ ∈ R berechnet werden. 1) Welcher Zusammenhang besteht zwischen den Eigenwerten λi und den Eigenwer˜ i von A? ˜ ten λ ˜ 1 dominant? 2) F¨ ur welche µ ∈ R ist λ 3) Die Konvergenzgeschwindigkeit derPotenzmethode ur die oben genannten  wird f¨  ˜ i | |λ ˜ 1 | bestimmt. Berechnen Sie µ-Werte durch die Gr¨ oße g(µ) ≡ max |λ i=2,...,n

deren Minimumstellen sowie die zugeh¨ origen Minima. 4) Wie kann λn unter der Voraussetzung λn < λn−1 in den dominanten Eigenwert von A˜ transformiert werden? Aufgabe 3.11. 1) Es sei u ∈ R3 , uT u = 1 und E ≡ {x ∈ R3 : uT x = 0}. Konstruieren Sie eine lineare Abbildung H : R3 → R3 , so daß y = Hx die Spiegelung von x an E ist. 2) Verallgemeinern Sie H f¨ ur den n-dimensionalen Fall. 3) Berechnen Sie kHk2 und H −1 . 4) Berechnen Sie alle Eigenwerte und Eigenvektoren von H. 5) Es seien x, y ∈ Rn mit kxk2 = kyk2 gegeben. Bestimmen Sie ein u ∈ Rn mit uT u = 1, so daß gilt: y = Hx.

3.4 Aufgaben

191

6) Es sei x ∈ Rn , mit x 6= 0, gegeben. Bestimmen Sie ein u ∈ Rn mit uT u = 1 so daß gilt: Hx = ρ e(k) . Hierbei bezeichnet e(k) den k-ten Einheitsvektor und ρ ist eine geeignete reelle Zahl. Schreiben Sie ein Matlab-Programm, das die obige Transformation realisiert. Aufgabe 3.12. Zeigen Sie: 1) Das Eigenwertproblem Ax = λx, A ∈ Rn×n , kann mit Hilfe geeigneter Householder-Transformationen Hk = I − 2u(k) (u(k) )T , (u(k) )T u(k) = 1, k = 1, . . . , n − 2, in die Form By = λy transformiert werden, wobei B ∈ Rn×n eine obere HessenbergMatrix ist und A sowie B gleiche Eigenwerte besitzen. 2) Das Eigenwertproblem Ax = λx, A ∈ Rn×n symmetrisch, kann mit Hilfe der vom Gauß -Algorithmus bekannten Frobenius-Matrizen in die Form By = λy transformiert werden, wobei B ∈ Rn×n eine symmetrische Tridiagonalmatrix ist und A sowie B gleiche Eigenwerte haben. Aufgabe 3.13. Der nachfolgende Algorithmus 3.5 beschreibt das zum QR-Verfahren analoge LR-Cholesky-Verfahren zur simultanen Bestimmung aller Eigenwerte einer positiv definiten Matrix A ∈ Rn×n : LR-Cholesky-Verfahren A1 = A for k = 1, 2, . . . Berechnung der Cholesky-Faktorisierung Ak = Gk GTk Ak+1 = GTk Gk end Algorithmus 3.5: LR-Cholesky-Verfahren

Beweisen Sie: 1) Das LR-Cholesky-Verfahren erzeugt eine Folge von symmetrischen ¨ahnlichen Matrizen Ak . 2) Das LR-Cholesky-Verfahren ist konvergent. Die Folge der Ak konvergiert gegen eine Diagonalmatrix Λ, deren Diagonalelemente gleich den Eigenwerten von A sind. Aufgabe 3.14. Gegeben sei eine Matrix A ∈ R3×3 . Durch links- und/oder rechtsseitige Multiplikationen mit orthogonalen Transformationsmatrizen Qj (Givens- oder Householder-Matrizen) sollen die nichtverschwindenden Elemente von A zu null gemacht werden. Wir betrachten die folgenden drei Matrixstrukturen:       × × 0 × × 0 × × 0 1)  0 × × , 2) × 0 × , 3)  0 0 × . 0 0 × 0 × × 0 0 ×

192

Kapitel 3 Eigenwertprobleme

F¨ ur jede dieser Matrizen entscheide man, welche der unten angegebenen Situationen zutrifft. Die jeweilige Behauptung ist zu begr¨ unden. 1) Die Zielstellung l¨ aßt sich durch eine Folge linksseitiger Multiplikationen mit den Matrizen Qj erreichen; 2) Es gilt nicht 1), aber durch eine Folge links- und rechtsseitiger Multiplikationen mit den Matrizen Qj ist dies m¨ oglich; 3) Das Ziel kann nicht durch eine Folge von links- und rechtseitigen Multiplikationen mit den Matrizen Qj erhalten werden. Aufgabe 3.15. Es sei das verallgemeinerte Eigenwertproblem Ax = λBx mit den Matrizen A, B ∈ Rn×n gegeben. Zeigen Sie: 1) Ist A symmetrisch und B positiv definit, so kann obige Aufgabe in ein Eigenwertproblem Cy = λy mit einer symmetrischen Matrix C ∈ Rn×n und y ∈ Rn u uhrt werden, wobei A und C ¨ ahnliche Matrizen sind. ¨berf¨ Hinweis: Cholesky-Faktorisierung. 2) Falls A, B nicht symmetrisch sind, so kann obige Aufgabe in ein Eigenwertproblem ˜ = λBy, ˜ mit den gleichen Eigenwerten, transformiert werden. Dabei ist A˜ eine Ay ˜ eine obere 4-Matrix. obere Hessenberg-Matrix und B Hinweis: Benutzen Sie Householder -Transformationen zur Realisierung der Fakˆ = QB ˆ und Aˆ = QA; ˆ Q ˆ orthogonale Matrix, B ˆ obere 4-Matrix. torisierungen B ˜ ˜ AZ, ˆ B ˜ = Q ˜ BZ, ˆ Verwenden Sie Givens-Rotationen zur Realisierung von A = Q ˜ Q, Z orthogonale Matrizen. Aufgabe 3.16. Man beweise, daß eine reelle quadratische Matrix A der Ordnung n symmetrisch ist, wenn sie n orthogonale Eigenvektoren besitzt. Aufgabe 3.17. vv T 1) Wie lauten die Eigenwerte der Householder -Matrix H = I − 2 T ∈ Rn×n , wobei v v v ∈ Rn einen nichtverschwindenden Vektor bezeichnet?   c s 2) Welches sind die Eigenwerte der Givens-Transformation G = ∈ R2×2 , −s c wobei c2 + s2 = 1 gilt? Aufgabe 3.18. Man bestimme die Eigenwerte den Elementen:  101 − i,      40  i+j+1   ,  (−1)  i+j−2   40 aij ≡ ,   102       40,     0,

der (100 × 100)-Matrix A = (aij ) mit j=i j 0 f¨ ur alle x ∈ (a, b) (oder entsprechend f 0 (x) < 0 f¨ ur alle x ∈ (a, b)). Gilt andererseits f¨ ur eine Funktion f ∈ C[a, b] die Beziehung f (a)f (b) < 0, dann liegt mindestens eine Nullstelle in (a, b). Von Lindfield und Penny1 werden die folgenden zwei Beispiele nichtlinearer skalarer Gleichungen angegeben, die den unterschiedlichen Charakter der L¨osungen nichtlinearer Gleichungen sehr anschaulich verdeutlichen: 0 = f (x) ≡ x6 − 2x5 − 8x4 + 14x3 + 11x2 − 28x + 12 1

Siehe die Monographie von G. Lindfield and J. Penny: Numerical Methods Using MATLAB. Ellis Horwood, NewYork et al., 1995

4.1 Problemstellung

197 =

(x − 1)3 (x + 2)2 (x − 3),

0 = f (x) ≡ e

x − 10

sin (10x).

(4.4) (4.5)

In der Abbildung 4.1 ist die Funktion f (x) aus (4.4) graphisch dargestellt. Sie besitzt in x = 1 eine dreifache, in x = −2 eine doppelte und in x = 3 eine einfache Wurzel. Wie wir sp¨ ater sehen werden, versagen im Falle mehrfacher Wurzeln die numerischen Standardalgorithmen, so daß sich gewisse Modifikationen der Verfahren erforderlich machen. Dies gilt auch f¨ ur Nullstellen, die sehr dicht beieinander liegen.

Abbildung 4.1: Graph der Funktion f (x) aus (4.4)

F¨ ur nichtlineare Gleichungen, die transzendente Funktionen enthalten, ist es i.allg. nicht m¨ oglich, alle Nullstellen zu berechnen. Entweder ist die genaue Anzahl der Nullstellen nicht bekannt oder aber es gibt unendlich viele Nullstellen. Letztere Situation ist in der Abbildung 4.2 anhand des Graphen der Funktion f (x) aus (4.5) f¨ ur Werte x ∈ (0, 20) dargestellt. Je mehr man das x-Intervall vergr¨ oßert, um so mehr L¨osungen treten auf; sie liegen dar¨ uber hinaus noch sehr dicht beieinander. In den nachfolgenden Abschnitten werden die wichtigsten numerische Verfahren zur L¨ osung skalarer nichtlinearer Probleme betrachtet. Gegeben sei somit eine Gleichung der Form f (x) = 0,

f : R → R.

(4.6)

Numerisch zu bestimmen sind einige oder auch alle reellen Werte der Variablen x, die

198

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Abbildung 4.2: Graph der Funktion f (x) aus (4.5)

dieser Gleichung gen¨ ugen. Die L¨ osungen von (4.6) werden Nullstellen oder auch Wurzeln genannt. Die zugeh¨ origen theoretischen und algorithmischen Untersuchungen sind lokaler Natur, da beim Vorliegen nichtlinearer Zusammenh¨ ange globale Aussagen nur in den seltensten F¨allen erhalten werden k¨ onnen. Aus diesem Grunde hat man neben der Gleichung (4.6) stets noch ein (i.allg. sehr kleines) Intervall I ≡ [a, b] ⊂ R anzugeben, in dem sich diejenige L¨ osung x∗ von (4.6) befindet, die man numerisch approximieren m¨ochte. Man spricht in diesem Zusammenhang vom Lokalisierungsprinzip. Da die L¨osung einer linearen Gleichung keine Schwierigkeiten bereitet, wird die Bestimmung einer L¨osung von (4.6) auf eine i.allg. unendliche Folge linearer Gleichungen zur¨ uckgef¨ uhrt. Diese Strategie wollen wir als Linearisierungsprinzip bezeichnen. Das Lokalisierungs- und das Linearisierungsprinzip stellen die Grundlage f¨ ur alle numerischen Verfahren dar, die in den folgenden zwei Kapiteln betrachtet werden. Bei der obigen Problemstellung handelt es sich um eine der ¨altesten Approximationsaufgaben. Die zugeh¨ origen numerischen Verfahren sind ausschließlich iterativ und variieren vom klassischen Newton-Verfahren (Abschnitt 4.3) bis hin zum QuotientenDifferenzen-Algorithmus f¨ ur Polynomfunktionen, der auf H. Rutishauser zur¨ uckgeht (Abschnitt 4.9.2).

4.2 Fixpunkt-Iteration

199

Das eigentliche Newton-Verfahren wurde 1669 von Isaac Newton1 gefunden und von Joseph Raphson2 im Jahre 1690 erstmalig in der heute u ¨blichen Form aufgeschrieben; es ist daher in der westeurop¨ aischen und amerikanischen Literatur sowohl unter dem Namen Newton- als auch unter dem Namen Newton-Raphson-Verfahren zu finden. Im Russischen bezeichnet man das Verfahren auch als Verfahren von Newton und Kantorowitsch, da von L. W. Kantorowitsch3 wichtige Konvergenzaussagen zum Newton-Verfahren in abstrakten R¨ aumen bewiesen wurden.

4.2

Fixpunkt-Iteration

Wir wollen an dieser Stelle voraussetzen, daß die nichtlineare Gleichung (4.6) bereits in einer sogenannten iterierf¨ ahigen Form (auch Fixpunkt-Gleichung genannt) vorliegt: x = g(x),

g : [a, b] ⊂ R → R.

(4.7)

¨ Die Uberf¨ uhrung von (4.6) in (4.7) ist i.allg. nicht eindeutig und kann oftmals auf vielf¨ altige Weise vorgenommen werden. Eine solche M¨oglichkeit ergibt sich stets mit g(x) ≡ x − f (x). Wie wir aber sehen werden, erweist sich diese spezielle Wahl in den meisten F¨ allen als v¨ ollig ungeeignet. Definition 4.1. Ist die nichtlineare Funktion g auf dem Intervall I ≡ [a, b] definiert und gilt g(x∗ ) = x∗ f¨ ur ein x∗ ∈ I, dann sagt man, daß g den Fixpunkt x∗ in I besitzt.  Bedingungen f¨ ur die Existenz und Eindeutigkeit eines solchen Fixpunktes sind im folgenden Satz angegeben. Satz 4.1. (Variante des Banachschen4 Fixpunktsatzes) 1) Ist g ∈ C[a, b] eine reelle Funktion, die die Bedingung g(x) ∈ [a, b] f¨ ur alle x ∈ [a, b]

(Selbstabbildung)

(4.8)

erf¨ ullt, dann besitzt g mindestens einen Fixpunkt x∗ ∈ [a, b]. 1

Sir Isaac Newton (1643–1727), englischer Naturforscher und Verwaltungsbeamter. Aufgrund seiner Leistungen, vor allem auf den Gebieten der Physik und Mathematik, gilt Newton als einer der bedeutendsten Wissenschaftler aller Zeiten. Die Principia Mathematica werden als eines der wichtigsten wissenschaftlichen Werke eingestuft. 2 Joseph Raphson (1648–1715), englischer Mathematiker. In seinem Buch Analysis aequationum universalis aus dem Jahre 1690 stellte er das Newton-Raphson-Verfahren zur L¨ osung nichtlinearer Gleichungen dar. 3 Leonid Witaljewitsch Kantorowitsch (1912–1986), sowjetischer Mathematiker und Okonom. ¨ Ihm wurde 1975 der Wirtschaftsnobelpreis verliehen. 4 Stefan Banach (1892–1945), polnischer Mathematiker. Er ist der Begr¨ under der modernen Funktionalanalysis.

200

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

2) Es m¨ oge dar¨ uber hinaus g 0 (x) auf (a, b) existieren und stetig sein. Erf¨ ullt g 0 (x) mit einer reellen Konstanten L die Beziehung |g 0 (x)| ≤ L < 1 f¨ ur alle x ∈ (a, b),

(Kontraktion)

(4.9)

dann besitzt g genau einen Fixpunkt x∗ ∈ [a, b]. Beweis: 1) Gilt g(a) = a oder g(b) = b, dann ist die Existenz eines Fixpunktes offensichtlich. Es werde deshalb angenommen, daß g(a) > a und g(b) < b ist. Wir definieren die Funktion h(x) ≡ g(x) − x. Diese ist stetig auf I = [a, b] und erf¨ ullt h(a) = g(a) − a > 0 und h(b) = g(b) − b < 0. Nach dem Zwischenwertsatz existiert ein x∗ ∈ (a, b) mit h(x∗ ) = 0. Somit besteht die Beziehung g(x∗ ) − x∗ = 0, d.h., x∗ ist ein Fixpunkt von g. 2) Es gelte (4.9) und x∗ , x∗∗ seien 2 Fixpunkte in I mit x∗ 6= x∗∗ . Nach dem Mittelwertsatz existiert ein ξ ∈ (a, b) mit |x∗ − x∗∗ | = |g(x∗ ) − g(x∗∗ )| = |g 0 (ξ)| |x∗ − x∗∗ | ≤ L |x∗ − x∗∗ | < |x∗ − x∗∗ |. Aus diesem Widerspruch folgt x∗ = x∗∗ , d.h., der Fixpunkt ist in I eindeutig bestimmt.  Um nun den Fixpunkt einer Funktion g numerisch zu berechnen, w¨ahlt man eine Startn¨ aherung x0 ∈ I und erzeugt eine Folge {xk }∞ k=0 mittels der Iterationsvorschrift: xk = g(xk−1 ),

k = 1, 2, . . .

(4.10)

Konvergiert diese Folge gegen x∗ und ist g stetig, dann gilt: x∗ = lim xk = lim g(xk−1 ) = g( lim xk−1 ) = g(x∗ ), k→∞

k→∞

k→∞

d.h., man erh¨ alt eine L¨ osung von x = g(x). Diese Methode wird Fixpunkt-Iteration genannt. In der Abbildung 4.3 ist ein typischer Verlauf der Fixpunkt-Iteration graphisch veranschaulicht. Eingezeichnet sind die Graphen der Funktionen y = x und y = g(x), die auf der linken bzw. der rechten Seite der Fixpunkt-Gleichung (4.7) stehen. Der Fixpunkt x∗ (kleiner nicht ausgef¨ ullter Kreis) ergibt sich als Schnittpunkt der beiden Kurven. Beginnend mit einem Startwert x0 wird der zugeh¨orige Kurvenpunkt g(x0 ) bestimmt. Die neue Iterierte x1 ergibt sich dann durch Spiegelung an der Geraden y = x. Dieser Prozeß wird solange fortgesetzt, bis man hinreichend nahe an den Schnittpunkt x∗ herangekommen ist (Konvergenz) oder aber sich immer weiter von x∗ entfernt (Divergenz). ∗ Der Abbildung 4.3 ist zu entnehmen, daß hier die Folge {xk }∞ k=0 gegen x konvergiert.

4.2 Fixpunkt-Iteration

201

Abbildung 4.3: Fixpunkt-Iteration

Eine Implementierung der Fixpunkt-Iteration in Form der Matlab-Funktion fixp ist mit dem Programm 4.1 gegeben. Dabei muß eine weitere Funktion g bereitgestellt werden, die die rechte Seite der Fixpunkt-Gleichung x = g(x) beschreibt. Programm 4.1

Fixpunkt-Iteration

function [x,i,ind] = fixp(x0,TOL,N0) % % x0: Startwert; TOL: Toleranz; N0: maximale Iterationsschrittanzahl % % x: letzte Iterierte; i: ben¨ otigte Anzahl an Iterationen % ind: Information ¨ uber den Rechenverlauf, mit % ind=1: Verfahren konvergiert, ’L¨ osung’ x ist berechnet, % ind=2: maximale Iterationsschrittanzahl N0 ¨ uberschritten % x=x0; i=0; while i< N0 xn=g(x); if abs(xn-x) < TOL*(1+abs(x)) ind=1; x=xn; return end i=i+1; x=xn; end % maximale Iterationsschrittanzahl N0 ¨ uberschritten ind=2;

Anhand eines Beispiels sollen die Eigenschaften der Fixpunkt-Iteration demonstriert werden.

202

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Beispiel 4.1. Wir betrachten die Gleichung f (x) ≡ x + ex − 2 = 0.

(4.11)

Sie besitzt im Intervall I = [0, 1] eine L¨ osung, da f ∈ C[0, 1] und f (0)f (1) < 0 ist. Die Gleichung (4.11) kann sofort in die iterierf¨ahige Form (4.7) u uhrt werden, in¨berf¨ dem man x auf der linken Seite allein stehen l¨aßt: x = 2 − ex . Hieraus resultiert die Iterationsvorschrift xk = 2 − exk−1 ,

k = 1, 2, . . .

Die f¨ ur die Anwendung des Programms 4.1 erforderliche Matlab-Funktion von g(x) lautet hier function y = g(x) y = 2 - exp(x);

Verwendet man den Startwert x0 = 0, eine Genauigkeit TOL=10−6 sowie N0=25, dann ergibt sich nach dem Aufruf [x,i,ind] = fixp(0,1e-6,25)

das folgende Ergebnis: ind=2 und x=1.99527, d.h., die maximale Iterationsschrittzahl wird u ¨berschritten. Es ist deshalb sinnvoll, die ersten Glieder der intern erzeugten Folge {xk }∞ k=0 auszugeben: x1 = 1

x2 = −0.71828

x3 = 1.51241

x5 = 1.92095

x6 = −4.82743

etc.

x4 = −2.53766

Offensichtlich liegt keine Konvergenz vor. Jetzt schreiben wir die Gleichung in der Form ex = 2 − x und logarithmieren beide Seiten. Es resultiert x = ln (2 − x). Hieraus ergibt sich die neue Iterationsvorschrift xk = ln (2 − xk−1 ),

k = 1, 2, . . .

Somit hat man nun die Matlab-Funktion function y = g(x) y = log(2-x);

bereitzustellen. Startet man wie zuvor, dann erzeugt das Programm 4.1 das Resultat ind=1 und x=0.44285, d.h., es liegt in diesem Falle Konvergenz vor. Einen Eindruck,

4.2 Fixpunkt-Iteration

203

wie schnell die Folge {xk }∞ alt man, wenn die intern erzeugten Itek=0 konvergiert, erh¨ rierten direkt ausgegeben werden: x1 = 0.69315 x5 = 0.48741 x14 = 0.44202 x30 = 0.44285

x2 = 0.26762 ... x15 = 0.44339

x3 = 0.54950 x12 = 0.44083 x16 = 0.44251

x4 = 0.37191 x13 = 0.44415 ...

Offensichtlich konvergiert das Verfahren relativ langsam.



Das obige Beispiel lehrt, daß sich bei der Anwendung der Fixpunkt-Iteration eine Vorschrift erforderlich macht, nach der im jeweiligen Fall g zu bestimmen ist. Insbesondere sind dabei Kriterien zu ber¨ ucksichtigen, wie: • die Konvergenz der resultierenden Iterationsfolge gegen eine L¨osung x∗ ∈ I von (4.7) sowie • die Geschwindigkeit, mit der die Folge {xk }∞ k=0 konvergiert. Einen ersten Schritt in diese Richtung stellt das im folgenden Satz formulierte Resultat dar. Satz 4.2. Es sei g ∈ C[a, b] und es werde vorausgesetzt, daß f¨ ur alle x ∈ [a, b] die Beziehung g(x) ∈ [a, b] gilt. Des weiteren existiere g 0 auf (a, b) mit |g 0 (x)| ≤ L < 1 f¨ ur alle x ∈ (a, b).

(4.12)

Ist x0 ein beliebiger Startwert aus dem Intervall [a, b], dann konvergiert die durch xk = g(xk−1 ),

k = 1, 2, . . . ,

∗ definierte Folge {xk }∞ k=0 gegen den eindeutigen Fixpunkt x in [a, b].

Beweis: Nach dem Satz 4.1 existiert ein eindeutiger Fixpunkt x∗ in I. Da g das Intervall I in sich selbst abbildet, ist die Folge {xk }∞ ur alle k ≥ 0 definiert und es gilt xk ∈ I k=0 f¨ f¨ ur alle k. Unter Verwendung der Ungleichung |g 0 (x)| ≤ L < 1 und dem Mittelwertsatz ergibt sich |xk − x∗ | = |g(xk−1 ) − g(x∗ )| = |g 0 (ξ)| |xk−1 − x∗ | ≤ L |xk−1 − x∗ |,

ξ ∈ (a, b).

Die sukzessive Anwendung dieser Ungleichung liefert |xk − x∗ | ≤ L |xk−1 − x∗ | ≤ L2 |xk−2 − x∗ | ≤ · · · ≤ Lk |x0 − x∗ |.

(4.13)

Da L < 1 ist, erh¨ alt man schließlich lim |xk − x∗ | ≤ lim Lk |x0 − x∗ | = 0,

k→∞

d.h.,

{xk }∞ k=0



→x .

k→∞



204

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Aus dem obigen Satz l¨ aßt sich sehr einfach eine a priori Fehlerschranke f¨ ur die k-te Iterierte ableiten, in die nur der Startwert x0 eingeht. Folgerung 4.1. Erf¨ ullt g die Voraussetzungen von Satz 4.2, dann ergibt sich die folgende a priori Fehlerschranke: |xk − x∗ | ≤ Lk max {x0 − a, b − x0 },

k = 1, 2, . . .

Beweis: Aus der Formel (4.13) folgt sofort: |xk − x∗ | ≤ Lk |x0 − x∗ | ≤ Lk max {x0 − a, b − x0 },

da x∗ ∈ I ist.



Eine weitere (genauere) a priori Fehlerschranke f¨ ur xk l¨aßt sich gewinnen, wenn man das Ergebnis des ersten Iterationsschrittes x1 mit hinzuzieht. Folgerung 4.2. Erf¨ ullt g die Voraussetzungen von Satz 4.2, dann gilt: |xk − x∗ | ≤

Lk |x0 − x1 |, 1−L

k = 1, 2, . . .

Beweis: F¨ ur k ≥ 1 gilt: |xk+1 − xk | = |g(xk ) − g(xk−1 )| ≤ L |xk − xk−1 | ≤ · · · ≤ Lk |x1 − x0 |. Somit ist f¨ ur l > k ≥ 1: |xl − xk | = |xl − xl−1 + xl−1 − · · · + xk+1 − xk | ≤

|xl − xl−1 | + |xl−1 − xl−2 | + · · · + |xk+1 − xk |

≤ Ll−1 |x1 − x0 | + Ll−2 |x1 − x0 | + · · · + Lk |x1 − x0 | = Lk (1 + L + L2 + · · · Ll−k−1 ) |x1 − x0 |. Es ist aber nach dem Satz 4.2: lim xl = x∗ , so daß l→∞

|x∗ − xk | = lim |xl − xk | ≤ Lk |x1 − x0 | l→∞

∞ X i=0

Li =

Lk |x1 − x0 |. 1−L



Die beiden Folgerungen lassen erkennen, daß die Konvergenzgeschwindigkeit der Fixpunkt-Iteration sehr stark durch die Schranke L an die erste Ableitung von g beeinflußt wird. Insbesondere h¨ angt die Konvergenzgeschwindigkeit von dem Term Lk /(1 − L) ab. Dies impliziert, daß um so schnellere Konvergenz vorliegt, je kleiner L ist. F¨ ur L ≈ 1 erweist sich die Fixpunktiteration als ein extrem langsames Verfahren.

4.3 Newton-Verfahren

4.3

205

Newton-Verfahren

Das Newton-Verfahren ist eine der bekanntesten und am weitesten verbreiteten Techniken zur L¨ osung nichtlinearer Gleichungen. Seine Herleitung kann auf mindestens drei unterschiedlichen Wegen erfolgen, die in der Literatur auch tats¨achlich beschritten werden: • geometrisch als Tangentenmethode, • analytisch als spezielles Taylorpolynom oder • rechentechnisch als einfaches Verfahren zur Beschleunigung der Konvergenz der Fixpunkt-Iteration. Wir wollen mit dem zweiten Weg beginnen, wobei wir von den nachfolgend genannten Voraussetzungen ausgehen. Voraussetzung 4.1. Es m¨ oge gelten: • f ∈ C2 [a, b], • das Intervall [a, b] sei dabei so gew¨ ahlt, daß f (a) f (b) < 0 gilt. Wegen der Stetigkeit von f folgt daraus unmittelbar die Existenz mindestens einer Nullstelle x∗ von (4.6) in diesem Intervall, • f 0 (x∗ ) 6= 0, und • nach dem Lokalisierungsprinzip werden alle Untersuchungen nur in einer (sehr) kleinen Umgebung um x∗ durchgef¨ uhrt. Bezeichnet x ˜ eine N¨aherung f¨ ur x∗ , dann ∗ ist stets davon auszugehen, daß die Differenz |˜ x − x | sehr klein ist, zumindest soll |˜ x − x∗ | < 1 gelten.  Die dritte Voraussetzung ist ganz wesentlich f¨ ur die Konstruktion numerischer Verfahren. Bevor wir mit der Herleitung des Newton-Verfahrens fortfahren, m¨ochten wir hierzu einige Bemerkungen machen. Die Voraussetzung f 0 (x∗ ) 6= 0 beschreibt mathematisch den Sachverhalt, daß es sich bei x∗ um eine einfache Nullstelle der Gleichung f (x) = 0 handelt. Hierdurch werden beispielsweise solche Probleme wie f (x) = x2 , bei welchen x∗ = 0 eine mehrfache Wurzel darstellt, ausgeschlossen. Insbesondere folgt aus der Bedingung f 0 (x∗ ) 6= 0 die Isoliertheit der Nullstelle x∗ im Sinne der folgenden Definition. Definition 4.2. Eine L¨ osung x∗ der Gleichung f (x) = 0 wird isoliert genannt, wenn es eine (beliebig kleine!) Umgebung um x∗ gibt, in der keine weitere L¨osung liegt.  An die Stelle der Eindeutigkeit von L¨ osungen linearer Gleichungen tritt bei nichtlinearen Gleichungen der oben definierte Begriff der Isoliertheit. Er ist Ausdruck daf¨ ur, daß f¨ ur nichtlineare Probleme i.allg. nur noch eine lokale Analyse m¨oglich ist. So garantiert die

206

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Isoliertheit von x∗ zumindest lokal (in einer kleinen Umgebung um x∗ ) die Eindeutigkeit dieser L¨ osung. Wir wollen uns nun wieder der Konstruktion des Newton-Verfahrens zuwenden. Das Taylorpolynom 2. Grades von f (x), entwickelt an der Stelle x ˜, lautet: f (x) = f (˜ x) + f 0 (˜ x)(x − x ˜) + f 00 (ξ(x))

(x − x ˜)2 , 2

(4.14)

wobei ξ(x) zwischen x und x ˜ liegt. Da f (x∗ ) = 0 ist, ergibt die Formel (4.14) f¨ ur x = x∗ : 0 = f (˜ x) + f 0 (˜ x)(x∗ − x ˜) + f 00 (ξ(x∗ ))

(x∗ − x ˜)2 . 2

Wegen der Annahme, daß |˜ x − x∗ | < 1 ist (siehe die Voraussetzung 4.1), erweist sich ∗ 2 |˜ x − x | als noch viel kleiner. Somit kann diese Gr¨oße in erster N¨aherung vernachl¨assigt werden und es resultiert 0 ≈ f (˜ x) + f 0 (˜ x)(x∗ − x ˜). Die Aufl¨ osung der obigen gen¨ aherten“ Gleichung nach x∗ f¨ uhrt auf ” f (˜ x) x∗ ≈ x ˜− 0 . f (˜ x)

(4.15)

Der Nenner f 0 (˜ x) verschwindet offensichtlich nicht, da wir davon ausgegangen sind, daß x ˜ sehr nahe bei x∗ liegt und die L¨ osung x∗ die Bedingung f 0 (x∗ ) 6= 0 erf¨ ullt, so2 wie f ∈ C [a, b] ist. Der auf der rechten Seite stehende Wert stellt i.allg. eine bessere Approximation von x∗ dar als die gegebene N¨aherung x ˜. Weist man nun x ˜ diesen neuen Wert zu und wiederholt den obigen Prozeß, dann ist durch die Formel (4.15) ein Iterationsschritt des sogenannten Newton-Verfahrens erkl¨art. Ausgehend von einem noch geeignet zu w¨ ahlenden Startwert x0 erzeugt dieses eine Folge {xk }∞ k=0 mittels der Vorschrift: xk = xk−1 −

f (xk−1 ) , f 0 (xk−1 )

k = 1, 2, . . .

(4.16)

Die Iteration (4.16) wurde in der vorliegenden Form erstmalig von J. Raphson im Jahre 1690 vorgeschlagen. Sie wird jedoch u ¨blicherweise nach Isaac Newton benannt, da dieser bereits einige Jahre fr¨ uher eine ¨ ahnliche Technik entwickelte. Der Ursprung der Iterationsverfahren zur L¨ osung nichtlinearer Gleichungen l¨aßt sich ungef¨ahr 600 Jahre zur¨ uckverfolgen. So geht auf al-K˜ ash˜i 1 eine sehr elegante Methode zur L¨osung der kubischen Gleichung sin 3α = 3x − 4x3 zur¨ uck, die als Vorl¨aufer des Newton-Verfahrens gedeutet werden kann. Auch F. Vieta besch¨ aftigte sich bereits mit numerischen Techniken zur Behandlung nichtlinearer Gleichungen. Ihm wird von den Historikern ein nicht unbedeutender Einfluß auf den jungen Newton zugeschrieben. 1

Ghiyath al-Din Jamshid Mas’ud al-K˜ ash˜i (1380–1429), Iranischer Astronom und Mathematiker, der am Observatorium von Samarkand arbeitete und an der dort neu gegr¨ undeten Universit¨ at lehrte

4.3 Newton-Verfahren

207

Das Newton-Verfahren l¨ aßt sich auch als eine spezielle Form der Fixpunkt-Iteration xk = g(xk−1 ), k = 1, 2, . . . , interpretieren, indem man die zugeh¨orige Funktion g(x) wie folgt definiert: g(x) ≡ x −

f (x) . f 0 (x)

(4.17)

In der Abbildung 4.4 ist ein Beispiel f¨ ur den graphischen Verlauf der Newton-Iteration dargestellt.

Abbildung 4.4: Newton-Verfahren

Im Gegensatz zur Abbildung 4.3 kann hier die gegebene Funktion f (x) direkt eingezeichnet werden. Man beginnt wieder mit einem Startwert x0 und berechnet den Funktionswert f (x0 ). Verschwindet dieser, dann hat man bereits die Nullstelle x∗ vorliegen, was in der Praxis aber kaum der Fall sein wird. Anderenfalls berechnet man noch f 0 (x0 ) und legt durch den Punkt (x0 , f (x0 )) die Tangente an den Graphen von f (x). In der Terminologie der Schulmathematik verwendet man hierzu die Punkt-RichtungsGleichung (unter Verwendung von x0 , f (x0 ) und f 0 (x0 )). Diese Tangente stellt nach dem Linearisierungsprinzip die gesuchte lineare Ersatzfunktion dar, die jedoch nach dem Lokalisierungsprinzip nur in einem streng lokalen Sinne die Nichtlinearit¨at hinreichend gut approximiert. Als neue N¨ aherung x1 wird nun die Nullstelle der Tangente (d.h. deren Schnittpunkt mit der x-Achse) verwendet. Die beschriebene Strategie setzt man jetzt solange fort, bis die Iterierten der Nullstelle x∗ hinreichend nahe gekommen

208

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

sind (Konvergenz) oder aber man feststellt, daß sie sich von x∗ wegbewegen bzw. um die Nullstelle hin- und herspringen und diese somit nie erreichen k¨onnen (Divergenz). Offensichtlich ist in der Abbildung 4.4 ein konvergenter Fall dargestellt. Schließlich sollte noch bemerkt werden, daß wir hiermit den am Anfang dieses Abschnittes genannten zweiten Weg zur Herleitung des Newton-Verfahrens beschritten haben, n¨amlich den geometrischen Zugang als Tangentenmethode. Man beachte: Bei der allgemeinen Fixpunkt-Iteration wird die nichtlineare Gleichung ebenfalls (trivial!) linearisiert, indem man die Iterierte xk−1 in die rechte Seite g(x) einsetzt. In diesem Falle spricht man auch von einem Abt¨oten“ der Nichtlinearit¨at. ” Das Newton-Verfahren kann nun wie im Programm 4.2 angegeben, in eine MatlabFunktion u uhrt werden. Vom Anwender sind zwei weitere Funktionen f und fstrich ¨berf¨ bereitzustellen, die die Funktion f (x) bzw. deren Ableitung f 0 (x) beschreiben. Programm 4.2

Newton-Verfahren

function [x,i,ind] = newton1(x0,TOL1,TOL2,N0); % % x0: Startwert; TOL1, TOL2: Toleranzen; N0: maximale Iterationsschrittanzahl % % x: letzte Iterierte; i: ben¨ otigte Anzahl an Iterationen % ind: Information ¨ uber den Rechenverlauf, mit % ind=1: Verfahren konvergiert, ’L¨ osung’ x ist berechnet, % ind=2: maximale Iterationsschrittanzahl N0 ¨ uberschritten % x=x0; i=0; while i < N0 fx=f(x); if abs(fx) < TOL1 % x ist ’L¨ osung’ ind=1; return end fsx=fstrich(x); if fsx == 0 % Newtonverfahren nicht durchf¨ uhrbar ind=3; return end % L¨ osung der linearen Gleichung fsx*y=-fx y=-fx/fsx; if abs(y) < TOL2*(1+abs(x)) % x ist ’L¨ osung’ ind=1; return end i=i+1; x=x+y; end % maximale Iterationsschrittanzahl N0 ¨ uberschritten ind=2;

4.3 Newton-Verfahren

209

Bez¨ uglich der Konvergenz des Newton-Verfahrens gilt der folgende Satz. Satz 4.3. Es sei f ∈ C2 [a, b]. Ist x∗ ∈ [a, b] eine L¨ osung von (4.6), f¨ ur die f 0 (x∗ ) 6= 0 gilt, dann existiert ein δ > 0, so daß das Newton-Verfahren f¨ ur jede Startn¨ aherung ∗ x0 ∈ [x∗ − δ, x∗ + δ] eine Folge {xk }∞ erzeugt, die gegen x konvergiert. k=0 Beweis: Der Beweis basiert auf der Fixpunkt-Gleichung x = g(x), mit g(x) nach (4.17). Um den Satz 4.2 anwenden zu k¨ onnen, ist ein Intervall I1 ≡ [x∗ − δ, x∗ + δ] ⊂ I zu bestimmen, f¨ ur welches gilt: • g bildet I1 in sich selbst ab, und • |g 0 (x)| ≤ L < 1 f¨ ur x ∈ I1 . 1) Da f 0 (x∗ ) 6= 0 und f 0 stetig ist, l¨ aßt sich ein δ1 > 0 finden, so daß f 0 (x) 6= 0 f¨ ur ∗ ∗ x ∈ [x − δ1 , x + δ1 ] ⊂ I. Damit ist g definiert und stetig auf [x∗ − δ1 , x∗ + δ1 ]. Gleiches gilt auch f¨ ur g 0 (x) = 1 −

f 0 (x)f 0 (x) − f (x)f 00 (x) f (x)f 00 (x) = , 0 2 [f (x)] [f 0 (x)]2

da f ∈ C2 [a, b] und g ∈ C1 [x∗ − δ1 , x∗ + δ1 ]. In der L¨osung wird g 0 (x∗ ) =

f (x∗ )f 00 (x∗ ) = 0. [f 0 (x∗ )]2

Da g 0 stetig ist, impliziert diese Gleichung die Existenz eines δ, mit 0 < δ ≤ δ1 und |g 0 (x)| ≤ L < 1 f¨ ur x ∈ [x∗ − δ, x∗ + δ]. 2) Es verbleibt noch zu zeigen, daß g : [x∗ − δ, x∗ + δ] → [x∗ − δ, x∗ + δ]. Ist x ∈ [x∗ − δ, x∗ + δ], dann folgt f¨ ur ein ξ zwischen x und x∗ : |g(x) − x∗ | = |g(x) − g(x∗ )| = |g 0 (ξ)||x − x∗ | ≤ L |x − x∗ | < |x − x∗ |. Wegen x ∈ [x∗ − δ, x∗ + δ] gilt: |x − x∗ | ≤ δ

,→

|g(x) − x∗ | < δ

,→

g : [x∗ − δ, x∗ + δ] → [x∗ − δ, x∗ + δ].

Damit sind alle Voraussetzungen des Satzes 4.2 erf¨ ullt, d.h., {xk }∞ k=1 :

xk = g(xk−1 ),

k = 1, 2, 3, . . . ,

mit g(x) ≡ x −

f (x) f 0 (x)

konvergiert gegen x∗ f¨ ur einen beliebigen Startwert x0 ∈ [x∗ − δ, x∗ + δ].



210

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Ein wesentlicher Nachteil des Newton-Verfahrens besteht darin, daß die Ableitung f 0 (x) analytisch berechnet werden muß, d.h., das Verfahren ist nicht direkt implementierbar. Zur Vermeidung dieses Problems n¨ ahert man u ¨blicherweise den Differentialquotienten durch einen zugeh¨ origen Differenzenquotienten an. Die naheliegende Approximation f 0 (xk−1 ) ≈

f (xk−1 + h) − f (xk−1 ) , h

h > 0 hinreichend klein,

w¨ urde jedoch in jedem Schritt eine zus¨ atzliche Funktionswertberechnung f (xk−1 + h) ben¨ otigen. Aus der Sicht des erforderlichen Rechenaufwandes ist es deshalb g¨ unstiger, f¨ ur die gen¨ aherte Berechnung der Ableitungswerte nur Funktionswerte in den Iterierten, d.h., f (xi ), i ∈ {0, 1, 2, . . .}, zuzulassen. Diese Funktionswerte werden f¨ ur das NewtonVerfahren sowieso ben¨ otigt. Man erh¨ alt daraus die Approximationsvorschrift f 0 (xk−1 ) ≈

f (xk−1 ) − f (xk−2 ) , xk−1 − xk−2

deren Genauigkeit sicher dann ausreicht, wenn die Iterierten bereits nahe bei der L¨osung liegen. Setzt man diesen N¨ aherungsausdruck in die Formel (4.16) ein, so resultiert die, unter dem Namen Sekanten-Verfahren bekannte Methode

xk = xk−1 −

f (xk−1 )(xk−1 − xk−2 ) , f (xk−1 ) − f (xk−2 )

k = 2, 3, . . .

(4.18)

Wie die Abbildung 4.5 zeigt, approximiert man auch bei dieser Strategie die nichtlineare Funktion f (x) lokal durch eine lineare Ersatzfunktion (Lokalisierungs- und Linearisierungsprinzip). Im Gegensatz zum Newton-Verfahren verwendet man beim SekantenVerfahren als lineare Ersatzfunktion eine Sekante, und zwar diejenige, die durch die Punkte (xk , f (xk )) und (xk−1 , f (xk−1 )) verl¨auft. Somit ist jetzt die Gerade, die die nichtlineare Funktion lokal approximiert, durch die sogenannte Zweipunkte-Gleichung festgelegt. Der Schnittpunkt dieser linearen Ersatzfunktion mit der x-Achse (Nullstelle) wird wiederum als N¨ aherung f¨ ur die L¨ osung x∗ der Gleichung (4.6) verwendet. Die formelm¨ aßige Darstellung (4.18) des Sekanten-Verfahrens ist jedoch f¨ ur die Implementierung auf einem Rechner nicht gut geeignet, da h¨aufig ein Exponenten¨ uberlauf auftritt. Die folgende Umsetzung des Verfahrens (siehe auch das obige Programm 4.3) verhindert diesen Exponenten¨ uberlauf und m¨ogliche Ausl¨ oschungen, wenn man nur sichert, daß in jedem Iterationsschritt die Bedingung |f (xk−1 )| < |f (xk−2 )| erf¨ ullt ist (anderenfalls hat man lediglich xk−1 und xk−2 miteinander zu vertauschen):

xk = xk−1 −

(xk−2 − xk−1 )sk , 1 − sk

sk ≡

f (xk−1 ) , f (xk−2 )

k = 2, 3, . . .

(4.19)

4.4 Das Verfahren von M¨ uller

211

Abbildung 4.5: Sekanten-Verfahren

Im Programm 4.3 ist das Sekanten-Verfahren als Matlab-Funktion sekante dargestellt. Der Anwender hat eine weitere Matlab-Funktion f bereitzustellen, die die Funktion f (x) der Gleichung f (x) = 0 beschreibt. Bemerkung 4.1. Das Sekanten-Verfahren ist kein Spezialfall der gew¨ohnlichen Fixpunkt-Iteration xk = g(xk−1 ), wie wir sie am Anfang dieses Kapitels kennengelernt haben. Das Sekanten-Verfahren ist n¨ amlich von der allgemeinen Gestalt xk = g(xk−1 , xk−2 ), d.h., xk wird sowohl aus xk−1 als auch aus xk−2 berechnet. Eine solche Iterationsvorschrift, die auf zwei bereits berechneten Iterierten basiert, nennt man ZweischrittVerfahren, w¨ ahrend die Fixpunkt-Iteration und das Newton-Verfahren typische Vertreter eines Einschritt-Verfahrens sind. Gehen in die Funktion g mehr als nur eine Iterierte ein, dann spricht man allgemein von einem Mehrschritt-Verfahren. 

4.4

Das Verfahren von Mu ¨ ller

Die bisher betrachteten numerischen Verfahren zur Behandlung einer skalaren nichtlinearen Gleichung basieren alle auf dem Linearisierungsprinzip: die nichtlineare Funktion

212 Programm 4.3

Kapitel 4 Nichtlineare Gleichungen in einer Variablen Sekanten-Verfahren

function [x,i,ind] = sekante(x0,x1,TOL1,TOL2,N0); % % x0,x1: Startwerte; TOL1,TOL2: Toleranzen % N0: maximale Iterationsschrittanzahl % % x: letzte Iterierte; i: ben¨ otigte Anzahl an Iterationen % ind: Information ¨ uber den Rechenverlauf, mit % ind=1: Verfahren konvergiert, ’L¨ osung’ x ist berechnet, % ind=2: maximale Iterationsschrittanzahl N0 ¨ uberschritten % i=0; qa=f(x0); qn=f(x1); if abs(qa) > abs(qn) xa=x0; xn=x1; else xa=x1; xn=x0; s=qn; qn=qa; qa=s; end while i < N0 s=qn/qa; r=1-s; t=s*(xa-xn); x=xn-t/r; fx=f(x); if t == 0 % Sekantenverfahren nicht durchf¨ uhrbar ind=3, return end x=xn-t/r; if abs(fx) < TOL1 % x ist ’L¨ osung’ ind=1; return end if abs(x-xn) < TOL2*(1+abs(x)) % x ist ’L¨ osung’ ind=1; return end i=i+1; if abs(fx) > abs(qn) xa=x; qa=fx; else xa=xn; qa=qn; xn=x; qn=fx; end end % maximale Iterationsschrittanzahl N0 ¨ uberschritten ind=2;

f (x) wird lokal durch eine Gerade ersetzt und der Schnittpunkt dieser mit der x-Achse ergibt eine N¨ aherung f¨ ur die gesuchte L¨ osung x∗ . Es liegt nun der Gedanke nahe, anstelle einer linearen Ersatzfunktion eine quadratische Parabel zu verwenden. Die hieraus

4.4 Das Verfahren von M¨ uller

213

resultierende Methode, die im folgenden kurz vorgestellt werden soll, wird u ¨blicherweise als das Verfahren von M¨ uller 1 bezeichnet (in der englischsprachigen Literatur wird dieses Verfahren auch Muller’s method genannt). Es seien drei paarweise verschiedene Punkte (x0 , f (x0 )),

(x1 , f (x1 )),

(x2 , f (x2 ))

auf dem Graphen der Funktion f (x) in der N¨ ahe von (x∗ , 0) gegeben. Durch diese Punkte ist ein quadratisches Polynom P2 (x) eindeutig festgelegt. Eine passende“ Nullstelle ” von P2 (x) wird nun als neue (verbesserte) Approximation der Wurzel x∗ von (4.6) verwendet. Ist das zugeh¨ orige Residuum noch zu groß, dann w¨ahlt man wiederum drei Kurvenpunkte (einschließlich der soeben ermittelten neuen N¨aherung) aus und setzt den Prozeß entsprechend fort. Wir wollen ohne Einschr¨ ankung der Allgemeinheit annehmen, daß x2 augenblicklich die beste Approximation der Wurzel x∗ darstellt. Dann werde die Variablentransformation y = x − x2 durchgef¨ uhrt. Wir setzen des weiteren h0 ≡ x0 − x2 und h1 ≡ x1 − x2 . Das quadratische Polynom in der neuen Variablen y sei P2 (y) ≡ a y 2 + b y + c. Wir bestimmen nun die Koeffizienten, indem P2 (y) an drei Punkten berechnet wird: y = h0 : a · h20 + b · h0 + c = f (x0 ) ≡ f0 , y = h1 : a · h21 + b · h1 + c = f (x1 ) ≡ f1 , y=0:

(4.20)

a · 02 + b · 0 + c = f (x2 ) ≡ f2 .

Aus der dritten Gleichung in (4.20) ergibt sich c = f2 . Substituiert man dies in die ersten beiden Gleichungen von (4.20) und verwendet die Definitionen u0 ≡ f0 − f2 , u1 ≡ f1 − f2 , dann resultiert das System a h20 + b h0 = f0 − f2 = u0 , a h21 + b h1 = f1 − f2 = u1 .

(4.21)

Eine L¨ osung von (4.21) l¨ aßt sich nun mit der Cramerschen Regel ermitteln. Die zu1

D. E. M¨ uller: A method for solving algebraic equations using an automatic computer. Math. Tables Aids Comput. 10 (1956), pp. 208–215

214

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

geh¨ origen Determinanten berechnen sich zu 2 h0 h0 = h0 h1 (h0 − h1 ), D = 2 h1 h1 u0 h0 = u0 h1 − u1 h0 , D1 = u1 h1 2 h0 u0 = u1 h20 − u0 h21 . D2 = 2 h1 u1

(4.22)

Somit ergeben sich f¨ ur die Koeffizienten a und b die Werte

a=

D1 D

und b =

D2 . D

Nun kann man die Wurzeln y = z1 und y = z2 des Polynoms P (y) bestimmen: z1,2 = −





2c . b2 − 4ac

(4.23)

Aus Stabilit¨ atsgr¨ unden wird man diejenige Wurzel in (4.23) verwenden, die den kleinsten Absolutbetrag besitzt (d.h.: ist b > 0, dann w¨ahlt man im Nenner das Pluszeichen; ist b < 0, dann das Minuszeichen; ist b = 0, dann kann + oder − verwendet werden). Die neue (verbesserte) Approximation f¨ ur x∗ ergibt sich schließlich zu x3 = x2 + z1(2) .

(4.24)

Nachdem x3 berechnet wurde, braucht das Verfahren nur noch reinitialisiert zu werden. Hierzu w¨ ahlt man x1 und x2 als diejenigen zwei Werte in der Menge {x0 , x1 , x2 } aus, die am n¨ achsten zu x3 liegen. Das Verfahren wird dann mit x1 , x2 und x3 fortgesetzt (anstelle von x0 , x1 , x2 ), d.h., man bestimmt entsprechend eine neue N¨aherung x4 . Damit ist ein Iterationsschritt des Verfahrens von M¨ uller erkl¨art. Es erfordert nur die Berechnung eines Funktionswertes pro Iterationsschritt und kommt ohne Ableitungen von f (x) aus. Ist a = 0, dann geht P2 (x) in eine Gerade und somit das Verfahren von M¨ uller in das Sekantenverfahren u ¨ber. Sind a = b = 0, dann liegt die Situation f (x0 ) = f (x1 ) = f (x2 ) vor. In diesem Falle muß man die Iteration mit ver¨anderten Startwerten neu beginnen. Obwohl das Verfahren von M¨ uller i.allg. zur Berechnung reeller Wurzeln von f (x) verwendet wird, kann es trotzdem vorkommen,√daß man komplexwertige Approximationen erh¨ alt. Verantwortlich hierf¨ ur ist der Term b2 − 4ac in (4.23). In diesen F¨allen werden die Imagin¨ arteile jedoch betragsm¨ aßig klein sein und es ist deshalb zul¨assig, sie gleich Null zu setzen. Damit werden die Berechnungen wieder auf reelle Zahlen zur¨ uckgef¨ uhrt.

4.5 Intervall-Verfahren

215

Das Sekanten-Verfahren und das Verfahren von M¨ uller legen nun folgende Verallgemeinerung nahe: Angenommen, man kennt k + 1 verschiedene Approximationen xi−k , . . . , xi−1 , xi einer Nullstelle x∗ von f (x). Dann bestimme man das Interpolationspolynom Q(x) vom Grade k mittels der Interpolationsbedingungen (siehe hierzu auch die Ausf¨ uhrungen im Kapitel 6) Q(xi−j ) = f (xi−j ), j = 0, 1, . . . , k, und w¨ ahle als neue Approximation xi+1 diejenige Wurzel von Q(x), die am n¨achsten zu xi liegt. F¨ ur k = 1 erh¨ alt man das Sekanten-Verfahren, w¨ahrend sich f¨ ur k = 2 das Verfahren von M¨ uller ergibt. Die Verfahren f¨ ur k ≥ 3 werden nur sehr selten betrachtet, da man f¨ ur die Wurzeln der zugeh¨ origen Interpolationspolynome keine einfach auszuwertenden Formel zur Hand hat.

4.5

Intervall-Verfahren

Die bisher betrachteten Verfahren erzeugen eine Zahlenfolge, die unter geeigneten Voraussetzungen gegen eine L¨ osung von (4.6) konvergiert. Es gibt auch eine Vielzahl von Methoden, die anstelle einer Zahlenfolge eine Intervallfolge generieren, wobei die einzelnen Intervalle die zu approximierende L¨ osung x∗ einschließen. Ein solches IntervallVerfahren nennt man konvergent, wenn die L¨ ange der zugeh¨origen Intervalle gegen Null geht. Der Hauptvorteil der Intervall-Verfahren ist in ihrer Natur begr¨ undet; man kann unmittelbar auf eine strenge Fehlereinschließung zur¨ uckgreifen. Ist n¨amlich [a, b] ein Intervall, welches die L¨ osung x∗ enth¨ alt, dann ergibt sich unmittelbar |a − x∗ | ≤ |a − b|. Der Nachteil dieser neuen Verfahrensklasse ist jedoch, daß ein Startintervall gefunden werden muß, das x∗ enth¨ alt. Sind zwei Stellen a und b bekannt, f¨ ur die f (a) f (b) < 0 gilt, und ist f ∈ C[a, b], dann besitzt f in [a, b] mindestens eine Nullstelle, denn f muß alle Werte zwischen f (a) und f (b) annehmen, insbesondere den Wert 0 f¨ ur ein x zwischen a und b. Die einfachste Intervall-Technik ist das sogenannte Bisektionsverfahren. Sein Prinzip l¨ aßt sich wie folgt beschreiben. Angenommen, es ist ein Intervall [a, b] bekannt, in dem sich mindestens eine L¨ osung x∗ von (4.6) befindet. Zu Beginn des Verfahrens setzt man a1 ≡ a und b1 ≡ b. Das Intervall [a1 , b1 ] wird nun in zwei gleichgroße Teilintervalle [a1 , x1 ] und [x1 , b1 ] unterteilt, wobei x1 den zugeh¨origen Intervall-Mittelpunkt bezeichnet: x1 =

1 (a1 + b1 ). 2

(4.25)

Gilt f (x1 ) = 0, dann ist die Nullstelle x∗ durch x = x1 gegeben. Ist dies nicht der Fall, dann besitzt f (x1 ) entweder dasselbe Vorzeichen wie f (a1 ) oder f (b1 ). Weisen f (x1 ) und f (a1 ) dasselbe Vorzeichen auf, dann liegt x∗ in dem Intervall (x1 , b1 ), und man setzt a2 ≡ x1 und b2 ≡ b1 . Haben auf der anderen Seite f (x1 ) und f (a1 ) unterschiedliche Vorzeichen, dann liegt x∗ in dem Intervall (a1 , x1 ), und man setzt a2 ≡ a1 und b2 ≡ x1 .

216

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Der Prozeß wird jetzt auf dem Teilintervall [a2 , b2 ] wiederholt, d.h., [a3 , b3 ], [a4 , b4 ], . . ., werden gebildet. Jedes neue Teilintervall wird die Nullstelle x∗ enthalten und halb so lang wie das vorherige Intervall sein. Da sich die L¨ange der Intervalle in jedem Iterationsschritt verkleinert, konvergiert das Bisektionsverfahren stets. Eine Aussage bez¨ uglich der Geschwindigkeit des obigen Verfahrens findet sich im folgenden Satz. Satz 4.4. Es werde vorausgesetzt, daß f ∈ C[a, b] ist und f (a) f (b) < 0 gilt. Das Bisektionsverfahren erzeugt dann eine Folge von Intervall-Mittelpunkten {xk }∞ k=1 , die gegen eine in [a, b] liegende Nullstelle x∗ von (4.6) konvergiert mit der Eigenschaft |xk − x∗ | ≤

b−a , 2k

k = 1, 2, . . .

(4.26)

Beweis: F¨ ur jedes k ≥ 1 hat man bk − ak =

1 (b − a) 2k−1

und x∗ ∈ (ak , bk ).

1 Da sich nun f¨ ur alle k ≥ 1 der Intervall-Mittelpunkt zu xk = (ak + bk ) bestimmt, 2 ergibt sich 1 b−a |xk − x∗ | ≤ (bk − ak ) = k .  2 2 Im Programm 4.4 ist das Bisektionsverfahren als Matlab-Funktion bisek implementiert. Der Anwender muß wiederum eine Funktion f bereitstellen, die die Funktion f (x) beschreibt. Anhand des folgenden Beispiels wollen wir das praktische Verhalten des Bisektionsverfahrens demonstrieren. Beispiel 4.2. Gegeben seien die Funktion f (x) ≡ x + ex − 2 sowie das Grundintervall I ≡ [0, 1]. Da f (0) f (1) < 0 ist, befindet sich in I mindestens eine Nullstelle x∗ von f (x). Diese soll mit dem Bisektionsverfahren approximiert werden. Es ergibt sich die folgende Intervall-Folge: [0, 1], [0, 0.5], [0.25, 0.5], [0.375, 0.5], [0.4375, 0.5], [0.4375, 0.46875], . . . Nach 17 Iterationsschritten erh¨ alt man schließlich das Intervall [0.44285,0.44286], in dem sich eine Nullstelle von f (x) befindet. Die L¨ange 1 des Ausgangsintervalls hat sich somit auf etwa 10−5 reduziert.  Die Anzahl der erforderlichen Iterationsschritte des Bisektionsverfahrens h¨angt von der Intervall-L¨ ange ab und hat keinen Bezug zur tats¨achlich verwendeten Funktion f (x) (siehe Satz 4.4). Deshalb ist die Konvergenzgeschwindigkeit des Verfahrens extrem niedrig,

4.5 Intervall-Verfahren Programm 4.4

217 Bisektionsverfahren

function [xa,xb,i,ind] = bisek(a,b,TOL1,TOL2,N0); % % a und b: Intervallgrenzen mit a 0, so ergibt sich diese Gerade zu l(x) = −1 + 2

x − x0 . x1 − x0

(4.27)

Wie man sich leicht davon u ur x = (x0 + x1 )/2, d.h., die ¨berzeugen kann, ist l(x) = 0 f¨ x-Achse wird von dieser Geraden genau im Intervall-Mittelpunkt geschnitten. Bei l(x) handelt es sich aber um eine sehr grobe Approximation von f (x), da die Funktionswerte

218

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

von f vollst¨ andig ignoriert werden und nur die Vorzeichen in die Berechnungen eingehen. Die Abbildung 4.6 veranschaulicht diese Situation graphisch.

Abbildung 4.6: Bisektionsverfahren

Eine etwas schnellere Konvergenz l¨ aßt sich mit der Regula Falsi 1 erzielen. Anstelle des Intervall-Mittelpunktes berechnet man hier den (vom Sekanten-Verfahren her bekannten) Sekanten-Punkt: x2 = x1 −

(x1 − x0 )f (x1 ) . f (x1 ) − f (x0 )

(4.28)

Die Strategie des Bisektionsverfahrens wird ansonsten beibehalten. Die Regula Falsi besitzt jedoch die negative Eigenschaft, in der Mehrzahl der F¨alle nicht intervallm¨ aßig zu konvergieren, d.h., die Intervall-L¨ ange geht nicht gegen Null. Die Folge der Intervalle konvergiert dann gegen ein Intervall [a? , b? ], mit der Eigenschaft b? − a? 6= 0. Ein Randpunkt dieses Intervalls stimmt jedoch mit der gesuchten L¨osung x∗ u ¨berein. Wir wollen dies anhand des folgenden Beispiels demonstrieren. Beispiel 4.3. Wie in Beispiel 4.2 seien die Funktion f (x) ≡ x + ex − 2 sowie das Intervall I ≡ [0, 1] gegeben. Die in I enthaltene Nullstelle x∗ von f (x) soll jetzt mit der Regula Falsi approximiert werden. Es ergibt sich die folgende Intervall-Folge: [0, 1],

[0.36788, 1], [0.43006, 1], [0.44067, 1], [0.44248, 1],

[0.44279, 1], [0.44284, 1], [0.44285, 1], . . . 1

Hierbei handelt es sich um eine sehr alte numerische Technik, die bereits im 5. Jahrhundert von indischen Mathematikern verwendet wurde. Der unter dem Namen Fibonacci bekannte und im 13. Jahrhundert lebende Leonardo Pisano nannte das Verfahren regula duarum falsarum positionum. Im 16. und 17. Jahrhundert wurde es u.a. als regula positionum abgek¨ urzt.

4.6 Fehleranalyse der Iterationsverfahren

219

Wie man sieht, ver¨ andert sich der rechte Randpunkt nicht, d.h., der Sekantenpunkt liegt immer links von der Nullstelle. Trotzdem kann man schließen, daß eine Nullstelle nahe bei x=0.44285 liegt. Ein Vergleich mit der vom Bisektionsverfahren ben¨otigten Anzahl von Iterationsschritten zeigt, daß die Regula Falsi hier schneller konvergiert. Die Einschließung durch die entstehenden Teilintervalle ist aber erwartungsgem¨aß viel zu grob! 

4.6

Fehleranalyse der Iterationsverfahren

Mit der Definition 3.1 wurde der Begriff der Konvergenzordnung bzw. der Konvergenzgeschwindigkeit eines Iterationsverfahrens eingef¨ uhrt. Danach besitzt ein Verfahren die Konvergenzordnung α, falls die absoluten Fehler der zugeh¨origen Iterierten f¨ ur eine reelle Konstante β 6= 0 die folgende asymptotische Beziehung erf¨ ullen:

lim

k→∞

|ek+1 | = β. |ek |α

(4.29)

Wir betrachten jetzt die zur L¨ osung der Fixpunkt-Gleichung x = g(x) sachgem¨aße Fixpunkt-Iteration xk = g(xk−1 ), k = 1, 2, . . . Folgende Voraussetzungen m¨ ogen dabei erf¨ ullt sein: Voraussetzung 4.2. • g ∈ C1 (a, b), • g ist eine Selbstabbildung auf I ≡ [a, b] , und • |g 0 (x)| ≤ L < 1 f¨ ur alle x ∈ (a, b).



Der Satz 4.2 sagt dann aus: g besitzt einen eindeutigen Fixpunkt x∗ ∈ I und f¨ ur x0 ∈ I ∗ konvergiert die durch (4.10) definierte Folge {xk }∞ gegen x . k=0 Wir wollen jetzt zeigen, daß die Konvergenz immer dann linear sein wird, wenn die wichtige Beziehung g 0 (x∗ ) 6= 0 erf¨ ullt ist. F¨ ur eine positive ganze Zahl k gilt: ek+1 ≡ xk+1 − x∗ = g(xk ) − g(x∗ ) = g 0 (ξk )(xk − x∗ ) = g 0 (ξk )ek ;

ξk ∈ (xk , x∗ ).

∗ ∞ ∗ 0 Aus {xk }∞ k=0 → x folgt {ξk }k=0 → x . Da g als stetig auf (a, b) vorausgesetzt wurde, 0 0 ∗ gilt die Beziehung lim g (ξk ) = g (x ). Dies impliziert nun k→∞

lim

k→∞

|ek+1 | = lim |g 0 (ξk )| = |g 0 (x∗ )|, k→∞ |ek |

d.h.

lim

k→∞

|ek+1 | = |g 0 (x∗ )|. |ek |1

Somit besitzt die Fixpunkt-Iteration immer dann eine lineare Konvergenzordnung, falls g 0 (x∗ ) 6= 0 gilt. Konvergenz h¨ oherer Ordnung ist nur im Falle g 0 (x∗ ) = 0 m¨oglich.

220

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Um das Verhalten linear konvergenter Verfahren mit dem quadratisch konvergenter Techniken zu vergleichen, nehmen wir an, daß zwei Iterationsverfahren zur Verf¨ ugung stehen, mit: lim

|ek+1 | = β, |ek |

mit

0 < β < 1,

lim

|˜ ek+1 | ˜ = β, |˜ ek |2

mit

β˜ > 0,

k→∞

k→∞

und

˜e0 | < 1. |β˜

Zur Vereinfachung werde vorausgesetzt, daß f¨ ur alle hinreichend großen k das asymptotische Verhalten der Fehler-Folgen bereits eingetreten ist, d.h., es m¨oge |ek+1 | ≤ β |ek | und |˜ ek+1 | ≤ β˜ |˜ ek |2 gelten. Hieraus erh¨ alt man |ek+1 |

≤ β k+1 |e0 |,

|˜ ek+1 |

k+1 k+1 k+1 ˜ ek |2 ≤ β˜β˜2 |˜ ≤ β|˜ ek−1 |4 ≤ · · · ≤ β˜2 −1 |˜ e0 |2 = (β˜ |˜ e0 |)2 −1 |˜ e0 |.

Um das obige Resultat zu veranschaulichen, gehen wir einmal von folgender (nicht außergew¨ ohnlichen) Konstellation aus: |e0 | = |˜ e0 | = 1, β = β˜ = 0.75. Bestimmt werden soll die erforderliche Anzahl N von Iterationsschritten, damit der Fehler gleich oder kleiner 10−8 ist. 1) F¨ ur das linear konvergente Verfahren berechnet man entsprechend den obigen Ausf¨ uhrungen 0.75N +1 ≤ 10−8

,→

N +1≥

−8 ≈ 64. log10 0.75

Somit ben¨ otigt ein Verfahren mit der Konvergenzordnung Eins ungef¨ahr 63 Iterationsschritte, um die geforderte Genauigkeit zu erreichen. 2) F¨ ur das quadratisch konvergente Verfahren ergibt sich demgegen¨ uber: N +1

0.752

−1

≤ 10−8

,→

2N +1 − 1 ≥

−8 ≈ 64, log10 0.75

d.h., das Verfahren mit der Konvergenzordnung 2 ben¨otigt zur L¨osung der gestellten Aufgabe nicht mehr als 5 oder 6 Iterationsschritte. Eine andere wichtige Eigenschaft quadratisch konvergenter Verfahren l¨aßt sich wie folgt illustrieren. Nimmt man einmal xk ≈ 1 an und stellt den Fehler in der Form |ek | = 10−bk , bk > 0, dar, dann stimmt bk im wesentlichen mit der Anzahl geltender Ziffern der k-ten Iterierten u ¨berein. Aus |ek+1 | ≤ β|ek |2 folgt unmittelbar 10−bk+1 ≤ β10−2bk

,→

−bk+1 ≤ log10 β − 2bk

,→

bk+1 ≥ 2bk − log10 β.

4.6 Fehleranalyse der Iterationsverfahren

221

Letztere Ungleichung sagt aus, daß sich die Anzahl geltender Ziffern in jedem Schritt ungef¨ ahr verdoppelt. Diese g¨ unstigen Eigenschaften quadratisch konvergenter Verfahren f¨ uhren auf die Frage, welche speziellen Schemata nun die Konvergenzordnung 2 besitzen. Der nachfolgende Satz gibt eine Antwort darauf. Satz 4.5. Es sei x∗ eine L¨ osung von x = g(x). Diese erf¨ ulle g 0 (x∗ ) = 0 und g 00 sei auf ∗ einem offenen Intervall, das x enth¨ alt, stetig. Dann existiert ein δ > 0, so daß f¨ ur jedes x0 ∈ [x∗ − δ, x∗ + δ] die Fixpunkt-Iteration mindestens zu einem quadratischen Schema |g 00 (x)| wird. Ist des weiteren 0 < ≤ M f¨ ur alle x ∈ [x∗ − δ, x∗ + δ] und gilt M |e0 | < 1, 2 dann wird die Fixpunkt-Iteration mit der Konvergenzordnung 2 konvergieren. Beweis: Man w¨ ahlt ein δ > 0, so daß auf dem zugeh¨origen Intervall [x∗ − δ, x∗ + δ] 0 gilt: |g (x)| ≤ L < 1 und g 00 ist stetig. Die Bedingung |g 0 (x)| ≤ L < 1 sichert, daß die ∗ ∗ Glieder der Folge {xk }∞ oge k=0 in [x − δ, x + δ] enthalten sind. Die Funktion g(x) m¨ ∗ ∗ jetzt f¨ ur x ∈ [x − δ, x + δ] in eine Taylorreihe entwickelt werden: g(x) = g(x∗ ) + g 0 (x∗ )(x − x∗ ) +

g 00 (ξ) (x − x∗ )2 , 2

mit ξ ∈ (x, x∗ ).

Die Voraussetzungen g(x∗ ) = x∗ und g 0 (x∗ ) = 0 ergeben g(x) = x∗ + Speziell f¨ ur x = xk folgt daraus xk+1 = g(xk ) = x∗ +

g 00 (ξk ) (xk − x∗ )2 , 2

mit

g 00 (ξ) (x − x∗ )2 . 2

ξk ∈ (xk , x∗ ).

Somit ist

g 00 (ξk ) 2 ek . (4.30) 2 Da |g 0 (x)| ≤ L < 1 auf [x∗ − δ, x∗ + δ] ist und g das Intervall [x∗ − δ, x∗ + δ] in sich ∗ abbildet, impliziert der Satz 4.2, daß die Folge {xk }∞ k=0 gegen x konvergiert. Wegen ∗ ∞ ∗ ξk ∈ (xk , x ) f¨ ur jedes k, gilt {ξk }k=0 → x . Verwendet man dies in der Formel (4.30), so ergibt sich |ek+1 | |g 00 (x∗ )| lim = . 2 k→∞ |ek | 2 ek+1 =

Somit ist das Schema f¨ ur g 00 (x∗ ) 6= 0 von 2. Ordnung, anderenfalls von noch h¨oherer |g 00 (x)| Ordnung. Gilt weiter 0 < ≤ M f¨ ur alle x ∈ [x∗ − δ, x∗ + δ], dann berechnet man 2 k+1

|ek+1 | ≤ M |ek |2 ≤ M 3 |ek−1 |4 ≤ · · · ≤ (M |e0 |)2

−1

|e0 |.

Die Voraussetzung M |e0 | < 1 erweist sich deshalb als hinreichend daf¨ ur, daß das quadratische Schema konvergent ist.  Um den Satz 4.5 bei der L¨ osung von f (x) = 0 anwenden zu k¨onnen, werde vorausgesetzt, daß die Bedingung f 0 (x∗ ) 6= 0 erf¨ ullt ist. Wir gehen bei den folgenden Betrachtungen

222

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

wieder von der Fixpunkt-Iteration xk = g(xk−1 ), k = 1, 2, . . . , aus und verwenden jetzt f¨ ur die Iterationsfunktion g den speziellen Ansatz g(x) ≡ x − φ(x) f (x).

(4.31)

In (4.31) bezeichnet φ(x) eine auf dem zugrundeliegenden Intervall [a, b] beschr¨ankte, differenzierbare Funktion, die so gew¨ ahlt werden soll, daß das zugeh¨orige Iterationsverfahren quadratisch konvergiert. Offensichtlich gilt g(x∗ ) = x∗ . Damit quadratische Konvergenz vorliegt, muß g 0 (x∗ ) = 0 sein. Man berechnet: g 0 (x)

=

1 − φ0 (x)f (x) − f 0 (x)φ(x),

g 0 (x∗ )

=

1 − f 0 (x∗ )φ(x∗ ),

g 0 (x∗ )

=

0

⇐⇒

φ(x∗ ) =

1 f 0 (x∗ )

.

Somit besitzt das Verfahren xk = g(xk−1 ) = xk−1 −

f (xk−1 ) f 0 (x∗ )

quadratische Konvergenzordnung. Da aber x∗ und damit auch f 0 (x∗ ) i.allg. unbekannt sind, ist obiges Verfahren nicht sinnvoll. Eine zul¨assige Wahl stellt aber φ(x) = 1/f 0 (x) dar, denn an der Stelle x = x∗ ist die Bedingung φ(x∗ ) = 1/f 0 (x∗ ) erf¨ ullt. Das daraus resultierende Verfahren lautet dann xk = g(xk−1 ) = xk−1 −

f (xk−1 ) , f 0 (xk−1 )

d.h., bei dem gesuchten Verfahren 2. Ordnung handelt es sich genau um das im Abschnitt 4.2 betrachtete Newton-Verfahren. Alle bisherigen Betrachtungen basierten auf der Hypothese, daß das Ausgangsproblem (4.6) eine einfache (und damit auch isolierte) L¨osung besitzt. Wir wollen jetzt die folgenden Fragen beantworten: • Welche L¨ osungen x∗ , f¨ ur die f 0 (x∗ ) = 0 gilt, k¨onnen noch mit Modifikationen der bisher genannten numerischen Standardtechniken berechnet werden? • Wie sehen derartige Modifikationen aus? Ist x∗ eine mehrfache Nullstelle von (4.6), dann lassen sich stets eine eindeutige Funktion q(x) sowie eine positive ganze Zahl m finden, so daß f (x) = (x − x∗ )m q(x),

q(x∗ ) 6= 0

(4.32)

gilt. Die Zahl m wird als Vielfachheit der Wurzel x∗ bezeichnet. Es ist offensichtlich, daß eine solche mehrfache Wurzel ebenfalls isoliert ist, obwohl die Beziehung f 0 (x∗ ) 6= 0 nicht

4.6 Fehleranalyse der Iterationsverfahren

223

mehr gilt. Wendet man nun das Newton-Verfahren zur Bestimmung dieser mehrfachen Wurzel an, dann ergibt sich folgender Sachverhalt. Wie bereits gezeigt wurde, gilt: f¨ ur g(x) = x −

f (x) f 0 (x)

ist

g 0 (x) =

f (x)f 00 (x) . f 0 (x)2

Die Substitution der Darstellung (4.32) in g 0 (x) erfordert die Berechnung von f 0 (x) und f 00 (x). Man erh¨ alt f 0 (x) f 00 (x)

=

m(x − x∗ )m−1 q(x) + (x − x∗ )m q 0 (x)

=

(x − x∗ )m−1 {mq(x) + (x − x∗ )q 0 (x)},

=

(m − 1)(x − x∗ )m−2 {mq(x) + (x − x∗ )q 0 (x)} +(x − x∗ )m−1 {mq 0 (x) + q 0 (x) + (x − x∗ )q 00 (x)}

f 0 (x)2

=

(x − x∗ )m−2 {m(m − 1)q(x) + 2m(x − x∗ )q 0 (x) + (x − x∗ )2 q 00 (x)},

=

(x − x∗ )m−1 (x − x∗ )m−1 {mq(x) + (x − x∗ )q 0 (x)}2 .

Hieraus folgt g 0 (x) =

m(m − 1)q(x)2 + 2m(x − x∗ )q(x)q 0 (x) + (x − x∗ )2 q(x)q 00 (x) . m2 q(x)2 + 2m(x − x∗ )q(x)q 0 (x) + (x − x∗ )2 q 0 (x)2

Schließlich ergibt sich lim∗ g 0 (x) =

x→x

m2 − m 1 =1− m2 m

(6= 0).

(4.33)

Somit konvergiert das Newton-Verfahren nur noch linear, falls x∗ eine mehrfache Nullstelle von f (x) ist. Des weiteren wird f 0 (xk−1 ) f¨ ur wachsendes k immer kleiner, so daß mit numerischen Problemen wie Exponenten¨ uberlauf gerechnet werden muß. Man spricht in diesem Falle von einer numerischen Singularit¨ at. Eine durch praktische Erfahrungen belegte Regel sagt aus, daß man im Falle einer mehrfachen Nullstelle diese mit dem Newton-Verfahren nur noch auf etwa die H¨alfte der verwendeten Mantissenstellen approximieren kann. Es macht auch keinen Sinn die Iteration dar¨ uber hinaus fortzusetzen, da das Ergebnis durch die numerischen Fehler dann wieder verf¨alscht wird. ¨ Durch die folgenden Uberlegungen l¨ aßt sich auf der Basis des Newton-Verfahrens jedoch wieder ein quadratisch konvergentes Verfahren zur numerischen Approximation mehrfacher Wurzeln konstruieren. Angenommen, es ist bekannt, daß f (x) eine m-fache Nullstelle x∗ besitzt. Dann ist es sachgem¨ aß (im Hinblick auf die Beibehaltung einer relativ hohen Konvergenzordnung), die Iterationsfunktion des Newton-Verfahrens wie folgt zu modifizieren g˜(x) = x −

m f (x) . f 0 (x)

(4.34)

224

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Man berechnet g˜0 (x) = 1 − m + m

f (x) f 00 (x) = 1 − m + m g 0 (x). f 0 (x)2

Deshalb ergibt sich unter Beachtung von (4.33) lim g˜0 (x) = 1 − m + m(1 −

x→x∗

1 ) = 0. m

Das modifizierte Newton-Verfahren (4.34) konvergiert somit im Falle einer m-fachen Nullstelle x∗ von f (x) wieder quadratisch. Die Vielfachheit der Nullstelle ist aber i.allg. nicht a priori bekannt. Man kann sich dann folgendermaßen helfen. Aus der Darstellung (4.32) von f (x) ergibt sich f 0 (x) = m (x − x∗ )m−1 q(x) + (x − x∗ )m q 0 (x). Man betrachtet nun anstelle der Ausgangsgleichung f (x) = 0 die Gleichung Φ(x) = 0, wobei die Funktion Φ(x) wie folgt definiert ist Φ(x) ≡

f (x) q(x) = (x − x∗ ) ≡ (x − x∗ ) qˆ(x). f 0 (x) m q(x) + (x − x∗ ) q 0 (x)

Offensichtlich stellt x∗ auch eine Nullstelle von Φ(x) dar, die wegen qˆ(x∗ ) 6= 0 zu einer einfachen Nullstelle von Φ geworden ist. Das Newton-Verfahren sollte deshalb nicht auf die Ausgangsgleichung, sondern auf Φ(x) = 0 angewendet werden, um quadratische Konvergenz zu erzielen. Die zugeh¨ orige Iterationsvorschrift lautet: xk = xk−1 −

Φ(xk−1 ) , Φ0 (xk−1 )

k = 1, 2, . . .

In Termen der Funktion f (x) l¨ aßt sich dieses Verfahren wie folgt schreiben: xk = xk−1 −

f (xk−1 ) f 0 (xk−1 ) . f 0 (xk−1 )2 − f (xk−1 )f 00 (xk−1 )

(4.35)

Hierbei ist aber zu beachten, daß die quadratische Konvergenz der Iterationsfolge durch die Berechnung h¨ oherer Ableitungen von f erkauft wird. Hat man beim Newton-Verfahren nur“ f 0 (x) zu bestimmen, so muß in der Vorschrift (4.35) dar¨ uber hinaus f 00 (x) ” gebildet und berechnet werden. Dies stellt einen nicht unerheblichen Aufwand dar. Wir wollen jetzt der Frage nachgehen, inwieweit sich eine numerische Approximation der ¨ ersten Ableitung beim Newton-Verfahren – also der Ubergang zum Sekantenverfahren – auf die Konvergenzgeschwindigkeit auswirkt. Das Sekantenverfahren lautet in der Darstellung (4.18): xk = xk−1 − f (xk−1 )

xk−1 − xk−2 . f (xk−1 ) − f (xk−2 )

4.6 Fehleranalyse der Iterationsverfahren

225

Der absolute Fehler ek ≡ xk − x∗ der Iterierten xk berechnet sich deshalb zu ek

f (xk−1 ) (ek−1 − ek−2 ) f (xk−1 ) − f (xk−2 ) f (x∗ + ek−1 ) = ek−1 − (ek−1 − ek−2 ). ∗ f (x + ek−1 ) − f (x∗ + ek−2 ) = ek−1 −

(4.36)

An der Stelle x = x∗ werde f (x) in eine Taylorreihe entwickelt. f (x∗ + ek−1 ) f (x∗ + en−2 )

1 = ek−1 f 0 (x∗ ) + e2k−1 f 00 (x∗ ) + · · · , 2 1 0 ∗ = ek−2 f (x ) + e2k−2 f 00 (x∗ ) + · · · . 2

Die Differenz beider Reihen ergibt f (x∗ + ek−1 ) − f (x∗ + ek−2 ) = (ek−1 − ek−2 )f 0 (x∗ ) 1 + (ek−1 − ek−2 )(ek−1 + ek−2 )f 00 (x∗ ) + · · · 2 Die Substitution der Reihenentwicklungen in (4.36) f¨ uhrt auf  ek−1 f 0 (x∗ ) + 12 e2k−1 f 00 (x∗ ) + · · · (ek−1 − ek−2 )  ek = ek−1 − 0 ∗ f (x ) + 12 (ek−1 + ek−2 )f 00 (x∗ ) + · · · (ek−1 − ek−2 ) =

1 00 ∗ 2 ek−1 ek−2 f (x ) + T.h.O. ; f 0 (x∗ ) + T.h.O.

. T.h.O. = Terme h¨oherer Ordnung

Im Sinne einer asymptotisch g¨ ultigen Analyse des Konvergenzverhaltens, d.h. f¨ ur hinreichend kleine |ek−1 | und |ek−2 |, gilt deshalb f 00 (x∗ ) |ek |  0 ∗ |ek−1 | |ek−2 |. 2f (x ) f 00 (x∗ ) Definiert man C ≡ 0 ∗ , dann erh¨ alt man daraus die (gen¨aherte) Differenzenglei2f (x ) chung |ek | = C |ek−1 | |ek−2 |.

(4.37)

Wir versuchen, diese Differenzengleichung mit dem Ansatz |ek−1 | = K |ek−2 |r ,

K > 0,

r ≥ 1,

(4.38)

zu l¨ osen. Mit (4.38) gilt auch |ek | = K|ek−1 |r . Deshalb ist 2

|ek | = K |ek−1 |r = K K r |ek−2 |r .

(4.39)

226

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Die Substitution des Ansatzes (4.38) in die Differenzengleichung (4.37) ergibt |ek | = C |ek−1 | |ek−2 | = C K |ek−2 |r+1 .

(4.40)

Setzt man schließlich die Ausdr¨ ucke (4.39) und (4.40) f¨ ur |ek | gleich, so resultiert 2

K K r |ek−2 |r = C K |ek−2 |r+1 .

(4.41)

Diese Gleichung kann f¨ ur alle (hinreichend große) k nur dann gelten, falls: C = Kr

und r2 = r + 1.

√ 1 ur Die positive L¨ osung der quadratischen Gleichung lautet r = (1 + 5) = 1.618 . . . F¨ 2 die Konvergenzordnung α und die asymptotische Fehlerkonstante β des Sekantenverfahrens erh¨ alt man damit α=r=

√ 1 (1 + 5) = 1.618 . . . , 2

1

β = K = C r = C 0.618... .

(4.42)

Da α gr¨ oßer als 1 ist, spricht man von superlinearer Konvergenz des Sekanten-Verfahrens. Die Verringerung von α = 2 (Newton-Verfahren) auf α = 1.618 . . . ist nicht dramatisch, wenn man ber¨ ucksichtigt, daß die Konvergenzordnung nur eine asymptotische Gr¨ oße ist. Bevor sich die Konvergenzordnung auf die Geschwindigkeit der jeweiligen Iterationsfolge auswirkt, ist i.allg. bereits eine große Anzahl von Iterationsschritten durchgef¨ uhrt worden. Diese sind dazu erforderlich, um u ¨berhaupt in die N¨ahe der L¨osung x∗ zu kommen, in der dann die Formel (4.29) ihre G¨ ultigkeit besitzt. Wir wollen hier abschließend das Verfahren von M¨ uller betrachten. Die hier auftretenden Fehler ei ≡ xi − x∗ erf¨ ullen in der Umgebung einer einfachen Nullstelle x∗ von f (x) die Beziehung  (3) ∗  f (x ) ei+1 = ei ei−1 ei−2 − 0 ∗ + O(e) , mit e ≡ max (|ei |, |ei−1 |, |ei−2 |). (4.43) 6f (x ) Mit analogen Techniken wie bei dem Sekanten-Verfahren zeigt man, daß die Konvergenzordnung des Verfahrens von M¨ uller mindestens α = 1.84 . . . ist. Dabei bestimmt sich α als die gr¨ oßte Wurzel der kubischen Gleichung r3 − r2 − r = 1.

4.7

Techniken zur Konvergenzbeschleunigung

∗ Es sei {xk }∞ ur k=0 eine linear konvergente Folge mit dem Grenzwert x . Damit ist f¨ ∗ ek ≡ xk − x die Beziehung

|ek+1 | = β, k→∞ |ek | lim

0 < β < 1,

(4.44)

4.7 Techniken zur Konvergenzbeschleunigung

227

∗ erf¨ ullt. Um nach einer Folge {ˆ xk }∞ k=0 zu suchen, die schneller gegen x konvergiert, gehen wir von den folgenden Voraussetzungen aus.

Voraussetzung 4.3. • F¨ ur alle positiven ganzen Zahlen k wird der Grenzfall (4.44) direkt angenommen, und • die absoluten Fehler ek haben alle ein gleiches Vorzeichen.



Dann gilt ek+1 = βek , k ≥ 0. Weiter ist xk+2 = ek+2 + x∗ = βek+1 + x∗ , d.h., xk+2 = β(xk+1 − x∗ ) + x∗ , k ≥ 0.

(4.45)

Ersetzt man (k + 1) durch k, dann resultiert daraus xk+1 = β(xk − x∗ ) + x∗ .

(4.46)

Die Subtraktion der Gleichung (4.46) von (4.45) ergibt xk+2 − xk+1 = β(xk+1 − xk ), woraus xk+2 − xk+1 β= (4.47) xk+1 − xk folgt. Die Aufl¨ osung von (4.45) nach x∗ ergibt x∗ = (xk+2 −βxk+1 )/(1−β). Substituiert man (4.47) in diese Formel, so resultiert xk+2 − xk+1 xk+1 xk+2 (xk+1 − xk ) − xk+1 (xk+2 − xk+1 ) xk+1 − xk = xk+2 − xk+1 xk+1 − xk − xk+2 + xk+1 1− xk+1 − xk

xk+2 − ∗

x

=

=

xk+2 xk − x2k+1 . xk+2 − 2xk+1 + xk

(4.48)

Der auf der rechten Seite stehende Ausdruck kann nun wie folgt umgeformt werden: x∗

=

xk xk+2 − x2k+1 xk+2 − 2xk+1 + xk

=

(x2k ) + xk xk+2 − (2xk xk+1 ) + (2xk xk+1 ) − (x2k ) − x2k+1 xk+2 − 2xk+1 + xk

(x2k + xk xk+2 − 2xk xk+1 ) − (x2k − 2xk xk+1 + x2k+1 ) xk+2 − 2xk+1 + xk (xk+1 − xk )2 = xk − . xk+2 − 2xk+1 + xk =

Da die Voraussetzungen 4.3 i.allg. nicht f¨ ur beliebiges k erf¨ ullt sind, wird sich x∗ in der Realit¨ at nicht exakt in der obigen Form darstellen. Jedoch ist zu erwarten, daß die

228

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Folge {ˆ xk }∞ k=0 mit x ˆ k = xk −

(xk+1 − xk )2 xk+2 − 2xk+1 + xk

(4.49)

schneller gegen x∗ konvergiert als die urspr¨ ungliche Folge {xk }∞ k=0 . Diese Technik der Konvergenzbeschleunigung nennt man Aitken’s 42 -Prozeß. Die folgende Definition f¨ uhrte zu dieser Namensgebung. Definition 4.3. Gegeben sei eine Folge {xk }∞ origen vorw¨ artsgek=0 . Unter den zugeh¨ nommenen Differenzen (1. Ordnung) 4xk sollen die Ausdr¨ ucke 4xk ≡ xk+1 − xk ,

k = 0, 1, . . .

(4.50)

verstanden werden. Vorw¨ artsgenommene Differenzen h¨oherer Ordnung 4n xk seien wie folgt rekursiv erkl¨ art: 4n xk ≡ 4(4n−1 xk ),

n ≥ 2,

41 xk ≡ 4xk .

(4.51) 

Diese Definition impliziert nun 42 xk = 4(4xk ) = 4(xk+1 − xk ) = 4xk+1 − 4xk (4.52) = (xk+2 − xk+1 ) − (xk+1 − xk ) = xk+2 − 2xk+1 + xk . Weiter gilt: 43 xk = xk+3 − 3xk+2 + 3xk+1 − xk , 44 xk = xk+4 − 4xk+3 + 6xk+2 − 4xk+1 + xk , .. .

(4.53)

4n xk = xk+n − n xk+n−1 + −

n(n − 1) xk+n−2 2!

n(n − 1)(n − 2) xk+n−3 + · · · + (−1)n xk . 3!

Die n-te vorw¨ artsgenommene Differenz wird oftmals auch in der einpr¨agsamen Form       n n n 4n xk = xk+n − xk+n−1 + xk+n−2 − · · · + (−1)i xk+n−i 1 2 i (4.54) n + · · · + (−1) xk angegeben. Dabei ist das Symbol   n n(n − 1)(n − 2)(n − 3) · · · (n − k + 1) ≡ k k!

4.7 Techniken zur Konvergenzbeschleunigung

229

das u ur die Binomialkoeffizienten. Im Kapitel 6 werden wir noch zwei ¨bliche Symbol f¨ weitere Differenzenarten (r¨ uckw¨ artsgenommene und zentrale Differenzen) kennenlernen, die in der Numerischen Mathematik ebenfalls von praktischer Bedeutung sind. Die Formel (4.49) kann nun unter Verwendung vorw¨artsgenommener Differenzen wie folgt aufgeschrieben werden: x ˆ k = xk −

(4xk )2 , 42 x k

k = 0, 1, . . .

(4.55)

Die Bezeichnung Aitken’s 42 -Prozeß“ geht offensichtlich auf diese formale Darstellung ” des zuvor beschriebenen Iterationsprozesses zur¨ uck. ∗ Bisher wurde nur vermutet, daß die Folge {ˆ xk }∞ k=0 schneller gegen x konvergiert als ∞ die urspr¨ ungliche Folge {xk }k=0 . Der mathematisch exakte Nachweis fehlt jedoch noch. Das entsprechende Ergebnis vermittelt der folgende Satz. ∗ Satz 4.6. Gegeben sei eine Folge {xk }∞ k=0 , die gegen den Grenzwert x konvergiert. ∗ Weiter sei ek ≡ xk − x , mit ek 6= 0 f¨ ur alle k ≥ 0. Ist ek+1 lim = β, 0 < |β| < 1, k→∞ ek ∞ ∗ dann konvergiert die Folge {ˆ xk } ∞ k=0 schneller als die Folge {xk }k=0 gegen x , d.h., es gilt x ˆ k − x∗ lim = 0. k→∞ xk − x∗ Beweis: Das asymptotische Verhalten des Fehlers ek werde wie folgt dargestellt:

ek+1 = (β + δk )ek

mit

lim δk = 0.

k→∞

(4.56)

Daraus ergibt sich unmittelbar ek+2 = (β + δk+1 )ek+1 = (β + δk+1 )(β + δk )ek . F¨ ur die vorw¨ artsgenommenen Differenzen erster und zweiter Ordnung erh¨alt man 4xk = xk+1 − x∗ − (xk − x∗ ) = ek+1 − ek = (β − 1 + δk )ek 42 xk = ek+2 − 2ek+1 + ek = [β 2 − 2β + 1 + (βδk + βδk+1 + δk δk+1 − 2δk )]ek (4.57) ≡ [(β − 1)2 + δ˜k ]ek

mit

lim δ˜k = 0.

k→∞

Da |β| < 1 ist, folgt f¨ ur hinreichend großes k, daß 42 xk 6= 0, d.h., der Nenner von (4.55) verschwindet nicht. F¨ ur den Fehler ηk ≡ x ˆk − x∗ ergibt sich schließlich η k = ek −

[(β − 1) + δk ]2 δ˜k − 2(β − 1)δk − δk2 ek = ek . (β − 1)2 + δ˜k (β − 1)2 + δ˜k

(4.58)

Ber¨ ucksichtigt man nun (4.56) und (4.57), so impliziert (4.58), daß ηk δ˜k − 2(β − 1)δk − δk2 = lim = 0. k→∞ ek k→∞ (β − 1)2 + δ˜k lim



230

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Den obigen Ausf¨ uhrungen ist zu entnehmen, daß sich mit dem Aitkenschen 42 -Prozeß die Konvergenz jeder linear konvergenten Folge beschleunigen l¨aßt. Die Vorschrift, nach der die urspr¨ ungliche Folge erzeugt wird, spielt dabei keine Rolle. Das Ergebnis ist jedoch noch insofern f¨ ur die praktische Verwendung unbefriedigend, als daß erst einmal die linear konvergente Folge mit einem numerischen Verfahren (recht aufwendig) konstruiert werden muß, bevor daraus die schneller konvergente Folge gebildet werden kann. Von Steffensen stammt nun der Gedanke, beide Folgen miteinander zu kombinieren. Aus den ersten drei Iterierten der langsam konvergenten Folge konstruiert man sofort mittels des 42 -Prozesses eine Iterierte der schneller konvergenten Folge und nimmt diese mit in die aktuelle Folge auf. Diese Strategie wird nun sukzessive fortgesetzt. Die Anwendung der soeben beschriebenen Technik auf die Folge der Fixpunkt-Iterierten ist unter dem Namen Steffensen 1 -Verfahren bekannt und soll kurz dargestellt werden. Es seien xk , xk+1 , xk+2 drei aufeinanderfolgende Iterierte der (linear konvergenten) Fixpunkt-Iteration. Aus diesen erh¨ alt man nach (4.49) x ˆ k = xk −

(xk+1 − xk )2 (g(xk ) − xk )2 = xk − . xk+2 − 2xk+1 + xk g(g(xk )) − 2g(xk ) + xk

Nun wird xk+1 ≡ x ˆk gesetzt und daraus ein x ˆk+1 berechnet. F¨ uhrt man den Prozeß so weiter, dann ergibt sich die Iterationsvorschrift

xk+1 = xk −

[g(xk ) − xk ]2 ≡ g˜(xk ), g(g(xk )) − 2g(xk ) + xk

k = 0, 1, 2 . . .

(4.59)

F¨ ur die Geschwindigkeit der obigen Steffensen-Iteration gilt der folgende Satz. Satz 4.7. Ist die Konvergenzordnung der Fixpunkt-Iteration xk+1 = g(xk ) gleich 1, dann besitzt das Steffensen-Verfahren mindestens die Konvergenzordnung 2. Beweis: Wir nehmen an, daß die Funktion g(x) hinreichend oft stetig differenzierbar ist. F¨ ur den absoluten Fehler ek ≡ xk − x∗ ergibt sich: ek+1 = ek −

g(g(x∗

[g(x∗ + ek ) − x∗ − ek ]2 Z ≡ ek − . ∗ ∗ + ek )) − 2g(x + ek ) + x + ek N

(4.60)

In Formel (4.60) sollen an der Stelle x = x∗ sowohl der Z¨ahler Z als auch der Nenner N ¨ in Taylorreihen entwickelt werden. Der besseren Ubersichtlichkeit halber unterdr¨ ucken wir hierbei den Index k! g(x∗ + e) g(g(x∗ + e))

1

1 = x∗ + eg 0 (x∗ ) + e2 g 00 (x∗ ) + O(e3 ), 2 1 ∗ 0 ∗ = g(x + eg (x ) + e2 g 00 (x∗ ) + O(e3 )) 2 1 2 0 ∗ 00 ∗ ∗ 0 ∗ 2 = x + eg (x ) + e g (x )g (x )(1 + g 0 (x∗ )) + O(e3 ). 2

Johan Frederik Steffensen (1873—1961), d¨ anischer Mathematiker und Statistiker

4.8 Globalisierung lokal konvergenter Verfahren

231

Hieraus ergibt sich Z

=

1 ((g 0 (x∗ ) − 1) + eg 00 (x∗ ))2 e2 + O(e4 ), 2

N

=

1 ((g 0 (x∗ ) − 1)2 + e(g 0 (x∗ )2 + g 0 (x∗ ) − 2)g 00 (x∗ )) e + O(e3 ). 2

Die Formel (4.60) nimmt damit die Gestalt

ek+1

1 0 ∗ 00 ∗ g (x )g (x ) (g 0 (x∗ ) − 1) e2k + O(e3k ) 2 =  1 2 (g 0 (x∗ ) − 1) + g 00 (x∗ ) g 0 (x∗ )2 + g 0 (x∗ ) − 2 ek + O(e2k ) 2 1 0 ∗ 00 ∗ 2 g (x )g (x ) ek + O(e3k ) 1 g 0 (x∗ )g 00 (x∗ ) + O(ek ) 2 2 = = e 1 2 (g 0 (x∗ ) − 1) + O(ek ) k (g 0 (x∗ ) − 1) + g 00 (x∗ )(g 0 (x∗ ) + 2) ek + O(e2k ) 2

an. Wegen der linearen Konvergenz der Fixpunkt-Iteration gilt 0 < |g 0 (x∗ )| < 1. Unter der Annahme g 00 (x∗ ) 6= 0 folgt aus der obigen Formel die Konvergenz der ek gegen Null, falls nur |e0 | hinreichend klein ausf¨ allt. Man berechnet dann weiter 0 ∗ 00 ∗ |ek+1 | 1 g (x )g (x ) lim = 0 ∗ ≡ β, 0 < β < ∞, 2 k→∞ |ek | 2 g (x ) − 1 woraus sich unmittelbar die Konvergenzordnung α = 2 ablesen l¨aßt. Im Falle g 00 (x∗ ) = 0 ist die Konvergenzordnung gr¨ oßer als zwei.  Zusammenfassend ergibt sich f¨ ur das Steffensen-Verfahren die im Programm 4.5 dargestellte Matlab-Funktion steffensen. Dazu wird eine Matlab-Funktion g f¨ ur g(x) ben¨ otigt.

4.8

Globalisierung lokal konvergenter Verfahren

In den vorangegangenen Abschnitten haben wir gesehen, daß die Iterationsverfahren zur Bestimmung einer Nullstelle von (4.6) i.allg. nur dann konvergieren, falls der Startwert x0 bereits nahe bei der L¨ osung x∗ liegt. Man spricht in diesem Falle von lokaler Konvergenz. Die in den S¨ atzen 4.2 bis 4.5 formulierten Konvergenzkriterien sind in der Praxis oftmals gar nicht u ufbar. Sie stellen damit eigentlich nur eine Tr¨ ostung in ¨berpr¨ dem Sinne dar, daß es sich bei der Menge der Problemstellungen, f¨ ur die die zugeh¨origen numerischen Verfahren ein sinnvolles Ergebnis erzeugen, nicht um die leere Menge handelt. Oftmals l¨ aßt sich jedoch ein vorliegendes Nullstellenproblem durch eine sehr naive Methode behandeln, deren englische Bezeichnung trial and error das wesentliche dieser Strategie zum Ausdruck bringt. Man w¨ ahlt n¨ amlich relativ willk¨ urlich einen Startwert

232

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Programm 4.5

Steffensen-Verfahren

function [x,i,ind] = steffensen(x0,TOL1,TOL2,N0); % % x0: Startwert; TOL1, TOL2: Toleranzen; N0: maximale Iterationsschrittanzahl % % x: letzte Iterierte; i: ben¨ otigte Anzahl an Iterationen % ind: Information ¨ uber den Rechenverlauf, mit % ind=1: Verfahren konvergiert, ’L¨ osung’ x ist berechnet, % ind=2: maximale Iterationsschrittanzahl N0 ¨ uberschritten % i=0; x=x0; while i < N0 x1=g(x); x2=g(x1); dx=(x1-x)^2/(x2-2*x1+x); x=x-dx; if abs(dx) < TOL1*(1+abs(x)) % x ist ’L¨ osung’ ind=1; return end i=i+1; end % maximale Iterationsschrittanzahl N0 ¨ uberschritten ind=2;

x0 (z.B. durch Ausw¨ urfeln) und f¨ uhrt eine gewisse (nicht zu große) Anzahl N von Iterationsschritten durch. Ist es hierdurch nicht gelungen, das Residuum r(xN ) ≡ 12 f (xN )2 unterhalb eines vorgegebenen (kleinen) Schwellenwertes zu reduzieren, dann wird x0 als unbrauchbar eingestuft und verworfen. Nun modifiziert man den Startwert oder w¨ahlt einen v¨ ollig anderen und beginnt die Iteration von vorn. In der Mehrzahl der F¨alle gelingt es, damit zu einer brauchbaren Approximation der gesuchten Nullstelle x∗ zu gelangen. Es stellt sich jetzt nat¨ urlich die Frage, ob es nicht einen systematischeren Weg gibt, um geeignete Startwerte zu ermitteln. Insbesondere ist man an Strategien interessiert, mit denen sich die Konvergenz der numerischen Grundverfahren f¨ ur (beinahe) beliebige Startwerte erzwingen l¨ aßt. Wie bei den linearen Gleichungen u ¨blich, h¨ atte man dann auch global konvergente Iterationsverfahren zur L¨osung der nichtlinearen Nullstellenaufgabe zur Verf¨ ugung. Wir wollen im folgenden zwei solche Techniken zur Globalisierung der lokal konvergenten Iterationsverfahren beschreiben.

4.8.1

D¨ ampfungsstrategien

Im Abschnitt 4.3 wurde das Newton-Verfahren zur Bestimmung einer Nullstelle x∗ von (4.6) xk = xk−1 −

f (xk−1 ) ≡ xk−1 + pk−1 , f 0 (xk−1 )

k = 1, 2, . . . ,

(4.61)

4.8 Globalisierung lokal konvergenter Verfahren

233

f (xk−1 ) bezeichnet man u ¨blicherweise als die f 0 (xk−1 ) zugeh¨ orige Newton-Korrektur. Beim sogenannten ged¨ ampften Newton-Verfahren verwendet man anstelle von (4.61) die modifizierte Vorschrift ausf¨ uhrlich studiert. Die Gr¨ oße pk−1 ≡ −

xk = xk (λk−1 ) = xk−1 + λk−1 pk−1 ,

k = 1, 2, . . . ,

(4.62)

wobei 0 < λk−1 ≤ 1 der sogenannte D¨ ampfungsfaktor ist. Bezeichnet xk−1 eine N¨aherung mit f (xk−1 ) 6= 0, dann wird λk−1 so bestimmt, daß der Monotonietest r(xk−1 + λk−1 pk−1 ) < r(xk−1 )

(4.63)

erf¨ ullt ist; r(˜ x) ≡ 12 f (˜ x)2 stellt dabei das Residuum der gegebenen Funktion f (x) f¨ ur den Wert x = x ˜ dar. Anschließend setzt man λk−1 in die rechte Seite von (4.62) ein und erh¨ alt die neue Iterierte xk . Wie man leicht sieht, geht das ged¨ampfte NewtonVerfahren (4.62) f¨ ur λk−1 = 1 in das gew¨ ohnliche Newton-Verfahren (4.61) u ¨ber. Die ¨ dargestellte D¨ ampfungsstrategie basiert auf folgenden Uberlegungen. Das Ziel aller Iterationsverfahren besteht darin, eine solche Approximation von x∗ zu berechnen, f¨ ur die das Residuum r sehr klein ist (in der L¨ osung gilt r(x∗ ) = 0). Man versucht deshalb, in jedem Iterationsschritt das Residuum weiter zu verkleinern. Ganz allgemein wird diese Technik als Abstiegsverfahren bezeichnet. Gelingt die Reduktion des Residuums mit dem gew¨ ohnlichen Newton-Verfahren (λk−1 = 1) nicht, dann d¨ ampft man die NewtonKorrektur, d.h., es wird ein λk−1 < 1 so ermittelt, daß die Beziehung (4.63) erf¨ ullt ist. Die Existenz eines solchen Parameterwertes λk−1 > 0 l¨aßt sich wie folgt begr¨ unden. Definiert man rk−1 (λ) ≡ 12 f (xk−1 + λ pk−1 )2 , dann ergibt sich durch Differentiation ∂rk−1 (0) = f (xk−1 ) f 0 (xk−1 ) pk−1 = −f (xk−1 )2 < 0, ∂λ d.h., die Ableitung an der Stelle λ = 0 ist negativ und rk−1 (λ) verh¨alt sich fallend f¨ ur kleine positive Werte von λ. Die Abstiegsbedingung (4.63) l¨aßt sich also f¨ ur eine gen¨ ugend kleine Schrittweite λk−1 > 0 stets erf¨ ullen. Der Name ged¨ ampftes Newton-Verfahren weist darauf hin, daß nicht der volle NewtonSchritt pk−1 , sondern nur ein Bruchteil λk−1 pk−1 gegangen wird. Die praktische Bestimmung des D¨ ampfungsparameters λk−1 anhand des Monotonie-Kriteriums (4.63) ist auf verschiedene Weise m¨ oglich. Eine recht einfache Vorschrift ergibt sich, wenn man λk−1 aus einer endlichen Folge {1, 12 , 14 , . . . , λmin } ausw¨ahlt und die Iteration abbricht, falls λk−1 < λmin notwendig w¨ urde. In kritischen Situationen wird man zur Vermeidung von Exponenten¨ uberlauf (xk wird gr¨ oßer als die gr¨oßte Maschinenzahl) versuchsweise mit λ0 = λmin beginnen. War λk−1 erfolgreich, so wird man im n¨achsten Iterationsschritt den Parameterwert λk = min{1, 2λk−1 } versuchen, um asymptotisch die quadratische Konvergenz des gew¨ ohnlichen Newton-Verfahrens (λ = 1) zu erreichen. War der Monotonietest mit λk−1 verletzt, so wird man diesen mit λk−1 ≡ λk−1 /2 erneut testen. Effek-

234

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

tivere D¨ ampfungsstrategien werden u.a. von Deuflhard1 und Schwetlick2 vorgeschlagen. So ersetzt Schwetlick die Monotoniebedingung (4.63) durch eine Ungleichung der Form r(xk−1 + λk−1 pk−1 ) < {1 + 2δλk−1 + δλ2k−1 } r(xk−1 ),

(4.64)

die sich f¨ ur den Nachweis der Konvergenzeigenschaften des resultierenden Verfahrens besser eignet. In (4.64) ist 0 < δ < 1 eine vorzugebende Konstante. Da in der Umgebung einer einfachen Nullstelle f¨ ur λk−1 = 1 schnelle quadratische Konvergenz des NewtonVerfahrens vorliegt, wird man gleichfalls versuchen, die Bedingung (4.64) mit der Wahl von λk−1 = 1 zu erf¨ ullen. Ist dies jedoch nicht m¨oglich, dann wird λk−1 um einen Faktor 0 < ρ < 1 verkleinert und der Test wiederholt, bis er nach endlich vielen Reduktionen von λk−1 erf¨ ullt ist. Das genaue Vorgehen kann dem Programm 4.6 entnommen werden. Ben¨otigt werden hier wieder Matlab-Funktionen f und fstrich f¨ ur f (x) bzw. f 0 (x). Vern¨ unftige Verfahrensparameter sind zum Beispiel ρ (rho) = 0.5 und δ (delta) = 0.01.

4.8.2

Homotopieverfahren

Eine alternative M¨ oglichkeit, lokal konvergente Iterationsverfahren zu globalisieren, stellen die Homotopie- oder Fortsetzungsverfahren dar. Die gegebene nichtlineare Gleichung f (x) = 0 wird dabei in eine einparametrige Familie von nichtlinearen Gleichungen H(x, t) = 0,

t ∈ [0, 1],

(4.65)

eingebettet. Die Funktion H soll die folgenden zwei Eigenschaften besitzen: • f¨ ur t = 1 gilt H(x, 1) = f (x), und • f¨ ur t = 0 ist bereits eine L¨ osung x0 von (4.65) bekannt, d.h., H(x0 , 0) = 0 . Beispielsweise l¨ aßt sich H(x, t) ≡ t f (x) + (1 − t) g(x)

(4.66)

verwenden, wenn f¨ ur einen vorgegebenen Zahlwert x = x0 die noch frei w¨ahlbare Funktion g(x) zu g(x) ≡ f (x) − f (x0 ) oder zu g(x) ≡ x − x0 definiert ist. Eine andere M¨ oglichkeit, die Gleichungsschar (4.65) vorzugeben, ist H(x, t) ≡ f (x) − (1 − t) f (x0 ), 1

(4.67)

P. Deuflhard: Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms. Springer-Verlag, Berlin und Heidelberg, 2004 2 H. Schwetlick: Numerische L¨ osung nichtlinearer Gleichungen. VEB Deutscher Verlag der Wissenschaften, Berlin 1979

4.8 Globalisierung lokal konvergenter Verfahren Programm 4.6

235

Ged¨ ampftes Newton-Verfahren

function [x,i,ind] = newtond(x0,delta,rho,TOL1,TOL2,N0); % % x0: Anfangsapproximation; 0 < delta,rho < 1: Verfahrenskonstanten % TOL1, TOL2: Toleranzen; N0: maximale Iterationsschrittanzahl % % x: letzte Iterierte; i: ben¨ otigte Anzahl an Iterationen % ind: Information ¨ uber den Rechenverlauf, mit % ind=1: Verfahren konvergiert, ’L¨ osung’ x ist berechnet, % ind=2: maximale Iterationsschrittanzahl N0 ¨ uberschritten % x=x0; i=0; lambda=1; while i < N0 fx=f(x); if abs(fx) < TOL1 % x ist ’L¨ osung’ ind=1; return end fsx=fstrich(x); if fsx == 0 % Newtonverfahren nicht durchf¨ uhrbar ind=3; return end p=-fx/fsx; while f(x+lambda*p)^2 > (1+2*delta*lambda+delta*lambda^2)*fx^2 lambda=rho*lambda; end x=x+lambda*p; if abs(lambda*p) < TOL2*(1+abs(x)) % x ist ’L¨ osung’ ind=1; return end i=i+1; lambda=min(lambda/rho,1); end % maximale Iterationsschrittanzahl N0 ¨ uberschritten ind=2;

wobei x0 eine (nicht notwendig gute) N¨ aherung f¨ ur die L¨osung x∗ von (4.6) bezeichnet. Wir wollen nun voraussetzen, daß die Gleichung (4.65) f¨ ur jedes t ∈ [0, 1] eine L¨osung x(t) besitzt, die stetig von t abh¨ angt. Mit anderen Worten, es m¨oge eine stetige Funktion x : [0, 1] → R existieren, so daß H(x(t), t) = 0,

t ∈ [0, 1],

x(0) = x0 .

Unter diesen Bedingungen beschreibt x eine Kurve in R, wobei der eine Endpunkt in x0 und der andere in der L¨ osung x∗ von (4.6) liegt. Um x∗ numerisch zu approximieren,

236

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

unterteilt man u ¨blicherweise das Intervall [0, 1] gem¨aß 0 = t0 < t1 < · · · < tm = 1

(4.68)

und bestimmt die zugeh¨ origen x-Werte nacheinander aus der Gleichung (4.65), im i-ten Schritt also x = xi = x(ti ) als L¨ osung von H(x, ti ) = 0,

i = 1, . . . , m.

(4.69)

In jedem Schritt dieses Homotopieverfahrens muß also selbst wieder eine nichtlineare Gleichung mittels einer inneren Iteration gel¨ost werden. Hierbei kann man auf die bekannten Iterationsverfahren f¨ ur nichtlineare Gleichungen zur¨ uckgreifen, so z.B. auf das Newton-Verfahren, welches f¨ ur das Problem (4.65) die folgende Gestalt besitzt

xik = xik−1 −

H(xik−1 , ti ) , H 0 (xik−1 , ti )

k = 1, 2, . . . ,

(4.70)

wobei H 0 die partielle Ableitung von H(x, t) nach dem ersten Argument bezeichnet. Als Startwert f¨ ur diese innere Iteration verwendet man die bereits berechnete L¨osung xi−1 des (i − 1)-ten Problems, d.h., xi0 ≡ xi−1 = x(ti−1 ). Der Iterationszyklus ist in der Abbildung 4.7 graphisch dargestellt.

Abbildung 4.7: Globalisierung mittels Homotopie

Wegen der Stetigkeit von x(t) kann der Fehler xi0 − xi = x(ti−1 ) − x(ti ) des Startwertes xi0 bez¨ uglich der gesuchten L¨ osung xi von (4.65) beliebig klein gemacht werden, wenn nur die Schrittweite hi−1 ≡ ti − ti−1 hinreichend klein gew¨ahlt wird. Somit ist das

4.8 Globalisierung lokal konvergenter Verfahren

237

Newton-Verfahren f¨ ur gen¨ ugend kleines hi−1 durchf¨ uhrbar und quadratisch gegen xi konvergent, d.h., xi = x(ti ) = lim xik . k→∞

Bei der praktischen Realisierung der obigen Homotopie-Strategie wird man hi in Abh¨angigkeit vom Verhalten der xik w¨ ahlen. Eine einfach zu implementierende Schrittweitensteuerung schlagen Schwetlick und Kretzschmar1 vor, deren Grundprinzip wir hier angeben wollen. Da mit den Iterierten xik auch die Residuen H(xik , ti ) quadratisch konvergieren, sollte zumindest die Bedingung H(xik+1 , ti )2 ≤ ρ H(xik , ti )2 ,

mit 0 < ρ < 1,

f¨ ur lineare Konvergenz mit einem Faktor ρ f¨ ur jedes k erf¨ ullt sein. Ist dies nicht der Fall, wurde hi vermutlich zu groß gew¨ ahlt und der i-te Homotopieschritt ist mit einem verkleinerten hi zu wiederholen. Im nachfolgenden Schritt wird man versuchen, mit einer etwas gr¨ oßeren Schrittweite zu arbeiten, damit der Aufwand nicht zu groß wird. Schließlich muß die innere Iteration nach endlich vielen Iterationsschritten abgebrochen werden, etwa mit xi ≡ xik+1 , wenn das Abbruchkriterium H(xik+1 , ti )2 ≤ ε erf¨ ullt ist. In dem Programm 4.7 ist die Implementierung des Homotopie-Verfahrens als MatlabFunktion homoto realisiert. Der Anwender muß dazu die gegebene Homotopie-Funktion H(x, t) als Matlab-Funktion H sowie deren Ableitung H 0 (x, t) als Matlab-Funktion Hs bereitstellen. Zum Abschluß wollen wir eine etwas andere Herangehensweise betrachten und zur Vereinfachung der Darstellung die spezielle Einbettung (4.67) H(x, t) ≡ f (x(t)) − (1 − t) f (x0 ) = 0

(4.71)

verwenden. Differenziert man die Gleichung (4.71) bez¨ uglich t, so ergibt sich f 0 (x(t)) x0 (t) + f (x0 ) = 0. Unter der Voraussetzung, daß f 0 (x) entlang der L¨osungskurve nicht verschwindet, folgt nun unmittelbar x0 (t) = −

f (x0 ) . f 0 (x(t))

(4.72)

Somit stellt sich die gesuchte L¨ osungskurve x(t) als L¨osung eines Anfangswertproblems, bestehend aus der Differentialgleichung (4.72) und der Anfangsbedingung x(0) = x0 , dar. Dieses kann mit den u ur Anfangswertprobleme ¨blichen numerischen Techniken f¨ 1

Siehe das Buch von H. Schwetlick und H. Kretzschmar: Numerische Verfahren f¨ ur Naturwissenschaftler und Ingenieure. Fachbuchverlag GmbH, Leipzig, 1991

238 Programm 4.7

Kapitel 4 Nichtlineare Gleichungen in einer Variablen Homotopie-Verfahren

function [x,ind] = homoto(x0,mue,rho,hmin,hmax,TOL,N0); % % x0: Startwert; mue,rho: Verfahrensparameter aus (0,1) % hmin: minimale Homotopie-Schrittweite aus (0,1] % hmax: maximale Homotopie-Schrittweite aus (0,1]; TOL: Toleranz % N0: maximale Iterationsschrittanzahl % % x: letzte Iterierte; ind: Information ¨ uber den Rechenverlauf, mit % ind=1: Verfahren konvergiert, ’L¨ osung’ x ist berechnet, % ind=2: Schrittweite h1, h=1-s; end t=s+h; k=0; hx=H(x,t); xn=x-hx/Hs(x,t); hn=H(xn,t); while hn > TOL i=1; if hn^2 N0, ind=3; return, end else h=mue*h; % Abbruch wegen zu kleiner Schrittweite if h n, gelte P (xi ) = Q(xi ),

i = 1, . . . , k.

Dann ist P (x) = Q(x) f¨ ur alle Werte von x.



Besitzt ein Polynom komplexe Zahlen als Wurzeln, dann sind auch die zugeh¨origen konjugiert komplexen Zahlen L¨ osungen der Polynomgleichung. Genauer gilt Satz 4.9. Bezeichnet z = a+b i eine komplexe Wurzel der Vielfachheit m des Polynoms P (x), dann ist auch z¯ = a − b i eine Wurzel der Vielfachheit m von P (x). Des weiteren ist (x2 + 2ax + a2 + b2 ) ein Faktor von P (x). Die Anwendung des Newton-Verfahrens zur Bestimmung von L¨osungen der Polynomgleichung P (x) ≡ an xn + an−1 xn−1 + · · · + a1 x + a0 = 0

(4.74)

erfordert die fortlaufende Berechnung von Funktions- und Ableitungswerten von P (x). Es ist deshalb sehr wichtig, hierf¨ ur einen effektiven Algorithmus zur Verf¨ ugung zu haben. Eine naheliegende Technik, den Wert des Polynoms P (x) an einer Stelle x = x0 zu bestimmen, besteht darin, zuerst die Potenzen x20 , x30 , . . . , xn0 zu berechnen (das sind (n−1) Multiplikationen), dann die Produkte ai xi0 , f¨ ur i = 1, 2, . . . , n, zu bilden (nochmals n Multiplikationen) und schließlich n Additionen auszuf¨ uhren, um die Zwischenresultate aufzusummieren. Der Gesamtaufwand betr¨ agt somit 2n − 1 Multiplikationen und n Additionen. Der folgende Satz gibt demgegen¨ uber einen viel effektiveren Algorithmus an, der unter dem Namen Horner-Schema 1 bekannt ist und nur n Multiplikationen sowie 1

Das Verfahren ist nach dem Engl¨ ander William George Horner (1786–1837) benannt. Es stellt den einzigen bedeutsamen Beitrag von ihm zur Mathematik dar. Das Horner-Schema wurde am 1. Juli 1819 der Royal Society vorgelegt und noch im selben Jahr in den Philosophical Transactions of the Royal Society ver¨ offentlicht. Horner war jedoch nicht der erste, der diese Methode vorgeschlagen hat, sondern sie wurde bereits 500 Jahre fr¨ uher von dem Chinesen Chu Shih-chieh (1270–1330) verwendet. Er geh¨ ort zu den bedeutendsten chinesischen Mathematikern, der in seiner Arbeit Ssu-yuan yu-chien (engl.: Precious Mirror of the Four Elements“, erschienen 1303) neben anderen mathematischen ” Problemen auch eine L¨ osung f¨ ur eine allgemeine Gleichung 14. Grades beschrieb. Er verwendete dazu eine Umwandlungsmethode, die er fan fa nannte und die eben Horner als das Horner-Schema wiederentdeckte.

4.9 Nullstellen reeller Polynome

241

n Additionen zur Berechnung von P (x0 ) ben¨ otigt. Neben dem geringeren Aufwand ist das Horner-Schema auch wesentlich g¨ unstiger in Bezug auf die Fortpflanzung von Rundungsfehlern. Das Horner-Schema wird in der Literatur oftmals auch als synthetische Division oder als Regel von Ruffini 1 bezeichnet. Satz 4.10. Es sei P (x) ein Polynom n-ten Grades und es werde bn ≡ an gesetzt. Definiert man des weiteren bk ≡ ak + bk+1 x0 f¨ ur k = n − 1, n − 2, . . . , 0, dann ergibt sich b0 = P (x0 ). Ist schließlich Q(x) ≡ bn xn−1 + bn−1 xn−2 + · · · + b2 x + b1 , dann gilt P (x) = (x − x0 )Q(x) + b0 .

(4.75)

Beweis: Nach der Definition von Q(x) ist: (x − x0 )Q(x) + b0

=

(x − x0 )(bn xn−1 + · · · + b2 x + b1 ) + b0

=

(bn xn + bn−1 xn−1 + · · · + b2 x2 + b1 x) −(bn x0 xn−1 + · · · + b2 x0 x + b1 x0 ) + b0

=

bn xn + (bn−1 − bn x0 )xn−1 + · · · + (b1 − b2 x0 )x + (b0 − b1 x0 ).

Die Voraussetzungen des Satzes implizieren bn = an und bk − bk+1 x0 = ak , so daß unmittelbar (x − x0 )Q(x) + b0 = P (x) und b0 = P (x0 ) folgt.  Hat man f¨ ur die Durchf¨ uhrung des Horner-Schemas keinen programmierbaren Rechner zur Hand, dann ist es sachgem¨ aß, auf die Tabelle 4.1 zur¨ uckzugreifen. Der Name HornerSchema leitet sich hiervon ab. an x0 = bn

an−1

an−2

···

a0

+x0 bn

+x0 bn−1

···

+x0 b1

= bn−1

= bn−2

···

= b0

Tabelle 4.1: Horner-Schema zur Berechnung von P (x0 )

Wir wollen jetzt anhand eines Beispiels den oben aufgezeigten Rechenweg demonstrieren. Beispiel 4.4. Gegeben sei das Polynom P (x) = 5 x4 + x3 − 4 x + 7. An der Stelle x0 = 2 soll der Funktionswert P (x0 ) numerisch berechnet werden. Hierzu wird die Tabelle 4.1, wie in der Tabelle 4.2 angegeben, erstellt. Somit ergibt sich f¨ ur x0 = 2 der Funktionswert P (x0 ) = 87. Des weiteren l¨aßt sich aus der Tabelle 4.2 ablesen, daß P (x) in der folgenden Gestalt faktorisiert werden kann: 1

Paolo Ruffini (1765–1822), italienischer Mathematiker und Philosoph

242

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Koeffizient von x4

Koeffizient von x3

Koeffizient von x2

Koeffizient von x

konstanter Term

a4 = 5

a3 = 1

a2 = 0

a1 = −4

a0 = 7

b4 x0 = 10

b3 x0 = 22

b2 x0 = 44

b1 x0 = 80

b3 = 11

b2 = 22

b1 = 40

b0 = 87

x0 = 2 b4 = 5

Tabelle 4.2: Horner-Schema f¨ ur das Beispiel 4.4

P (x) = (x − 2) (5 x3 + 11 x2 + 22 x + 40) + 87.



Ein weiterer Vorteil des Horner-Schemas besteht darin, daß f¨ ur die Berechnung des Ableitungswertes P 0 (x0 ) nur eine zus¨ atzliche Zeile in der Tabelle 4.1 notwendig ist. Es gilt n¨ amlich: P (x) = (x − x0 ) Q(x) + b0 ,

mit

Q(x) = bn xn−1 + bn−1 xn−2 + · · · + b2 x + b1 .

Die Differentiation dieses Ausdruckes ergibt P 0 (x) = Q(x) + (x − x0 ) Q0 (x), d.h., P 0 (x0 ) = Q(x0 ).

(4.76)

Beispiel 4.5. Die Tabelle 4.1 soll f¨ ur das Beispiel 4.4 weitergef¨ uhrt werden, um P 0 (x0 ) zu berechnen. Es ergibt sich die Tabelle 4.3. 5 5

1 10 11

0 22 22

5

10 21

42 64

x0 = 2 x0 = 2

-4 44 40

7 80 87 = P (2)

128 168 = Q(2) = P 0 (2)

Tabelle 4.3: Erweitertes Horner-Schema f¨ ur Beispiel 4.5



Die Realisierung des Horner-Schemas auf einem Computer wird man nat¨ urlich nicht in Tabellenform vornehmen. Das unten angegebene MATLAB-Programm 4.8 ist f¨ ur Computerrechnungen geeignet. Mit ihm lassen sich P (x0 ) und P 0 (x0 ) unter Verwendung des Horner-Schemas numerisch ermitteln. Die Berechnung einer reellen L¨ osung x∗ der Gleichung (4.74) kann mit dem NewtonVerfahren unter Verwendung des Programms 4.8 vorgenommen werden. Ist die N -te Iterierte des Newton-Verfahrens eine hinreichend gute Approximation von x∗ , dann

4.9 Nullstellen reeller Polynome Programm 4.8

243

Erweitertes Horner-Schema

function [y,ys] = horner(p,x); % % p: Vektor, der die Koefizienten a(0),...,a(n) von P(x) enth¨ alt % x: Vektor der Stellen, an denen das Polynom ausgewertet werden soll % % y: Funktionswerte P(x) % ys: Ableitungswerte P’(x) % m=length(p); y=0*x+p(m); ys=y; for i=m-1:-1:2 y=x.*y+p(i); ys=x.*ys+y; end y=x.*y+p(1);

gilt: P (x) = (x − xN )Q(x) + b0 = (x − xN )Q(x) + P (xN ) ≈ (x − xN )Q(x), d.h., (x − xN ) erweist sich als ein gen¨ aherter Faktor von P (x). Im folgenden wollen wir mit x ˆ1 ≡ xN die Approximation der zuerst betrachteten Wurzel x∗1 von P (x) bezeichnen. Q1 (x) sei der zugeh¨ orige gen¨ aherte Faktor. Dann gilt P (x) ≈ (x − x ˆ1 )Q1 (x). Nun kann man eine zweite Wurzel x∗2 von P (x) approximieren, indem das Newton-Verfahren auf Q1 (x) angewendet wird. Ist P (x) ein Polynom n-ten Grades mit n reellen Wurzeln, dann f¨ uhrt die wiederholte Anwendung dieser Strategie zu n−2 approximierten Wurzeln sowie zu einem gen¨ aherten quadratischen Faktor Qn−2 (x). Die direkte Aufl¨osung dieses Faktors ergibt die noch fehlenden Approximationen f¨ ur die restlichen 2 Wurzeln von P (x). Obwohl dieses Vorgehen f¨ ur die Approximation aller reellen Wurzeln eines Polynoms theoretisch anwendbar ist, f¨ uhrt die fortlaufende Verwendung nur approximierter Werte praktisch zu sehr ungenauen Resultaten. Dies gilt insbesondere f¨ ur große n. Sieht man sich die soeben beschriebene Deflations-Strategie ( Abdividierungs-Strategie“) ge” nauer an, dann stellt man fest, daß der Genauigkeitsverlust auf die folgende Ursache zur¨ uckzuf¨ uhren ist. Nach der Bestimmung der gen¨aherten Wurzeln x ˆ1 , . . . , x ˆk von P (x) wird das Newton-Verfahren auf ein Polynom Qk (x) angewendet, das auf diesen N¨ aherungen basiert und f¨ ur welches P (x) ≈ (x − x ˆ1 )(x − x ˆ2 ) · · · (x − x ˆk )Qk (x) gilt. Man berechnet somit die Approximation x ˆk+1 einer Wurzel des nur n¨aherungsweise bekannten Faktors Qk (x) und verwendet diese als N¨aherung f¨ ur die exakte Wurzel x∗k+1 von P (x). Anschließend wird wieder nur das reduzierte Polynom Qk+1 (x) betrachtet, um die Approximation einer weiteren Wurzel von P (x) zu berechnen. Dabei gilt Qk (x) ≈ (x − x ˆk+1 )Qk+1 (x).

244

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Eine M¨ oglichkeit, diese Schwierigkeiten zu beseitigen, besteht darin, die gen¨aherten Faktoren Q1 (x), Q2 (x), . . . , Qk−1 (x) von P (x) zur Bestimmung erster (relativ ungenauer) Approximationen x ˆ2 , x ˆ3 , . . . , x ˆk zu verwenden, um diese dann in einem zweiten Schritt zu verbessern. Der zweite Schritt besteht in der Anwendung des Newton-Verfahrens auf die urspr¨ ungliche Polynomgleichung (4.74). Als Startwerte werden dabei die bereits berechneten Werte x ˆk benutzt. In der Regel sind dann zum Erreichen einer vorgegebenen Genauigkeit nur noch wenige Iterationsschritte erforderlich. F¨ ur die Bestimmung von x ˆk+1 aus dem gen¨ aherten (dimensions-)reduzierten Polynom Qk (x) mittels des Newton-Verfahrens ben¨ otigt man jedoch hinreichend genaue Startwerte (lokale Konvergenz!). Derartige Startapproximationen lassen sich wie folgt finden. Man berechnet P (x) an gewissen Stellen xi , i = 1, . . . , m, m hinreichend groß. Gilt P (xi ) P (xj ) < 0, dann impliziert der Zwischenwertsatz die Existenz mindestens einer Wurzel zwischen xi und xj . Die Aufgabe besteht nun darin, durch eine geschickte Wahl der xi daf¨ ur zu sorgen, daß die M¨ oglichkeit, einen Vorzeichenwechsel zu u ¨bersehen, minimal wird. Die dabei auftretenden Probleme lassen sich am folgenden Beispiel gut erkennen. Beispiel 4.6. Gegeben sei das Polynom1 P (x) = 16 x4 − 40 x3 + 5 x2 + 20 x + 6.

(4.77)

Bezeichnet xk eine beliebige ganze Zahl, dann l¨aßt sich unmittelbar P (xk ) > 0 zeigen. W¨ ahlt man andererseits xk = 14 k 2 , k ist ganzzahlig, dann ist ebenfalls P (xk ) > 0. Die Auswertung von P (x) an unendlich vielen Stellen xk w¨ urde folglich zu keiner Lokalisierung eines Intervalls [xi , xj ] f¨ uhren, das eine Wurzel von P (x) enth¨alt. Tats¨achlich besitzt das Polynom (4.77) aber die beiden reellen Nullstellen x1 = 1.241677 und x2 = 1.970446 sowie die konjugiert komplexen Nullstellen x3,4 = −0.356062±0.162758 i.  Wir haben damit gesehen, daß die obige Strategie f¨ ur solche Polynome ungeeignet ist, deren Wurzeln sehr eng beieinander liegen. Eine bessere Vorgehensweise zur Ermittlung von Intervallen, die reelle Wurzeln von P (x) enthalten, basiert auf folgender Beobachtung: 1 1 • y ∈ (0, 1] ⇐⇒ ∈ [1, ∞) und y ∈ [−1, 0) ⇐⇒ ∈ (−∞, −1]. y y Verwendet man nun anstelle von x die Variable 1/y, dann ergibt sich    n  n−1   1 1 1 1 P = an + an−1 + · · · + a1 + a0 y y y y 1 = (an + an−1 y + · · · + a1 y n−1 + a0 y n ). yn Es sei Pˆ (y) ≡ a0 y n + a1 y n−1 + · · · + an−1 y + an . 1

(4.78)

Siehe R. L. Burden and J. D. Faires: Numerical Analysis. Brooks/Cole Publishing Company, Pacific Grove et al., 1997

4.9 Nullstellen reeller Polynome

245

Zwischen den Wurzeln von Pˆ und P besteht dann folgender Zusammenhang: •

yˆ 6= 0 ist Wurzel von Pˆ

⇐⇒ 1/ˆ y ist Wurzel von P .

Um nun Approximationen f¨ ur alle reellen Wurzeln von P (x) zu berechnen, reicht es somit aus, nur die Intervalle [−1, 0] und [0, 1] abzusuchen und sowohl P (x) als auch Pˆ (x) zu berechnen, um Vorzeichenwechsel festzustellen. Gilt P (xi ) P (xj ) < 0, dann besitzt P (x) eine Wurzel in [xi , xj ]. Besteht andererseits die Beziehung Pˆ (xi ) Pˆ (xj ) < 0, dann besitzt Pˆ (x) eine Wurzel in [xi , xj ], woraus folgt, daß f¨ ur P (x) eine Wurzel in [1/xj , 1/xi ] vorliegt. Die Intervalle [−1, 0] und [0, 1] werden einzeln abgesucht, um den Fall Pˆ (xi ) Pˆ (xj ) < 0 f¨ ur xi ∈ [−1, 0) und xj ∈ (0, 1] auszuschließen. Es gibt viele Strategien, die xi festzulegen; f¨ ur die meisten praktischen Probleme ist die folgende Methode ausreichend. Es wird ein geradzahliges (ganzes) N f¨ ur die maximale Anzahl zu berechnender Punkte vorgegeben. Die Punkte selbst berechnet man dann nach der Vorschrift: x0 = −1,

xi = xi−1 +

2 , N

i = 1, . . . , N.

Hieraus ergeben sich m ≡ N + 1 Punkte mit x0 = −1, x N = 0 und xN = 1. 2

Beispiel 4.7. Es sollen die Wurzeln des folgenden Polynoms mit der obigen Technik berechnet werden, wobei eine 8-stellige Gleitpunktarithmetik zugrunde gelegt wird. P (x) ≡ −2 x4 + x3 + 10 x2 + 12 x + 9

Es sei y ≡

1 . Damit ergibt sich x    4  3  2   1 1 1 1 1 P = −2 + + 10 + 12 +9 y y y y y 1 = (−2 + y + 10 y 2 + 12 y 3 + 9 y 4 ), d.h. y4 Pˆ (x) = 9 x4 + 12 x3 + 10 x2 + x − 2.

Nachdem jetzt P (x) und Pˆ (x) vorliegen, kann in [−1, 1] nach Intervallen gesucht werden, die Wurzeln von P (x) und/oder Pˆ (x) enthalten. Zur Berechnung der Funktionswerte ist jeweils das Horner-Schema angebracht. Die Tabelle 4.4 enth¨alt die verwendeten Punkte in [−1, 1] sowie die Werte von P und Pˆ an diesen Stellen. Da hier Pˆ (−0.75) = 0.6602 und Pˆ (−0.5) = −0.9375 sowie Pˆ (0.25) = −0.9023 und Pˆ (0.5) = 3.0625 gilt, besitzt Pˆ (x) sowohl in (−0.75, −0.5) als auch in (0.25, 0.5) mindestens eine Wurzel. Dies bedeutet wiederum, daß P (x) jeweils mindestens eine Wurzel in den Intervallen I1 ≡ (−1/0.5, −1/0.75) = (−2, −4/3) und I2 ≡ (1/0.5, 1/0.25) = (2, 4)

246

Kapitel 4 Nichtlineare Gleichungen in einer Variablen xi

P (xi )

Pˆ (xi )

xi

P (xi )

Pˆ (xi )

-1.0000

4.0000

4.0000

0.2500

12.6328

-0.9023

-0.7500

4.5703

0.6602

0.5000

17.5000

3.0625

-0.5000

5.2500

-0.9375

0.7500

23.4141

12.2852

-0.2500

6.6016

-1.7773

1.0000

30.0000

30.0000

0

9.0000

-2.0000

Tabelle 4.4: Funktionswerte f¨ ur Beispiel 4.7

hat. Mit dem Startwert x0 = −1.4285714 ≈ −1/0.7 soll unter Verwendung des NewtonVerfahrens eine reelle Wurzel in I1 berechnet werden. Nach 2 Iterationsschritten erh¨alt man x2 = −1.5000820. Das Horner-Schema ergibt dann die (gen¨aherte) Faktorisierung von P (x): P (x) ≈ (x + 1.500082) Q(x),

mit

Q(x) = −2.0000000 x3 + 4.000164 x2 + 3.999426 x + 6.000533. Da Q(x) nur eine N¨ aherung f¨ ur den entsprechenden Faktor von P (x) darstellt (f¨ ur die numerisch berechnete Faktorisierung ergibt sich ein Rest von -0.0012915), sind die exakten Wurzeln von Q(x) nur gewisse N¨ aherungen f¨ ur die Wurzeln von P (x). Wegen des geringeren Grades von Q(x) sind aber weniger Rechenoperationen f¨ ur die weitere Wurzelberechnung erforderlich als f¨ ur P (x). Wie zuvor diskutiert wurde, approximiert man deshalb mit dem Newton-Verfahren zuerst die Wurzeln von Q(x) und verbessert diese dann mittels des Newton-Verfahrens bez¨ uglich P (x). Die Anwendung des NewtonVerfahrens in Kombination mit dem Horner-Schema auf Q(x) ergibt f¨ ur den Startwert x0 = 3.3333333 ≈ 1/0.3 nach drei Iterationsschritten x2 = 3.0000118. Jetzt liegen 2 approximierte Wurzeln von P (x) vor: x ˆ1 = 3.0000118 und x ˆ2 = −1.500082. Wir wenden das Horner-Schema noch einmal an, um P (x) zu faktorisieren: ˆ P (x) ≈ (x − x ˆ1 ) (x − x ˆ2 ) Q(x). Es ergibt sich damit die Tabelle 4.5. Negiert man die kleinen Reste –0.0013861 und –1.98 E-5, dann l¨aßt sich P (x) wie folgt schreiben: P (x) ≈ (x − 3.0000118) (x + 1.500082) (−2.0000000 x2 − 1.9998596 x − 2.0001764). Schließlich erh¨ alt man aus der quadratischen Gleichung ˆ Q(x) ≡ −2.0000000 x2 − 1.9998596 x − 2.0001764 = 0

4.9 Nullstellen reeller Polynome

-2 3.0000118 -1.5000820

247

1

10

12

9

-6.0000236 -15.0001298 -15.0004484 -9.0013861 -2.0000000 -5.0000236

-5.0001298

-3.0004484 -0.0013861

3.000164

2.9999534

3.0004286

-2.0000000 -1.9998596

-2.0001764

-1.98 E-5

Tabelle 4.5: Faktorisierung von P (x)

f¨ ur x ˆ3 und x ˆ4 die Approximationen x ˆ3 = −0.4999649 + 0.8660966 i

und x ˆ4 = −0.4999649 − 0.8660966 i.

Die N¨ aherungen x ˆ1 und x ˆ2 f¨ ur die reellen Nullstellen des gegebenen Polynoms k¨onnen nun wie folgt verbessert werden. Man verwendet sie als Startwerte f¨ ur das NewtonVerfahren, welches man jetzt auf P (x) = 0 anwendet. Da man schon sehr gute N¨aherungen vorliegen hat, sind nur noch wenige Iterationsschritte zum Erreichen einer ben¨otigten Genauigkeit notwendig, so daß sich der hierf¨ ur erforderliche Aufwand in Grenzen h¨ alt. So ergeben sich jeweils in nur einem Iterationsschritt die auf 8 Stellen genauen Approximationen f¨ ur die reellen Nullstellen: x ˆ1 = 3.0000000 und x ˆ2 = −1.5000000. Um die Approximationen f¨ ur x ˆ3 und x ˆ4 zu verbessern, m¨ ußten die hier dargestellten Iterationsverfahren (beispielsweise das Newton-Verfahren) komplexwertig realisiert werden, d.h., man startet mit der N¨ aherung x ˆ3 unter Verwendung des urspr¨ unglichen Problems P (x) ≡ −2 x4 + x3 + 10 x2 + 12 x + 9 = 0. Dieses Vorgehen erfordert jedoch einen betr¨ achtlichen Aufwand an Arithmetik mit komplexen Zahlen.  Das obige Beispiel zeigt, daß zur Berechnung komplexer Nullstellen spezielle Verfahren erforderlich sind, die ohne komplexwertige Arithmetik auskommen. Deren Grundidee kann wie folgt beschrieben werden. Anstelle der komplexen und der zugeh¨origen konjugiert komplexen Nullstellen ermittelt man den zugeh¨origen quadratischen Faktor. Dieser besitzt reelle Koeffizienten und kann mittels reeller Arithmetik berechnet werden. Anschließend bestimmt man die beiden komplexen Wurzeln nach der p-q-Formel aus der quadratischen Gleichung. Zur genaueren Beschreibung des Vorgehens soll angenommen werden, daß das Polynom (4.73) die komplexe Wurzel x ≡ α + βi besitzt. Dann ist x ¯ ≡ α − βi ebenfalls eine Wurzel von P (x). Hieraus ergibt sich f¨ ur den zugeh¨origen quadratischen Faktor die Darstellung R(x) = x2 − 2α x + α2 + β 2 . Die Division von P (x) durch R(x) f¨ uhrt auf P (x) = R(x) Q(x) + A x + B, wobei A und B Konstanten sowie Q(x) ein Polynom vom Grad n − 2 sind. Diese Division l¨ aßt sich ebenfalls mit einem geeigneten Horner-Schema realisieren. Hierzu sei R(x) ≡ x2 + b1 x + b0 .

248

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Man rechnet nun wie in der Tabelle 4.6 angegeben.

···

a1

a0

−b0 sn−1 · · ·

···

···

−b1 sn −b1 sn−1 −b1 sn−2 · · ·

···

0

an

an−1

an−2

b0

0

0

−b0 sn

b1

0 sn

sn−1

sn−2

an−3

sn−3

···

s1 s0 |{z} |{z} A

B

Tabelle 4.6: Division von P (x) durch R(x) (quadratisches Horner-Schema)

1) Zuerst werden Nullen in den Positionen eingetragen, die nicht mit berechneten Werten zu besetzen sind: das sind das 2. und das 3. Element in der ersten Spalte, das 2. Element in der zweiten Spalte sowie das 3. Element in der letzten Spalte. 2) Die Elemente der ersten Zeile sind die Koeffizienten von P (x). 3) Das Element in der Spalte j der 2. Zeile berechnet sich aus der Multiplikation von −b0 mit der Summe der Elemente der Spalte j − 2 (wobei die Spalten von links nach rechts mit 1 bis n + 1 durchnumeriert seien). 4) Das Element in der Spalte j der 3. Zeile berechnet sich aus der Multiplikation von −b1 mit der Summe der Elemente der Spalte j − 1, f¨ ur j = 2(1)n. Das Element in der letzten Spalte von Zeile 3 ist immer Null. 5) Die Koeffizienten des Polynoms Q sind sn , sn−1 , . . . , s2 . 6) Die Summe der Elemente der vorletzten Spalte ergibt A. 7) Die Summe der Elemente der letzten Spalte ergibt B. Die obige Tabelle wird quadratisches Horner-Schema genannt. Anhand eines Beispiels wollen wir diese Rechenvorschrift noch einmal verdeutlichen. Beispiel 4.8. Man verwende das quadratische Horner-Schema (Tabelle 4.6), um das Polynom P (x) = x6 − 2x5 + 7x4 − 4x3 + 11x2 − 2x + 5 durch den quadratischen Term R(x) = x2 − 2x + 1 zu dividieren. Aus der Tabelle 4.7 l¨ aßt sich nun unmittelbar ablesen x6 − 2x5 + 7x4 − 4x3 + 11x2 − 2x + 5 = (x2 − 2x + 1)(x4 + 6x2 + 8x + 21) +32x − 16.



4.9 Nullstellen reeller Polynome

249

1

-2

7

-4

11

-2

5

1

0

0

-1

0

-6

-8

-21

-2

0

2

0

12

16

42

0

1

0

6

8

21

32

-16

Tabelle 4.7: Quadratisches Horner-Schema f¨ ur Beispiel 4.8

Das quadratische Horner-Schema kann auf einem Computer mit dem MATLAB-Programm 4.9 realisiert werden. Programm 4.9

Quadratisches Horner-Schema

function [q,z,c] = hornerq(p,b); % % p: Vektor, der die Koefizienten a(0),...,a(n) von P(x) enth¨ alt % b: Vektor, der die beiden Koeffizienten b(0) und b(1) von R(x) enth¨ alt % % q: Vektor, der die Koeffizienten q(0),...,q(n-2) von Q(x) enth¨ alt % z: Wert von A % c: Wert von B % m=length(p); z=p(m); c=p(m-1); q(m-2)=z; for i=m-1:-1:2 zz=z; z=-b(2)*zz+c; c=-b(1)*zz+p(i-1); if i>2 q(i-2)=z; end end

Bemerkung 4.3. • In R(x) muß der Koeffizient von x2 gleich eins sein, damit das Programm 4.9 angewendet werden kann. • Ax + B ist der Restterm des Divisionsprozesses. Gilt A = B = 0, dann ist der Ausdruck x2 + b1 x + b0 ein Faktor von P (x).  Hat man nun mittels des quadratischen Horner-Schemas einen (gen¨aherten) quadratischen Faktor R(x) gefunden, dann ermittelt man Approximationen f¨ ur die zugeh¨origen komplexen Wurzeln x und x ¯ nach der p-q-Formel r  p 2 p 2 2 x + p x + q ≡ x + b1 x + b0 = 0 ⇒ x1,2 = − ± i q − . 2 2

250

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Falls erforderlich, lassen sich die N¨ aherungen anschließend mit dem Newton-Verfahren in komplexer Arithmetik weiter verbessern. Bei der Anwendung des Newton-Verfahrens in dieser Situation erweist sich das zuvor dargestellte Programm 4.9 wieder als n¨ utzlich. Ist n¨ amlich x0 = α + βi eine gen¨ aherte komplexe Wurzel von P (x), die man mit dem Newton-Verfahren verbessern m¨ ochte, dann lautet wie u ¨blich der erste Iterationsschritt x1 = x0 −

P (x0 ) . P 0 (x0 )

Da die komplexe Zahl x0 = α+βi zum quadratischen Faktor R(x) = x2 −2αx+(α2 +β 2 ) geh¨ ort, ist R(x0 ) = 0. Wird das Programm 4.9 f¨ ur die Division von P (x) durch R(x) herangezogen, dann lautet das Resultat P (x) = R(x)Q(x) + Ax + B,

wobei gilt

P (x0 ) = Ax0 + B.

Des weiteren ist P 0 (x) P 0 (x0 )

= R(x)Q0 (x) + R0 (x)Q(x) + A,

woraus folgt:

= R(x0 )Q0 (x0 ) + (2x0 − 2α)Q(x0 ) + A =

2βiQ(x0 ) + A.

0

Zur Berechnung von P (x0 ) bestimmt man zuerst mit dem Programm 4.9 den Wert Q(x0 ). Anschließend wird P 0 (x0 ) = 2βiQ(x0 ) + A gesetzt. Der Schwachpunkt dieses komplexen Wurzelberechnungsverfahrens (auf der Basis des Programms 4.9) besteht darin, daß eine Anfangsapproximation f¨ ur den quadratischen Faktor ben¨ otigt wird. Da die Bestimmung einer Anfangsn¨aherung selbst bei reellen Wurzeln kompliziert ist, sollte man nicht u ¨berrascht sein, daß hier eine substantielle Schwierigkeit vorliegt.

4.9.2

Das QD-Verfahren

Im Jahre 1954 wurde von H. Rutishauser1 der sogenannte Quotienten-DifferenzenAlgorithmus zur Berechnung der Eigenwerte einer symmetrischen tridiagonalen Matrix vorgeschlagen. Wir wollen hier eine Variante dieses Algorithmus, das QD-Verfahren, angeben, mit der sich alle Wurzeln eines Polynoms numerisch bestimmen lassen. Das (iterative) QD-Verfahren besitzt im Vergleich mit den bisher betrachteten Techniken den wesentlichen Vorteil, daß es ohne die aufwendige Suche nach geeigneten Startwerten auskommt. Andererseits erweist es sich aber als sehr empfindlich gegen¨ uber Rundungsfehlern und besitzt nur eine geringe Konvergenzgeschwindigkeit. Das QD-Verfahren wird deshalb i.allg. nur zur Bestimmung von Anfangsapproximationen, sowohl f¨ ur die reellen Wurzeln als auch f¨ ur die quadratischen Faktoren der konjugiert komplexen Wurzeln herangezogen. Diese verbessert man dann anschließend mit dem Newton-Verfahren (bzw. mit seinen ableitungsfreien Varianten). Die zugeh¨orige Theorie ist ziemlich umfangreich und w¨ urde den Rahmen dieses Textes sprengen2 . Wir wollen hier nur die grundlegenden 1 2

H. Rutishauser: Der Quotienten-Differenzen-Algorithmus. ZAMP 5 (1954), pp. 233–251 Siehe z.B.: H. Rutishauser: Vorlesungen u auser, Basel und Stutt¨ber Numerische Mathematik. Birkh¨ gart, 1976

4.9 Nullstellen reeller Polynome

251

Ideen darstellen. Hierzu werde vorausgesetzt, daß alle Koeffizienten des Polynoms P (x) = an xn + an−1 xn−1 + · · · + a2 x2 + a1 x + a0 nicht verschwinden, d.h., es m¨ oge a0 6= 0, . . . , an 6= 0 gelten. Das QD-Verfahren zur Approximation der Wurzeln von (4.73) erzeugt zwei unterschiedliche Zahlenfolgen (k)

{ei }∞ i=1 ,

k = 1, . . . , n + 1,

(k)

{qi }∞ i=1 ,

und

k = 1, . . . , n.

Die Folgenelemente bestimmen sich dabei wie folgt: (1)

=

0,

(k)

=

an−k , an−k+1

(1)

= −

(k)

= ei

(k)

=

ei

e1

q1

qi+1

(k+1)

ei

= 0,

i = 1, 2, . . . ,

k = 2, . . . , n,

an−1 , an

(k)

ei+1

(n+1)

i = 1, 2, . . . ,

(k)

q1 (k)

+ qi

= 0,

k = 2, . . . , n,

(k)

− ei ,

k = 1, . . . , n,

i = 1, 2, . . . ,

(k)

qi+1 ei

(k−1)

,

k = 2, . . . , n,

i = 1, 2, . . .

(4.79)

qi+1

Man beachte, daß dieser Prozeß nur wohldefiniert ist, falls die Nenner in (4.79) nicht verschwinden. Obwohl die Konstruktionsvorschrift auf den ersten Blick kompliziert erscheint, l¨ aßt sie sich mit Hilfe der Tabelle 4.8 relativ einfach darstellen. (1)

(1)

(2)

ei

an−1 an

an−2 an−1

qi

(3)

(3)

···

0

···

(n)

qi

(n+1)

0

2

0

0

3

0

0

.. .

.. .

.. .

an−3 an−2

ei

(n)

1

0

ei

qi

ei



qi

(2)

i

a0 a1

0

ei

0

Tabelle 4.8: Starttabelle f¨ ur den QD-Algorithmus (k)

(k)

(1)

(n+1)

Zuerst werden die gegebenen Werte f¨ ur q1 , e1 , ei und ei eingetragen. Der (k) n¨ achste Schritt besteht in der Konstruktion der q2 -Elemente in der zweiten Zeile. Man

252

Kapitel 4 Nichtlineare Gleichungen in einer Variablen (k+1)

bestimmt sie, indem das unmittelbar rechts dar¨ uber stehende Element e1 zum direkt (k) dar¨ uber stehenden Element q1 addiert und das unmittelbar links dar¨ uber stehende (k) Element e1 davon subtrahiert wird. Man erh¨alt die Tabelle 4.9. (1)

i ei 1

0

(1)

qi an−1 − an

(2)

(2)

ei an−2 an−1

qi −



0

(3)

(3)

ei qi an−3 + ← 0 an−2

(n)

(n)

· · · ei a0 ··· a1

qi

···

q2

(n+1)

ei

0

0

(n)

0

&= 2

0

3 .. .

0 .. .

(1)

(2)

q2

(3)

q2

q2

0 .. . Tabelle 4.9: Erster Teilschritt des QD-Algorithmus

(1)

i

ei

1

0

(1)

qi an−1 − an

(2)

ei an−2 an−1

(2)

qi

0

(3)

ei an−3 an−2

÷. 2

0

3 .. .

0 .. .

(1)

q2

(2)

e2

(2) =

q2



qi

(3)

···

0

···

(n)

ei a0 a1

(n)

qi

(n+1)

ei

0

0

(n)

0

-× (3)

e2

(3)

q2

···

(n)

e2

q2

0 .. . Tabelle 4.10: Zweiter Teilschritt des QD-Algorithmus (k)

Jetzt k¨ onnen die Elemente e2 eingetragen werden. Man bestimmt sie, indem das un(k) mittelbar rechts daneben stehende Element q2 mit dem direkt dar¨ uber stehenden (k) Element e1 multipliziert und das entstehende Resultat durch das unmittelbar links (k−1) daneben stehende Element q2 dividiert wird. Man erh¨alt die Tabelle 4.10. Der Prozeß wird nun auf der Basis dieser zwei Teilschritte analog weitergef¨ uhrt. Da in einem Teilschritt haupts¨ achlich multiplikative Operationen und im anderen Teilschritt haupts¨ achlich additive Operationen ausgef¨ uhrt werden, erkl¨art sich der von Rutishauser f¨ ur diese Rechenstrategie gew¨ ahlte Name. Zusammenfassend ergibt sich die im Programm 4.10 angegebene Matlab-Funktion qd f¨ ur das QD-Verfahren zur Bestimmung der Wurzeln eines Polynoms P (x).

4.9 Nullstellen reeller Polynome Programm 4.10

253 QD-Verfahren

function [qe,re,se,in,ind]=qd(a,TOL,N0) % Polynomkoeffizenten a % Toleranz TOL % maximale Iterationsschrittzahl N0 % % qe approximierte Wurzeln des Polynoms % re, se approximierte quadratische Faktoren % in Information ¨ uber Ergebnis % in(k)=1 Wurzel berechnet % in(k)=2 Faktor berechnet % ind=1 Verfahren konvergiert, ’L¨ osung’ x ist berechnet % ind=2 Maximale Iterationsschrittanzahl N0 ¨ uberschritten % ind=3 Verfahren nicht durchf¨ uhrbar n=length(a)-1; i=2; zz=0; e=zeros(n+1,N0); q=zeros(n,N0); r=zeros(n,N0); s=zeros(n,N0); in=zeros(n,1); qe=zeros(n,1); re=zeros(n,1); se=zeros(n,1); q(1,1)=-a(n)/a(n+1); in(1)=-1; for k=2:n, e(k,1)=a(n-k+1)/a(n-k+2); end while i< N0+2 q(1,i)=e(2,i-1)+q(1,i-1)-e(1,i-1); for k=2:n q(k,i)=e(k+1,i-1)+q(k,i-1)-e(k,i-1); if q(k-1,i) == 0 %Division durch Null - Verfahren nicht durchf¨ uhrbar ind=3; return end e(k,i)=q(k,i)*e(k,i-1)/q(k-1,i); r(k,i)=q(k-1,i)+q(k,i); s(k,i)=q(k-1,i-1)*q(k,i); end for k=2:n if abs(e(k,i)) < TOL in(k)=-1; if in(k-1) == -1, in(k-1)=1; zz=zz+1; end if k == n, in(k)=1; zz=zz+1; end else if abs(r(k,i-1)-r(k,i))+abs(s(k,i-1)-s(k,i)) < TOL in(k)=2; zz=zz+2; end end end if zz == n % Ergebnis berechnet qe=q(:,i); re=r(:,i); se=s(:,i); ind=1; return end i=i+1; end % Maximale Iterationszahl N0 ¨ uberschritten ind=2;

254

Kapitel 4 Nichtlineare Gleichungen in einer Variablen (k)

Folgende Schl¨ usse k¨ onnen nun aus dem Verhalten der Folgenelemente ei gezogen werden1 : (k)

• Gilt lim ei i→∞

(k+1)

= lim ei

(k)

und qi

(k)

= 0 f¨ ur jedes k = 1, . . . , n, dann existiert lim qi . i→∞

i→∞

Dieser Grenzwert stellt eine reelle Wurzel des Polynoms P (x) dar. (k)

• Konvergiert die Folge {ei }∞ ur mindestens ein k ∈ {1, 2, . . . , n} nicht i=1 jedoch f¨ ∞ gegen Null, dann konvergieren die Folgen {ri }∞ i=1 und {si }i=1 gegen die Grenz(k) (k) werte r bzw. s , wobei (k)

= qi

(k)

=

ri

si

(k−1)

(k)

+ qi ,

i = 2, 3, . . .

und (4.80)

(k−1) (k)

qi−1 qi ,

i = 2, 3, . . .

gilt. Der mit diesen Grenzwerten konstruierte Ausdruck x2 − r(k) x + s(k) ist ein quadratischer Faktor von P (x), der zu einem Paar konjugiert komplexer Wurzeln geh¨ ort. In beiden F¨ allen k¨ onnen die mit dem QD-Algorithmus erzeugten N¨aherungen als geeignete Startwerte f¨ ur genauere und schnellere (jedoch nur lokal konvergente) Verfahren verwendet werden. Folgende zwei Fragenstellungen sind bisher noch unbeantwortet geblieben: • L¨ aßt sich der QD-Algorithmus auch auf Polynome anwenden, bei denen mindestens ein Koeffizient verschwindet? • Unter welchen Voraussetzungen verschwinden die Nenner in (4.79) nicht, und falls doch, was muß man tun, damit dies nicht mehr der Fall ist? Die Beantwortung der ersten Frage ist relativ einfach. Ist mindestens ein Koeffizient des Polynoms P (x) Null, dann hat man vor der Anwendung des QD-Algorithmus eine Variablentransformation z =x+a

mit einem geeignet gew¨ahlten a ∈ R

(4.81)

derart durchzuf¨ uhren, daß das resultierende Polynom in der Variablen z keine nichtverschwindenden Koeffizienten aufweist. Das Verfahren wird dann mit der R¨ ucktransformation x = z − a abgeschlossen. Die zweite Frage ist wesentlich komplizierter zu beantworten. So wird von Rutishauser der Begriff einer positiven QD-Zeile eingef¨ uhrt. (1)

(2)

(2)

(n)

(n)

• Eine Zeile Zi ≡ {0, qi , ei , qi , . . . , ei , qi , 0} heißt positiv, falls: (k)

qi 1

> 0,

k = 1, . . . , n,

(k)

und ei

> 0,

k = 2, . . . , n,

i = 2, . . .

Siehe z.B.: H. Rutishauser: Vorlesungen u auser, Basel und Stutt¨ber Numerische Mathematik. Birkh¨ gart, 1976

4.9 Nullstellen reeller Polynome

255

Die zugeh¨ orige Aussage von Rutishauser lautet nun wie folgt1 . Ist die Zeile Zi positiv, so sind die aus ihr mit dem QD-Algorithmus erzeugten Zeilen Zj , j = i + 1, . . ., ebenfalls positiv, d.h., das Verfahren ist uneingeschr¨ankt durchf¨ uhrbar. Man spricht in diesem Falle von einem positiven QD-Algorithmus. Weiterf¨ uhrend l¨aßt sich zeigen2 : Sind die Nullstellen des Polynoms P (x) reell und positiv, dann resultiert ein positiver QD-Algorithmus. Hat man andererseits keinen Spezialfall vorliegen, bei dem verschwindende Nenner in den Formeln (4.79) ausgeschlossen sind, dann kann man nur wieder mittels einer geeigneter Variablentransformation versuchen, die auftretenden Nullen im Tableau zu beseitigen. Abschließend wollen wir die Funktionsweise des QD-Algorithmus anhand eines Beispiels demonstrieren. Die angegebenen Resultate wurden mit dem Programm 4.10 erzielt und auf 4 Stellen nach dem Dezimalpunkt gerundet. Beispiel 4.9. Gegeben sei das Polynom P (x) = (x − 1) (x + 2) (x − j) (x + j) = x4 + x3 − x2 + x − 2,

(4.82)

wobei jetzt mit j “ die komplexe Einheit bezeichnet ist, um diese vom Iterationsindex ” i“ zu unterscheiden. ” Zur Bestimmung aller Nullstellen von P (x) soll der QD-Algorithmus (Programm 4.10) angewendet werden. Es ergeben sich die in der Tabelle 4.11 angegebenen Werte. (1)

(1)

qi

(2)

ei

(2)

qi

(3)

ei

(3)

i

ei

qi

1

0

-1

-1

0

-1

0

2

0

-2

0

0

1

-1

3

0

(4)

ei

(4)

(5)

qi

ei

-2

0

0

4

2

0 0

Tabelle 4.11: QD-Algorithmus f¨ ur (4.82) (2)

In der zweiten QD-Zeile entsteht das Element q2 = 0, d.h., der n¨achste Schritt ist wegen eines verschwindenden Nenners in (4.79) nicht mehr definiert. Um trotzdem den QD-Algorithmus anwenden zu k¨ onnen, wird die Variablentransformation (4.81) erforderlich. Ein erster Versuch sei z = x + 2. Hieraus resultiert das transformierte Polynom P (z) = z 4 − 7z 3 + 17z 2 − 15z. Wie man unmittelbar erkennt, verschwindet jetzt der Koeffizient a0 , d.h., diese Transformation ist nicht brauchbar. Wir unternehmen einen weiteren Versuch mit z = x + 3. 1

Siehe z.B.: H. Rutishauser: Vorlesungen u auser, Basel und Stutt¨ber Numerische Mathematik. Birkh¨ gart, 1976 2 siehe: H. R. Schwarz, H. Rutishauser und E. Stiefel: Numerik symmetrischer Matrizen. BSB B.G. Teubner Verlagsgesellschaft, Leipzig, 1968

256

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Das zugeh¨ orige transformierte Polynom lautet P (z) = z 4 − 11z 3 + 44z 2 − 74z + 40.

(4.83)

Hierauf wird wieder der QD-Algorithmus angewendet. Dies f¨ uhrt auf die in der Tabelle 4.12 dargestellte Rechnung. i

(1)

ei

1

0

2

0

3

(1)

qi

(2)

(2)

ei

(3)

qi

11.0000 -4.0000

(3)

ei

(4)

qi

ei

(4)

qi

(5)

ei

0 -1.6818

0

-0.5405

0

0

7.000

-1.3247 2.3182 -0.8280

1.1413

-0.2560

0.5405

0

0

5.6753

-0.6570 2.8149 -0.5039

1.7132

-0.1190

0.7966

0

4

0

5.0183

-0.3886 2.9679 -0.3563

2.0982

-0.0519

0.9156

0

5 .. .

0 .. .

4.6297 -0.2518 3.0003 -0.2853 2.4025 -0.0209 0.9675 .. .. .. .. .. .. .. . . . . . . .

0 .. .

10 .. .

0 .. .

3.9631 -0.0266 2.5101 -0.7501 3.8869 -0.0001 0.9999 .. .. .. .. .. .. .. . . . . . . .

0 .. .

20 .. .

0 .. .

4.0050 .. .

50

0

4.0000

0.0024 1.9747 -1.0435 4.0203 .. .. .. .. . . . . -0.0000 1.3606 -2.7101

4.6394

0.0000 .. .

1.0000 .. .

0 .. .

0.0000

1.0000

0

Tabelle 4.12: QD-Algorithmus f¨ ur (4.83)

Somit ergeben sich f¨ ur das Polynom (4.83) die (einzigen) reellen Wurzeln zu z1 = 4.0000 und z2 = 1.0000. Um die noch vorhandenen konjugiert komplexen Nullstellen zu erhalten, muß man die Rechenvorschrift (4.80) anwenden. In der Tabelle 4.13 sind f¨ ur einige ausgew¨ahlte Ite(3) (3) rationsschritte die zugeh¨ origen Wertepaare ri und si angegeben. Damit ergibt sich f¨ ur das Polynom (4.83) ein quadratischer Faktor zu P2 (z) = z 2 − 6z + 10. Seine komplexen Nullstellen sind z3 = 3 + j

und z4 = 3 − j.

Abschließend hat man die R¨ ucktransformation x = z−a auszuf¨ uhren, um die tats¨achlich gesuchten Nullstellen des Polynoms P (x) zu erhalten. Man berechnet mit a = 3: x1 = z1 − 3 = 4 − 3 = 1, x3 = z3 − 3 = 3 + j − 3 = j,

x2 = z2 − 3 = 1 − 3 = −2, x4 = 3 − j − 3 = −j.

4.10 Aufgaben

257 (3)

(3)

i

ri

si

5

5.4027

7.1304

10

6.0369

9.7791

20

5.9950

10.0189

50

6.0000

10.0000

Tabelle 4.13: Koeffizienten des quadratischen Faktors von (4.83)



4.10

Aufgaben k

Aufgabe 4.1. Die Folge xk ≡ e−e , k = 0, 1, . . ., konvergiert f¨ ur n → ∞ offensichtlich gegen Null. Welche Konvergenzordnung besitzt sie? x Aufgabe 4.2. Es sei g(x) ≡ f¨ ur x ∈ (−1, ∞) gegeben. x+1 1) Berechnen Sie den Fixpunkt von g im angegebenen Intervall. 2) Berechnen Sie g 0 in diesem Fixpunkt. 3) Zeigen Sie, daß f¨ ur die Fixpunktiteration (4.10) mit x0 > 0 keine lineare Konvergenz vorliegt. Aufgabe 4.3. Es ist die Nullstelle x∗ von f (x) ≡ x+(x+1) log10 (x)−2 zu bestimmen. Es gilt x∗ ≈ 1.53. 1) Geben Sie f¨ ur das obige f vier einfache Iterationsvorschriften an, die auf der Fixpunktiteration (4.10) basieren. F¨ ur welche der Iterationen erwarten Sie Konvergenz? (Fixpunktsatz, Verwendung der angegebenen Information u ¨ber x∗ ) 2) W¨ ahlen Sie die g¨ unstigste Vorschrift aus (1) zur Berechnung von x∗ mit einer absoluten Genauigkeit von 0.5 × 10−12 aus. (Begr¨ undung der Wahl, Konvergenzbeweis, Matlab-Programm, geeignetes Abbruchkriterium) 3) Zus¨ atzlich zu (1) ist eine Iterationsvorschrift der Form xk+1 = xk − c f (xk ) zur Berechnung von x∗ heranzuziehen. Dabei soll die Zahl c so bestimmt werden, daß eine m¨ oglichst rasche“ Ann¨ aherung der Iterierten an x∗ zu erwarten ist. ” (Begr¨ undung der Wahl von c, Fixpunktsatz, Matlab-Programm) Aufgabe 4.4. Zur Berechnung einer einfachen Nullstelle x∗ der Funktion f (x) werde das unten angegebene Verfahren betrachtet. L¨ aßt sich bei geeigneter Wahl von β kubische Konvergenz erzielen? Man bestimme

258

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

gegebenenfalls den Wert von β! x0 : yk+1

Startwert    

f (xk ) = xk − 0 f (xk )

xk+1 = xk −

f (xk )    f 0 (xk + β(yk+1 − xk ))

k = 0, 1, 2, . . .

√ Aufgabe 4.5. Bei gegebenem a ∈ R, a > 0, ist x∗ = a die L¨osung der Funktionalgleichungen a 1 a x = φ1 (x) = und x = φ2 (x) = x+ . x 2 x Zeigen Sie: Das ur jeden Startwert √ durch φ1 (x) festgelegte Iterationsverfahren ist f¨ x0 > 0, x0 6= √ a divergent, w¨ ahrend die durch φ (x) bestimmte Iteration f¨ ur jedes 2 √ x0 ∈ R gegen a konvergiert, wobei a < xk < · · · < x1 gilt, und die Konvergenzgeschwindigkeit durch √ xk+1 − a 1 √ 2 = √ lim k→∞ (xk − a) 2 a beschrieben wird. Aufgabe 4.6. Gegeben sei zur Bestimmung von



a die Fixpunktiteration (4.10) mit

x3 + 3ax . 3x2 + a 1) Es sei L > 0 beliebig vorgegeben. Bestimmen Sie die Menge M in Abh¨angigkeit von L, so daß √  √ √ √ ∀a ∈ M ∃ δ > 0 : ∀x ∈ a − δ, a + δ : |g(x) − a| ≤ L|x − a|3 . g(x) ≡

Somit liegt hier die Konvergenzordnung 3 vor. 2) Untersuchen Sie numerisch die Konvergenzgeschwindigkeit der Iterationsfolge auf Konvergenzordnung 3. Aufgabe 4.7. Gegeben seien die Iterationsvorschriften xk+1 = g(xk ),

k = 0, 1, 2, . . .

yk+1 = h(yk ),

k = 0, 1, 2, . . .

mit g(x) ≡ x (2 − a x), a > 0, und   1 1 mit h(y) ≡ y+ , a > 0, y 6= 0. 2 ay

1) Bestimmen Sie die Fixpunkte von g und h. 2) F¨ ur welche Startwerte x0 bzw. y0 konvergieren die Folgen {xk } bzw. {yk }? Wie lauten in Abh¨ angigkeit von den Startwerten die jeweiligen Grenzwerte x∗ und y ∗ ? (Graphische Darstellung von g bzw. h, Vermutungen, Beweise, Ausnutzung von Monotonie-Eigenschaften)

4.10 Aufgaben

259

√ 3) Berechnen Sie sowohl 1/ π als auch 1/π unter Verwendung von (2) mit einer absoluten Genauigkeit von 5 × 10−13 . (Geeigneter Abbruchtest, vergleichende Gegen¨ uberstellung beider Iterationen) Aufgabe 4.8. 1) Man zeige, daß die Gleichung x = tan x eine eindeutige L¨osung x∗ in (π, 32 π) besitzt. 2) Man zeige, daß die Fixpunktiteration xk+1 = tan xk , k = 0, 1, 2, . . ., f¨ ur jede Wahl von x0 6= x∗ divergiert. 3) Man zeige, daß die Fixpunktiteration xk+1 = arctan xk , k = 0, 1, 2, . . ., f¨ ur jede Wahl von x0 6= x∗ nicht gegen die gesuchte Wurzel konvergiert. 4) Man bestimme eine Fixpunktiteration, die gegen die gesuchte Wurzel x∗ konvergiert. 5) Man verwende die unter (4) gefundene Iterationsvorschrift, um die gesuchte Wurzel auf mindestens 12 Dezimalstellen anzun¨ahern. Aufgabe 4.9. Es sei f (x) = tan−1 x. Man bestimme den kleinsten positiven Startwert x0 , f¨ ur den das Newton-Verfahren divergiert. Aufgabe 4.10. Man versuche, f¨ ur die unten angegebenen Funktionen die Nullstellen mit dem Newton-Verfahren zu berechnen: 1) f (x) = x4 − 6x2 − 11, x0 = 1.1,  √ x, x ≥ 0, √ 2) f (x) = x0 6= 0, − −x x < 0.

beliebig.

Aufgabe 4.11. Gegeben sei eine Funktion f ∈ C 2 (R, R) mit f (x∗ ) = 0. 1) Wenn das Newtonverfahren f¨ ur einen Punkt x0 ∈ R mit x0 6= x∗ in einem Schritt ∗ die L¨ osung x bestimmt, wie muß dann f 0 (x0 ) lauten? 2) Andererseits gelte f 00 (x) > 0 f¨ ur alle x ∈ R. Zeigen Sie, daß es keinen Punkt x0 ∈ R mit x0 6= x∗ gibt, so daß das Newton-Verfahren in einem Schritt die L¨ osung x∗ ∈ R berechnet. Aufgabe 4.12. Man ermittle den positiven Minimierungspunkt der reellen Funktion f (x) = x−2 tan x, indem die Nullstellen von f 0 (x) mit dem Newton-Verfahren berechnet werden. Aufgabe 4.13. Was wird mit der folgenden Iterationsformel berechnet? xk = 2xk−1 − x2k−1 y Man identifiziere die Vorschrift als Anwendung des Newton-Verfahrens auf eine spezielle Funktion.

260

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Aufgabe 4.14. Um den Kehrwert einer Zahl a ohne Division zu berechnen, kann man x = 1/a durch die Ermittlung einer Nullstelle der Funktion f (x) = x−1 − a finden. Man schreibe ein kurzes Programm zur Bestimmung von 1/a, in welchem das NewtonVerfahren auf f (x) angewendet wird. In diesem Programm d¨ urfen keine Divisionen oder Potenzbildungen verwendet werden. Welche Startwerte sind f¨ ur positive Werte von a geeignet? Aufgabe 4.15. Man √ entwickle eine auf dem Newton-Verfahren basierende Formel zur Berechnung von 3 a f¨ ur a > 0. Anhand der Graphik der zugeh¨origen Funktion f (x) bestimme man diejenigen Startwerte, f¨ ur welche die Iteration konvergiert. Aufgabe 4.16. Unter Verwendung der Taylor-Entwicklungen von f (x+h) und f (x+k) leite man die folgende Approximationsformel von f 0 (x) her: f 0 (x) ≈

k 2 f (x + h) − h2 f (x + k) + (h2 − k 2 )f (x) . (k − h)kh

Aufgabe 4.17. Man zeige, daß die folgenden Funktionen auf den angegebenen Intervallen kontraktiv sind: 1) (1 + x2 )−1 auf einem beliebigen Intervall, 2)

1 2x

auf 1 ≤ x ≤ 5,

3) tan−1 x auf einem beliebigen abgeschlossenen Intervall, welches die Null nicht enth¨ alt, und 3

4) |x| 2 auf |x| ≤ 13 . Zus¨ atzlich bestimme man die besten Werte der Kontraktionskonstanten L. Aufgabe 4.18. Es sei x∗ eine einfache Nullstelle der Gleichung f (x) = 0. Gegeben sei weiter eine Iterationsfunktion g(x) der Form g(x) ≡ x + ϕ(x)f (x). Man finde notwendige und hinreichende Bedingungen, die an die Funktion ϕ(x) zu stellen sind, damit die Fixpunktiteration xk = g(xk−1 ), k = 1, 2, . . ., kubisch gegen x∗ konvergiert, falls nur x0 nahe bei x∗ gew¨ ahlt wird. Aufgabe 4.19. Es sei p eine positive reelle Zahl. Man bestimme den Wert des folgenden Ausdruckes: r q √ x = p + p + p + · · ·. Hinweis: Es l¨ aßt sich x als Grenzwert x = lim xk interpretieren, wobei x1 = k→∞ p √ x2 = p + p etc. gilt.



p,

4.10 Aufgaben

261

Aufgabe 4.20. Es sei p > 1. Man bestimme den Wert des folgenden Kettenbruches: 1

x=

.

1

p+ p+

1 p + ···

Man verwende hierzu die bereits in der Aufgabe 4.19 benutzte Idee. Aufgabe 4.21. Man bestimme die √ Konvergenzordnungen der Folgen: 1 1) xk = (1/k) 2 , 2) xk = k k, 1

3) xk = (1 + k1 ) 2 ,

4) xk = tan−1 xk−1 .

Aufgabe 4.22. Es sei g(x) ≡ x − 0.0001x2 und es werde die Fixpunkt-Iteration mit dem Startwert x0 = 1 betrachtet. 1) Man zeige, daß x0 > x1 > · · · > xk > xk+1 > · · · gilt. 2) Man zeige, daß xk > 0 f¨ ur alle k ist. 3) Da die Folge {xk } fallend und nach unten beschr¨ankt ist, besitzt sie einen Grenzwert. Man gebe diesen an. Aufgabe 4.23. Wie verh¨ alt sich das Bisektionsverfahren, wenn es auf die reelle Funktion f (x) = 1/(x − 2) angewendet wird und das zugrundeliegende Intervall a) [3, 7] bzw. b) [1, 7] ist? Aufgabe 4.24. F¨ ur das Verfahren von M¨ uller zeige man das Bestehen der Formel (4.43). Hierauf aufbauend bestimme man die zugeh¨orige Konvergenzordnung. Aufgabe 4.25. Man zeige, daß die Funktion g(x) = x +

π − arctan x 2

keinen Fixpunkt besitzt, aber der schwachen Kontraktionsbedingung |g(x) − g(y)| < |x − y| f¨ ur alle

x, y ∈ R, x 6= y,

gen¨ ugt. Aufgabe 4.26. Definition: Es sei x∗ ein Fixpunkt der stetig differenzierbaren Funktion g. Man nennt x∗ einen anziehenden Fixpunkt, falls es eine Umgebung S(x∗ ) gibt, f¨ ur die |g 0 (x)| < 1 f¨ ur x ∈ S(x∗ ) \ {x∗ }

(4.84)

gilt, und einen abstoßenden Fixpunkt, falls |g 0 (x)| > 1 f¨ ur x ∈ S(x∗ ) \ {x∗ } gilt.

(4.85) 

262

Kapitel 4 Nichtlineare Gleichungen in einer Variablen

Man u ¨berzeuge sich, daß es eine Umgebung U (x∗ ) eines anziehenden Fixpunktes x∗ mit der Eigenschaft gibt, daß das Iterationsverfahren xk+1 = g(xk ),

k = 0, 1, . . . ,

f¨ ur jeden Startwert x0 ∈ U (x∗ ) gegen x∗ konvergiert. Aufgabe 4.27. Es sei P (x) ein Polynom vom Grad n, welches die reellen Nullstellen ξ1 ≤ ξ2 ≤ · · · ≤ ξn besitzt. Man zeige: Das Newton-Verfahren konvergiert f¨ ur jeden Startwert x0 > ξn monoton gegen ξn und entsprechend f¨ ur jeden Startwert x0 < ξ1 monoton gegen ξ1 . Aufgabe 4.28. Wie weit muß man zwei kreisrunde Bierdeckel u ¨bereinander schieben, damit die gemeinsam u berdeckte Fl¨ a che gerade die H¨ a lfte eines Bierdeckels ausmacht? ¨ Aufgabe 4.29. Gegeben sei die sogenannte Kepplersche Gleichung f (x) = 0,

f (x) ≡ x − ε sin x − η,

0 < |ε| < 1,

η ∈ R,

wobei ε, η gewisse Parameter darstellen. 1) Man zeige, daß f¨ ur jedes ε und η genau eine reelle Wurzel x∗ = x∗ (ε, η) existiert. Dar¨ uber hinaus gilt η − |ε| ≤ x∗ (ε, η) ≤ η + |ε|. 2) Die Gleichung werde in die folgende iterierf¨ahige Form u uhrt ¨berf¨ x = g(x),

g(x) ≡ ε sin x + η.

Man zeige, daß die zugeh¨ orige Fixpunkt-Iteration xk+1 = g(xk ) f¨ ur einen beliebigen Startwert x0 konvergiert. 3) Es sei m eine solche ganze Zahl, daß mπ < η < (m + 1)π gilt. Man zeige, daß das Newton-Verfahren mit dem Startwert  (m + 1)π, falls (−1)m ε > 0, x0 ≡ mπ, sonst garantiert gegen x∗ (ε, η) (monoton) konvergiert. Aufgabe 4.30. In den fr¨ uhen Tagen der Rechentechnik hatte man keine elektronischen Rechner, sondern nur mechanische Rechenmaschinen zur Verf¨ ugung. Die ¨altesten dieser Computerveteranen konnten multiplizieren, jedoch nicht dividieren. Versetzen Sie sich in diese Zeit und l¨ osen die folgende Problemstellung. 1) Zur Berechnung des Reziproken 1/a einer positiven ganzen Zahl a entwickle man ein Iterationsverfahren, das nur auf Additionen und Multiplikationen basiert. 2) F¨ ur welche Startwerte x0 konvergiert das in (a) genannte Verfahren? Was passiert, wenn x0 < 0 ist?

4.10 Aufgaben

263

3) Da es in (bin¨ arer) Gleitpunktarithmetik ausreicht, das Reziproke der Mantisse von a zu finden, werde 12 ≤ a < 1 vorausgesetzt. Unter dieser Bedingung zeige man, daß die Iterierten xk die folgende Ungleichung erf¨ ullen 2 xk+1 − 1 < xk − 1 , f¨ ur alle n ≥ 0. a a 4) Unter Verwendung des Resultates in (3) sch¨atze man die maximale Anzahl von Iterationsschritten ab, die dazu erforderlich sind, eine Approximation von 1/a mit einem Fehler kleiner als 2−48 zu erhalten. Als Startwert werde x0 = 3/2 verwendet. Aufgabe 4.31. Ein Kreiszylinder mit dem Radius R werde an den Enden durch je eine Halbkugel mit gleichem Radius erg¨ anzt. Der so entstandene K¨orper sei glatt“, habe die ” L¨ ange L = 4 R und bestehe aus einem homogenen Material der Dichte ρ < 1. Berechnen Sie, wie tief der Zylinder beim Schwimmen im Wasser eintaucht. Die Problemstellung f¨ uhrt auf eine nichtlineare Gleichung f (x) = 0 f¨ ur die Eintauchtiefe x. Hinweise: Schwimmt der Zylinder, so sind seine Gewichtskraft und die Auftriebskraft entgegengesetzt orientiert und haben den gleichen Betrag. Der Betrag der Auftriebskraft ist gleich dem Betrag der Gewichtskraft des verdr¨angten Wassers. Bestimmen Sie die Eintauchtiefe sowohl mit dem Newtonverfahren (Programm 4.2) als auch mit dem Sekantenverfahren (Programm 4.3).

Kapitel 5

Nichtlineare Gleichungen in mehreren Variablen

The solution of such questions as these [referring to the solution of nonlinear equations] depends on correct judgment, aided by the assistence of God. Bhaskara1 Erw¨ ahnt in Hutton: A Philosophical and Mathematical Dictionary, Vol. 1, London, 1815, p.65.

5.1

Fixpunkte von Funktionen mehrerer Variablen

In diesem Kapitel betrachten wir anstelle einer skalaren nichtlinearen Gleichung das folgende System von n nichtlinearen Gleichungen f1 (x1 , x2 , . . . , xn ) f2 (x1 , x2 , . . . , xn )

= = .. .

0 0

fn (x1 , x2 , . . . , xn )

=

0

(5.1)

in den n Unbekannten x1 , . . . , xn . Die Funktionen fi : Rn → R, i = 1, . . . , n, seien vorgegeben. 1

Bhaskara (1114–1185), auch als Bhaskara II und Bhaskara Acha-rya ( Bhaskara der Lehrer“) bekannt, ” war ein indischer Mathematiker und Astronom. Das Zitat stammt aus seinem Werk Bijaganita u ¨ber algebraische Probleme.

266

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Definiert man die Vektoren: F (x1 , . . . , xn ) ≡ (f1 (x1 , . . . , xn ), . . . , fn (x1 , . . . , xn ))T ,

x ≡ (x1 , . . . , xn )T ,

dann l¨ aßt sich (5.1) abk¨ urzend in der Vektorform F (x) = 0,

F : Rn → Rn ,

(5.2)

schreiben. Wie im Abschnitt 4.1 f¨ ur eine skalare nichtlineare Funktion ausgef¨ uhrt, wollen wir zuerst davon ausgehen, daß die Gleichung (5.2) bereits in einer sogenannten iterierf¨ ahigen Form (auch Fixpunkt-Gleichung genannt) vorliegt: x = G(x),

G : R n → Rn .

(5.3)

¨ Die Uberf¨ uhrung des Nullstellenproblems (5.2) in die Form (5.3) ist i.allg. nicht eindeutig und kann oftmals auf vielf¨ altige Weise vorgenommen werden. Eine solche M¨oglichkeit ergibt sich stets mit G(x) ≡ x − F (x). Analog zum skalaren Fall definieren wir wie folgt. Definition 5.1. Es sei G : D ⊂ Rn → Rn eine gegebene Vektorfunktion. Gilt die Beziehung G(x∗ ) = x∗ f¨ ur ein x∗ ∈ D, dann sagt man, daß G einen Fixpunkt x∗ in D besitzt.  Der folgende Fixpunktsatz ist eine Erweiterung des Satzes 4.1 auf den n-dimensionalen Fall. Da es sich dabei insbesondere um einen Spezialfall des allgemeinen Banachschen Fixpunktsatzes in Banach-R¨ aumen handelt, verzichten wir hier auf seinen Beweis und verweisen auf die entsprechende Literatur1 . Satz 5.1. (Variante des Banachschen Fixpunktsatzes) Zu vorgegebenen Konstanten a1 , a2 , . . . , an und b1 , b2 , . . . , bn sei D ⊂ Rn definiert zu D ≡ {(x1 , x2 , . . . , xn )T : ai ≤ xi ≤ bi , i = 1, . . . , n}. 1) Ist G : D ⊂ Rn → Rn eine stetige Abbildung und gilt G(x) ∈ D

f¨ ur alle x ∈ D,

(Selbstabbildung)

(5.4)

dann besitzt G einen Fixpunkt x∗ ∈ D. 2) Es m¨ ogen dar¨ uber hinaus alle partielle Ableitungen 1. Ordnung von G existieren und stetig sein. Erf¨ ullen diese mit einer Konstanten L < 1 die Beziehungen ∂gi (x) L ∂xj ≤ n

f¨ ur alle x ∈ D, j = 1, 2 . . . , n,

(Kontraktion) (5.5)

dann besitzt G einen eindeutigen Fixpunkt x∗ ∈ D. 1

Siehe zum Beispiel K. Atkinson and W. Han: Theoretical Numerical Analysis. A Functional Analysis Framework. Springer Verlag, New York, 2001

5.1 Fixpunkte von Funktionen mehrerer Variablen

267

Besitzt das Nullstellenproblem (5.2) mindestens eine L¨osung x∗ , dann l¨aßt sich diese – unter gewissen noch zu pr¨ azisierenden Voraussetzungen – numerisch wie folgt berechnen. Man u uhrt (5.2) in ein ¨ aquivalentes Fixpunktproblem x = G(x) und wendet die ¨berf¨ bereits aus dem Abschnitt 4.2 bekannte Fixpunkt-Iteration an, d.h., man w¨ahlt einen (0) (0) (0) Startvektor x(0) = (x1 , x2 , . . . , xn )T ∈ D und erzeugt eine Vektorfolge {x(k) }∞ k=0 mittels der Vorschrift x(k) = G(x(k−1) ),

k = 1, 2, . . . ,

(5.6)

beziehungsweise (k)

= g1 (x1

(k)

= g2 (x1 .. .

(k)

= gi (x1 .. .

(k)

= gn (x1

x1 x2 xi

xn

(k−1)

, x2

(k−1)

, x2

(k−1)

(k−1)

, . . . , xi−1 , xi

(k−1)

, . . . , xi−1 , xi

(k−1)

, x2

(k−1)

(k−1)

, . . . , xn

(k−1)

(k−1)

, . . . , xn

(k−1)

(k−1)

, . . . , xi−1 , xi

(k−1)

, x2

(k−1)

(k−1)

(k−1)

)

(k−1)

)

(k−1)

, . . . , xn

(k−1)

, . . . , xi−1 , xi

(5.7) )

(k−1)

(k−1)

, . . . , xn−1 , xn

).

Der folgende Konvergenzsatz f¨ ur die Fixpunkt-Iteration (5.6) stellt das n-dimensionale Analogon zum Satz 4.2 dar. Satz 5.2. Die Voraussetzungen des Satzes 5.1 seien erf¨ ullt. Dann konvergiert die durch die Vorschrift (5.6) definierte Vektorfolge {x(k) }∞ f¨ k=0 ur jeden beliebigen Startvektor x(0) ∈ D gegen den eindeutigen Fixpunkt x∗ ∈ D und es gilt die folgende Absch¨ atzung f¨ ur die Konvergenzgeschwindigkeit: kx(k) − x∗ k∞ ≤

Lk kx(1) − x(0) k∞ , 1−L

k = 2, . . . .

Beweis: Siehe z.B. die Monographie von K. Atkinson und W. Han1 .



Bemerkung 5.1. Die Fixpunkt-Iteration bezeichnet man auch als Gesamtschrittverfahren oder Jacobi-Verfahren f¨ ur nichtlineare Gleichungssysteme, da die zugeh¨orige Iterationsvorschrift (5.5) einen ¨ ahnlichen Aufbau wie das Gesamtschrittverfahren (JacobiVerfahren) f¨ ur lineare Systeme (2.156) besitzt.  Die obige Bemerkung legt nun den Gedanken nahe, auch ein Einzelschrittverfahren (andere Bezeichnung: Gauß-Seidel-Verfahren) f¨ ur nichtlineare Gleichungssysteme zu (k) erkl¨ aren. Hier verwendet man zur Berechnung von xi die bereits neu bestimmten 1

K. Atkinson and W. Han: Theoretical Numerical Analysis. A Functional Analysis Framework. Springer Verlag, New York, 2001.

268

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen (k)

(k)

(k−1)

(k−1)

Komponenten x1 , . . . , xi−1 anstelle der alten Komponenten x1 , . . . , xi−1 . Die zugeh¨ orige Verfahrensvorschrift l¨ aßt sich explizit wie folgt darstellen (k)

x1

(k) x2

(k−1)

= g1 (x1 = .. .

(k−1)

, x2

(k−1)

(k−1)

, . . . , xi−1 , xi

(k−1)

, . . . , xn

= gi (x1 , x2 , . . . , xi−1 , xi .. .

(k)

= gn (x1 , x2 , . . . , xi−1 , xi , . . . , xn−1 , xn

xn

(k)

(k)

(k)

(k)

(k)

(k)

(k−1)

(k)

(k−1)

(5.8)

(k)

xi

)

(k) (k−1) (k−1) (k−1) (k−1) g2 (x1 , x2 , . . . , xi−1 , xi , . . . , xn )

, . . . , xn (k)

)

(k−1)

)

¨ Erwartungsgem¨ aß f¨ uhrt der Ubergang zum Einzelschrittverfahren oftmals zu einer Kon1 vergenzbeschleunigung . Es ist aber auch m¨ oglich, in Analogie zu den numerischen Techniken f¨ ur lineare Gleichungssysteme ein nichtlineares SOR-Verfahren zu definieren. Die zugeh¨ origen Konvergenzbetrachtungen sind jedoch recht umfangreich und w¨ urden den Rahmen dieses Textes sprengen2 . Wie im Falle skalarer nichtlinearer Gleichungen stellt auch f¨ ur nichtlineare Gleichungssysteme die Konvergenzordnung (siehe (4.29)) ein wichtiges Kriterium f¨ ur die Bewertung eines numerischen Verfahrens dar. Definition 5.2. Eine Folge {x(k) } ⊂ Rn , die f¨ ur k → ∞ gegen x∗ konvergiert, besitzt die Konvergenzordnung α und die asymptotische Fehlerkonstante β , wenn

lim

k→∞

kx(k+1) − x∗ k ke(k+1) k = lim =β>0 (k) ∗ α k→∞ ke(k) kα kx − x k

(5.9)

gilt. Die Konvergenzordnung eines numerischen Iterationsverfahrens ist u ¨ber die Konvergenzordnung der von diesem Verfahren erzeugten Folge definiert.  Wie man sich leicht davon u ¨berzeugt, besitzen das nichtlineare Gesamtschrittverfahren (5.7) und das nichtlineare Einzelschrittverfahren (5.8) jeweils die Konvergenzordnung Eins. Es handelt sich somit um linear konvergente Techniken.

5.2

Newton-Verfahren

Oftmals ist es sehr schwierig, das Nullstellenproblem (5.2) in eine Fixpunktaufgabe (5.3) zu transformieren, deren erzeugende Funktion G den Voraussetzungen des Satzes 5.1 gen¨ ugt. Deshalb ist ein systematischerer Weg erforderlich. Im eindimensionalen Fall 1

Siehe z.B. das Buch von J. M. Ortega and W. C. Rheinboldt: Iterative Solution of Nonlinear Equations in Several Variables. Academic Press, New York, 1970 2 Siehe u.a. K. Graf Finck von Finckenstein: Einf¨ uhrung in die Numerische Mathematik, Bd. 1, M¨ unchen, Carl Hanser Verlag, 1977

5.2 Newton-Verfahren

269

(siehe Abschnitt 4.4) bestimmten wir eine Funktion φ(x) mit der Eigenschaft, daß die Iterationsfunktion g(x) ≡ x − φ(x) f (x) zu quadratischer Konvergenz der Fixpunkt-Iteration (4.10) f¨ uhrt. Aus dieser Forderung ergab sich das Newton-Verfahren (4.16), indem φ(x) ≡ 1/f 0 (x) gesetzt wurde. Die Bedingung f 0 (x∗ ) 6= 0, d.h. die Isoliertheit der L¨osung x∗ des Nullstellenproblems (4.6), und die Stetigkeit der Ableitung f 0 (x) in einer gewissen Umgebung von x∗ garantieren dann, daß die Newton-Iterierten wohldefiniert sind. Im jetzt vorliegenden n-dimensionalen Fall l¨ aßt sich auf entsprechende Weise ein quadratisch konvergentes Verfahren herleiten. Hier tritt jedoch an die Stelle der skalaren Funktion φ(x) eine Matrix 

a11 (x)  a21 (x)  A(x) =  .  ..

a12 (x) a22 (x) .. .

··· ···

an1 (x) an2 (x) · · ·

 a1n (x) a2n (x)   ..  , . 

(5.10)

ann (x)

mit aij : Rn → R. Diese Matrix A(x) wird nun so bestimmt, daß die mit der Iterationsfunktion G(x) ≡ x − A(x)−1 F (x)

(5.11)

gebildete Vektorfolge x(k) = G(x(k−1) ),

k = 1, 2, . . .

(5.12)

wohldefiniert ist und quadratisch gegen eine L¨osung von F (x) = 0 konvergiert. Offensichtlich macht die Iterationsfunktion (5.11) nur einen Sinn, wenn man neben der Glattheit von A(x) und F (x) (in einer gewissen Umgebung von x∗ ) auch die Nichtsingularit¨ at der Matrix A(x) im Fixpunkt x∗ voraussetzt. Dies wollen wir im folgenden stets annehmen. Bevor wir auf die genaue Konstruktion der Matrix A(x) eingehen, soll die Frage er¨ ortert werden, unter welchen allgemeinen Bedingungen die Fixpunkt-Iteration (5.6) zu einem quadratischen Verfahren wird. Eine Antwort auf diese Frage findet man im folgenden Satz. Satz 5.3. Es sei G = (g1 , g2 , . . . , gn )T eine stetige Abbildung, die den Rn in den Rn abbildet. Ihre partiellen Ableitungen 2. Ordnung m¨ ogen existieren und stetig sein. Mit x∗ werde eine L¨ osung der Gleichung x = G(x) bezeichnet. Existiert eine reelle Zahl δ > 0, so daß gilt •

∂gi ist stetig auf Nδ ≡ {x : kx − x∗ k < δ} f¨ ur i, j = 1, 2 . . . , n, ∂xj

270 •

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen ∂ 2 gi (x) ist stetig und mit einer Konstanten M sind die Ungleichungen ∂xj ∂xk 2 ∂ gi (x) ur x ∈ Nδ , i, j, k = 1, 2, . . . , n, ∂xj ∂xk ≤ M f¨ erf¨ ullt,



∂gi (x∗ ) = 0 f¨ ur i, j = 1, 2, . . . , n, ∂xj

dann konvergiert die durch die Vorschrift x(k) = G(x(k−1) ) erzeugte Folge f¨ ur jeden Startvektor x(0) ∈ Nδ quadratisch gegen x∗ und der zugeh¨ orige Fehler erf¨ ullt kx(k) − x∗ k∞ ≤

n2 M (k−1) kx − x∗ k2∞ , 2

k = 1, 2, . . . .

Beweis: Siehe z.B. die Monographie von H. Schwetlick.1



Wie man unschwer erkennt, stellt der Satz 5.3 eine direkte Verallgemeinerung des Satzes 4.5 dar. Wir wollen jetzt wieder zum Ansatz (5.11) zur¨ uckkehren. Mit bij (x) werde dasjenige Element von A(x)−1 bezeichnet, das in der i-ten Zeile und der j-ten Spalte steht. Die komponentenweise Darstellung von (5.11) lautet dann gi (x) = xi −

n X

bij (x)fj (x),

i = 1, . . . , n.

j=1

Somit ist   n  X ∂fj ∂bij    1 − b (x) (x) + (x)f (x) , ij j   ∂xk ∂xk   j=1

∂gi (x) =   ∂xk n   X  ∂fj ∂bij   − b (x) (x) + (x)f (x) ,  ij j  ∂xk ∂xk j=1

i = k,

i 6= k.

Der Satz 5.3 sagt nun aus, daß zur Erlangung quadratischer Konvergenz ∂gi (x∗ ) = 0, ∂xk

(5.13)

i, k = 1, . . . , n,

gefordert werden muß. Dies heißt f¨ ur i = k n X

∂fj ∗ 0=1− bij (x ) (x ) ∂xi j=1 1



bzw.

n X j=1

bij (x∗ )

∂fj ∗ (x ) = 1 ∂xi

(5.14)

H. Schwetlick: Numerische L¨ osung nichtlinearer Gleichungen, VEB Deutscher Verlag der Wissenschaften, Berlin, 1979

5.2 Newton-Verfahren

271

und f¨ ur i 6= k 0=−

n X j=1

bij (x∗ )

∂fj ∗ (x ) ∂xk

bzw.

n X

bij (x∗ )

j=1

∂fj ∗ (x ) = 0. ∂xk

Bezeichnet man mit J(x) die Jacobi-Matrix von F (x), d.h.,   ∂f1 (x) ∂f1 (x) ∂f1 (x) ···  ∂x1 ∂x2 ∂xn       ∂f (x) ∂f (x) ∂f2 (x)  2  2  ···   ∂x2 ∂xn   ∂x1   ∈ Rn×n , J(x) ≡   .. ..   ..  .  . .        ∂fn (x) ∂fn (x) ∂fn (x)  ··· ∂x1 ∂x2 ∂xn

(5.15)

(5.16)

dann lassen sich die Bedingungen (5.14) und (5.15) in der Form A(x∗ )−1 J(x∗ ) = I beziehungsweise A(x∗ ) = J(x∗ ) aufschreiben. Eine geeignete Wahl von A(x) stellt somit die Jacobi-Matrix J(x) dar, da mit dieser Festlegung die dritte Voraussetzung des Satzes 5.3 unmittelbar erf¨ ullt ist. Folglich nimmt die Iterationsfunktion G(x) in (5.11) die spezielle Gestalt G(x) = x − J(x)−1 F (x)

(5.17)

an und die Iterationsvorschrift (5.12) lautet nun x(k) = G(x(k−1) ) = x(k−1) − J(x(k−1) )−1 F (x(k−1) ),

k = 1, 2, . . .

(5.18)

Die Vorschrift (5.18) zur numerischen Approximation einer L¨osung x∗ des nichtlinearen Gleichungssystems (5.2) wird Newton-Verfahren genannt. Bemerkung 5.2. Dem Satz 5.3 sowie den obigen Ausf¨ uhrungen ist zu entnehmen, daß das Newton-Verfahren – wie im skalaren Fall – f¨ ur isolierte L¨osungen x∗ die Konvergenzordnung 2 besitzt. Es konvergiert f¨ ur hinreichend genaue Startvektoren x(0) .  Die Voraussetzungen des Satzes 5.3 lassen sich jedoch f¨ ur konkrete Problemstellungen nicht u ufen, da die L¨ osung x∗ nicht a priori bekannt ist. Falls dies zum Beispiel ¨berpr¨ f¨ ur Existenzaussagen oder Fehlerabsch¨ atzungen erforderlich ist, muß man auf andere Konvergenzs¨ atze zur¨ uckgreifen. Ein solcher wurde in einer Arbeit von L. V. Kantorowitsch1 bewiesen und geh¨ ort heute zu den am h¨aufigsten zitierten Ergebnissen in der Numerik nichtlinearer Gleichungen. 1

L. V. Kantorowitsch: O metode N’jutona dlja funkcional’nyh uravneniˇi. Dokl. Akad. Nauk SSSR 59 (1948), S. 1237–1240

272

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Satz 5.4. (Satz von Kantorowitsch). Die Vektorfunktion F : D ⊂ Rn → Rn sei auf der konvexen Menge D0 ⊂ int(D) differenzierbar und es gelte kJ(x) − J(y)k ≤ L kx − yk

f¨ ur alle x, y ∈ D0 ,

mit einer Konstanten L > 0. F¨ ur ein x ∈ D0 existiere J(x(0) )−1 und die Zahlen (0) −1 α > 0, η ≥ 0 seien durch kJ(x ) k ≤ α und kJ(x(0) )−1 F (x(0) )k ≤ η festgelegt. ¯ (1) , ξ1 ) ⊂ D0 mit der ersten Falls dann h ≡ α L η ≤ 1/2 ist und die Bedingung S1 ≡ S(x √ 1 Iterierten x(1) ≡ x(0) − J(x(0) )−1 F (x(0) ), ξ1 ≡ ξ0 − η sowie ξ0 ≡ (1 − 1 − 2h) αL erf¨ ullt ist, gelten die folgenden Aussagen: (0)

• Das Newton-Verfahren (5.18) ist mit dem Startvektor x(0) wohldefiniert, es gilt x(k) ∈ S1 f¨ ur k = 1, 2, . . . und die Newton-Folge {x(k) }∞ gegen k=0 konvergiert   √ 1 diejenige Nullstelle x∗ ∈ S1 , die in S x(0) , (1 + 1 − 2h) ∩ D0 eindeutig αL ist. • Es gilt die Fehlerabsch¨ atzung k

kx(k) − x∗ k ≤ mit κ ≡ α L ξ0 = 1 −



1 κ2 , α L 2k

k = 0, 1, . . . ,

1 − 2h.

Beweis: Siehe z.B. die Monographie von H. Schwetlick.1



Die Schreibweise (5.18) des Newton-Verfahrens ist f¨ ur theoretische Untersuchungen gut geeignet, sie besitzt jedoch als Rechenvorschrift einen gewaltigen Nachteil: in jedem Iterationsschritt muß eine n × n-Matrix J(x) invertiert werden. Um dies zu vermeiden, wird bei der praktischen Anwendung des Newton-Verfahrens ein Iterationsschritt i.allg. wie folgt realisiert:

Newton-Verfahren 1. Schritt: 2. Schritt:

Man l¨ ose das lineare Gleichungssystem J(x(k−1) ) y (k−1) = −F (x(k−1) ).

(5.19)

Man berechne die neue Iterierte x(k) = x(k−1) + y (k−1) .

Das Newton-Verfahren kann nun, wie im Programm 5.1 angegeben, als eine Matlab-Funktion formuliert werden, wobei der Funktionenvektor F (x) und die zugeh¨orige Jacobi-Matrix J(x) wiederum als Matlab-Funktionen F und Fstrich bereitzustellen sind. 1

H. Schwetlick: Numerische L¨ osung nichtlinearer Gleichungen, VEB Deutscher Verlag der Wissenschaften, Berlin, 1979

5.2 Newton-Verfahren Programm 5.1

273 Newton-Verfahren, mehrdimensional

function [x,i,ind] = newton(x0,TOL1,TOL2,N0); % % x0: Startvektor; TOL1 und TOL2: Toleranzen % N0: maximale Iterationsschrittanzahl % % x: letzte Iterierte; i: ben¨ otigte Anzahl an Iterationen % ind: Information ¨ uber den Rechenverlauf, mit % ind=1: Verfahren konvergiert, ’L¨ osung’ x ist berechnet, % ind=2: maximale Iterationsschrittanzahl N0 ¨ uberschritten % x=x0; i=0; while i < N0 Fx=F(x); if norm(Fx) < TOL1 % x ist ’L¨ osung’ ind=1; return end Jx=Fstrich(x); % L¨ osung des linearen Gleichungssystems Jx*y=-Fx y=-Jx\Fx; if norm(y) < TOL2*(1+norm(x)) % x ist ’L¨ osung’ ind=1; return end i=i+1; x=x+y; end % maximale Iterationsschrittanzahl N0 ¨ uberschritten ind=2;

Die numerische Behandlung der im 1. Teilschritt des Newton-Verfahrens (5.19) zu l¨ osenden linearen Gleichungssysteme der Dimension n erfolgt u ¨blicherweise mit Varianten der Gauß-Elimination (siehe Kapitel 2), da sich die linearen Systeme i.allg. durch keine spezielle Struktur ausweisen. Nur in Ausnahmef¨allen kann das lineare System durch einen inneren“ iterativen Zyklus (Gesamt- oder Einzelschrittverfahren, SOR” Verfahren etc.) gel¨ ost werden. Ausschlaggebend daf¨ ur ist, ob sich der Spektralradius der zugeh¨ origen Iterationsmatrix im konkreten Fall berechnen oder absch¨atzen l¨aßt. Bemerkung 5.3. 1) Die im Abschnitt 4.8 beschriebenen numerischen Techniken zur Globalisierung des skalaren Newton-Verfahrens und seiner Modifikationen lassen sich direkt auf den mehrdimensionalen Fall u ¨bertragen. Da in den entsprechenden Formeln im wesentlichen nur das Betrag-Zeichen mit dem Norm-Symbol ausgetauscht werden muß, um das mehrdimensionale Analogon zu erhalten, soll auf diesen Gegenstand hier nicht weiter eingegangen werden.

274

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

2) In der Praxis wird i.allg. standardm¨ aßig mit einem ged¨ampften Verfahren gerechnet. Des weiteren kommt oftmals auch noch eine sogenannte Regularisierung zum Einsatz. Hierbei ¨ andert man die Jacobi-Matrix durch Einf¨ uhrung eines zus¨ atzlichen Regularisierungsparameters derart ab, daß im Falle einer fastsingul¨ aren Jacobi-Matrix diese durch eine nichtsingul¨are Matrix geeignet ersetzt wird. So ist es m¨ oglich, in der Formel des Newton-Verfahrens x(k) = x(k−1) + y (k−1) ,

y (k−1) ≡ −J(x(k−1) )−1 F (x(k−1) )

die Newton-Richtung y (k−1) durch die Richtung  −1 y¯(k−1) ≡ − γk−1 J(x(k−1) ) + (1 − γk−1 )Ek−1 F (x(k−1) ) zu ersetzen. Der Parameter 0 ≤ γk−1 ≤ 1 ist der im k-ten Iterationsschritt verwendete Regularisierungsparameter, w¨ ahrend Ek−1 ∈ Rn×n eine beliebige nichtsingul¨ are Matrix bezeichnet. Offensichtlich geht das regularisierte Verfahren f¨ ur γk−1 = 1 in das gew¨ ohnliche Newton-Verfahren u uhrung u ¨ber. Genauere Ausf¨ ¨ber die Regularisierung und ihre Kombination mit D¨ampfungsstrategien findet man in der entsprechenden Literatur1 . 

5.3

Quasi-Newton-Verfahren

Das Newton-Verfahren (siehe das Programm 5.1) stellt eine recht aufwendige numerische Technik dar. Der wesentliche rechentechnische Aufwand pro Iterationsschritt l¨aßt sich wie folgt angeben: • die Berechnung der n Funktionswerte fj (x(i) ), j = 1, . . . , n, • die Bestimmung der n2 partiellen Ableitungen

∂fj (i) (x ), j, k = 1, . . . , n, sowie ∂xk

• ein asymptotischer Rechenaufwand von O(n3 ) flops f¨ ur die L¨osung der anfallenden, i.allg. unstrukturierten linearen Gleichungssysteme mittels Gauß-Elimination unter Verwendung partieller Pivotisierung. Des weiteren besitzt das Verfahren noch eine wesentliche Schwachstelle: die Elemente der Jacobi-Matrix (5.16) m¨ ussen in aufwendiger Handarbeit (oder mit Programmsystemen, die auf der Formelmanipulation basieren wie Maple, Mathematica oder Mupad) analytisch, d.h. in geschlossener Form bestimmt werden! Mit anderen Worten, es liegt kein direkt implementierbares Verfahren vor. Diese analytische Vorarbeit kann jedoch durch eine numerische Approximation der partiellen Ableitungen mittels geeigneter Differenzenquotienten beseitigt werden. So ist z.B. die folgende Approximationsvorschrift naheliegend: ∂fj (i) fj (x(i) + hk e(k) ) − fj (x(i) ) (x ) ≈ , ∂xk hk 1

(5.20)

Siehe z.B. H. Schwetlick: Numerische L¨ osung nichtlinearer Gleichungen, VEB Deutscher Verlag der Wissenschaften, Berlin, 1979

5.3 Quasi-Newton-Verfahren

275

wobei e(k) den k-ten Einheitsvektor und hk eine positive kleine reelle Zahl bezeichnen. Die angegebene Approximation muß nun f¨ ur alle n2 Elemente der Jacobi-Matrix realisiert werden. Pro Iterationsschritt f¨ allt damit folgender Rechenaufwand an: • die Auswertung von n2 + n Funktionswerten, und • O(n3 ) flops f¨ ur die numerische L¨ osung der linearen Gleichungen. Im Programm 5.2 ist eine Matlab-Funktion angegeben, mit der sich eine Differenzenapproximation der Jacobi-Matrix auf der Grundlage der Formel 5.20 berechnen l¨aßt. Dabei bezeichnet die Matlab-Konstante eps das in Formel (1.52) definierte εmach . Programm 5.2

Differenzenapproximation der Jacobi-Matrix

function Fs=Fstrich(x) % % x: Argument f¨ ur F’(x) % % Fs: Differenzenapproximation von F’(x) % fw=F(x); n=length(fw); Fs=zeros(n); he=sqrt(eps); for j=1:n h=(abs(x(j))+1e-2)*he; xx=x; xx(j)=xx(j)+h; fx=f(xx); Fs(:,j)=(fx-fw)/h; end

Dieser doch recht hohe Aufwand stellt eine betr¨achtliche Einschr¨ankung f¨ ur den Einsatz des Newton-Verfahrens in der Praxis dar, falls nicht n klein ist und die Funktionswerte einfach zu berechnen sind. Eine wesentliche Effektivierung des Verfahrens ergibt sich mit der folgenden Verallgemeinerung des skalaren Sekantenverfahrens auf n Dimensionen, die unter dem Namen Broyden 1 -Verfahren bekannt ist. Der erste Iterationsschritt dieses Verfahrens unterscheidet sich signifikant von den folgenden Schritten, da zu diesem Zeitpunkt noch nicht gen¨ ugend Informationen vorhanden sind, um die eigentliche Broyden-Technik anwenden zu k¨ onnen. Im folgenden wollen wir die einzelnen Iterationsschritte beschreiben. w

1. Iterationsschritt:

Es sei x(0) eine Startapproximation f¨ ur die L¨ osung x∗ von F (x) = 0. Die erste Iterierte (1) x wird mit dem gew¨ ohnlichen Newton-Verfahren (5.19) berechnet. Ist die analytische Bestimmung von J(x) zu kompliziert, dann verwendet man die Approximationsvorschrift (5.20). 1

Charles George Broyden (1933-2011), englischer Mathematiker

276

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Bevor wir den zweiten Iterationsschritt beschreiben, soll noch einmal das skalare Sekantenverfahren (4.18) betrachtet werden. Hier verwendet man anstelle von f 0 (x1 ) die numerische Approximation f 0 (x1 ) ≈

f (x1 ) − f (x0 ) . x1 − x0

F¨ ur Gleichungssysteme ist aber der zum obigen Nenner x1 −x0 entsprechende Ausdruck x(1) −x(0) ein Vektor, so daß der zugeh¨ orige Quotient auf der rechten Seite nicht definiert ist. Es bietet sich deshalb an, die Matrix J(x(1) ) des Newton-Verfahrens durch eine Matrix J1 mit der Eigenschaft J1 (x(1) − x(0) ) = F (x(1) ) − F (x(0) )

(5.21)

zu ersetzen. Die Gleichung (5.21) definiert J1 jedoch nicht eindeutig, da f¨ ur alle Vektoren r, s ∈ Rn , mit sT (x(1) − x(0) ) = 0, ebenfalls J¯1 (x(1) − x(0) ) ≡ (J1 + rsT )(x(1) − x(0) ) = F (x(1) ) − F (x(0) ) gilt. Aus diesem Grunde ist noch eine weitere Bedingung an die Matrix J1 erforderlich, die hier wie folgt angegeben werden soll J1 s = J(x(0) )s,

falls

sT (x(1) − x(0) ) = 0.

(5.22)

Es kann nun gezeigt werden1 , daß die Bedingungen (5.21) und (5.22) die Elemente der Matrix J1 eindeutig definieren. Des weiteren l¨aßt sich J1 in der Form J1 = J(x(0) ) +

[F (x(1) ) − F (x(0) ) − J(x(0) )(x(1) − x(0) )](x(1) − x(0) )T kx(1) − x(0) k22

(5.23)

angeben. w

2. Iterationsschritt:

Bei der Bestimmung von x(2) wird nun in der Formel des Newton-Verfahrens anstelle von J(x(1) ) als N¨ aherung die Matrix J1 verwendet, d.h., man rechnet nach der Vorschrift x(2) = x(1) − J1−1 F (x(1) ). w

i-ter Iterationsschritt (i ≥ 2):

Definiert man nun J0 ≡ J(x(0) ), 1

Siehe Aufgabe 5.6

y (i) ≡ F (x(i+1) ) − F (x(i) )

und z (i) ≡ x(i+1) − x(i) ,

5.3 Quasi-Newton-Verfahren

277

dann kann der obige Prozeß wie folgt fortgesetzt werden: i-ter Iterationsschritt 1. Schritt: Man berechne eine neue Approximation f¨ ur die Jacobi-Matrix T

Ji−1 = Ji−2 +

(y (i−2) − Ji−2 z (i−2) ) z (i−2) . kz (i−2) k22

2. Schritt: Man berechne eine neue Iterierte x(i) = x(i−1) + z (i−1) ,

Ji−1 z (i−1) = −F (x(i−1) ). (5.24)

Mit der Vorschrift (5.24) wird ab dem zweiten Iterationsschritt die Anzahl der Funktionswertberechnungen von n2 + n (Newton-Verfahren) auf n reduziert. Zur L¨osung des zugeh¨ origen linearen Gleichungssystems Ji−1 z (i−1) = −F (x(i−1) ) sind aber weiterhin O(n3 ) flops erforderlich. Ber¨ ucksichtigt man dabei den Sachverhalt, daß sich durch die obige Approximation der partiellen Ableitungen – wie im skalaren Fall – die quadratische Konvergenz des Newton-Verfahrens in nur superlineare Konvergenz verschlechtert, dann kann der aufgezeigte Weg eigentlich nicht angeraten werden. Es ist aber noch eine betr¨ achtliche Reduzierung des rechentechnischen Aufwandes m¨oglich, da in (5.24) die Matrix Ji−1 eine Rang-1 Modifikation der im vorangegangenen Iterationsschritt bestimmten Matrix Ji−2 darstellt. Sie kann deshalb sehr effektiv mit der Formel von Sherman und Morrison (siehe Abschnitt 2.4.3) berechnet werden. Wir wollen die Formel von Sherman und Morrison zur Erinnerung noch einmal angeben. F¨ ur eine invertierbare Matrix A ∈ Rn×n und Vektoren u, v ∈ Rn lautet sie: A˜−1 ≡ (A − uv T )−1 = A−1 + α(A−1 u)(v T A−1 ),

α≡

1 . 1 − v T A−1 u

Wir setzen nun A˜ ≡ Ji−1 ,

v ≡ z (i−2) ,

A ≡ Ji−2 ,

u≡−

y (i−2) − Ji−2 z (i−2) . kz (i−2) k22

Dann berechnet sich T

−1 −1 Ji−1 = Ji−2 −α

α= 1+z

(i−2) T

−1 −1 Ji−2 (y (i−2) − Ji−2 z (i−2) )z (i−2) Ji−2 , kz (i−2) k22

1 . (i−2) y − Ji−2 z (i−2) −1 Ji−2 kz (i−2) k22

278

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Hieraus erh¨ alt man −1 Ji−1

 (i−2) T −1 −1 (i−2) z (i−2) − Ji−2 y z Ji−2 = +α 2 (i−2) kz k2  (i−2) T −1 −1 (i−2) z (i−2) − Ji−2 y z Ji−2 −1 = Ji−2 +   (i−2)  y − Ji−2 z (i−2) −1 2 (i−2) (i−2) kz k2 1 + z Ji−2 kz (i−2) k22  (i−2) T −1 −1 (i−2) z (i−2) − Ji−2 y z Ji−2 −1 = Ji−2 +  T −1 2 (i−2) (i−2) (i−2) kz k2 + z Ji−2 y − Ji−2 z (i−2)  (i−2) T −1 −1 (i−2) z (i−2) − Ji−2 y z Ji−2 −1 = Ji−2 + . T −1 (i−2) 2 (i−2) (i−2) kz k2 + z Ji−2 y − kz (i−2) k22 −1 Ji−2

Folglich ergibt sich die Rechenvorschrift

−1 Ji−1

=

−1 Ji−2

 (i−2) T −1 −1 (i−2) z (i−2) − Ji−2 y z Ji−2

+

(5.25)

T

−1 (i−2) z (i−2) Ji−2 y

und der i-te Iterationsschritt (i ≥ 2) lautet jetzt: modifizierter i-ter Iterationsschritt 1. Schritt:

Man berechne eine neue Approximation

−1 Ji−1

2. Schritt:

=

−1 Ji−2

+

 (i−2) T −1 −1 (i−2) z (i−2) − Ji−2 y z Ji−2 T

−1 (i−2) z (i−2) Ji−2 y

.

(5.26)

Man berechne eine neue Iterierte −1 x(i) = x(i−1) − Ji−1 F (x(i−1) ).

Die Formel (5.25) erfordert einen Aufwand von O(n2 ) flops, da nur Matrizenmultiplikationen auszuf¨ uhren sind. Damit ergibt sich f¨ ur einen Iterationsschritt der Form (5.26) ein Rechenaufwand von: • n Funktionswertberechnungen und • O(n2 ) flops zur Approximation der Inversen der entsprechenden Jacobi-Matrix. Ein Vergleich mit dem gew¨ ohnlichen Newton-Verfahren zeigt, daß der Rechenaufwand erheblich reduziert werden konnte. Des weiteren liegt nun ein direkt implementierbares

5.4 Das Verfahren von Brown

279

numerisches Verfahren vor, wenn der erste Iterationsschritt auf der Basis von Differenzenapproximationen f¨ ur die in der Jacobi-Matrix auftretenden partiellen Ableitungen realisiert wird. Das soeben beschriebene Verfahren ist unter dem Namen BroydenVerfahren 1 bekannt. Aus den obigen Betrachtungen l¨ aßt sich die im Programm 5.3 angegebene MatlabFunktion unmittelbar ableiten. Der Funktionenvektor F (x) und die zugeh¨orige JacobiMatrix J(x) (bzw. eine Differenzenapproximation f¨ ur diese) sind durch zwei MatlabFunktionen F sowie Fstrich bereitzustellen.

5.4

Das Verfahren von Brown

Die Herleitung des Newton-Verfahrens kann auch direkt u ¨ber die Linearisierung der Gleichungen (5.1) vorgenommen werden. Man setzt hierzu voraus, daß x(k−1) ∈ Rn ein Vektor ist, der hinreichend nahe bei der L¨osung x∗ liegt. In einem ersten Schritt werden alle Funktionen f1 (x), . . . , fn (x) simultan an der Stelle x(k−1) in eine Taylorreihe entwickelt F (x) = F (x(k−1) ) + J(x(k−1) )(x − x(k−1) ) + O(kx − x(k−1) k2 ).

(5.27)

Nun l¨ aßt man nach dem Lokalisierungsprinzip nur noch Vektoren x ∈ Rn zu, die in der unmittelbaren Umgebung von x∗ liegen. Der Term O(kx − x(k−1) k2 ) ist dann im Vergleich mit den ersten beiden Termen in (5.27) vernachl¨assigbar. Somit ergibt sich nach dem Linearisierungsprinzip f¨ ur F (x) die (nur lokal g¨ ultige) lineare Ersatzfunktion L(x) ≡ F (x(k−1) ) + J(x(k−1) )(x − x(k−1) ).

(5.28)

Deren Nullstelle x = x(k−1) − J(x(k−1) )−1 F (x(k−1) ) wird nun als neue Iterierte x(k) verwendet, d.h., x(k) = x(k−1) − J(x(k−1) )−1 F (x(k−1) ).

(5.29)

Mit der Formel (5.29) liegt aber wieder das Newton-Verfahren (5.18) vor, mit dem wir uns in den Abschnitten 5.2 und 5.3 ausf¨ uhrlich besch¨aftigt haben. Von K. M. Brown2 wird nun eine Technik vorgeschlagen, bei der die Funktionen des Gleichungssystems (5.1) nacheinander, und nicht wie beim Newton-Verfahren simultan, linearisiert werden. Wir wollen dieses Verfahren hier kurz darstellen.

1

Weiterf¨ uhrende Betrachtungen zu diesem wichtigen numerischen Verfahren findet der Leser u.a. in der Monographie von H. Schwetlick: Numerische L¨ osung nichtlinearer Gleichungen. VEB Deutscher Verlag der Wissenschaften, Berlin 1979 2 Siehe K. M. Brown: A quadratically convergent Newton-like method based upon Gaussian elimination, SIAM J. Numer. Anal. 6 (1969), pp. 560–569

280

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Programm 5.3

Broyden-Verfahren

function [x,ind,i]=broyden(x0,TOL1,TOL2,N0) % % x0: Anfangsapproximation % TOL1, TOL2, N0: Toleranzen und max. Iterationsschrittzahl N0 % x letzte Iterierte % ind=1 Verfahren konvergiert % ind=2 Maximale Iterationsschrittanzahl N0 ¨ uberschritten % ind=3 Rang-1 Modifikation nicht durchf¨ uhrbar % n=length(x0); I=eye(n); x=x0; Jx=Fstrich(x); v=F(x); % Berechnung der Inversen L=inv(Jx) i=1; L=Jx\I; z=-L*v; x=x+z; while i < N0 w=v; v=F(x); if norm(v) < TOL2 % L¨ osung x berechnet ind=1; return end y=v-w; s=-L*y; p=-z’*s; if abs(p) < TOL1 % Rang-1 Modifikation nicht durchf¨ uhrbar ind=3; return end L=L+1/p*(z+s)*(z’*L); z=-L*v; x=x+z; if norm(z) < TOL2*(1+norm(x)) % L¨ osung x berechnet ind=1; return end i=i+1; end ind=2; % Maximale Iterationsschrittanzahl N0 ¨ uberschritten

w

1. Teilschritt:

Es sei x(k−1) ∈ Rn wieder ein Vektor, der hinreichend nahe bei der L¨osung x∗ des Gleichungssystems (5.1) liegt. Im diesem Punkte x(k−1) werde jetzt nur die erste Komponente f1 (x) des Funktionenvektors F (x) in eine gen¨aherte Taylorreihe entwickelt. Der Ausdruck gen¨ ahert soll darauf hinweisen, daß die (analytischen) partiellen Ableitungen durch Differenzenquotienten approximiert sind. Wie bei der obigen Herleitung des Newton-Verfahrens sind nach dem Lokalisierungsprinzip hier auch nur Vektoren x ∈ Rn zugelassen, die in einer kleinen Umgebung von x∗ liegen. Dann kann man in der Taylorentwicklung wieder alle Terme h¨ oherer Ordnung weglassen, da diese nur einen kleinen Beitrag im Vergleich zu den Termen nullter und erster Ordnung liefern. Es

5.4 Das Verfahren von Brown

281

resultiert (k−1)

f1 (x) ≈ l1 (x) ≡ f1 (x(k−1) ) + f1(x1 ;h) (x(k−1) ) (x1 − x1 + · · · + f1(xn ;h) (x

(k−1)

) (xn −

)

x(k−1) ), n

(5.30)

wobei die Gr¨ oßen f1(xj ;h) (x(k−1) ) durch die Differenzenapproximationen

fi(xj ;h) (x(k−1) ) ≡

fi (x(k−1) + hk−1 e(j) ) − fi (x(k−1) ) ∂fi (k−1) ≈ (x ) hk−1 ∂xj

(5.31)

definiert sind (mit i = 1). In (5.31) bezeichnet e(j) den j-ten Einheitsvektor. Die Schrittweite hk−1 ist so zu w¨ ahlen, daß hk−1 = O(kF (x(k−1) )k) gilt. Da nach Voraussetzung (k−1) x hinreichend nahe bei x∗ liegt, kann l1 (x) als lineare Ersatzfunktion f¨ ur f1 (x) verwendet werden, d.h., an die Stelle der Gleichung f1 (x) = 0 tritt die Gleichung l1 (x) = 0. Diese werde nun nach derjenigen Variablen aufgel¨ost, deren approximierte partielle Ableitung den gr¨ oßten Betrag besitzt. Wir wollen beispielhaft annehmen, daß dies f¨ ur xn zutrifft. Somit erhalten wir

(k−1)

xn = xn

(k−1)



(k−1)

n−1 X

f1(xj ;h)

j=1

f1(xn ;h)

(k−1)

(k−1)

(k−1)

(xj − xj

)−

f1

(k−1)

,

(5.32)

f1(xn ;h)

(k−1)

mit f1(xj ;h) ≡ f1(xj ;h) (x(k−1) ) und f1 ≡ f1 (x(k−1) ). Bei der Implementierung des Verfahrens werden nach der Berechnung der Konstanten (k−1)

f1(xj ;h) (k−1)

f1(xn ;h)

(k−1)

, j = 1, . . . , n − 1,

und

f1

(k−1)

f1(xn ;h)

diese im Computer f¨ ur die weitere Verwendung zwischengespeichert. Von Brown wurde unter den u ¨blichen Konvergenzbedingungen des Newton-Verfahrens (siehe z.B. den Satz 5.4 von Kantoroviˇc) gezeigt, daß mindestens eine nichtverschwindende partielle Ableitung existiert und folglich auch deren Differenzenapproximation nicht Null ist. Somit ist die Vorschrift (5.32) wohldefiniert. Die Auswahl einer Komponente des Vektors x anhand der betragsgr¨ oßten (approximierten) partiellen Ableitung hat einen ahnlichen Effekt zur Folge wie die partielle Pivotisierung bei der Gauß-Elimination. Sie ¨ f¨ uhrt zu einer Verbesserung der numerischen Stabilit¨at des Verfahrens. Der Darstellung (5.32) ist zu entnehmen, daß xn eine lineare Funktion der anderen n − 1 Variablen x1 , . . . , xn−1 ist. Zur Vereinfachung der sp¨ateren Ausf¨ uhrungen wollen wir die rechte Seite der Formel (5.32) mit Ln (x1 , . . . , xn−1 ) bezeichnen und abk¨ urzend (k−1) (k−1) (k−1) Ln ≡ Ln (x1 , . . . , xn−1 ) schreiben.

282 w

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen 2. Teilschritt:

Es werde eine neue Funktion g2 der n − 1 Variablen x1 , . . . , xn−1 definiert, die sich wie folgt auf die zweite Funktion f2 (x) des Gleichungssystems (5.1) bezieht g2 (x1 , . . . , xn−1 ) ≡ f2 (x1 , x2 , . . . , xn−1 , Ln (x1 , x2 , . . . , xn−1 )).

(5.33)

Weiter sei (k−1)

g2

(k−1)

≡ f2 (x1

(k−1)

, . . . , xn−1 , L(k−1) ). n

Wir bestimmen nun f¨ ur g2 eine (lokal g¨ ultige) lineare Ersatzfunktion l2 (x1 , . . . , xn−1 ), indem die Funktion g2 in eine gen¨ aherte Taylorreihe entwickelt und diese durch Vernachl¨ assigung aller Terme h¨ oherer Ordnung linearisiert wird. Anschließend l¨ost man die Gleichung l2 (x1 , . . . , xn−1 ) = 0 nach derjenigen Variablen auf, deren (approximierte) partielle Ableitung g2(xn−1 ;h) den gr¨ oßten Betrag besitzt (dies sei z.B. f¨ ur xn−1 der Fall). Es ergibt sich

xn−1 =

(k−1) xn−1



(k−1)

n−2 X

g2(xj ;h)

j=1

g2(xn−1 ;h)

(k−1)

(k−1)

(k−1)

(xj − xj

)−

g2

.

(k−1)

(5.34)

g2(xn−1 ;h)

(k−1)

Die Approximation der partiellen Ableitung g2(xj ;h) ist hierbei gegeben zu (k−1)

(k−1) g2(xj ;h)



g2 (x1

(k−1)

(k−1)

, . . . , xj−1 , xj

(k−1)

(k−1)

(k−1)

+ hk−1 , xj+1 , . . . , xn−1 ) − g2 hk−1

.

(5.35) Die Formel (5.34) zeigt, daß xn−1 eine lineare Funktion der restlichen n − 2 Variablen ist. Wir k¨ urzen die rechte Seite von (5.34) mit Ln−1 (x1 , . . . , xn−2 ) ab. Die berechneten (k−1) (k−1) (k−1) (k−1) Quotienten g2(xj ;h) /g2(xn−1 ;h) , j = 1, . . . , n−2, sowie g2 /g2(xn−1 ;h) sollten wiederum zwischengespeichert werden. w

3. Teilschritt:

Wir definieren g3 (x1 , . . . , xn−2 ) ≡ f3 (x1 , . . . , xn−2 , Ln−1 , Ln ) mit Ln−1 ≡ Ln−1 (x1 , . . . , xn−2 )

und Ln ≡ Ln (x1 , . . . , xn−2 , Ln−1 (x1 , . . . , xn−2 )).

Jetzt werden wiederum folgende Basisschritte angewendet: (k−1)

• gen¨ aherte Taylorentwicklung von g3 im Punkte (x1

(k−1)

, . . . , xn−2 ),

5.4 Das Verfahren von Brown

283

• Bestimmung der linearen Ersatzfunktion l3 f¨ ur g3 , • Aufl¨ osung der Gleichung l3 (x1 , . . . , xn−2 ) = 0 nach xn−2 , wenn xn−2 diejenige Variable bezeichnet, deren zugeh¨ orige approximierte partielle Ableitung g3(xn−2 ;h) den gr¨ oßten Absolutbetrag besitzt, und • Bezeichnung der rechten Seite der resultierenden Gleichung mit Ln−2 . Diese ist eine Linearkombination der noch verbleibenden n − 3 Variablen. Die obige Strategie wird nun fortgesetzt, d.h., aus jeder Gleichung des Systems (5.1) wird sukzessive eine Variable eliminiert. In jedem Teilschritt erhalten wir einen neuen linearen Ausdruck Ln−j f¨ ur eine der Variablen, sagen wir xn−j , in Termen der restlichen n − j − 1 Variablen x1 , x2 , . . . , xn−j−2 , xn−j−1 . Dieser lineare Ausdruck wird nun in den zuvor definierten linearen Ausdr¨ ucken Ln−j+1 , Ln−j+2 , . . ., Ln−1 , Ln anstelle von xn−j verwendet. Schließlich wird in jedem Teilschritt des Algorithmus ein weiterer linearerer Ausdruck zu dem bereits bestehenden linearen System hinzugef¨ ugt. W¨ ahrend des (j + 1)-ten Teilschrittes ist es erforderlich, gj+1 bzw. fj+1 f¨ ur verschiedene Argumente zu berechnen. Die Werte der letzten j Komponenten des Argumentes von fj+1 erh¨ alt man dabei durch R¨ ucksubstitution in das bisher konstruierte lineare System Ln , Ln−1 , . . . , Ln−j+1 . Die Punkte, die substituiert werden m¨ ussen, sind (k−1) (k−1) (k−1) (k−1) (i) (x1 , . . . , xn−j ) ≡ Xn−j und Xn−j + hk−1 e , i = 1, . . . , n − j. Diese Argumente (k−1)

(k−1)

werden ben¨ otigt, um die Gr¨ oßen gj+1 und gj+1(i;h) , i = 1, . . . , n − j, zu bestimmen, die f¨ ur die Elimination der (j + 1)-ten Variablen – wir nehmen wiederum beispielhaft an, dies sei xn−j – mittels der oben beschriebenen Basisschritte erforderlich sind. F¨ ur jedes j ist das Ergebnis des Prozesses die (j + 1)-te Variable xn−j , die als eine Linearkombination Ln−j der verbleibenden n − j − 1 Variablen dargestellt ist. w

n-ter Teilschritt:

An dieser Stelle liegt gn ≡ fn (x1 , L2 , L3 , . . . , Ln )

(5.36)

vor, wobei sich die Lj durch R¨ ucksubstitution in das folgende (n − 1)-zeilige Dreieckssystem ergeben

(k−1)

Li = xi



i−1 g (k−1) X n−i+1(xj ;h) (k−1)

j=1

gn−i+1(xi ;h)

(k−1)

(k−1)

(Lj − xj

)−

gn−i+1 (k−1)

,

i = n(−1)2,

(5.37)

gn−i+1(xi ;h)

mit g1 ≡ f1 und L1 ≡ x1 . Man erkennt unmittelbar, daß gn jetzt nur noch von x1 abh¨ angt. Nach Anwendung der Basisschritte auf (5.36) ergibt sich (k−1)

(k−1)

x1 = x1



gn

(k−1)

gn(x1 ;h)

.

(5.38)

284

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen (k)

Die nach (5.38) bestimmte Gr¨ oße x1 verwenden wir als neue Approximation x1 f¨ ur die erste Komponente x∗1 des L¨ osungsvektors x∗ . Nun werde x1 umbezeichnet zu L1 und das gestaffelte System (5.37) gel¨ ost, um verbesserte Approximationen auch f¨ ur die anderen (k) Komponenten von x∗ zu erhalten. Wir verwenden hier als xj denjenigen Wert, der sich f¨ ur Lj bei der L¨ osung von (5.37) ergibt. Das durch die Teilschritte 1 bis n beschriebene numerische Verfahren wird als Verfahren von Brown bezeichnet. Da es auf fortlaufenden Substitutionen basiert, kann bei der Konstruktion des Argumentes der Funktionen gi jeweils die neuste Information u ¨ber den Wert der dort eingehenden Komponenten xj ber¨ ucksichtigt werden. Dies ist ein sehr ¨ ahnliches Vorgehen wie beim Einzelschrittverfahren (Gauß-Seidel-Verfahren) f¨ ur lineare und nichtlineare Gleichungssysteme (siehe (2.165) bzw. (5.12)). Um die Konvergenz des Verfahrens von Brown zu untersuchen, wollen wir folgende Voraussetzungen postulieren. Voraussetzung 5.1. (Schwache Voraussetzung) Es sei x∗ eine Nullstelle der Vektorfunktion F . Die Jacobi-Matrix J(x) von F (x) sei stetig in ¯ ∗ ; R) ≡ {x ∈ R : kx − x∗ k∞ ≤ R}, R > 0, S(x und nichtsingul¨ ar in x∗ .



Voraussetzung 5.2. (Starke Voraussetzung) Es sei K ≥ 0. Zus¨ atzlich zur schwachen Voraussetzung 5.1 m¨oge f¨ ur J(x) gelten kJ(x) − J(x∗ )k∞ ≤ K kx − x∗ k∞

f¨ ur alle kx − x∗ k∞ ≤ R.



Es gilt nun der Satz 5.5. Die Vektorfunktion F erf¨ ulle die Voraussetzung 5.1 (schwache Voraussetzung). Dann existieren positive Konstanten r und ε, so daß f¨ ur x(0) ∈ S(x∗ ; r) und |hk | ≤ ε das auf die Problemstellung (5.2) angewendete Verfahren von Brown eine Fol∗ ge {x(k) }∞ k=0 erzeugt, die gegen x konvergiert. Erf¨ ullt F die Voraussetzung 5.2 (starke Voraussetzung) und gilt hk = O(|f1 (x(k) )|), dann besitzt das Verfahren von Brown mindestens die Konvergenzordnung 2. Beweis: Siehe die Arbeit von K. M. Brown und J. E. Dennis, Jr.1



Bei der Implementierung des Verfahrens ist es sinnvoll, nicht f¨ ur alle Komponenten (k−1) (k−1) xj die gleiche Diskretisierungsschrittweite hk−1 zu verwenden. Bezeichnet hj (k−1)

diejenige Schrittweite, die in (5.31) bzw. (5.35) zur Komponente xj 1

geh¨ort, dann

K. M. Brown and J. E. Dennis, Jr.: On the second order convergence of Brown’s derivative-free method for solving simultaneous nonlinear equations. Techn. Report 71-7, Yale University, Dept. Computer Sciences, New Haven, Connecticut, 1971

5.4 Das Verfahren von Brown

285

hat sich die folgende modifizierte Schrittweitenstrategie als g¨ unstig erwiesen n o (k−1) (k−1) hj ≡ max αij , 5 · 10−ν+2 mit o n   (k−1) (k−1) (k−1) (k−1) (k−1) αij ≡ min max |f1 |, |g2 |, . . . , |gi | , 0.001 · |xj | ,

(5.39)

wobei mit ν wiederum die relative Maschinengenauigkeit bezeichnet wird. Es soll jetzt der rechentechnische Aufwand des Verfahrens von Brown untersucht werden. Hierzu wollen wir die Anzahl der Funktionswertberechnungen in einem Iterationsschritt bestimmen. Der erste Teilschritt erfordert n+1 Auswertungen von f1 , der zweite Teilschritt n Auswertungen von f2 , der dritte n − 1 Auswertungen von f3 etc. Somit ergibt sich insgesamt ein Aufwand von n+1 X i=2

i=

n2 + 3n 2

Funktionswertberechnungen.

Dies sieht recht g¨ unstig im Vergleich mit dem diskretisierten Newton-Verfahren (siehe (5.19), (5.20)) aus, das n2 + n Funktionsauswertungen pro Iterationsschritt ben¨otigt. Es muß jedoch der Richtigkeit halber darauf hingewiesen werden, daß im Verfahren von Brown noch eine Reihe zus¨ atzlicher Funktionswertberechnungen auszuf¨ uhren sind, n¨ amlich die Berechnung der linearen Funktionen Lj . Deshalb wird das Verfahren von Brown sicher nur dann zu echten Einsparungen im Aufwand f¨ uhren, wenn die fi sehr aufwendig zu bestimmende Funktionen sind, d.h., falls eine durchschnittliche Gleichung des Systems (5.1) mehr als n2 Multiplikationen erfordert. Viele Systeme in der Praxis weisen eine mindestens so komplizierte Struktur auf, insbesondere dann, wenn das nichtlineare Gleichungssystem bei der L¨ osung nichtlinearer Zweipunkt-Randwertprobleme gew¨ ohnlicher Differentialgleichungen mittels Schießverfahren entsteht1 . Da das Verfahren von Brown zu jedem Zeitpunkt nur mit einer Gleichung fi = 0 arbeitet und die hier gewonnenen Informationen sofort bei der Behandlung der n¨achsten Gleichung fi+1 = 0 mit eingehen, kann die Effektivit¨ at des Verfahrens durch eine geschickte Anordnung der Gleichungen im System (5.1) beeinflußt werden. Die Gleichungen sollten n¨ amlich vor dem eigentlichen Rechenprozeß so angeordnet werden, daß die linearen oder nur schwach nichtlinearen Gleichungen am Anfang des Systems zu stehen kommen. Die Information aus den linearen Gleichungen wird dann unverf¨alscht auf die n¨ achsten Gleichungen u ¨bertragen, da der Linearisierungsprozeß und die damit verbundene Approximation entf¨ allt. Eine solche Strategie verbessert die Effektivit¨at des Newton-Verfahrens nat¨ urlich nicht, da alle Gleichungen fi = 0, i = 1, . . . , n, hier simultan behandelt werden. Bemerkung 5.4. Es gibt in der Literatur inzwischen eine Reihe von Modifikationen des Verfahrens von Brown, die unter dem Begriff Newton-¨ ahnliche Verfahren vom Elimi1

Siehe hierzu M. Hermann: Numerik gew¨ ohnlicher Differentialgleichungen. Anfangs- und Randwertprobleme. Oldenbourg Verlag, M¨ unchen, 2004

286

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

nationstyp 1 bekannt sind. Insbesondere erm¨ oglichen die modernen Techniken die Aufspaltung des Gleichungssystems (5.2) in eine bestimmte Anzahl von Bl¨ocken, d.h.,  Fp1 (x)     Fp2 (x) 0 = F (x) = ..  .    Fpm (x) mit p1 + p2 + · · · + pm = n und Fpk (x) = 0, bestehend aus pk skalaren Gleichungen. Ein solches Block-Verfahren, die sogenannte Generalized Brent Method (GBM), wird z.B. von M. Hermann und D. Kaiser vorgeschlagen und bei der L¨osung nichtlinearer Zweipunkt-Randwertprobleme eingesetzt2 . 

5.5 5.5.1

Nichtlineares Ausgleichsproblem Problemstellung

In den vorangegangenen Abschnitten wurde ausschließlich das Nullstellenproblem (5.2) betrachtet. Wir wollen jetzt die Minimierungsaufgabe min g(x),

x∈Rn

g : Rn → R,

(5.40)

untersuchen und diese in den Zusammenhang mit dem Nullstellenproblem stellen. Gesucht ist eigentlich eine globale Minimumstelle von g auf Rn , d.h. ein Vektor x∗ ∈ Rn , f¨ ur den g(x) ≥ g(x∗ ) (5.41) f¨ ur alle x ∈ Rn gilt. Da sich diese globale Minimumstelle aber nur unter sehr einschr¨ ankenden Voraussetzungen finden l¨ aßt, wollen wir uns auf die Bestimmung von lokalen Minimumstellen beschr¨ anken. Ein Vektor x∗ ∈ Rn heißt lokale Minimumstelle von g, falls eine offene Umgebung S von x∗ existiert, so daß g(x) ≥ g(x∗ )

(5.42)

f¨ ur alle x ∈ Rn ∩ S gilt. Offensichtlich stellt jede globale Minimumstelle auch eine lokale Minimumstelle dar, w¨ ahrend die Umkehrung dieser Aussage i.allg. nicht zutrifft. Eine notwendige Bedingung f¨ ur das Vorliegen einer lokalen bzw. globalen Minimumstelle ist im folgenden Satz angegeben. 1

Siehe z.B. M. Y. Cosnard: A comparison of four methods for solving systems of nonlinear equations. Technical Report 75-248, Department of Computer Science, Cornell University, Ithaca, 1975, sowie die Monografie von H. Schwetlick: Numerische L¨ osung nichtlinearer Gleichungen. VEB Deutscher Verlag der Wissenschaften, Berlin, 1979 2 Siehe die Monographie M. Hermann: Numerik gew¨ ohnlicher Differentialgleichungen. Anfangs- und Randwertprobleme. Oldenbourg Verlag, M¨ unchen, 2004 sowie M. Hermann und D. Kaiser: Shooting methods for two-point BVPs with partially separated endconditions. ZAMM 75 (1995), pp. 651–668

5.5 Nichtlineares Ausgleichsproblem

287

Satz 5.6. Es seien S ⊆ Rn offen und die Funktion g : S → R stetig differenzierbar. Es bezeichne x∗ ∈ S eine lokale Minimumstelle von g auf S. Dann gilt g 0 (x∗ )T ≡ grad g(x∗ ) = 0.

(5.43)

Beweis: Wir wollen annehmen, daß x∗ ∈ S eine lokale Minimumstelle von g ist und f¨ ur diese grad g(x∗ ) 6= 0 gilt. Dann gibt es ein z ∈ Rn mit grad g(x∗ )T z < 0; zum Beispiel z = −grad g(x∗ ). Die stetige Differenzierbarkeit von g garantiert die Existenz der Richtungsableitung g 0 (x∗ , z) von g in Richtung von z. F¨ ur diese gilt g(x∗ + tz) − g(x∗ ) = grad g(x∗ )T z < 0. t→0 t

g 0 (x∗ , z) ≡ lim

Somit gibt es ein ρ > 0, so daß f¨ ur alle t ∈ (0, ρ] gilt: x∗ + tz ∈ S

und

g(x∗ + tz) − g(x∗ ) < 0. t

Folglich ist g(x∗ + tz) < g(x∗ ) f¨ ur alle t ∈ (0, ρ], was unserer Annahme widerspricht.  Es seien wie bisher S ⊂ Rn eine offene Menge und g : S → R eine stetig differenzierbare Funktion. Dann wird ein Vektor x∗ ∈ S station¨ arer Punkt der Funktion g genannt, wenn g 0 (x∗ ) = 0 gilt. Ist g in S zweimal stetig differenzierbar, dann kann x∗ mittels der zweiten Ableitung g 00 (x∗ ) genauer charakterisiert werden. Im weiteren bezeichne H(x∗ ) ∈ Rn×n die Hesse 1 -Matrix von g in x∗ , durch die g 00 (x∗ ) im Sinne von g 00 (x∗ )zw ≡ z T H(x∗ )w,

z, w ∈ Rn ,

repr¨ asentiert wird. Es gilt nun die folgende Aussage. Satz 5.7. Die Funktion g : S ⊂ Rn → R sei zweimal stetig differenzierbar. Ist x∗ ein station¨ arer Punkt, f¨ ur den H(x∗ ) positiv definit ist, dann handelt es sich bei x∗ um eine lokale Minimumstelle von g auf S. Beweis: Da die Hesse-Matrix in x∗ stetig und positiv definit ist, gibt es um x∗ eine (offene) Kugel Br (x∗ ) mit dem Radius r > 0, so daß f¨ ur alle x ∈ Br (x∗ ) die Matrix H(x) weiterhin positiv definit ist. F¨ ur einen nichtverschwindenden Vektor z, mit kzk < r, haben wir x∗ + z ∈ Br (x∗ ) und x + tz ∈ Br (x∗ ), f¨ ur t ∈ (0, 1). Somit ergibt sich g(x∗ + z) = g(x∗ ) + grad g(x∗ )T z +

1 T z H(x + tz)z. 2

Da grad g(x∗ ) = 0 und H(x + tz) positiv definit ist, folgt daraus 1 g(x∗ + z) = g(x∗ ) + z T H(x + tz)z > g(x∗ ), 2 1

Ludwig Otto Hesse (1811–1874), deutscher Mathematiker

288

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

womit die Behauptung gezeigt ist.



Wir wollen uns jetzt wieder dem Nullstellenproblem zuwenden. In Verallgemeinerung von (5.2) soll aber davon ausgegangen werden, daß das Gleichungssystem auch mehr Gleichungen als Unbekannte enthalten kann, d.h. wir betrachten die Gleichung F (x) = 0,

F : Rn → Rm ,

m ≥ n.

(5.44)

Gilt m = n, dann ist jede Nullstelle x∗ von (5.44) auch eine L¨osung des Quadratmittelproblems 1 minn g(x) ≡ kF (x)k22 . (5.45) x∈R 2 Gilt andererseits m > n, dann ist die Gleichung (5.44) i.allg. nicht l¨osbar und man kann nur noch eine verallgemeinerte L¨ osung im Sinne des Quadratmittelproblems (5.45) bestimmen. Damit ist jedes Verfahren zur Minimierung von g auch zur L¨osung von (5.2) geeignet.

5.5.2

Gauß-Newton-Verfahren

Die bekannten Minimierungstechniken lassen sich grob in zwei Klassen einteilen, und zwar in die Newton-artigen Verfahren und die Abstiegsverfahren. Ein wichtiger Vertreter der Newton-artigen Verfahren ist das Gauß-Newton-Verfahren. Hier approximiert man wie beim Newton-Verfahren in jedem Iterationsschritt die nichtlineare Vektorfunktion F durch eine lineare affine Ersatzfunktion: g(x) =

1 1 kF (x)k22 ≈ kF (x(k) ) + J(x(k) )(x − x(k) )k22 , 2 2

(5.46)

wobei J(x) ≡ F 0 (x) ∈ Rm×n wiederum die Jacobi-Matrix von F (x) bezeichnet. Daraus ergibt sich unmittelbar das linearisierte Quadratmittelproblem minn

x∈R

1 kF (x(k) ) + J(x(k) )(x − x(k) )k22 , 2

(5.47)

dessen L¨ osung x = x(k+1) die n¨ achste Iterierte ergibt. Zur L¨osung von (5.47) k¨onnen die im Kapitel 8 dargestellten numerischen Techniken zum Einsatz kommen. Formal l¨ aßt sich die L¨ osung x(k+1) mit Hilfe der Pseudo-Inversen (8.64) in der Form (8.61) darstellen, d.h. es ist x(k+1) = x(k) − J(x(k) )+ F (x(k) ).

(5.48)

Besitzt J(x(k) ) vollen Spaltenrang, dann f¨ uhrt die Darstellung (8.65) auf  −1 J(x(k) )+ = J(x(k) )T J(x(k) ) J(x(k) )T .

(5.49)

5.5 Nichtlineares Ausgleichsproblem

289

Unter der Voraussetzung, daß die Jacobi-Matrix J(x(k) ) vollen Rang besitzt, kann man nun die Darstellung (5.49) in (5.48) einsetzen und erh¨alt die Iterationsvorschrift  −1 x(k+1) = x(k) − J(x(k) )T J(x(k) ) J(x(k) )T F (x(k) ). (5.50) In der Praxis wird man nat¨ urlich nicht diesen formalen Weg beschreiten, sondern zur L¨ osung des linearen Quadratmittelproblems (5.47) diejenigen Techniken verwenden, die auf einer QR-Faktorisierung von J(x(k) ) basieren (siehe Kapitel 8). Im Falle, daß ein System der Form (5.2) vorliegt, d.h., daß die Anzahl der Gleichungen mit der Anzahl der Unbekannten u ¨bereinstimmt, l¨aßt sich J(x(k) )T J(x(k) ) faktorweise invertieren. Es resultiert x(k+1) = x(k) − J(x(k) )−1 J(x(k) )−T J(x(k) )T F (x(k) ). Daher ist dann (5.50) mit dem Newton-Verfahren x(k+1) = x(k) − J(x(k) )−1 F (x(k) ) zur L¨ osung von (5.2) identisch. Bez¨ uglich der Konvergenz des Gauß-Newton-Verfahrens gilt die folgende Aussage1 . Satz 5.8. Es bezeichne S ⊂ Rn eine offene und konvexe Menge. Die nichtlineare Funktion F : S → Rm , m ≥ n, sei stetig differenzierbar und die zugeh¨ orige Jacobi-Matrix J(x) besitze f¨ ur alle x ∈ S vollen Rang. Weiter werde angenommen, daß das lineare Quadratmittelproblem (5.47) eine L¨ osung x∗ ∈ S besitzt und daß Konstanten ω > 0 und 0 ≤ α < 1 existieren, so daß die folgenden zwei Ungleichungen erf¨ ullt sind: kJ(x)+ (J(x + tv) − J(x)v) k2 ≤ tωkvk22

(5.51)

f¨ ur alle t ∈ [0, 1], x ∈ S und v ∈ Rn mit x + v ∈ S, und kJ(x)+ F (x∗ )k2 ≤ α kx − x∗ k2

(5.52)

f¨ ur alle x ∈ S. Gilt dann f¨ ur einen vorgegebenen Startvektor x(0) ∈ S ρ1 ≡ kx(0) − x∗ k2 < 2

(1 − α) ≡ ρ2 , ω

(5.53)

dann verbleibt die durch das Gauß-Newton-Verfahren (5.50) definierte Folge {x(k) }∞ k=0 in der offenen Kugel Sρ1 (x∗ ) und konvergiert gegen x∗ . F¨ ur die Konvergenzgeschwindigkeit dieser Folge gilt ω kx(k+1) − x∗ k2 ≤ kx(k) − x∗ k22 + α kx(k) − x∗ k2 . (5.54) 2 Offensichtlich ergibt sich quadratische Konvergenz f¨ ur Probleme der Form (5.2). Schließlich ist die L¨ osung x∗ in der offenen Kugel Sρ2 (x∗ ) eindeutig. 1

Siehe auch Hanke-Bourgeois, M.: Grundlagen der Numerischen Mathematik und des Wissenschaftlichen Rechnens, Vieweg+Teubner, Wiesbaden 2009

290

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Beweis: F¨ ur x, y ∈ S lautet die Lagrangesche Form des Mittelwertsatzes der Integralrechnung Z 1 F (y) − F (x) − J(x)(y − x) = (J(x + t(y − x)) − J(x)) (y − x) dt. (5.55) t=0

Wir betrachten nun den Ausdruck kJ(x)+ (F (y) − F (x) − J(x)(y − x)) k2 . Dieser l¨ aßt sich unter Verwendung von (5.55) und der Lipschitz-Bedingung (5.51) wie folgt absch¨ atzen kJ(x)+ (F (y) − F (x) − J(x)(y − x)) k2

Z 1

+

≤ J(x) (J(x + t(y − x)) − J(x))(y − x) dt

t=1

Z

2

1



tω ky − xk22 dt =

t=0

(5.56)

ω ky − xk22 . 2

Da wir die Existenz einer L¨ osung x∗ des Quadratmittelproblems (5.47) vorausgesetzt haben, ist die Beziehung g 0 (x∗ ) = 2J(x∗ )T F (x∗ ) = 0 erf¨ ullt. Des weiteren ergibt sich aus (8.65) J(x)+ J(x) = In

f¨ ur alle x ∈ S.

Mit diesen Vorbereitungen k¨ onnen wir nun schreiben x(k+1) − x∗ = x(k) − x∗ − J(x(k) )+ F (x(k) )   = J(x(k) )+ F (x∗ ) − F (x(k) ) − J(x(k) )(x∗ − x(k) ) − J(x(k) )+ F (x∗ ). Daraus ergibt sich bei Verwendung von (5.56) und (5.52) ω  kx(k+1) − x∗ k2 ≤ kx(k) − x∗ k2 + α kx(k) − x∗ k2 . 2 Falls 0 < kx(k) − x∗ k2 ≤ ρ1 , so folgt daraus  ωρ  1 kx(k+1) − x∗ k2 ≤ + α kx(k) − x∗ k2 . 2 Der Ausdruck in den runden Klammern auf der rechten Seite ist wegen der Voraussetzung (5.53) kleiner als Eins. Da der Startvektor x(0) nach Voraussetzung so zu w¨ahlen ist, daß kx(0) − x∗ k2 = ρ1 gilt, ist kx(k) − x∗ k2 < ρ1 f¨ ur alle k > 0 erf¨ ullt und die Folge ∗ {x(k) }∞ konvergiert gegen x . k=0

5.5 Nichtlineares Ausgleichsproblem

291

Um die Eindeutigkeit der L¨ osung x∗ in der Kugel Sρ2 (x∗ ) zu zeigen, nehmen wir an, ∗∗ dass eine weitere L¨ osung x , mit x∗∗ 6= x∗ , des Quadratmittelproblems dort existiert. (0) Wir setzen x = x∗∗ und erhalten aus (5.54) ω ∗∗ kx − x∗ k22 + α kx∗∗ − x∗ k2 2   ω = α + kx∗∗ − x∗ k2 kx∗∗ − x∗ k2 . 2

kx∗∗ − x∗ k2 ≤

Die Voraussetzung (5.53) impliziert, daß der Klammerausdruck auf der rechten Seite echt kleiner als Eins ist. Somit ergibt sich der Widerspruch kx∗∗ − x∗ k2 < kx∗∗ − x∗ k2 , woraus folgt, daß x∗∗ = x∗ gelten muß.



Beispiel 5.1. Gegeben seien die folgenden zwei nichtlinearen Gleichungen in einer Unbekannten x + 1 = 0, λx2 + x − 1 = 0, wobei λ ∈ R ein freier Parameter ist. In Vektorform nimmt dieses Problem die Gestalt ! x+1 F (x) = =0 (5.57) λx2 + x − 1 an. Damit ergibt sich g(x) =

1 1 1 kF (x)k22 = (x + 1)2 + (λx2 + x − 1)2 . 2 2 2

Daraus berechnet man g 0 (x) = x + 1 + (λx2 + x − 1)(2λx + 1) = 2λ2 x3 + 3λx2 + 2(1 − λ)x. Somit ist x = 0 ein station¨ arer Punkt der Funktion g. F¨ ur die zweite Ableitung ergibt sich g 00 (x) = 6λ2 x2 + 6λx + 2(1 − λ), woraus g 00 (0) = 2(1 − λ) folgt. Nach dem Satz 5.7 ist f¨ ur λ < 1 der Punkt x = 0 eine lokale (in unserem Falle auch globale) Minimumstelle von g. Um das Gauß-Newton-Verfahren anwenden zu k¨onnen, muß J(x) berechnet werden. Man erh¨ alt ! 1 J(x) = . 2λx + 1

292

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Diese Matrix“ besitzt vollen Spaltenrang, so daß sich J(x)+ nach der Formel (5.49) ” wie folgt berechnet   1 2λx + 1 1 + , , α≡ . J(x) = α α 1 + (2λx + 1)2 Somit nimmt das Gauß-Newton-Verfahren f¨ ur das Problem (5.57) die Gestalt x(k+1) = x(k) −

x(k) + 1 + (2λx(k) + 1)(λ(x(k) )2 + x(k) − 1) α(k)

(5.58)

2λ2 (x(k) )3 + 3λ(x(k) )2 + 2(1 − λ)x(k) = x(k) − α(k) an, mit α(k) ≡

1 . 1 + (2λx(k) + 1)2

Ist λ 6= 0 und x(k) ≈ 0, dann l¨ aßt sich (5.58) in der Form     x(k+1) = x(k) + (λ − 1)x(k) + O (x(k) )2 = λx(k) + O (x(k) )2 schreiben. Offensichtlich konvergiert das Gauß-Newton-Verfahren f¨ ur |λ| < 1, und zwar linear. Ist λ = 0, dann ergibt sich nach (5.58) x(k+1) = x(k) − x(k) = 0, d.h. die L¨ osung wir in einem Iterationsschritt gefunden.



Es gibt aber auch Probleme, bei denen das Gauß-Newton-Verfahren noch nicht einmal lokal gegen die L¨ osung des nichtlinearen Quadratmittelproblems (5.45) konvergiert. Dieses Verhalten l¨ aßt sich wie folgt erkl¨ aren. Bei einer schlecht konditionierten Matrix J(x(k) ) kann der Vektor 4x(k) ≡ x(k+1) − x(k) betragsm¨aßig sehr groß sein. Die Linearisierung (5.46) setzt aber voraus, daß 4x(k) betragsm¨aßig klein ist. Im Abschnitt 5.5.4 ist eine Modifikation des Gauß-Newton-Verfahrens mittels der Trust-Region-Strategie beschrieben, die auf das bekannte Levenberg-Marquardt-Verfahren f¨ uhrt und in einem solchen Fall noch relativ gute Ergebnisse liefert.

5.5.3

Abstiegsverfahren

Das im vorangegangenen Abschnitt beschriebene Gauß-Newton-Verfahren l¨aßt sich mit  −1 p(k) ≡ − J(x(k) )T J(x(k) ) J(x(k) )F (x(k) ) in der Form x(k+1) = x(k) + p(k) schreiben.

5.5 Nichtlineares Ausgleichsproblem

293

Die Klasse der Abstiegsverfahren geht von dem allgemeineren Ansatz x(k+1) = x(k) + tk p(k)

(5.59)

aus, wobei p(k) ∈ Rn die Abstiegsrichtung und tk die Schrittweite im k-ten Iterationsschritt bezeichnen. Ein Vektor p ∈ Rn wird dabei Abstiegsrichtung von g in einem Punkt x ∈ Rn genannt, falls es ein ρ > 0 gibt mit g(x + tp) < g(x)

f¨ ur alle t ∈ (0, ρ].

Ist g stetig differenzierbar und gilt grad g(x)T p < 0,

(5.60)

so ist p eine Abstiegsrichtung von g in x. Dies l¨aßt sich wie folgt zeigen. Wir setzen Φ(t) ≡ g(x + tp) und entwickeln Φ(t) in eine Taylorreihe Φ(t) = Φ(0) + tΦ0 (0) + O(t2 ).

(5.61)

Es sind Φ(0) = g(x)

und

Φ0 (0) = grad g(x)T d.

Damit ergibt sich aus (5.61) Φ(t) − Φ(0) = grad g(x)T d + O(t). t Somit existiert ein ρ > 0, so daß unter Beachtung von (5.60) gilt Φ(t) − Φ(0) < 0 f¨ ur alle t ∈ (0, ρ], t d.h. g(x + tp) < g(x) und p ist eine Abstiegsrichtung von g in x. Die geometrische Bedeutung der Abstiegsbedingung (5.60) besagt, daß der Winkel γ zwischen p und dem negativen Gradienten von g in x kleiner als π/2 ist. Beispiele f¨ ur Abstiegsrichtungen sind: • p = −grad g(x), die Richtung des steilsten Abstiegs. Demzufolge wird das resultierende Verfahren (5.59) auch Verfahren des steilsten Abstiegs (engl.: steepest descend method) oder auch Gradientenverfahren genannt. • p = −M grad g(x), M ∈ Rn×n positiv definit. Offensichtlich gilt in diesem Falle grad g(x)T p = −grad g(x)T M grad g(x) < 0. Ein allgemeines Abstiegsverfahren l¨ aßt sich algorithmisch wie im Algorithmus 5.1 angegeben, formulieren.

294

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Abstiegsverfahren Input:

Startvektor x(0) , zu minimierende Funktion g(x)

k=1 while spezielles Abbruch-Kriterium nicht erf¨ ullt Bestimme eine Abstiegsrichtung p(k) mit grad g(x(k) )T p(k) < 0. Bestimme eine Schrittweite tk mit g(x(k) + tk p(k) ) < g(x(k) ). Setze x(k+1) = x(k) + tk p(k) ;

k =k+1

end

Algorithmus 5.1: Ein allgemeines Abstiegsverfahren

¨ Ublicherweise wird an die Iterierten x(k) und p(k) im Algorithmus 5.1 eine sogenannte Winkelbedingung gestellt. Sie besagt, daß eine Konstante C > 0 existieren muß, so daß f¨ ur alle k ∈ N die Beziehung −grad g(x(k) )T p(k) ≥ C kgrad g(x(k) )k2 kp(k) k2

(5.62)

erf¨ ullt ist. Bezeichnet γk wie oben den Winkel zwischen p(k) und −grad g(x(k) ), dann impliziert diese Winkelbedingung, daß cos γk = −

grad g(x(k) )T p(k) kgrad g(x(k) )k2 kp(k) k2

gleichm¨ aßig gr¨ oßer als Null ist. Offensichtlich erf¨ ullt der Vektor p(k) = −grad g(x(k) ) die Winkelbedingung. Das allgemeine Abstiegsverfahren besitzt in der Wahl der Abstiegsrichtung p(k) und der Schrittweite tk große Variabilit¨ at. Ist p(k) eine Abstiegsrichtung, dann gilt wegen g(x(k) + t p(k) ) − g(x(k) ) = t (p(k) )T grad g(x(k) ) + O(t2 ),

t → 0,

daß g(x(k) + t p(k) ) < g(x(k) ) f¨ ur hinreichend kleine t > 0 sein muß. Somit stellt x(k) + t p(k) eine Verbesserung gegen¨ uber x(k) dar. Jedoch muß dies nicht zwangsl¨aufig zur Konvergenz des Abstiegsverfahrens in ein lokales Minimum f¨ uhren (gew¨ahlte Schrittweiten k¨ onnen zu klein sein). Dies ist der Grund, warum man nur sogenannte effiziente Schrittweiten in Betracht zieht. Sind L(g, y) ≡ {x ∈ Rn : g(x) ≤ y} die Niveau-Menge von g und y ∈ Rn sowie p ∈ Rn eine Abstiegsrichtung, dann heißt eine Schrittweite t effizient, falls  T 2 p grad g(x) g(x + t p) ≤ g(x) − CE kpk2

5.5 Nichtlineares Ausgleichsproblem

295

f¨ ur alle x ∈ L(g, g(x(0) )) mit einer von x und p unabh¨angigen Konstanten CE gilt. Eine einfach zu implementierende Schrittweitenregel, die zu einer effizienten Schrittweite f¨ uhrt, basiert auf der Armijo-Goldstein-Bedingung. Es seien µ ∈ (0, 1) und ν > 0 zwei von x und p unabh¨ angige Konstanten, so daß die sogenannte Armijo-GoldsteinBedingung g(x(k) + tk p(k) ) − g(x(k) ) ≤ µ tk (p(k) )T grad g(x(k) ) (5.63) erf¨ ullt ist. Die linke Seite von (5.63) konvergiert gegen Null, so daß lim tk (p(k) )T grad g(x(k) ) = 0

k→∞

gilt. Des weiteren m¨ oge eine Mindestschrittweite durch die Beziehung (p(k) )T grad g(x(k) ) kp(k) k22

tk ≥ −ν

(5.64)

festgelegt sein. Dann gilt g(x

(k)

(k)

+ tk p

) ≤ g(x

(k)

= g(x

(k)

(p(k) )T grad g(x(k) ) ) + µ −ν kp(k) k22 

 ) − µν

(p(k) )T grad g(x(k) ) kp(k) k22



(p(k) )T grad g(x(k) )

2 .

Somit ist in diesem Falle CE = µ ν. Um nun zu einer vorgegebenen Abstiegsrichtung p eine Schrittweite zu bestimmen, kann die Armijo-Goldstein-Bedingung wie im Algorithmus 5.2 angegeben, verwendet werden. Dazu seien µ ∈ (0, 1), x ∈ L(g, g(x(0) ) und p eine Abstiegsrichtung in x. Des weiteren m¨ ogen α und β zwei Konstanten sein, mit 0 < α  β. Zur speziellen Wahl dieser Konstanten gibt es in der Literatur verschiedene Vorschl¨age. So werden von Spellucci1 die folgenden Werte angegeben: µ = 10−2 , α = 10−4 und β = 104 . Im Satz 5.9 sind Bedingungen angegeben, f¨ ur die die Armijo-Goldstein-Suche in endlich vielen Iterationen zu einer Schrittweite t f¨ uhrt, f¨ ur die die Bedingungen (5.63) und (5.64) erf¨ ullt sind. Satz 5.9. Zu einem vorgegebenen x(0) ∈ Rn sei die Niveaumenge L(g, g(x(0) ) kompakt. Die Ableitung g 0 m¨ oge auf L(g, g(x(0) )) existieren und dort Lipschitz-stetig sein. F¨ ur (0) x ∈ L(g, g(x )) und p ∈ Rn mit grad g(x)T p < 0 f¨ uhrt der Algorithmus 5.2 nach endlich vielen Iterationen zu einer Schrittweite t, mit der (5.63) und (5.64) erf¨ ullt sind. Beweis: Siehe die Monografie von W. Alt2 . 1



Siehe z.B. die Monografie von P. Spellucci: Numerische Verfahren der nichtlinearen Optimierung. Birkh¨ auser Verlag, Basel 1993 2 W. Alt: Nichtlineare Optimierung. Friedr. Vieweg & Sohn Verlagsgesellschaft, Braunschweig und Wiesbaden 2002

296

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Armijo-Goldstein-Suche 1. Schritt: Setze j := 0 und w¨ahle einen Startwert |grad g(x)T p| kpk22 j 2. Schritt: Berechne t(j) := (1/2) t0 ; t0 ∈ [α, β]

3. Schritt: Gilt g(x + t(j)p) − g(x) ≤ µ t(j) grad g(x)T p, dann setze t := t(j)

und stoppe das Verfahren;

4. Schritt: Setze j := j + 1 und gehe zu Schritt 2.

Algorithmus 5.2: Armijo-Goldstein-Suche

Eine andere h¨ aufig verwendete Schrittweitenstrategie ist die Wolfe 1 -Powell 2 -Liniensuche. Hier versucht man eine Schrittweite tk zu bestimmen, f¨ ur die die beiden Bedingungen g(x(k) + tk p(k) ) − g(x(k) ) ≤ µ tk (p(k) )T grad g(x(k) ) (5.65) und (p(k) )T grad g(x(k) + tk p(k) ) ≥ ν (d(k) )T grad g(x(k) )

(5.66)

mit µ ∈ (0, 1/2) und ν ∈ (α, 1] erf¨ ullt sind. Die Bedingung (5.65) entspricht der Forderung (5.63) und soll ebenfalls eine hinreichend große Reduktion der Zielfunktion garantieren. Mit (5.66) wird analog zu (5.64) eine Mindestschrittweite abgesichert. Eine algorithmische Umsetzung der Wolfe-Powell-Liniensuche sowie zugeh¨orige Konvergenzresultate findet man ebenfalls in der Monografie von W. Alt3 .

5.5.4

Levenberg-Marquardt-Verfahren

Zum Abschluß wollen wir noch einmal auf das im Abschnitt 5.5.2 dargestellte GaußNewton-Verfahren zur¨ uckkommen. Wie bereits bemerkt, besteht ein Nachteil dieses Verfahrens darin, daß die Bestimmung der Abstiegsrichtung p(k) problematisch wird 1

Philip Wolfe (geb. 1927), US-amerikanischer Mathematiker. Ihm wurde im Jahre 1992 der renommierte John von Neumann Theory Prize (Operations Research Society of America and The Institute for Management Sciences) verliehen. 2 Michael James David Powell (geb. 1936), englischer Mathematiker. Im Jahre 1982 erhielt er den Dantzig Prize (Mathematical Optimization Society) und 1999 den Senior-Whitehead-Preis (London Mathematical Society). 3 W. Alt: Nichtlineare Optimierung. Friedr. Vieweg & Sohn Verlagsgesellschaft, Braunschweig und Wiesbaden 2002

5.5 Nichtlineares Ausgleichsproblem

297

wenn J(x(k) ) keinen maximalen Rang besitzt oder aber bei vollem Rang schlecht konditioniert ist. In beiden F¨ allen ist dann J(x(k) )T J(x(k) ) nicht mehr positiv definit. Einen Ausweg bietet in diesem Falle die Anwendung der Trust-Region-Strategie, die zu dem Levenberg 1 -Marquardt 2 -Verfahren f¨ uhrt. Die Abstiegsverfahren als auch die TrustRegion-Verfahren erzwingen in jedem Iterationsschritt die Abstiegsbedingung g(x(k+1) ) < g(x(k) ), indem die Richtung und die L¨ ange des Schrittes entsprechend gesteuert wird. Jedoch wird bei den Abstiegsverfahren zuerst die Abstiegsrichtung und dann der jeweilige Abstand bestimmt, w¨ ahrend die Trust-Region-Strategien zuerst den maximalen Abstand festlegen und dann erst die geeignete Richtung. Die Grundlage jedes Trust-Region-Verfahrens ist ein Modell“ mk (p), das im k-ten ” Iterationsschritt die Funktion g(x) in einer Umgebung der Iterierten x(k) hinreichend ¨ gut approximiert. Ublicherweise wird den Betrachtungen ein quadratisches Modell 1 mk (p) = g(x(k) ) + grad g(x(k) )T p + pT B(x(k) )p 2

(5.67)

zugrunde gelegt. Dabei setzen die Trust-Verfahren vom Newton-Typ B(x(k) ) ≡ H(x(k) ). Der Approximation (5.67) wird nur in einem beschr¨ankten Gebiet (engl. trust region) um die aktuelle Iterierte x(k) , das durch die Beziehung kpk2 ≤ 4k definiert ist, vertraut. Dies beschr¨ ankt die L¨ ange des Schrittes von x(k) nach x(k+1) . Der Wert 4k wird nun vergr¨ oßert, wenn man feststellt, daß sich das Modell in guter ¨ Ubereinstimmung mit der Zielfunktion befindet und verkleinert, falls das Modell eine schlechte Approximation darstellt. Im k-ten Iterationsschritt ist die Optimierungsaufgabe 1 min mk (p) = g(x(k) ) + grad g(x(k) )T p + pT B(x(k) )p p 2

(5.68)

unter der Nebenbedingung kpk2 ≤ 4k zu l¨ osen. Es kann nun die folgende Aussage gezeigt werden. Satz 5.10. Ein Vektor p∗ ∈ Rn mit kp∗ k2 ≤ 4k ist genau dann globale L¨ osung von (5.68), wenn es ein λ ≥ 0 mit  • B(x(k) ) + λI p = −grad g(x(k) ), 1

Kenneth Levenberg (1919–1973), US-amerikanischer Mathematiker. Im Jahre 1943 schlug er einen Algorithmus f¨ ur die nichtlineare Kleinste-Quadrate-Approximation vor. Er entwickelte ein mathematisches Modell, das von der Boeing Aircraft Co. bei der Konstruktion des Passagierflugzeugs Boeing 737 verwendet wurde. 2 Donald W. Marquardt (1929–1997), US-amerikanischer Mathematiker und Statistiker

298

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

• λ(4k − kp∗ k2 ) = 0, d.h. kp∗ k2 = 4k , wenn λ > 0 ist,  • B(x(k) ) + λI ist positiv semidefinit  gibt. Ist B(x(k) ) + λI positiv definit, dann ist p∗ die eindeutige L¨ osung von (5.68). Beweis: Siehe zum Beispiel die Monografien von W. Alt1 und C.T. Kelley2 .



Hat man B(x(k) ) = H(x(k) ) gew¨ ahlt und ist diese Matrix positiv definit und 4k hinreichend groß, dann ist die L¨ osung von (5.68) auch die L¨osung von H(x(k) ) p = −grad g(x(k) ), d.h. p∗ stellt eine Newton-Richtung dar. Anderenfalls ist  −1 4k ≥ kp(k) k2 ≡ k H(x(k) ) + λI grad g(x(k) )k2 . F¨ ur 4k → 0 ergibt sich daraus 1 λ → ∞ und p(k) → − grad g(x(k) ). λ Wenn λ zwischen 0 und ∞ variiert, wird sich somit die zugeh¨orige Abstiegsrichtung p(k) zwischen der Newton-Richtung und einem Vielfachen des negativen Gradienten bewegen. Um die Gr¨ oße 4k des Vertrauensbereichs adaptiv steuern zu k¨onnen, definiert man das Reduktionsverh¨ altnis ρk zu   g(x(k) ) − g(x(k) + p(k) ) aktuelle Reduktion = . (5.69) ρk ≡ gesch¨atzte Reduktion g(x(k) ) − mk (p(k) ) Ist ρk groß, zum Beispiel ρk > 3/4, dann wird 4k im n¨achsten Iterationsschritt vergr¨ oßert. Ist andererseits ρk klein, zum Beispiel ρk < 1/4, dann wird 4k im folgenden Schritt verkleinert. Jedoch wird p(k) nur akzeptiert, wenn ρk nicht zu klein ist. Eine m¨ ogliche Variante der Trust-Region-Strategie ist im Algorithmus 5.3 angegeben. An dieser Stelle wird jedoch auf ein Abbruchkriterium verzichtet, da am Ende dieses Abschnittes einige Bemerkungen dazu folgen. Beispiel 5.2. Gegeben sei die nichtrestringierte Optimierungsaufgabe Bestimme das Minimum der Funktion: g(x1 , x2 ) = 4x31 + 6x21 + 36x1 + 4x32 + 24x2 . 1

(5.70)

W. Alt: Nichtlineare Optimierung. Friedr. Vieweg & Sohn Verlagsgesellschaft, Braunschweig und Wiesbaden 2002 2 C. T. Kelley: Iterative Methods for Optimization, SIAM, Philadelphia 1999

5.5 Nichtlineares Ausgleichsproblem

299

Trust-Region-Verfahren Startapproximation x(1) , minimale Schrittl¨ange 4max , Anfangsradius 41 ∈ (0, 4max ] des Vertrauensbereiches, Konstante α ∈ [0, 1/4];

Input:

k = 1; while spezielles Abbruch-Kriterium nicht erf¨ ullt Bestimme die L¨ osung p(k) der restringierten Optimierungsaufgabe 1 minp mk (p) = g(x(k) ) + grad g(x(k) )T p + pT B(x(k) )p, 2 kpk2 ≤ 4k ; Berechne das Reduktionsverh¨ altnis ρk ≡

g(x(k) ) − g(x(k) + p(k) ) ; mk (0) − mk (p(k) )

Aktualisierung von x(k) : 1 if ρk < then x(k+1) = x(k) 4 else x(k+1) = x(k) + p(k)

(Schritt nicht erfolgreich)

(Schritt erfolgreich);

Aktualisierung von 4k : 1 1 if ρk < then 4k+1 = 4k ; 4 4 if ρk > if

3 and kp(k) k2 = 4k then 4k+1 = min (24k , 4max ) ; 4

1 3 ≤ ρk ≤ then 4k+1 = 4k ; 4 4

k = k + 1; end

Algorithmus 5.3: Ein allgemeines Trust-Region-Verfahren

Die Startapproximation sei x(1) = (2, 1)T , der Anfangsradius des Vertrauensbereiches 41 = 1 und B(x(k) ) = H(x(k) ).

300

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Man berechnet g(x

(1)

) = 156,

H(x) =

12x21 + 12x1 + 36

grad g(x) = 0

0

24x2

,

12x22 + 24

!

24x1 + 12

!

,

H(x

(1)

)=

grad g(x

(1)

108 )=

36

! ,

!

60

0

0

24

.

F¨ ur die Newton-Richtung ergibt sich

p(N ) = −H(x(1) )−1 grad g(x(1) ) = −

!−1

60

0

0

24

108

!

36

 108 ! 1.8  60  = − =− . 36  1.5 24 

Da kp(N ) k2 = 2.3431 > 1, kann die Newton-Richtung nicht verwendet werden. Im ersten Trust-Region-Schritt ist nun ein λ so zu bestimmen, daß kpk2 = 1 gilt, wobei p die L¨ osung der folgenden Gleichung ist ! ! ! 60 + λ 0 p1 108 =− . 0 24 + λ p2 36 Als L¨ osung ergibt sich unmittelbar p1 = −

108 , 60 + λ

Damit ist kpk22 =



p2 = −

108 60 + λ

2

2



 +

36 . 24 + λ

36 24 + λ

2 ,

d.h. λ muß die Beziehung 

108 60 + λ

+

36 24 + λ

2 =1

(5.71)

erf¨ ullen. Dies ist eine nichtlineare skalare Gleichung f¨ ur λ. Die nachfolgenden Berechnungen wurden mit doppelter Genauigkeit (d.h. in der Menge R(2,53,1021,1024)) durchgef¨ uhrt und die Zwischenresultate auf 6 Stellen gerundet. Der Aufruf [x,i,ind] = sekante(45,32,1e-6,1e-6,50) des Sekantenverfahrens (siehe Programm 4.3) zur Berechnung einer Nullstelle der Gleichung (5.71) f¨ uhrt in 4 Iterationsschritten zu der numerischen L¨osung λ ≈ 59.6478. Mit

5.5 Nichtlineares Ausgleichsproblem

301

diesem Wert ergibt sich p(1) = (−0.902649, −0.430376)T . Weiter erh¨alt man  T 1  (1) T m1 (p(1) ) = g(x(1) ) + p(1) grad g(x(1) ) + p H(x(1) )p(1) 2 = 156 − 112.980 + 26.6659 = 69.6859. Nun ist x

(2)

=x

(1)

(1)

+p

1.09735 =

0.569624

! ,

so daß sich der zugeh¨ orige Funktionswert zu g(x(2) ) = 66.4256 berechnet. Das Verh¨altnis zwischen aktueller und gesch¨ atzter Reduktion ist ρ1 =

g(x(1) ) − g(x(2) ) 156 − 66.4256 = = 1.03777. (1) (1) 156 − 69.6859 g(x ) − m1 (p )

Im Algorithmus 5.3 ist die Bedingung ρ1 ≥ 1/4 erf¨ ullt, so daß ein erfolgreicher Schritt vorliegt. F¨ ur den Radius des Vertrauensbereiches ergibt sich schließlich der neue Wert 42 = 241 = 2. Damit ist der erste Iterationsschritt des Trust-Region-Verfahrens abgeschlossen.  Der erste Trust-Region-Algorithmus wurde von K. Levenberg1 und D. W. Marquardt2 entwickelt. Im urspr¨ unglichen Algorithmus wird B(x(k) ) ≡ J(x(k) )T J(x(k) ) gesetzt und die Gleichung   B(x(k) ) + λk I p = −grad g(x(k) ) f¨ ur unterschiedliche Werte von λk gel¨ ost. Eine Strategie besteht zum Beispiel darin, λk+1 = 1/10 λk zu setzen, wenn das mit λk berechnete p zu einer hinreichend guten Reduktion f¨ uhrt. Anderenfalls wird λk+1 = 10 λk gesetzt und der Schritt wiederholt. Das Levenberg-Marquardt-Verfahren l¨ aßt sich aber auch als ein Trust-Region- Verfahren realisieren. Diese Idee geht auf J. J. Mor´e3 zur¨ uck. Hierzu wendet man die TrustRegion-Strategie auf das Problem (5.45) an und ersetzt g 00 (x) durch J(x)T J(x). Im k-ten Iterationsschritt hat man entsprechend (5.68) die Optimierungsaufgabe h iT 1 min mk (p) = g(x(k) ) + J(x(k) )T F (x(k) ) p + pT J(x(k) )T J(x(k) )p (5.72) p 2 unter der Nebenbedingung kpk2 ≤ 4k zu l¨ osen. Es kann leicht gezeigt werden, daß dieses Problem a quivalent zu dem Problem ¨ 1 min kF (x(k) ) + J(x(k) )pk22 , p 2 1

kpk2 ≤ 4k ,

(5.73)

K. Levenberg: A method for the solution of certain problems in least squares. Quarterly of Applied Mathematics 2(1944), pp. 164–168 2 D. W. Marquardt: An algorithm for least-squares estimation of nonlinear parameters. SIAM Journal on Applied Mathematics 11(1963), pp. 431–441 3 J. J. Mor´ e: The Levenberg-Marquardt algorithm: implementation and theory, in: Numerical Analysis, G. A. Watson, Hrsg., Lecture Notes in Mathematics 630, Springer Verlag, Berlin, 1977, pp. 105–116

302

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

ist. Das Problem (5.73) ist identisch mit dem linearen Quadratmittelproblem (5.47), das beim Gauß-Newton-Verfahren (siehe Abschnitt 5.5.2) zu l¨osen ist, jedoch hier unter der Restriktion kpk2 ≤ 4k . In den Algorithmen 5.1 und 5.3 wurde auf die spezielle Angabe geeigneter Abbruchkriterien verzichtet. Wir wollen dies hier nachholen. Dabei beziehen wir uns auf Vorschl¨age von P. E. Gill, W. Murray und M. H. Wright1 . Es sei TOL ≤ 10−r

(r etwa die Anzahl der gew¨ unschten geltenden Dezimalstellen),

eine vom Anwender vorzugebende relative Genauigkeitsschranke. Damit TOL nicht zu klein ist, m¨ oge auf alle F¨ alle TOL ≥ ν gelten, wobei wie bisher ν die relative Maschinengenauigkeit bezeichnet. Ein Problem gilt nun im numerischen Sinne als erfolgreich behandelt, wenn die folgenden drei Kriterien erf¨ ullt sind:   Test 1: |g(x(k) ) − g(x(k−1) )| ≤ TOL 1 + |g(x(k) )| , Test 2: Test 3:

kx(k) − x(k−1) k2 ≤ kgrad g(x(k) )k2 ≤



√ 3

  TOL 1 + kx(k) k2 , 

(5.74)



TOL 1 + |g(x(k) )| .

Deshalb kann ein Algorithmus abgebrochen werden, wenn alle drei Tests positiv beantwortet werden. Die Verwendung der Quadratwurzel im Test 2 nimmt Bezug auf eine Taylor-Entwicklung in der Umgebung des L¨ osungspunktes:   g(x(k−1) ) ≈ g(x(k) ) + O kx(k−1) − x(k) k22 . Die kubische Wurzel im Test 3 stellt eine Abschw¨achung gegen¨ uber der theoretisch begr¨ undbaren Quadratwurzel dar. Nach Gill et al. w¨are die Verwendung der Quadratwurzel zu restriktiv. Neben den eigentlichen Abbruchkriterien (Test 1 - Test 3) sollte eine Implementierung jedoch noch weitere Tests enthalten, die die Endlichkeit des Algorithmus garantieren (siehe auch Kapitel 1). M¨ ogliche Varianten sind: Test 4:

kgrad g(x(k) )k2 ≤ ν,

Test 5:

k ≥ kmax ,

(5.75) wobei kmax die vom Anwender vorzugebende maximale Anzahl der Iterationsschritte bezeichnet.

5.6

Deflationstechniken

Nichtlineare Probleme besitzen oftmals mehrere (isolierte) L¨osungen. Wurde mit den bisher dargestellten numerischen Techniken bereits eine solche L¨osung x1∗ approximiert, 1

P. E. Gill, W. Murray and M. H. Wright: Practical Optimization, Academic Press, New York, 1981

5.6 Deflationstechniken

303

dann ist man h¨ aufig an der Berechnung weiterer L¨osungen x2∗ , . . . , xm∗ interessiert. Wir wollen abschließend eine Technik beschreiben, mit der sich dieses Vorhaben realisieren l¨ aßt. Sie wurde von K. M. Brown und W. B. Gearhart1 entwickelt und wird Deflationstechnik genannt. Es sei r ∈ Rn ein gegebener Vektor. Wir wollen mit Sr ⊂ Rn eine offene Menge bezeichnen, deren Abschließung den Vektor r enth¨ alt. Definition 5.3. Eine f¨ ur alle x ∈ Sx∗ definierte Matrix M (x; x∗ ) ∈ Rn×n heißt Deflationsmatrix, falls f¨ ur jede differenzierbare Funktion F : Rn → Rn mit F (x∗ ) = 0 und nichtsingul¨ arem J(x∗ ) die Beziehung lim inf kM (x(i) ; x∗ ) F (x(i) )k > 0

i→∞

(5.76)

∗ gilt, wobei {x(i) }∞ i=0 eine beliebige Folge ist, die gegen x konvergiert und deren Folgenelemente in Sx∗ liegen. 

Die Deflationsmatrizen besitzen eine wichtige Eigenschaft. Jede gegen eine einfache (isolierte) Nullstelle x∗ von (5.2) konvergente Folge {x(i) }∞ i=0 erzeugt im Sinne von (5.76) keine Nullstelle der wie folgt abge¨ anderten Funktion F˜ (x) ≡ M (x; x∗ ) F (x).

(5.77)

Man sagt, daß die Funktion F˜ aus F durch Abdividieren von x∗ entsteht. Um m einfache Nullstellen x1∗ , . . . , xm∗ abzudividieren, hat man entsprechend die Funktion F˜ ≡ M (x; x1∗ ) · · · M (x; xm∗ ) F (x)

(5.78)

zu konstruieren. Definition 5.4. Eine Matrix M (x; r) wird genau dann dominant genannt, wenn f¨ ur (i) jedes r ∈ Rn und jede Folge {x(i) }∞ → r, x ∈ S , gilt: r i=0 (i) Ist f¨ ur eine Folge {u(i) }∞ ∈ Rn , der Grenzwert i=0 , u lim kx(i) − rk M (x(i) ; r) u(i) = 0,

i→∞

dann folgt unmittelbar lim u(i) = 0. i→∞



Der folgende Satz ist f¨ ur die Konstruktion von Deflationsmatrizen von Bedeutung. Satz 5.11. Ist die Matrix M (x; x∗ ) ∈ Rn×n dominant, dann handelt es sich um eine Deflationsmatrix. 1

K. M. Brown and W. B. Gearhart: Deflation techniques for the calculation of further solutions of nonliner systems. Numerische Mathematik 16 (1971), pp. 334–342

304

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Beweis: Siehe die Arbeit von K. M. Brown und W. B. Gearhart1 .



Wir wollen nun 2 Klassen von Deflationstechniken f¨ ur nichtlineare Gleichungssysteme untersuchen. Auf der Grundlage von Satz 5.11 ist es relativ einfach nachzuweisen, daß die zu diesen Klassen geh¨ orenden Matrizen auch tats¨achlich Deflationsmatrizen sind. Bei der ersten Verfahrensklasse handelt es sich um die Normdeflation. Sie ist durch Matrizen vom Typ M (x; xi∗ ) ≡

1 A kx − xi∗ k

(5.79)

charakterisiert, wobei k · k eine beliebige Vektornorm und A ∈ Rn×n eine nichtsingul¨are Matrix bezeichnen. Als Definitionsgebiet der zugeh¨origen modifizierten Funktion (5.78) kann jetzt i∗ Rn − ∪ m i=1 {x } verwendet werden. Es liegt nahe, bei praktischen Problemen das Abdividieren von Nullstellen mit A = I, d.h. mit der Einheitsmatrix zu versuchen. F¨ uhrt dies zu keinen akzeptablen Resultaten, dann sollte man eventuell eine andere nichtsingul¨are Matrix w¨ ahlen. Die zweite Verfahrensklasse ist die Skalarproduktdeflation. Hier werden in (5.78) als Deflationsmatrizen M (x; xi∗ ) Diagonalmatrizen verwendet, deren j-tes Diagonalelement durch mjj ≡

1 T aij

(5.80)

(x − xi∗ )

gegeben ist, wobei ai1 , . . . , ain nichtverschwindende Vektoren sind mit i = 1, . . . , m. Setzt man T C(aj ) ≡ {y ∈ Rn : aij y = 0, i = 1, . . . , m}, dann ist das Definitionsgebiet f¨ ur (5.78) n i i∗ Rn − ∪ m i=1 ∪j=1 [C(aj ) + {x }].

Werden die Vektoren aij in der Form aij ≡ grad fj |x=xi∗

(5.81)

verwendet, dann ergibt sich daraus die sogenannte Gradientendeflation. Diese spezielle Deflationsform hat sich in der Praxis bei der Anwendung des Newton-Verfahrens zur 1

K. M. Brown and W. B. Gearhart: Deflation techniques for the calculation of further solutions of nonliner systems. Numerische Mathematik 16 (1971), pp. 334–342

5.6 Deflationstechniken

305

numerischen Bestimmung von Nullstellen der Gleichung F˜ (x) = 0 als g¨ unstig erwiesen. Die j-te Komponente von F˜ in (5.78) nimmt bei der Gradientendeflation die Gestalt f˜j (x) = Qm

i=1

fj (x) T

(grad fj (xi∗ )) (x − xi∗ )

(5.82)

an. Man sollte bei der praktischen Realisierung von (5.82) jedoch f¨ ur den Gradienten eine Differenzenapproximation ∂ f˜i f˜i (x + he(j) ) − f˜i (x) ≈ ∂xj h verwenden, um unn¨ otige analytische Vorarbeit zu vermeiden. Bisher wurden die Deflationstechniken nur unter dem Gesichtspunkt betrachtet, daß eine einfache (isolierte) Nullstelle abzudividieren ist. Wir wollen jetzt auch mehrfache (isolierte) Nullstellen zulassen. Zur Vereinfachung der Darstellung m¨oge F unendlich oft differenzierbar sein. Mit F (k) werde die k-te Fr´echet-Ableitung von F bezeichnet. Definition 5.5. Existiert ein Einheitsvektor v ∈ Rn mit F (k) (r)v k = 0 f¨ ur alle k = 1, 2, . . . , dann wird F an der Stelle x = r flach genannt.



Die Bedeutung dieser Definition wird klar, wenn man den skalaren Fall betrachtet. Es sei f : R → R eine skalare nichtlineare Funktion mit einer Nullstelle x∗ . Ist nun f an der Stelle x = x∗ nicht flach, dann kann man recht einfach zeigen, daß eine ganze Zahl k 1 existiert, so daß die abge¨ anderte Funktion f˜(x) ≡ f (x) keine Nullstelle mehr (x − x∗ )k ∗ in x = x besitzt. F¨ ur die numerischen Berechnungen ist es deshalb nicht erforderlich, die Vielfachheit einer gegebenen Nullstelle zu kennen, um die abge¨anderte Funktion zu konstruieren. Vielmehr dividiert man nach der Berechnung von x∗ fortgesetzt durch (x−x∗ ). Immer, wenn diese Nullstelle durch das Iterationsverfahren noch einmal erzeugt wird, dividiert man wieder durch (x − x∗ ). Falls f nicht flach in x = x∗ ist, wird man schließlich bei einer abge¨ anderten Funktion angelangen, die diese Nullstelle x∗ nicht mehr besitzt. F¨ ur den mehrdimensionalen Fall gilt entsprechend der folgende Satz. Satz 5.12. Es werde vorausgesetzt, daß F : Rn → Rn unendlich oft differenzierbar ist und F (x∗ ) = 0 gilt. M (x; x∗ ) ∈ Rn×n sei eine dominante Matrix (insbesondere ist M dann eine Deflationsmatrix). Falls F an der Stelle x = x∗ nicht flach ist, existiert eine ganze Zahl K, so daß lim inf kM (x(i) ; x∗ )K F (x(i) )k > 0

i→∞

(5.83)

306

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

∗ (i) f¨ ur jede Folge {x(i) }∞ ∈ Ux∗ gilt. i=0 → x , x

Beweis: Siehe die Arbeit von K. M. Brown und W. B. Gearhart1 .



Aus dem Satz 5.12 folgt, daß man mit einer dominanten Matrix eine mehrfache Nullstelle auf ¨ ahnliche Weise behandeln kann, wie man dies im skalaren Fall mit der Deflation 1/(x − x∗ ) tut. Setzt man zus¨ atzlich noch voraus, daß die Deflationsmatrizen M (x; r) und M (x; s) f¨ ur zwei beliebige Vektoren r, s ∈ Rn kommutieren, dann l¨aßt sich das oben f¨ ur die Deflation 1/(x − x∗ ) in R beschriebene Verfahren direkt auf mehrfache Nullstellen im Rn u ¨bertragen. Offensichtlich besitzen die Matrizen der Normdeflation und der Skalarproduktdeflation diese Eigenschaft. F¨ ur die numerische Umsetzung der Deflationstechnik bietet sich nun die folgende Strategie an: 1) Sind ein nichtlineares Gleichungssystem der Form (5.2) sowie ein Startvektor x(0) gegeben, dann wird eine der bekannten L¨osungstechniken (Newton-Verfahren, Broyden-Verfahren, Brown-Verfahren) verwendet, um eine erste Nullstelle x1∗ zu approximieren. 2) Ausgehend von dem gleichen Startvektor x(0) versucht man auf der Basis einer der Deflationstechniken eine weitere Nullstelle von (5.2) zu berechnen. 3) Wurde im zweiten Schritt eine neue Nullstelle x2∗ gefunden, dann wendet man die Deflationstechnik wiederum an, um eine dritte Nullstelle zu finden. Stets beginnend mit x(0) wird dieser Prozeß solange fortgesetzt, bis a) alle Nullstellen (bzw. die vom Anwender ben¨otigte maximale Anzahl von Nullstellen) gefunden wurde, b) der Prozeß gegen unendlich“ divergiert, ” c) die vom Anwender vorgegebene Schranke f¨ ur die maximale Anzahl von Iterationsschritten u ¨berschritten wurde oder d) die Iterierten sich einer Stelle ann¨ahern, an der die Jacobi-Matrix J(x) von F (x) singul¨ ar wird. 4) L¨ aßt sich keine weitere Nullstelle mehr finden, dann bleiben nur noch folgende M¨ oglichkeiten offen a) Wechsel des Startvektors, b) Wechsel des Iterationsverfahrens oder c) Wechsel der Deflationstechnik. Abschließend wollen wir zur Demonstration ein Beispiel angeben. 1

K. M. Brown and W. B. Gearhart: Deflation techniques for the calculation of further solutions of nonliner systems. Numerische Mathematik 16 (1971), pp. 334–342

5.7 Zur Kondition nichtlinearer Gleichungen

307

Beispiel 5.3. Gegeben sei das folgende nichtlineare Gleichungssystem f1 (x1 , x2 ) ≡ x21 − x2 − 1 = 0,

f2 (x1 , x2 ) ≡ (x1 − 2)2 + (x2 − 0.5)2 − 1 = 0. (5.84)

Zur numerischen Approximation einer ersten L¨osung x1∗ soll das Broyden-Verfahren (siehe Abschnitt 5.3) mit dem Startvektor x(0) ≡ (1.3, 0.8)T angewendet werden. Ruft man das Programm 5.3 unter Verwendung einer Matlab-Funktion F f¨ ur den zugeh¨origen Funktionenvektor sowie der im Programm 5.2 erkl¨arten Matlab-Funktion Fstrich zur Berechnung einer Differenzenapproximation von J(x) mit dem Befehl [x1app,it,ind]=broyden([1.3 0.8]’,1e-10,1e-6,50) auf, dann erh¨ alt man nach it=11 Iterationsschritten die folgende Approximation f¨ ur die erste Nullstelle des Gleichungssystems (5.84): x ˜1∗ = (1.546343, 1.391176)T . Zur Bestimmung einer weiteren Nullstelle x2∗ von F wird nun x ˜1∗ abdividiert. Verwendet man hierzu die Normdeflation mit der zugeh¨origen Deflationsmatrix (5.79) und der 2-Norm k · k2 , dann konvergiert das Broyden-Verfahren (Programm 5.3) unter Verwendung des gleichen Startvektors x(0) in 6 Iterationsschritten gegen die zweite Nullstelle von (5.84): x ˜2∗ = (1.067346, 0.1392277)T . Soll das Abdividieren der ersten Nullstelle mit der Skalarproduktdeflation erfolgen, dann hat man die Vektoren a11 und a12 (siehe Formel (5.81)) zu berechnen. Es ergeben sich:     3.092686 −0.9073142 1 1 a1 = und a2 = . −1 1.782353 Bildet man mit den Vektoren a11 und a12 die Deflationsmatrix (5.80), mit dieser wiederum die modifizierte Funktion (5.77) und wendet auf F˜ (x) = 0 das Broyden-Verfahren (Programm 5.3) mit dem Startvektor x(0) an, dann erh¨alt man nach 7 Iterationsschritten die folgende N¨ aherung f¨ ur die zweite Nullstelle von (5.84): x ˜2∗ = (1.067346, 0.1392276)T . Somit f¨ uhren beide Deflationstechniken in diesem Falle zu der gleichen Approximation f¨ ur die zweite Nullstelle. 

5.7

Zur Kondition nichtlinearer Gleichungen

F¨ ur lineare Systeme (2.2) wurde im Abschnitt 2.5.2 die Konditionszahl (2.107) definiert. Anhand der Formel (2.114) zeigten wir, daß cond(A) die Empfindlichkeit der L¨osung

308

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

x eines linearen Gleichungssystems gegen¨ uber St¨orungen in den Problemdaten A und b beschreibt. Zum Abschluß dieses Kapitels soll der Frage nachgegangen werden, ob sich auch im Falle nichtlinearer Gleichungssysteme eine solche Kenngr¨oße angeben l¨aßt. In der Fachliteratur findet man sehr wenig Hinweise zu dieser Thematik. Nenneswerte Beitr¨ age sind nur in den Arbeiten von W. C. Rheinboldt1 und H. Wo´zniakowski2 enthalten. Wir wollen hier kurz die Ergebnisse des erstgenannten Autors darstellen. Hierzu werde das nichtlineare Gleichungssystem (5.2) in der etwas modifizierten Form F (x) = b,

b ∈ Rn ,

(5.85)

aufgeschrieben. F¨ ur eine vorgegebene Abbildung F : DF ⊂ Rn → Rn und eine zugeh¨ orige Teilmenge C ⊂ D definieren wir die folgenden Gr¨oßen glbC (F ) ≡ sup{α ∈ [0, ∞] : kF (x) − F (y)k ≥ αkx − yk

∀x, y ∈ C},

lubC (F ) ≡ inf{α ∈ [0, ∞] : kF (x) − F (y)k ≤ αkx − yk

∀x, y ∈ C}.

(5.86)

Man beachte, daß in der Definition von lub“ der Wert α = ∞ zugelassen ist. Offen” sichtlich impliziert glbC (F ) > 0 die Eineindeutigkeit von F auf C. Ist F eine affine Abbildung auf C = Rn , d.h., F (x) = Ax − b, und A eine nichtsingul¨are Matrix, dann ergibt sich lubC (F ) = kAk und glbC (F ) = 1/kA−1 k. Dies legt die folgende Definition einer Konditionszahl f¨ ur (5.85) nahe:    lubC (F ) , falls 0 < glb (F ), lubC (F ) < ∞ C glbC (F ) condC (F ) ≡   ∞ sonst.

(5.87)

F¨ ur den nichtsingul¨ aren affinen Fall reduziert sich (5.87) auf die bekannte Konditionszahl (2.107). Es ist nun interessant festzustellen, daß mit (4.75) ein zu (2.114) analoges Resultat f¨ ur das nichtlineare Problem (5.85) gilt. Satz 5.13. F¨ ur F : DF ⊂ Rn → Rn gelte glbC (F ) > 0 auf einer Menge C ⊂ D. Es sei weiter G : DG ⊂ Rn → Rn , C ⊂ DG , eine beliebige Abbildung, die nahe bei F liegt, d.h., die Differenz E : C ⊂ Rn → Rn , E(x) ≡ F (x) − G(x) ∀x ∈ C, erf¨ ulle lubC (E) < glbC (F ).

(5.88)

Existieren nun L¨ osungen x∗ ∈ C von (5.85) und y ∗ ∈ C von G(y) = c, dann sind sie 1

Siehe z.B. W. C. Rheinboldt: On measures of ill-conditioning for nonlinear equations. University of Maryland, Computer Science Center, Tech. Rep. TR-330, 1974 2 Siehe z.B. H. Wo´ zniakowski: Numerical Stability for Solving Nonlinear Equations. Numer. Math. 27 (1977), pp. 373–390

5.7 Zur Kondition nichtlinearer Gleichungen

309

eindeutig. Des weiteren gilt f¨ ur jedes x(0) ∈ C, x(0) 6= x∗ , die Absch¨ atzung kx∗ − y ∗ k ≤ kx∗ − x(0) k

κ lubC (E) 1−κ lubC (F )



 kb − ck lubC (E) kE(x(0) )k + + , kb − F (x(0) )k lubC (F ) kb − F (x(0) )k (5.89)

wobei κ ≡ condC (F ). Beweis: Siehe die Arbeit von W. C. Rheinboldt1 .



Im linearen Fall kann C = Rn und x(0) = 0 gesetzt werden. Die Absch¨atzung (5.89) reduziert sich dann auf (2.107). F¨ ur den obigen Satz mußte die Existenz der beiden L¨ osungen x∗ und y ∗ vorausgesetzt werden, w¨ ahrend sich dies bei Matrizen sofort aus der Eineindeutigkeit der Abbildungen ergibt. Die Absch¨ atzung (5.89) zeigt wie im Falle linearer Gleichungen, daß die Konditionszahl (5.87) eine Kenngr¨ oße f¨ ur die Empfindlichkeit einer L¨osung der Gleichung (5.85) gegen¨ uber kleinen St¨ orungen in den Problemdaten F und b darstellt. Diese Konditionszahl h¨ angt aber auch vom Definitionsgebiet C ab. Offensichtlich gilt condC1 (F ) ≤ condC2 (F ),

falls C1 ⊂ C2 .

(5.90)

Es lassen sich nur relativ wenige Klassen nichtlinearer Abbildungen unmittelbar angeben, f¨ ur die die Konditionszahl bei vorgegebenen Mengen C bekannt ist. Eine solche Klasse stellen die gleichm¨ aßig monotonen, Lipschitz-stetigen Abbildungen dar, die in den Anwendungen recht h¨ aufig anzutreffen sind. Diese Abbildungen erf¨ ullen mit einem β>0 (F (x) − F (y))T (x − y) ≥ βkx − yk22 ,

kF (x) − F (y)k2 ≤ γkx − yk2

∀x, y ∈ D,

so daß man f¨ ur jede Menge C ⊂ D die Beziehung condC (F ) ≤ γ/β erh¨alt. Durch die Ungleichung (5.90) wird man dazu angeregt, das asymptotische Verhalten der Konditionszahl zu untersuchen, wenn sich C zu einem Punkt zusammenzieht. F¨ ur hinreichend glatte Abbildungen F l¨ aßt sich das folgende Resultat zeigen. Satz 5.14. Es seien F : D ⊂ Rn → Rn eine gegebene stetig differenzierbare Abbildung und z ∈ int(D) ein Punkt, f¨ ur den J(z) nichtsingul¨ ar ist. Dann existiert zu jedem hinreichend kleinen ε > 0 eine Konstante δ > 0, so daß die abgeschlossene Kugel Bδ ≡ {x : kx − zk ≤ δ} in D liegt und die folgenden Ungleichungen erf¨ ullt sind |lubBδ (F ) − kJ(z)k| ≤ ε, 1

glbB (F ) − kJ(z)−1 k−1 ≤ ε. δ

(5.91)

W. C. Rheinboldt: On measures of ill-conditioning for nonlinear equations. University of Maryland, Computer Science Center, Tech. Rep. TR-330, 1974

310

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Beweis: Siehe die Arbeit von W. C. Rheinboldt1 . Die Formel (5.91) impliziert nun condBδ(ε) (F ) − cond(J(z)) = O(ε) cond(J(z))



f¨ ur ε → 0.

(5.92)

Somit stimmt im Punkt z (d.h. lokal) die Konditionszahl der Abbildung F mit der Konditionszahl der Jacobi-Matrix J(z) u uhrt zu dem wichtigen ¨berein. Dies wiederum f¨ Resultat: Ist in einer L¨ osung x∗ von F (x) = b die Jacobi-Matrix J(x∗ ) schlecht konditioniert (aber nichtsingul¨ ar), dann kann erwartet werden, daß kleine St¨orungen von F und b diese L¨ osung x∗ signifikant ver¨ andern. Die obige Aussage best¨ atigt sich in fast allen numerischen Rechnungen. Der Satz 5.14 liefert die notwendige theoretische Begr¨ undung daf¨ ur.

5.8

Aufgaben

Aufgabe 5.1. Gegeben sei das nichtlineare Gleichungssystem     x − 0.1x21 − sin x2 0 F (x) ≡ 1 = . x2 − cos x1 − 0.1x22 0 1) Zur L¨ osung werde das Verfahren x(k+1) = G(x(k) ) betrachtet, mit   0.8 −0.6 −1 G(x) ≡ x − B F (x), B≡ 0.6 0.8 und dem Startvektor x(0) = (0.75, 0.75)T . Durch Anwendung der S¨atze 5.1 und 5.2 zeige man die Konvergenz dieses Verfahrens und gebe eine a priori Fehlerabsch¨ atzung an. Als zugrundeliegende Norm w¨ahle man die Maximumnorm. 2) Zur L¨ osung des Systems wende man das Newton-Verfahren mit den zwei verschiedenen Startvektoren x(0) = (0.75, 0.75)T und x(0) = (10, 10)T an. 3) Als weitere L¨ osungstechnik verwende man das Broyden-Verfahren mit     0.75 0.8 −0.6 x(0) = , J(x(0) ) ≈ J0 = . 0.75 0.6 0.8 1

W. C. Rheinboldt: On measures of ill-conditioning for nonlinear equations. University of Maryland, Computer Science Center, Tech. Rep. TR-330, 1974

5.8 Aufgaben

311

Aufgabe 5.2. Das mehrdimensionale Newton-Verfahren kann wie folgt zur Berechnung der Inversen einer nichtsingul¨ aren Matrix A ∈ Rn×n verwendet werden. Definiert n×n n×n man die Funktion F : R →R durch F (X) = I − AX, wobei X ∈ Rn×n gilt, dann ist F (X) = 0 genau dann, wenn X = A−1 ist. Da sich die Jacobi-Matrix von F (X) zu J(X) = −A bestimmt, nimmt das Newton-Verfahren hier die Form   X (k) = X (k−1) − J(X (k−1) )−1 F (X (k−1) ) = X (k−1) + A−1 I − AX (k−1) an. Nun ist aber A−1 die zu bestimmende Gr¨ oße, so daß es sich anbietet, in der obigen Formel die aktuelle Approximation X (k−1) von A−1 zu verwenden. Es resultiert dann die Iterationsvorschrift   X (k) = X (k−1) + X (k−1) I − AX (k−1) . 1) F¨ ur die Residuen-Matrix R(k−1) ≡ I − AX (k−1) und die Fehler-Matrix E (k−1) ≡ A−1 − X (k−1) zeige man, daß R(k) = (R(k−1) )2

und E (k) = E (k−1) AE (k−1)

gilt. Folglich liegt quadratische Konvergenz vor. 2) Man schreibe ein Matlab-Programm, mit dem sich die Inverse einer vorgegebenen Matrix A unter Ausnutzung der obigen Formel berechnen l¨aßt. Ein geeigneter Startwert ist dabei 1 X (0) = AT . kAk1 · kAk∞ Man teste das Programm an einigen zuf¨ allig ausgew¨ahlten Matrizen und vergleiche die Genauigkeit sowie die Effizienz dieser Strategie mit den konventionellen numerischen Verfahren zur Bestimmung der Inversen einer Matrix, wie z.B. der LU -Faktorisierung (siehe hierzu auch Abschnitt 2.3). Aufgabe 5.3. Die folgenden nichtlinearen Systeme besitzen in der L¨osung singul¨are Jacobi-Matrizen. L¨ aßt sich trotzdem das Broyden-Verfahren anwenden? Wie wird hierdurch die Konvergenzgeschwindigkeit beeinflußt? 1)

3x1 − cos (x2 x3 ) = 0.5,

2) x1 − 10x2 = −9,



x21 − 625x22 = 0,

3(x3 − x4 ) = 0,

e−x1 x2 + 20x3 =

(x2 − 2x3 + 1)2 = 0,

3 − 10π ; 3 √

2(x1 − x4 )2 = 0.

312

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Aufgabe 5.4. Gegeben sei das Gleichungssystem x1 + x2 = 2,

16 x16 1 + x2 = 3.

64 Man berechne x64 1 + x2 auf 6 Dezimalstellen genau.

Aufgabe 5.5. 1) Gegeben sei das Gleichungssystem x1 + x2 = 3,

x21 + x22 = 9.

Man f¨ uhre zwei Iterationsschritte mit dem Broyden-Verfahren aus. Der Startvektor sei x(0) = (2, 7)T . √ 2) Man setze die Iteration aus (1) fort, bis kx(k+1) − x(k) k ≤ mach ist. Wie sieht ∗ die Endmatrix Jk aus und wie gut stimmt sie mit J(x ), x∗ exakte L¨osung des Systems, u ¨berein? Aufgabe 5.6. Man zeige, daß die Bedingungen (5.21) und (5.22) die Matrix J1 eindeutig definieren und daß diese sich in der Form (5.23) angeben l¨aßt. Aufgabe 5.7. Gegeben sei das nichtlineare Gleichungssystem F (x) = 0 sowie eine Startapproximation x = x(0) . Definiert man G(x, t) ≡ F (x) − e−t F (x(0) ),

0 ≤ t < ∞,

dann ist G(x(0) , 0) = 0 und G(x, t) → F (x) f¨ ur t → ∞. 1) Man zeige: ist x(t) die L¨ osung von G(x(t), t) = 0, dann erf¨ ullt x(t) auch das Anfangswertproblem f¨ ur ein System von n Differentialgleichungen 1. Ordnung J(x)

dx = −F (x), dt

x(0) = x(0) ,

0 ≤ t < ∞,

wobei J(x) wieder die Jacobi-Matrix von F (x) bezeichnet. (b) Man zeige: Die Anwendung des Newton-Verfahrens auf das System F (x) = 0 ist aquivalent der L¨ osung des obigen Anfangswertproblems mit dem Euler(vorw¨arts)¨ Verfahren1 unter Verwendung der Schrittweite h = 1. Aufgabe 5.8. Unter Verwendung des Newton-Verfahrens und der Deflationstechnik versuche man, alle 9 L¨ osungen des folgenden Gleichungssystems zu berechnen: 7x3 − 10x − y − 1 = 0,

8y 3 − 11y + x − 1 = 0.

Der Startvektor sei x(0) = (0, 0)T . 1

Zum Euler-Verfahren siehe zum Beispiel M. Hermann: Numerik gew¨ ohnlicher Differentialgleichungen. Anfangs- und Randwertprobleme. Oldenbourg Verlag, M¨ unchen, 2004

5.8 Aufgaben

313

Aufgabe 5.9. Die Gleichung f (x, y) ≡ x2 − 2xy + 4y 2 − 2y − 1 = 0 beschreibt eine Kurve 2. Ordnung in der Ebene. 1) Zeigen Sie, daß durch f eine Ellipse gegeben ist. 2) Berechnen Sie die Ellipsenpunkte mit dem kleinsten und mit dem gr¨oßten Abstand vom Koordinatenursprung. Beweisen Sie: Die gesuchten Ellipsenpunkte sind L¨osungen des nichtlinearen Gleichungssystems x(x − 2y) + 2y(2y − 1) = 1,

x(x + 1 − 4y) + y(x − y) = 0.

Berechnen Sie die gesuchten Ellipsenpunkte mit dem Newtonverfahren. Verschaffen Sie sich mit Hilfe der Matlab geeignete Startwerte (plot, ginput). Weisen Sie die Extremaleigenschaften der von Ihnen ermittelten Ellipsenpunkte auch theoretisch nach. Aufgabe 5.10. Das mehrdimensionale Newton-Verfahren kann auch dazu verwendet werden, einen Eigenwert λ und den dazugeh¨ origen Eigenvektor x einer Matrix A ∈ Rn×n zu berechnen. Definiert man die Funktion F : Rn+1 → Rn+1 zu   Ax − λx F (x, λ) ≡ T , x x−1 dann gilt F (x, λ) = 0 genau dann, wenn λ ein Eigenwert und x der zugeh¨orige Eigenvektor sind. Die Jacobi-Matrix von F (x) bestimmt sich offensichtlich zu   A − λI −x J(x, λ) = . 2xT 0 Das Newton-Verfahren nimmt deshalb f¨ ur die obige Gleichung die folgende Gestalt an:  (k)   (k−1)   (k−1)  x x s = (k−1) + (k−1) , λ(k) λ δ wobei der Vektor [s(k−1) , δ (k−1) ]T die L¨ osung des linearen Gleichungssystems " # " #  A − λ(k−1) I −x(k−1) s(k−1) Ax(k−1) − λ(k−1) x(k−1) T T =− δ (k−1) 2 x(k−1) 0 x(k−1) x(k−1) − 1 darstellt. Man schreibe ein Matlab-Programm, das zu einer vorgegebenen Matrix A unter Verwendung der obigen Strategie ein Eigenpaar x, λ berechnet. Als geeignete Startwerte kann man einen beliebigen normalisierten nichtverschwindenden Vektor (d.h., (x(0) )T x(0) = 1) und λ(0) = (x(0) )T Ax(0) verwenden (Begr¨ undung!). Man teste das Programm an einigen zuf¨ allig ausgew¨ ahlten Matrizen und vergleiche die Genauigkeit sowie die Effizienz dieser Strategie mit den konventionellen numerischen Verfahren zur Bestimmung eines einzelnen Eigenpaares, wie z.B. der Potenzmethode (siehe hierzu auch Abschnitt 3.2). Man beachte dabei, daß das Newton-Verfahren nicht notwendigerweise gegen den dominanten Eigenwert konvergiert.

314

Kapitel 5 Nichtlineare Gleichungen in mehreren Variablen

Aufgabe 5.11. Vier Federn seien entsprechend der Abbildung in einem Rahmen angeordnet.

Gesucht wird die Ruhelage des Punktes P bei folgender Annahme f¨ ur die Federkr¨afte F~i :    1 ~ i − P~ , ai , bi > 0, si = kQ ~ i − P~ k22 , Q F~i = ai + bi si 2 mit Q1 ≡ (0, 1), Q2 ≡ (1, 1), Q3 ≡ (1, 0) und Q4 ≡ (0, 0). 1) Das Problem f¨ uhrt auf ein nichtlineares Gleichungssystem F (x) = 0,

F : R2 → R2 ,

x = (x1 , x2 )T

(5.93)

f¨ ur die Koordinaten von P . Leiten Sie (5.93) her! ¨ 2) Uberf¨ uhren Sie (5.93) auf einfache Weise in eine solche iterierf¨ahige Form x = G(x),

G : R2 → R2 ,

(5.94)

die im Falle von 0 < bi ≤ c ai , 0 < c < 1/2, die Konvergenz der aus (5.94) abgeleiteten Fixpunktiteration x(k+1) = G(x(k) ) in einer geeigneten Norm f¨ ur beliebige Startvektoren x(0) garantiert (Hinweis: Banachscher Fixpunktsatz). 3) Berechnen Sie die L¨ osung f¨ ur a1 = 10, a2 = 100, a3 = 22, a4 = 50, b1 = 0.4, b2 = 1.2, b3 = 0.2 und b4 = 0.54. W¨ ahlen Sie einen geeigneten Startvektor x(0) (Begr¨ undung!). Sch¨ atzen Sie ab, wieviele Iterationsschritte notwendig sind, um x∗ mit einer Genauigkeit von 10−4 zu berechnen. Welche Kr¨afte muß die Rahmenkonstruktion aufnehmen? Aufgabe 5.12. Gegeben sei das nichtlineare Zweipunkt-Randwertproblem f¨ ur eine skalare Differentialgleichung 2. Ordnung u00 (x) = Ferner sei n ∈ N und h = u00 (x) =

10 , 1 + u(x)2

u(0) = 2,

u(1) = 1.

1 . Ersetzt man unter Verwendung von n+1

(4) 1 (ζ) 2u (u(x − h) − 2u(x) + u(x + h)) − h h2 12

5.8 Aufgaben

315

an den Stellen xk = k h, k = 1, . . . , n, die zweite Ableitung u00 (x) durch den Differenzenausdruck 1 (u(x − h) − 2u(x) + u(x + h)) , h2 so f¨ uhrt das obige Randwertproblem auf das nichtlineare Gleichungssystem     2 y1 0    y2  10     T y ≡ h2 f (y) −  ...  , y ≡  .  , f : Rn → Rn , fi (y) = . .   1 + yi2 . 0 yn 1 Dabei sind die yk N¨ aherungen f¨ ur u(xk ) und T ∈ Rn×n ist eine symmetrische Tridiagonalmatrix. 1) Geben Sie T an! 2) Zeigen Sie mit Hilfe des Banachschen Fixpunktsatzes, daß das nichtlineare Gleichungssystem genau eine L¨ osung besitzt. ¨ (Hinweis: Uberf¨ uhren Sie das Gleichungssystems in eine geeignete Fixpunktform iπ y = G(y), k · k = k · k2 , λi (T ) = −2 + 2 cos n+1 , i = 1, . . . , n.) 3) Berechnen Sie die L¨ osung des nichtlinearen Gleichungssystems mit Hilfe der auf (2) basierenden Fixpunktiteration.

Kapitel 6

Interpolation und Polynom-Approximation Wer sich keinen Punkt denken kann, der ist einfach zu faul dazu. Mathematiklehrer Brenneke in Eduards Traum von Wilhelm Busch

Eine der bekanntesten und h¨ aufig verwendeten Klassen von Funktionen, die die Zahlengerade in sich selbst abbilden, ist die Klasse der algebraischen Polynome. Ihre Bedeutung resultiert haupts¨ achlich aus der Tatsache, daß algebraische Polynome stetige Funktionen gleichm¨ aßig approximieren, d.h., zu einer auf dem abgeschlossenen Intervall [a, b] definierten und stetigen Funktion f (x) existiert stets ein Polynom P (x), das dieser Funktion beliebig nahe kommt (siehe Abbildung 6.1). Die theoretische Grundlage hierzu bildet der Weierstraßsche1 Approximationssatz. Satz 6.1. Ist die Funktion f (x) auf dem Intervall [a, b] definiert und stetig, dann existiert zu einer vorgegebene Zahl ε > 0 ein Polynom P (x) auf diesem Intervall, das der folgenden Beziehung gen¨ ugt |f (x) − P (x)| < ε

1

f¨ ur alle x ∈ [a, b].

Karl Theodor Wilhelm Weierstraß (1815–1897), deutscher Mathematiker

318

Kapitel 6 Interpolation und Polynom-Approximation

Beweis: Siehe z.B. den Lehrtext von v. Mangoldt-Knopp.1



Abbildung 6.1: Weierstraßscher Approximationssatz

Weitere g¨ unstige Eigenschaften der Polynome sind: • ihre Ableitungen und Integrale lassen sich einfach berechnen, und • diese stellen selbst wieder Polynome dar. Im folgenden wollen wir uns deshalb mit verschiedenen numerischen Techniken zur Approximation stetiger Funktionen durch Polynome besch¨aftigen.

6.1

Taylor-Polynome

Der Satz von Weierstraß ist f¨ ur theoretische Aussagen von großer Bedeutung. Er l¨aßt sich jedoch f¨ ur numerische Untersuchungen nicht besonders effektiv umsetzen. Anstelle der gleichm¨ aßigen Approximation u ¨ber das gesamte Intervall [a, b] ist es oftmals zweckm¨ aßiger, ein Polynom zu finden, das einige spezielle Bedingungen erf¨ ullt (die der 1

H. v. Mangoldt und K. Knopp: Einf¨ uhrung in die h¨ ohere Mathematik. Band 2, S. Hirzel Verlag, Leipzig, 1962

6.1 Taylor-Polynome

319

jeweiligen Problemstellung angepaßt sind) und dennoch nahe bei der stetigen Funktion liegt. Wir wollen dies an einem Beispiel demonstrieren. Beispiel 6.1. Wir betrachten hier die folgende Zielstellung: Es ist ein Polynom P3 (x) vom Grad h¨ ochstens drei zu bestimmen, das die gegebene Funktion f (x) = sin (x) in der N¨ ahe von x = x0 ≡ 0 hinreichend genau ann¨ahert und welches zur Approximation von sin (0.1) verwendet werden kann. Die Aufgabe ist noch recht ungenau formuliert, da sie keinen Hinweis enth¨alt, wie man dieses Polynom tats¨ achlich finden kann. Vor allen Dingen muß aber die Aussage, eine Funktion n¨ ahert eine andere hinreichend genau“ an, mathematisch exakt formuliert ” werden. Eine sachgem¨ aße Forderung an das oben gesuchte Polynom P3 (x) ist offensichtlich die folgende: P3 (x) stimmt an der Stelle x = x0 mit der gegebenen Funktion f (x) und m¨ oglichst vielen ihrer Ableitungen u ¨berein. Um dieses Polynom zu finden, verwenden wir den u ¨blichen Ansatz P3 (x) = a0 + a1 x + a2 x2 + a3 x3 .

(6.1)

Die noch unbestimmten Koeffizienten a0 , . . . , a3 werden entsprechend der oben postulierten Forderung aus den Gleichungen P3 (0) = f (0),

P30 (0) = f 0 (0),

P300 (0) = f 00 (0),

P3000 (0) = f 000 (0)

(6.2)

ermittelt. Man berechnet sukzessive: P3 (x) = a0 + a1 x + a2 x2 + a3 x3 P30 (x) = a1 + 2a2 x + 3a3 x2 P300 (x) = 2a2 + 6a3 x P3000 (x) = 6a3

=⇒ =⇒ =⇒ =⇒

P3 (0) = a0 , P30 (0) = a1 , P300 (0) = 2a2 , P3000 (0) = 6a3 ,

f (x) = sin (x) f 0 (x) = cos (x) f 00 (x) = − sin (x) f 000 (x) = − cos (x)

=⇒ =⇒ =⇒ =⇒

f (0) = 0, f 0 (0) = 1, f 000 (0) = 0, f 000 (0) = −1.

Damit ergeben sich f¨ ur die Koeffizienten des gesuchten Polynoms (6.1) die Werte a0 = 0,

a1 = 1,

a2 = 0

und a3 = −1/6

und P3 (x) hat die Gestalt P3 (x) = x − x3 /6.

(6.3)

Die zu approximierende Funktion f (x) als auch das zugeh¨orige Polynom (6.3) sind in der Abbildung 6.2 dargestellt. Man berechnet nun nach Formel (6.3) sin (0.1) ≈ P3 (0.1) = 0.09983333.

320

Kapitel 6 Interpolation und Polynom-Approximation

Abbildung 6.2: Taylor-Approximation

F¨ ur den zugeh¨ origen Approximationsfehler gilt: | sin (0.1) − P3 (0.1)| ≤ 10−7 . Der Abbildung 6.2 kann man entnehmen, wie klein das Intervall um den Nullpunkt tats¨achlich ist, in dem das berechnete Polynom (6.3) die gegebene Funktion f (x) akzeptabel approximiert.  Offensichtlich stimmt die Herangehensweise in Beispiel 6.1 genau damit u ¨berein, das Taylor1 -Polynom 3. Grades f¨ ur f (x) an der Stelle x = x0 zu bestimmen, d.h.,

1 1 P3 (x) = f (x0 ) + f 0 (x0 ) (x − x0 ) + f 00 (x0 ) (x − x0 )2 + f 000 (x0 ) (x − x0 )3 . 2 6

Das anhand des Beispieles 6.1 erhaltene Resultat trifft nicht nur auf die spezielle Funktion f (x) = sin(x) zu, sondern besitzt allgemeing¨ ultigen Charakter. Die zugeh¨orige Aussage ist in der folgenden Bemerkung angegeben.

1

Brook Taylor (1685–1731), britischer Mathematiker

6.1 Taylor-Polynome

321

Bemerkung 6.1. Die Approximation mit Taylor-Polynomen vom Grad n,

Pn (x) =

n X f (k) (x0 ) k=0

k!

(x − x0 )k ,

(6.4)

ist nur sachgem¨ aß, falls eine Funktion f (x) in der unmittelbaren Umgebung der vorgegebenen Stelle x = x0 angen¨ ahert werden soll.  Bei der sukzessiven Erh¨ ohung des Polynomgrades n vergr¨oßert sich das Intervall um die Stelle x0 nur sehr langsam, auf dem die Polynome Pn (x) die vorgegebene Funktion f (x) hinreichend genau approximieren. Dieser Sachverhalt ist f¨ ur das obige Beispiel in der Abbildung 6.3 noch einmal veranschaulicht.

Abbildung 6.3: Taylor-Approximation mit Polynomen aufsteigenden Grades

Die Approximation mit Taylor-Polynomen Pn (x) versagt selbst bei beliebig hohem Polynomgrad n, wenn man sich von der Stelle x0 etwas weiter entfernt. Dies kann auch aus dem bekannten Restglied der Taylor-Reihe abgelesen werden1 :

Rn (x) = 1

f (n+1) (ξ(x)) (x − x0 )n+1 , (n + 1)!

ξ(x) ∈ [x, x0 ].

(6.5)

Siehe zum Beispiel H. St¨ ocker, Hrsg.: Taschenbuch mathematischer Formeln und moderner Verfahren. Verlag Harri Deutsch, Frankfurt am Main, 1999

322

Kapitel 6 Interpolation und Polynom-Approximation

Der f¨ ur die Taylor-Approximation erforderliche Rechenaufwand steht in keinem Verh¨altnis zur erzielten Genauigkeit. Ein weiterer entscheidender Nachteil dieser Technik ist die Notwendigkeit, Ableitungen hoher Ordnung von f (x) bilden zu m¨ ussen, was sich bei komplizierteren Funktionen oftmals nicht einfach realisieren l¨aßt. Die Anwendbarkeit der Taylor-Polynome zur Approximation vorgegebener Funktionen ist deshalb in der Praxis ziemlich begrenzt. F¨ ur die meisten mathematischen Problemstellungen aus den Naturwissenschaften und der Technik ist es sachgem¨aßer, nur solche Approximationstechniken zu verwenden, die auf Informationen u ¨ber die Funktion f (x) an mehreren Stellen x0 , . . . , xn aus [a, b] zur¨ uckgreifen. Dadurch wird es dann m¨oglich, auch u ¨ber ein ¨ gr¨ oßeres Intervall eine gute Ubereinstimmung zwischen der N¨aherungsfunktion und der gegebenen Funktion zu erzielen. Im folgenden Abschnitt beginnen wir mit der Darstellung derartiger numerischer Verfahren.

6.2

Interpolation und Lagrange-Polynome

Zur Einf¨ uhrung wollen wir das folgende sehr einfache Problem betrachten (siehe die Abbildung 6.4). Es ist ein Polynom 1. Grades P (x) zu bestimmen, das durch die zwei vorgegebenen und voneinander verschiedenen Punkte (x0 , y0 ) und (x1 , y1 ) verl¨auft, mit y0 = f (x0 ), y1 = f (x1 ).

Abbildung 6.4: Lineare Interpolation

6.2 Interpolation und Lagrange-Polynome

323

Dieses Polynom stellen wir in der folgenden Form dar P (x) =

x − x1 x − x0 y0 + y1 . x0 − x1 x1 − x0

(6.6)

Es gilt P (x0 ) = 1 · y0 + 0 · y1 = y0 ,

P (x1 ) = 0 · y0 + 1 · y1 = y1 .

Damit besitzt das in Formel (6.6) angegebene Polynom P (x) tats¨achlich die geforderte Eigenschaft. Die Ersetzung einer Funktion f (x) durch das zugeh¨orige Polynom (6.6) wird lineare Interpolation genannt und ist bereits aus der Schulmathematik im Umgang mit Zahlentafeln bekannt. Dieses Approximationskonzept kann nun wie folgt verallgemeinert werden. Allgemeines Prinzip der numerische Interpolation: Man bestimme ein Polynom Pn (x) vom Grad h¨ochstens n, das durch die n+1 vorgegebenen Punkte (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) verl¨auft. Die Stellen x0 , . . . , xn werden dabei als paarweise verschieden vorausgesetzt. In der Abbildung 6.5 ist dieses allgemeine Interpolationsprinzip f¨ ur n = 4 graphisch veranschaulicht.

Abbildung 6.5: Prinzip der numerischen Interpolation

Definition 6.1. Man nennt x0 , x1 , . . . , xn die St¨ utzstellen und y0 = f (x0 ), y1 = f (x1 ), . . ., yn = f (xn ) die St¨ utzwerte der Interpolationsaufgabe. 

324

Kapitel 6 Interpolation und Polynom-Approximation

Das lineare Interpolationspolynom (6.6), das durch die beiden Punkte (x0 , f (x0 )) und (x1 , f (x1 )) verl¨ auft, wurde unter Verwendung der beiden Quotienten L0 (x) ≡

x − x1 x0 − x1

und L1 (x) ≡

x − x0 x1 − x0

konstruiert. Diese erf¨ ullen x = x0 :

L0 (x0 ) = 1,

L1 (x0 ) = 0

x = x1 :

L0 (x1 ) = 0,

L1 (x1 ) = 1.

Im allgemeinen Fall hat man nun f¨ ur jedes k = 0, 1, . . . , n jeweils einen Quotienten Ln,k (x) zu bestimmen, der die folgende Eigenschaft besitzt Ln,k (xi ) = 0

f¨ ur i 6= k

und

Ln,k (xk ) = 1

f¨ ur i = k.

(6.7)

Damit Ln,k (xi ) = 0 f¨ ur jedes i 6= k gilt, muß der Z¨ahler von Ln,k (x) den Term (x − x0 )(x − x1 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )

(6.8)

enthalten. Andererseits impliziert die Bedingung Ln,k (xk ) = 1, daß der Nenner von Ln,k (x) f¨ ur x = xk mit (6.8) u ¨bereinzustimmen hat. Damit ergibt sich der Lagrange 1 Faktor Ln,k (x) zu n

Ln,k (x) =

Y x − xi (x − x0 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn ) = . (xk − x0 ) · · · (xk − xk−1 )(xk − xk+1 ) · · · (xk − xn ) i=0 xk − xi

(6.9)

i6=k

Die Lagrange-Faktoren sind selbst Polynome n-ten Grades. Sie haben das in der Abbildung 6.6 skizzierte Aussehen. Mit Hilfe der Faktoren Ln,k (x), k = 0, . . . , n, l¨aßt sich nun das gesuchte Polynom Pn (x) recht einfach aufschreiben. Diese Darstellungsform des Interpolationspolynoms wird u ¨blicherweise als Lagrangesches Interpolationspolynom bezeichnet. Es besitzt die im Satz 6.2 beschriebenen Eigenschaften. Satz 6.2. Es seien n + 1 paarweise verschiedenen St¨ utzstellen x0 , x1 , . . . , xn sowie eine Funktion f (x), deren Werte y0 , y1 , . . . , yn an diesen Stellen bekannt sind, gegeben. Dann existiert ein eindeutig bestimmtes Polynom Pn (x) von maximalem Grad n, das den n+1 Interpolationsbedingungen Pn (xk ) = yk , 1

k = 0, . . . , n,

Joseph Louis Lagrange (1736–1813), franz¨ osischer Mathematiker

(6.10)

6.2 Interpolation und Lagrange-Polynome

325

Abbildung 6.6: Lagrange-Faktor Ln,k (x)

gen¨ ugt. Dieses Polynom kann wie folgt dargestellt werden:

Pn (x) = Ln,0 (x) y0 + · · · + Ln,n (x) yn =

n X

Ln,k (x) yk

(6.11)

k=0

mit

n Y x − xi Ln,k (x) = , x − xi i=0 k

k = 0, 1, . . . , n.

i6=k

Beweis: 1) Die Existenz eines solchen Polynoms wurde bereits durch die Konstruktion von (6.11) gezeigt. 2) Um die Eindeutigkeit zu zeigen, nehmen wir an, es gibt zwei Polynome Pn (x) und Qn (x) mit deg(Pn ) ≤ n und deg(Qn ) ≤ n, die beide die Interpolationsbedingungen (6.10) erf¨ ullen, d.h., Pn (xk ) = Qn (xk ) = yk ,

k = 0, 1, . . . , n.

Dann besitzt das Polynom D(x) ≡ Pn (x) − Qn (x) genau die n + 1 paarweise verschiedenen Nullstellen x0 , . . . , xn . Wegen deg(D) ≤ n folgt nun aus dem Fundamentalsatz der Algebra, daß D(x) ≡ 0 gelten muß. Dies wiederum f¨ uhrt auf Pn (x) = Qn (x). 

326

Kapitel 6 Interpolation und Polynom-Approximation

Bemerkung 6.2. Falls es zu keinen Mißverst¨andnissen f¨ uhrt, lassen wir ab jetzt den Index n bei Ln,k (x) und Pn (x) weg und schreiben k¨ urzer Lk (x) bzw. P (x).  Sowohl aus theoretischer als auch aus praktischer Sicht ist die Frage von Interesse, welcher Fehler entsteht, wenn man eine Funktion f (x) durch ihr Interpolationspolynom n-ten Grades P (x) approximiert. Eine Antwort darauf ist dem folgenden Satz zu entnehmen. Satz 6.3. Gegeben seien auf dem Intervall [a, b] genau n + 1 paarweise verschiedene St¨ utzstellen x0 , x1 , . . . , xn . Weiter gelte f ∈ Cn+1 [a, b]. Dann existiert zu jedem x ∈ [a, b] eine Zahl ξ(x) ∈ (a, b), so daß

f (x) − P (x) =

f (n+1) (ξ(x)) (x − x0 ) · · · (x − xn ). (n + 1)!

(6.12)

Hierbei ist P (x) das durch die Gleichung (6.11) definierte Lagrangesche Interpolationspolynom. Beweis: 1) Ist x = xk , k ∈ {0, 1, . . . , n}, dann gilt f (xk ) = P (xk ). Mit einem beliebigen ξ(xk ) ∈ (a, b) ist dann (6.12) erf¨ ullt. 2) Es sei nun x 6= xk , k ∈ {0, 1, . . . , n}. Wir definieren f¨ ur t ∈ [a, b]: g(t) ≡ f (t) − P (t) − [f (x) − P (x)]

n Y t − xi . x − xi i=0

(6.13)

Wegen f ∈ C(n+1) [a, b], P ∈ C∞ [a, b] und x 6= xk ist g ∈ C(n+1) [a, b]. F¨ ur t = xk folgt aus (6.13) g(xk ) = f (xk ) − P (xk ) − [f (x) − P (x)]

n Y xk − xi i=0

x − xi

= 0 − [f (x) − P (x)] · 0 = 0.

F¨ ur t = x folgt weiter aus (6.13) g(x) = f (x) − P (x) − [f (x) − P (x)]

n Y x − xi i=0

x − xi

= f (x) − P (x) − [f (x) − P (x)] = 0.

Somit gilt a) g ∈ C(n+1) [a, b] und b) g verschwindet an den n+2 paarweise verschiedenen Stellen x, x0 , x1 , . . . , xn .

6.2 Interpolation und Lagrange-Polynome

327

Der verallgemeinerte Satz von Rolle impliziert nun die Existenz eines ξ ≡ ξ(x) aus (a, b), mit g (n+1) (ξ) = 0. Berechnet man g (n+1) (t) an dieser Stelle ξ, so folgt 0 = g (n+1) (ξ) =f

(n+1)

(ξ) − P

(n+1)

dn+1 (ξ) − [f (x) − P (x)] n+1 dt

n Y t − xi x − xi i=0

!

Aus deg(P ) ≤ n folgt P (n+1) (x) ≡ 0. Da es sich bei der Funktion

.

(6.14)

t=ξ

n Y t − xi um x − xi i=0

ein Polynom vom Grad n + 1 handelt, kann man     n Y   n+1 t − xi 1  t = n + (Terme niedrigerer Ordnung in t)  Y x − x i   i=0 (x − xi ) i=0 n dn+1 Y t − xi schreiben. Hieraus ergibt sich n+1 = (n + 1)! dt x − xi i=0

n Y

!−1 (x − xi )

.

i=0

Die Formel (6.14) nimmt damit die Gestalt

0=f

(n+1)

(ξ) − 0 − [f (x) − P (x)] (n + 1)!

n Y

!−1 (x − xi )

i=0

an. Stellt man die obige Gleichung nach f (x) um, so resultiert schließlich die Behauptung.  Die Formel (6.12) ist sicher immer dann von Nutzen, wenn f¨ ur die zu interpolierende Funktion f (x) und deren Ableitungen obere Schranken angegeben werden k¨onnen. Dies trifft i.allg. auf solche Funktionen zu, die in den u ¨blichen Zahlentafeln tabelliert sind, wie trigonometrische oder logarithmische Funktionen. Zum Abschluß dieses Abschnittes wollen wir die Fehlerabsch¨atzung (6.12) an einigen Beispielen etwas genauer analysieren. Hierzu definieren wir die Schranken max f (m) (ξ) ≤ Mm , m = 1, 2, . . . (6.15) ξ∈[a,b]

1) Lineare Interpolation (n=1). Es sei [a, b] ≡ [x0 , x1 ] und wir setzen x1 ≡ x0 + h. Im linearen Fall reduziert sich die Formel (6.12) auf f (x) − P1 (x) =

f 00 (ξ(x)) (x − x0 )(x − x1 ), 2

x0 < ξ < x1 .

328

Kapitel 6 Interpolation und Polynom-Approximation Der Betrag der quadratischen Funktion l(x) ≡ (x − x0 )(x − x1 ) nimmt seinen gr¨ oßten Wert auf dem Intervall [x0 , x1 ] im Mittelpunkt x ˜≡

1 1 1 (x0 + x1 ) = (x0 + x0 + h) = x0 + h 2 2 2

1 an und es ist l(˜ x) = − h2 . Folglich gilt 4 |f (x) − P1 (x)| ≤

1 M2 h2 , 8

x ∈ [x0 , x1 ],

x1 = x0 + h,

(6.16)

d.h., auf kleinen Intervallen der L¨ ange h ist der Fehler f¨ ur die lineare Interpolation von der Gr¨ oßenordnung O(h2 ). 2) Quadratische Interpolation (n=2). Wir wollen ¨aquidistante St¨ utzstellen voraussetzen und diese ohne Beschr¨ ankung der Allgemeinheit (das Maximum h¨angt nicht von einer Translation ab!) wie folgt w¨ ahlen: x0 ≡ −h, x1 ≡ 0, x2 ≡ h. Jetzt ist f¨ ur die kubische Funktion l(x) ≡ (x − x0 )(x − x1 )(x − x2 ) = x(x2 − h2 ) das Maximum des Betrages zu ermitteln. Die beiden Extrema von ¨ber √ l(x) lassen sich u √ 2 3 l0 (x) berechnen zu z1,2 = ±h/ 3, so daß max |l(x)| = h3 gilt. Damit folgt 9 [−h,h] schließlich die Absch¨ atzung M3 |f (x) − P2 (x)| ≤ √ h3 ≈ 0.064 M3 h3 , 9 3

x ∈ [x0 , x2 ],

(6.17)

d.h., f¨ ur kleine h ist der Fehler f¨ ur die quadratische Interpolation O(h3 ). 3) Interpolation n-ten Grades (n allgemein). Die G¨ ute der Approximation h¨angt wesentlich von der Verteilung der St¨ utzstellen x0 , . . . , xn u ¨ber das Interpolationsintervall ab, da die Fehlerfunktion (6.12) weitgehend durch die Funktion l(x) ≡ (x−x0 )(x−x1 ) · · · (x−xn ) dominiert wird. Sind die St¨ utzstellen ¨aquidistant verteilt und n nicht zu klein, dann oszilliert die Funktion l(x) stark an den R¨andern des Integrationsintervalls [x0 , xn ]. Folglich sind die Werte von |l(x)| dort signifikant gr¨ oßer als in den mittleren Abschnitten. Der gesamte Interpolationsfehler (6.12) verh¨ alt sich in etwa gleich, da f¨ ur eine kleine Schrittweite h und x ∈ [x0 , xn ] die zugeh¨ orige Konstante ξ(x) auf ein relativ kleines Intervall beschr¨ankt bleibt und sich deshalb f (n+1) (ξ(x)) nicht stark ¨ andern kann. In der Abbildung 6.7 ist ein typischer Verlauf von l(x) f¨ ur n = 9 dargestellt. Eine Verbesserung l¨ aßt sich nur durch eine andere Wahl der St¨ utzstellen erreichen. Offensichtlich m¨ ussen sie an den R¨andern des Integrationsintervalles dichter gelegt werden. In der Praxis verwendet man deshalb als St¨ utzstellen oftmals die Nullstellen des n-ten Tschebyschow1 -Polynoms Tn (x) (siehe auch Abschnitt 7.2), 1

Pafnuti Lwowitsch Tschebyschow (1821–1895), russischer Mathematiker

6.2 Interpolation und Lagrange-Polynome

329

Abbildung 6.7: Typischer Verlauf von l(x) f¨ ur n=9

transformiert auf das Intervall [a, b]:

x ˜i ≡

a+b b−a + cos 2 2



 n−i π , n

i = 0, 1, . . . , n.

Die zugeh¨ orige Funktion ˜l(x) besitzt einen gleichm¨aßigeren oszillatorischen Verlauf als l(x). Dar¨ uber hinaus l¨ aßt sich max |˜l(x)| ≤ max |l(x)| x∈[a,b]

x∈[a,b]

zeigen. Die oben beschriebenen starken Schwingungen der Interpolationspolynome Pn (x) an den R¨ andern des Interpolationsintervalls wurden bereits von Runge1 beobachtet. Auf ihn geht auch das folgende klassische Beispiel zur¨ uck. 1

Carl David Tolm´ e Runge (1856–1927), deutscher Mathematiker

330

Kapitel 6 Interpolation und Polynom-Approximation

Beispiel 6.2. Gegeben sei die sogenannte Runge-Funktion 1 f (x) = 1/(x2 + 1). F¨ ur die im Intervall [a, b] = [−5, 5] festgelegte Menge von ¨aquidistanten St¨ utzstellen xi = −5 + 10i/n, i = 0, . . . , n, wurden f¨ ur n = 5 und n = 10 die zugeh¨origen Interpolationspolynome Pn (x) bestimmt und in der Abbildung 6.8 graphisch dargestellt.

Abbildung 6.8: Interpolation der Runge-Funktion

Es ist unschwer zu erkennen, daß die Interpolationspolynome mit wachsendem n einen zunehmenden maximalen Interpolationsfehler aufweisen. Dieses Verhalten wird in der Literatur oftmals auch unter dem Begriff Runge-Ph¨ anomen beschrieben. 

6.3

Vandermonde-Ansatz

Beim sogenannten Vandermonde2 -Ansatz wird die Normalform eines Polynoms verwendet, d.h. es wird als Linearkombination der Basisfunktionen 1, x, x2 , . . . , xn ausgedr¨ uckt: Pn (x) = a0 + a1 x + a2 x2 + · · · + an xn .

(6.18)

¨ Siehe auch C. Runge: Uber empirische Funktionen und die Interpolation zwischen ¨ aquidistanten Ordinaten. Z. Math. Physik 48 (1901), S. 224–243 2 Alexandre-Th´ eophile Vandermonde (1735–1796), franz¨ osischer Musiker, Mathematiker und Chemiker 1

6.3 Vandermonde-Ansatz

331

Die Interpolationsbedingungen (6.10) f¨ uhren damit auf die Gleichungen a0 + a1 x0 + a2 x20 + · · · + an xn0 = y0 a0 + a1 x1 + a2 x21 + · · · + an xn1 = y1 .. .

(6.19)

a0 + a1 xn + a2 x2n + · · · + an xnn = yn . Das System (6.19) l¨ aßt  1  1  A=    1

sich in der Matrizenform (2.2) darstellen, mit      x0 x20 · · · xn0 a0 y0      2 n  a1   y1  x1 x1 · · · x1      , x =  , b =  .   ..   ..  ..  . . .      2 n an yn xn xn · · · xn

(6.20)

Bei der Systemmatrix A ∈ R(n+1)×(n+1) handelt es sich um eine sogenannte Vandermondesche Matrix. F¨ ur die zugeh¨ orige Determinante gilt Y det(A) = (xi − xj ). (6.21) n≥i>j≥0

Sind die St¨ utzstellen xi paarweise verschieden, dann ist A offensichtlich nichtsingul¨ar und das lineare Gleichungssystem besitzt eine eindeutige L¨osung. Dies impliziert wiederum die Eindeutigkeit des Interpolationspolynoms Pn (x), mit deg(Pn ) ≤ n, das die Punkte (x0 , y0 ), . . . , (xn , yn ) interpoliert. Das System (6.19) kann nun mit der Gauß-Elimination unter Verwendung der partiellen Pivotisierung (siehe Abschnitt 2.3) gel¨ ost werden. Die Routine vandermonde (siehe Programm 6.1) stellt eine Implementierung dieser Technik dar. Man beachte, daß aus programmiertechnischen Gr¨ unden eine Indexverschiebung vorgenommen wurde. Den Vandermonde-Ansatz f¨ ur das Interpolationspolynom wird man immer dann verwenden, wenn eine reine Interpolationsaufgabe zu realisieren ist. Die L¨osung großer linearer Gleichungssysteme stellt heute kein Problem mehr dar (siehe auch die Ausf¨ uhrungen im Abschnitt 2.1). Zu Lebzeiten von Lagrange war es jedoch noch nicht m¨oglich, selbst Systeme mit relativ kleiner Dimension zu behandeln. Deshalb war die Bestimmung des Interpolationspolynoms auf der Basis des Lagrange-Ansatz von herausragender Bedeutung, da hierdurch die L¨ osung linearer Gleichungssysteme vermieden wird. Bei der Konstruktion numerischer Verfahren zur L¨osung bestimmter Integrale und zur Bestimmung von Ableitungen spielt der Lagrange-Ansatz auch heute noch eine große Rolle (siehe Kapitel 9). Das trifft auch auf die numerischen Techniken zur Behandlung von Anfangswertproblemen gew¨ ohnlicher Differentialgleichungen zu1 . 1

siehe z.B. M. Hermann: Numerik gew¨ ohnlicher Differentialgleichungen, Anfangs- und Randwertprobleme. Oldenbourg Verlag, M¨ unchen, 2004

332

Kapitel 6 Interpolation und Polynom-Approximation

Programm 6.1

Vandermonde-Interpolation

function a=vandermonde(x,y) % % x: Vektor der St¨ utzstellen x(1) < x(2) ,..., x(n) < x(n+1) % y: Vektor der St¨ utzwerte y(1),...,y(n+1) % a: Vektor mit den Koeffizienten des Interpolationspolynoms % x=x(:); n=length(x); V=ones(n+1,n+1); for i=2:n+1 % j-te Spalte von der Vandermonde-Matrix wird gebildet V(:,i)=x.*V(:,i-1); end a=lingl(V,y,’part’);

In der Matlab kann man mit dem Befehl a = vander(v) eine Vandermondesche Ma(n−j) trix erzeugen, deren Spalten die Potenzen des Vektors v sind, d.h. aij = vi . Setzt man nun zum Beispiel v=[1 2 3 4 5 6 7 8] und berechnet die Kondition der daraus resultierenden Vandermondesche Matrix mittels des Befehls kappa=cond(vander(v)), so ergibt sich kappa = 9.5211e+008. Dies zeigt, daß bereits bei 8 St¨ utzstellen ein schlecht konditioniertes Gleichungssystem (6.19) entstehen kann. Deshalb sollte man auch bei der Vandermonde-Interpolation den Polynomgrad nicht zu groß w¨ahlen. Eine echte Alternative dazu stellt die im Abschnitt 6.7 beschriebene kubische SplineInterpolation dar.

6.4

Iterierte Interpolation

Oftmals ist es schwierig, die Genauigkeit eines numerisch bestimmten Interpolationspolynoms Pn (x) mit der Fehlerabsch¨ atzung (6.12) quantitativ zu bewerten. Ist man an der expliziten Gestalt des Interpolationspolynoms eigentlich nicht interessiert, sondern m¨ ochte damit nur eine Approximation f¨ ur den unbekannten Funktionswert f (¯ x) an einer vorgegebenen Stelle x ¯ ∈ [a, b] bestimmen, dann liegt die folgende Strategie nahe. Die St¨ utzstellenmenge wird sukzessive um jeweils eine weitere St¨ utzstelle vergr¨oßert. Im aktuellen Schritt kann man dann mit einem Polynom interpolieren, dessen Grad um eins gr¨ oßer ist als im vorangegangenen Schritt. An der Stelle x = x ¯, an der die Approximation von f (x) gesucht ist, berechnet man die Funktionswerte der im Grad anwachsenden Lagrangeschen Interpolationspolynome Pj (x), j = 0, 1, . . . Dies wird solange durchgef¨ uhrt, bis sich die Polynomwerte Pj (¯ x), j ≥ j0 , im Rahmen der Maschinengenauigkeit nicht mehr unterscheiden. Die beschriebene Strategie besitzt jedoch einen wesentlichen Nachteil. Der Aufwand, der f¨ ur die Konstruktion des Polynoms Pj (x) erforderlich ist, kann nicht bei der Bestimmung des Polynoms Pj+1 (x) ausgenutzt werden. Die Hinzunahme einer weiteren St¨ utzstelle bedingt n¨amlich (siehe Formel (6.9)), daß alle Lagrange-Faktoren neu berechnet werden m¨ ussen.

6.4 Iterierte Interpolation

333

Es soll jetzt eine Modifikation der obigen Strategie abgeleitet werden, die bei der Berechnung von Pj (¯ x) auf die bereits vorliegenden Rechenergebnisse f¨ ur die Polynomwerte Pi (¯ x), i < j, zur¨ uckgreift. Wir ben¨ otigen hierf¨ ur die folgende Definition. Definition 6.2. Es sei f (x) eine Funktion, die an den Stellen x0 , x1 , . . . , xn definiert ist. Des weiteren seien k paarweise verschiedene ganze Zahlen m1 , m2 , . . . , mk gegeben, mit 0 ≤ mi ≤ n, i = 1, . . . , k. Das Lagrangesche Interpolationspolynom vom Grad h¨ ochstens gleich k − 1, das mit f (x) in den Punkten xm1 , xm2 , . . . , xmk u ¨bereinstimmt, werde mit Pm1 ,m2 ,...,mk (x) bezeichnet.  Das folgende Beispiel verdeutlicht die recht abstrakte Definition. Beispiel 6.3. Gegeben seien die Funktion f (x) = x3 sowie die St¨ utzstellen x0 = 1, x1 = 2, x2 = 3, x3 = 4, x4 = 6. Das Polynom P1,2,4 (x) vom Grad h¨ochstens gleich 2 stimmt mit f (x) an den speziellen St¨ utzstellen x1 = 2, x2 = 3 und x4 = 6 u ¨berein, d.h., P1,2,4 (x) =

(x − 3)(x − 6) (x − 2)(x − 6) (x − 2)(x − 3) 8+ 27 + 216. (2 − 3)(2 − 6) (3 − 2)(3 − 6) (6 − 2)(6 − 3)



Es gilt nun der folgende Satz. Satz 6.4. Die Funktion f (x) sei an den St¨ utzstellen x0 , x1 , . . . , xn definiert. Des weiteren m¨ ogen xi und xj zwei verschiedene Zahlen aus dieser St¨ utzstellenmenge bezeichnen. Definiert man P (x) ≡

(x − xj )P0,1,...,j−1,j+1,...,k (x) − (x − xi )P0,1,...,i−1,i+1,...,k (x) , xi − xj

(6.22)

dann ist P (x) das Lagrangesche Interpolationspolynom vom Grad h¨ ochstens gleich k, welches die gegebene Funktion f (x) an den Stellen x0 , x1 , . . . , xk interpoliert, d.h., P (x) = P0,1,...,k (x). Beweis: Um die Notation zu verk¨ urzen, setzen wir Q(x) ≡ P0,1,...,i−1,i+1,...,k (x)

ˆ und Q(x) ≡ P0,1,...,j−1,j+1,...,k (x).

ˆ ≤ k − 1, so daß deg(P ) ≤ k folgt. Ist nun 0 ≤ r ≤ k Es gilt deg(Q) ≤ k − 1 und deg(Q) und r 6= i, j, dann erh¨ alt man P (xr ) =

ˆ r ) − (xr − xi )Q(xr ) (xr − xj )Q(x xi − xj = f (xr ) = f (xr ). xi − xj xi − xj

Des weiteren ist P (xi ) =

ˆ i ) − (xi − xi )Q(xi ) (xi − xj )Q(x xi − xj = f (xi ) = f (xi ). xi − xj xi − xj

334

Kapitel 6 Interpolation und Polynom-Approximation

Analog folgt P (xj ) = f (xj ). Aber nach Definition ist P0,1,...,k (x) das eindeutige Polynom vom Grad h¨ ochstens gleich k, welches mit f (x) an den Stellen x0 , x1 , . . . , xk u  ¨bereinstimmt. Somit ergibt sich die Behauptung P (x) = P0,1,...,k (x). Anhand eines einfachen Beispiels soll jetzt gezeigt werden, wie sich das im Satz 6.4 formulierte Resultat f¨ ur einen adaptiven Interpolationsprozeß verwenden l¨aßt. Beispiel 6.4. Die Funktion f (x) = sin(x) sei an diskreten Stellen xi , entsprechend der Tabelle 6.1, gegeben. i

0

1

2

3

4

xi

1.0

1.3

1.6

1.9

2.2

f (xi )

0.84147

0.96356

0.99957

0.94630

0.80850

Tabelle 6.1: St¨ utzstellen und St¨ utzwerte f¨ ur f (x) = sin(x)

Der Wert von f (x) soll an der Stelle x = 1.5 durch Langrange-Polynome hinreichend genau interpoliert werden. Es ist x0 = 1.0, x1 = 1.3, x2 = 1.6, x3 = 1.9, x4 = 2.2. Wir schreiben in der Bezeichnungsweise von Definition 6.2: P0 (1.5) = f (1.0),

P1 (1.5) = f (1.3),

P2 (1.5) = f (1.6),

P3 (1.5) = f (1.9),

P4 (1.5) = f (2.2). Dabei handelt es sich um 5 Polynome 0-ten Grades, die als eine erste N¨aherung f¨ ur f (1.5) aufzufassen sind. Aus diesen konstruiert man nun nach der Vorschrift (6.22) Polynome 1-ten Grades, die verbesserte Approximationen f¨ ur f (1.5) liefern: P0,1 (1.5)

=

(1.5 − 1.0)P1 − (1.5 − 1.3)P0 = 1.04495, 1.3 − 1.0

P1,2 (1.5)

=

(1.5 − 1.3)P2 − (1.5 − 1.6)P1 = 0.98757, 1.6 − 1.3

P2,3 (1.5)

=

1.011733,

P3,4 (1.5) = 1.13003.

Damit ist die Approximation durch Polynome 1-ten Grades ersch¨opft. Der berechnete Wert P1,2 (1.5) m¨ ußte die beste Approximation f¨ ur f (1.5) sein, da 1.5 zwischen x1 = 1.3 und x2 = 1.6 liegt. Verwendet man jetzt die oben bestimmten Werte der Interpolationspolynome 1-ten Grades in der Vorschrift (6.22), dann ergeben sich aus den resultierenden Polynomen 2-ten Grades die Approximationen: P0,1,2 (1.5)

=

(1.5 − 1.0)P1,2 − (1.5 − 1.6)P0,1 = 0.99713, 1.6 − 1.0

P1,2,3 (1.5)

=

0.99749,

P2,3,4 (1.5) = 0.99854.

6.4 Iterierte Interpolation

335

Weiter ergeben sich die folgenden Approximationen mit Hilfe von Polynomen 3-ten Grades: P0,1,2,3 (1.5)

=

(1.5 − 1.0)P1,2,3 − (1.5 − 1.9)P0,1,2 = 0.99733, 1.9 − 1.0

P1,2,3,4 (1.5)

=

0.99772.

Schließlich liefert das Polynom 4-ten Grades: P0,1,2,3,4 (1.5) =

(1.5 − 1.0)P1,2,3,4 − (1.5 − 2.2)P0,1,2,3 = 0.99749. 2.2 − 1.0

Es ist sin(1.5) = 0.9974949866 . . ., so daß man f¨ ur den Fehler der obigen Approximation erh¨ alt: | sin(1.5) − P0,1,2,3,4 (1.5)| ≤ 5 · 10−6 . Damit hat man mit der obigen Strategie einen Wert von f (x) an der Stelle x = 1.5 gefunden, der auf 5 Dezimalstellen genau ist.  Die im Beispiel 6.4 berechneten Polynomwerte k¨onnen nun nach dem in der Tabelle 6.2 dargestellten Schema angeordnet werden (x = x ¯ sei diejenige Stelle, an der interpoliert wird). x0

P0 (¯ x)

x1

P1 (¯ x)

P0,1 (¯ x)

x2

P2 (¯ x)

P1,2 (¯ x)

P0,1,2 (¯ x)

x3

P3 (¯ x)

P2,3 (¯ x)

P1,2,3 (¯ x)

P0,1,2,3 (¯ x)

x4

P4 (¯ x)

P3,4 (¯ x)

P2,3,4 (¯ x)

P1,2,3,4 (¯ x)

P0,1,2,3,4 (¯ x)

Tabelle 6.2: Iterierte Interpolation

Wir wollen einmal annehmen, daß die zuletzt berechnete Approximation P0,1,2,3,4 (¯ x) nicht die geforderte Genauigkeit besitzt, d.h., daß sie sich noch signifikant von den Werten in der benachbarten linken Spalte unterscheidet. In diesem Falle w¨ahlt man eine weitere St¨ utzstelle x5 , an der auch der Funktionswert f (x5 ) bekannt sein muß, aus und f¨ ugt eine zus¨ atzliche Zeile am Ende der Tabelle 6.2 hinzu: x5 || P5 (¯ x) P4,5 (¯ x) P3,4,5 (¯ x) P2,3,4,5 (¯ x) P1,2,3,4,5 (¯ x) P0,1,2,3,4,5 (¯ x). Anschließend wird der Wert P0,1,2,3,4,5 (¯ x) des entsprechenden Polynoms 5-ten Grades mit P0,1,2,3,4 (¯ x) und P1,2,3,4,5 (¯ x) verglichen, um die Genauigkeit der neuen N¨aherung abzusch¨ atzen. Ist man mit der erzielten Genauigkeit zufrieden, dann wird dieser adaptive Prozeß hier abgebrochen. Anderenfalls vergr¨oßert man die Tabelle wieder um eine Zeile, was einer weiteren Erh¨ ohung des Polynomgrades entspricht. Man beachte, daß bei

336

Kapitel 6 Interpolation und Polynom-Approximation

diesem Vorgehen in die Berechnungen der Elemente der neuen Zeile nur die Werte der zuletzt bestimmten Zeile eingehen. Diese Berechnungsstrategie wird Neville-Schema 1 genannt. F¨ ur die Konstruktion des Neville-Schemas sind eigentlich nur 2 Indizes erforderlich. Das Voranschreiten nach unten entspricht der Verwendung weiterer Punkte xi mit wachsendem i, das Voranschreiten nach rechts entspricht einer Vergr¨oßerung des Grades der Interpolationspolynome. Es bezeichne Qi,j ≡ Qi,j (¯ x), i ≥ j, das auf den j + 1 St¨ utzstellen xi−j , xi−j+1 , . . . , xi−1 , xi definierte und an der Stelle x = x ¯ ausgewertete Interpolationspolynom vom Grad h¨ ochstens gleich j. Bei der Berechnung von Qi,j = Pi−j,i−j+1,...,i−1,i (¯ x) nach dem Neville-Schema hat man in die Formel (6.22) die Polynomwerte Qi,j−1 ≡ Pi−j+1,...,i−1,i (¯ x) und Qi−1,j−1 ≡ Pi−j,i−j+1,...,i−1 (¯ x) zu substituieren: Qi,j =

(¯ x − xi )Qi−1,j−1 − (¯ x − xi−j )Qi,j−1 , j = 1, 2, 3, . . . , i = j, j + 1, . . . xi−j − xi

Wird noch Qi,0 ≡ f (xi ), i = 0, . . . , n, gesetzt, dann kann man die Tabelle 6.2, wie in der Tabelle 6.3 angegeben, vereinfacht aufschreiben. x0

Q0,0

x1

Q1,0

Q1,1

x2

Q2,0

Q2,1

Q2,2

x3

Q3,0

Q3,1

Q3,2

Q3,3

x4

Q4,0

Q4,1

Q4,2

Q4,3

Q4,4

Tabelle 6.3: Neville-Schema

Im Algorithmus 6.1 ist diese Berechnungsvorschrift f¨ ur die Matrix Q implementiert. Man beachte, daß in den u ¨blichen Programmiersprachen die Indizierung von Feldern nicht mit Null, sondern mit Eins beginnt. Dies wurde im Algorithmus 6.1 ber¨ ucksichtigt. ¨ Es muß bei der Eingabe nur n durch n + 1 ersetzt werden, um Ubereinstimmung mit dem sonstigen Text zu erhalten.

6.5

Dividierte Differenzen

Die im vorangegangenen Abschnitt betrachtete iterierte Interpolation ist sachgem¨aß, falls an diskreten Stellen x ¯k die Werte der Interpolationspolynome Pj (¯ xk ) mit sukzessiv 1

Watson Neville (1886–1965), englischer Mathematiker. Auf Alexander Craig Aitken (1885–1967) geht ein ¨ ahnliches Schema zur¨ uck, das sich jedoch in der Praxis nicht durchgesetzt hat.

6.5 Dividierte Differenzen

337

Iterierte Interpolation Input: for

St¨ utzstellen x1 . . . , xn , St¨ utzwerte f (x1 ), . . . , f (xn ), Stelle x ¯.

i=1:n qi,1 = f (xi )

end for i = 2 : n for j = 2 : i qi,j =

(¯ x − xi )qi−1,j−1 − (¯ x − xi−j+1 )qi,j−1 xi−j+1 − xi

end end Output(’Matrix des Neville-Schemas Q=’, Q) und stop

Algorithmus 6.1: Iterierte Interpolation

ansteigendem Grad j gesucht sind. Jedes Element des Neville-Schemas h¨angt von der speziellen Interpolationsstelle x ¯k ab. Damit kann dieses Verfahren nicht f¨ ur eine explizite Darstellung der Interpolationspolynome verwendet werden. Eine andere Technik, die es mit sehr geringem zus¨ atzlichen Aufwand erm¨oglicht das Polynom Pj+1 (x) explizit darzustellen – ausgehend von der bekannten Gestalt des Interpolationspolynoms Pj (x) – ist unter dem Namen Verfahren der dividierten Differenzen bekannt. Dieses Verfahren f¨ uhrt im Vergleich zur Lagrange-Darstellung nur zu einer anderen Schreibweise des eindeutig bestimmten Interpolationspolynoms. Es sei Pn (x) ein Polynom vom Grad h¨ ochstens gleich n, das mit der gegebenen Funktion f (x) an den paarweise verschiedenen St¨ utzstellen x0 , x1 , . . . , xn u ¨bereinstimmt. Die den Namen des Verfahrens charakterisierenden dividierten Differenzen (von f (x) bez¨ uglich x0 , x1 , . . . , xn ) wollen wir wie folgt herleiten. Das gesuchte Interpolationspolynom Pn (x) werde hierzu in der Form Pn (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) (6.23) + · · · + an (x − x0 )(x − x1 ) · · · (x − xn−1 )

geschrieben, wobei a0 , a1 , . . . , an noch geeignet zu bestimmende Koeffizienten bezeichnen. Den Koeffizienten a0 findet man, indem die Stelle x0 in den Ansatz (6.23) eingesetzt ¨ und die Ubereinstimmung von Pn (x0 ) mit f (x0 ) gefordert wird: a0 = Pn (x0 ) = f (x0 ).

(6.24)

338

Kapitel 6 Interpolation und Polynom-Approximation

Analog ergibt sich aus Pn (x1 ) = a0 + a1 (x1 − x0 ) = f (x1 ) der Koeffizient a1 zu a1 =

f (x1 ) − f (x0 ) . x1 − x0

(6.25)

An dieser Stelle l¨ aßt sich nun der Begriff der dividierten Differenzen einf¨ uhren. So wird die • dividierte Differenz 0-ter Ordnung f [xi ] von f (x) bez¨ uglich der St¨ utzstelle xi erkl¨ art zu: f [xi ] ≡ f (xi ),

i = 0, . . . , n.

Die dividierten Differenzen h¨ oherer Ordnung k¨onnen jetzt induktiv definiert werden. • dividierte Differenz 1-ter Ordnung f [xi , xi+1 ] von f (x) bez¨ uglich xi , xi+1 : f [xi , xi+1 ] ≡

f [xi+1 ] − f [xi ] , xi+1 − xi

i = 0, . . . , n − 1.

Sind die beiden dividierten Differenzen (k − 1)-ter Ordnung f [xi , xi+1 , xi+2 , . . . , xi+k−1 ] und f [xi+1 , xi+2 , . . . , xi+k−1 , xi+k ] gegeben, dann berechnet sich die • dividierte Differenz k-ter Ordnung f [xi , xi+1 , . . . , xi+k ] von f (x) bez¨ uglich der St¨ utzstellen xi , xi+1 , . . . , xi+k zu: f [xi , xi+1 , . . . , xi+k ] ≡

f [xi+1 , xi+2 , . . . , xi+k ] − f [xi , xi+1 , . . . , xi+k−1 ] , xi+k − xi i = 0, . . . , n − k.

Mit diesem Formalismus k¨ onnen nun a0 und a1 aus (6.24) bzw. (6.25) in der Form a0 = f [x0 ],

a1 = f [x0 , x1 ]

geschrieben werden und das Interpolationspolynom (6.23) nimmt damit die Gestalt an: Pn (x) =f [x0 ] + f [x0 , x1 ](x − x0 ) + a2 (x − x0 )(x − x1 ) + · · · + an (x − x0 )(x − x1 ) · · · (x − xn−1 ). Die noch verbleibenden Koeffizienten von Pn (x) berechnet man auf die gleiche Art und Weise. Die hierzu erforderlichen algebraischen Manipulationen sind jedoch sehr aufwendig. Deshalb wollen wir hier nur das Ergebnis angeben und u ¨berlassen die Herleitung dem interessierten Leser: ak = f [x0 , x1 , . . . , xk ],

k = 0, 1, . . . , n.

(6.26)

6.5 Dividierte Differenzen

339

Setzt man (6.26) in die Formel (6.23) ein, so resultiert schließlich f¨ ur das gesuchte Interpolationspolynom die sogenannte Newton-Darstellung des Interpolationspolynoms

Pn (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) + · · · + f [x0 , x1 , . . . , xn ](x − x0 )(x − x1 ) · · · (x − xn−1 ).

(6.27)

Bemerkung 6.3. Bei der mit der Methode der dividierten Differenzen gewonnenen Darstellungsform (6.27) des Interpolationspolynoms brauchen im Falle einer sukzessiven Erh¨ ohung des Polynomgrades die bereits berechneten Koeffizienten nicht neu bestimmt zu werden. Ist man an der expliziten Gestalt des Interpolationspolynoms interessiert, dann sollte man anstelle der Lagrange-Darstellung stets die Darstellung (6.27) verwenden.  Bemerkung 6.4. Da das Interpolationspolynom eindeutig bestimmt ist, besitzt seine Darstellung mittels dividierter Differenzen die gleichen qualitativen Eigenschaften wie die Lagrange-Form. Das trifft insbesondere auch auf das oszillatorische Verhalten an den R¨ andern des Interpolationsintervalls zu, wenn der Grad des Polynoms hinreichend groß ist.  Im Programm 6.2 ist eine Matlab-Implementierung angegeben, mit der sich die Koeffizienten ak in der Darstellung (6.23) des Interpolationspolynoms berechnet lassen. Verwendet werden dabei die in der Tabelle 6.4 angegebenen vorw¨artsgenommenen dividierten Differenzen (siehe auch die Definition 6.3). Programm 6.2

Newton-Interpolation

function a=newtoninter(x,y) % % x: Vektor der St¨ utzstellen x(1) < x(2) ,..., x(n) < x(n+1) % y: Vektor der St¨ utzwerte y(1),...,y(n+1) % a: Vektor mit den Koeffizienten der Newton-Darstellung % des Interpolationspolynoms % x=x(:); n=length(x); for i=1:n-1 y(i+1:n) = (y(i+1:n)-y(i))./ (x(i+1:n)-x(i)); end c=y;

Im weiteren Text verwenden wir spezielle dividierte Differenzenausdr¨ ucke, die u ¨blicherweise in Form einer Tabelle angeordnet werden. Bei ihrer Definition nehmen wir hier Bezug auf die Tabelle 6.4.

340

Kapitel 6 Interpolation und Polynom-Approximation

x f (x)

Ordnung 1

Ordnung 2

Ordnung 3

x0 f [x0 ] f [x0 , x1 ] =

f [x1 ] − f [x0 ] x1 − x0

x1 f [x1 ]

f [x0 , x1 , x2 ] = f [x1 , x2 ] =

f [x1 , x2 ] − f [x0 , x1 ] x2 − x0

f [x2 ] − f [x1 ] x2 − x1

f [x0 , x1 , x2 , x3 ] =

x2 f [x2 ]

f [x1 , x2 , x3 ] − f [x0 , x1 , x2 ] x3 − x0

f [x1 , x2 , x3 ] = f [x2 , x3 ] =

f [x2 , x3 ] − f [x1 , x2 ] x3 − x1

f [x3 ] − f [x2 ] x3 − x2

f [x1 , x2 , x3 , x4 ] =

x3 f [x3 ]

f [x2 , x3 , x4 ] − f [x1 , x2 , x3 ] x4 − x1

f [x2 , x3 , x4 ] = f [x3 , x4 ] =

f [x3 , x4 ] − f [x2 , x3 ] x4 − x2

f [x4 ] − f [x3 ] x4 − x3

f [x2 , x3 , x4 , x5 ] =

x4 f [x4 ]

f [x3 , x4 , x5 ] − f [x2 , x3 , x4 ] x5 − x2

f [x3 , x4 , x5 ] = f [x4 , x5 ] =

f [x4 , x5 ] − f [x3 , x4 ] x5 − x3

f [x5 ] − f [x4 ] x5 − x4

x5 f [x5 ]

Tabelle 6.4: Dividierte Differenzen

Definition 6.3. • Die in der Tabelle 6.4 unterstrichenen dividierten Differenzen werden vorw¨ artsgenommene dividierte Differenzen genannt. • Die in der Tabelle 6.4 u uckw¨ artsge¨berstrichenen dividierten Differenzen werden r¨ nommene dividierte Differenzen genannt. 

6.5 Dividierte Differenzen

341

Im folgenden wird es erforderlich sein, einige Eigenschaften der dividierten Differenzen auszunutzen. Wir wollen zuerst zeigen, daß f¨ ur die dividierte Differenz k-ter Ordnung gilt: f [xi , xi+1 , . . . , xi+k ] =

f [xi ] (xi − xi+1 )(xi − xi+2 ) · · · (xi − xi+k ) +

f [xi+1 ] (xi+1 − xi )(xi+1 − xi+2 ) · · · (xi+1 − xi+k )

(6.28)

.. . +

f [xi+k ] . (xi+k − xi )(xi+k − xi+1 ) · · · (xi+k − xi+k−1 )

Mit ω(x) ≡ (x − xi )(x − xi+1 ) · · · (x − xi+k ) ergibt sich daraus i+k X f [xj ] f [xi , xi+1 , . . . , xi+k ] = . 0 (x ) ω j j=i

(6.29)

Den Nachweis f¨ uhren wir mit vollst¨ andiger Induktion. F¨ ur k = 1 ist die Behauptung richtig, da f [xi+1 ] − f [xi ] f [xi ] f [xi+1 ] f [xi , xi+1 ] = = + xi+1 − xi xi − xi+1 xi+1 − xi gilt. Es werde nun angenommen, daß (6.29) f¨ ur k = l − 1 richtig ist. Um die Richtigkeit auch f¨ ur k = l zu zeigen, schreiben wir f [xi+1 , . . . , xi+l ] − f [xi , . . . , xi+l−1 ] xi+l − xi  1 f [xi+1 ] = xi+l − xi (xi+1 − xi+2 )(xi+1 − xi+3 ) · · · (xi+1 − xi+l )

f [xi , xi+1 , . . . , xi+l ] =

f [xi+2 ] + ··· (xi+2 − xi+1 )(xi+2 − xi+3 ) · · · (xi+2 − xi+l ) f [xi+l ] (xi+l − xi+1 )(xi+l − xi+2 ) · · · (xi+l − xi+l−1 )  f [xi ] − (xi − xi+1 )(xi − xi+2 ) · · · (xi − xi+l−1 ) f [xi+1 ] + ··· (xi+1 − xi )(xi+1 − xi+2 ) · · · (xi+1 − xi+l−1 )  f [xi+l−1 ] + . (xi+l−1 − xi )(xi+l−1 − xi+1 ) · · · (xi+l−1 − xi+l−2 ) (6.30)

+

342

Kapitel 6 Interpolation und Polynom-Approximation

Im obigen Ausdruck kommen f [xi ] und f [xi+l ] je einmal in den Summanden f [xi ] (xi − xi+1 )(xi − xi+2 ) · · · (xi − xi+l )

und

f [xi+l ] (xi+l − xi )(xi+l − xi+1 ) · · · (xi+l − xi+l−1 ) vor, so daß sie in die zu beweisende Gleichung (6.29) passen. Alle anderen f [xj ] treten doppelt auf. Werden diese Terme paarweise zusammengefaßt, dann ergibt sich  1 f [xj ] xi+l − xi (xj − xi+1 ) · · · (xj − xj−1 )(xj − xj+1 ) · · · (xj − xi+l ) f [xj ] − (xj − xi ) · · · (xj − xj−1 )(xj − xj+1 ) · · · (xj − xi+l−1 ) =

=



f [xj ] (xj − xi+1 ) · · · (xj − xj−1 )(xj − xj+1 ) · · · (xj − xi+l−1 )   1 1 1 × − (xi+l − xi ) xj − xi+l xj − xi

(6.31)

f [xj ] . (xj − xi )(xj − xi+1 ) · · · (xj − xj−1 )(xj − xj+1 ) · · · (xj − xi+l )

Damit ist die Formel (6.29) f¨ ur k = l gezeigt und es ergeben sich daraus die folgenden Eigenschaften der dividierten Differenzen: 1) Die dividierte Differenz einer Summe oder Differenz von Funktionen ist gleich der Summe oder Differenz der dividierten Differenzen der Funktionen. 2) Ein konstanter Faktor kann aus dem Ausdruck der dividierten Differenz ausgeklammert werden. 3) Die dividierten Differenzen sind symmetrische Funktionen ihrer Argumente, d.h., f [xi , xi+1 , . . . , xi+k ] = f [xi+1 , xi , xi+2 , . . . , xi+k ] = f [xi+2 , xi+1 , xi , xi+3 , . . . , xi+k ] = ··· 4) Wenn x und y durch die lineare Relation x = αy + β, α 6= 0, verkn¨ upft sind, dann gilt 1 f [xi , . . . , xi+k ] = k g[yi , yi+1 , . . . , yi+k ], α xj − β wobei g(y) ≡ f (αy + β) und yj ≡ ist. α

6.5 Dividierte Differenzen

343

Die Gleichung (6.12) gilt auch f¨ ur die Darstellung des Interpolationspolynoms P (x) mittels dividierter Differenzen. Aufgrund der obigen Aussagen l¨aßt sich jedoch das auf der rechten Seite stehende Restglied in modifizierter Form aufschreiben. Dazu betrachten wir unter Beachtung von f (x) = f [x]: f [x, x0 , x1 , . . . , xn ] =

f (x) (x − x0 )(x − x1 ) · · · (x − xn ) f [x0 ] + (x0 − x)(x0 − x1 ) · · · (x0 − xn ) f [xn ] + ··· + . (xn − x)(xn − x0 ) · · · (xn − xn−1 )

(6.32)

Hieraus ergibt sich f (x) =f [x0 ]

(x − x1 )(x − x2 ) · · · (x − xn ) (x0 − x1 )(x0 − x2 ) · · · (x0 − xn )

+ · · · + f [xn ]

(x − x0 )(x − x1 ) · · · (x − xn−1 ) (xn − x0 )(xn − x1 ) · · · (xn − xn−1 )

(6.33)

+ (x − x0 )(x − x1 ) · · · (x − xn )f [x, x0 , x1 , . . . , xn ]. Folglich ist f (x) = Pn (x) + (x − x0 )(x − x1 ) · · · (x − xn ) f [x, x0 , . . . , xn ].

(6.34)

Bezeichnet man den auf der rechten Seite von (6.12) stehenden Restterm mit Rn (x), so ergibt sich f¨ ur diesen Rn (x) = f (x) − Pn (x) = (x − x0 )(x − x1 ) · · · (x − xn ) f [x, x0 , . . . , xn ].

(6.35)

Besitzt die Funktion f (x) Ableitungen bis zur Ordnung n+1, dann erhalten wir schließlich die interessante Beziehung

f [x, x0 , . . . , xn ] =

f (n+1) (ξ(x)) , (n + 1)!

(6.36)

die insbesondere im Abschnitt 9.1 bei der numerischen Differentiation eine wichtige Rolle spielen wird. In (6.36) bezeichnet ξ(x) einen Punkt, der im kleinsten Intervall liegt, das die Punkte x0 , x1 , . . . , xn sowie auch x enth¨alt. Ordnet man die St¨ utzstellen x0 , x1 , . . . , xn ¨ aquidistant (gleichabst¨andig) an, dann l¨aßt sich (6.27) in einer Form aufschreiben, die f¨ ur numerische Zwecke sehr g¨ unstig ist. Es seien h ≡ xi+1 − xi ,

i = 0, 1, . . . , n − 1,

x ≡ x0 + sh,

xi = x0 + ih.

344

Kapitel 6 Interpolation und Polynom-Approximation

Dann ist x − xi = (s − i)h und das Interpolationspolynom (6.27) lautet Pn (x) = Pn (x0 + sh) = f [x0 ] + shf [x0 , x1 ] + s(s − 1)h2 f [x0 , x1 , x2 ] + · · · + s(s − 1) · · · (s − n + 1)hn f [x0 , x1 , . . . , xn ] n X = s(s − 1) · · · (s − k + 1)hk f [x0 , x1 , . . . , xk ]. k=0

Verwendet man eine Verallgemeinerung der Binomialkoeffizienten   s s(s − 1) · · · (s − k + 1) = , k! k wobei s keine ganze Zahl zu sein braucht, dann l¨aßt sich Pn (x) in der kompakten Form

Pn (x) = Pn (x0 + sh) =

n   X s k! hk f [x0 , x1 , . . . , xk ] k

(6.37)

k=0

aufschreiben. Die auf diese Weise gewonnene neue Darstellung (6.37) des (eindeutig bestimmten) Interpolationspolynoms wird u ¨blicherweise als Newtonsches Interpolationspolynom mit vorw¨ artsgenommenen dividierten Differenzen bezeichnet. Ber¨ ucksichtigt man nun noch die in den Formeln (4.50) und (4.51) erkl¨arten vorw¨artsgenommenen Differenzen, dann ergibt sich f (x1 ) − f (x0 ) 1 = 4 f (x0 ), x1 − x0 h   1 4f (x1 ) − 4f (x0 ) 1 f [x0 , x1 , x2 ] = = 2 42 f (x0 ) 2h h 2h f [x0 , x1 ] =

und allgemein 1 4k f (x0 ). k! hk Aus (6.37) folgt damit die sehr u ¨bersichtliche Darstellung des Interpolationspolynoms Pn (x): n   X s Pn (x) = 4k f (x0 ). (6.38) k f [x0 , x1 , . . . , xk ] =

k=0

Die Anordnung der St¨ utzstellen in umgekehrter Reihenfolge xn , xn−1 , . . . , x1 , x0 f¨ uhrt auf eine ¨ ahnliche Darstellung des Interpolationspolynoms (vergleiche mit Formel (6.27)): Pn (x) =f [xn ] + f [xn−1 , xn ](x − xn ) + f [xn−2 , xn−1 , xn ](x − xn )(x − xn−1 ) (6.39) + · · · + f [x0 , . . . , xn ](x − xn )(x − xn−1 ) · · · (x − x1 ).

6.5 Dividierte Differenzen

345

Verwendet man wiederum ein ¨ aquidistantes Gitter x ≡ xn + sh,

xi = xn + (i − n)h,

s negativ,

dann ist x − xi = (s + n − i)h und die Formel (6.39) nimmt die Gestalt an Pn (x)

=

Pn (xn + sh)

=

f [xn ] + shf [xn−1 , xn ] + s(s + 1)h2 f [xn−2 , xn−1 , xn ]

(6.40)

n

+ · · · + s(s + 1) · · · (s + n − 1)h f [x0 , x1 , . . . , xn ]. Die Darstellung (6.40) wird als Newtonsches Interpolationspolynom mit r¨ uckw¨ artsgenommenen dividierten Differenzen bezeichnet. Um (6.40) in einer zu (6.38) entsprechenden Form angeben zu k¨onnen, sind noch einige Vorarbeiten notwendig. Wie im Abschnitt 4.7 f¨ ur eine gegebene Folge {xk }∞ k=0 die vorw¨ artsgenommenen Differenzen 4n xk erkl¨art wurden (siehe die Definition 4.3), lassen sich f¨ ur diese Folge auch r¨ uckw¨ artsgenommene Differenzen 5n xk definieren. Definition 6.4. Gegeben sei eine Folge {xk }∞ origen r¨ uckw¨ artsgek=0 . Unter den zugeh¨ nommenen Differenzen (1. Ordnung) 5xk sollen die Ausdr¨ ucke 5xk ≡ xk − xk−1 ,

k = 1, 2, . . .

(6.41)

verstanden werden. R¨ uckw¨ artsgenommene Differenzen h¨oherer Ordnung 5n xk seien wie folgt rekursiv erkl¨ art: 5n xk ≡ 5(5n−1 xk ),

n≥2

51 xk ≡ 5xk .

(6.42) 

Die r¨ uckw¨ artsgenommenen Differenzen berechnen sich analog den vorw¨artsgenommenen Differenzen (siehe die Formeln (4.52)–(4.54)) zu 5xk = xk − xk−1 , 52 xk = xk − 2xk−1 + xk−2 53 xk = xk − 3xk−1 + 3xk−2 − xk−3 54 xk = xk − 4xk−1 + 6xk−2 − 4xk−3 + xk−4 .. .     n n n 5 xk = xk − xk−1 + xk−2 − · · · + (−1)n xk−n . 1 2

(6.43)

346

Kapitel 6 Interpolation und Polynom-Approximation

Des weiteren besteht zwischen den vorw¨ arts- und r¨ uckw¨artsgenommenen Differenzen der Zusammenhang 5xk = 4xk−1 ,

52 xk = 42 xk−2 , . . . , 5n xk = 4n xk−n .

(6.44)

Man kann nun die r¨ uckw¨ artsgenommenen dividierten Differenzen durch die oben erkl¨ arten r¨ uckw¨ artsgenommene Differenzen wie folgt ausdr¨ ucken: f [xn−1 , xn ] =

1 5 f (xn ), h

f [xn−2 , xn−1 , xn ] =

1 52 f (xn ) 2h2

und allgemein f [xn−k , . . . , xn−1 , xn ] =

1 5k f (xn ). k! hk

(6.45)

Setzt man diese Ausdr¨ ucke in (6.40) ein, dann ergibt sich Pn (x) =f (xn ) + s 5 f (xn ) + + ··· +

s(s + 1) 2 5 f (xn ) 2

s(s + 1) · · · (s + n − 1) n 5 f (xn ). n!

Unter Verwendung der u ur Binomialkoeffizieneten ¨blichen Rechenregeln f¨ 

 −s −s(−s − 1) · · · (−s − k + 1) s(s + 1) · · · (s + k − 1) = = (−1)k , k k! k!

s reell,

erh¨ alt man schließlich die gesuchte Darstellung des Interpolationspolynoms

Pn (x) =

n X

(−1)k

k=0

  −s 5k f (xn ). k

(6.46)

Die obigen Newton-Formeln eignen sich zur Approximation an einer Stelle, die etwa in der Mitte der Tabelle liegt, nicht besonders gut. Es gibt in der Literatur eine Vielzahl von Interpolationsformeln mit dividierten Differenzen, die dieser Situation besser angepaßt sind. Wir wollen hier nur kurz die Formel von Stirling1 angeben. Es ist jetzt x0 in die N¨ ahe der Interpolationsstelle x ¯ zu legen. In der Tabelle 6.5 sind die St¨ utzstellen unterhalb von x0 mit x1 , x2 , . . . und die St¨ utzstellen oberhalb von x0 mit x−1 , x−2 , . . . bezeichnet. 1

Siehe z.B. Carl-Erik Fr¨ oberg: Numerical Mathematics, Theory and Computer Applications. The Benjamin/Cummings Publishing Company, Inc., Menlo Park et al., 1985, pp. 240–242

6.5 Dividierte Differenzen

347

Mit dieser Notation lautet die Formel von Stirling f¨ ur ungerades n = 2m + 1:

Pn (x) = P2m+1 (x) = f [x0 ] + +

sh (f [x−1 , x0 ] + f [x0 , x1 ]) + s2 h2 f [x−1 , x0 , x1 ] 2

s(s2 − 1)h3 (f [x−1 , x0 , x1 , x2 ] + f [x−2 , x−1 , x0 , x1 ]) 2

+ · · · + s2 (s2 − 1)(s2 − 4) · · · (s2 − (m − 1)2 )h2m f [x−m , . . . , xm ] +

 s(s2 − 1) · · · (s2 − m2 )h2m+1 f [x−m , . . . , xm+1 ] + f [x−(m+1) , . . . , xm ] . 2 (6.47)

Ist n = 2m gerade, dann hat man nur den letzten Summanden in (6.47) wegzulassen. Die in dieser Formel ben¨ otigten dividierten Differenzen lassen sich wieder mit einem speziellen Rechenschema bestimmen, das in der Tabelle 6.5 angegeben ist. Es handelt sich dort um die unterstrichenen Gr¨ oßen. x

f (x) Ordnung 1

Ordnung 2

Ordnung 3

Ordnung 4

x−2 f [x−2 ] f [x−2 , x−1 ] x−1 f [x−1 ]

f [x−2 , x−1 , x0 ] f [x−1 , x0 ]

x0

f [x0 ]

f [x−2 , x−1 , x0 , x1 ] f [x−1 , x0 , x1 ]

f [x0 , x1 ] x1

f [x1 ]

f [x−2 , x−1 , x0 , x1 , x2 ] f [x−1 , x0 , x1 , x2 ]

f [x0 , x1 , x2 ] f [x1 , x2 ]

x2

f [x2 ] Tabelle 6.5: Dividierte Differenzen f¨ ur die Formel von Stirling

348

Kapitel 6 Interpolation und Polynom-Approximation

Unter Verwendung vorw¨ artsgenommener Differenzen l¨aßt sich die Formel von Stirling noch einfacher darstellen. Man erh¨ alt nach einigen Umformungen

    s s+1   + s 4f (x0 ) + 4f (x−1 ) 2 2 Pn (x) = f (x0 ) + + 42 f (x−1 ) 1 2 2     s+1 s+2   3 + s + 1 4 f (x−1 ) + 43 f (x−2 ) 4 4 + + 44 f (x−2 ) + · · · 3 2 2

(6.48)

F¨ ur die in Kapitel 9 beschriebenen numerischen Differentiationsformeln ben¨otigen wir eine weitere Schreibweise der Formel von Stirling, die man aus (6.48) ableiten kann. Hierzu m¨ ogen neben den vorw¨ arts- und r¨ uckw¨artsgenommenen Differenzen noch sogenannte zentrale Differenzen erkl¨ art sein. Definition 6.5. Gegeben seien eine Folge {xk }∞ k=−∞ mit xk+1 = xk + h sowie eine Funktion f (x). Unter den zugeh¨ origen zentralen Differenzen (n-ter Ordnung) δ n f (xk ) sollen die Ausdr¨ ucke

δ 2i+1 f (xk ) ≡ 42i+1 f (xk − 2i

2i

1 + 2i h), 2

δ f (xk ) ≡ 4 f (xk − ih),

n = 2i + 1 ungerade,

n = 2i gerade,

(6.49) k = 0, ±1, ±2, . . .

verstanden werden.



Als weiteres Hilfsmittel werden wir noch auf den Mittelwert-Operator zur¨ uckgreifen. Definition 6.6. Gegeben seien eine Folge {xk }∞ k=−∞ mit xk+1 = xk + h sowie eine Funktion f (x). Der zugeh¨ orige Mittelwert-Operator µ sei durch die Beziehung

µf (xk ) ≡

definiert.

  1 h h f (xk + ) + f (xk − ) 2 2 2

(6.50)



Wie man sich einfach davon u ¨berzeugen kann, l¨aßt sich nun die Formel von Stirling (6.47) bzw. (6.48) unter Verwendung der zentralen Differenzen (6.49) sowie des

6.6 Hermite-Interpolation

349

Mittelwert-Operators (6.50) in der folgenden u ¨bersichtlichen Form darstellen.       s s s 2 s+1 µ δf (x0 ) + δ f (x0 ) + µ δ 3 f (x0 ) 1 2 1 3     s s + k − 1 2k s+k + ··· + δ f (x0 ) + µ δ 2k+1 f (x0 ) + · · · 2k 2k − 1 2k + 1

Pn (x) =f (x0 ) +

6.6

(6.51)

Hermite-Interpolation

Wir wollen jetzt Approximationspolynome betrachten, die sowohl eine Verallgemeinerung der Taylor-Polynome als auch der Lagrange-Polynome darstellen. Es handelt sich hierbei um die Klasse der oskulierenden Polynome. Sie sind wie folgt definiert. Definition 6.7. Gegeben seien n+1 paarweise verschiedene St¨ utzstellen x0 , . . . , xn und dazu n + 1 nichtnegative ganze Zahlen m0 , . . . , mn . Die oskulierende Polynom-Approximation P (x) einer Funktion f ∈ Cm [a, b] mit m ≡ max{m0 , . . . , mn } und xi ∈ [a, b] ist dasjenige Polynom vom kleinsten Grad, welches an der St¨ utzstelle xi , i = 0, . . . , n, mit der Funktion f (x) und allen ihren Ableitungen der Ordnung kleiner oder gleich mi u  ¨bereinstimmt. Der Grad M eines oskulierenden Polynoms kann h¨ochstens M=

n X

mi + n

i=0

Pn sein, da die Anzahl der zu erf¨ ullenden Bedingungen gleich i=0 mi + (n + 1) ist und ein Polynom vom Grad M genau M + 1 Koeffizienten als Freiheitsgrade besitzt, die an die oben genannten Bedingungen angepaßt werden k¨onnen. Anstelle der Interpolationsbedingungen (6.10) treten somit die neuen M + 1 Bedingungen dk P (xi ) dk f (xi ) = , k dx d xk

i = 0 . . . , n, k = 0, . . . , mi .

(6.52)

Man beachte: • Ist n = 0, dann stimmt das die Funktion f (x) approximierende oskulierende Polynom mit dem Taylor-Polynom vom Grad m0 , das f (x) an der Stelle x0 ann¨ahert, u ¨berein. • Ist mi = 0, i = 0, . . . , n, dann stimmt das die Funktion f (x) approximierende oskulierende Polynom mit dem Lagrange-Polynom u ¨berein, das f (x) an den St¨ utzstellen x0 , . . . , xn interpoliert.

350

Kapitel 6 Interpolation und Polynom-Approximation

• Ist mi = 1, i = 0, . . . , n, dann erh¨ alt man die sogenannten Hermite-Polynome 1 H2n+1 (x). Die Hermite-Polynome H2n+1 (x) zeichnen sich insbesondere dadurch aus, daß sie die gleiche Form wie die zu approximierende Funktion f (x) in den n+1 Punkten (xi , f (xi )), i = 0, . . . , n, aufweisen, d.h., die Tangenten an das Polynom und an die Funktion stimmen dort u ¨berein. Wir werden aus der allgemeinen Klasse der oskulierenden Polynome in diesem Text nur die Hermite-Polynome studieren. Der folgende Satz gibt eine Vorschrift an, wie sich die Hermite-Polynome konstruieren lassen. Satz 6.5. Ist f ∈ C1 [a, b] und sind x0 . . . , xn paarweise verschiedene St¨ utzstellen aus dem Intervall [a, b], dann ist das eindeutige Polynom von minimalem Grad, das mit f (x) und f 0 (x) in diesen St¨ utzstellen u ochstens (2n + 1)-ten ¨bereinstimmt, ein Polynom von h¨ Grades. Es lautet:

H2n+1 (x) =

n X

f (xj ) Hn,j (x) +

j=0

n X

ˆ n,j (x) f 0 (xj ) H

(6.53)

j=0

mit den j-ten Hermite-Faktoren   Hn,j (x) ≡ 1 − 2(x − xj ) L0n,j (xj ) L2n,j (x)

und

ˆ n,j (x) ≡ (x − xj ) L2 (x). (6.54) H n,j

In den obigen Formeln bezeichnet wie u ¨blich Ln,j (x) den j-ten Lagrange-Faktor vom Grad n (siehe auch (6.9)). Des weiteren gilt f¨ ur f ∈ C2n+2 [a, b] die Fehlerformel

f (x) − H2n+1 (x) =

(x − x0 )2 · · · (x − xn )2 (2n+2) f (ξ(x)), (2n + 2)!

(6.55)

wobei ξ(x) eine Stelle aus (a, b) bezeichnet. Beweis: 1) Existenz Es ist 0 H2n+1 (x) =

n X

0 f (xj ) Hn,j (x) +

j=0

Um nun

1

dj dj H (x ) = f (xk ), 2n+1 k d xj d xj

n X

0 ˆ n,j f 0 (xj ) H (x).

j=0

j = 0, 1; k = 0, . . . , n,

(6.56)

Charles Hermite (1822–1901), franz¨ osischer Mathematiker. Er bewies im Jahre 1873 die Transzendenz der Zahl e.

6.6 Hermite-Interpolation

351

zu zeigen, gen¨ ugt es nachzuweisen, daß die in Formel (6.5) erkl¨arten Funktionen ˆ n,j (x) den Bedingungen (a)–(d) gen¨ Hn,j (x) und H ugen:  0, f¨ ur j 6= k ˆ n,j (xk ) = 0 f¨ (a) Hn,j (xk ) = , (c) H ur alle k, 1, f¨ ur j = k  d d ˆ 0, f¨ ur j 6= k (b) Hn,j (xk ) = 0 f¨ ur alle k, (d) Hn,j (xk ) = . 1, f¨ ur j = k dx dx Die obigen Bedingungen garantieren, daß H2n+1 (x) die Interpolationsbedingungen (6.52) erf¨ ullt, wie eine kurze Rechnung zeigt. F¨ ur jedes i = 0, . . . , n ist H2n+1 (xi ) =

n X

f (xj ) Hn,j (xi ) +

j=0

= f (xi ) · 1 +

n X

ˆ n,j (xi ) f 0 (xj ) H

j=0 n X

f (xj ) · 0 +

j=0 j6=i

und 0 H2n+1 (xi )

=

n X

=

f 0 (xj ) · 0 = f (xi )

j=0

0 f (xj ) Hn,j (xi )

j=0 n X

n X

+

n X

0 ˆ n,j f 0 (xj ) H (xi )

j=0

f (xj ) · 0 + f 0 (xi ) · 1 +

j=0

n X

f 0 (xj ) · 0 = f 0 (xi ).

j=0 j6=i

ˆ n,j (x), so implizieren die Bedingungen (c) Betrachtet man zuerst das Polynom H ˆ und (d), daß Hn,j (x) eine doppelte Wurzel an der Stelle xk f¨ ur j 6= k und eine einfache Wurzel an der Stelle xj haben muß. Ein Polynom vom Grad h¨ochstens gleich 2n + 1, das diese Eigenschaften besitzt, ist 2 2 2 2 ˆ n,j (x) = (x − x0 ) · · · (x − xj−1 ) (x − xj )(x − xj+1 ) · · · (x − xn ) H (xj − x0 )2 · · · (xj − xj−1 )2 (1)(xj − xj+1 )2 · · · (xj − xn )2

= L2n,j (x − xj ). Wenden wir uns jetzt dem Polynom Hn,j (x) zu. Die Bedingungen (a) und (b) implizieren, daß xk f¨ ur jedes k 6= j eine doppelte Wurzel von Hn,j (x) sein muß. Ein Polynom vom Grad h¨ ochstens gleich 2n + 1, das (a) und (b) erf¨ ullt, ist Hn,j (x) = (x − x0 )2 · · · (x − xj−1 )2 (x − xj+1 )2 · · · (x − xn )2 (ˆ ax + ˆb) mit noch zu bestimmenden Konstanten a ˆ und ˆb. Wir setzen α≡a ˆ

n Y

(xi − xj )2

i=0 i6=j

und β ≡ ˆb

n Y i=0 i6=j

(xi − xj )2 .

352

Kapitel 6 Interpolation und Polynom-Approximation Damit ergibt sich Hn,j (x) = L2n,j (x) (αx + β). Aus der Bedingung (a) folgt 1 = Hn,j (xj ) = L2n,j (xj ) (α xj + β) = α xj + β.

(6.57)

Die Bedingung (b) impliziert 0=

d Hn,j (xj ) = 2 Ln,j (xj ) L0n,j (xj ) (α xj + β) + L2n,j (xj ) α dx

= 2 L0n,j (xj ) (α xj + β) + α = 2 L0n,j (xj ) · (1) + α. Somit ist α = −2 L0n,j (xj ). Setzt man dies in die Gleichung (6.57) ein, dann ergibt sich β = 1 − α xj = 1 + 2 L0n,j (xj ) xj . Folglich gilt α x + β = −2 L0n,j (xj ) x + 1 + 2 L0n,j (xj ) xj = 1 − 2 (x − xj ) L0n,j (xj ). Hieraus erh¨ alt man schließlich   Hn,j (x) = (α x + β) L2n,j (x) = 1 − 2(x − xj ) L0n,j (xj ) L2n,j (x). ˆ n,j (x) best¨atigt. Da beide PolynoDamit ist die Form (6.5) von Hn,j (x) und H me vom Grad h¨ ochstens gleich 2n + 1 sind, kann auch der Grad von H2n+1 (x) h¨ ochstens 2n + 1 sein.

2) Eindeutigkeit Es sei P (x) ein Polynom vom Grad h¨ ochstens gleich 2n + 1 mit der Eigenschaft P (xk ) = f (xk )

und P 0 (xk ) = f 0 (xk ),

k = 0, . . . , n.

Das Polynom D(x) ≡ H2n+1 (x) − P (x) ist auch vom Grad h¨ochstens gleich 2n + 1 und erf¨ ullt f¨ ur alle k = 0, . . . , n die Beziehungen D(xk ) = 0, D0 (xk ) = 0. Deshalb muß D(x) von der folgenden Form sein D(x) = (x − x0 )2 (x − x1 )2 · · · (x − xn )2 g(x), wobei g(x) ein gewisses Polynom bezeichnet. Da nun D(x) ein Polynom vom Grad h¨ ochstens gleich 2n + 1 mit 2n + 2 Wurzeln ist, folgt aus dem Fundamentalsatz der Algebra unmittelbar D(x) ≡ 0, d.h P (x) = H2n+1 (x). 

¨ Der Beweis des Fehlerterms sei dem Leser als individuelle Ubung u ¨berlassen. 

In den Abbildungen 6.9 und 6.10 ist der Verlauf der Hermite-Faktoren Hn,j (x) und ˆ n,j (x) am Beispiel n = 6, j = 3 skizziert. Als St¨ H utzstellen wurden xj = j, j = 0, . . . , 6 ausgew¨ ahlt. Diese Stellen sind als kleine Kreise auf der x-Achse eingezeichnet.

6.6 Hermite-Interpolation

Abbildung 6.9: Typischer Verlauf des Hermite-Faktors H6,3 (x)

ˆ 6,3 (x) Abbildung 6.10: Typischer Verlauf des Hermite-Faktors H

353

354

Kapitel 6 Interpolation und Polynom-Approximation

Wir wollen nun die Hermite-Interpolation anhand eines Beispiels demonstrieren. Beispiel 6.5. Hierzu kehren wir zu der in Beispiel 6.4 betrachteten Aufgabe zur¨ uck. Es soll jetzt ein Hermite-Polynom vom Grad h¨ ochstens gleich 5 bestimmt werden, aus dem wir wieder eine N¨ aherung f¨ ur sin(1.5) berechnen k¨onnen. Diese Interpolationsaufgabe erfordert nicht die volle Tabelle 6.1, da aus 2n + 1 = 5 f¨ ur die ben¨otigte Anzahl von St¨ utzstellen n = 2 folgt. Jedoch m¨ ussen f¨ ur die Ableitung f 0 (x) die entsprechenden Werte hinzugef¨ ugt werden. Wir verwenden deshalb die in der Tabelle 6.6 angegebenen Zahlen. i

0

1

2

xi f (xi ) f 0 (xi )

1.3 0.96356 0.26750

1.6 0.99957 -0.02920

1.9 0.94630 -0.32329

Tabelle 6.6: St¨ utzstellen und St¨ utzwerte f¨ ur f (x) = sin(x)

Zuerst berechnen wir die Lagrange-Faktoren und deren Ableitungen: L2,0 (x)

=

(x − x1 )(x − x2 ) x2 − 3.5x + 3.04 50 2 175 152 = = x − x+ , (x0 − x1 )(x0 − x2 ) 0.18 9 9 9

L02,0 (x)

=

100 175 x− , 9 9

L2,1 (x)

=

(x − x0 )(x − x2 ) x2 − 3.2x + 2.47 100 2 320 247 = =− x + x− , (x1 − x0 )(x1 − x2 ) −0.09 9 9 9

L02,1 (x)

= −

L2,2 (x)

=

(x − x0 )(x − x1 ) x2 − 2.9x + 2.08 50 2 145 104 = = x − x+ , (x2 − x0 )(x2 − x1 ) 0.18 9 9 9

L02,2 (x)

=

100 145 x− . 9 9

200 320 x+ , 9 9

ˆ 2,j (x) ergeben sich dann wie folgt Die zugeh¨ origen Hermite-Faktoren H2,j (x) und H H2,0 (x)

=

[1 − 2(x − x0 )L02,0 (x0 )] L2,0 (x) 

=

=

50 2 175 152 [1 − 2(x − 1.3)(−5)] x − x+ 9 9 9  2 50 2 175 152 (10x − 12) x − x+ , 9 9 9

2

6.6 Hermite-Interpolation H2,1 (x)

H2,2 (x)

355

=

[1 − 2(x − x1 )L02,1 (x1 )] L22,1 (x)

=

1

=

[1 − 2(x − x2 )L02,2 (x2 )] L22,2 (x)

 2 247 100 2 320 − x + x− , 9 9 9

 2 45 50 2 145 104 = [1 − 2(x − 1.9) ] x x+ 9 9 9 9  2 50 2 145 104 = (20 − 10x) x − x+ , 9 9 9  2 50 2 175 152 2 ˆ H2,0 (x) = (x − x0 )L2,0 (x) = (x − 1.3) x − x+ , 9 9 9  2 100 2 320 247 2 ˆ H2,1 (x) = (x − x1 )L2,1 (x) = (x − 1.6) − x + x− , 9 9 9 ˆ 2,2 (x) H

=

(x − x2 )L22,2 (x) 

= (x − 1.9)

50 2 145 104 x − x+ 9 9 9

2 .

Schließlich berechnet sich H5 (x) nach der Formel (6.53) zu H5 (x) =

0.96356 H2,0 (x) + 0.99957 H2,1 (x) + 0.94630 H2,2 ˆ 2,0 (x) − 0.02920 H ˆ 2,1 (x) − 0.32329 H ˆ 2,2 (x). +0.26750 H

Setzt man die Stelle x ¯ = 1.5 in diese Formel ein, so bekommt man f¨ ur sin(1.5) die folgende N¨ aherung:         4 64 5 4 H5 (1.5) = 0.96365 + 0.99957 + 0.94630 + 0.26750 27 81 81 405     32 2 +0.02920 + 0.32329 = 0.99750.  405 405 Dem obigen Beispiel kann entnommen werden, daß die Formel (6.53) aufgrund der Bestimmung und Auswertung der Lagrange-Faktoren und ihrer Ableitungen sogar f¨ ur kleine n sehr aufwendig ist. Eine Alternative zur Erzeugung der Hermite-Polynome basiert auf der folgenden Beobachtung. Es gilt n¨amlich f¨ ur die dividierte Differenz erster Ordnung nach dem Mittelwertsatz

f [x0 , x1 ] =

f (x1 ) − f (x0 ) f 0 (ξ)(x1 − x0 ) = = f 0 (ξ) x1 − x0 x1 − x0

(6.58)

356

Kapitel 6 Interpolation und Polynom-Approximation

mit einer (unbekannten) Zwischenstelle ξ = x0 + ϑ(x1 − x0 ), 0 < ϑ < 1. Allgemeiner l¨ aßt sich zeigen, daß f¨ ur eine Funktion f ∈ Cn [a, b] der Mittelwertsatz f¨ ur dividierte Differenzen n-ter Ordnung erf¨ ullt ist, d.h., es gilt

f [x0 , x1 , . . . , xn ] =

f (n) (ξ) n!

(6.59)

mit einer Zwischenstelle ξ, min{x0 , . . . , xn } < ξ < max{x0 , . . . , xn }. Um dieses Resultat f¨ ur die Konstruktion des Hermite-Polynoms nutzbar zu machen, wollen wir annehmen, daß an den n + 1 St¨ utzstellen x0 , . . . , xn sowohl die Werte der Funktion f (x) als auch ihrer Ableitung f 0 (x) gegeben sind. Aus diesen St¨ utzstellen wird nun eine neue Punktmenge z0 , z1 , . . . , z2n+1 mittels der Vorschrift z2i = z2i+1 = xi

f¨ ur jedes i = 0, 1, . . . , n

gebildet. Mit den so konstruierten neuen St¨ utzstellen“ z0 , . . . , zn baut man die Tabel” le 6.4 der dividierten Differenzen auf. Da aber z2i = z2i+1 = xi f¨ ur jedes i ist, kann f [z2i , z2i+1 ] nicht u ur die dividierte Differenz erster Ordnung ¨ber die Formel f¨ f [z2i , z2i+1 ] =

f [z2i+1 ] − f [z2i ] z2i+1 − z2i

bestimmt werden. Nach der Formel (6.58) gilt jedoch f¨ ur ein ξ ∈ (x0 , x1 ) die Beziehung f [x0 , x1 ] = f 0 (ξ), aus der wiederum lim f [x0 , x1 ] = f 0 (x0 ) folgt. Somit ist x1 →x0

f [z2i , z2i+1 ] = f 0 (xi ) die sachgem¨ aße Bestimmungsformel. In der Tabelle 6.4 verwendet man deshalb anstelle der nicht definierten dividierten Differenzen erster Ordnung f [z0 , z1 ], f [z2 , z3 ], . . ., f [z2n , z2n+1 ] die Terme f 0 (x0 ), f 0 (x1 ), . . ., f 0 (xn ). Die u ¨brigen dividierten Differenzen werden wie u ¨blich erzeugt und anschließend in die Formel (6.52) f¨ ur des Newtonsche Interpolationspolynom mit vorw¨artsgenommenen dividierten Differenzen eingesetzt. Daraus resultiert die folgende Darstellung des Hermite-Polynoms

H2n+1 (x) = f [z0 ] +

2n+1 X

f [z0 , z1 , . . . , zi ](x − z0 ) · · · (x − zi−1 ),

(6.60)

i=1

wobei z2i = z2i+1 = xi und f [z2i , z2i+1 ] = f 0 (xi ) f¨ ur jedes i = 0, . . . , n ist. Die Tabelle 6.7 zeigt die ersten 4 Spalten der f¨ ur die Hermite-Interpolation modifizierten Tabelle 6.4.

6.7

Kubische Spline-Interpolation

In den vorherigen Abschnitten sind wir der Frage nachgegangen, wie man eine beliebige Funktion f (x) auf einem abgeschlossenen Intervall [a, b] durch Polynome Pn (x)

6.7 Kubische Spline-Interpolation z

f (z)

357 Ordnung 1

Ordnung 2

z0 = x0 f [z0 ] = f (x0 ) f [z0 , z1 ] = f 0 (x0 ) z1 = x0 f [z1 ] = f (x0 )

f [z1 , z2 ] =

f [z2 ] − f [z1 ] z2 − z1

z2 = x1 f [z2 ] = f (x1 ) f [z2 , z3 ] = f 0 (x1 ) z3 = x1 f [z3 ] = f (x1 )

f [z3 , z4 ] =

f [z4 ] − f [z3 ] z4 − z3

z4 = x2 f [z4 ] = f (x2 ) f [z4 , z5 ] = f 0 (x2 )

f [z0 , z1 , z2 ] f [z1 , z2 ] − f [z0 , z1 ] = z2 − z0 f [z1 , z2 , z3 ] f [z2 , z3 ] − f [z1 , z2 ] = z3 − z1 f [z2 , z3 , z4 ] f [z3 , z4 ] − f [z2 , z3 ] = z4 − z2 f [z3 , z4 , z5 ] f [z4 , z5 ] − f [z3 , z4 ] = z5 − z3

z5 = x2 f [z5 ] = f (x2 ) Tabelle 6.7: Dividierte Differenzen f¨ ur Hermite-Interpolation

m¨ oglichst gut ann¨ ahern kann. Eine Antwort darauf war die Interpolation mit Lagrange-, Newton- und Hermite-Polynomen. F¨ ur die Praxis ist dieses Vorgehen durchaus sachgem¨ aß, falls der Grad n der Interpolationspolynome aus Genauigkeitsgr¨ unden nicht allzu groß gew¨ ahlt werden muß. Wir haben auch gesehen, daß Polynome h¨oheren Grades an den R¨ andern stark schwingen. Um das unter dem Begriff Runge-Ph¨ anomen bekannte Oszillieren der Interpolationspolynome klein zu halten, bietet sich ein alternatives Vorgehen an. Man unterteilt das zugrundeliegende Intervall [a, b] ≡ [x0 , xn ] in eine gewisse Anzahl von Teilintervallen und konstruiert auf jedem dieser Teilintervalle eine (i.allg. verschiedene) Polynom-Approximation niedrigen Grades. Diese Strategie wird st¨ uckweise PolynomInterpolation genannt. Die einfachste st¨ uckweise Polynom-Interpolation stellt die in der Abbildung 6.11 skizzierte st¨ uckweise lineare Interpolation dar. Hier werden die Punkte (x0 , f (x0 )), (x1 , f (x1 )), . . . , (xn , f (xn )) einfach durch Geradenst¨ ucke verbunden. Offensichtlich sind sehr viele St¨ utzstellen erforderlich, um bei dieser Approximationstechnik eine akzeptable Genauigkeit zu erhalten. Ein entscheidender Nachteil ist des weiteren, daß die aus den Geradenst¨ ucken zusammengesetzte Interpolationsfunktion P (x) u utzstellen nicht glatt, ¨ber des gesamte Intervall [a, b] an den St¨ d.h., nicht differenzierbar ist. In den Naturwissenschaften und der Technik erfordern

358

Kapitel 6 Interpolation und Polynom-Approximation

Abbildung 6.11: Beispiel f¨ ur eine st¨ uckweise lineare Interpolation

¨ jedoch sehr h¨ aufig praktische Erw¨ agungen genau einen solchen glatten Ubergang. Die Verwendung st¨ uckweiser Hermite-Polynome anstelle von Geradenst¨ ucken wird dieser Zielstellung besser gerecht. Sind beispielsweise an den St¨ utzstellen x0 < x1 < · · · < xn die Werte von f (x) und f 0 (x) vorgegeben und approximiert man f (x) auf jedem der Teilintervalle [x0 , x1 ], [x1 , x2 ], . . . , [xn−1 , xn ] mit Hermite-Polynomen vom Grad 3, dann resultiert auf [x0 , xn ] eine stetig differenzierbare Interpolationsfunktion. Auf jedem Teilintervall [xj , xj+1 ], j = 0, . . . , n − 1, hat man somit die in Abschnitt 6.6 beschriebene Polynomfunktion H3 (x) zu bestimmen. Da die zugeh¨origen Lagrange-Faktoren nur vom ersten Grad sind, kann dies mit relativ geringem Aufwand realisiert werden. Der Nachteil der st¨ uckweisen Hermite-Interpolation liegt nun darin, daß an den St¨ utzstellen die Werte von f (x) und f 0 (x) bekannt sein m¨ ussen. In praktischen Problemstellungen sind die Werte f¨ ur die Ableitung aber nur in den seltensten F¨allen bekannt. Deshalb wollen wir uns im weiteren auf diejenigen Formen der st¨ uckweisen Interpolation beschr¨anken, die in (a, b) keine Informationen u ¨ber f 0 (x) ben¨otigen. Wie wir sp¨ater sehen werden, sind manchmal noch Ableitungswerte an den Intervallgrenzen erforderlich. Diese kann man sich dann durch die Bildung von Differenzenquotienten n¨aherungsweise beschaffen. Die einfachste differenzierbare st¨ uckweise Polynomfunktion auf dem gesamten Intervall [x0 , xn ] ergibt sich, indem man auf jedem einzelnen Segment [xj , xj+1 ], j = 0, . . . , n − 1, die Funktion f (x) durch ein quadratisches Polynom ann¨ahert. Konkret heißt dies, daß quadratische Funktionen auf [x0 , x1 ], [x1 , x2 ], . . ., [xn−1 , xn ] konstruiert werden, die in den Randpunkten der Segmente mit f (x) u ¨bereinstimmen. Da ein allgemeines quadra-

6.7 Kubische Spline-Interpolation

359

tisches Polynom drei freie Parameter besitzt und nur zwei davon f¨ ur die Anpassung an die vorgegebenen Werte von f (x) in den Endpunkten der Segmente ben¨otigt werden, verbleibt noch jeweils ein Freiheitsgrad. Dieser Freiheitsgrad kann dazu genutzt werden, die quadratischen Funktionen so zu bestimmen, daß die Interpolationsfunktion u ¨ber das gesamte Intervall [x0 , xn ] eine stetige Ableitung besitzt. Das Problem bei der st¨ uckweisen quadratischen Interpolation ist jedoch, daß durch die obigen Bedingungen nicht alle Parameter bestimmt sind und damit die Interpolationsfunktion nicht eindeutig festgelegt ist. Andererseits sind nicht genug Freiheitsgrade vorhanden, um praktisch relevante Bedingungen an beiden R¨ andern des Gesamtintervalls [x0 , xn ] vorschreiben zu k¨ onnen. So ist es nicht m¨ oglich zu fordern, daß die Ableitung der st¨ uckweisen Interpolationsfunktion mit f 0 (x) in x = x0 und x = xn u ¨bereinstimmt. Diejenige st¨ uckweise Polynom-Interpolation, die auf jedem Segment kubische Polynome verwendet, wird kubische Spline-Interpolation genannt und soll im folgenden etwas genauer beschrieben werden. Es ist die zur Zeit am h¨aufigsten verwendete Interpolationstechnik. Da das allgemeine kubische Polynom vier freie Parameter enth¨alt, ist auf dem Gesamtintervall [x0 , xn ] u ¨ber die stetige Differenzierbarkeit der Interpolationsfunktion (die u ¨blicherweise kubischer Spline genannt wird) hinaus auch noch eine stetige zweite Ableitung garantierbar. Bei der Konstruktion des kubischen Splines gehen nicht wie bei der Hermite-Interpolation die Ableitungen von f (x) an den St¨ utzstellen mit in die Rechnungen ein – sie m¨ ussen deshalb nicht bekannt sein. Dies ist der wesentliche Vorteil der kubischen Spline-Interpolation. Definition 6.8. Es seien eine auf dem Intervall [a, b] definierte Funktion f (x) sowie eine Menge von St¨ utzstellen a = x0 < x1 < · · · < xn = b gegeben. Eine kubische SplineInterpolationsfunktion (auch kurz kubischer Spline genannt) S(x) f¨ ur f (x) ist u ¨ber die Bedingungen (a)–(f) definiert: (a) S(x) ist auf dem Intervall [xj , xj+1 ), j = 0, . . . , n − 1, ein kubisches Polynom. Es werde mit Sj (x) bezeichnet. (b) S(xj ) = f (xj ),

j = 0, . . . , n.

(c) Sj+1 (xj+1 ) = Sj (xj+1 ),

j = 0, . . . , n − 2.

0 (d) Sj+1 (xj+1 ) = Sj0 (xj+1 ),

j = 0, . . . , n − 2.

00 (e) Sj+1 (xj+1 ) = Sj00 (xj+1 ),

j = 0, . . . , n − 1.

(f) Eine der folgenden Mengen von Randbedingungen ist erf¨ ullt: (i) S 00 (x0 ) = S 00 (xn ) = 0. 0

0

(ii) S (x0 ) = f (x0 ),

0

(Freier Rand) 0

S (xn ) = f (xn ).

(Eingespannter Rand)



Kubische Splines mit freiem Rand werden auch als nat¨ urliche Splines bezeichnet. Splines mit eingespanntem Rand liefern i.allg. genauere Resultate, da mehr Informationen u ¨ber den Verlauf der Funktion f (x) eingehen. Es werden jedoch an den Randpunkten x0 und xn die Werte von f 0 (x) oder zumindest hinreichend genaue Approximationen

360

Kapitel 6 Interpolation und Polynom-Approximation

dieser Funktionswerte ben¨ otigt. Da diese in vielen F¨allen nur mit erheblichen Aufwand bereitgestellt werden k¨ onnen, verwendet man in der Praxis sehr h¨aufig die nat¨ urlichen Splines. Die Abbildung 6.12 zeigt das Ergebnis einer Interpolation mit nat¨ urlichen kubischen Splines.

Abbildung 6.12: Beispiel f¨ ur eine Interpolation mit kubischen Splines

Um die kubische Spline-Interpolationsfunktion S(x) f¨ ur eine vorgegebene Funktion f (x) zu konstruieren, wenden wir die in der Definition 6.8 angegebenen Bedingungen (a)–(f) auf die kubischen Polynome Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 , j = 0, . . . , n − 1,

(6.61)

an und bestimmen die darin enthaltenen freien Parameter aj , bj , cj und dj . Als erstes ergeben sich aus den u ¨blichen Interpolationsbedingungen . Sj (xj ) = aj = f (xj ),

j = 0, . . . , n − 1.

Aus der Bedingung (c) folgt f¨ ur j = 0, . . . , n − 2 Sj+1 (xj+1 )

. = aj+1 = Sj (xj+1 ) = aj + bj (xj+1 − xj ) + cj (xj+1 − xj )2 + dj (xj+1 − xj )3 .

(6.62)

6.7 Kubische Spline-Interpolation

361

Zur Vereinfachung der Notation setzen wir hj ≡ xj+1 − xj . Obwohl auf dem Intervall [x0 , xn ] nur die kubischen Polynome S0 (x), . . . , Sn−1 (x) erforderlich sind, erkl¨aren wir entsprechend (6.61) noch ein Polynom Sn (x) und definieren analog zu (6.62) an ≡ f (xn ).

(6.63)

Damit ergibt sich nun aj+1 = aj + bj hj + cj h2j + dj h3j ,

j = 0, . . . , n − 1.

(6.64)

Man berechnet Sj0 (x) = bj + 2cj (x − xj ) + 3dj (x − xj )2 ,

S 00 (x) = 2cj + 6dj (x − xj ).

Aus der ersten Gleichung folgt unmittelbar Sj0 (xj ) = bj ,

(6.65)

j = 0, . . . , n − 1.

Wie im Falle der aj definieren wir bn ≡ S 0 (xn ).

(6.66)

Die Bedingung (d) impliziert . bj+1 = bj + 2cj hj + 3dj h2j ,

j = 0, . . . , n − 1.

(6.67)

Unter Ber¨ ucksichtigung der zweiten Gleichung in (6.65) definieren wir cn ≡ S 00 (xn )/2. . Die Bedingung (e) ergibt cj+1 = cj + 3dj hj , j = 0, . . . , n − 1, woraus unmittelbar dj =

cj+1 − cj , 3hj

j = 0, . . . , n − 1,

(6.68)

folgt. Sind die Koeffizienten cj bekannt, dann k¨onnen daraus nach der Formel (6.68) die Koeffizienten dj bestimmt werden. Setzt man jetzt (6.68) in (6.64) und (6.67) ein, dann bekommt man h2j (2cj + cj+1 ), 3

aj+1

=

aj + bj hj +

bj+1

=

bj + hj (cj + cj+1 ),

(6.69)

j = 0, . . . , n − 1.

(6.70)

j = 0, . . . , n − 1.

(6.71)

Die Aufl¨ osung von (6.69) nach bj ergibt

bj =

1 hj (aj+1 − aj ) − (2cj + cj+1 ), hj 3

362

Kapitel 6 Interpolation und Polynom-Approximation

Sind die Koeffizienten cj bekannt, dann k¨ onnen nach der Formel (6.71) die Koeffizienten bj berechnet werden. Verkleinert man den Index in (6.71) um eins, dann ergibt sich bj−1 =

1 hj−1 (aj − aj−1 ) − (2cj−1 + cj ). hj−1 3

(6.72)

Verkleinert man in (6.70) den Index ebenfalls um eins und setzt in die linke Seite der resultierenden Gleichung den Ausdruck (6.71) und in die rechte Seite den Ausdruck (6.72) ein, dann ergibt sich das folgende System linearer Gleichungen

hj−1 cj−1 + 2(hj−1 + hj )cj + hj cj+1 =

3 3 (aj+1 − aj ) − (aj − aj−1 ), hj hj−1 j = 1, . . . , n − 1.

(6.73)

Sind die Funktionswerte a0 , . . . , an (siehe die Formeln (6.62),(6.63)) und die Schrittweiten h0 , . . . , hn−1 vorgegeben, dann stellt (6.73) ein (unterbestimmtes) System von n − 1 linearen Gleichungen f¨ ur die n + 1 Unbekannten c0 , . . . , cn dar. Damit die Anzahl der Gleichungen mit der Anzahl der Unbekannten korrespondiert, m¨ ussen noch zwei weitere Bestimmungsgleichungen hinzugef¨ ugt werden. Diese findet man mittels der Randbedingungen (f), wie der folgende Satz zeigt. Satz 6.6. Es sei f (x) eine auf [a, b] definierte Funktion. Dann besitzt f (x) eine eindeutige nat¨ urliche Spline-Interpolationsfunktion S(x), d.h. eine eindeutige Spline-Interpolationsfunktion, die die Randbedingungen S 00 (a) = S 00 (b) = 0 (freier Rand) erf¨ ullt. Beweis: Aus den beiden Randbedingungen folgt unmittelbar cn ≡ S 00 (xn )/2 = 0 sowie 0 = S 00 (x0 ) = 2c0 + 6d0 (x0 − x0 ), d.h., c0 = 0 und cn = 0. Diese Gleichungen ergeben zusammen mit (6.73) ein lineares Gleichungssystem der Dimension n + 1, das in der Form (2.2) Ax = b

(6.74)

geschrieben werden kann, mit 

1  h0     A≡     

 2(h0 + h1 ) h1

h1 2(h1 + h2 ) ..

h2 ..

. ..

..

. ..

. hn−2

.

. ..

. 2(hn−2 + hn−1 )

hn−1 1

     ,     

6.7 Kubische Spline-Interpolation

       b≡     

363

0





3 3 (a2 − a1 ) − (a1 − a0 ) h1 h0 .. . .. . 3 3 (an − an−1 ) − (an−1 − an−2 ) hn−1 hn−2 0

           

     x≡     

und

c0



 c1    ..  .  .  ..  .   cn

Offensichtlich ist die Matrix A strikt diagonal-dominant. Der Satz 2.21 (man beachte auch die Bemerkung 2.13) besagt nun, daß das lineare Gleichungssystem (6.74) eine eindeutige L¨ osung besitzt. Diese kann mit den im Abschnitt 2.4.2 beschriebenen numerischen Verfahren f¨ ur tridiagonale lineare Gleichungssysteme berechnet werden.  Nachdem die Koeffizienten cj aus dem System (6.74) bestimmt sind, setzt man diese in (6.71) sowie (6.68) ein und erh¨ alt daraus die noch fehlenden Koeffizienten bj bzw. dj . Jetzt kann man f¨ ur jedes Segment [xj , xj+1 ] das zugeh¨orige kubische Polynom Sj (x) entsprechend (6.61) bilden. Ist an einer vorgegebenen Interpolationsstelle x = x ¯ eine N¨ aherung f¨ ur die Funktion f (x) gesucht, dann wird man zuerst dasjenige Segment bestimmen, in dem x ¯ liegt – sagen wir, dies ist [xk , xk+1 ]. Anschließend setzt man x ¯ in das entsprechende kubische Polynom Sk (x) ein und erh¨alt Sk (¯ x) ≈ f (¯ x). Im Programm 6.3 ist die nat¨ urliche Spline-Interpolation als Matlab-Funktion nspline implementiert. Man beachte, daß in der Matlab die Felder mit dem Index 1 beginnen m¨ ussen, so daß eine Index-Verschiebung erforderlich war. Bemerkung 6.5. Das obige Programm basiert auf den Algorithmen 2.7 und 2.8 zur L¨ osung tridiagonaler linearer Gleichungssysteme.  Bemerkung 6.6. Die kubische Spline-Interpolation ist eine sehr genaue Technik, wenn man nur die Schrittweiten h0 , . . . , hn nicht zu groß w¨ahlt. In den Anwendungen vermeidet man aber oftmals diese Interpolationstechnik, da die vielen Koeffizienten rein mathematischer Natur sind und sich kaum disziplin¨ar interpretieren lassen. Anders sieht es bei der Interpolation mit Polynomen u ¨ber das gesamte Intervall [a, b] aus. Hier kann man durchaus davon ausgehen, daß einige der zugeh¨origen Koeffizienten praktische Bedeutung besitzen. Man muß dann aber Genauigkeitsverluste, die durch die SplineInterpolation gerade vermieden werden, in Kauf nehmen.  F¨ ur Splines mit eingespanntem Rand gilt ein zu Satz 6.6 entsprechendes Resultat. Satz 6.7. Es sei f (x) eine auf [a, b] definierte Funktion. Dann besitzt f (x) eine eindeutige Spline-Interpolationsfunktion S(x), welche die beiden speziellen Randbedingungen S 0 (a) = f 0 (a) und S 0 (b) = f 0 (b) (eingespannter Rand) erf¨ ullt.

364

Kapitel 6 Interpolation und Polynom-Approximation

Programm 6.3

Nat¨ urlicher Spline

function [a,b,c,d]=nspline(x,y) % % x: Vektor der St¨ utzstellen x(1) < x(2) ,..., x(n) < x(n+1) % y: Vektor der St¨ utzwerte y(1),...,y(n+1) % a,b,c,d: Vektoren mit den Koeffizienten der Splines % x=x(:);y=y(:); if length(x)~=length(y), error(’Dimensionen von x und y m¨ ussen ¨ ubereinstimmen’), end n=length(x)-1; h=x(2:n+1)-x(1:n); a=y; q=zeros(n,1);l=q;mue=l;l(1)=1; q(2:n)=3*(a(3:n+1).*h(1:n-1)-a(2:n).*(x(3:n+1)-x(1:n-1))... +a(1:n-1).*h(2:n))./(h(1:n-1).*h(2:n)); z=zeros(n+1,1);b=z;c=z;d=z; for i=2:n l(i)=2*(x(i+1)-x(i-1))-h(i-1)*mue(i-1); mue(i)=h(i)/l(i); z(i)=(q(i)-h(i-1)*z(i-1))/l(i); end for j=n:-1:1 c(j)=z(j)-mue(j)*c(j+1); end b(1:n)=(a(2:n+1)-a(1:n))./h(1:n)-h(1:n).*(c(2:n+1)+2*c(1:n))/3; d(1:n)=(c(2:n+1)-c(1:n))./(3*h(1:n));

Beweis: Man findet unmittelbar S 0 (a) = S 0 (x0 ) = b0 . Die erste Randbedingung in . (f),(ii) besagt f 0 (a) = S 0 (a) = b0 . Verwendet man nun auf der rechten Seite dieser Beziehung die Darstellung von b0 , die sich aus (6.71) f¨ ur j = 0 ergibt, dann erh¨alt man f 0 (a) =

a1 − a0 h0 − (2c0 + c1 ) h0 3

bzw. 2h0 c0 + h0 c1 =

3 (a1 − a0 ) − 3f 0 (a). (6.75) h0

Nach Formel (6.66) ist S 0 (b) = S 0 (xn ) = bn . Aus der zweiten Randbedingung in (f),(ii) . erhalten wir f 0 (b) = S 0 (b) = bn . Setzt man in die rechte Seite die Darstellung von bn , die sich aus (6.70) f¨ ur j = n − 1 ergibt, ein, dann resultiert f 0 (b) = bn−1 + hn−1 (cn−1 + cn ). Ersetzt man nun bn−1 durch denjenigen Ausdruck, der sich f¨ ur j = n − 1 aus (6.71) ergibt, so folgt hn−1 an − an−1 − (2cn−1 + cn ) + hn−1 (cn−1 + cn ) hn−1 3 an − an−1 hn−1 = + (cn−1 + 2cn ) hn−1 3

f 0 (b) =

6.7 Kubische Spline-Interpolation

365

beziehungsweise hn−1 cn−1 + 2hn−1 cn = 3f 0 (b) −

3 (an − an−1 ). hn−1

(6.76)

Die Gleichungen (6.73) sowie (6.75), (6.76) ergeben zusammen ein System von n + 1 linearen Gleichungen in den n + 1 Unbekannten c0 , . . . , cn , das wir wieder in der Form Ax = b aufschreiben k¨ onnen, mit  2h0 h0  h0 2(h0 + h1 )   h1   A≡     

         b≡       

 h1 2(h1 + h2 ) ..

h2 ..

. ..

..

. ..

.

.

hn−2

3 (a1 − a0 ) − 3f 0 (a) h0 3 3 (a2 − a1 ) − (a1 − a0 ) h1 h0 .. . .. . 3 3 (an − an−1 ) − (an−1 − an−2 ) hn−1 hn−2 3 3f 0 (b) − (an − an−1 ) hn−1

. ..

. 2(hn−2 + hn−1 ) hn−1

hn−1 2hn−1

     ,     

                



und

   x≡   

c0 c1 .. . .. . cn

    .   

Offensichtlich ist die Matrix A wiederum strikt diagonal-dominant, so daß auch f¨ ur diese Randbedingungen eine eindeutige L¨ osung des linearen Gleichungssystems existiert.  Da bei der Spline-Interpolationsfunktion mit eingespanntem Rand mehr Informationen u ¨ber die zu approximierende Funktion f (x) in die Rechnungen eingeht als dies beim nat¨ urlichen Spline der Fall ist, wird man sich bei praktischen Interpolationsaufgaben i.allg. f¨ ur diesen Interpolationstyp entscheiden. Hierzu ist es aber notwendig, die Werte von f 0 (x) an den Randpunkten a und b mit ausreichender Genauigkeit zu approximieren. Wie man dies realisieren kann, wird im Kapitel 9 dieses Buches beschrieben.

366

Kapitel 6 Interpolation und Polynom-Approximation

F¨ ur den Fehler, der bei der Ersetzung einer Funktion f (x) durch ihre kubische SplineInterpolationsfunktion entsteht, gibt es in der Literatur eine Vielzahl von Absch¨atzungen. Eine solche wollen wir f¨ ur Splines mit eingespanntem Rand hier angeben. Satz 6.8. Gegeben sei eine Funktion f ∈ C4 [a, b] mit max |f (4) (x)| ≤ M . Bezeichnet a≤x≤b

S(x) die eindeutige kubische Spline-Interpolationsfunktion bez¨ uglich der n + 1 St¨ utzstellen a = x0 < x1 < · · · < xn = b, die S 0 (a) = f 0 (a) und S 0 (b) = f 0 (b) erf¨ ullt, dann gilt f¨ ur den Approximationsfehler

max |f (x) − S(x)| ≤

a≤x≤b

5M 384

max

0≤j≤n−1

(xj+1 − xj )4 .

Beweis: Siehe zum Beispiel die Monographie von Schultz.1

(6.77)



Das Programm 6.4 enth¨ alt die Matlab-Implementierung espline f¨ ur die kubische Spline-Interpolation mit eingespanntem Rand. Das Programm 6.5 berechnet schließlich an vorzugebenden Stellen t1 , . . . , tm , die nicht mit den St¨ utzstellen xi u ussen, die Werte des interpolierenden Splines. ¨bereinstimmen m¨ Hierzu m¨ ussen die zuvor mit den Programmen 6.3 oder 6.4 berechneten Koeffizientenvektoren a,b,c,d bereitgestellt werden. Eine wichtige praktische Eigenschaft der Spline-Funktionen ist deren minimales oszillatorisches Verhalten. So besitzt der kubische Spline unter allen Funktionen, die zweimal stetig differenzierbar auf einem Intervall [a, b] sind und eine gegebene Menge von Datenpunkten {(xi , yi )}ni=0 dort interpolieren, die geringsten Schwankungen. Im folgenden Satz wird dieses Resultat pr¨ azisiert. Man beachte dabei, daß die Kr¨ ummung einer Kurve, die durch die Gleichung y = f (x) beschrieben wird, durch den Ausdruck h i 2 −3/2 |f 00 (x)| 1 + {f 0 (x)} gegeben ist. L¨ aßt man den nichtlinearen Term in den eckigen Klammern weg, dann stellt |f 00 (x)| eine Approximation f¨ ur die Kr¨ ummung dar. Satz 6.9. Es seien f ∈ C2 [a, b] und S(x) die eindeutige kubische Spline-Interpolationsfunktion f¨ ur f (x), die durch die Punktmenge {(xi , f (xi ))}ni=0 verl¨ auft und die Randbedingungen S 0 (a) = f 0 (a), S 0 (b) = f 0 (b) erf¨ ullt. Dann gilt Z a

b

[S 00 (x)]2 dx ≤

Z

b

[f 00 (x)]2 dx.

(6.78)

a

Beweis: Mittels partieller Integration und unter Beachtung der Randbedingungen berechnet man 1

M. H. Schultz: Spline Analysis. Prentice-Hall, Englewood Cliffs, N.J., 1966

6.7 Kubische Spline-Interpolation Programm 6.4

367

Spline mit eingespanntem Rand

function [a,b,c,d]=espline(x,y,fs) % % x: Vektor der St¨ utzstellen x(1) < x(2) ,..., x(n) < x(n+1) % y: Vektor der St¨ utzwerte y(1),...,y(n+1) % fs: Vektor mit fs=[f’(x(1));f’(x(n+1))] % % a,b,c,d: Vektoren mit den Koeffizienten der Splines % n=length(x)-1; x=x(:);y=y(:); if length(x)~=length(y), error(’Dimensionen von x und y m¨ ussen ¨ ubereinstimmen’), end h=x(2:n+1)-x(1:n); a=y; q=zeros(n,1);l=q;mue=l;l(1)=1; q(1)=3*(a(2)-a(1))/h(1)-3*fs(1); q(n+1)=3*fs(2)-3*(a(n+1)-a(n))/h(n); q(2:n)=3*(a(3:n+1).*h(1:n-1)-a(2:n).*(x(3:n+1)-x(1:n-1))... +a(1:n-1).*h(2:n))./(h(1:n-1).*h(2:n)); l(1)=2*h(1); mue(1)=.5; z(1)=q(1)/l(1); for i=2:n l(i)=2*(x(i+1)-x(i-1))-h(i-1)*mue(i-1); mue(i)=h(i)/l(i); z(i)=(q(i)-h(i-1)*z(i-1))/l(i); end z=zeros(n+1,1);b=z;c=z;d=z; l(n+1)=h(n)*(2-mue(n)); z(n+1)=(q(n+1)-h(n)*z(n))/l(n+1); c(n+1)=z(n+1); for j=n:-1:1 c(j)=z(j)-mue(j)*c(j+1); end b(1:n)=(a(2:n+1)-a(1:n))./h(1:n)-h(1:n).*(c(2:n+1)+2*c(1:n))/3; d(1:n)=(c(2:n+1)-c(1:n))./(3*h(1:n));

Z

b

S 00 (x)[f 00 (x) − S 00 (x)] dx

b Z = S 00 (x)[f 0 (x) − S 0 (x)] − a

a

Z =

0−0−

b

S 000 (x)[f 0 (x) − S 0 (x)] dx

a

b

S 000 (x)[f 0 (x) − S 0 (x)] dx.

a

Da auf dem Segment [xj , xj+1 ] gilt S 000 (x) = Sj000 (x) = 6dj , ergibt sich Z

xj+1

xj

xj+1 S 000 (x)[f 0 (x) − S 0 (x)] dx = 6dj [f (x) − S(x)] = 0, xj

j = 0, . . . , n − 1.

368

Kapitel 6 Interpolation und Polynom-Approximation

Programm 6.5

Interpolation mit der Spline-Funktion

function [y]=splinec(a,b,c,d,x,t) % % x: Vektor der St¨ utzstellen, die in espline oder nspline verwendet wurden % t: Vektor der Ausgabestellen t(1),...,t(m)(auch ungeordnet) % a,b,c,d: zuvor berechnete Werte des Splines an den Ausgabestellen % % y: Vektor der Werte des Splines an den Ausgabestellen t % n=length(x)-1; m=length(t); y=zeros(m,1); for i=1:m yi=a(x==t(i)); if ~isempty(yi) y(i)=yi; else for j=1:n if x(j) < t(i) && t(i) < x(j+1) dd=t(i)-x(j); y(i)=a(j)+dd*(b(j)+dd*(c(j)+dd*d(j))); break end end end end

Z Somit ist

b

S 00 (x)[f 00 (x) − S 00 (x)] dx = 0 und es folgt

a

Z

b 00

00

Z

S (x)f (x) dx = a

b

[S 00 (x)]2 dx.

Wegen 0 ≤ [f 00 (x) − S 00 (x)]2 erhalten wir nun Z b Z b Z 0≤ [f 00 (x) − S 00 (x)]2 dx = [f 00 (x)]2 dx − 2 a

(6.79)

a

a

b

f 00 (x)S 00 (x) dx +

b

Z

a

[S 00 (x)]2 dx.

a

(6.80) Z Ber¨ ucksichtigt man (6.79) in (6.80), so ergibt sich 0 ≤

b 2

Z

[f (x)] dx − a

b 00

[S (x)]2 dx,

a

woraus die Behauptung (6.78) unmittelbar folgt und damit der Satz bewiesen ist.



Das Kapitel zur Interpolation wollen wir mit einem Beispiel abschließen, das auf recht lustige Weise zeigt, wie sich die kubische Spline-Interpolation in der Praxis sinnvoll einsetzen l¨ aßt. Es sei dem Leser auch angeraten, sich im World Wide Web unter dem Stichwort Splines etwas umzusehen. Es gibt dort sehr interessante Web-Seiten, die unter

6.7 Kubische Spline-Interpolation

369

anderem auch interaktive Experimente zulassen. Der Autor dieses Buches hat jedoch darauf verzichtet, die entsprechenden Links direkt anzugeben, da viele dieser Seiten leider nur sehr kurzlebig sind und nach dem Erscheinen des Textes vielleicht gar nicht mehr existieren. Trotzdem lohnt es sich, auf der Suche nach interessanten Beispielen und multimedialer numerischer Software im World Wide Web zu surfen. Die Adresse des Mathematik-Portals der freien Enzyklop¨ adie WikipediA http://de.wikipedia.org/wiki/Portal:Mathematik kann dabei als Ausgangspunkt dienen. Die WikipediA ist ein Projekt im Internet zur Erstellung einer Enzyklop¨ adie. Jeder Internetnutzer kann an der WikipediA mitarbeiten, das Projekt erfreut sich zunehmend gr¨ oßerer Beliebtheit. Wissen wird auf diese Weise verbreitet und mit anderen geteilt. Seit Mai 2001 gibt es eine deutschprachige Ausgabe dieser Online-Enzyklop¨ adie. Der Autor w¨ urde sich sehr dar¨ uber freuen, wenn die Leser, insbesondere seine Studenten, mit diesem Buch in die Lage versetzt werden, selbst Beitr¨ age u ¨ber spezielle Themen der Numerischen Mathematik verfassen und in der WikipediA publizieren zu k¨ onnen. Beispiel 6.6. In seiner Bildergeschichte Dideldum! Anleitung zu historischen Portr¨ ats, Teil I 1 beschreibt Wilhelm Busch2 , wie man mit einem einzigen Strich und wenigen Verzierungen den Alten Fritz“ 3 zeichnen kann. Wir haben aus dieser Skizze von Wil” helm Busch die in der Abbildung 6.13 auf der linken Seite dargestellten Punkte (xi , yi ), i = 1, . . . , 90, entlang des großen durchgehenden Striches abgetragen und tabelliert. Jedem dieser Punkte wurde anschließend ein Parameterwert ti = i zugeordnet. Nun haben wir die Punktmengen (ti , xi ) und (ti , yi ), i = 1, . . . , 90, jeweils durch kubische Splines interpoliert und damit eine gen¨ aherte Parameterdarstellung der Kurve (x(t), y(t)) erhalten. Auf entsprechende Weise wurden auch die kleinen erg¨anzenden Striche (Auge, Ohr, Mund und Bart) behandelt, d.h., auch diese wurden von uns durch Splines approximiert. Das Resultat der Approximation ist in der Abbildung 6.13 auf der rechten Seite zu sehen. Der ebenfalls in der Abbildung 6.13 enthaltene Schriftzug stellt die durch kubische Splines dargestellte Unterschrift von Wilhelm Busch dar. Die Kopie der Unterschrift wurde auf die gleiche Weise erzeugt wie der Kopf vom Alten Fritz“ und vermittelt wiederum ” einen Eindruck davon, welche M¨ oglichkeiten sich durch die Spline-Interpolation in der Praxis er¨ offnen. 

1

Siehe Wilhelm Busch: Dideldum!. Verlag von Fr. Bassermann, M¨ unchen, 1908 Wilhelm Busch (1832–1908), Deutscher Dichter und Maler, Autor von Max und Moritz (1865) und Die fromme Helene (1872) 3 Friedrich II., der Große, genannt der Alte Fritz“ (preußischer K¨ onig). Geboren am 24. Januar 1712 ” in Berlin, gestorben am 17. August 1786 in Sanssouci bei Potsdam. 2

370

Kapitel 6 Interpolation und Polynom-Approximation

Abbildung 6.13: Der Alte Fritz“ im Spline-Format ”

6.8

Trigonometrische Interpolation, DFT und FFT

Wie wir im Abschnitt 6.2 gesehen haben, sucht man bei der reellen Interpolation mit algebraischen Polynomen ein Polynom vom Grad h¨ochstens n ∈ N, das in n + 1 paarweise verschiedenen St¨ utzstellen x0 , ..., xn die St¨ utzwerte y0 , ..., yn annimmt. Dieses algebraische Polynom hat die Gestalt a0 + a1 x + a2 x2 + · · · + an xn und kann je nach Sachlage in der Lagrange-Darstellung (6.11) oder in der Newton-Darstellung (6.27) angegeben werden. Weist die zu interpolierende Funktion f (x) ein Schwingungsverhalten auf, dann bietet sich die sogenannte trigonometrische Interpolation als sachgem¨aßes Approximationsverfahren an. Bei dieser numerischen Technik gibt man 2n + 1 paarweise verschiedene St¨ utzstellen 0 ≤ x0 < x1 < · · · < x2n < 2π vor und bestimmt als N¨aherungsfunktion ein trigonometrisches Interpolationspolynom vom Grad h¨ochstens 2n, das in diesen St¨ utzstellen die St¨ utzwerte y0 = f (x0 ), ..., y2n = f (x2n ) annimmt. Dieses Interpolationspolynom hat die Gestalt

P (x) =

n X k=−n

ak eikx ,

ak ∈ C,

i – imagin¨are Einheit.

(6.81)

6.8 Trigonometrische Interpolation, DFT und FFT

371

Wie f¨ ur die algebraischen Polynome kann man zeigen, daß die obige InterpolationsAufgabe eine eindeutig bestimmte L¨ osung besitzt. Die spezielle Wahl der St¨ utzstellen bedeutet keine Einschr¨ ankung, da man durch geeignete Vorfaktoren und eine Verschiebung des Interpolations-Intervalles die gew¨ unschte Ausgangssituation stets wieder herstellen kann. Wir werden hier zun¨ achst einen Zugang w¨ ahlen, welcher das gesuchte Polynom nicht direkt in der obigen Darstellung liefert, sondern der Methode von Lagrange im Falle algebraischer Polynome sehr ¨ ahnlich ist. Wir betrachten dazu die folgenden FundamentalInterpolanten1 ej (x) =

Y sin((x − xk )/2) . sin((xj − xk )/2)

(6.82)

k6=j

Offensichtlich erf¨ ullen diese Interpolanten ej (xl ) = δlj , f¨ ur j, l = 0, . . . , 2n. Wenn sich nun zeigen l¨ aßt, daß mit geeigneten Koeffizienten bl ∈ C, l = −n, ..., n, die Beziehung Y

sin((x − xk )/2) =

k6=j

n X

bl eilx ,

(6.83)

l=−n

besteht, dann kann das gesuchte Interpolationspolynom in der Form

P (x) =

2n X

yj ej (x)

(6.84)

j=0

dargestellt werden. Beachtet man die Gleichung sin(x) = (eix −e−ix )/2i, dann best¨atigt die folgende formale Rechnung die G¨ ultigkeit der Formel (6.83):   Y Y ei(x−xk )/2 − e−i(x−xk )/2 Y sin((x − xk )/2) = = eix/2 αk − e−ix/2 βk 2i k6=j

k6=j

=

2n  X

e

ix/2

µl

l 

k6=j

e

−ix/2

νm

l,m=0 l+m=2n

=

2n X l,m=0 l+m=2n

m

=

2n X

l

m

eix(l−m)/2 (µl ) (νm )

l,m=0 l+m=2n

γlm eix(l−m)/2 =

2n X l=0

κl eix(l−(2n−l))/2 =

2n X l=0

κl eix(l−n) =

n X

bl eixl .

l=−n

Ein wichtiger Sonderfall sowie eine Vereinfachung der Darstellung resultiert, wenn man die speziellen St¨ utzstellen xk = 2kπ/(2n + 1) = kπ/(n + 1/2) w¨ahlt. Es gilt dann sin ((n + 1/2) xk ) = sin(kπ) = 0 1

Siehe A. Zygmund: Trigonometric Series. Volume I and II. Cambridge University Press, Cambridge, 1993

372

Kapitel 6 Interpolation und Polynom-Approximation

und nach der Regel von l’Hospital folgt f¨ ur den Dirichlet-Kern der Ordnung n Dn (x) ≡

sin((n + 1/2)x) −−−→ n + 1/2. x→0 2 sin(x/2)

Dn (x) wird daher im Punkte Null auf den Wert n + 1/2 gesetzt. Es kann nun ek (x) in der Form ek (x) =

Dn (x − xk ) n + 1/2

(6.85)

geschrieben werden. Falls n¨ amlich l 6= k ist, berechnet sich der Z¨ahler von ek (xl ) zu sin((l − k)π) = 0. Somit liefert nur ek (xk ) einen Wert ungleich Null, n¨amlich Eins, wie der obige Grenzwert zeigt. Außerdem folgen aus den komplexen Darstellungen der Kosinus- und der Sinus-Funktion cos(x) =

eix + e−ix , 2

die Identit¨ aten Dn (x) =

sin(x) =

eix − e−ix 2i

n n X 1 X 1 ilx + cos(kx) = e . 2 2 k=1

l=−n

Damit ist die Darstellung (6.85) best¨ atigt. Setzt man jetzt (6.85) in (6.84) ein, so ergibt sich eine einfachere Form des trigonometrischen Interpolationspolynoms:

P (x) =

2n X k=0

2n

yk

Dn (x − xk ) X sin((n + 1/2)(x − xk )) = yk . n + 1/2 (2n + 1) sin((x − xk )/2)

(6.86)

k=0

Interpretiert man die Werte yk als Funktionswerte einer Funktion f (x), also yk = f (xk ), so handelt es sich bei 2n X Dn (x − xk ) P (x) = f (xk ) n + 1/2 k=0

um eine normierte, diskrete Faltung der Funktion f mit dem Dirichlet-Kern der Ordnung n. Einen ¨ ahnlichen Zusammenhang gibt es auch im kontinuierlichen Fall. Die Faltung einer Funktion f mit dem Dirichlet-Kern der Ordnung n ergibt n¨amlich genau die n-te Fourier-Partialsumme der Funktion f (siehe Formel (7.56)). Es ist eine Vielzahl von Bedingungen bekannt, unter denen die Fourier-Partialsummen gegen die Funktion f konvergieren. Diese Fragestellung soll jedoch hier nicht betrachtet werden. Die Darstellung (6.84) des trigonometrischen Interpolationspolynoms erweist sich f¨ ur viele Anwendungen als ausreichend. Andererseits ist man aber oftmals auch an der ur¨ spr¨ unglichen Form (6.81) interessiert. Eine Uberf¨ uhrung von (6.84) in (6.81) erfordert jedoch einen zu hohen Aufwand. Es soll deshalb noch ein anderer Weg zur trigonometrischen Interpolation beschrieben werden. Wir betrachten zun¨achst die Interpolationsbedingungen, die an das trigonometrische Interpolationspolynom (6.81) zu stellen sind,

6.8 Trigonometrische Interpolation, DFT und FFT

373

wenn man von den konkreten St¨ utzstellen xl = 2πl/(2n + 1) und den dazugeh¨origen St¨ utzwerten yl ausgeht. Diese Bedingungen lauten n X

P (xl ) =

aj eixl j =

j=−n

n X

aj e2πilj/(2n+1) = yl ,

l = 0, ..., 2n.

(6.87)

j=−n

Wir setzen N ≡ 2n + 1 und w ≡ e2πi/N . Damit ergibt sich f¨ ur l = 0, ..., N − 1 n X

yl =

aj wlj =

j=−n

da w

−lN

n X

aj wlj +

j=0

N −1 X

aj−N wl(j−N ) =

j=n+1

n X

N −1 X

aj wlj +

j=0

aj−N wlj ,

j=n+1

= 1 ergibt. Wenn man nun den Vektor c = (c0 , ..., cN −1 ) zu ( aj , falls 0 ≤ j ≤ n cj = aj−N , falls n + 1 ≤ j ≤ N − 1

(6.88)

definiert, dann resultiert

yl =

N −1 X

cj wlj , mit w = e2πi/N und l = 0, ..., N − 1.

(6.89)

j=0

Es stellt sich nun die Frage, wie man die komplexen Zahlen cj berechnen kann. Wir stellen hierzu die Gleichungen (6.89) in Matrizenform wie folgt dar1       1 1 1 ... 1 y0 c0  y1  1   w w2 ... wN −1    c1     2 4 2(N −1)    y2  1  w w . . . w c (6.90)  = · 2 .  ..   ..   ..  .. .. .. ..  .  .    . . . . . yN −1 | {z } y

1 |

wN −1

w2(N −1) {z

...

w(N −1)

2

cN −1 } | {z } c

FN

Um den Vektor c zu berechnen, braucht somit nur die Inverse von FN gebildet und mit y multipliziert werden. Die Matrix FN besitzt die folgende Eigenschaft. Satz 6.10. Es sei IN die N -dimensionale Einheitsmatrix. Dann gilt die Beziehung FN F¯N = F¯N FN = N IN . Beweis: Es seien l, j ∈ {1, . . . , N } zwei verschiedene Indizes. Dann gilt (FN F¯N )l,j =

N −1 X k=0

= 1

w(l−1)k w(j−1)k =

N −1 X

w(l−1)k−(j−1)k =

k=0

N −1 X

w(l−j)k

k=0

w(l−j)·N − 1 e2πi(l−j) − 1 = = 0. wl−j − 1 wl−j − 1

Siehe auch Kurt Meyberg und Peter Vachenauer: H¨ ohere Mathematik 2, Springer Verlag, Berlin, 2001

374

Kapitel 6 Interpolation und Polynom-Approximation

Analog zeigt man (FN F¯N )l,l = N .



Somit berechnet sich der gesuchte Vektor c zu c = (1/N )F¯N y. Die komponentenweise Darstellung dieser Gleichung lautet cl =

N −1 1 X yj w−jl , N j=0

l = 0, . . . , N − 1.

Wir kommen damit zu einer wichtigen Definition. Definition 6.9. Gegeben seien N komplexe Zahlen y0 , ..., yN −1 . Dann bezeichnet man die Vorschrift cl =

N −1 1 X yj w−jl , N j=0

l = 0, . . . , N − 1,

(6.91)

zur Berechnung der komplexen Zahlen cl ∈ C, l = 0, ..., N − 1, als Diskrete FourierTransformation (DFT) des Vektors y ≡ (y0 , . . . , yN −1 )T . Die Umkehrung dieser Rechenvorschrift,

yl =

N −1 X

cj wjl ,

l = 0, ..., N − 1,

(6.92)

j=0

wird entsprechend Inverse Diskrete Fourier-Transformation (IDFT) genannt. In dieser Terminologie bezeichnet man die cl als Spektralwerte und die yl als die zugeh¨ origen Abtastwerte im jeweiligen Zeitbereich.  Bemerkung 6.7. Die Interpolationsbedingungen (6.87) stimmen in der Form (6.89) mit der IDFT (6.92) u ¨berein. Da die DFT wiederum die Umkehrung der IDFT darstellt, k¨ onnen wir nun N −1 1 X cl = yj w−jl , l = 0, . . . , N − 1, N j=0 schreiben. Eine Umordnung der Elemente im Vektor c (siehe Formel (6.88)) f¨ uhrt schließlich auf die Identit¨ at

aj =

N −1 1 X yl w−lj , N l=0

j = −n, ..., n.

(6.93) 

6.8 Trigonometrische Interpolation, DFT und FFT

375

In Vorbereitung des folgenden Satzes wollen wir unter der N -periodischen Fortsetzung eines gegebenen Vektors x = (x0 , ..., xN −1 )T ∈ CN , 0 ≤ x0 < x1 < · · · < xN −1 < 2π, die Zahlenfolge {xk }k∈Z ⊂ C verstehen, f¨ ur die xk+N = xk gilt und bei der die Folgenglieder x0 , ..., xN −1 mit den entsprechenden Elementen des Vektors x u ¨bereinstimmen. Satz 6.11. Es seien u, v ∈ CN gegeben und c, d ∈ CN die zugeh¨ origen Spektralwerte. Dann hat die DFT folgende Eigenschaften: 1) Linearit¨ at: DF T

au + bv −−−→ ac + bd,

a, b ∈ R.

2) Verschiebungen im Zeit- und Spektral-Bereich: DF T

DF T

(uk+n )k −−−→ (wkn ck )k und (wkn uk )k −−−→ (ck−n )k . 3) Periodische Faltungen: 

 N −1 X 1 DF T (u ∗ v)k ≡  uj vk−j  −−−→ (ck · dk )k . N j=0 k

4) Parsevalsche Gleichung: N −1 X k=0

|ck |2 =

N −1 1 X |uk |2 , also kck22 = kuk22 /N. N k=0

Beweis: (1) Offenbar ist die DFT (6.91) linear in c. DF T

DF T

(2) Es gelte (uk )k −−−→ (ck )k und (uk+n )k −−−→ (xk )k . Dann ist xk =

=

DF T

N −1 N −1 1 X 1 X uj+n w−jk = uj+n w−(j+n)k wnk N j=0 N j=0 N −1 1 X uj w−jk wnk = wnk ck . N j=0 DF T

Es gelte (uk )k −−−→ (ck )k und (wkn uk )k −−−→ (xk )k . Dann ist xk =

N −1 N −1 1 X jn 1 X w uj w−jk = uj w−j(k−n) = ck−n . N j=0 N j=0

376

Kapitel 6 Interpolation und Polynom-Approximation DF T

DF T

(3) Es gelte (uk )k −−−→ (ck )k , (vk )k −−−→ (dk )k und   N −1 X DF T 1 uj vk−j  −−−→ (xk )k . N j=0 k

Dann ist xk =

N −1 N −1 N −1 N −1 1 X 1 X 1 X 1 X ul vj−l w−jk = ul vj−l w−(j−l)k w−lk N j=0 N N j=0 N l=0

=

l=0

N −1 N −1 N −1 N −1 1 X 1 X 1 X 1 X ul w−lk vj−l w−(j−l)k = ul w−lk vj w−jk = ck dk . N N j=0 N N j=0 l=0

l=0

(4) Man findet N −1 X

|uk |2 = u ¯T u = (FN c)T (FN c) = c¯T (F¯N FN )c = N c¯T c. 

k=0

Bemerkung 6.8. Besondere Bedeutung kommt der Aussage 3 zu, da den N Skalarprodukten im CN und den damit verbundenen N 2 Multiplikationen nur N Multiplikationen im Spektralbereich entsprechen. Auf der Basis dieser Erkenntnis lassen sich schnelle Algorithmen konstruieren.  Das Studium der Spektralwerte ist auch losgel¨ost von der urspr¨ unglichen Interpolationsaufgabe f¨ ur die Anwendungen von großem Interesse. Man betrachtet hier die IDFT f¨ ur beliebige komplexe Vektoren c ∈ CN . Ist insbesondere N eine gerade Zahl (bei dem oben beschriebenen Interpolationsproblem trifft dies nicht zu), dann kann man die Berechnung der IDFT f¨ ur einen N -dimensionalen Vektor in die Berechnung der IDFT f¨ ur zwei M -dimensionale Vektoren aufspalten, mit M = N/2. So gilt mit 2M = N sowie g ≡ (c0 , c2 , ..., cN −2 )T und u ≡ (c1 , c3 , ..., cN −1 )T yl =

N −1 X

jl

cj w =

j=0

=

M −1 X

c2j w

2jl

j=0

c2j+1 w(2j+1)l

j=0

M −1 X

M −1 X

j=0

j=0

(w2 )jl gj + wl

+

M −1 X

(w2 )jl uj ,

l = 0, 1, . . . , N − 1.

Die Berechnung der ersten M Elemente y0 , ..., yM −1 des Vektors y unterscheidet sich kaum von der Berechnung der restlichen M Elemente yM , ..., yN −1 . Es ist n¨amlich yl =

M −1 X

M −1 X

j=0

j=0

(w2 )jl gj + wl

(w2 )jl uj ,

l = 0, 1, . . . , M − 1,

6.8 Trigonometrische Interpolation, DFT und FFT und yl+M =

M −1 X

(w2 )j(l+M ) gj + w(l+M )

j=0

=

377

M −1 X

(w2 )j(l+M ) uj

j=0

M −1 X

M −1 X

j=0

j=0

(w2 )jl gj − wl

(w2 )jl uj ,

l = 0, 1, . . . , M − 1.

Dabei wurden die Beziehungen (w2 )j(l+M ) = (w2(l+M ) )j = (w2 )jl sowie w(l+M ) = −wl ausgenutzt, von deren Richtigkeit man sich schnell u ¨berzeugen kann. Setzt man a ≡ (y0 , ..., yM −1 )T und b ≡ (yM , ..., yN −1 )T , dann lassen sich die obigen Gleichungen in Matrizenschreibweise wie folgt darstellen a = FM g + diag(1, w, ..., wM −1 ) FM u, b = FM g − diag(1, w, ..., wM −1 ) FM u,

y=

  a . b

(6.94)

Die beiden Ausdr¨ ucke FM g und FM u stellen jeweils wieder eine IDFT dar. Deren Berechnung mittels einer einfachen Matrix-Vektor-Multiplikation erfordert 2M 2 Multiplikationen. Des weiteren fallen in (6.94) noch M Multiplikationen f¨ ur das Produkt des Vektors FM u mit der Diagonalmatrix an. Die Matrix-Vektor-Produkte ben¨otigen zus¨ atzlich 2M (M − 1) Additionen. Schließlich sind noch 2M Additionen f¨ ur die Berechnung von a und b als Summe bzw. Differenz zu ber¨ ucksichtigen. Es ergibt sich damit ein Rechenaufwand von 2M 2 + M + 2M (M − 1) + 2M = 4M 2 + M flops f¨ ur die obige Variante, die auf einer Aufspaltung des Vektors y basiert. Die direkte Berechnung von FN c ben¨ otigt hingegen (2M )2 Multiplikationen und 2M (2M − 1) Additionen. Das ist insgesamt ein Rechenaufwand von 4M 2 + 4M 2 − 2M flops, ein deutliches Mehr an Rechenoperationen. Falls nun M = N/2 auch eine gerade nat¨ urliche Zahl ist, dann kann jeder der beiden Teilprozesse f¨ ur sich wieder in der oben beschriebenen Weise aufgespalten werden. L¨aßt sich N sogar durch eine Zweier-Potenz darstellen, dann kann man die Aufspaltung so oft durchf¨ uhren, bis nur noch die IDFT f¨ ur eindimensionale Vektoren berechnet werden muß. Es resultiert hierdurch ein rekursiver Algorithmus, den wir als Schnelle Inverse Diskrete Fourier-Transformation bezeichnen und mit FIDFT abk¨ urzen wollen. Das dazu inverse Verfahren ist dann die Schnelle Diskrete Fourier-Transformation (FDFT). Beide numerische Techniken sind unter dem Namen Schnelle Fourier-Transformationen bekannt. Die auch im Deutschen u urzung FFT ergibt sich aus den Anfangs¨bliche Abk¨ buchstaben der englischen Bezeichnung f ast f ourier transformation“. ” Die FIDFT wurde erstmalig im Jahre 1965 von J. W. Cooley (IBM Research) und J. W. Tukey (Princeton University)1 vorgeschlagen. Durch den rekursiven Divide-andConquer-Ansatz weist der Algorithmus eine Komplexit¨at von O(N log(N )/2) (komplexen) Multiplikationen auf. Dies ist eine enorme Verbesserung des Rechenaufwandes 1

Siehe die Arbeit von J. W. Cooley and J. W. Tukey: An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19 (1965), pp. 297–301

378

Kapitel 6 Interpolation und Polynom-Approximation

gegen¨ uber der ohne Aufspaltungen arbeitenden Variante, die durch die Multiplikation von FN mit dem Vektor c charakterisiert ist. Bemerkung 6.9. F¨ ur den Begriff Divide-and-Conquer findet man zum Beispiel in der freien Online-Enzyklop¨ adie WikipediA unter der Adresse http://de.wikipedia.org/wiki/Divide et impera die folgende interessante Erkl¨ arung. Teile und herrsche (lat.: divide et impera“) ist ” angeblich ein Ausspruch des franz¨ osischen K¨onigs Ludwigs XI. (1461–1483) und geht eventuell sogar bis auf Julius C¨ asar zur¨ uck. Er steht f¨ ur das Prinzip, die eigenen Gegner, Besiegten, Vasallen oder Untertanen gegeneinander auszuspielen und ihre Uneinigkeit f¨ ur eigene Zwecke, zum Beispiel f¨ ur die Machtaus¨ ubung, zu verwenden. Goethe formuliert in Sprichw¨ ortliches einen Gegenvorschlag: Entzwei und gebiete! T¨ uchtig Wort. – ” Verein und leite! Bessrer Hort.“ Deutlich humaner ist dagegen der teile und herrsche“-Ansatz in der Informatik, siehe ” zum Beispiel http://de.wikipedia.org/wiki/Teile und herrsche (Informatik). Man geht hier davon aus, daß große Aufgaben und Probleme dadurch besser gel¨ost werden k¨ onnen, indem sie in kleinere Teilprobleme zerlegt werden, die einfacher zu handhaben sind als das Problem als Ganzes. Die L¨osungen der Teilprobleme werden anschließend zur L¨ osung des Gesamtproblems verwendet. Diese Strategie kann oftmals erneut angewendet werden: man zerlegt die Teilprobleme ihrerseits in noch kleinere Teilprobleme und so fort.  Eine Implementierung der FIDFT als Matlab-Funktion fidft liegt mit dem Programm 6.6 vor. Programm 6.6

FIDFT

function [y] = fidft(x); % % x: Eingabevektor der Dimension 2^k % % y: FIDFT von x (Vektor der Dimension 2^k) % n=max(size(x)); if n==1 y=x; else m=n/2; u=zeros(1,m); g=u; g(:)=x(1:2:n); u(:)=x(2:2:n); yg=fidft(g); yu=fidft(u); w=exp(2*pi*i/n); vw=w.^[0:(m-1)]; z=yu.*vw; y(1:m)=(yg+z); y(m+1:n)=(yg-z); end;

Ein entsprechendes Programm f¨ ur die FDFT erh¨alt man unmittelbar aus dem Pro-

6.8 Trigonometrische Interpolation, DFT und FFT

379

gramm 6.6, wenn man den Exponenten von w mit −1 multipliziert und das Ergebnis nach Programm-Ende noch durch n teilt. Bisher haben wir das trigonometrische Polynom nur in der komplexen Form (6.81) dargestellt. Es gilt aber P (x) =

n X

n

ck e

ikx

k=−n

c0 + c0 X = + (ck eikx + c−k e−ikx ) 2 } | {z k=1

≡a0 /2

n

=

X 1 a0 + (ck cos(kx) + ick sin(kx) + c−k cos(kx) − ic−k sin(kx)) 2 k=1 n

X 1 = a0 + (cos(kx) (ck + c−k ) + sin(kx) i(ck − c−k )) | {z } | {z } 2 k=1

=

1 a0 + 2

n X

≡ak

≡bk

ak cos(kx) + bk sin(kx).

k=1

Mit der oben dargestellten Theorie lassen sich die Werte ak und bk f¨ ur xk = 2kπ/(2n+1) wie folgt direkt berechnen. Die Formel (6.93) aus der Bemerkung 6.7 f¨ uhrt auf: 2n

ck =

1 X yj w−kj , 2n + 1 j=0

k = −n, . . . , n.

Somit ergeben sich ak und bk zu 2n

ak = ck + c−k =

2 X 2πkj yj cos , 2n + 1 j=0 2n + 1

k = 0, . . . , n,

(6.95)

und 2n

bk = i (ck + c−k ) =

2 X 2πkj yj sin , 2n + 1 j=0 2n + 1

k = 0, . . . , n.

(6.96)

Das trigonometrische Interpolationspolynom ist also reell, wenn die St¨ utzwerte auch reell sind. Es liegt noch immer die unbefriedigende Situation vor, bei der die ck zwar u ¨ber eine DFT berechnet werden k¨ onnen, aber der Vektor y aus einer ungeraden Anzahl von Elementen besteht. Damit kann man auf die FFT nicht zur¨ uckgreifen. Wir wollen deshalb an dieser Stelle ein Interpolationsproblem mit den St¨ utzstellen xk = 2πk/N , k = 0, . . . , N − 1,

380

Kapitel 6 Interpolation und Polynom-Approximation

betrachten, wobei im Unterschied zu (6.81) vorausgesetzt werde, daß N eine ZweierPotenz ist. Die zugeh¨ origen St¨ utzwerte m¨ ogen y0 , . . . , yN −1 sein. Wir setzen cN/2 = 0 und schreiben das trigonometrische Polynom in der Form N/2

X

P (x) =

N/2−1

cj e

ij x

=

j=−N/2

X

cj eij x .

(6.97)

j=−N/2

Ein trigonometrisches Polynom vom Grad N/2 − 1 h¨atte zu wenig Freiheitsgrade und eines vom Grad N/2 w¨ are nicht eindeutig bestimmt. Deshalb ist es sinnvoll, den Spektralwert cN/2 von Anfang an auf Null zu setzen. Mit w = e2πi/N lauten die Interpolationsbedingungen f¨ ur k = 0, . . . , N − 1: N/2−1

X

yk = P (xk ) =

N/2−1

cj e2πijk/N =

j=−N/2

X

cj wjk =

N −1 X

dj wjk ,

j=0

j=−N/2

wenn man den Vektor d zu d = (c0 , . . . , cN/2−1 , c−N/2 , ..., c−1 )T

(6.98)

erkl¨ art. Demnach kann man die Elemente von d und damit die von c mit der DFT

dj =

N −1 1 X yk w−kj , N

j = 0, ..., N − 1,

(6.99)

k=0

berechnen. Es ist sogar m¨ oglich, den schnelleren FDFT-Algorithmus zu verwenden, da sich nach unserer obigen Voraussetzung N durch eine Zweier-Potenz darstellen l¨aßt. Ist nun das trigonometrische Polynom

P (x) =

n X

al eilx

l=−n

bestimmt, welches P (xk ) = yk

f¨ ur xk = 2kπ/(2n + 1),

k = 0, . . . , 2n,

erf¨ ullt, so ist man oftmals an dessen Auswertung auf einem feineren Gitter als nur in den Punkten xk interessiert. Dieses Problem stellt sich zum Beispiel immer dann, wenn

6.8 Trigonometrische Interpolation, DFT und FFT

381

man das Polynom P (x) graphisch darstellen m¨ ochte. Wir wollen zum Abschluß auf diese Fragestellung eingehen. Es sei jetzt wieder N = 2n + 1. Wir definieren ein neues Gitter durch die Punkte xjk = 2kπ/(j N ) mit k = 0, . . . , jN − 1. Der Index j ist eine vorzugebende Konstante und beschreibt die Feinheit des neuen Gitters. Das alte Gitter ist wegen xk = xjjk im j neuen Gitter enthalten. Des weiteren sei ykj = P (xjk ). Es gilt also yk = yjk und allgemein n X

ykj =

j

al eilxk =

l=−n

n X

al wlk/j =

l=−n

n X

al v lk ,

l=−n

mit w ≡ e2πi/N und v ≡ e2πi/(jN ) . Weiter ergibt sich n X

al v lk =

l=−n

n X

al v lk +

jN −1 X l=jN −n

l=0

al−jN v (l−jN )k =

n X

al v lk +

l=0

jN −1 X

al−jN v lk ,

l=jN −n

da v −jN k = 1 ist. Definiert man den Vektor c = (c0 , ..., cjN −1 )T zu   falls 0 ≤ l ≤ n al , cl ≡ 0, falls n + 1 ≤ l < jN − n ,   al−jN , falls jN − n ≤ l ≤ jN − 1

(6.100)

dann resultiert

ykj =

jN −1 X

cl v lk ,

mit v ≡ e2πi/(jN ) und k = 0, . . . , jN − 1.

(6.101)

l=0

Die Formel (6.101) stellt offensichtlich eine IDFT dar. Der Vektor c bzw. d, wie er in (6.88) bzw. (6.98) erkl¨ art ist, muß also nur ab dem Index dN/2e mit (j − 1)N Nullen aufgef¨ ullt und anschließend r¨ ucktransformiert werden. Wenn das trigonometrische Polynom N Interpolationsbedingungen erf¨ ullt, wobei N eine Zweier-Potenz ist, dann kann man j ebenfalls als Zweier-Potenz w¨ ahlen und damit die Zahlen ykj mit dem schnelleren FIDFT-Algorithmus berechnen. Bemerkung 6.10. Auch f¨ ur andere Werte von N , die nicht als eine Zweier-Potenz geschrieben werden k¨ onnen, gibt es Varianten des FIDFT-Algorithmus bzw. des FDFTAlgorithmus. So sind auch spezielle Varianten f¨ ur Potenzen von Primzahlen entwickelt worden (siehe Aufgabe 6.25). Man kann sogar die Zahl N in ihre Primfaktoren zerlegen und die IDFT mit schnellen Teil-Algorithmen f¨ ur Primzahlpotenzen realisieren. Heute sind Schnelle Fourier-Transformationen mit einer Million Gitterpunkten nicht un¨ ublich. Der Schl¨ ussel zur modernen Signal- und Bildverarbeitung stellt die Fertigkeit dar, diese Berechnungen sehr schnell ausf¨ uhren zu k¨ onnen.

382

Kapitel 6 Interpolation und Polynom-Approximation

¨ Einen guten Uberblick u ¨ber die Numerik der FFT vermitteln die Texte von Van Loan1 sowie Briggs und Van Henson2 . Auf der Webseite http://www.fftw.org/ findet man die jeweils aktuellste Version der Programmsammlung FFTW. Diese Abk¨ urzung resultiert aus den Anfangsbuchstaben des ausf¨ uhrlichen Namens the f astest ” Fourier transform in the west“. Dabei handelt es sich um eine umfassende Sammlung von schnellen C Routinen zur Berechnung der DFT und vieler ihrer Spezialf¨alle. Das FFTW-Programmpaket wurde am Massachusetts Institute of Technology (MIT) von Matteo Frigo und Steven G. Johnson entwickelt, wof¨ ur sie im Jahre 1999 den vielbeachteten J. H. Wilkinson-Preis f¨ ur Numerische Software erhielten. Dieser Preis wird j¨ahrlich in den U.S.A. von dem Argonne National Laboratory, dem National Physical Laboratory und der Numerical Algorithms Group (NAG) vergeben und ist mit US $1000 dotiert.  Wir wollen die FFT noch an einem Beispiel demonstrieren. Beispiel 6.7. Gegeben sei eine sogenannte S¨ agezahnkurve ( x/π, f¨ ur x ∈ [0, π] f (x) = x/π − 2, f¨ ur x ∈ (π, 2π],

(6.102)

die 2π-periodisch fortgesetzt werden kann. Diese Funktion soll an den vorgegebenen St¨ utzstellen xk = 2kπ/N , k = 0, . . . , N − 1, interpoliert werden. Dabei sei N = 8. Nach der obigen Theorie ergibt sich durch den FFT-Algorithmus eine Darstellung des trigonometrischen Interpolationspolynoms zu P (x) =

4 X

ak eikx ,

(6.103)

k=−4

wobei die zugeh¨ origen Koeffizienten in der Tabelle 6.8 angegeben sind. a−4 = 0.1250 a0 = 0.1250

a−3 = −0.1250 + 0.0518i a1 = −0.1250 − 0.3018i

a−2 = 0.1250 − 0.1250i a2 = 0.1250 + 0.1250i

a−1 = −0.1250 + 0.3018i a3 = −0.1250 − 0.0518i

a4 = 0

Tabelle 6.8: Koeffizienten f¨ ur die Interpolation der S¨ agezahnkurve

F¨ ur die graphische Darstellung des Interpolationspolynoms (siehe Abbildung 6.14) haben wir das feinere Gitter x16 k = 2 kπ/128, k = 0, . . . , 127, verwendet. Der Vektor c = (c0 , ..., c127 )T ergibt sich, indem man (c0 , ..., c3 )T = (a0 , ..., a3 )T , 1

(c124 , ..., c127 )T = (a−4 , ..., a−1 )T

Charles F. Van Loan: Computational Frameworks for the Fast Fourier Transform. Frontiers Appl. Math., Vol. 10, SIAM, Philadelphia, 1992 2 William L. Briggs and Emden Van Henson: The DFT: An Owner’s Manual for the Discrete Fourier Transform. SIAM, Philadelphia, 1995

6.8 Trigonometrische Interpolation, DFT und FFT

383

Abbildung 6.14: Berechnetes Interpolationspolynom f¨ ur N = 8

und die restlichen ci auf Null setzt. Dabei handelt es sich um einen Vektor mit 27 Elementen. Die Werte yk16 = P (x16 k ) lassen sich nun direkt mit dem inversen FFTAlgorithmus FIDFT bestimmen. Hierzu wird die Funktion fidft (siehe das MatlabProgramm 6.6) in der Form y = fidft(c) aufgerufen. In der Abbildung 6.14 sind die Funktion (6.102) sowie das berechnete Polynom (6.103), fortgesetzt auf das Intervall [−2π, 2π], dargestellt. Um die Approximationseigenschaften des trigonometrischen Interpolationspolynoms zu demonstrieren, haben wir die Anzahl der St¨ utzstellen verdoppelt, d.h., es wurde jetzt N = 16 gesetzt. Das daraus resultierende Polynom sowie die urspr¨ ungliche Funktion (6.102) sind in der Abbildung 6.15 dargestellt. Man kann sich sehr gut davon u ¨berzeugen, daß auch mit wachsendem Polynomgrad das ¨ Uberschwingen“ an den Unstetigkeitsstellen nicht nachl¨aßt. Dieser Sachverhalt ist in ” der Literatur unter dem Begriff Ph¨ anomen von Gibbs 1 bekannt. 

1

Siehe zum Beispiel A. Zygmund: Trigonometric Series. Volume I and II. Cambridge University Press, Cambridge, 1993 bzw. Kurt Meyberg und Peter Vachenauer: H¨ ohere Mathematik 2, Springer Verlag, Berlin, 2001

384

Kapitel 6 Interpolation und Polynom-Approximation

Abbildung 6.15: Berechnetes Interpolationspolynom f¨ ur N = 16

6.9

Aufgaben

Aufgabe 6.1. Unter Verwendung des Lagrangeschen Interpolationspolynoms beweise man die Beziehung 2p+1 X m=0

(−1)m 22p+1 = (−1)p . (2p + 1 − 2m) m! (2p + 1 − 2m)! [(2p + 1)!]2

Hinweis: Man betrachte f (x) = 1 in [−1, 1] und benutze die St¨ utzstellen x(2p+1) = −1 + m

2m , 2p + 1

m = 0, . . . , 2p + 1.

Aufgabe 6.2. Man beweise m X i=0

m−i

(−1)

i n



m+n n+i



= (−1)m+1

(m + n − 2)! . (m − 1)! n!

Hinweis: Die Lagrangesche Formel ist auf die Funktion f (x) =

(n − x)(n − 1 − x) · · · (2 − x) n!

anzuwenden. Es ist x0 = 0, h = 1, x = n + m zu setzen.

6.9 Aufgaben

385

Aufgabe 6.3. Es sei

x−1 . x Man berechne f¨ ur die folgenden Mengen von St¨ utzstellen ((a)–(d)) die Werte der interpolierenden Polynome an der Stelle x = 5.25 und vergleiche die Ergebnisse mit f (5.25). f (x) = log10 x −

(a) (b) (c) (d)

x0 1 2 4 2

x1 2 4 8 4

x2 4 8 10 8

x3 8 10

x4 10

Zus¨ atzlich ist f¨ ur (a) das Interpolationspolynom in der Newton-Darstellung und f¨ ur (c) das Interpolationspolynom in der Lagrange-Darstellung explizit anzugeben. Aufgabe 6.4. An einem Kondensator von 50 µF wurden f¨ ur die Energieaufnahme in Abh¨ angigkeit von der Spannung folgende Werte ermittelt: U [V ] W [W s]

60 0.09

110 0.30

220 1.19

440 4.83

˜ (U ) auf und berechnen Sie mit Hilfe der PolyStellen Sie das Interpolationspolynom W nominterpolation einen N¨ aherungswert f¨ ur W bei einer Spannung U = 600 V . Aufgabe 6.5. Eine Funktion f : R → R heißt gerade, wenn gilt: f (x) = f (−x) f¨ ur alle 4 x ∈ R. Gerade Funktionen sind zum Beispiel: f (x) ≡ 1, f (x) = x , f (x) = cos(x) 1 2 3 p und f4 (x) = |x|. Es sei nun f (x) eine solche gerade Funktion. 1) Unter welchen Bedingungen an die Koeffizienten ist ein Polynom Qm (x) = q0 + q1 x + q2 x2 + · · · + qm xm eine gerade Funktion? 2) Welche Eigenschaften m¨ ussen die St¨ utzstellen xi , i = 0, . . . , n, aufweisen, damit das Interpolationspolynom P (x) mit der Eigenschaft P (xi ) = f (xi ), i = 0, . . . , n ebenfalls eine gerade Funktion ist? Hinweis: M¨ oglichst einfache und wenig restriktive Bedingungen an die Lage der xi formulieren, einige Beispiele durchrechnen und Beweis erbringen. Welchen Grad hat P (x) h¨ ochstens? Aufgabe 6.6. Man beweise die Relationen Ln,0 (x) + Ln,1 (x) + · · · + Ln,n (x) = 1, (x0 − x)k Ln,0 (x) + (x1 − x)k Ln,1 (x) + · · · + (xn − x)k Ln,n (x) = 0, k = 1, . . . , n.

386

Kapitel 6 Interpolation und Polynom-Approximation

Aufgabe 6.7. Man beweise Ln,i (x) = 1 +

x − x0 (x − x0 )(x − x1 ) (x − x0 )(x − x1 ) · · · (x − xn−1 ) + + ··· + . x0 − x1 (x0 − x1 )(x0 − x2 ) (x0 − x1 )(x0 − x2 ) · · · (x0 − xn )

Aufgabe 6.8. Man beweise: Wenn g(x) die Funktion f (x) an den St¨ utzstellen x0 , x1 , . . . , xn−1 interpoliert und wenn h(x) die Funktion f (x) an den St¨ utzstellen x1 , x2 , . . . , xn interpoliert, dann interpoliert die Funktion x0 − x g(x) + [g(x) − h(x)] xn − x0 die Funktion f (x) an den St¨ utzstellen x0 , x1 , . . . , xn . Man beachte, daß g(x) und h(x) keine Polynome sein m¨ ussen. Aufgabe 6.9. Man beweise, daß f¨ ur jedes Polynom P (x) vom Grad h¨ochstens n − 1 gilt n n X Y P (xi ) (xi − xj )−1 = 0. i=0

j=0 j6=i

Aufgabe 6.10. Es seien drei Funktionswerte von f (x), n¨amlich f (a), f (b) und f (c) in der N¨ ahe des Maximums oder Minimums der Funktion bekannt. Man beweise, daß der Wert im Maximum oder Minimum n¨ aherungsweise gegeben ist durch (b2 − c2 )f (a) + (c2 − a2 )f (b) + (a2 − b2 )f (c) . 2{(b − c)f (a) + (c − a)f (b) + (a − b)f (c)} Aufgabe 6.11. Man zeige, daß die n-te dividierte Differenz eines Polynoms n-ten Grades gleich dem Koeffizienten bei xn ist, unabh¨angig von der Auswahl der St¨ utzstellen x0 , . . . , x n . Aufgabe 6.12. Man zeige, daß die dividierten Differenzen lineare Abbildungen sind, d.h., daß sie der Gleichung (αf + βg)[x0 , x1 , . . . , xn ] = αf [x0 , x1 , . . . , xn ] + βg[x0 , x1 , . . . , xn ] gen¨ ugen. Aufgabe 6.13. Nach Formel (6.58) entspricht der ersten dividierten Differenz f [x0 , x1 ] ein Ableitungswert von f (x). Erf¨ ullt die dividierte Differenz nun auch eine Gleichung, die ein Analogon zu (f, g)0 = f 0 g + f g 0 darstellt? Aufgabe 6.14. Man beweise die Formel von Leibnitz: (f g)[x0 , x1 , . . . , xn ] =

n X

f [x0 , x1 , . . . , xk ] g[xk , xk+1 , . . . , xn ].

k=0

Aufgabe 6.15. Man zeige, daß f¨ ur f (x) = (x − x0 )(x − x1 ) · · · (x − xn ) gilt: f [x0 , x1 , . . . , xp ] = 0,

p < n.

6.9 Aufgaben

387

Aufgabe 6.16. Ein Polynom sei in der Newton-Darstellung Pn (x) =

n X k=0

ak

k−1 Y

(x − xi ) = a0 + a1 (x − x0 ) + · · · + an (x − x0 ) · · · (x − xn−1 )

i=0

gegeben (die ak und xi sind also bekannt). 1) Geben Sie einen effektiven Algorithmus an, der die Koeffizienten der Normaldarstellung n X Pn (x) = dk xk k=0

berechnet. ¨ 2) Realisieren Sie (1) mit Hilfe eines Matlab-Programms. Uberpr¨ ufen Sie dessen Richtigkeit anhand einiger geeigneter Testbeispiele. Aufgabe 6.17. Man zeige, daß bei der Multiplikation aller St¨ utzstellen mit derselben Konstanten c und bei unver¨ anderten St¨ utzwerten sich die dividierten Differenzen f [x0 , . . . , xn ] mit c−n multiplizieren. Aufgabe 6.18. Man zeige, daß sich die dividierten Differenzen nicht ¨andern, wenn sich die St¨ utzstellen um denselben Wert vergr¨ oßern und die St¨ utzwerte unver¨andert bleiben. Aufgabe 6.19. Man zeichne auf einem Blatt Papier mit der Hand eine Kurve, die die Form eines Ovals oder einer Spirale besitzt. Dann w¨ahle man auf dieser Kurve in etwa gleichm¨ aßig verteilte Punkte aus und bezeichne diese mit t0 = 1.0, t1 = 2.0, etc. Des weiteren lese man die x- und y-Koordinaten jedes ausgew¨ahlten Punktes ab. Daraus konstruiere man eine Tabelle mit den Spalten ti , x(ti ) und y(ti ). Die Funktionen x(t) und y(t) approximiere man nun anhand des vorhandenen Datenmaterials mit SplineInterpolationsfunktionen S (x) (t) bzw. S (y) (t). Die Formeln x = S (x) (t) und y = S (y) (t) stellen eine gen¨ aherte Parameterdarstellung der Kurve dar. Schließlich zeichne man f¨ ur verschiedene Datens¨ atze die berechneten N¨ aherungskurven und vergleiche sie mit der urspr¨ unglichen Kurve. Aufgabe 6.20. Man bestimme alle Werte von a, b, c, d, e, f¨ ur die die folgende Funktion ein kubischer Spline ist:   a(x − 2)2 + b(x − 1)3 , x ∈ (−∞, 1] c(x − 2)2 , x ∈ [1, 3] f (x) =  d(x − 2)2 + e(x − 3)3 , x ∈ [3, ∞) Danach bestimme man solche Werte der Parameter, daß der kubische Spline die folgende Tabelle interpoliert. x y

0 26

1 7

4 25

388

Kapitel 6 Interpolation und Polynom-Approximation

Aufgabe 6.21. Man bestimme, ob der nat¨ urliche kubische Spline, der die Tabelle x y

0 1

1 1

2 0

3 10

interpoliert, mit der folgenden Funktion u ¨bereinstimmt:  x ∈ [0, 1]  1 + x − x3 , 1 − 2(x − 1) − 3(x − 1)2 + 4(x − 1)3 , x ∈ [1, 2] f (x) =  4(x − 2) + 9(x − 2)2 − 3(x − 2)3 , x ∈ [2, 3] Aufgabe 6.22. Welche Eigenschaften eines nat¨ urlichen kubischen Splines besitzt die folgende Funktion und welche nicht?  (x + 1) + (x + 1)3 , x ∈ [−1, 0] f (x) = 4 + (x − 1) + (x − 1)3 , x ∈ (0, 1] Aufgabe 6.23. Man zeige, daß eine auf den St¨ utzstellen x0 , x1 , . . . , xn gebildete SplineInterpolationsfunktion vom Grad eins in der Form S(x) = ax + b +

n−1 X

ci |x − xi |

i=1

dargestellt werden kann. Aufgabe 6.24. Man berechne explizit die Fourier-Matrizen FN f¨ ur N ≤ 10 (siehe die Formel (6.90)). Aufgabe 6.25. Es sei N = 3m und damit durch 3 teilbar. Man zeige, wie yl =

N −1 X

cj wjl , l = 0, 1, . . . , N − 1,

mit w = e2πi/N ,

j=0

in drei Summen der L¨ ange m aufgespalten werden kann. Wie l¨aßt sich mit dieser Aufspaltung die Berechnung der IDFT eines Vektors der L¨ange N auf die Berechnung von mehreren IDFTn k¨ urzerer Vektoren zur¨ uckf¨ uhren? Aufgabe 6.26. Man zeige, daß zu n + 1 St¨ utzstellen xk mit a ≤ x0 < x1 < · · · < xn < a + π und den zugeh¨ origen St¨ utzwerten y0 , y1 , . . . , yn ein eindeutig bestimmtes reines Kosi” nus-Polynom“ n X P (x) = aj cos(jx) j=0

existiert, das die Interpolationsbedingungen P (xk ) = yk , erf¨ ullt.

k = 0, 1, . . . , n,

6.9 Aufgaben

389

−1 Aufgabe 6.27. F¨ ur eine Matrix A = (aij )N i,j=0 ist die sogenannte 2-dimensionale Inverse Fourier-Transformation (2D-IDFT) durch

bjk =

N −1 N −1 X X

ast e2πijs/N e2πikt/N ,

j, k = 0, . . . , N − 1,

s=0 t=0

definiert. Man zeige, daß mit der Fourier-Matrix FN = wjk

N −1 j,k=0

, w = e2πi/N , die

−1 obige 2D-IDFT von A durch B = FN AFN gegeben ist, mit B = (bjk )N j,k=0 .

Kapitel 7

Ausgleichsprobleme, Methode der Kleinsten Quadrate

Exakte Approximation“: ”

lim



8→9

8 = 3 (Autor unbekannt)

7.1

Diskrete Kleinste-Quadrate Approximation

In diesem Kapitel soll eine weitere numerische Technik f¨ ur die numerische Approximation einer gegebenen Funktion f (x) betrachtet werden. Wir wollen zuerst davon ausgehen, daß diese Funktion nur diskret, d.h. in Tabellenform vorliegt.

7.1.1

Polynomapproximationen

Bereits im Kapitel 6 sind wir der Frage nachgegangen, wie eine gegebene Funktion f (x) (die entweder explizit oder in Tabellenform vorliegt) durch eine N¨aherungsfunktion P (x) m¨ oglichst gut approximiert werden kann. Als konkretes mathematisches Kriterium f¨ ur

392

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

eine solche m¨ oglichst gute Ann¨ aherung“ verwendeten wir die Interpolationsbedingun” gen (6.10). Diese schreiben vor, daß die Funktion f (x) und das zugeh¨orige Interpolationspolynom P (x) nur eine einzige Gemeinsamkeit besitzen m¨ ussen: die Werte der beiden Funktionen stimmen in den vorgegebenen St¨ utzstellen u ¨berein. Offensichtlich ist dieses Kriterium nur sachgem¨ aß, wenn die tabellierten Funktionswerte den wahren Funktionsverlauf repr¨ asentieren, d.h., falls sie mit einem Fehler behaftet sind, der im Rahmen der verwendeten Rechnergenauigkeit liegt. Nun ist es in der Praxis aber oftmals so, daß man durch experimentelle Untersuchungen eine Tabelle von Meßwerten (x0 , y0 ), (x1 , y1 ), . . . , (xM , yM ) erh¨ alt, hinter denen sich ein funktionaler Zusammenhang y = f (x) verbirgt, der entweder bekannt oder aber wie in den meisten F¨allen unbekannt ist. Um zumindest eine N¨ aherung f¨ ur die dem Prozeß zugrundeliegende Funktion f (x) zu ermitteln, k¨ onnte man das zugeh¨orige Interpolationspolynom PM (x) vom Grad h¨ ochstens M bestimmen. Diese Strategie w¨ urde jedoch der Tatsache nicht gerecht, daß die Meßwerte mehr oder weniger große (im Experiment nicht vermeidbare!) Meßfehler aufweisen. Man w¨ urde damit der N¨aherungsfunktion in den Meßpunkten xi , i = 0, . . . , M , genau das gleiche Fehlerverhalten aufzwingen. Somit muß man in diesem Falle nach einem anderen Kriterium f¨ ur die m¨oglichst gute Ann¨aherung“, an ” den tats¨ achlichen funktionalen Zusammenhang suchen. Wir wollen dies zuerst an einem Beispiel demonstrieren. Beispiel 7.1. Aus einem praktischen Experiment sei die Wertetabelle 7.1 hervorgegangen. i

0

1

2

3

4

5

6

7

8

9

10

xi

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

yi

1.28

1.27

1.58

1.75

2.07

2.23

2.34

2.41

2.85

2.93

3.18

Tabelle 7.1: Gemessener Funktionsverlauf

Jedes einzelne Wertepaar stellt einen Meßpunkt dar, der aufgrund der verwendeten Meßanordnung nur fehlerbehaftet bestimmt werden konnte. Die Punkte aus der obigen Tabelle sind in der Abbildung 7.1 in einem x-y-Koordinatensystem dargestellt. Man sieht unmittelbar, daß ein Interpolationspolynom 10-ten Grades, aber auch ein kubischer Spline, der vorliegenden Problemstellung nicht gerecht wird. Vielmehr handelt es sich bei dem tats¨ achlichen funktionalen Zusammenhang allem Anschein nach um eine lineare Funktion P1 (x). Die Abweichungen der Meßpunkte von dieser Geraden sind auf die Fehler bei der Messung zur¨ uckzuf¨ uhren. Es verbleibt dann aber noch das Problem, wie man diejenige Gerade bestimmen kann, die am besten durch die Meßpunkte verl¨ auft. Insbesondere muß man ein exaktes mathematisches Kriterium finden, denn die menschliche Anschauung allein f¨ uhrt i.allg. nicht zu einer eindeutigen L¨osung.

7.1 Diskrete Kleinste-Quadrate Approximation

Abbildung 7.1: Meßpunkte und zugeh¨ orige Ausgleichsgerade

393



Zur Behandlung des im obigen Beispiel aufgeworfenen Problems k¨onnte man wie folgt vorgehen. Man summiert die Differenzen zwischen den Meßwerten yi und den Werten der N¨ aherungsfunktion P1 (xi ) ≡ a xi + b auf und berechnet die noch frei w¨ahlbaren Koeffizienten a und b so, daß diese Summe ihr Minimum annimmt. Der genannte Weg f¨ uhrt i.allg. zu einem falschen Resultat, da die Differenzen positiv und negativ sein k¨ onnen und sich dadurch in der Summe aufheben. Eine geringf¨ ugige Modifikation, indem man anstelle der Differenzen deren Betr¨ age addiert, beseitigt diesen Nachteil. Da dann aber die zu minimierende Zielfunktion aus einer Summe von Betr¨agen besteht, ist sie nicht differenzierbar. Dies wiederum erschwert die numerische Berechnung des Minimums. Aber auch diese Schwierigkeit l¨ aßt sich durch eine kleine Ver¨anderung in der L¨ osungsstrategie beseitigen: anstelle der Betr¨age der Differenzen verwendet man deren Quadrate. Hierauf ist auch der Name dieser numerischen Approximationstechnik zur¨ uckzuf¨ uhren. Sie wird im Deutschen als Methode der Kleinsten Quadrate und im Englischen als least squares method bezeichnet. In beiden Sprachen k¨ urzt man das Verfahren auch als LS-Methode (Least Squares) und die Fragestellung als LS-Problem ab. Wir wollen jetzt den Sachverhalt etwas genauer darstellen. Gegeben seien M + 1 Meßpunkte {(xi , yi ), i = 0, . . . , M } mit xi 6= xj f¨ ur i 6= j. Gesucht ist eine Gerade P1 (x) = a x + b, die den durch die Meßtabelle definierten und als linear vorausgesetzten funktionalen Zusammenhang y = f (x) approximiert. Die Methode der Kleinsten

394

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Quadrate bestimmt nun das Minimum der Funktion F : R2 → R,

F (a, b) ≡

M M X X (yi − P (xi ))2 = (yi − (a xi + b))2 , i=0

(7.1)

i=0

bez¨ uglich der Parameter a und b. Das (globale) Minimum l¨aßt sich wie u ¨blich u ¨ber die folgenden notwendigen Bedingungen (die in diesem Falle auch hinreichend sind) berechnen: ∂ F (a, b) = 0, ∂a

∂ F (a, b) = 0. ∂b

(7.2)

Man erh¨ alt 0=

M M X ∂ X 2 (yi − (a xi + b)) = 2 (yi − (a xi + b))(−xi ) ∂a i=0 i=0

0=

M M X ∂ X 2 (yi − (a xi + b)) = 2 (yi − (a xi + b))(−1). ∂b i=0 i=0

und

Nach Umordnung ergeben sich daraus die sogenannten Gaußschen Normalgleichungen M X

! x2i

a

!

M X

+

i=0

xi

b

=

i=0

M X

xi yi

i=0

(7.3) M X

! xi

a

+

(M + 1) b =

i=0

M X

yi

i=0

Aus diesem linearen Gleichungssystem lassen sich die Unbekannten a und b mit der Cramerschen Regel sehr einfach berechnen. Es sind D

≡ (M + 1)

M X

! x2i



i=0

Da

≡ (M + 1)

M X

Db



i=0

! x2i

!2 xi

,

i=0

! xi yi



i=0 M X

M X

M X i=0

M X

! xi

i=0

! yi



M X i=0

! yi

,

i=0

! xi yi

M X

M X i=0

! xi

,

7.1 Diskrete Kleinste-Quadrate Approximation

395

so daß sich die L¨ osung von (7.3) zu a=

Da D

und

b=

Db D

(7.4)

ergibt. Damit kann man die gesuchte Gerade, die auch als Ausgleichsgerade bezeichnet wird, explizit in der Form P1 (x) =

Da Db x+ D D

(7.5)

angeben. Diejenige Ausgleichsgerade, die sich f¨ ur die in der Tabelle 7.1 enthaltenen Meßdaten berechnet, ist der Abbildung 7.1 zu entnehmen. Nun muß der einer speziellen Meßtabelle zugrundeliegende funktionale Zusammenhang y = f (x) nicht immer linear sein. In einem solchen Fall l¨aßt sich die obige Strategie wie folgt verallgemeinern. Gegeben sei wiederum eine Menge von M + 1 Meßpunkten {(xi , yi ), i = 0, . . . , M } mit xi 6= xj f¨ ur i 6= j. Zu bestimmen ist jetzt ein Polynom Pn (x) vom Grad n, das im Sinne der Methode der Kleinsten Quadrate bestm¨oglich durch diese Punktmenge verl¨ auft, d.h., welches die zugeh¨ orige Funktion f (x) hinreichend genau approximiert. Damit diese Aufgabenstellung ein gut konditioniertes Problem darstellt, wollen wir im weiteren stets n  M fordern. An die Stelle der Funktion (7.1) tritt jetzt die Funktion F : Rn+1 → R mit M M n X X X F (a0 , . . . , an ) ≡ (yi − Pn (xi ))2 = yi − ak xki i=0

i=0

!2 .

(7.6)

k=0

Wie zuvor versucht man das (globale) Minimum der Funktion (7.6) bez¨ uglich der Parameter a0 , . . . , an zu ermitteln, indem die notwendigen (und hinreichenden) Bedingungen f¨ ur ein solches Minimum aufgestellt und aus den resultierenden Gleichungen die gesuchten optimalen Werte der Koeffizienten des Polynoms Pn (x) berechnet werden. An die Stelle der Gleichungen (7.2) treten jetzt die Gleichungen ∂ F (a0 , . . . , an ) = 0, ∂a0

...,

∂ F (a0 , . . . , an ) = 0. ∂an

(7.7)

Bevor wir die obigen partiellen Ableitungen explizit ausrechnen, ist es sinnvoll, die Funktion F (a0 , . . . , an ) noch etwas zu vereinfachen. Es ist F (a0 , . . . , an )

=

M X i=0

yi2 − 2

M X i=0

Pn (xi )yi +

M X i=0

(Pn (xi ))2

396

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate M X

=

yi2

−2

M n X X

i=0 M X

=

i=0

yi2

−2

i=0

n X

! ak xki

yi +

i=0

k=0

ak

M X

! yi xki

i=0

k=0

M n X X

+

!2 ak xki

k=0

n X n X

M X

ak aj

k=0 j=0

! xk+j i

.

i=0

Setzt man dies in (7.7) ein, so resultiert 0=

M n M X X X ∂ F (a0 , . . . , an ) = −2 yi xki + 2 aj xk+j , i ∂ak i=0 j=0 i=0

k = 0, . . . , n.

Daraus ergibt sich nun das folgende System von n + 1 linearen Gleichungen f¨ ur die n + 1 unbekannten Polynomkoeffizienten a0 , . . . , an : n M X X j=0

! xk+j i

aj =

i=0

M X

yi xki ,

k = 0, . . . , n.

(7.8)

i=0

Dieses Gleichungssystem ist in der Literatur unter dem Begriff Normalgleichungen bzw. Gaußsche Normalgleichungen bekannt. Es l¨ aßt sich in der u ¨blichen Form linearer Gleichungssysteme A x = b aufschreiben, wenn man die Vektoren x, b ∈ Rn+1 und die Matrix A ∈ R(n+1)×(n+1) wie folgt definiert: T

x ≡ (a0 , . . . , an ) ,

b≡

M X

yi x0i ,

i=0

  M +1    M  X 1  xi   i=0 A≡  ..  .    M  X  xni i=0

M X i=0 M X

x1i x2i

M X i=0

M X i=0 M X

x2i x3i

··· ···

i=0

.. .

.. .

···

xn+2 i

···

i=0

xn+1 i

M X i=0

!T yi xni

,

i=0

i=0

M X

M X

yi x1i , . . . ,

M X

 xni

i=0 M X

xn+1 i

i=0

.. . M X

x2n i

        .       

(7.9)

i=0

Bez¨ uglich der Existenz einer L¨ osung von (7.8) und deren Eindeutigkeit gilt der folgende Satz. Satz 7.1. Die Stellen xi , i = 0, . . . , n, seien paarweise verschieden. Dann besitzen die Normalgleichungen (7.8) eine eindeutige L¨ osung.

7.1 Diskrete Kleinste-Quadrate Approximation

397

Beweis: Die Systemmatrix (7.9) ist symmetrisch. Mit Hilfe der Matrix   1 x0 x20 · · · xn0  1 x1 x21 · · · xn1    (M +1)×(n+1) B≡ . .. .. ..  ∈ R  ..  . . ··· . 1 xM x2M · · · xnM

(7.10)

kann A in der Form A = B T B geschrieben werden. F¨ ur die quadratische Form von A gilt QA (c) ≡ cT A c = cT B T B c = (Bc)T Bc ≥ 0 f¨ ur alle c ∈ Rn+1 . Besitzt die Matrix B vollen Rang, d.h. rang(B) = n + 1, dann bestehen die folgenden Implikationen: QA (c) = 0 ⇐⇒ B c = 0 ⇐⇒ c = 0, woraus sich unmittelbar auf die positive Definitheit von A schließen l¨aßt. Wir P wollen desn halb als n¨ achstes diese wichtige Eigenschaft von A nachweisen. Es sei p(x) ≡ j=0 aj xj ein Polynom vom Grad n. Dann lauten die zu vorgegebenen St¨ utzwerten yi , i = 0, . . . , n, geh¨ orenden Interpolationsbedingungen     a0 y0  a1   y1     ˜ B (7.11)  ..  =  ..  ,  .   .  an

yn

˜ die Matrix wobei B   ˜≡ B  

1 1 .. .

x0 x1 .. .

x20 x21 .. .

1

xn

x2n

··· ··· ··· ···

xn0 xn1 .. . xnn

    ∈ R(n+1)×(n+1) 

bezeichnet. Nach dem Satz 6.2 existiert ein eindeutig bestimmtes Interpolationspolynom vom Grad h¨ ochstens n, das die Punkte (x0 y0 ), . . . , (xn , yn ) interpoliert, falls die St¨ utzstellen paarweise verschieden sind. Damit muß das System (7.11) eindeutig l¨osbar ˜ nichtsingul¨ar ist. Die Matrix B ˜ sein, was wiederum bedeutet, daß die Systemmatrix B ist aber genau die (n + 1)-dimensionale f¨ uhrende Hauptuntermatrix von B. Folglich besitzt B vollen Rang. Wie oben erw¨ ahnt, impliziert dies, daß die Matrix A symmetrisch und positiv definit ist. Aus dem Satz 2.7 folgt nun die Behauptung.  Ein Beispiel f¨ ur die Kleinste-Quadrate-Approximation mit Polynomen ist in der Abbildung 7.2 angegeben. Da die Matrix A des linearen Gleichungssystems (7.8) symmetrisch und positiv definit ist, sollten die numerischen Verfahren aus Abschnitt 2.4.1 bei der Implementierung der Kleinste-Quadrate-Technik zum Einsatz kommen. Insbesondere bietet sich das Cholesky-Verfahren (siehe Algorithmus 2.6) an.

398

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Abbildung 7.2: Approximation mit einem Polynom 5. Grades

7.1.2

Empirische Funktionen

Die Realisierung der Methode der Kleinsten Quadrate mit Polynomen ist aus mathematischer Sicht sehr erfolgversprechend, da diese Technik auf ein lineares Gleichungssystem f¨ uhrt, aus dem die i.allg. eindeutig bestimmte (globale) L¨osung unmittelbar berechnet werden kann. Ein offenes Problem stellt hierbei aber noch die Wahl des Polynomgrades n dar. In den Anwendungen ist man jedoch h¨ aufig nicht an einer solchen Polynomapproximation interessiert, da die theoretischen Resultate der jeweiligen Fachdisziplin beispielsweise darauf hinweisen, daß der gesuchte funktionale Zusammenhang ein exponentieller ist. Man m¨ ochte dann als zugeh¨ orige N¨ aherungsfunktion ebenfalls eine Exponentialfunktion bestimmen. Somit kommt der Festlegung einer geeigneten Approximationsfunktion große Bedeutung zu. Ist der Fachdisziplin nicht zu entnehmen, welchem Funktionentyp der gesuchte funktionale Zusammenhang zugeordnet werden kann, dann wird man zuerst einmal die Meßpunkte in ein Koordinatensystem einzeichnen. Oftmals l¨aßt sich dann bereits aus der Anschauung heraus oder aber durch einen Vergleich mit den Verl¨ aufen der bekanntesten Funktionen ein Funktionentyp f¨ ur die Approximation ausw¨ ahlen. Sehr empfehlenswert sind in dieser Arbeitsphase die in den Formelsammlungen zur Mathematik1 angegebenen Bilder der wichtigsten reellen Funktionen. Nachdem 1

Siehe zum Beispiel: Horst St¨ ocker, Hrsg.: Taschenbuch mathematischer Formeln und moderner Verfahren. Verlag Harri Deutsch, Frankfurt, 2007, oder Hans-Jochen Bartsch: Taschenbuch Mathematischer Formeln, Fachbuchverlag Leipzig im Carl Hanser Verlag, 2007

7.1 Diskrete Kleinste-Quadrate Approximation

399

ein solcher Funktionentyp gefunden ist, wird man durch die Einf¨ uhrung einer gewissen Anzahl von freien Parametern (die den Charakter von Schaltern“ tragen) die ” zugeh¨ orige Funktion so ausstatten, daß sie sich einfach dehnen und verschieben l¨aßt und dadurch gut an den durch die Meßpunkte vorgegebenen Verlauf angepaßt werden kann. Eine solche dem Problem angepaßte parametrisierte Funktion wird als empirische Funktion bezeichnet. Wir wollen zun¨ achst der Frage nachgehen, wie man anhand der in einer Tabelle angegebenen Meßwerte {(xi , yi ), i = 0, . . . , M } entscheiden kann, ob die Wahl einer empirischen linearen Funktion P1 (x) = a x + b sachgem¨aß ist. Zu diesem Zweck setzen wir 4xi ≡ xi+1 − xi ,

4yi ≡ yi+1 − yi

und ki ≡

4yi , 4xi

i = 0, . . . , M − 1.

(7.12)

Gilt k0 = k1 = · · · = kM −1 , dann liegen die Punkte (xi , yi ), i = 0, . . . , M , offensichtlich genau auf einer Geraden. Da die Meßpunkte jedoch mit Meßfehlern behaftet sind, wird dies so nicht zutreffen. Stellt man aber k0 ≈ k1 ≈ · · · ≈ kM −1

(7.13)

fest, dann ist es zweckm¨ aßig, die empirische Abh¨angigkeit zwischen den Gr¨oßen x und y in Form der linearen Funktion P1 (x) zu suchen. Sind die Werte xi ¨aquidistant, d.h., die 4xi sind alle gleich, so gen¨ ugt es zu u ufen, ob dies auch f¨ ur die Differenzen ¨berpr¨ 4yi n¨ aherungsweise zutrifft. Ist (7.13) nicht mit ausreichender Genauigkeit erf¨ ullt, sondern ver¨andern sich die ki bei wachsendem i systematisch, dann h¨ angt y nicht linear von x ab und der Ansatz P1 (x) sollte auf keinen Fall verwendet werden. Jetzt wollen wir annehmen, daß die Meßpunkte (xi , yi ) nicht auf einer Geraden liegen. In einigen F¨ allen l¨ aßt sich durch eine eindeutig umkehrbare Koordinatentransformation X = ϕ(x, y),

Y = ψ(x, y)

(7.14)

erreichen, daß die entsprechend transformierten Punkte (Xi , Yi ), mit Xi ≡ ϕ(xi , yi ) und Yi ≡ ψ(xi , yi ), auf einer Geraden in der X, Y -Ebene liegen. Als erstes Beispiel betrachten wir die Potenzfunktion y = c xa ,

(7.15)

wobei a und c reelle Konstanten sind. Des weiteren m¨oge x > 0 und y > 0 gelten. Logarithmiert man nun die Formel (7.15), so ergibt sich ln y = a ln x + ln c.

(7.16)

400

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Mit X ≡ ln x,

Y ≡ ln y

und b ≡ ln c

(7.17)

erhalten wir nun eine lineare Gleichung Y = a X + b.

(7.18)

Somit wird man vor der Ausf¨ uhrung einer Approximation mit der Methode der Kleinsten Quadrate die Meßpunkte {(xi , yi ), i = 0, . . . , M } zuerst logarithmieren, d.h., aus der urspr¨ unglichen Tabelle eine neue Tabelle mit der transformierten Punktmenge {(Xi , Yi ) ≡ (ln xi , ln yi ), i = 0, . . . , M } erzeugen. Anschließend bestimmt man unter Verwendung von (7.18) die zugeh¨ orige Ausgleichsgerade. Nachdem dann die Parameter a und b bestimmt sind, muß man den Parameter c entsprechend der Formel c = eb berechnen. Setzt man schließlich a und c in (7.15) ein, so ergibt sich die gesuchte N¨ aherungsfunktion. Einen weiteren wichtigen Spezialfall von (7.14) stellt die exponentielle Abh¨angigkeit y = c eax ,

(7.19)

mit c > 0, dar. Logarithmiert man wieder die obige Gleichung, so ergibt sich ln y = a x + ln c. Mit X ≡ x,

Y ≡ ln y

und b ≡ ln c

(7.20)

folgt daraus wieder eine lineare Gleichung Y = a X + b.

(7.21)

Offensichtlich braucht man hier nur die y-Komponenten der Meßpunkte (xi , yi ) zu logarithmieren, um die neue Tabelle mit den entsprechend transformierten Punkten {(Xi , Yi ) ≡ (xi , ln yi ), i = 0, . . . , M } zu erzeugen. Dann l¨aßt sich wieder die Ausgleichsgerade in der Form (7.21) mit der Methode der Kleinsten Quadrate berechnen. Den noch fehlenden Parameter c in (7.19) bestimmt man schließlich nach (7.20) zu c = eb . Als ein letztes Beispiel f¨ ur die Koordinatentransformation (7.14) wollen wir annehmen, daß die Meßpunkte ann¨ ahernd auf einer Kurve liegen, die einem Hyperbelzweig mit der x-Achse als Asymptote ¨ ahnlich sieht. Daher setzen wir als empirische Funktion an:

y=

1 . ax + b

(7.22)

7.1 Diskrete Kleinste-Quadrate Approximation

401

Hieraus ergibt sich unmittelbar 1 = a x + b. y F¨ uhrt man jetzt die neuen Ver¨ anderlichen X≡x

und Y ≡

1 y

(7.23)

ein, dann ergibt sich die lineare Gleichung (7.24)

Y = a X + b.

Auch in diesem Fall brauchen nur die y-Komponenten der Meßpunkte (xi , yi ) transformiert zu werden, d.h., die neue Tabelle besteht aus den transformierten Punkten {(Xi , Yi ) ≡ (xi , 1/yi ), i = 0, . . . , M }. Die Parameter werden dann analog zu den vorangegangenen beiden Beispielen berechnet. Sollte es sich herausstellen, daß f¨ ur die Meßwerte {(xi , yi ), i = 0, . . . , M } eine Approximation durch eine lineare Funktion ungeeignet ist (selbst bei einer vorherigen Transformation (7.14) der Daten), so kann man das Datenmaterial dahingehend untersuchen, ob eine quadratische Abh¨ angigkeit der Gestalt y = a x2 + b x + c

(7.25)

besteht. Ist dies der Fall, dann l¨ aßt sich mit einem quadratischen Polynom P2 (x) die in Abschnitt 7.1.1 angegebene Kleinste-Quadrate-Approximation durchf¨ uhren. Zum Erkennen einer solche quadratischen Abh¨ angigkeit bilden wir wieder die Differenzen 4xi ≡ xi+1 − xi > 0,

i = 0, . . . , M − 1.

Besteht nun zwischen den Ver¨ anderlichen x und y eine Abh¨angigkeit der Form (7.25), dann ist die Folge y0 , y1 , . . . , yM entweder monoton, d.h., die Differenzen 4yi ≡ yi+1 − yi ,

i = 0, . . . , M,

haben ein konstantes Vorzeichen, oder die Folge besitzt ein einziges Extremum, d.h., die Differenzen 4yi wechseln genau einmal das Vorzeichen. Verwendet man nun die im Abschnitt 6.5 definierten dividierten Differenzen, dann ist es nicht schwer zu zeigen (siehe Formel (6.59)), daß die Punkte (xi , yi ) genau dann auf der Parabel (7.25) liegen, wenn alle dividierten Differenzen 2. Ordnung gleich sind, d.h., wenn f¨ ur i = 0, . . . , M −2 gilt: 

 4yi 4 f [xi+1 , xi+2 ] − f [xi , xi+1 ] 4xi f [xi , xi+1 , xi+2 ] = = = const. xi+2 − xi 4xi + 4xi+1

(7.26)

402

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Hat man es insbesondere mit ¨ aquidistant verteilten Punkten x0 , . . . , xM zu tun, d.h., es gilt f¨ ur alle i die Beziehung 4xi = h = const, dann ist f¨ ur das Bestehen der quadratischen Abh¨ angigkeit (7.25) notwendig und hinreichend, daß die Differenzen 2. Ordnung 42 yi gleich sind: 42 yi = yi+2 − 2yi+1 + yi = const,

i = 0, . . . , M − 2.

(7.27)

In diesem Fall ist dann 42 yi = 2h2 a. Wie auch bei den Tests hinsichtlich linearer Abh¨angigkeit macht es wegen der fehlerbehafteten Meßwerte nur einen Sinn, die Differenzen 2. Ordnung auf n¨ aherungsweise Gleichheit zu u ufen. Es ist jedoch zu beachten, daß die zweiten Differenzen sehr ¨berpr¨ stark auf Abweichungen von der parabolischen Abh¨angigkeit (7.25) reagieren. Im folgenden wollen wir an die bisher untersuchte Fragestellung etwas allgemeiner herangehen. Es soll n¨ amlich die Frage beantwortet werden, wie man zu vorgegebenen Meßdaten {(xi , yi ), i = 0, . . . , M } eine zweiparametrige empirische Funktion g(x; a, b) finden kann, die dem tats¨ achlichen funktionalen Zusammenhang recht nahe kommt. Die beiden Spezialf¨ alle g(x; a, b) = a x + b und g(x; a, b) = x2 + b x + c wurden bereits studiert. Auf Demidowitsch, Maron und Schuwalowa1 geht der Vorschlag zur¨ uck, mittels dreier Punkte (x0 , y0 ), (xs , ys ) und (xM , yM ) ein Entscheidungskriterium f¨ ur oder gegen eine spezielle (zweiparametrige) Funktion zu formulieren. Der Punkt (xs , ys ) ist entweder ein gegebener Meßpunkt mit 0 < s < M , oder aber ein Punkt, der nicht in der Tabelle der Meßwerte enthalten ist. Im letzteren Fall wird er so festgelegt, daß das Entscheidungskriterium m¨ oglichst einfach ausf¨allt. Die Grundidee soll anhand der Potenzfunktion y = a xb

(7.28)

verdeutlicht werden. Hierzu werde xi > 0 und yi > 0 f¨ ur alle i vorausgesetzt. Wir w¨ ahlen f¨ ur xs keinen Tabellenwert, sondern setzen xs ≡



x0 xM .

(7.29)

Setzt man die drei Punkte (x0 , y0 ), (xs , ys ) und (xM , yM ) in die Formel (7.28) ein, so erh¨ alt man b b 2 y0 = a xb0 , ys = a xbs = a x02 xM , yM = a xbM . Die Elimination der Parameter a und b aus diesen Gleichungen ergibt y0 yM = ys2 , ys = 1



d.h.

y0 yM .

(7.30)

B. P. Demidowitsch, I. A. Maron und E. S. Schuwalowa: Numerische Methoden der Analysis. VEB Deutscher Verlag der Wissenschaften, Berlin, 1968

7.1 Diskrete Kleinste-Quadrate Approximation

403

Folglich ist f¨ ur die Existenz der Potenzfunktion (7.28) notwendig, daß dem geometrischen Mittel (7.29) das geometrische Mittel (7.30) entspricht. Ist der Wert (7.29) von xs nicht in der Tabelle der Meßwerte enthalten, dann l¨aßt sich der zugeh¨orige Wert ys zum Beispiel durch lineare Interpolation (siehe Formel (6.6)) approximieren. In der Tabelle 7.2 sind f¨ ur die zweiparametrigen Funktionen

(i)

y = a x + b,

(iv)

y =a+

(vii)

b , x y = a ln x + b

(ii) y = a xb , (v)

y=

1 , ax + b

(iii) y = a bx , (vi)

y=

x , ax + b

(7.31)

die notwendigen Bedingungen f¨ ur die Existenz eines funktionalen Zusammenhangs angegeben1 . Die genannten Autoren schlagen nun die folgende Strategie zur Auswahl einer sachgem¨ aßen empirischen Formel anhand der Tabelle 7.2 vor. Gegeben seien wie u ¨blich die Meßpunkte (x0 , y0 ), . . . , (xM , yM ). Man bestimme zuerst den Wert xs ≡ x ˜s entsprechend der in der zweiten Spalte angegebenen Formel. Dann w¨ahle man aus den Meßdaten den zugeh¨ origen Wert ys aus oder berechne diesen mittels linearer Interpolation. Anschließend vergleiche man ys mit y˜s , wobei dieser Wert nach der Formel in der dritten Spalte zu berechnen ist. Diejenige empirische Funktion wird bevorzugt, f¨ ur die die Differenz |ys − y˜s | m¨ oglichst klein ist. F¨ ur eine endg¨ ultige Entscheidung wird aber das Ergebnis u ¨blicherweise noch an einigen Zwischenpunkten aus der vorgegebenen Meßtabelle u uft. Falls die Gr¨ oße |ys − y˜s | dabei eine vorzugebende obere ¨berpr¨ Schranke u ¨berschreitet, sollte die entsprechende empirische Funktion unbedingt wieder verworfen werden. In diesem Fall muß man nach einer anderen zweiparametrigen oder aber auch mehrparametrigen empirischen Formel suchen, die dem wahren funktionalen Zusammenhang besser entspricht. Wurde aber ein geeigneter Ansatz mit der Tabelle 7.2 gefunden, dann wird man die urspr¨ unglichen Meßpunkte, wie in der f¨ unften Spalte angegeben, so transformieren, daß nur ein linearer Ausgleich nach der Methode der Kleinsten Quadrate durchgef¨ uhrt werden muß. Bemerkung 7.1. Die in diesem Abschnitt vorgestellten Techniken basieren i.allg. auf solchen Transformationen der urspr¨ unglichen Meßdaten, daß nur eine Ausgleichsgerade mit der Methode der Kleinsten Quadrate zu bestimmen ist. Man sollte dabei aber beachten, daß sich das Ergebnis signifikant von dem unterscheiden kann, welches sich bei einer direkten Kleinste-Quadrate-Approximation (ohne eine vorherige Transformation (Xi , Yi ) ⇐ (xi , yi )) mit einer der Funktionen aus (7.31) ergibt. 

1

B. P. Demidowitsch, I. A. Maron und E. S. Schuwalowa: Numerische Methoden der Analysis. VEB Deutscher Verlag der Wissenschaften, Berlin, 1968

404

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate Typ

(i)

x ˜s

y˜s

x0 + xM 2

y0 + yM 2

arithmetisches Mittel √ x0 xM

arithmetisches Mittel √

geometrisches Mittel

geometrisches Mittel

x0 + xM 2



arithmetisches Mittel

geometrisches Mittel

2x0 xM x0 + xM

y0 + yM 2

harmonisches Mittel

arithmetisches Mittel

x0 + xM 2

2y0 yM y0 + yM

(v) arithmetisches Mittel

harmonisches Mittel

2x0 xM x0 + xM

2y0 yM y0 + yM

harmonisches Mittel

harmonisches Mittel



y0 + yM 2

(vi)

x0 xM

(vii) geometrisches Mittel

y = a xb

Y = α + b X, mit X ≡ ln x Y ≡ ln y, α ≡ ln a

y = a bx

Y = α + β x, mit Y ≡ ln y α ≡ ln a, β ≡ ln b

y0 yM

(iv)

Linearisierte Form

y = ax + b

y0 yM

(ii)

(iii)

Gestalt der empirischen Formel

Y = a x + b, b y =a+ x

mit Y ≡ x y

Y = a x + b, 1 y= ax + b

mit Y ≡

1 y

x y= ax + b

Y = a x + b, x mit Y ≡ y

y = a ln x + b

y = a X + b, mit X ≡ ln x

arithmetisches Mittel

Tabelle 7.2: Kriterien f¨ ur eine zweidimensionale empirische Formel

7.1.3

Nichtlineare Approximation

Im vorangegangenen Abschnitt haben wir im Falle eines nichtlinearen funktionalen Zusammenhangs versucht, durch eine a priori Transformation der gegebenen Meßpunkte

7.1 Diskrete Kleinste-Quadrate Approximation

405

{(xi , yi ), i = 0, . . . , M } zu einer Tabelle von Daten {(˜ xi , y˜i ), i = 0, . . . , M } zu gelangen, die mit einer linearen Funktion ausgeglichen werden kann. Nach der Bestimmung der Ausgleichsgeraden erh¨ alt man schließlich die gesuchten Parameterwerte f¨ ur die nichtlineare Approximationsfunktion aus einer a posteriori Transformation der Koeffizienten dieser linearen Funktion. Wir wollen jetzt auf eine solche a priori Transformation der Meßpunkte verzichten und den nichtlinearen funktionalen Zusammenhang direkt approximieren. Die nichtlineare empirische Funktion y(x) = b ea x (7.32) soll uns hierbei als Beispiel dienen. Der entscheidende Unterschied zur Approximation mit Polynomen besteht darin, daß die zu berechnenden Parameter in (7.32) nichtlinear auftreten. Wie die Methode der Kleinsten Quadrate vorschreibt, hat man nun die Funktion F (a, b) ≡

M X

(yi − y(xi ))2 =

i=0

M X

2

(yi − b ea xi )

(7.33)

i=0

zu bilden und mit dieser das folgende Optimierungsproblem ohne Nebenbedingungen zu konstruieren: F (a, b)

−→ a,b

min.

(7.34)

Es gibt eine Vielzahl numerischer Techniken, mit denen sich die lokalen Minima von (7.33), (7.34) iterativ bestimmen lassen. Im wesentlichen handelt es sich dabei um die sogenannten Abstiegsverfahren (siehe auch Abschnitt 5.5.3), deren Grundprinzip wir f¨ ur ein allgemeines Funktional F (x), F : D ⊂ Rm → R+ , hier noch einmal kurz darstellen wollen. Im Falle von (7.33) ist m = 2, x1 = a und x2 = b zu setzen. Die Abstiegsverfahren erzeugen, ausgehend von einem Startvektor x(0) , eine Vektorfolge {x(k) }∞ k=0 , die unter bestimmten Voraussetzungen gegen einen Minimierungspunkt x∗ des Funktionals F (x) konvergiert. Die Iterierten werden dabei in der Form x(k+1) = x(k) + ωk tk p(k)

(7.35)

angegeben, wobei p(k) einen Richtungsvektor, tk ≥ 0 eine Schrittl¨ange und ωk ≥ 0 einen Relaxationsparameter bezeichnen. In jedem Iterationsschritt bestimmt man p(k) , ωk und tk so, daß der Wert des Funktionals F (x) abnimmt, d.h., daß gilt F (x(k) ) ≥ F (x(k+1) ).

(7.36)

406

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Ein solches Abstiegsverfahren besteht i.allg. aus zwei Teilalgorithmen, n¨amlich einem zur Bestimmung einer neuen Richtung p(k) und einem anderen (die sogenannte Liniensuche) zur Auswahl der n¨ achsten Iterierten auf dem Halbstrahl {x ∈ Rm :

x = x(k) + t p(k) , t ≥ 0},

(7.37)

so daß x(k+1) ∈ D und (7.36) gilt. Das Funktional F (x) m¨ oge stetige zweite partielle Ableitungen bez¨ uglich aller vorkommenden Variablen x1 , . . . , xm besitzen, d.h. F ∈ C2 (Rm ). Wie im Abschnitt 5.5 bezeichnen wir den Gradienten von F (x) mit  grad F (x) ≡

∂ ∂ F (x), . . . , F (x) ∂ x1 ∂ xm

T (7.38)

und die Matrix der zweiten partiellen Ableitungen von F (x), die Hesse-Matrix, mit   ∂2 H(x) ≡ F (x) , i, k = 1, . . . , m. (7.39) ∂xi ∂xk ¨ Ublicherweise wird f¨ ur den Richtungsvektor p(k) eine Abstiegsrichtung von F (x) verwendet (siehe (5.60)), d.h., man verlangt grad F (x(k) )T p(k) < 0. Diese Bedingung garantiert, daß bei der Liniensuche nur positive Werte von t ber¨ ucksichtigt werden m¨ ussen. Da jeder (lokale) Minimierungspunkt x∗ des Funktionals F (x) auch eine Nullstelle des Gradienten grad F (x) ist (notwendige Bedingung f¨ ur ein Minimum, siehe Satz 5.6), kann man ein beliebiges Iterationsverfahren zur Bestimmung von L¨osungen nichtlinearer Gleichungssysteme (siehe Kapitel 5) auf das System grad F (x) = 0, ∂ F (x) = 0, ∂ x1

∂ F (x) = 0, . . . , ∂ x2

∂ F (x) = 0, ∂ xm

(7.40)

anwenden und erh¨ alt bei Konvergenz einen Minimierungspunkt von F (x). W¨ahlt man hierzu das Newton-Verfahren (5.18) aus, dann entspricht dies der Verwendung des Richtungsvektors p(k) ≡ H(x(k) ) grad F (x(k) )

(7.41)

im Abstiegsverfahren (7.35). Bei konstanter Schrittl¨ange tk = 1 und konstantem Relaxationsparameter ωk = 1 f¨ uhrt diese Wahl offensichtlich zu einem quadratisch konvergenten Iterationsverfahren (siehe Satz 5.3). Das Abstiegsverfahren (7.35) mit dem Richtungsvektor (7.41) ist in der Literatur unter dem Namen Gauß-Newton-Verfahren (siehe Abschnitt 5.5.2) bekannt. Es besitzt jedoch den entscheidenden Nachteil, daß

7.1 Diskrete Kleinste-Quadrate Approximation

407

die Matrix H(x(k) ) aller zweiten partiellen Ableitungen von F (x) in jedem Iterationsschritt neu berechnet werden muß. Es gibt jedoch ¨ahnlich dem Broyden-Verfahren f¨ ur nichtlineare Gleichungssysteme (siehe Abschnitt 5.3) ableitungsfreie Varianten des Gauß-Newton-Verfahrens, bei denen gewisse Rang-2-Modifikationsformeln eine wichtige Rolle spielen1 . F¨ ur unser Beispiel (7.33) berechnet sich das System (7.40) mit x ≡ (a, b)T zu 0 = g1 (a, b) =

M X ∂ F (a, b) = 2 (yi − b ea xi ) (−b xi ea xi ) , ∂a i=0

M X ∂ 0 = g2 (a, b) = F (a, b) = 2 (yi − b ea xi ) (−ea xi ) . ∂b i=0

(7.42)

L¨ ost man (7.42) bzw. (7.40) direkt mit dem Newton-Verfahren oder einer ableitungsfreien Variante (d.h. ohne Liniensuche und D¨ ampfung), dann wird man mit zwei typischen Fragestellungen konfrontiert. Beide Verfahren sind nur lokal konvergent, d.h., man ben¨ otigt einen Startvektor x(0) = (a(0) , b(0) )T , der bereits hinreichend nahe bei der gesuchten L¨ osung x∗ = (a∗ , b∗ )T liegt. Des weiteren besitzt ein solches nichtlineares System u osungen, so daß man selbst bei einem erfolgrei¨blicherweise mehrere L¨ chen Iterationsverlauf nicht sicher sein kann, ob es sich bei der numerisch bestimmten L¨ osung um die tats¨ achlich gesuchte Nullstelle handelt. Letzteres Problem tritt auch bei der Anwendung eines echten Abstiegsverfahrens vom Typ (7.35) – mit Liniensuche und/oder D¨ ampfung – auf, da sich mit diesen numerischen Techniken i.allg. nur die lokalen Minima des Funktionals F (x) finden lassen, f¨ ur deren Existenz wiederum die Gleichungen (7.40) die notwendigen Bedingungen darstellen. Das erstgenannte Problem ¨ kann durch den Ubergang zu einem Gauß-Newton-Verfahren mit Liniensuche teilweise behoben werden, da die integrierte Liniensuche zu einer gewissen Globalisierung des numerischen Algorithmus f¨ uhrt. Um in der Praxis geeignete Startvektoren zu finden, f¨ ur die das Newton-Verfahren gegen die gesuchte L¨osung konvergiert, sollten zus¨atzliche Informationen u ¨ber das zugrundeliegende Modell hinzugezogen werden. So ist es oftmals dem Naturwissenschaftler oder Techniker m¨oglich, genauere Angaben u ¨ber die Gr¨ oßenordnungen und/oder die Vorzeichen der gesuchten Parameter zu machen. Hat man nun mehrere Parameterkombinationen (ai , bi ) (d.h. lokale Minima) berechnet, die alle den Kriterien des jeweiligen praktischen Modells gen¨ ugen, dann sollte man diejenigen Parameter in der empirischen Funktion (7.32) verwenden, f¨ ur die der Wert des Funktionals F (x) am kleinsten ist. Viele der f¨ ur die praktischen Anwendungen bedeutsamen empirischen Funktionen besitzen eine nicht unerhebliche Anzahl an freien Parametern. Zum Beispiel sind f¨ ur die Biologie und die Chemie empirische Funktionen der Form F (a1 , . . . , am , b1 , . . . , bm ) ≡

m X

bj eaj x ,

m relativ groß,

j=1 1

Siehe H. Schwetlick: Numerische L¨ osung nichtlinearer Gleichungen. VEB Deutscher Verlag der Wissenschaften, Berlin, 1979

408

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

von Interesse. Damit die Parameter a1 , . . . , am , b1 , . . . , bm durch eine vorgegebene Tabelle von Meßdaten {(xi , yi ), i = 0, . . . , M } hinreichend gut determiniert sind, muß M  2m gelten. Aber selbst in diesem Fall k¨onnen bei numerischen Rechnungen mit mehreren Startvektoren, die sich nur geringf¨ ugig unterscheiden, sehr unterschiedliche Parameterkombinationen als L¨ osungen herauskommen. Die zugeh¨origen Summen der kleinsten Quadrate unterscheiden sich aber nur unwesentlich. Charakteristisch f¨ ur eine derartige Situation ist auch, daß in den numerisch ermittelten L¨osungen einige Parameter kaum differieren, w¨ ahrend die anderen Parameter noch nicht einmal in der Gr¨ oßenordnung u ¨bereinstimmen. Dies zeigt, daß das nichtlineare Approximationsproblem f¨ ur einige der Parameter ein schlecht konditioniertes Problem darstellt. Hier hilft i.allg. nur eine drastische Vergr¨ oßerung der Anzahl der Meßdaten. Jedoch sind in der Praxis solche Messungen nicht beliebig oft realisierbar, so daß es dann aus der Sicht der numerischen Mathematik keinen Sinn mehr macht, weitere aufwendige Parametersch¨ atzungen durchzuf¨ uhren. Bereits im Kapitel 1 haben wir gezeigt, daß ein schlecht konditioniertes Problem mit keinem noch so guten numerischen Algorithmus vern¨ unftig gel¨ ost werden kann. Selbst wenn sich f¨ ur verschiedene Startvektoren die numerisch berechneten Parameterkombinationen kaum unterscheiden und auch die zugeh¨origen Summen der kleinsten Quadrate nahezu identisch sind, sollte man die Meßdaten unter Verwendung normalverteilter Zufallszahlen etwas st¨ oren und die Rechnungen noch einmal durchf¨ uhren. Hierdurch erh¨ alt man wichtige Informationen u ¨ber die Empfindlichkeit der einzelnen Parameter im verwendeten empirischen Ansatz, woraus wiederum auf die G¨ ute der vorgenommenen Kleinste-Quadrate-Approximation geschlossen werden kann. Auf die Beschreibung der verschiedenen numerischen Strategien zur Bestimmung der Schrittl¨ ange αk und des Relaxationsparameters ωk (siehe die Formel (7.35)) wollen wir hier verzichten, da dies den Rahmen einer Einf¨ uhrung in die Numerischen Mathematik sprengen w¨ urde. Der interessierte Leser sei auf die umfangreiche Literatur zu dieser Thematik verwiesen1 .

7.2

Stetige Kleinste-Quadrate-Approximation

Bisher wurde davon ausgegangen, daß die Funktion f (x) nur an diskreten Stellen bekannt ist. Jetzt sollen die Kleinste-Quadrate-Techniken auf den Fall angepaßt werden, daß f (x) formelm¨ aßig bekannt und stetig ist.

7.2.1

Polynomapproximation

Bisher haben wir f¨ ur eine Tabelle von Meßdaten {(xi , yi ), i = 0, . . . , M } mit der Methode der Kleinsten Quadrate eine N¨ aherungsfunktion bestimmt, die den zugrundeliegen1

Siehe u.a. W. C. Rheinboldt: Methods for Solving Systems of Nonlinear Equations. SIAM, Philadelphia, 1998 sowie J. M. Ortega and W. C. Rheinboldt: Iterative Solutions of Nonlinear Equations in Several Variables. Academic Press, New York, 1970

7.2 Stetige Kleinste-Quadrate-Approximation

409

den (jedoch nicht exakt bekannten) funktionalen Zusammenhang y = f (x) hinreichend gut approximiert. Im Gegensatz hierzu wollen wir jetzt davon ausgehen, daß ein solcher funktionaler Zusammenhang y = f (x) vorliegt, d.h., daß die Funktion f (x) bekannt ist. Unser Ziel ist es, diese Funktion f (x) durch eine N¨aherungsfunktion P (x) zu ersetzen, die im Sinne des Kleinste-Quadrate-Prinzips eine gute Approximation f¨ ur f (x) darstellt. Wie bei der Interpolation sind Polynome Pn (x) vom Grad h¨ochstens n f¨ ur eine solche Approximation recht gut geeignet. Aus diesem Grunde wollen wir zuerst mit der Polynomapproximation beginnen und setzen f ∈ C[a, b] voraus, wobei mit [a, b] ein Intervall bezeichnet werde, auf dem die Funktion f (x) angen¨ahert werden soll. Wie bei der diskreten Kleinste-Quadrate-Approximation hat man die Differenzen zwischen der gegebenen Funktion f (x) und dem Polynom Pn (x) zu quadrieren und anschließend die Quadrate zu addieren. Da aber jetzt die Funktionswerte f (x) an jeder beliebigen Stelle x im Intervall [a, b] bekannt sind, f¨ uhrt dies auf die Summation von unendlich vielen solchen Quadraten. Die mathematische Konsequenz ist, daß die Summenbildung in einen Integralausdruck u ¨bergeht, d.h., es ist das Minimum des folgenden Ausdrucks zu bestimmen: Z b 2 (f (x) − Pn (x)) dx. (7.43) a

Mit Pn (x) ≡ an xn + an−1 xn−1 + · · · + a1 x + a0 =

n X

ak xk

k=0

und Z F (a0 , . . . , an ) ≡

b

(f (x) − a

n X

ak xk )2 dx

(7.44)

k=0

ergibt sich daraus die Zielstellung F (a0 , . . . , an )

−−−−−→ a0 ,...,an

min.

(7.45)

Die notwendigen Bedingungen daf¨ ur, daß eine Parameterkombination a0 , . . . , an das Funktional F (a0 , . . . , an ) minimiert, lauten wie bisher: ∂ F (a0 , . . . , an ) = 0, ∂aj

j = 0, 1, . . . , n.

Bevor wir die obigen partiellen Ableitungen explizit aufschreiben, wollen wir das Funktional F (a0 , . . . , an ) noch etwas vereinfachen. Es ist !2 Z b Z b Z b X n n X 2 k k F (a0 , . . . , an ) = f (x) dx − 2 ak x f (x) dx + ak x dx. a

k=0

a

a

k=0

410

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Damit ergibt sich ∂ F (a0 , . . . , an ) = −2 ∂aj

Z

b j

x f (x) dx + 2 a

n X k=0

b

Z

xj+k dx.

ak a

Zur Bestimmung der n + 1 Koeffizienten a0 , . . . , an des approximierenden Polynoms Pn (x) ist folglich das (n + 1)-dimensionale lineare Gleichungssystem Z n X

!

b

x

j+k

xj f (x) dx,

ak =

a

k=0

b

Z

dx

j = 0, . . . , n,

(7.46)

a

zu l¨ osen. Dieses Gleichungssystem ist wiederum unter dem Begriff Normalgleichungen bzw. Gaußsche Normalgleichungen bekannt. Es l¨aßt sich in der u ¨blichen Form linearer Gleichungssysteme Ax = b aufschreiben, wenn man die Vektoren x, b ∈ Rn+1 und die Matrix A ∈ R(n+1)×(n+1) wie folgt definiert: T

x ≡ (a0 , . . . , an ) ,

Z b≡

b

Z

0

f (t) t dt,

Z

b

t1 dt

b−a    Z b   t1 dt   a A≡  ..  .    Z b  tn dt a

a

Z

a

Z

t2 dt

Z

a

a

Z ···

b

tn+1 dt

Z a

n

f (t) t dt

,

b

tn dt



   Z b  n+1 t dt    a .  ..  .    Z b  2n t dt a

b

t3 dt

···

.. .

···

a

.. . Z

b

t2 dt

!T

b

a

a b

Z

1

f (t) t dt, . . . ,

a



b

b

tn+2 dt

···

(7.47)

a

Bez¨ uglich der Existenz einer L¨ osung von (7.46) und deren Eindeutigkeit gilt der folgende Satz. Satz 7.2. Es sei f ∈ C[a, b] gegeben und es gelte a 6= b. Dann besitzen die Normalengleichungen (7.46) eine eindeutige L¨ osung. Beweis: Wir zeigen, daß die Systemmatrix A in (7.47) nichtsingul¨ar ist. Hierzu setzen wir f (x) ≡ 0, so daß sich die rechte Seite b des Gleichungssystems A x = b auf den Nullvektor b ≡ 0 reduziert. Falls das so entstandene homogene lineare Gleichungssystem A x = 0 nur die triviale L¨ osung x = 0, d.h., a0 = · · · = an = 0, besitzt, ist die Behauptung gezeigt.

7.2 Stetige Kleinste-Quadrate-Approximation

411

Multipliziert man nun die j-te Zeile des homogenen Gleichungssystems mit aj und summiert anschließend u ¨ber alle j, dann ergibt sich aus (7.46) ! Z b n X n X j+k x dx aj ak = 0. a

j=0 k=0

Dies wiederum l¨ aßt sich in der Form Z bX n X n

aj ak xj+k dx = 0

a j=0 k=0

schreiben, was aber gleichbedeutend mit Z b 2 (Pn (x)) dx = 0 a

ist. Hieraus folgt unmittelbar Pn (x) = 0, d.h. a0 = a1 = . . . = an = 0.



Die Matrix (7.47) ist wie im diskreten Fall symmetrisch und positiv definit. Folglich l¨ aßt sich auch hier das zugeh¨ orige Gleichungssystem (7.46) mit den Techniken aus Abschnitt 2.4.1 effektiv l¨ osen. Standardm¨ aßig wird man das Cholesky-Verfahren (siehe Algorithmus 2.6) anwenden. Bevor wir auf Modifikationen dieser Technik zu sprechen kommen, wollen wir folgendes Beispiel betrachten. Beispiel 7.2. Man approximiere die Funktion f (x) = 3x auf dem Intervall [−1, 1] durch ein Polynom zweiten Grades. Damit ist P2 (x) = a0 + a1 x + a2 x2 gesucht, f¨ ur das gilt: Z 1

(3x − a0 − a1 x − a2 x2 )2 dx

F (a0 , a1 , a2 ) ≡ −1

−−−−−→

min.

a0 ,a1 ,a2

Das Gleichungssystem (7.46) lautet in diesem Fall   8 2    2 0  a 0 3 ln 3 3          10 8    0 2 0  −  a1  =      3 ln 3 3 ln2 3 3       8 20 16 2 2 a2 − + 0 2 3 ln 3 3 ln 3 3 ln3 3 3 5

        

Die zugeh¨ orige L¨ osung ist a0 = − a2 =

1 4 + ≈ 0.8013, 3 ln 3 3 ln2 3

a1 =

65 170 40 − + ≈ 0.9806. 9 ln 3 9 ln2 3 3 ln3 3

5 4 − ≈ 1.5344, ln 3 ln2 3

412

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Damit ergibt sich als approximierendes Polynom f¨ ur f (x) = 3x : P2 (x) ≈ 0.9806 x2 + 1.5344 x + 0.8013. In der Abbildung 7.3 sind die Funktion f (x) = 3x und das zugeh¨orige Polynom P2 (x) auf dem Intervall [−2, 2] dargestellt. Man erkennt sehr gut, daß der Approximationsfehler außerhalb des zugrundeliegenden Intervall [−1, 1] enorm anw¨achst.

Abbildung 7.3: f (x) = ex und approximierendes Polynom P2 (x)

 Die oben beschriebene Polynomapproximation besitzt folgende Nachteile: • Es ist ein lineares Gleichungssystem der Dimension n + 1 mit i.allg. vollbesetzter Koeffizientenmatrix zu l¨ osen. Die Koeffizienten selbst sind von der Form Z b bj+k+1 − aj+k+1 xj+k dx = , j+k+1 a so daß sie eine starke Empfindlichkeit gegen¨ uber Rundungsfehlern aufweisen. Damit ist dann auch die L¨ osung des Gleichungssystems schlecht bestimmt. Des weiteren werden in den F¨ allen, in denen der Grad des approximierenden Polynoms verh¨ altnism¨ aßig groß ist, die Rechnungen zur Bestimmung der Koeffizienten außerst umfangreich. ¨

7.2 Stetige Kleinste-Quadrate-Approximation

413

• Wie bei der Interpolation mit Lagrange-Polynomen kann bei der Berechnung des Polynoms (n + 1)-ten Grades der Aufwand, der zuvor f¨ ur das Polynom n-ten Grades erforderlich war, nicht eingespart werden.

7.2.2

Approximation mit verallgemeinerten Polynomen

Es soll jetzt eine andere Herangehensweise beschrieben werden, mit der sich die oben beschriebenen Nachteile beseitigen lassen. Hierzu sei ein System von n+1 stetigen Funktionen φ0 (x), . . . , φn (x) gegeben, die auf dem Intervall [a, b], b > a, linear unabh¨angig sind. Insbesondere k¨ onnen diese Funktionen Polynome sein, denn es gilt der folgende Satz. Satz 7.3. Es sei φk (x) ein Polynom vom Grad k. Dann sind φ0 (x), . . . , φn (x) auf jedem beliebigen Intervall [a, b], b > a, linear unabh¨ angig. Beweis: Es seien α0 , . . . , αn reelle Zahlen, f¨ ur die α0 φ0 (x) + α1 φ1 (x) + · · · + αn φn (x) = 0

f¨ ur alle x ∈ [a, b]

Pn gilt. Das Polynom P (x) ≡ k=0 αk φk (x) ist vom Grad h¨ochstens n und besitzt wegen der obigen Annahme unendlich viele Nullstellen. Somit muß P (x) ≡ 0 gelten. Dies ist aber nur erf¨ ullt, wenn die Koeffizienten vor allen Potenzen von x verschwinden. Da aber φk (x) genau den Grad k besitzt, folgt daraus αk = 0 f¨ ur jedes k = 0, . . . , n.  Um die Darstellung recht allgemein halten zu k¨onnen, wollen wir noch den Begriff der Gewichtsfunktion einf¨ uhren. Definition 7.1. Eine integrierbare Funktion ω(x) heißt Gewichtsfunktion auf dem Intervall [a, b], falls gilt: ω(x) ≥ 0 f¨ ur x ∈ [a, b] und ω(x) 6≡ 0 auf jedem Teilintervall von [a, b].  Der Sinn einer derartigen Gewichtsfunktion besteht darin, daß mit ihr gewisse Teilabschnitte von [a, b] hervorgehoben werden k¨ onnen, auf denen die Approximation besonders genau erfolgen soll. Zur Approximation einer stetigen Funktion f (x) auf dem Intervall [a, b] bilden wir nun mit Hilfe der n + 1 linear unabh¨ angigen und stetigen Funktionen φ0 (x), . . . , φn (x) ein sogenanntes verallgemeinertes Polynom

P (x) ≡

n X

ak φk (x).

(7.48)

k=0

Die noch unbestimmten Koeffizienten a0 , . . . , an sind nun so zu berechnen, daß das verallgemeinerte Polynom P (x) die gegebene Funktion f (x) m¨oglichst gut ann¨ahert,

414

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

d.h., es ist die folgende Aufgabe zu l¨ osen b

Z F (a0 , . . . , an ) ≡

ω(x)

f (x) −

a

n X

!2 ak φk (x)

dx

−−−−−→ a0 ,...,an

min.

(7.49)

k=0

Man beachte: mit ω(x) ≡ 1 und φk (x) ≡ xk , k = 0, . . . , n, geht (7.49) in die bereits behandelte Problemstellung (7.45) u ¨ber. Zur L¨ osung von (7.49) stellen wir wieder die notwendigen Bedingungen f¨ ur ein Minimum auf. Wir berechnen ! Z b n X ∂ 0= F (a0 , . . . , an ) = 2 ω(x) f (x) − ak φk (x) φj (x) dx, j = 0, . . . , n. ∂aj a k=0

Hieraus resultieren die zugeh¨ origen Normalgleichungen, ein System von n + 1 linearen Gleichungen zur Bestimmung der n + 1 Koeffizienten a0 , . . . , an im Ansatz (7.48), Z n X k=0

!

b

b

Z

ω(x) φk (x) φj (x) dx ak =

a

ω(x) f (x) φj (x) dx,

j = 0, . . . , n.

(7.50)

a

Offensichtlich ist das Gleichungssystem (7.50) von der gleichen Gestalt wie das System (7.45). Der einzige Vorteil besteht darin, daß man jetzt ein beliebiges linear unabh¨ angiges Funktionensystem f¨ ur die Approximation verwenden kann. Schr¨ankt man dieses Funktionensystem jedoch im Sinne der folgenden Definition weiter ein, dann l¨aßt sich tats¨ achlich der numerische Aufwand signifikant reduzieren. Definition 7.2. Ein System stetiger Funktionen φ0 (x), . . . , φn (x) heißt orthogonal auf dem Intervall [a, b] bez¨ uglich der Gewichtsfunktion ω(x), falls: Z

b

 ω(x) φj (x) φk (x) dx =

a

0, j 6= k αk > 0, j = k.

(7.51)

Gilt des weiteren αk = 1, k = 0, . . . , n, dann nennt man das Funktionensystem orthonormiert (orthogonal und normiert).  Definition 7.3. Die Zahl sZ kφk (x)k ≡

b

φ2k (x) dx

(7.52)

a

heißt die Norm der Funktion φk (x) auf dem Intervall [a, b].



7.2 Stetige Kleinste-Quadrate-Approximation

415

Konstruiert man nun das verallgemeinerte Polynom (7.48) mit einem System orthogonaler Funktionen φ0 (x), . . . , φn (x), dann reduziert sich die Systemmatrix von (7.50) auf die Diagonalmatrix D ≡ diag(α0 , . . . , αn ). Somit sind zur Aufl¨osung dieses Gleichungssystems nur n + 1 Divisionen erforderlich, d.h., der Rechenaufwand hat sich gegen¨ uber (7.46) und (7.50) wesentlich verringert. Zusammenfassend gilt der folgende Satz. Satz 7.4. Es sei φ0 (x), . . . , φn (x) ein orthogonales System stetiger Funktionen auf dem Intervall [a, b] bez¨ uglich der Gewichtsfunktion ω(x). Das mit diesen Funktionen gebildete verallgemeinerte Polynom n X P (x) = ak φk (x), (7.53) k=0

welches die stetige Funktion f (x) auf dem Intervall [a, b] bez¨ uglich ω(x) im Sinne der Methode der Kleinsten Quadrate bestm¨ oglichst approximiert, ist durch die folgenden Koeffizienten bestimmt: Z

b

ω(x) φk (x) f (x) dx ak = Za b

= 2

ω(x) (φk (x))) dx

1 αk

Z

b

ω(x) φk (x) f (x) dx,

k = 0, . . . , n.

(7.54)

a

a

Beweis: Das Resultat wurde bereits oben gezeigt.

7.2.3



Harmonische Analyse

Ein bez¨ uglich der Gewichtsfunktion ω(x) ≡ 1 orthonormiertes Funktionensystem auf dem Intervall [−π, π], das in der Praxis sehr h¨aufig verwendet wird, besteht aus den trigonometrischen Funktionen 1 φ0 (x) = √ , 2π 1 1 φk (x) = √ cos(k x), k = 1, . . . , n, φn+k (x) = √ sin(k x), k = 1, . . . , n. π π

(7.55)

Dieses Funktionensystem wird sicher immer dann herangezogen, wenn die zu approximierende Funktion f (x) ein oszillatorisches Verhalten aufweist. Wir wollen zun¨ achst die Orthogonalit¨ at des Funktionensystems (7.55) auf einem beliebigen Intervall der L¨ ange 2π nachweisen. Hierzu zeigen wir, daß die folgenden Integrale verschwinden: Z

π

sin(j x) sin(k x) dx f¨ ur ganzzahlige j und k mit j 6= k,

(a) −π

416

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate Z

π

cos(j x) cos(k x) dx f¨ ur ganzzahlige j und k mit j 6= k,

(b) −π

Z

π

(c)

cos(j x) sin(k x) dx f¨ ur alle ganzzahligen j und k. −π

Man berechnet Z

sin(j x) sin(k x) dx =

 π 1 sin((j − k) x) sin((j + k) x) − = 0 und 2 j−k j+k −π

cos(j x) cos(k x) dx =

 π 1 sin((j + k) x) sin((j − k) x) + = 0, 2 j+k j−k −π

π

(a) −π

Z

π

(b) −π

falls j und k ganzzahlig sind und j 6= k ist. Das Integral (c) verschwindet auf dem Intervall [−π, π], da der Integrand eine ungerade Funktion ist. Setzt man schließlich j = 0 in den Integralen (b) und (c), so ergibt sich Z

π

Z

π

1 · cos(k x) dx = 0 und

1 · sin(k x) dx = 0.

−π

−π

Folglich ist das trigonometrische Funktionensystem (7.55) auf dem Intervall [−π, π] und damit auch auf einem beliebigen Intervall (a, 2π + a] orthogonal. Um die Normiertheit dieses Funktionensystems zu zeigen, berechnen wir die Normen (7.52) der zugeh¨origen Funktionen (k = 1, . . . , n): 1 kφ0 (x)k = k √ k 2π 1 kφk (x)k = k √ cos(k x)k π 1 kφn+k (x)k = k √ sin(k x)k π

√ 2π dx = √ = 1, 2π −π

sZ

=

1 √ 2π

sZ

=

1 √ π

sZ

=

1 √ π

π

√ π cos(k x) dx = √ = 1, π −π π

2

√ π sin(k x)2 dx = √ = 1. π −π π

Ist nun eine stetige periodische Funktion f (x) mit der Periode 2π auf dem Intervall [−π, π] gegeben, dann bildet man das verallgemeinerte Polynom

Sn (x) ≡ a0 φ0 (x) +

n X k=1

(ak φk (x) + bk φn+k (x)) .

(7.56)

7.2 Stetige Kleinste-Quadrate-Approximation

417

a0 Die Summanden h0 ≡ √ und hk ≡ a ˜k cos(k x) + ˜bk sin(k x), k = 1, . . . , n, nennt man 2π u ¨blicherweise Harmonische. Soll nun die Abweichung des Polynoms Sn (x) von der Funktion f (x) im Sinne der Methode der Kleinsten Quadrate minimal sein, dann sind die Koeffizienten nach der Formel (7.54) zu bestimmen, d.h., Z

π

ak =

φk (x) f (x) dx,

k = 0, . . . , n,

und

−π Z π

bk =

(7.57) φn+k (x) f (x) dx,

k = 1, . . . , n.

−π

Die in (7.57) angegebenen Koeffizienten ak und bk heißen die trigonometrischen Fourierkoeffizienten der Funktion f (x). Das entsprechende trigonometrische Polynom Sn (x) nennt man das trigonometrische Fourierpolynom von f (x). Ein Blick auf die Formeln (7.57) lehrt, daß die Koeffizienten bk , k = 1, . . . , n, im Fall einer geraden Funktion f (x) alle verschwinden. Somit gilt bk = 0, Z

k = 1, . . . , n, (7.58)

π

ak =

φk (x) f (x) dx,

k = 0, . . . , n.

−π

Das zugeh¨ orige Polynom Sn (x) hat dann die Gestalt Sn (x) =

n X

ak φk (x).

(7.59)

k=0

Ist andererseits f (x) eine ungerade Funktion, dann gilt ak = 0, Z

k = 0, . . . , n, (7.60)

π

bk =

φn+k (x) f (x) dx,

k = 1, . . . , n,

−π

und das Polynom Sn (x) ist von der Form Sn (x) =

n X k=1

bk φn+k (x).

(7.61)

418

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Bildet man im trigonometrischen Fourierpolynom Sn (x) den Grenz¨ ubergang n → ∞, so ergibt sich die trigonometrische Fourierreihe S(x) f¨ ur f (x):

S(x) ≡ a ˜0 +

∞ X

(˜ ak cos(k x) + ˜bk sin(k x))

(7.62)

k=1

a0 ak bk mit a ˜0 ≡ √ , a ˜k ≡ √ und ˜bk ≡ √ . π π 2π Die Darstellung einer Funktion durch ihr trigonometrisches Fourierpolynom oder ihre trigonometrische Fourierreihe nennt man die harmonische Analyse dieser Funktion.

7.2.4

Konstruktion von Orthogonalsystemen

Abschließend wollen wir eine auf der Gram-Schmidt-Orthogonalisierung basierende Vorschrift angeben, mit der man spezielle Funktionensysteme erzeugen kann, die auf [a, b] bez¨ uglich einer Gewichtsfunktion ω(x) orthogonal sind. Es gilt der folgende Satz. Satz 7.5. Die unten definierte Menge von Polynomen φ0 (x), φ1 (x), . . . , φn (x) ist orthogonal auf [a, b] bez¨ uglich der Gewichtsfunktion ω(x): φ0 (x) = 1,

φ1 (x) = x − B1 ,

mit

a ≤ x ≤ b,

(7.63)

b

Z

x ω(x) dx B1 ≡ Za

.

b

ω(x) dx a

F¨ ur k = 2, . . . , n gelte φk (x) = (x − Bk ) φk−1 (x) − Ck φk−1 (x),

a ≤ x ≤ b,

(7.64)

mit b

Z

Z

x ω(x) φk−1 (x)2 dx

Bk ≡ Za

und

b 2

ω(x) φk−1 (x) dx a

Ck ≡

a

b

x ω(x) φk−1 (x) φk−2 (x) dx . Z b 2 ω(x) φk−2 (x) dx

(7.65)

a

Beweis: Jedes φk (x) ist von der Form 1 · xk + Terme niedrigerer Ordnung, so daß die Nenner von Bk und Ck nicht verschwinden k¨onnen. Mit vollst¨andiger Induktion bez¨ uglich k zeigen wir Z b ω(x) φk (x) φi (x) dx = 0 f¨ ur alle i < k. (7.66) a

7.2 Stetige Kleinste-Quadrate-Approximation

419

1) F¨ ur k = 1 berechnet man Z

b

b

Z

Z

b

ω(x) (x − B1 ) dx =

ω(x) φ1 (x) φ0 (x) dx = a

a

a

Z b

Z

Z

= a

b

x ω(x) dx − B1

b

ω(x) dx a



x ω(x) dx  Z b    x ω(x) dx −  Za b ω(x) dx = 0.    a ω(x) dx a

2) Wir nehmen an, daß die Behauptung f¨ ur k = n − 1 richtig ist. Setzt man nun φn (x) nach (7.64) in den Ausdruck Z

b

ω(x) φn (x) φn−1 (x) dx a

ein, dann erh¨ alt man Z b ω(x) ((x − Bn ) φn−1 (x) − Cn φn−2 (x)) φn−1 (x) dx. a

Wegen der Induktionsvoraussetzung ist aber Z b ω(x) φn−2 (x) φn−1 (x) dx = 0, a

so daß sich daraus Z b Z ω(x) (x − Bn ) φn−1 (x)2 dx = a

b

x ω(x) φn−1 (x)2 dx − Bn

a

Z

b

ω(x) φn−1 (x)2 dx

a

ergibt. Setzt man jetzt Bn in der Form (7.65) in die obige Formel ein, dann verschwindet dieser Ausdruck und wir haben Z b ω(x) φn (x) φn−1 (x) dx = 0 a

nachgewiesen. Analog l¨ aßt sich b

Z

ω(x) φn (x) φn−2 (x) dx = 0 a

zeigen. Schließlich berechnet man f¨ ur i < n − 2:

Z

b

Z

a

b

ω(x) ((x − Bn ) φn−1 (x) − Cn φn−2 (x)) φi (x) dx

ω(x) φn (x) φi (x) dx = a

420

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate b

Z =

ω(x) x φn−1 (x) φi (x) dx a b

Z =

ω(x) φn−1 (x) (φi+1 (x) + Bi+1 φi (x) + Ci+1 φi−1 (x)) dx a

= 0. Damit ist die Behauptung des Satzes gezeigt.



F¨ ur beliebige Polynome vom Grad k < n gilt dar¨ uber hinaus die nachstehende Folgerung. Folgerung 7.1. F¨ ur jedes n > 0 sind die in Satz 7.5 definierten Polynomfunktionen φ0 (x), . . . , φn (x) auf dem Intervall [a, b] linear unabh¨ angig. Des weiteren gilt f¨ ur jedes Polynom Pk (x) vom Grad k < n die Beziehung b

Z

ω(x) φn (x) Pk (x) dx = 0. a

Beweis: 1) Wir zeigen die lineare Unabh¨ angigkeit. F¨ ur alle x ∈ [a, b] m¨oge gelten 0 = c0 φ0 (x) + · · · + cn φn (x). Multipliziert man f¨ ur jedes k = 0, . . . , n diese Gleichung mit ω(x) φk (x), so resultiert n X 0= cj ω(x) φj (x) φk (x). j=0

Eine anschließende Integration ergibt 0=

n X j=0

Z cj

b

Z ω(x) φj (x) φk (x) dx = ck

a

b

ω(x) φk (x)2 dx.

a

Hieraus folgt unmittelbar ck = 0. Da dieses Ergebnis f¨ ur k = 0, . . . , n gilt, handelt es sich bei dem Funktionensystem φ0 (x), . . . , φn (x) um eine Menge linear unabh¨ angiger Funktionen. 2) Es sei Pk (x) ein Polynom vom Grad k. Nach (1) existieren reelle Konstanten Pk c0 , . . . , ck , so daß Pk (x) = j=0 cj φj (x) gilt. Es ist nun Z

b

ω(x) Pk (x) φn (x) dx = a

k X j=0

Z cj

b

ω(x) φj (x) φn (x) dx = 0, a

da f¨ ur jedes j = 0, . . . , k die Funktion φj (x) orthogonal zu φn (x) ist.



7.2 Stetige Kleinste-Quadrate-Approximation

421

Wir wollen jetzt einige der bekanntesten orthogonalen Funktionensysteme aus dem Satz 7.5 ableiten und beginnen mit den sogenannten • Legendre1 -Polynomen Hierzu setzen wir [a, b] ≡ [−1, 1], ω(x) ≡ 1 und wenden die Rekursion (7.63),(7.64) an. Es ist φ0 (x) = 1. R1 B1 = R−11

Mit

x dx

−1

R1 Wegen

B2 =

=0

folgt

dx

−1 R1 −1

x3 dx x2

dx

φ1 (x) = x. R1

=0

und

C2 = −1 R1

x2 dx

−1

=

dx

φ2 (x) = (x − B2 )φ1 (x) − C2 φ0 (x) = (x − 0)x −

1 3

ergibt sich

1 · 1, d.h. 3

1 φ2 (x) = x2 − . 3

Weiter berechnet man R1 R1 x(x2 − 13 )2 dx x x (x2 − 13 ) dx −1 B3 = R 1 = 0 und C3 = −1 R 1 = (x2 − 13 )2 dx x2 dx −1 −1

8 45 2 3

=

4 . 15

Hieraus folgt 1 4 φ3 (x) = (x − B3 )φ2 (x) − c3 φ1 (x) = x (x2 − ) − x, d.h. 3 15

3 φ3 (x) = x3 − x. 5

Dieser Prozeß kann entsprechend weiter fortgesetzt werden. Ein wichtiges Merkmal des hier konstruierten Funktionensystems ist, daß vor der h¨ochsten x-Potenz jeweils der Faktor Eins steht. Die Legendre-Polynome werden u ¨blicherweise in einer anderen Normierung aufgeschrieben, die aber keinen Einfluß auf die Orthogonalit¨at des jeweiligen Funktionensystems oder auf das in den vorangegangenen Abschnitten betrachtete Approximationsproblem hat. Man muß dann nur beachten, daß sich durch einen solchen Wechsel auch der Wert αk in der Formel (7.51) ver¨ andert. Die Legendre-Polynome k¨onnen n¨amlich auch als die L¨ osungen y(x) der sogenannten Legendreschen Differentialgleichung (1 − x2 )y 00 − 2xy 0 + n(n + 1)y = 0

bzw.

((1 − x2 )y 0 )0 + n(n + 1)y = 0, n ∈ N, 1

(7.67)

Adrien Marie Legendre (1752–1833), franz¨ osicher Mathematiker. Er wird als der Begr¨ under der Methode der Kleinsten Quadrate angesehen (1805), obwohl Gauß diese Technik bereits 1794 anwendete, sie aber erst 1809 publizierte.

422

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

erkl¨ art werden (siehe auch Aufgabe 7.15). In der Literatur findet man h¨aufig die Bezeichnung Pn (x) ≡ y(x) vor, die wir f¨ ur dieses speziell normierte Legendresche Funktionensystem hier ebenfalls verwenden wollen. Die Pn (x) lassen sich auch durch die Formel von Rodrigues definieren: Pn (x) =

1 dn 2 (x − 1)n , n! dxn

n = 0, 1, . . .

2n

(7.68)

F¨ ur die Konstruktion dieser Polynome ist die folgende Rekursionsvorschrift sehr bedeutsam: P0 (x) = 1,

P1 (x) = x, (7.69)

(n + 1) Pn+1 (x) = (2n + 1) x Pn (x) − n Pn−1 (x),

n = 1, 2, . . .

Aus dieser Rekursion ergeben sich die ersten 8 Polynome zu: P0 (x) = 1,

P1 (x) = x,

P2 (x) =

1 (3x2 − 1), 2

P3 (x) =

1 (5x3 − 3x), 2

P4 (x) =

1 (35x4 − 30x2 + 3), 8

P5 (x) =

1 (63x5 − 70x3 + 15x), 8

P6 (x) =

1 (231x6 − 315x4 + 105x2 − 5), 16

1 P7 (x) = (429x7 − 693x5 + 315x3 − 35x). 16 In der Abbildung 7.4 sind einige Legendre-Polynome graphisch dargestellt.

(7.70)

Aus der Formel (7.68) ist ersichtlich, daß die Polynome Pn (x) f¨ ur n = 2i gerade und f¨ ur n = 2i + 1 ungerade Funktionen sind. Schließlich erf¨ ullen sie die Orthogonalit¨atsrelation  Z 1 0, falls m 6= n;  Pn (x) Pm (x) dx = (7.71) 2  , falls m = n. −1 2m + 1 Damit ist

r

2 . 2n + 1 Folglich bilden die normierten Legendre-Polynome kPn (x)k =

Pˆn (x) ≡

r

2n + 1 Pn (x), 2

n = 0, 1, . . .

(7.72)

7.2 Stetige Kleinste-Quadrate-Approximation

423

Abbildung 7.4: Einige der Legendre-Polynome (7.70)

auf dem Intervall [−1, 1] ein orthonormiertes Funktionensystem, d.h., die zugeh¨origen αk in Formel (7.51) sind s¨ amtlich gleich eins. Beispiel 7.3. Es sei die Funktion f (x) = |x| gegeben. 1) Auf dem Intervall [−1, 1] soll die Funktion f (x) durch das verallgemeinerte Polynom 5 X P (x) = ak Pk (x) (7.73) k=0

approximiert werden, wobei die Pk (x) Legendre-Polynome vom Typ (7.70) seien. Da f (x) = |x| eine gerade Funktion ist und die Polynome Pk (x) f¨ ur gerade k gerade und f¨ ur ungerade k ungerade Funktionen sind, erh¨alt man aus (7.54) Z 1 a2k = (4k + 1) x P2k (x) dx und a2k+1 = 0, k = 0, 1, 2. 0

Unter Verwendung der Formeln (7.70) ergeben sich nun Z Z 1 1 5 1 5 a0 = x dx = , a2 = x(3x2 − 1) dx = , 2 2 8 0 0 Z 9 1 3 a4 = x(35x4 − 30x2 + 3) dx = − , sowie a1 = a3 = a5 = 0. 8 0 16

(7.74)

424

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate Setzt man die optimalen Koeffizienten (7.74) in den Ansatz (7.73) ein, dann erh¨alt man das approximierende Polynom P (x) =

1 5 3 15 + (3x2 − 1) − (35x4 − 30x2 + 3) = (−7x4 + 14x2 + 1). (7.75) 2 16 128 128

Diese Approximationsfunktion ist in der Abbildung 7.5 graphisch dargestellt.

Abbildung 7.5: Legendre-Polynom und trigonometrisches Polynom f¨ ur |x|

2) Wir wollen jetzt zum Vergleich die Funktion f (x) = |x| auf dem Intervall [−π, π] durch ein trigonometrisches Fourierpolynom approximieren. Da f (x) eine gerade Funktion ist, brauchen nach der Formel (7.58) die Koeffizienten bk nicht berechnet zu werden, da sie alle Null sind. F¨ ur die ak , k = 1, . . . , n ergibt sich: Z π Z 0 Z π 1 1 1 √ √ √ a0 = |x| dx = − x dx + x dx 2π 2π −π 2π 0 −π √ Z π 2 2π 2 =√ x dx = √ , 2 π 2π 0 (7.76) Z π Z π 1 2 ak = √ |x| cos(k x) dx = √ x cos(k x) dx π −π π 0  2 = √ 2 (−1)k − 1 . πk

7.2 Stetige Kleinste-Quadrate-Approximation

425

Setzt man nun die optimalen Koeffizienten (7.76) in den Ansatz (7.56) ein, dann erh¨ alt man das approximierende trigonometrische Fourierpolynom Sn (x) =

n π 2 X (−1)k − 1 + cos(k x). 2 π k2

(7.77)

k=1

Das trigonometrische Polynom S4 (x) ist zum Vergleich ebenfalls in der Abbildung 7.5 eingezeichnet.  Ein anderes wichtiges System orthogonaler Funktionen sind die sogenannten • Tschebyschow-Polynome Sie lassen sich wiederum aus der im Satz 7.5 angegebenen allgemeinen Konstruktions1 vorschrift erhalten, indem man (a, b) ≡ (−1, 1) und ω(x) ≡ (1 − x2 )− 2 setzt. Wir wollen die Tschebyschow-Polynome Tn (x) hier jedoch auf eine andere Weise ableiten und anschließend nachweisen, daß die so gewonnenen Funktionen die Ortogonalit¨ atsbeziehung (7.51) erf¨ ullen. F¨ ur x ∈ [−1, 1] und n ≥ 0 seien die Funktionen Tn (x) wie folgt erkl¨art Tn (x) ≡ cos(n arccos(x)).

(7.78)

Unter Verwendung der Substitution θ = arccos(x) geht die Gleichung (7.78) u ¨ber in Tn (cos(θ)) = cos(n θ),

θ ∈ [0, π].

Aus dieser Beziehung l¨ aßt sich eine Rekursionsvorschrift zur Bestimmung der Tschebyscheff-Polynome ableiten, wenn man die folgenden trigonometrischen Identit¨aten ausnutzt: Tn+1 (cos(θ)) = cos((n + 1)θ) = cos(nθ) cos(θ) − sin(nθ) sin(θ) Tn−1 (cos(θ)) = cos((n − 1)θ) = cos(nθ) cos(θ) + sin(nθ) sin(θ). Aus der Addition beider Gleichungen folgt n¨ amlich unmittelbar Tn+1 (cos(θ)) = 2 cos(nθ) cos(θ) − Tn−1 (cos(θ)). Kehrt man jetzt zur Variablen x zur¨ uck, so resultiert die Rekursion Tn+1 (x) = 2x Tn (x) − Tn−1 (x),

n = 1, 2, . . .

(7.79)

Um nach dieser Vorschrift die Folge der Tschebyschow-Polynome berechnen zu k¨onnen, m¨ ussen die ersten beiden Folgenglieder bekannt sein. Man erh¨alt sie direkt aus (7.78): T0 (x) = cos(0 · arccos(x)) = 1 und

T1 (x) = cos(1 · arccos(x)) = x.

426

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Setzt man jetzt T0 (x) und T1 (x) in die rechte Seite der Formel (7.79) ein, dann ergibt sich T2 (x). Die nachfolgend angegebenen Tschebyschow-Polynome wurden auf diese Weise konstruiert. T0 (x) = 1,

T1 (x) = x,

T4 (x) = 8x4 − 8x2 + 1,

T2 (x) = 2x2 − 1,

T3 (x) = 4x3 − 3x,

T5 (x) = 16x5 − 20x3 + 5x,

T6 (x) = 32x6 − 48x4 + 18x2 − 1,

T7 (x) = 64x7 − 112x5 + 56x3 − 7x,

(7.80)

T8 (x) = 128x8 − 256x6 + 160x4 − 32x2 + 1, T9 (x) = 256x9 − 576x7 + 432x5 − 120x3 + 9x. In der Abbildung 7.6 sind einige Tschebyschow-Polynome graphisch dargestellt.

Abbildung 7.6: Einige der Tschebyschow-Polynome (7.80)

F¨ ur das System der Tschebyschow-Polynome gilt nun folgender Satz. Satz 7.6. Die Polynome Tn√(x), n = 0, . . . , bilden f¨ ur das Intervall [−1, 1] und f¨ ur die Gewichtsfunktion ω(x) = 1/ 1 − x2 ein System von orthogonalen Polynomen. Es gelten die Beziehungen   Z 1  0, falls j 6= k; 1 1 √ Tj (x) Tk (x) dx = (7.81) π, falls j = k > 0;  1 − x2 −1  2 π, falls j = k = 0.

7.2 Stetige Kleinste-Quadrate-Approximation

427

Beweis: Wir verwenden wieder die Substitution θ = arccos(x). Damit ergibt sich Tj (x) = cos(jθ), Tk (x) = cos(kθ) und dx = − sin(θ)dθ. Jetzt berechnet man Z 0 1 1 Tj (x) Tk (x) dx = − cos(jθ) cos(kθ) sin(θ) dθ 2 sin(θ) 1 − x −1 π Z π Z 1 π = cos(jθ) cos(kθ) dθ = cos(jθ) cos(kθ) dθ. 2 −π 0

Z

1



Aufgrund bekannter trigonometrischer Identit¨ aten gilt Z π Z π 1 cos(jθ) cos(kθ) dθ = [cos((j + k)θ) + cos((j − k)θ)] dθ. 2 −π −π

(7.82)

F¨ ur j 6= k folgt daraus  π 1 1 1 sin((j + k)θ) + sin((j − k)θ) = 0. 2 j+k j−k −π Damit ist die erste Relation in (7.81) gezeigt. F¨ ur j = k > 0 ergibt sich aus (7.82)  π 1 1 sin((j + k)θ) + θ = π. 2 j+k −π Damit haben wir den zweiten Fall in (7.81) gezeigt. Der Nachweis der dritten Relation von (7.81) ist trivial.  Bemerkung 7.2. Die Tschebyschow-Polynome k¨onnen ¨ahnlich wie die Legendre-Polynome u ohnliche Differentialgleichung definiert werden. So sind die Polynome ¨ber eine gew¨ Tn (x) ≡ y(x) L¨ osung der Differentialgleichung (1 − x2 )y 00 − xy 0 + n2 y = 0 mit |x| ≤ 1 und n ≥ 0 ganzzahlig.

(7.83) 

Die bei der Approximation mit Tschebyschow-Polynomen verwendete Gewichtsfunktion

ω(x) = p

1 (1 − x2 )

wirkt sich i.allg. dahingehend aus, daß die berechnete N¨aherungsfunktion P (x) an den R¨ andern des Intervalls (−1, 1) mit der gegebenen Funktion f (x) besser u ¨bereinstimmt als in der Intervallmitte.

428

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Stellt man das verallgemeinerte Polynom (7.53) in der Form n

P (x) =

X 1 a0 T0 (x) + ak Tk (x) 2

(7.84)

k=1

dar, dann sind nach (7.54) die optimalen Koeffizienten ak gegeben durch

ak =

2 π

Z

1



−1

1 Tk (x) f (x) dx, 1 − x2

k = 0, . . . , n.

(7.85)

Die obige Formel vereinfacht sich stark, wenn man wieder auf die Variablentransformation x = cos(θ) und die Darstellung (7.78) der Tschebyschow-Polynome zur¨ uckgreift. Nach einigen Umformungen ergibt sich damit aus (7.85) Z 2 π ak = cos(kθ) f (cos(θ)) dθ, k = 0, . . . , n. (7.86) π 0 Die im Integranden von (7.86) enthaltene Funktion f˜(θ) ≡ f (cos(θ)) ist nun eine gerade und 2π-periodische Funktion des Arguments θ. Somit gilt ak =

1 π

Z

π

cos(kθ) f (cos(θ)) dθ,

k = 0, . . . , n.

(7.87)

−π

Ein Blick auf die Formel (7.58) f¨ uhrt zu folgendem Resultat. Folgerung 7.2. Die Koeffizienten ak , k = 0, . . . , n, in der Darstellung (7.84) des verallgemeinerten Polynoms P (x) stimmen mit den Fourierkoeffizienten ak der geraden, 2π-periodischen Funktion f˜(θ) ≡ f (cos θ) u  ¨berein (vergleiche Formel (7.58)). Damit ist die Approximation mit Tschebyschow-Polynomen auf die Bestimmung von Fourierkoeffizienten zur¨ uckgef¨ uhrt worden. Alle im Abschnitt 7.2.3 angegebenen Techniken k¨ onnen deshalb hier angewendet werden.

7.3

Aufgaben

Aufgabe 7.1. Die Michaelis 1 -Menten 2 -Gleichung tritt in der chemischen Kinetik auf und hat die Form Vmax [S] v([S]) = . KM + [S] Man berechne die Konstanten Vmax und KM so, daß die obige Funktion v([S]) eine Kleinste-Quadrate-Approximation bez¨ uglich der experimentell bestimmten Tabelle 1 2

Leonor Michaelis (1875–1949), deutsch-US-amerikanischer Biochemiker und Mediziner Maud Leonora Menten (1879–1960), kanadische Medizinerin

7.3 Aufgaben

429

darstellt. Dabei sind v die Geschwindigkeit einer enzymkatalysierten Reaktion bei verschiedenen Substratkonzentrationen [S]. [S]

0.197

0.139

0.068

0.0427

0.027

0.015

0.009

0.008

v

21.5

21

19

16.5

14.5

11

8.5

7

Aufgabe 7.2. In der folgenden Tabelle wurde der Druck p (in Kp/cm2 ) eines ges¨attigten Dampfes in Abh¨ angigkeit vom spezifischen Volumen v (in m3 /kp) gemessen: v

3.334

1.630

0.8657

0.4323

0.2646

0.1699

0.1146

p

0.482

1.034

2.027

4.247

7.164

11.48

17.60

Man bestimme nach der Tabelle 7.2 eine zweiparametrige empirische Formel und berechne anschließend diese N¨ aherungsfunktion nach der Methode der Kleinsten Quadrate. Aufgabe 7.3. F¨ ur die Ver¨ anderlichen x und y wurde durch experimentelle Messungen die folgende Tabelle erstellt: x

0

0.2

0.6

1.2

1.6

2

y

2.050

1.944

1.638

0.907

0.423

0.028

Zugeh¨ orige theoretische Untersuchungen legen eine empirische Funktion der Form y = ecx (a sin(x) + b cos(x)) nahe. Man berechne die Parameter a, b und c nach der Methode der Kleinsten Quadrate. Aufgabe 7.4. Eine Funktion der Form [S](t) = A e−α t + B e−β t wird in der Biochemie dazu verwendet, um die Konzentration [S] eines in die Blutbahn injizierten Farbstoffes zu modellieren. Mit zunehmender Zeit t nimmt die Konzentration ab. Man bestimme die Koeffizienten A, α, B, β so, daß die obige Funktion eine KleinsteQuadrate-Approximation bez¨ uglich der an K¨ uhen experimentell bestimmten Tabelle darstellt. t

1

2

3

4

5

6

7

8

9

10

13

16

19

22

[S] 10.2 7.67 5.76 4.50 3.56 2.77 2.30 1.84 1.46 1.26 0.77 0.52 0.39 0.28 Hinweis: Damit w¨ ahrend der Rechnung keine zu großen Exponenten auftreten, sollte man anstelle der sonst u ¨blichen Funktion F (A, α, B, β) die wie folgt modifizierte Funktion F˜ (A, α, B, β) minimieren: F˜ (A, α, B, β) ≡

13 X

2 ln([S]k ) − ln(A e−α tk + B e−β tk ) ,

k=0

wobei (tk , [S]k ), k = 0, . . . , 13, die in der Tabelle angegebenen 14 Datenpunkte sind.

430

Kapitel 7 Ausgleichsprobleme, Methode der Kleinsten Quadrate

Aufgabe 7.5. Man approximiere die Funktion  Y 1 f (P ) = 1+ p p 0 ist. Folglich ist AT A positiv definit. Sind umgekehrt die Spalten von A linear abh¨angig, dann gibt es einen Vektor x0 6= 0 mit Ax0 = 0, woraus xT0 AT Ax0 = 0 folgt. Dies bedeutet aber, daß AT A nicht positiv definit ist.  Im Falle rang(A) = n ergibt sich mit dem Satz 8.4, daß die eindeutige LS-L¨osung xLS und das minimale Residuum rLS explizit wie folgt angegeben werden k¨onnen: xLS = (AT A)−1 AT b und rLS = b − A(AT A)−1 AT b.

(8.20)

8.4 Kleinste Quadrate Probleme

447

Im weiteren werden wir die Bezeichnung ρLS ≡ kb − AxLS k2 = krLS k2 verwenden, um ein Maß f¨ ur die Gr¨ oße des Residuums in der Hand zu haben. Gilt rang(A) < n, dann besitzt A einen nichttrivialen Nullraum und die LS-L¨osung ist nicht eindeutig. Bezeichnet x ˆ eine spezielle LS-L¨osung, dann ist die Menge aller LS-L¨ osungen von der Gestalt S = {x = x ˆ + z,

z ∈ N (A) }.

(8.21)

Ist nun x ˆ orthogonal zu N (A), dann berechnet sich kxk22 = kˆ xk22 + kzk22 . Somit stellt x ˆ die eindeutige LS-L¨ osung mit minimaler Norm dar. F¨ ur derartige Aufgaben besteht dann die Zielstellung, diese eindeutige LS-L¨ osung mit minimaler 2-Norm zu berechnen. Aber selbst wenn rang(A) = n vorausgesetzt wird, ist mit Schwierigkeiten bei der numerischen Bestimmung der (theoretisch noch eindeutigen) LS-L¨osung xLS zu rechnen, wenn die Matrix A beinahe einen Rangabfall hat. Eine wichtige Rolle spielt dabei auch die Frage nach der Kondition eines LS-Problems. Um diese zu betrachten, m¨ ussen wir den Begriff der Konditionszahl cond2 (A) einer quadratischen, nichtsingul¨ aren Matrix A (siehe Formel (2.108)) auf rechteckige Matrizen mit Vollrang u ¨bertragen. Ist U T AV = Σ ∈ Rm×n die Singul¨ arwertzerlegung (2.102) der Matrix A ∈ Rm×n mit rang(A) = n, dann werde

cond2 (A) ≡

σ1 , σp

p = min{m, n}

(8.22)

gesetzt. Die Formel (8.22) geht offensichtlich in die Formel (2.108) u ¨ber, wenn A quadratisch ist. Man erkennt unmittelbar: sind die Spalten von A beinahe abh¨angig, dann wird dies auch durch eine große Konditionszahl cond2 (A) angezeigt. Wir kommen nun zur Kondition des LS-Problems. Satz 8.5. Die Matrix A ∈ Rm×n , mit m ≥ n, besitze vollen Rang. Weiter werde vorausgesetzt, daß xLS die 2-Norm kb−Axk2 minimiert. Wie bisher bezeichne rLS = b−AxLS das zugeh¨ orige Residuum. Des weiteren minimiere der Vektor x ˜LS die 2-Norm eines etwas gest¨ orten Problems k(b + 4b) − (A + 4A)˜ xk2 . Die St¨ orungen 4A ∈ Rm×n und 4b ∈ Rm m¨ ogen klein im folgenden Sinne sein:  ε ≡ max

k 4 Ak2 k 4 bk2 , kAk2 kbk2


p) existieren, so daß 0

P (h) = c0 + c1 hp + O(hp ),

h → 0.

(9.52)

Der Wert p m¨ oge dabei explizit bekannt sein. Offensichtlich ist c0 = P (0) die exakte L¨ osung. Gegeben seien nun eine fixierte positive Zahl q < 1 und ein zul¨assiger Parameter q −1 h. Dann ist 0

P (h) = c0 + c1 hp + O(hp ), 0

P (q −1 h) = c0 + c1 q −p hp + O(hp ),

(9.53) h → 0.

Multipliziert man die erste Gleichung mit q −p und subtrahiert die zweite von der resul-

9.1 Numerische Differentiation

493

tierenden Gleichung, dann folgt 0

q −p P (h) − P (q −1 h) = (q −p − 1)c0 + O(hp ),

h → 0.

Hieraus ergibt sich c0 = P (0)

=

0 q −p P (h) − P (q −1 h) + O(hp ) q −p − 1

=

0 q −p P (h) − P (q −1 h) − P (h) + P (h) + O(hp ) q −p − 1

=

0 q −p P (h) − P (q −1 h) − q −p P (h) + P (h) + P (h) + O(hp ) −p q −1

= P (h) +

0 P (h) − P (q −1 h) + O(hp ). q −p − 1

Somit erh¨ alt man aus den beiden Approximationen P (h) und P (q −1 h), deren Fehler von der Gr¨ oßenordnung O(hp ) sind, eine verbesserte Approximation Pneu (h) ≡ P (h) +

P (h) − P (q −1 h) q −p − 1

(9.54)

0 ¨ mit dem kleineren Fehlerterm O(hp ). Dieser Ubergang von P (h) zu Pneu (h) wird Ex1 trapolation nach Richardson genannt.

Soll dieser Extrapolationsprozeß wiederholt werden, um eine noch genauere Approximation zu bestimmen, dann ben¨ otigt man eine detailliertere Darstellung von P (h) in Potenzen von h. Wir wollen deshalb annehmen, daß P (h) die folgende asymptotische Entwicklung besitzt: P (h) = c0 + c1 hp1 + c2 hp2 + · · · ,

0 < p1 < p2 < · · · ,

h → 0.

(9.55)

Dies bedeutet einerseits, daß die Koeffizienten ci von h unabh¨angig sind und andererseits, daß f¨ ur k = 1, 2, . . . gilt: P (h) − (c0 + c1 hp1 + · · · + ck hpk ) = O(hpk+1 ),

h → 0.

Wie zuvor werde ein q < 1 fixiert. Die verbesserten Approximationen berechnen sich nun mittels der Iterationsvorschrift: P (1) (h) = P (h), P (k+1) (h) = P (k) (h) + 1

P (k) (h) − P (k) (q −1 h) , q −pk − 1

(9.56) k = 1, 2, . . .

Lewis Fry Richardson (1881–1953), englischer Mathematiker und Naturwissenschaftler

494

Kapitel 9 Numerische Differentiation und Integration

F¨ ur jedes k = 1, 2, . . . besitzt dann P (k) (h) die asymptotische Entwicklung (k)

(k)

P (k) (h) = c0 + ck hpk + ck+1 hpk+1 + · · · , (k)

h → 0,

(k)

mit gewissen Koeffizienten ck , ck+1 , . . ., die nicht von h abh¨angen. Bei der praktischen Realisierung dieser Technik wird in einem ersten Schritt P (h) f¨ ur die Folge von Parameterwerten h0 , qh0 , q 2 h0 , . . . , (q < 1) berechnet. Dann setzt man P (k,m) ≡ P (k+1) (q m h0 ),

k, m = 0, 1, 2, . . .

Durch die Vergr¨ oßerung von m wird der Parameter h reduziert und die Vergr¨oßerung von k f¨ uhrt zu einer genaueren Approximation. Die Steuerung der beiden Parameter erfolgt u ¨blicherweise simultan, so daß die Diagonalelemente P (m,m) die eigentlichen Kenngr¨ oßen des Verfahrens sind. Verwendet man in (9.56) den Wert h = q m h0 , dann ergibt sich der Extrapolationsalgorithmus

P (k,m) = P (k−1,m) +

P (k−1,m) − P (k−1,m−1) , q −pk − 1

m ≥ k ≥ 1, (9.57)

P (0,m) = P (q m h0 ). Diese Rechenvorschrift l¨ aßt sich nun, wie in der Tabelle 9.11 angegeben, aufschreiben. P (0,0) P (0,1)

P (1,1)

P (0,2)

P (1,2)

P (2,2)

P (0,3)

P (1,3)

P (2,3)

P (3,3)

···

···

···

···

···

Tabelle 9.11: Extrapolations-Tableau

Wir wollen abschließend anhand eines einfachen Beispiels die Anwendung der Extrapolation nach Richarson im Falle der numerischen Differentiation aufzeigen. Beispiel 9.4. Gegeben sei die symmetrische Formel (9.14) zur Approximation der ersten Ableitung. F¨ ur den zugeh¨ origen Restterm l¨aßt sich mittels Taylor-Entwicklungen von f (x + h) und f (x − h) eine etwas detailliertere Darstellung finden, als in (9.13) angegeben: 2 4 6 ˜ 2 (x0 ) = − h f (3) (x0 ) − h f (5) (x0 ) − h f (7) (x0 ) − · · · , R 3! 5! 7!

9.1 Numerische Differentiation

495

d.h., es liegt hier offensichtlich eine Entwicklung in Potenzen von h2 vor. Damit erhalten wir

f 0 (x0 ) =

f (x0 + h) − f (x0 − h) h2 (3) h4 (5) − f (x0 ) − f (x0 ) − · · · . 2h 3! 5!

(9.58)

Wir setzen c0 ≡ f 0 (x0 ),

P (h) ≡

f (x0 + h) − f (x0 − h) , 2h

q≡

1 N gilt. Folgende Funktionen und Intervallgrenzen m¨ ogen den Berechnungen zugrunde liegen: x2 1) f (x) = , a = 0, b = 1, 1 + x3 2) f (x) =

cos(x) − ex , sin(x)

3) f (x) =

e−9x + e−1024(x−1/4) √ , π

2

a = −1, b = 1, 2

a = 0, b = 1,

9.3 Aufgaben ( 4) f (x) =

533 e10x f¨ ur − 1 ≤ x ≤ 0.5 e10(1−x) f¨ ur 0.5 ≤ x ≤ 1.5

,

a = −1, b = 1.5.

Aufgabe 9.21. Man zeichne die Kurven der beiden Fresnel-Integrale C(t) und S(t) f¨ ur Werte von t aus dem Intervall [0, 5]:  2  2 Z t Z t πx πx C(t) ≡ cos dx, S(t) ≡ sin dx. 2 2 0 0

Literaturverzeichnis Abramowitz, M. und Stegun, I. A. (1972). Handbook of Mathematical Functions. New York: Dover Publications. Allaire, G. und Kaber, S. M. (2008). Numerical Linear Algebra. New York: Springer Verlag. Alt, W. (2002). Nichtlineare Optimierung – Eine Einf¨ uhrung in Theorie, Verfahren und Anwendungen. Wiesbaden: Vieweg Verlag. Antia, H. M. (2002). Numerical Methods for Scientists and Engineers. Basel, Boston, Berlin: Birkh¨ auser Verlag. Atkinson, K. und Han, W. (2001). Theoretical Numerical Analysis. New York, Berlin, Heidelberg: Springer Verlag. Barrett, R., Berry, M., Chan, T. F., Demmel, J., Donato, J., Dongarra, J., Eijkhout, V., Pozo, R., Romine, C. und der Vorst, H. V. (1994). Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods. Philadelphia: SIAM. Beresin, I. S. und Shidkow, N. P. (1970). Numerische Methoden 1 . Berlin: VEB Deutscher Verlag der Wissenschaften. Biran, A. und Breiner, M. (1996). MATLAB for Engineers. Harlow et al.: AddisonWesley Publishing Company. Bjerhammar, A. (1951). Rectangular reciprocal matrices with special reference to geodetic calculations. Bull. G´eod´esique 52, 118–220. Bjørck, ˚ A. (1967). Iterative refinement of linear least squares solutions. BIT 7, 257– 278. Bj¨ orck, ˚ A. (1996). Least Squares Problems. Philadelphia: SIAM. Bj¨ orck, A. und Paige, C. C. (1992). Loss and recapture of orthogonality in the modified gram-schmidt algorithm. SIAM J. Matrix Anal. Appl. 13, 176–190.

536

Literaturverzeichnis

Bollh¨ ofer, M. und Mehrmann, V. (2004). Numerische Mathematik . Wiesbaden: Vieweg Verlag. Boor, C. D. (1978). A Practical Guide to Splines. Berlin: Springer Verlag. Borse, G. J. (1997). Numerical Methods with MATLAB . Boston: PWS Publishing Company. Brass, H. (1979). Quadraturverfahren. G¨ottingen und Z¨ urich: Vandenhoek & Ruprecht. Brent, R. (1973a). Algorithms for Minimization without Derivatives. Englewood Cliffs, New Jersey: Prentice Hall. Brent, R. P. (1973b). Some efficient algorithms for solving systems of nonlinear equations. SIAM J. Numer. Anal. 10, 327–344. Briggs, W. L. und Van Henson, E. (1995). The DFT: An Owner’s Manual for the Discrete Fourier Transform. Philadelphia: SIAM. Bronstein, I. N., Semendjajew, K. A., Musiol, G. und M¨ uhlig, H. (1993). Taschenbuch der Mathematik . Frankfurt: Verlag Harri Deutsch. Brown, K. M. (1969). A quadratically convergent Newton-like method based upon Gaussian elimination. SIAM J. Numer. Anal. 6, 560–569. Brown, K. M. und Dennis, J. E. (1971). On the second order convergence of Brown’s derivative-free method for solving simultaneous nonlinear equations. Technical Report 71-7, Yale University, Dept. Computer Sciences, New Haven, Connecticut. Brown, K. M. und Gearhart, W. B. (1971). Deflation techniques for the calculation of further solutions of nonlinear systems. Numerische Mathematik 16, 334–342. Burden, R. L. und Faires, J. D. (1997). Numerical Analysis. Pacific Grove et al.: Brooks/Cole Publishing Company. Busch, W. (1908). Dideldum! . M¨ unchen: Verlag von Fr. Bassermann. Chatelin, F. (1993). Eigenvalues of Matrices. New York: John Wiley and Sons. Collatz, L. (1964). Funktionalanalysis und Numerische Mathematik . Berlin: Springer Verlag. Conte, S. D. und Boor, C. D. (1980). Elementary Numerical Analysis: An Algorithmic Approach. New York: McGraw-Hill. Cooley, J. W. und Tukey, J. W. (1965). An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19, 297–301. Cosnard, M. Y. (1975). A comparison of four methods for solving systems of nonlinear equations. Technical Report 75-248, Department of Computer Science, Cornell University, Ithaca.

Literaturverzeichnis

537

Demidovich, B. P. und Maron, I. A. (1973). Computational Mathematics. Moscow: Mir Publishers. Demidowitsch, B. P., Maron, I. A. und Schuwalowa, E. S. (1968). Numerische Methoden der Analysis. Berlin: VEB Deutscher Verlag der Wissenschaften. Demmel, J. W. (1997). Applied Numerical Linear Algebra. Philadelphia: SIAM. Deuflhard, P. (2004). Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms. Berlin, Heidelberg, et al.: Springer Verlag. Deuflhard, P. und Bornemann, F. (2008). Numerische Mathematik 2, 3. Auflage. Berlin, New York: Walter de Gruyter. Deuflhard, P. und Hohmann, A. (2008). Numerische Mathematik 1, 4. Auflage. Berlin, New York: Walter de Gruyter. Dieudonn´ e, J. (1985). Grundz¨ uge der modernen Analysis 1 . Berlin: VEB Deutscher Verlag der Wissenschaften. Edelman, A. (1992). The complete pivoting conjecture for gaussian elimination is false. The Mathematica Journal 2, 58–61. Evans, G. (1993). Practical Numerical Integration. Chichester et al.: John Wiley & Sons. Faires, J. D. und Burden, R. L. (1994). Numerische Methoden. Heidelberg, Berlin, Oxford: Spektrum Akademischer Verlag. Fichtenholz, G. M. (1964). Differential- und Integralrechnung, Band II. Berlin: VEB Deutscher Verlag der Wissenschaften. Francis, J. G. F. (1961). The QR transformation: A unitary analogue to the LR transformation, part i and II. Comput. J. 4, 265–272. Freund, R. und Nachtigal, N. (1991). QMR: A quasi-minimal residual method for non-hermitian linear systems. Numer. Math. 60, 315–339. Freund, R. W. und Hoppe, R. H. W. (2007). Stoer/Bulirsch: Numerische Mathematik 1, 10. Auflage. Berlin, Heidelberg: Springer Verlag. Fr¨ oberg, C.-E. (1985). Numerical Mathematics. Theory and Computer Applications. Menlo Park et al.: The Benjamin/Cummings Publishing Company, Inc. Gautschi, W. (1997). Numerical Analysis, An Introduction. Boston, Basel, Berlin: Birkh¨ auser Verlag. Gay, D. M. (1975). Implementing Brown’s method. Technical Report CNA-109, Center Numerical Analysis, The University of Texas at Austin.

538

Literaturverzeichnis

Gerald, C. F. und Wheatley, P. O. (1999). Applied Numerical Analysis. Reading et al.: Addison-Wesley. Gill, P. E., Murray, W. und Wright, M. H. (1981). Practical Optimization. New York: Academic Press. Goldstine, H. H. (1977). A History of Numerical Analysis from the 16th Trough the 19th Century. New York, Heidelberg, Berlin: Springer Verlag. Golub, G. H. und Ortega, J. M. (1995). Wissenschaftliches Rechnen und Differentialgleichungen. Berlin: Heldermann Verlag. Golub, G. H. und Van Loan, C. F. (1996). Matrix Computations. Baltimore and London: The John Hopkins University Press. Graf Finck von Finckenstein, K. (1977). Einf¨ uhrung in die Numerische Mathematik, Band 1 . M¨ unchen: Carl Hanser Verlag. Greenbaum, A. (1997). Iterative Methods for Solving Linear Systems. Frontiers in Applied Mathematics 17. Philadelphia: SIAM. Griewank, A. (2000). Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation. Frontiers in Applied Mathematics 19. Philadelphia: SIAM. H¨ ammerlin, G. und Hoffmann, K.-H. (1991). Numerische Mathematik . Berlin et al.: Springer Verlag. Hanke-Bourgeois, M. (2009). Grundlagen der Numerischen Mathematik und des Wissenschaftlichen Rechnens, 3. Auflage. Wiesbaden: Teubner + Vieweg. Heath, M. T. (1997). Scientific Computing: An Introductory Survey. New York et al.: The McGraw-Hill Companies, Inc. Heitzinger, W., Troch, I. und Valentin, G. (1985). Praxis nichtlinearer Gleichungen. M¨ unchen und Wien: Carl Hanser Verlag. Hermann, M. (2004). Numerik gew¨ ohnlicher Differentialgleichungen. Anfangs- und Randwertprobleme. M¨ unchen: Oldenbourg Verlag. Hermann, M. und Kaiser, D. (1995). Shooting methods for two-point BVPs with partially separated endconditions. ZAMM , 651–668. Herrmann, N. (1995). H¨ ohere Mathematik f¨ ur Ingenieure 1 und 2 . M¨ unchen: Oldenbourg Verlag. Higham, N. J. (1996). Accuracy and Stability of Numerical Algorithms. Philadelphia: SIAM. Hill, D. R. (1988). Experiments in Computational Matrix Algebra. New York: Random House.

Literaturverzeichnis

539

Hohmann, A. (1994). Inexact Gauss Newton Methods for Parameter Dependent Nonlinear Problems. Promotionsschrift, Fachbereich Mathematik, Freie Universit¨at Berlin. Verlag Shaker, Aachen. Householder, A. S. (1970). The Numerical Treatment of a Single Nonlinear Equation. New York: McGraw-Hill. IEEE (1985). 0754P-1985 IEEE Standard for Binary Floating Point Arithmetic. New York: IEEE. Isaacson, E. und Keller, H. B. (1972). Analyse NumerischerVerfahren. Leipzig: Edition Leipzig, Verlag f¨ ur Kunst und Wissenschaft. James, M. L., Smith, G. M. und Wolford, J. C. (1993). Applied Numerical Methods for Digital Computation. New York: Harper Collins College Publishers. Kahan, W. (1966). Numerical linear algebra. Canadian Math. Bull. 9, 757–801. Kahan, W. (1996). IEEE Standard 754 for Binary Floating-Point Arithmetic. University of California, Elect. Eng. & Computer Science: Lecture Notes. Kahaner, D., Moler, C. und Nash, S. (1989). Numerical Methods and Software. Englewood Cliffs, New Jersey: Prentice Hall. Kantoroviˇ c, L. V. (1948). O metode N’jutona dlja funkcional’nyh uravneniˇi. Dokl. Akad. Nauk SSSR 59, 1237–1240. Kelley, C. T. (1995). Iterative Methods for Linear and Nonlinear Equations. Philadelphia: SIAM. Kelley, C. T. (1999). Iterative Methods for Optimization. Philadelphia: SIAM. Kharab, A. und Guenther, R. B. (2002). An Introduction to Numerical Methods. A MATLAB Approach. Boca Raton et al.: Chapman & Hall/CRC. Kielbasinski, A. und Schwetlick, H. (1988). Numerische lineare Algebra. Berlin: VEB Deutscher Verlag der Wissenschaften. Kincaid, D. und Cheney, W. (1991). Numerical Analysis, Mathematics of Scientific Computing. Pacific Grove, California: Brooks/Cole Publishing Company. Knorrenschild, M. (2003). Numerische Mathematik. Eine beispielorientierte Einf¨ uhrung. Leipzig: Carl Hanser Verlag. K¨ ockler, N. (1990). Numerische Algorithmen in Softwaresystemen. Stuttgart: B. G. Teubner Verlag. Kublanovskaya, V. N. (1961). On some algorithms for the solution of the complete ˘ Vy˘cisl. Mat. i Mat. Fiz. 1, 555–570. eigenvalue problem. Z.

540

Literaturverzeichnis

Kulisch, U. (1996). Memorandum u ¨ber Computer, Arithmetik und Numerik . Karlsruhe: Universit¨ at Karlsruhe, Institut f¨ ur Angewandte Mathematik. Lawson, C. L. und Hanson, R. J. (1995). Solving Least Squares Problems. Philadelphia: SIAM. Levenberg, K. (1944). A method for the solution of certain problems in least squares. Quarterly of Applied Mathematics 2, 164–168. Lindfield, G. R. und Penny, J. E. T. (1993). Microcomputers in Numerical Analysis. New York, London et al.: Ellis Horwood. Lindfield, G. R. und Penny, J. E. T. (1995). Numerical Methods Using MATLAB . New York, London et al.: Ellis Horwood. Maeß, G. (1984). Vorlesungen u ¨ber numerische Mathematik I . Berlin: AkademieVerlag. Mangoldt, v. H. und Knopp, K. (1962). Einf¨ uhrung in die h¨ ohere Mathematik. Band 2 . Leipzig: S. Hirzel Verlag. Marquardt, D. W. (1963). An algorithm for least-squares estimation of nonlinear parameters. SIAM Journal on Applied Mathematics 11, 431–441. Mathews, J. H. (1992). Numerical Methods for Mathematics, Science and Engineering. Englewood Cliffs, New Jersey: Prentice Hall. Mathews, J. H. und Fink, K. D. (1999). Numerical Methods using MATLAB . Englewood Cliffs, New Jersey: Prentice Hall. Meister, A. (2011). Numerik linearer Gleichungssysteme, 4. Auflage. Wiesbaden: Vieweg + Teubner. Meyberg, K. und Vachenauer, P. (2001). H¨ ohere Mathematik 2 . Berlin: Springer Verlag. Meyer, C. D. (2000). Matrix Analysis and Applied Linear Algebra. Philadelphia: SIAM. Moler, C. B. (2004). Numerical Computing with MATLAB . Philadelphia: SIAM. Moore, E. H. (1920). On the reciprocal of the general algebraic matrix. Bulletin AMS 26, 394–395. Mor´ e, J. J. (1977). The Levenberg-Marquardt algorithm: implementation and theory. In G. A. Watson, Hrsg., Numerical Analysis, Band 630 von Lecture Notes in Mathematics. Berlin: Springer Verlag. M¨ uller, D. E. (1956). A method for solving algebraic equations using an automatic computer. Math. Tables Aids Comput. 10, 208–215.

Literaturverzeichnis

541

Nashed, M. Z., Hrsg. (1976). Generalized Inverses and Applications. New York: Academic Press. Netz, H. (1992). Formeln der Mathematik . M¨ unchen und Wien: Carl Hanser Verlag. Neundorf, W. (2002). Numerische Mathematik . Aachen: Shaker Verlag. Ortega, J. M. (1990). Numerical Analysis. A Second Course. Philadelphia: SIAM. Ortega, J. M. und Rheinboldt, W. C. (1970). Iterative Solution of Nonlinear Equations in Several Variables. New York: Academic Press. Ostrowski, A. M. (1966). Solution of Equations and Systems of Equations. New York: Academic Press. Overton, M. L. (2001). Numerical Computing with IEEE Floating Point Arithmetic. Philadelphia: SIAM. Paige, C. und Saunders, M. (1975). Solution of sparse indefinite systems of linear equations. SIAM J. Numer. Anal. 12, 617–629. Parlett, B. N. (1980). The Symmetric Eigenvalue Problem. Englewood Cliffs, New Jersey: Prentice Hall. P¨ art-Enander, E. und Sj¨ oberg, A. (1999). The MATLAB 5 Handbook . Harlow et al.: Addison-Wesley. P¨ art-Enander, E., Sj¨ oberg, A., Melin, B. und Isaksson, P. (1996). The MATLAB Handbook . Harlow et al.: Addison-Wesley. Penrose, R. (1955). A generalized inverse for matrices. Proc. Cambridge Phil. Soc. 51, 406–413. Plato, R. (2004a). Numerische Mathematik kompakt. Wiesbaden: Vieweg Verlag. ¨ Plato, R. (2004b). Ubungsbuch zur Numerischen Mathematik . Wiesbaden: Vieweg Verlag. ¨ Preuß, W. und Wenisch, G. (2001). Lehr- und Ubungsbuch Numerische Mathematik . Leipzig: Fachbuchverlag. Ralston, A. und Rabinowitz, P. (1960). A First Course in Numerical Analysis. New York: McGraw-Hill. Redfern, D. und Campbell, C. (1998). The MATLAB 5 Handbook . New York, Berlin, Heidelberg: Springer Verlag. Reimer, M. (1980). Grundlagen der Numerischen Mathematik I . Wiesbaden: Akademische Verlagsgesellschaft. Rheinboldt, W. C. (1974). On measures of ill-conditioning for nonlinear equations. Technical Report TR-330, University of Maryland, Computer Science Center.

542

Literaturverzeichnis

Rheinboldt, W. C. (1998). Methods for Solving Systems of Nonlinear Equations. Philadelphia: SIAM. Roos, H.-G. und Schwetlick, H. (1999). Numerische Mathematik . Stuttgart und Leipzig: B. G. Teubner Verlag. ¨ Runge, C. (1901). Uber empirische Funktionen und die Interpolation zwischen ¨aquidistanten Ordinaten. Z. Math. Physik 48, 224–243. Rutishauser, H. (1954). Der Quotienten-Differenzen-Algorithmus. ZAMP 5, 233–251. Rutishauser, H. (1957). Der Quotienten-Differenzen-Algorithmus. Basel und Stuttgart: Birkh¨ auser Verlag. Rutishauser, H. (1958). Solution of eigenvalue problems with the LR transformation. Nat. Bur. Standards Appl. Math. Ser. 49, 47–81. Rutishauser, H. (1976). Vorlesungen u ¨ber Numerische Mathematik . Basel und Stuttgart: Birkh¨ auser Verlag. Saad, Y. (1992). Numerical Methods for Large Eigenvalue Problems: Theory and Algorithms. New York: John Wiley and Sons. Saad, Y. (1996). Iterative Methods for Sparse Linear Systems. Boston et al.: PWS Publishing Company. Schultz, M. H. (1966). Spline Analysis. Englewood Cliffs, New Jersey: Prentice Hall. Schwarz, H. R. und K¨ ockler, N. (2009). Numerische Mathematik, 7. Auflage. Wiesbaden: Vieweg + Teubner. Schwarz, H. R., Rutishauser, H. und Stiefel, E. (1968). Numerik symmetrischer Matrizen. Leipzig: B.G. Teubner Verlag. Schwetlick, H. (1979). Numerische L¨ osung nichtlinearer Gleichungen. Berlin: VEB Deutscher Verlag der Wissenschaften. Schwetlick, H. und Kretzschmar, H. (1991). Numerische Verfahren f¨ ur Naturwissenschaftler und Ingenieure. Leipzig: Fachbuchverlag. Sp¨ ath, H. (1991). Zweidimensionale Spline-Interpolations-Algorithmen. M¨ unchen: Oldenbourg Verlag. Sp¨ ath, H. (1994). Numerik . Braunschweig, Wiesbaden: Vieweg Verlag. Spellucci, P. (1993). Numerische Verfahren der nichtlinearen Optimierung. Basel: Birkh¨ auser Verlag. Stewart, G. W. (1996). Afternotes on Numerical Analysis. Philadelphia: SIAM. Stewart, G. W. (1998). Matrix Algorithms. Vol. I: Basic Decompositions. Philadelphia: SIAM.

Literaturverzeichnis

543

Stewart, G. W. (2001). Matrix Algorithms.Volume II: Eigensystems. Philadelphia: SIAM. St¨ ocker, H., Hrsg. (2007). Taschenbuch mathematischer Formeln und moderner Verfahren, 4. Auflage. Frankfurt am Main: Verlag Harri Deutsch. Stoer, J. und Bulirsch, R. (2002). Introduction to Numerical Analysis. New York, Berlin, Heidelberg: Springer Verlag. Stummel, F. und Hainer, K. (1982). Praktische Mathematik . dienb¨ ucher. Stuttgart: B. G. Teubner Verlag.

Teubner Stu-

Traub, J. F. (1964). Iterative Methods for the Solution of Equations. Englewood Cliffs, New Jersey: Prentice Hall. Trefethen, L. und Schreiber, R. (1990). Average case analysis of gaussian elimination. SIAM J. Matrix Anal. Appl. 11, 335–360. Trefethen, L. N. und Bau III, D. (1997). Numerical Linear Algebra. Philadelphia: SIAM. Ueberhuber, C. W. (1997a). Numerical Computation I, Methods, Software, and Analysis. Berlin, Heidelberg: Springer Verlag. Ueberhuber, C. W. (1997b). Numerical Computation II, Methods, Software, and Analysis. Berlin, Heidelberg: Springer Verlag. Van Loan, C. F. (1992). Computational Frameworks for the Fast Fourier Transform. Philadelphia: SIAM. Van Loan, C. F. (1997). Introduction to Scientific Computing, A Matrix-Vector Approach Using MATLAB . New Jersey: Prentice Hall. Van Loan, C. F. und Fan, K.-Y. D. (2010). Insight trough Computing. Philadelphia: SIAM. Werner, J. (1992). Numerische Mathematik 1 und 2 . Braunschweig, Wiesbaden: Vieweg Verlag. Wilkinson, J. H. (1965). The Algebraic Eigenvalue Problem. Oxford: Clarendon Press. Wilkinson, J. H. (1969). Rundungsfehler . Berlin, Heidelberg, New York: Springer Verlag. Wilkinson, J. H. (1972). Note on matrices with a very ill-conditioned eigenproblem. Numer. Math. 19, 176–178. Wood, A. (1999). Introduction to Numerical Analysis. Harlow et al.: Addison-Wesley.

544

Literaturverzeichnis

Woodford, C. und Phillips, C. (1997). Numerical Methods with Worked Examples. London et al.: Chapman & Hall. Wo´ zniakowski, H. (1977). Numerical stability for solving nonlinear equations. Numer. Math. 27, 373–390. Young, D. M. (1971). Iterative Solution of Large Linear Systems. New York: Academic Press. Zeidler, E. (1986). Nonlinear Functional Analysis and its Applications I, Fixed Point Theorems. New York, Berlin, et al.: Springer Verlag. Zulehner, W. (2008). Numerische Mathematik . Basel, Boston, Berlin: Birkh¨auser Verlag. Zurm¨ uhl, R. und Falk, S. (1984). Matrizen und ihre Anwendungen, Teil 1 . Berlin, Heidelberg, et al.: Springer Verlag. Zurm¨ uhl, R. und Falk, S. (1986). Matrizen und ihre Anwendungen, Teil 2 . Berlin, Heidelberg, et al.: Springer Verlag. Zygmund, A. (1993). Trigonometric Series. Volume I and II . Cambridge: Cambridge University Press.

Liste der verwendeten Symbole ∀x

f¨ ur alle x

∃y

es gibt ein y

{x : . . .}

Menge aller x mit . . .

x ˜

N¨ aherung f¨ ur die exakte Gr¨oße x

δ(˜ x)

absoluter Fehler von x ˜

ε(˜ x)

relativer Fehler von x ˜

a ≡ Ausdruck

a ist durch Ausdruck definiert

a  Ausdruck

a ergibt sich in linearer N¨aherung aus Ausdruck, d.h. alle quadratischen und in h¨ oheren Potenzen stehenden kleinen Gr¨oßen werden in Ausdruck vernachl¨assigt

a ≈ Ausdruck

a wird durch Ausdruck angen¨ahert

|x|

Betrag von x

sign(a)

Vorzeichen von a bzw. Signumfunktion

R, C

Menge der reellen bzw. komplexen Zahlen

n

R ,C

n

Menge der reellen bzw. komplexen n-dimensionalen Vektoren

Rn×m

Menge der reellen (n × m)-dimensionalen Matrizen

R(β, t, L, U )

Menge der Maschinenzahlen zur Basis β mit der Mantissenl¨ ange t und dem Exponentenbereich [−L, U ]

rd(x)

gerundeter Wert von x

fl(x  y)

maschinenintern realisierte Gleitpunktoperation  ∈ {+, −, ×, /}

ν

relative Maschinengenauigkeit

εmach

Maschinenepsilon

546

Liste der verwendeten Symbole

4-Matrix

Dreiecksmatrix

1-4-Matrix

Dreiecksmatrix, deren Hauptdiagonale nur aus Einsen besteht

diag(d1 , . . . , dn )

Diagonalmatrix mit den Diagonalelementen di , i = 1, . . . , n

A

T

A−1 A

+

Transponierte der Matrix A Inverse der Matrix A (Moore-Penrose) Pseudo-Inverse der Matrix A

e(k)

k-ter Einheitsvektor

I, In

Einheitsmatrix ohne und mit Dimensionsangabe

kxk, kAk

beliebige Norm eines Vektors x oder einer Matrix A

kxkα , kAkα

spezielle Norm eines Vektors x oder einer Matrix A

det(A)

Determinante der Matrix A

ρ(A)

Spektralradius der Matrix A

cond(A), condα (A)

Konditionszahl der Matrix A ohne und mit Kennzeichnung der verwendeten Norm kAkα

B

Iterationsmatrix des Gesamtschrittverfahrens

L

Iterationsmatrix des Einzelschrittverfahrens



Iterationsmatrix des SOR-Verfahrens

C[a, b]

Raum der auf dem Intervall [a, b] stetigen reellwertigen Funktionen

m

C [a, b]

Raum der auf dem Intervall [a, b] m-fach stetig differenzierbaren reellwertigen Funktionen

f 0 (x)

erste Ableitung der Funktion f (x)

f (m) (x)

m-te Ableitung der Funktion f (x)

grad f

Gradient von f (x1 , . . . , xn )

4n x k

n-te vorw¨ artsgenommene Differenz

n

5 xk

n-te r¨ uckw¨ artsgenommene Differenz

δ n xk

n-te zentrale Differenz

f [xi , xi+1 , . . . , xi+k ]

n-te dividierte Differenz von f (x) bez¨ uglich der St¨ utzstellen xi , . . . , xi+k

Pn (x)

Polynom vom maximalen Grad n

deg(P )

Grad des Polynoms P (x)

T.h.O.

Abk¨ urzung f¨ ur Terme h¨ oherer Ordnung

Verzeichnis der Algorithmen 1.1

Maschinen-Epsilon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19

Gauß-Elimination . . . . . . . . . . . . . . . . . . . . . . . . . . LU -Faktorisierung mit Spaltenpivot-Strategie . . . . . . . . . . Gauß-Elimination mit Spalten-Pivotisierung . . . . . . . . . . Gauß-Elimination f¨ ur AX = B . . . . . . . . . . . . . . . . . . Realisierung der Vorschrift (2.50) . . . . . . . . . . . . . . . . . Cholesky-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . LU -Faktorisierung, Tridiagonalmatrix . . . . . . . . . . . . . . Vorw¨ arts- und R¨ uckw¨ artssubstitutionen, Tridiagonalmatrix . . LU -Faktorisierung mit Pivotisierung und Vorw¨artssubstitution R¨ uckw¨ arts-Substitution, tridiagonal . . . . . . . . . . . . . . . Aufdatierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bestimmung von σn . . . . . . . . . . . . . . . . . . . . . . . . Einfache Iteration . . . . . . . . . . . . . . . . . . . . . . . . . Vorkonditioniertes CG-Verfahren . . . . . . . . . . . . . . . . . CGNR und CGNE . . . . . . . . . . . . . . . . . . . . . . . . . Arnoldi-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . Prozedur GMHILF . . . . . . . . . . . . . . . . . . . . . . . . . . GMRES(m)-Verfahren . . . . . . . . . . . . . . . . . . . . . . . BiCG-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

48 53 58 68 69 75 77 78 80 80 84 104 128 130 132 133 134 135 136

3.1 3.2 3.3 3.4 3.5

Elimination mit QR-Faktorisierung QR-Iteration . . . . . . . . . . . . QR-Iteration mit Shift . . . . . . QR-Algorithmus . . . . . . . . . . LR-Cholesky-Verfahren . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

171 184 186 187 191

5.1 5.2 5.3

Ein allgemeines Abstiegsverfahren . . . . . . . . . . . . . . . . . . . . . 294 Armijo-Goldstein-Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Ein allgemeines Trust-Region-Verfahren . . . . . . . . . . . . . . . . . . 299

6.1

Iterierte Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

8.1

Methode der Normalgleichungen . . . . . . . . . . . . . . . . . . . . . . 452

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

25

548 8.2 8.3 8.4

Verzeichnis der Algorithmen LS-Approximation mit QR-Faktorisierung . . . . . . . . . . . . . . . . 456 LS-Approximation mit MGS . . . . . . . . . . . . . . . . . . . . . . . . 459 LS-Approximation mittels Schneller Givens-Transformationen . . . . . 461

Verzeichnis der Matlab-Programme 2.1 2.2 2.3 2.4 2.5 2.6

LU -Faktorisierung ohne Pivotisierung . . . . . . . LU -Faktorisierung mit partieller Pivotisierung . . . LU -Faktorisierung mit vollst¨ andiger Pivotisierung Linearer Gleichungsl¨ oser . . . . . . . . . . . . . . . Nachiteration . . . . . . . . . . . . . . . . . . . . . Traditionelle Cholesky-Faktorisierung . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

50 59 61 62 70 75

3.1 3.2 3.3 3.4 3.5 3.6

Inverse Potenzmethode . . . . . Givens-Transformation . . . . . Givens-QR-Faktorisierung . . . Linearer QR-Gleichungsl¨ oser . Householder-QR-Faktorisierung QR-Algorithmus . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

163 168 170 171 175 188

4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Fixpunkt-Iteration . . . . . . . Newton-Verfahren . . . . . . . Sekanten-Verfahren . . . . . . . Bisektionsverfahren . . . . . . . Steffensen-Verfahren . . . . . . Ged¨ ampftes Newton-Verfahren Homotopie-Verfahren . . . . . . Erweitertes Horner-Schema . . Quadratisches Horner-Schema . QD-Verfahren . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

201 208 212 217 232 235 238 243 249 253

5.1 5.2 5.3

Newton-Verfahren, mehrdimensional . . . . . . . . . . . . . . . . . . . . 273 Differenzenapproximation der Jacobi-Matrix . . . . . . . . . . . . . . . . 275 Broyden-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

6.1 6.2 6.3

Vandermonde-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . 332 Newton-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Nat¨ urlicher Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

550

Verzeichnis der Matlab-Programme

6.4 6.5 6.6

Spline mit eingespanntem Rand . . . . . . . . . . . . . . . . . . . . . . . 367 Interpolation mit der Spline-Funktion . . . . . . . . . . . . . . . . . . . 368 FIDFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378

8.1 8.2

Klassisches Gram-Schmidt-Verfahren . . . . . . . . . . . . . . . . . . . . 440 Modifiziertes Gram-Schmidt-Verfahren . . . . . . . . . . . . . . . . . . . 443

9.1 9.2

Zusammengesetzte Simpson-Regel . . . . . . . . . . . . . . . . . . . . . 510 Romberg-Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521

Tabellenverzeichnis 1.1

Modell Gleitpunkt-Addition (bzw. Subtraktion) . . . . . . . . . . . . . .

2.1 2.2

Werte der oberen Schranken f¨ ur die Wachstumsfaktoren %pn und %vn . . . 110 Entwicklung des Begriffes große Dimension“ . . . . . . . . . . . . . . . 127 ”

4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13

Horner-Schema zur Berechnung von P (x0 ) . . . . . . . . . . . Horner-Schema f¨ ur das Beispiel 4.4 . . . . . . . . . . . . . . . Erweitertes Horner-Schema f¨ ur Beispiel 4.5 . . . . . . . . . . Funktionswerte f¨ ur Beispiel 4.7 . . . . . . . . . . . . . . . . . Faktorisierung von P (x) . . . . . . . . . . . . . . . . . . . . . Division von P (x) durch R(x) (quadratisches Horner-Schema) Quadratisches Horner-Schema f¨ ur Beispiel 4.8 . . . . . . . . . Starttabelle f¨ ur den QD-Algorithmus . . . . . . . . . . . . . Erster Teilschritt des QD-Algorithmus . . . . . . . . . . . . . Zweiter Teilschritt des QD-Algorithmus . . . . . . . . . . . . QD-Algorithmus f¨ ur (4.82) . . . . . . . . . . . . . . . . . . . . QD-Algorithmus f¨ ur (4.83) . . . . . . . . . . . . . . . . . . . . Koeffizienten des quadratischen Faktors von (4.83) . . . . . .

. . . . .

6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8

St¨ utzstellen und St¨ utzwerte f¨ ur f (x) = sin(x) . . . . . Iterierte Interpolation . . . . . . . . . . . . . . . . . . Neville-Schema . . . . . . . . . . . . . . . . . . . . . . Dividierte Differenzen . . . . . . . . . . . . . . . . . . Dividierte Differenzen f¨ ur die Formel von Stirling . . St¨ utzstellen und St¨ utzwerte f¨ ur f (x) = sin(x) . . . . . Dividierte Differenzen f¨ ur Hermite-Interpolation . . . Koeffizienten f¨ ur die Interpolation der S¨agezahnkurve

7.1 7.2

Gemessener Funktionsverlauf . . . . . . . . . . . . . . . . . . . . . . . . 392 Kriterien f¨ ur eine zweidimensionale empirische Formel . . . . . . . . . . 404

9.1 9.2 9.3

Dividierte Differenzen f¨ ur eine symmetrische Formel . . . . . . . . . . . 479 Dividierte Differenzen f¨ ur eine unsymmetrische Formel . . . . . . . . . 479 n = 2 (3 Punkte), β = 1/(2h) . . . . . . . . . . . . . . . . . . . . . . . . 489

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

26

. . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

241 242 242 246 247 248 249 251 252 252 255 256 257

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

334 335 336 340 347 354 357 382

552 9.4 9.5 9.6 9.7 9.8 9.9 9.10 9.11 9.12 9.13 9.14 9.15

Tabellenverzeichnis n = 3 (4 Punkte), β = 1/(6h) . . . . . . . . . . . . . . . . . . . . . n = 4 (5 Punkte), β = 1/(12h) . . . . . . . . . . . . . . . . . . . . n = 5 (6 Punkte), β = 1/(60h) . . . . . . . . . . . . . . . . . . . . n = 6 (7 Punkte), β = 1/(60h) . . . . . . . . . . . . . . . . . . . . n = 2 (3 Punkte), γ = 1/h2 . . . . . . . . . . . . . . . . . . . . . . n = 3 (4 Punkte), γ = 1/(6h2 ) . . . . . . . . . . . . . . . . . . . . n = 4 (5 Punkte), γ = 1/(24h2 ) . . . . . . . . . . . . . . . . . . . Extrapolations-Tableau . . . . . . . . . . . . . . . . . . . . . . . . Abgeschlossene Newton-Cˆ otes-Formeln (es gilt jeweils x0 < ξ < xn ) Offene Newton-Cˆ otes-Formeln (es gilt jeweils x−1 < ξ < xn+1 ) . . Romberg-Tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . Beispiele von Gewichtsfunktionen w(x) . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . .

489 490 490 490 491 491 492 494 504 505 519 522

Abbildungsverzeichnis 1.1 1.2 1.3

Die positiven Maschinenzahlen aus R(2, 3, 1, 2) . . . . . . . . . . . . . . Rechnung mit 17 Bit Genauigkeit . . . . . . . . . . . . . . . . . . . . . Rechnung mit 33 Bit Genauigkeit . . . . . . . . . . . . . . . . . . . . .

22 29 30

2.1

Die Vektoren x ∈ R3 mit a) kxk2 ≤ 1 bzw. b) kxk∞ ≤ 1 . . . . . . . . .

86

3.1 3.2 3.3

Zeilenorientierte Gerschgorin-Kreise . . . . . . . . . . . . . . . . . . . . 154 Spaltenorientierte Gerschgorin-Kreise . . . . . . . . . . . . . . . . . . . . 154 Durchschnitt der Gerschgorin-Kreise . . . . . . . . . . . . . . . . . . . . 155

4.1 4.2 4.3 4.4 4.5 4.6 4.7

Graph der Funktion f (x) aus (4.4) Graph der Funktion f (x) aus (4.5) Fixpunkt-Iteration . . . . . . . . . Newton-Verfahren . . . . . . . . . Sekanten-Verfahren . . . . . . . . . Bisektionsverfahren . . . . . . . . Globalisierung mittels Homotopie .

6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15

Weierstraßscher Approximationssatz . . . . . . . . . . . . . Taylor-Approximation . . . . . . . . . . . . . . . . . . . . . Taylor-Approximation mit Polynomen aufsteigenden Grades Lineare Interpolation . . . . . . . . . . . . . . . . . . . . . Prinzip der numerischen Interpolation . . . . . . . . . . . . Lagrange-Faktor Ln,k (x) . . . . . . . . . . . . . . . . . . . Typischer Verlauf von l(x) f¨ ur n=9 . . . . . . . . . . . . . Interpolation der Runge-Funktion . . . . . . . . . . . . . . Typischer Verlauf des Hermite-Faktors H6,3 (x) . . . . . . . ˆ 6,3 (x) . . . . . . . Typischer Verlauf des Hermite-Faktors H Beispiel f¨ ur eine st¨ uckweise lineare Interpolation . . . . . . Beispiel f¨ ur eine Interpolation mit kubischen Splines . . . . Der Alte Fritz“ im Spline-Format . . . . . . . . . . . . . . ” Berechnetes Interpolationspolynom f¨ ur N = 8 . . . . . . . Berechnetes Interpolationspolynom f¨ ur N = 16 . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

197 198 201 207 211 218 236

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

318 320 321 322 323 325 329 330 353 353 358 360 370 383 384

554

Abbildungsverzeichnis

7.1 7.2 7.3 7.4 7.5 7.6

Meßpunkte und zugeh¨ orige Ausgleichsgerade . . . . . . . Approximation mit einem Polynom 5. Grades . . . . . . f (x) = ex und approximierendes Polynom P2 (x) . . . . . Einige der Legendre-Polynome (7.70) . . . . . . . . . . . Legendre-Polynom und trigonometrisches Polynom f¨ ur |x| Einige der Tschebyschow-Polynome (7.80) . . . . . . . .

8.1

Geometrische Interpretation des LS-Problems

9.1 9.2 9.3 9.4 9.5

Optimale Schrittweite ( •“) bei der ” Trapez-Regel . . . . . . . . . . . . Simpson-Regel . . . . . . . . . . . Zusammengesetzte Simpson-Regel Zusammengesetzte Trapez-Regel .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

393 398 412 423 424 426

. . . . . . . . . . . . . . 446

numerischen Differentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . . .

. . . . .

. . . . .

. . . . .

486 498 500 508 511

Index Abbrechen, 23 Abdividieren, 303 Ableitung partielle, 530 Abstiegsrichtung, 293, 406 Abstiegsverfahren, 233, 288, 293, 405 Abtastwerte, 374 Adams-Verfahren, 496 ¨ Ahnlichkeitstransformation, 151 orthogonale, 151 Aitken’s 42 -Prozeß, 228 Aitken-Schema, 336 Algorithmus numerischer, 4 Analyse harmonische, 415, 418 Anfangswertproblem, 496 Anfangswertproblem-L¨ oser, 496 A-Norm, 129 Approximation gleichm¨ aßige, 317 mit Hermite-Polynom, 350 mit Lagrange-Polynom, 325 mit Newton-Polynom, 339 mit oskulierendem Polynom, 349 mit Taylor-Polynom, 320 Approximationsfehler, 6, 485 Approximationssatz Weierstraßscher, 318 Armijo-Goldstein-Bedingung, 295 Arnoldi-Algorithmus, 133 Aufdatierung, 84 Ausgabedaten, 3 Ausgleichsgerade, 392, 395, 453 Ausl¨ oschung, 10, 16, 173, 210

Banach, Stefan, 199, 266 Basisl¨osung, 469 BDF-Verfahren, 496 Begleitmatrix, 147 BiCG-Verfahren, 134 Bi-CGSTAB-Verfahren, 135 Bisektionsverfahren, 215 Boole-Regel, 503 zusammengesetzte, 518 Boolesche Gr¨oße, 63 Brown, K. M., 279, 303 Brown-Verfahren, 284 Broyden, Charles, 275 Broyden-Verfahren, 275 Bulirsch-Folge, 520 Busch, Wilhelm, 369 Cauchy-Bunjakowski-Schwarzsche Ungleichung, 85 Cauchy-Schwartzsche Ungleichung, 85 CG-Verfahren, 128 vorkonditioniertes, 130 CGNE-Verfahren, 131 CGNR-Verfahren, 131 CGS, siehe Gram-Schmidt-Verfahren, klassisches CGS-Verfahren, 135, 440 Cholesky, Andr´e-Louis, 73, 74 Cholesky-Faktorisierung rationale, 73 traditionelle, 73, 439 Cholesky-Verfahren, 74, 139 Chopping, 23 Computer, 3 Cramer, Gabriel, 40 Cramersche Regel, 40, 394

556 D¨ ampfungsfaktor, 233 Darstellung halblogarithmische, 19 Davidenko-Verfahren, 238 Deflation nach Wieland, 164 von Wurzeln, 243 Deflationsmatrix, 303 Deflationstechnik, 162, 303 Design-Matrix, 436 Determinante, 63 DFT, 374 Diagonaldominanz strikte, 119 Diagonalmatrix, 42, 73 Diagonalstrategie, 63, 73 Differentialgleichung partielle, 497 Differentiation numerische, 476 Differenz dividierte, 337 r¨ uckw¨ artsgenommene, 345 r¨ uckw¨ artsgenommene dividierte, 340 vorw¨ artsgenommene, 228 vorw¨ artsgenommene dividierte, 340 zentrale, 348 Differenzenquotient vorw¨ artsgenommener, 478 Divide-and-Conquer, 378 Division synthetische, siehe Horner-Schema Dreiecksmatrix obere, 42 untere, 55, 73 Eigenpaar, 145 Eigenraum, 150 Eigenvektor, 145, 186 Eigenwert, 145 dominanter, 156 schlecht konditionierter, 149 Eigenwertproblem allgemeines, 146 spezielles, 146

Index Einfache Iteration, 127 Eingabedaten, 3 Eingabefehler, 5 Einschritt-Verfahren, 211 Einzelschrittverfahren, 119, 142 nichtlineares, 268 Elementaralgorithmus, 17 Eliminationsschritt, 44 Eliminationsverfahren, 41 erf, siehe Fehlerfunktion Exponenten¨ uberlauf, 23, 156, 210 Exponentenunterlauf, 22, 156 Extrapolation nach Richardson, 493, 516 Fastest Fourier Transform in the West, 382 Fast Fourier Transformation, 377 Fast Givens Transformation, 179 FDFT, 377 Fehler, 7 absoluter, 7, 10–12 lokaler, 513 relativer, 7, 10–12, 99 unvermeidbarer, 6, 19 Fehleranh¨aufung, 484 Fehlerarten, 5 Approximationsfehler, 6 Eingabefehler, 5 Rundungsfehler, 7 Software- und Hardwarefehler, 7 Fehlerfunktion, 432 Fehlerkonstante asymptotische, 159, 268 Fehlermatrix, 100 Fehlerniveau unvermeidbares, 99 Fehlervektor, 116 Fehlervektor-Iteration, 116 Festpunktzahl, 19 FFT, 377 FFTW, 382 FIDFT, 377 Fixpunkt, 199, 266 abstoßender, 261

Index anziehender, 261 Fixpunkt-Gleichung, 199, 266 Fixpunkt-Iteration, 200, 267 floating point operation, 24 flop, 40 Form iterierf¨ ahige, 115, 199, 266 quadratische, 71 Formel von Rodrigues, 422 von Sherman und Morrison, 81, 140 von Sherman, Morrison und Woodbury, 82 Fortsetzungsverfahren, 234 Fourierkoeffizienten trigonometrische, 417 Fourierpolynom trigonometrisches, 417 Fourierreihe trigonometrische, 418 Fourier-Transformation Diskrete, 374 Inverse Diskrete, 374 Schnelle, 377 Schnelle Diskrete, 377 Schnelle Inverse Diskrete, 377 Fresnel-Integral, 533 Fritz alter, 369 Frobenius-Matrix, 46, 191 Fundamental-Interpolanten, 371 Funktion empirische, 399 flache, 305 gerade, 417 ungerade, 417 Funktionen orthogonale, 414 orthonormierte, 414 Funktionensystem linear unabh¨ angiges, 413 gamma, siehe Gamma-Funktion Gamma-Funktion, 430, 528 Gauß, Carl Friedrich, 42, 48, 57, 67, 288

557 Gauß-Elimination, 41, 48, 57, 58, 67, 273 Gauß-Legendre-Formel, 526 Gauß-Newton-Verfahren, 288, 407 Gauß-Transformation, 46 Gauß-Tschebyschow-Formel, 528 Gaußsche Normalgleichungen, 396, 410 Gaußscher Multiplikator, 45 Gaußsche Quadraturformel, 521 zusammengesetzte, 527 Gauß-Seidel-Verfahren, 119 nichtlineares, 268 Genauigkeitsgrad, 502 Gerschgorin-Kreise, 151 spaltenorientierte, 153 zeilenorientierte, 152 Gesamtschrittverfahren, 118, 142 nichtlineares, 267 Gewichtsfunktion, 413 Givens-Rotation, 166, 454 Gleichung charakteristische, 146 Gleitpunkt-Arithmetik, 24 Gleitpunkt-Operation, 24, 27 Gleitpunktzahl, 19 normierte, 20 GMRES-Verfahren, 132 GMRES(m)-Verfahren, 134 Goldstine, Hermann Heine, 2 Gradient, 406 Gradientendeflation, 304 Gradientenverfahren, 293 Gram-Schmidt-Verfahren klassisches, 440 modifiziertes, 440 Grundrechenoperation arithmetische, 24 Hardwarefehler, 7 Harmonische, 417 Hauptuntermatrix f¨ uhrende, 71, 397 Hermite-Faktor, 350 Hermite-Polynom, 430, 525 st¨ uckweises, 358

558 Hermitesche Differentialgleichung, 430 Hermitesches Interpolationspolynom, 350 Hesse-Matrix, 287, 406 Hessenberg-Matrix, 191 H¨ older-Norm, 85 H¨ oldersche Ungleichung, 85 Homotopieverfahren, 234 Horner, William George, 241 Horner-Schema, 241 quadratisches, 248 Householder-Reflexion, 454 IDFT, 374 IEEE-Formate erweiterte, 31 IEEE-Standard 754-85, 30 inner product, 46 Instabilit¨ at nat¨ urliche, 14 numerische, 15, 17 Integral bestimmtes, 496 Integration adaptive, 512 numerische, 496 Interpolation lineare, 323 mit Hermite-Polynom, 350 mit Lagrange-Polynom, 325 mit Newton-Polynom, 339 mit oskulierendem Polynom, 349 mit Taylor-Polynom, 320 mit Stirling-Polynom, 346 numerische, 323 trigonometrische, 370 Interpolationspolynom Lagrangesches, 487, 497 Newtonsches, 482 r¨ uckw¨ artsgenommene dividierte Differenzen, 345 r¨ uckw¨ artsgenommene Differenzen, 346 vorw¨ artsgenommene dividierte Differenzen, 344

Index vorw¨artsgenommene Differenzen, 344 Stirlingsches, 346 Intervall-Analyse, 8 Inverse verallgemeinerte, 465 Invertierung, 67 Irrtum menschlicher, 7 Iteration einfache, 127 Iterationsgeschwindigkeit, 116 Iterationsverfahren, 41 lineares, 116 nichtstation¨ares, 128 station¨ares, 127 iterative refinement, 70 Jacobi-Matrix, 271 Jacobi-Verfahren, 118 nichtlineares, 267 Jordansche Normalform, 113 Kahan-Summation, 136 Kahan-Trick, 136 Kepplersche Gleichung, 262 Kern, 90 Kleinste-Quadrate-Problem, 444 Kompaktspeicherung, 76 Komplement orthogonales, 437 Kondition, 14, 307 Konditionszahl, 96, 149, 447 absolute, 13 des LS-Problems, 448 eines Eigenwertes, 149 nichtlineare, 308 relative, 14 Kontraktion, 200 Konvergenz, 111, 116 globale, 232 lineare, 159, 219 lokale, 231 quadratische, 159, 219, 221, 269 superlineare, 159, 226

Index Konvergenzgeschwindigkeit, 159 Konvergenzmaß, 116 Konvergenzordnung, 159, 268 Korrekturgleichung, 69 Krylow-Teilraum, 129 Lagrange, 324 Lagrange, Joseph Louis, 324 Lagrange-Darstellung des Interpolationspolynoms, 324 Lagrange-Faktor, 324 Lagrangesches Interpolationspolynom, 413 Laguerre-Polynome, 431 Laguerresche Differentialgleichung, 431 LDLT -Faktorisierung, 73 Legendre-Polynom, 421 Legendresche Differentialgleichung, 421 Leibnitzsche Formel, 386 Levenberg-Marquardt-Verfahren, 292, 301 Linearisierungsprinzip, 198 Liniensuche, 406 L¨ osung isolierte, 205 Lokalisierungsprinzip, 198 LR-Algorithmus, 183 LR-Cholesky-Verfahren, 191 LS-Methode, 393 LS-Problem, 393, 444 LU -Faktorisierung, 47, 136, 138 Mantissenl¨ ange doppelte, 70 Marquardt, Donald W., 297 Maschinenepsilon, 24 Maschinengenauigkeit relative, 15, 24 Maschinenzahl, 20 Matrix ahnliche, 151 ¨ bidiagonale, 77 d¨ unnbesetzte, 172 dominante, 303 fastsingul¨ are, 63, 95, 96 involutorische, 172 konvergente, 114

559 nichtsingul¨are, 91 normale, 474 orthogonale, 54, 91, 167, 172 positiv definite, 65, 71, 397 positiv semidefinite, 88 regul¨are, 40, 72 schwach besetzte, 112 spaltenorthogonale, 91 sparse, 172 strikt diagonal-dominante, 64 symmetrische, 65, 71, 88, 150, 172 tridiagonale, 76, 138 unipotente, 47 zeilenorthogonale, 91 Matrixb¨ uschel, 146 Matrixnorm, 14 allgemein, 85 Frobenius-Norm, 86 Gesamtnorm, 86 Grenzennorm, 87 kompatible, 87 nat¨ urliche, 87 Spaltensummennorm, 86 Spektralnorm, 89 submultiplikative, 86 vertr¨agliche, 19, 87 Zeilensummennorm, 86 zugeordnete, 87 Matrixpaar, 146 Matrix-Zerlegung, 115 Matrizengleichung, 67 Max und Moritz, 369 Mehrschritt-Verfahren, 211 Menge der Maschinenzahlen, 20 Methode der Normalgleichungen, 451 der Kleinsten Quadrate, 393, 409, 453 der konjugierten Gradienten, 128 MGS, siehe Gram-Schmidt-Verfahren, modifiziertes Michaelis-Menten-Gleichung, 428 Minimierungsaufgabe, 286 Minimumstelle globale, 286

560 lokale, 286 MINRES-Verfahren, 131 Mises-Rayleigh-Verfahren, 190 Mises-Verfahren einfaches, 190 Mittelpunkts-Regel, 505, 526 zusammengesetzte, 509 Mittelwert-Operator, 348 Mittelwertsatz der Integralrechnung, 499 Modellierung mathematische, 15 Moment einer Gewichtsfunktion, 522 Moore-Penrose-Inverse, 464 M¨ uller-Verfahren, 213 Muller’s method, 213 Multiplikator Gaußscher, 45 Nachiteration, 68, 111 Neumann, John von, 2 Neumannsche Reihe, 98 Neville-Schema, 336, 518 Newton, Isaac, 206, 208, 269, 272, 288 Newton-¨ ahnliches Verfahren vom Eliminationstyp, 285 Newton-artiges Verfahren, 288 Newton-Cˆ otes-Formel, 497 abgeschlossene, 501 offene, 503 Newton-Darstellung des Interpolationspolynoms, 339 Newton-Verfahren, 205, 271, 288, 406 ged¨ ampftes, 233 skalar, 206 vektoriell, 271 Niveau-Menge, 294 Norm, 414 aquivalente, 85 ¨ Normalgleichungen, 131, 394, 396, 410, 414, 446 Normdeflation, 304 Nullraum, 90 Nullstelle, 198, 240

Index einfache, 205, 303 isolierte, 205 mehrfache, 222, 305 Numerische Mathematik, 3 Operation wesentliche, 40 outer product, 46 Overflow, 23 Parsevalsche Gleichung, 375 Permutationsmatrix, 54 Permutationsvektor, 57 Pivot-Strategie, 52 Pivotelement, 45 Pivotisierung partielle, 52 vollst¨andige, 53, 101, 138 Pivotzeile, 45 Polynom algebraisches, 317 charakteristisches, 146 oskulierendes, 349 trigonometrisches, 425, 512 verallgemeinertes, 413 Polynomapproximation, 409 Polynomfaktor, 240 Polynom-Interpolation st¨ uckweise, 357 st¨ uckweise lineare, 357 st¨ uckweise quadratische, 358 Potenzfunktion, 399 Potenzmethode Grundverfahren, 155 inverse, 160 Problem gut konditioniertes, 15, 99, 395 korrekt gestelltes, 8 mathematisches, 3 schlecht konditioniertes, 15, 99, 148, 408 separables, 436 Problemstellung mathematische, 3 Produkt

Index dyadisches, 46 Pseudo-Inverse, 464 Punkt station¨ arer, 287 QD-Algorithmus positiver, 255 QD-Verfahren, 250 QMR-Verfahren, 134 QR-Faktorisierung, 169, 174, 454 reduzierte, 439 QR-Iteration, 183 Quadratmittelproblem, 288 Quadraturformel, 497 adaptive, 512 Gaußsche, 523 zusammengesetzte, 507 Quotienten-Differenzen-Verfahren, 250 Rand eingespannter, 359 freier, 359 Rang, 91, 140 Rang-1 Modifikationsformel, 82 Rang-m Modifikationsformel, 82 Rayleigh-Quotient, 162 Rechenaufwand, 43, 49, 67, 74, 169, 174, 187 Rechnen numerisches, 3 Reduktionsverh¨ altnis, 298 Regularisierung, 274 Regularisierungsparameter, 274 Regula Falsi, 218 Relaxationsparameter, 122, 405 optimaler, 126 Relaxationsverfahren, 122 Residuenvektor, 69, 95 Residuum, 69, 232 minimales, 446 Restmatrix, 45 Resultate, 3 Richardson-Extrapolation, 493, 516 Richtungsvektor, 405 Romberg-Integration, 516

561 Romberg-Tableau, 519 Rounding, 23 R¨ uckw¨artsanalyse, 27, 100 R¨ uckw¨arts-Substitution, 44 Runden, 23 Rundung symmetrische, 23 unsymmetrische, 23 Rundungsfehler, 7, 18, 100 Rundungsfehleranalyse, 102 Runge-Kutta-Verfahren, 496 Runge-Ph¨anomen, 330 S¨agezahnkurve, 382 Satz von Ostrowski-Reich, 125 von Stein, 124 Schießverfahren, 285 Schnelle Givens-Transformation, 179 Schrittl¨ange, 405 Schrittweite, 293 effiziente, 294 Sekanten-Verfahren, 210 Selbstabbildung, 199 Sherman-Morrison-Formel, 277 Shift-Parameter, 185 Shift-Strategie, 185 explizite, 186 implizite, 186 Simpson-Regel, 499, 507 zusammengesetzte, 508, 512, 517 Singul¨arwert, 90 Singul¨arwertzerlegung, 63, 90, 447, 463 Singularit¨at numerische, 223 Skalarprodukt, 46 Skalarproduktdeflation, 304 Skalenfaktor, 66 Skalierung, 65, 452 implizite, 67 Softwarefehler, 7 SOR-Verfahren, 122, 142 nichtlineares, 268 Spaltenpivot-Strategie, 52 Spaltenpivotisierung

562 relative, 67 Spaltensummenkriterium, 119 Spaltentausch, 53 span, 90 Spektralradius, 112 Spektralwerte, 374 Spline kubischer, 359 nat¨ urlicher, 360 Spline-Interpolation kubische, 359 St¨ utzstellen, 323 St¨ utzwerte, 323 Stabilit¨ at nat¨ urliche, 14 numerische, 15, 17 Stammfunktion, 496 Steffensen, Johan Frederik, 230 Steffensen-Verfahren, 230 Stelle geltende, 7 Stetigkeit der Wurzeln, 147 Stirling, 346 Studien lokale, 198 Suche im Haken, 54 Suchrichtung, 128 Summenformel nach Euler-Maclaurin, 516 SVD, 90 SYMMLQ-Verfahren, 131 System gestaffeltes, 42 positiv definites, 71 Taylor, Brook, 320 Taylor-Polynom, 320 Teil symmetrischer, 124 Totale LS-Methode, 472 Transformationsmatrix, 42 von Gauß, 46 von Givens, 166 von Householder, 172

Index Trapez-Regel, 498 verbesserte, 532 zusammengesetzte, 509, 516 trial and error, 158, 232 Trust-Region-Strategie, 292, 297 Trust-Region-Verfahren, 298 Tschebyschow, 135, 329, 425, 527 Tschebyschow-Iteration, 135 Tschebyschow-Polynom, 329, 425, 527 ¨ Uberrelaxation, 122 Umspeicherung, 53 Underflow, 22 Unterrelaxation, 122 Vandermonde-Ansatz, 330 Vandermondesche Matrix, 331 Vektoren M −1 -orthogonale, 129 Vektoriteration, 155 Vektornorm, 19 allgemein, 84 Euklidische Norm, 84 `1 -Norm, 85 Maximumnorm, 85 Verfahren der bikonjugierten Gradienten, 134 direktes, 41 iteratives, 41 von Brown, 284 von M¨ uller, 213, 226 Verfahren des steilsten Abstiegs, 293 Vergleich, 53 Vertauschungsmatrix, 54, 137 Vielfachheit, 222, 240 Vietasche Wurzels¨atze, 5 Vollrang, 91 Vorkonditionierer, 127 Vorw¨arts-Substitution, 44 Wachstumsfaktor, 101, 110 Weierstraß, Karl Theodor Wilhelm, 317 Wertebereich, 90 Wikipedia, 369 Wilkinson, James Hardy, 27, 100, 110, 147, 169, 185, 460

Index Wilkinson Diagramm, 169 Wilkinsonsche R¨ uckw¨ artsanalyse, 27 Winkelbedingung, 294 Wolfe-Powell-Liniensuche, 296 Wurzel, 147, 198, 240 einfache, 205 isolierte, 205 mehrfache, 222 Zeilenpivot-Strategie, 53 Zeilensummenkriterium, 119 Zeilentausch, 53 Zerlegung C-regul¨ are, 124 einer Matrix, 115, 117 Ziffer signifikante, 7, 100 Zufallszahlen normalverteilte, 408 2D-IDFT, 389 Zweischritt-Verfahren, 211

563