255 49 5MB
German Pages 488 [475] Year 2022
Helmut Harbrecht Michael Multerer
Algorithmische Mathematik Graphen, Numerik und Probabilistik
Algorithmische Mathematik
Helmut Harbrecht · Michael Multerer
Algorithmische Mathematik Graphen, Numerik und Probabilistik
Helmut Harbrecht Departement Mathematik & Informatik Universität Basel Basel, Schweiz
Michael Multerer Institute of Computational Science Universita della Svizzera Italiana Lugano, Schweiz
ISBN 978-3-642-41951-5 ISBN 978-3-642-41952-2 (eBook) https://doi.org/10.1007/978-3-642-41952-2 Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. © Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2022 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von allgemein beschreibenden Bezeichnungen, Marken, Unternehmensnamen etc. in diesem Werk bedeutet nicht, dass diese frei durch jedermann benutzt werden dürfen. Die Berechtigung zur Benutzung unterliegt, auch ohne gesonderten Hinweis hierzu, den Regeln des Markenrechts. Die Rechte des jeweiligen Zeicheninhabers sind zu beachten. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag, noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Der Verlag bleibt im Hinblick auf geografische Zuordnungen und Gebietsbezeichnungen in veröffentlichten Karten und Institutionsadressen neutral. Planung/Lektorat: Annika Denkert Springer Spektrum ist ein Imprint der eingetragenen Gesellschaft Springer-Verlag GmbH, DE und ist ein Teil von Springer Nature. Die Anschrift der Gesellschaft ist: Heidelberger Platz 3, 14197 Berlin, Germany
Unseren Familien ... und Danke für den Fisch!
42
Vorwort
Gegenstand der Algorithmischen Mathematik ist die Konstruktion und Analyse effizienter Algorithmen zur Lösung mathematischer Problemstellungen mit Hilfe des Computers. Sie ist damit im Bereich der Angewandten Mathematik anzusiedeln. Konkrete Problemstellungen ergeben sich oft aus technischen Anwendungen, aus den Naturwissenschaften oder aus den Wirtschafts- und Sozialwissenschaften. Der typische Verfahrensablauf zur Lösung eines gegebenen Problems ist dabei immer sehr ähnlich und lässt sich folgendermaßen skizzieren: Ausgehend von einem Anwendungsproblem wird ein mathematisches Modell entwickelt. Dieses Modell ist im Allgemeinen zu umfangreich, um es mit Stift und Papier behandeln zu können. In diesem Fall muss ein Computer zur numerischen Simulation des Modells herangezogen werden. Wie in der folgenden Abbildung dargestellt, ist dies die Domäne der Algorithmischen Mathematik.
Ist ein passendes mathematisches Modell entwickelt, so wird dieses zunächst analysiert. Basierend auf dieser Analyse lässt sich dann ein entsprechender Algorithmus VII
VIII
Vorwort
konstruieren, um das Modell mit Hilfe eines Computers zu lösen. Dieser Algorithmus muss ebenfalls analysiert werden, um garantieren zu können, dass er korrekt arbeitet und zuverlässige Ergebnisse liefert. Wer möchte schon in ein Flugzeug steigen, dessen Flugtauglichkeit nur mit einem unzuverlässigen Algorithmus nachgewiesen wurde? Ist ein geeigneter Algorithmus gefunden, wird er am Computer implementiert, bevor das Anwendungsproblem schließlich numerisch simuliert werden kann. Die Interpretation und Anwendung der Simulationsergebnisse ist dann den jeweiligen Spezialisten überlassen. Die Idee zu diesem Buch geht auf die Vorlesung Algorithmische Mathematik zurück, welche die Studierenden des Fachs Mathematik während des ersten Studienjahrs in die Angewandte Mathematik einführt. Sie findet an der Universität Bonn gleichberechtigt zur Analysis und zur Linearen Algebra als vierstündiger Jahreskurs statt. Der erste Autor dieses Buchs hat sie im Wintersemester 2007/2008 und im Sommersemester 2008 zum ersten Mal im dort neu eingeführten Bachelorstudiengang Mathematik gelesen. Der Zweitautor, damals noch selbst Student, hat sie tutoriert. Ziel dieses Buchs ist es, Studierenden der Mathematik einen Einblick in unterschiedliche Gebiete der Angewandten Mathematik und in deren algorithmische Aspekte zu geben. Namentlich sind dies • Graphentheorie, • Numerik und • Wahrscheinlichkeitstheorie. Die einschlägige Lehrbuchliteratur befasst sich zumeist jeweils nur mit einem dieser Gebiete. Im Gegensatz dazu bemüht sich das vorliegende Buch um eine ganzheitliche Darstellung von Graphentheorie, Numerik und Wahrscheinlichkeitstheorie und möchte so ihre Gemeinsamkeiten und ihr Zusammenspiel herausarbeiten. Darüber hinaus ist es allerdings möglich, ausgewählte Kapitel losgelöst vom Rest des Buchs zu lesen. So folgen die Vorlesungen der beiden Autoren zur Numerischen Mathematik und zur Stochastik der Darstellung in diesem Buch. Obwohl die Curricula in Basel und Lugano eine Trennung dieser Vorlesungen vorsehen, sind die Autoren ausdrücklich der Überzeugung, dass gerade die Verschmelzung der unterschiedlichen Gebiete der Angewandten Mathematik zu einer modernen Ausbildung der Mathematik gehört. Es ist heutzutage unerlässlich, dass ein Numeriker ein grundlegendes Wissen über diskrete Algorithmen besitzt, wohingegen ein Stochastiker etwas von numerischer Simulation verstehen muss. Beide Autoren sind keine Männer der großen Worte und haben sich deshalb dazu entschlossen, keine ausschweifenden Einführungen oder Erklärungen zu den jeweiligen Inhalten zu geben. Vielmehr bevorzugen sie eine knappe, auf das wesentlich beschränkte Darstellung, welche recht nahe am Inhalt einer Vorlesung ist. Insbesondere werden die ausgewählten Themen in diesem Buch bewusst nicht in der größtmöglichen Tiefe und Allgemeinheit behandelt. Ansonsten wäre dieses Buch wohl auch doppelt so dick geworden und hätte Studierende eher abgeschreckt. Dieses Buch will vielmehr einen breiten Überblick über die Angewandte Mathematik bieten. Eine Vertiefung in einzelne Themen ist zu einem späteren Zeitpunkt immer möglich und gegebenenfalls auch notwendig.
Vorwort
IX
Die Entstehung dieses Buchs wäre nicht möglich gewesen ohne die exzellente Vorarbeit anderer Autoren, speziell im Hinblick auf die hier dargebotene gebietsübergreifende Fülle des Stoffs. Die Autoren wollen daher dem Leser die verwendeten Quellen offenlegen. So richten sich Aufbau und Darstellung von Kap. 1 über Zahlendarstellungen im Computer nach [Möh04]. Kap. 2 zur Fehleranalyse lehnt sich an [HB09, BM04] an. Die Sortierverfahren in Kap. 3 beruhen auf [Bai04, Blu04, CLRS09]. Die Graphentheorie aus den Kap. 4 und 5 folgt in weiten Teilen der Bonner Schule. Als Quellen sind hier [Bai04, Blu04, KV12] zu nennen. Kap. 6 kombiniert die numerische lineare Algebra mit der Graphentheorie. Eingeflossen sind hierin [KG11, Saa03, Sto05], aber auch [BR91] für den Abschnitt über irreduzible Matrizen. Das Lösen von linearen Gleichungssystemen ist Gegenstand von Kap. 7, welches sich in der Darstellung an [GV13, Sto05] orientiert. Die Matrixapproximationsverfahren in Kap. 8 stammen aus der Originalliteratur. Namentlich sind dies [Beb00] zur adaptiven Kreuzapproximation und [HPS12] zur pivotisierten Cholesky-Zerlegung. Ebenso benutzt Kap. 9 über graphenbasierte Löser die ursprünglichen Zeitschriftenartikel [Geo73, RTL76]. Kap. 10 zur Dreitermrekursion verwendet [DH19, HB09]. Die anschließenden vier Kapitel zur Wahrscheinlichkeitstheorie sind wesentlich von [Hof00] beeinflusst, aber auch [Kre05] ist an einigen Stellen eingegangen. Bei der Präsentation der Markov-Ketten in Kap. 16 lehnen sich die Autoren an [Häg02] an. Die Polynominterpolation in Kap. 17 basiert auf [HB09, Sto05], während die trigonometrische Interpolation in Kap. 18 und die Spline-Interpolation in Kap. 19 die Göttinger Schule widerspiegeln, vergleiche [Kre98, SW05]. Kap. 20 über Multilevelbasen findet man in dieser Form nirgendwo, gleiches gilt für die adaptive Quadratur und die Dünngitter-Quadratur in Kap. 21. Die klassischen Quadraturformeln und die letzten beiden Kapitel über lineare Ausgleichsprobleme und iterative Lösungsverfahren orientieren sich schließlich an den Ausführungen in [HB09, Sto05]. Die Autoren bedanken sich herzlich bei (in alphabetischer Reihenfolge) Rahel Brügger, Jürgen Dölz und Marc Schmidlin für das Korrekturlesen. Ferner bedankt sich vor allem der erste Autor für die ewige Geduld, die ihm der Springer-Verlag entgegengebracht hat. Das Buch war eigentlich schon für das Jahr 2010 geplant, auch ein Vertrag war bereits aufgesetzt. Weil aber durch den Weggang aus Bonn Inhalt und Stoff der Algorithmischen Mathematik in dieser Form nicht mehr den zu haltenden Lehrveranstaltungen entsprach, vergingen etliche Jahre bis eine klassische Stochastik, Numerik und Graphentheorie gelesen werden konnten, um die Inhalte abzurunden. Die Autoren hoffen, mit diesen Ausführungen den Inhalt dieses neuartigen Lehrbuchs hinreichend motiviert zu haben. Möge der Leser so viel Spaß mit dem Stoff haben, wie die beiden Autoren! Basel Lugano im Juni 2020
H. Harbrecht M. Multerer
Inhaltsverzeichnis
1
Zahlendarstellung im Computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Zahlensysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Vorzeichen-Betrag-Darstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Komplementdarstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Festkommadarstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5 Gleitkommadarstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6 Genauigkeit der Gleitkommadarstellung. . . . . . . . . . . . . . . . . . . . 14
2 Fehleranalyse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1 Gleitkommaarithmetik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Auslöschung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 Vorwärts- und Rückwärtsanalyse. . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4 Kondition und Stabilität. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3 Sortieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.1 Sortierproblem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2 Mergesort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.3 Quicksort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.4 Heapsort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.5 Untere Schranken für das Sortierproblem. . . . . . . . . . . . . . . . . . . 49 4 Graphen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.1 Grundbegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.2 Zusammenhang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.3 Zyklische Graphen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.4 Bäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.5 Graphendurchmusterung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.6 Starker Zusammenhang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5 Graphenalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.1 Kürzeste-Wege-Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.2 Netzwerkflussprobleme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3 Bipartites Matching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
XI
XII
Inhaltsverzeichnis
6
Vektoren und Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.1 Grundbegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.2 Vektor- und Matrixnormen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.3 Dünnbesetzte Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 6.4 Implementierung von Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 6.5 Irreduzible Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7
Lineare Gleichungssysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 7.1 Kondition linearer Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . 131 7.2 LR-Zerlegung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7.3 Block-LR-Zerlegung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 7.4 LR-Zerlegung mit Spaltenpivotisierung . . . . . . . . . . . . . . . . . . . . 141 7.5 LR-Zerlegung mit totaler Pivotisierung. . . . . . . . . . . . . . . . . . . . . 147 7.6 Cholesky-Zerlegung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
8 Matrixapproximationsverfahren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.1 Singulärwerte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.2 Adaptive Kreuzapproximation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 8.3 Pivotisierte Cholesky-Zerlegung. . . . . . . . . . . . . . . . . . . . . . . . . . 164 9
Graphenbasierte Löser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.1 Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.2 Cholesky-Zerlegung und Graphen. . . . . . . . . . . . . . . . . . . . . . . . . 169 9.3 Nested Dissection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
10 Dreitermrekursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 10.1 Theoretische Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 10.2 Miller-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 10.3 Orthogonalpolynome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 10.4 Verfahren der konjugierten Gradienten. . . . . . . . . . . . . . . . . . . . . 196 11 Wahrscheinlichkeitsräume. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 11.1 Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 11.2 Zufällige Ereignisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 11.3 Rechnen mit zufälligen Ereignissen . . . . . . . . . . . . . . . . . . . . . . . 210 11.4 Wahrscheinlichkeitsverteilungen. . . . . . . . . . . . . . . . . . . . . . . . . . 212 11.5 Kombinatorik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 12 Bedingte Wahrscheinlichkeiten und Unabhängigkeit. . . . . . . . . . . . . 223 12.1 Definition der bedingten Wahrscheinlichkeit. . . . . . . . . . . . . . . . . 223 12.2 Multiplikationsregeln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 12.3 Stochastische Unabhängigkeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 12.4 Produktexperimente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 13 Diskrete Verteilungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 13.1 Zufallsvariablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 13.2 Verteilungsfunktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 13.3 Erwartungswert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Inhaltsverzeichnis
XIII
13.4 Varianz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 13.5 Schwaches Gesetz der großen Zahlen. . . . . . . . . . . . . . . . . . . . . . 250 13.6 Binomialverteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 13.7 Poisson-Verteilung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 13.8 Hypergeometrische Verteilung. . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 14 Stetige Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 14.1 Dichtefunktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 14.2 Erwartungswert und Varianz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 14.3 Gleichverteilung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 14.4 Exponentialverteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 14.5 Normalverteilung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 15 Stochastische Simulationsverfahren. . . . . . . . . . . . . . . . . . . . . . . . . . . 285 15.1 Pseudozufallszahlen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 15.2 Simulation diskreter Verteilungen. . . . . . . . . . . . . . . . . . . . . . . . . 289 15.3 Verwerfungsmethode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 15.4 Inversionsmethode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 15.5 Monte-Carlo-Verfahren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 16 Markov-Ketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 16.1 Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 16.2 Simulation von Markov-Ketten. . . . . . . . . . . . . . . . . . . . . . . . . . . 304 16.3 Irreduzible und aperiodische Markov-Ketten . . . . . . . . . . . . . . . . 306 16.4 Stationäre Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 16.5 Markov-Ketten-Monte-Carlo-Verfahren. . . . . . . . . . . . . . . . . . . . 320 17 Polynominterpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 17.1 Lagrange-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 17.2 Neville-Schema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 17.3 Newtonsche Interpolationsformel. . . . . . . . . . . . . . . . . . . . . . . . . 332 17.4 Tschebyscheff-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 18 Trigonometrische Interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 18.1 Theoretische Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 18.2 Schnelle Fourier-Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . 349 18.3 Zirkulante Matrizen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 19 Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 19.1 Spline-Räume. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 19.2 Kubische Splines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 19.3 B-Splines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 19.4 Interpolationsfehler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 20 Wavelet- und Multilevelbasen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 20.1 Haar-Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 20.2 Haar-Wavelets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 20.3 Walsh-Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 20.4 Hierarchische Basis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
XIV
Inhaltsverzeichnis
21 Numerische Quadratur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 21.1 Trapezregel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 21.2 Dünngitter-Quadratur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 21.3 Newton-Côtes-Formeln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 21.4 Gauß-Quadratur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 22 Lineare Ausgleichsprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 22.1 Normalengleichungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 22.2 QR-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 22.3 Methode der Orthogonalisierung. . . . . . . . . . . . . . . . . . . . . . . . . . 439 23 Iterative Lösungsverfahren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 23.1 Fixpunktiterationen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 23.2 Iterationsverfahren für lineare Gleichungssysteme. . . . . . . . . . . . 452 23.3 Newton-Verfahren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 Literatur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 Stichwortverzeichnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
1
Zahlendarstellung im Computer
1.1
Zahlensysteme
Um ein grundlegendes Verständnis für die Herausforderungen zu entwickeln, die im Zusammenhang mit numerischen Algorithmen auftreten, ist es essenziell zu wissen, wie Zahlen innerhalb eines Computers gespeichert werden und welche Konsequenzen sich daraus ergeben. Das vorliegende Kapitel gibt eine Einführung in unterschiedliche Zahlendarstellungen, insbesondere in das Binärsystem, sowie in die Repräsentation von Dezimalzahlen. Eine gegebene Zahl kann bezüglich verschiedener Zahlensysteme dargestellt werden. Diese Zahlensysteme unterscheiden sich in der Wahl des zugrundeliegenden Alphabets. Unsere Zahl entspricht dann einem Wort, bestehend aus Elementen des Alphabets. Im Folgenden bezeichne immer N := {0, 1, 2, . . .} die Menge der natürlichen Zahlen. Die Menge der positiven natürlichen Zahlen bezeichnen wir mit N∗ := N \ {0}. Definition 1.1 Es sei b ∈ N mit b > 1 eine Basis. Dann heißt die Menge Ab := {0, 1, . . . , b − 1} das Alphabet des b-adischen Zahlensystems.
Beispiel 1.2 • Das im heutigen Alltag gebräuchliche Dezimalsystem basiert auf dem Alphabet A10 := {0,1, . . . , 9}.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_1
1
2
1
Zahlendarstellung im Computer
Verschiedene Worte über diesem Alphabet sind zum Beispiel (384)10 , (753)10 oder (42)10 . Eine feste Wortlänge, etwa n = 5, erhält man durch das Hinzufügen führender Nullen: (00384)10 , (00753)10 oder (00042)10 . • Das Alphabet A2 := {0, 1} heißt Binäralphabet. Es wird verwendet, um Zahlen im Computer darzustellen. Es gilt beispielsweise (42)10 = (101010)2 . Fasst man jeweils drei Stellen der Binärdarstellung zu Ziffern zusammen, so gelangt man zum Oktalalphabet A8 := {0, 1, . . . , 7}. Es gilt also (101010)2 = (52)8 . Ebenso lassen sich jeweils vier Stellen der Binärdarstellung zusammenfassen. Das resultierende Alphabet heißt Hexadezimalalphabet A16 := {0,1, . . . , 9, A, B, . . . , F}. In dieser Darstellung gilt (101010)2 = (2A)16 . Da sich die Zahlendarstellungen bezüglich der Basen 2, 8 und 16 sehr einfach ineinander umrechnen lassen, werden diese häufig im Zusammenhang mit Computern verwendet. Demgegenüber sind beispielsweise das Dutzend (b = 12) oder die vom babylonischen Sexagesimalsystem herrührende Minute (b = 60) historisch geprägte Basen. Der folgende Satz garantiert die Eindeutigkeit der Zahlendarstellung bezüglich einer beliebigen Basis. Satz 1.3 Seien b > 1 eine Basis und n ∈ N. Dann ist jede Zahl z ∈ N mit z ≤ bn − 1 eindeutig als Wort der Länge n über Ab darstellbar gemäß z=
n−1
z i · bi ,
i=0
wobei z i ∈ Ab gelte für alle i = 0, 1, . . . , n − 1. Abkürzend verwenden wir die übliche Ziffernschreibweise z = (z)b = (z n−1 z n−2 . . . z 1 z 0 )b .
Beweis Der Beweis erfolgt durch vollständige Induktion: Jede Zahl z < b hat die eindeutige Darstellung (0 . . . 0z)b . Für beliebiges z ∈ N dürfen wir also annehmen,
1.1 Zahlensysteme
3
dass die Behauptung wahr ist für alle Zahlen 0,1, . . . , z−1. Um den Induktionsschritt z − 1 → z zu vollziehen, zerlegen wir z gemäß z · b + (z mod b) =: zˆ · b + (z mod b). z= b Weil zˆ < z gilt, besitzt zˆ nach Induktionsvoraussetzung die eindeutige Darstellung zˆ = (ˆz n−1 zˆ n−2 . . . zˆ 0 )b . Dabei ist die führende Ziffer zˆ n−1 = 0, da (ˆz n−1 · bn−1 ) · b ≤ z ≤ bn − 1. Folglich gilt (z n−1 z n−2 . . . z 1 z 0 )b mit z n−1 = zˆ n−2 , z n−2 = zˆ n−3 , …, z 1 = zˆ 0 und z 0 = (z mod b) ist eine n-stellige Darstellung von z. Es verbleibt, die Eindeutigkeit der Darstellung zu zeigen. Angenommen, es existieren zwei verschiedene Darstellungen von z, das bedeutet z = (z n−1 z n−2 . . . z 1 z 0 )b = (˜z n−1 z˜ n−2 . . . z˜ 1 z˜ 0 )b . Hierin bezeichne m ∈ N den größten Index, für den z m = z˜ m gilt, wobei ohne Beschränkung der Allgemeinheit z m > z˜ m sei. Dann müssen die niedrigwertigen Stellen z˜ m−1 , z˜ m−2 , . . . , z˜ 0 die höherwertige (m + 1)-te Stelle kompensieren. Nun hat aber die größte, durch niedrigwertigere Stellen darstellbare Zahl die Form (b − 1) · b0 + (b − 1) · b1 + . . . + (b − 1) · bm−1 = (b − 1)
m−1 i=0
bi = (b − 1)
bm − 1 b−1
= bm − 1.
Die größte, durch niedrigwertige Stellen darstellbare Zahl ist also bm − 1. Da allerdings 1 · bm der kleinstmögliche Wert der fehlenden Stelle m ist, kann diese nicht kompensiert werden. Daraus ergibt sich ein Widerspruch, das heißt, die Darstellung von z ist eindeutig. Aus dem vorangegangenen Beweis ergibt sich sofort ein Algorithmus zur Umwandlung einer Dezimalzahl in die b-adische Zahlendarstellung, wie das nachfolgende Beispiel illustriert. Beispiel 1.4 Um die Zahl z = (1364)10 in eine Oktalzahl umwandeln, verwenden wir sukzessive die Division mit Rest bezüglich der Basis 8: ⎫ 1364 = 170 · 8 + 4 ⎪ ⎪ ⎬ 170 = 21 · 8 + 2 ⇒ z = (1364)10 = (2524)8 . 21 = 8 · 8 + 5 ⎪ ⎪ ⎭ 2= 0·8+ 2
4
1
Zahlendarstellung im Computer
Das allgemeine Vorgehen wird in Algorithmus 1.5 beschrieben. Algorithmus 1.5 (Bestimmung der b-adischen Darstellung) input: Dezimalzahl z ∈ N∗ und Basis b > 1 output: b-adische Darstellung (z n−1 z n−2 . . . z 0 )b ➀ Initialisierung: i := 0 ➁ solange z > 0 z i := z mod b z := z/b
i := i + 1 Die Umwandlung einer Zahl in der b-adischen Darstellung in die Dezimaldarstellung erfolgt mit dem Horner-Schema: z=
n−1
z i · bi = · · · (z n−1 · b + z n−2 ) · b + z n−3 · b + . . . + z 1 · b + z 0 .
i=0
Es werden demnach nur jeweils n Additionen und Multiplikationen zur Auswertung der b-adischen Darstellung benötigt, vergleiche nachfolgenden Algorithmus. Algorithmus 1.6 (Auswertung der b-adischen Darstellung) input: b-adische Darstellung (z n−1 z n−2 . . . z 0 )b output: Dezimalzahl z ∈ N ➀ Initialisierung: z := 0 ➁ für i = n − 1, n − 2, . . . , 0 z := z · b + z i
1.2
Vorzeichen-Betrag-Darstellung
Zur Darstellung vorzeichenbehafteter Zahlen verwenden wir die Vorzeichen-BetragDarstellung. Diese ist die kanonische Darstellung ganzer Zahlen, die wir konkret für Binärzahlen betrachten wollen. Das Binäralphabet besteht nur aus den Ziffern 0 und 1, welche wir als Bits bezeichnen.
1.3 Komplementdarstellung
5
Bei einer Wortlänge von n Bits wird das erste Bit als Vorzeichen verwendet: Die Null repräsentiert ein positives Vorzeichen, in Zeichen 0 = ˆ ‘+’, und die Eins ein negatives Vorzeichen, in Zeichen 1 = ˆ ‘−’. Die verbleibenden n − 1 Bits stehen für die Darstellung des Betrags der Zahl zur Verfügung. Offenbar besitzt die Null nun zwei Darstellungen, nämlich ±0. Somit können insgesamt 2n − 1 verschiedene Zahlen dargestellt werden. Beispiel 1.7 In der nachfolgenden Tabelle sind alle Binärzahlen aufgeführt, welche aus n = 3 Bits bestehen: Bitmuster 000 001 010 011 100 101 110 111
Dezimaldarstellung +0 +1 +2 +3 −0 −1 −2 −3
Diese kanonische Darstellung ist für Computer unpraktisch, weil die vier Grundrechenarten auf Hardwareebene typischerweise nur mit Hilfe von Addierwerken sowie einer Zusatzlogik umgesetzt werden. Aus diesem Grund betrachten wir nun eine Darstellung, bei der die Subtraktion auf die Addition zurückgeführt werden kann.
1.3
Komplementdarstellung
Definition 1.8 Sei z = (z n−1 z n−2 . . . z 1 z 0 )b eine n-stellige b-adische Zahl. Das (b − 1)-Komplement K b−1 (z) von z ist definiert als K b−1 (z) := (b − 1 − z n−1 , b − 1 − z n−2 , . . . , b − 1 − z 1 , b − 1 − z 0 )b .
Beispiel 1.9 Wir wollen das (b − 1)-Komplement anhand von konkreten Zahlen veranschaulichen. So erhalten wir im Dezimalsystem das 9-Komplement von (384)10 gemäß
K 9 (384)10 = (615)10 . Hingegen besitzt die Binärzahl (10110)2 das 1-Komplement
K 1 (10101)2 = (01010)2 .
6
1
Zahlendarstellung im Computer
Das 1-Komplement ergibt sich also durch eine Bitumkehrung, die einer bitweisen logischen Negation entspricht.
Definition 1.10 Das b-Komplement einer b-adischen Zahl z = 0 ist definiert als K b (z) = K b−1 (z) + (1)b .
Beispiel 1.11 Auch zum b-Komplement wollen wir uns wieder zwei Zahlenbeispiele anschauen. Im Dezimalsystem ergibt sich das 10-Komplement von (384)10 zu
K 10 (325)10 = (615)10 + (1)10 = (616)10 . Die Binärzahl (10101)2 besitzt das 2-Komplement
K 2 (10101)2 = (01010)2 + (1)2 = (01011)2 . Im Binärsystem heißt K b−1 = K 1 auch Einerkomplement und K b = K 2 Zweierkomplement. Analog bezeichnet man im Dezimalsystem K b−1 = K 9 als Neunerkomplement und K b = K 10 als Zehnerkomplement. Lemma 1.12 Für jede n-stellige, b-adische Zahl z gelten die Aussagen: 1. z + K b−1 (z) =bn − 1 = (b − 1, . . . , b − 1)b , 2. K b−1 K b−1 (z) = z. Ist z = 0, so haben wir außerdem 3. z + K b (z)= bn , 4. K b K b (z) = z.
Beweis Nach Definition des (b − 1)-Komplements ist z + K b−1 (z) = (b − 1, . . . , b − 1)b =
n−1
(b − 1) · bi = (b − 1) ·
i=0
bn − 1 = (b − 1) · = bn − 1. b−1
n−1 i=0
bi
1.3 Komplementdarstellung
7
Dies ist die erste Aussage. Die zweite Aussage folgt sofort aus der Definition von K b−1 , während sich die dritte Aussage aus der Definition K b (z) = K b−1 (z) + (1)b ergibt. Die vierte Aussage sieht man wie folgt ein. Wir wählen z˜ = K b (z) und erhalten mit der zweiten Aussage
z + K b (z) = bn = z˜ + K b (˜z ) = K b (z) + K b K b (z) . Dies impliziert
K b K b (z) = z.
Bemerkung 1.13 1. Die zweite Aussage von Lemma 1.12 bedeutet, dass das b-Komplement von z in n-stelliger Darstellung durch die Differenz von z und bn gegeben ist, das heißt K b (z) = bn − z. Beispielsweise ergibt sich im Dezimalsystem mit n = 3 Stellen für z = (384)10 K 10 (384) = (1000)10 − (384)10 = (616)10 . 2. Die dritte Aussage des Lemmas gilt auch für z = 0, wenn man den Übertrag auf die (n + 1)-te Stelle berücksichtigt. Umgekehrt gilt die vierte Aussage für z = 0, wenn modulo bn gerechnet wird. Nichtnegative Zahlen wollen wir durch ihre b-adische Darstellung repräsentieren, wohingegen negative Zahlen z durch das b-Komplement ihres Betrags |z| dargestellt werden. Folglich lassen sich im Fall von n Ziffern insgesamt bn verschiedene Zahlen bilden, nämlich alle Zahlen z mit n
n b b ≤z≤ − 1. − 2 2 Dieser Bereich wird daher darstellbarer Bereich genannt. Definition 1.14 Die b-Komplementdarstellung (z) K b = (z n−1 z n−2 . . . z 1 z 0 )b einer Zahl z ∈ Z mit darstellbarem Bereich − bn /2 ≤ z ≤ bn /2 −1 ist definiert als falls z ≥ 0, (z)b , (z) K b := K b (|z|), sonst.
8
1
Zahlendarstellung im Computer
Beispiel 1.15 • Im Fall b = 10 und n = 2 ist der darstellbare Bereich −50 ≤ z ≤ 49. Einige konkrete Darstellungen sind in der folgenden Tabelle aufgeführt: Zahl 42 −16 −50 18
Darstellung 42 84 50 18
• Für b = 2 und n = 3 ist der darstellbare Bereich −4 ≤ z ≤ 3. Alle in diesem Format darstellbaren Zahlen lauten: Bitmuster 000 001 010 011 100 101 110 111
Dezimalwert +0 +1 +2 +3 −4 −3 −2 −1
Abschließend betrachten wir die Umsetzung der Addition und der Subtraktion zweier Zahlen in der b-Komplementdarstellung. Die Addition wird dabei wie üblich durchgeführt: Es bezeichne (x) K b ⊕ (y) K b die ziffernweise Addition der Darstellungen von x und y von rechts nach links mit Übertrag. Einen möglichen Übertrag auf die (n + 1)-te Stelle werden wir dabei ignorieren. Wir rechnen also modulo bn . Satz 1.16 Seien x und y zwei n-stellige Zahlen in b-adischer Darstellung und seien x, y und x + y im darstellbaren Bereich. Dann gilt (x + y) K b = (x) K b ⊕ (y) K b .
Beweis Sind x, y ≥ 0, so ergibt sich (x) K b ⊕ (y) K b = (x)b + (y)b mod bn = (x + y) K b .
1.3 Komplementdarstellung
9
Sind x, y < 0, so gilt nach Lemma 1.12 und Definition 1.14 (x) K b ⊕ (y) K b = K b (|x|) + K b (|y|) mod bn = bn − |x| + bn − |y| mod bn = −(|x| + |y|) mod bn = (x + y) K b . Ist x ≥ 0 und y < 0, so folgt (x) K b ⊕ (y) K b = (x)b + K b (|y|) mod bn = x + bn − |y| mod bn = x − |y| mod bn = (x + y) K b . Im Fall x < 0 und y ≥ 0 verfährt man analog zum Fall x ≥ 0 und y < 0.
Die Subtraktion zweier Zahlen erhält man durch Rückführung auf die Addition mit Hilfe der Gleichung x − y = x + (−y). Satz 1.17 Seien x und y n-stellige Zahlen und x − y im darstellbaren Bereich. Dann gilt
(x − y) K b = (x) K b ⊕ K b (y) K . b
Beweis Für y = 0 ist nichts zu zeigen. Für y = 0 gilt y + K b (y) = bn gemäß der dritten Aussage aus Lemma 1.12. Daher ist −y = K b (y) − bn , woraus wegen der modulo-bn -Rechnung folgt
(−y) K b = K b (y) K . b
Damit ist
(x − y) K b = (x) K b ⊕ (−y) K b = (x) K b ⊕ K b (y) K . b
10
1
Zahlendarstellung im Computer
Abb. 1.1 Darstellung des Zweierkomplements am Kreis
Beispiel 1.18 Für b = 10, n = 2, −50 ≤ z ≤ 49 ergibt sich beispielsweise 20 + 7 28 − 5 = 28 + (−5) 10 − 18 = 10 + (−18) −18 − 20 = (−18) + (−20)
= (20) K 10 ⊕ (7) K 10 = (28) K 10 ⊕ (95) K 10 = (10) K 10 ⊕ (82) K 10 = (82) K 10 ⊕ (80) K 10
= (27) K 10 = (23) K 10 = (92) K 10 = (62) K 10
= 27, = 23, = −8, = −38.
Die darstellbaren Zahlen kann man sich beim b-Komplement ringförmig angeordnet vorstellen. So erhalten wir für b = 2 und n = 3 das Schema aus Abb. 1.1. Man beachte, dass ein eventueller Überlauf oder Unterlauf, das ist das Verlassen des darstellbaren Bereichs nach oben beziehungsweise nach unten, im Allgemeinen nicht durch den Computer aufgefangen wird. Konkret ist die größte darstellbare Zahl in n-stelliger Binärarithmetik gegeben durch xmax = (011 . . . 1)2 und es gilt xmax +1 = (100 . . . 0)2 , was im Hinblick auf die Zweierkomplementdarstellung der Zahl −2n−1 entspricht.
1.4
Festkommadarstellung
Nachdem wir wissen, wie ganze Zahlen am Computer dargestellt werden, wollen wir nun diskutieren, wie beliebige reelle Zahlen gespeichert werden können. Dazu werden wir zunächst Festkommazahlen betrachten. Definition 1.19 Bei der Festkommadarstellung oder Fixed Point Representation einer n-stelligen Zahl werden k Vorkomma- und n − k Nachkommastellen fixiert, das heißt z = ±(z k−1 z k−2 . . . z 0 .z −1 z −2 . . . z k−n )b = ±
k−1 i=k−n
z i · bi .
1.5 Gleitkommadarstellung
11
Beispiel 1.20 Für die Dezimalzahl (384.753)10 ergibt sich (384.753)10 = 384.753. Hingegen erhalten wir für die Binärzahl (101.01)2 (101.01)2 = 22 + 20 + 2−2 = 5.25.
Bemerkung 1.21 Anders als bei der Darstellung ganzer Zahlen können bereits bei der Konvertierung von Dezimalzahlen in das b-adische Zahlensystem für b = 10 Rundungsfehler auftreten. So ist beispielsweise die Dezimalzahl 0.8 im Binärsystem unendlich periodisch (0.8)10 = (0.11001100)2 . Ein wesentlicher Nachteil der Festkommadarstellung ist, dass der darstellbare Bereich stark beschränkt ist, insbesondere ist die Auflösung, das heißt der Abstand zwischen zwei benachbarten Zahlen, immer gleich. Als Konsequenz können sich beim Rechnen große Ungenauigkeiten ergeben. Gilt beispielsweise x = (z 1 + z 2 )/2, wobei z 1 = (00 . . . 0.00 . . . 01)b die kleinste darstellbare positive Zahl sei und z 2 = 2z 1 gelte, so muss x zur Darstellung auf eine dieser beiden Zahlen gerundet werden. Dabei ergibt sich bei der Rundung der relative Fehler x − z 1 x − z 2 21 z 1 1 x = x = 3 z = 3 ≈ 33 %. 2 1 Ein derart großer Fehler ist in wissenschaftlichen Rechnungen nicht haltbar. Daher hat sich in der Praxis die Gleitkommadarstellung durchgesetzt, die wir nachfolgend einführen.
1.5
Gleitkommadarstellung
Definition 1.22 Die Gleitkommadarstellung oder Floating Point Representation einer Zahl z ∈ R ist gegeben durch z = ±m · b±e mit der Mantisse m, dem Exponenten e und der Basis b.
12
1
Zahlendarstellung im Computer
Prinzipiell kann in dieser Darstellung die Basis der Mantisse von b verschieden sein. Wir werden jedoch immer die gleiche Basis voraussetzen. Beispiel 1.23 Im Dezimalsystem gilt beispielsweise −384.753 = −3.84753 · 102 und 0.00042 = 0.42 · 10−3 = 4.2 · 10−4 . Im Binärsystem haben wir etwa (1010.101)2 = 1.010101 · 23 , wobei die Mantisse der Zahl 1.328125 im Dezimalsystem entspricht.
Das Beispiel zeigt insbesondere, dass die Gleitkommadarstellung nicht eindeutig ist, da sie von der Position des Dezimalpunkts abhängt. Daher wird die Mantisse normalisiert, um die Eindeutigkeit zu erzwingen. Definition 1.24 Die Mantisse m heißt normalisiert, falls m = m 1 .m 2 . . . m t und m 1 ≥ 1. Bei der Darstellung innerhalb des Computers muss festgelegt werden, wieviele Stellen für die Mantisse beziehungsweise für den Exponenten zur Verfügung stehen. Abhängig von diesen Parametern definieren wir die Menge der Maschinenzahlen F = F(b, t, emin , emax ) der Form z = ±m 1 .m 2 . . . m t · be und emin ≤ e ≤ emax . Um hierbei die Null darzustellen, reserviert man eine spezielle Ziffernfolge in Mantisse und Exponent. Eine schematische Anordnung der positiven Maschinenzahlen ist in Abb. 1.2 dargestellt. Wir sehen dort, dass der Abstand zwischen benachbarten Zahlen mit deren Betrag wächst. Ferner gibt es eine Lücke zwischen der Null und der kleinsten positiven Zahl z min . Diese ist eine Konsequenz der Normalisierungsbedingung und ist wesentlich größer als der Abstand zwischen den beiden kleinsten positiven Zahlen.
Abb. 1.2 Anordnung von Gleitkommazahlen
1.5 Gleitkommadarstellung
13
Bemerkung 1.25 1. Da in der Basis b = 2 das erste Bit, also die Vorkommastelle der Mantisse, wegen der Normalisierungsbedingung m 1 = 1 weggelassen werden kann, wird es oft nicht explizit dargestellt (Hidden Bit). Weil die Mantisse nun stets einen Wert größer als Null besitzt, erzwingt dies allerdings eine gesonderte Darstellung der Null. 2. Um Exponenten besser vergleichen zu können, verwendet man oft die Exzessoder Biasdarstellung: Durch Addition des Exzesses |emin | + 1 wird der Exponent auf den Bereich 1, 2, . . . , |emin | + emax + 1 transformiert. Beispiel 1.26 Wir wollen den heute gebräuchlichen IEEE-Standard 754 zur Darstellung für binäre Gleitkommazahlen in Computern näher betrachten. Hier stehen 64 Bit für die gesamte Zahl zur Verfügung, davon • 52 Bits zur Darstellung des Signifikants der Mantisse in Hidden-Bit-Darstellung 1.m 2 m 3 . . . m 53 , • 11 Bits für den Exponenten mit emin = −1022, emax = 1023, gemäß der Exzessdarstellung gespeichert als 1 ≤ e ≤ |emin | + emax + 1 = 2046, • 1 Bit als Vorzeichen: 0 = ˆ ‘+’ und 1 = ˆ ‘−’. Für nachfolgende Sonderfälle sind im IEEE-Standard 754 spezielle Bitmuster vereinbart worden: • Die Zahl 0 wird durch das Bitmuster 00 . . . 0 repräsentiert, das heißt 0 = 1.00 . . . 0 · 2emin −1 . • Ein Überlauf (± inf) erzeugt im Exponenten das Bitmuster 11 . . . 1, was 21024 entspricht. Darüber hinaus wir der Signifikant zu Null gesetzt.
14
1
Zahlendarstellung im Computer
• Ungültige oder nicht definierte Ergebnisse werden durch NaN (Not a Number) dargestellt, etwa wenn versucht wurde, die Quadratwurzel aus einer negativen Zahl zu berechnen. Wie beim Überlauf werden alle Bits des Exponenten auf Eins gesetzt, wohingegen der Signifikant nun ungleich Null sein muss. • Ist eine Zahl zu klein, um sie in normalisierter Form zu speichern, so wird sie als denormalisierte Zahl dargestellt. Dieser Unterlauf entspricht einem positiven Signifikanten mit Exponent emin − 1. Die größte Maschinenzahl ist z max = 1.7976931348623157 · 10308 , die betragskleinste (normalisierte) Maschinenzahl ist z min = 2.2250738585072014 · 10−308 . Um den IEEE-Standard 754 zu illustrieren, betrachten wir die Dezimalzahl 10. Sie wird dargestellt als 0
10000000010 . . . 00 . 0100
Vorzeichen Exponent + 1026−1023=3
Signifikant 1.25
Hingegen erhalten wir für −0.8 das (gerundete) Bitmuster 1
01111111110 . . . 10011010 . 10011001
Vorzeichen Exponent − 1022−1023=−1
Signifikant 1.5999...
1.6
Genauigkeit der Gleitkommadarstellung
Weil die Menge F der in einem Computer darstellbaren Maschinenzahlen endlich ist, benötigen wir eine Operation, um Zahlen x ∈ R \ F geeignet durch Zahlen aus F anzunähern.
1.6 Genauigkeit der Gleitkommadarstellung
15
Definition 1.27 Die Rundung ist eine Abbildung rd : R → F(b, t, emin , emax ) mit den Eigenschaften: 1. rd(a) = a für alle a ∈ F, 2. |x − rd(x)| = mina∈F |x − a| für alle x ∈ R. Im Kontext der Arithmetik von Maschinenzahlen ist der maximal mögliche Rundungsfehler die entscheidende Größe. Definition 1.28 Den maximalen relativen Rundungsfehler mach für z min ≤ |x| ≤ z max nennt man die Maschinengenauigkeit. Die Stellen der Mantisse heißen signifikante Stellen. Ist die Mantisse t-stellig, so spricht man auch von einer t-stelligen Arithmetik. Die Maschinengenauigkeit einer t-stelligen Arithmetik ist im folgenden Satz angegeben. Satz 1.29 Die Maschinengenauigkeit mach für F = F(b, t, emin , emax ) ist mach =
1 1−t ·b . 2
Beweis Wir betrachten zunächst den relativen Rundungsfehler ε, der vom Abschneiden nicht signifikanter Stellen herrührt. Sei hierzu z min < x < z max und x˜ ∈ F die durch Abschneiden entstandene Zahl. Dann gilt |x − x| ˜ |x| |x1 .x2 . . . xt xt+1 xt+2 . . . · be − x1 .x2 . . . xt · be | = |x| 0.00 . . . 0xt+1 xt+2 . . . · be = |x| 0.xt+1 xt+2 . . . · be+1−t = . |x|
ε=
16
1
Zahlendarstellung im Computer
Weil einerseits 0.xt+1 xt+2 . . . < 1 und andererseits |x| ≥ be ist, folgt ε
0. Für |εi | ≤ mach , i ∈ {1, 2, 3, 4}, betrachten wir den Ausdruck
p− 1 ) − q (1 + ε2 )(1 + ε3 ) (1 + ε4 ) = p(1 + ε4 ) − p 2 (1 + ε1 ) − q (1 + ε2 )(1 + ε3 )2 (1 + ε4 )2 .
p 2 (1 + ε
26
2
Fehleranalyse
Der Term unter dem Wurzelzeichen erfüllt 2 p (1 + ε1 ) − q (1 + ε2 )(1 + ε3 )2 (1 + ε4 )2 = p 2 (1 + ε1 )(1 + ε2 )(1 + ε3 )2 (1 + ε4 )2 − q (1 + ε2 )(1 + ε3 )2 (1 + ε4 )2 =1+ε5 mit |ε5 |≤4mach
p 2 (1 + ε4 )2 ε5 . = p 2 (1 + ε4 )2 − q 1 + ε6 − q p2
=1+ε7 mit |ε7 |≤mach 5+4
=1+ε6 mit |ε6 |≤5mach
q
Dies bedeutet
2 p− p (1 + ε1 ) − q (1 + ε2 )(1 + ε3 ) (1 + ε4 ) = f p(1 + ε4 ), q(1 + ε7 ) . Demnach liefert der Computer die exakte Lösung der Gleichung x 2 − 2 p(1 + ε4 ) + q(1 + ε7 ) = 0 mit
|ε4 | ≤ mach , |ε7 | ≤ mach
p2 5+4 q
.
Die Abschätzung für ε7 explodiert, falls gilt 0 < |q| 1 < p.
2.4
Kondition und Stabilität
In diesem Abschnitt befassen wir uns mit den beiden wichtigen Begriffen Kondition und Stabilität. Hierzu betrachten wir ein Problem, das beschrieben werde durch die differenzierbare Funktion f : R → R, x → y = f (x). Für fehlerbehaftete Daten x + x mit kleinem Fehler x gilt f (x + x) − f (x) ≈ f (x). x Demnach gilt für den absoluten Datenfehler y := f (x + x) − f (x) ≈ f (x)x
2.4 Kondition und Stabilität
27
und für den relativen Datenfehler y f (x)x f (x) · x x = = . y f (x) f (x) x Der absolute Fehler in den Daten wird folglich um den Faktor verstärkt, | f (x)| wohingegen sich der relative Datenfehler mit dem Faktor f (x) · x / f (x) fortpflanzt. In Anbetracht dieser Größen führt man die Kondition ein, welche offenbar eine Eigenschaft des vorliegenden Problems ist.
Definition 2.10 Die Zahl κabs = | f (x)| heißt absolute Konditionszahl des Problems x → f (x). Für x · f (x) = 0 ist κrel
f (x) · x = f (x)
die zugehörige relative Konditionszahl. Ein Problem heißt schlecht konditioniert, falls eine der Konditionszahlen deutlich größer als 1 ist, ansonsten heißt es gut konditioniert.
Beispiel 2.11 • Für die Addition mit einer Konstanten a ∈ R, in Zeichen f (x) = x + a, haben wir f (x) · x x . = κrel = f (x) x + a Dies bedeutet, die relative Konditionszahl ist groß, wenn |x + a| |x|. • Im Fall der Multiplikation mit einer Konstanten a ∈ R, in Zeichen f (x) = ax, gilt κabs = | f (x)| = |a|. Die absolute Konditionszahl ist also groß, falls 1 a. Für die relative Konditionszahl gilt jedoch immer κrel
f (x) · x ax = = 1. = f (x) ax
28
2
Fehleranalyse
Die folgende Definition bezieht sich auf die Fehlerverstärkung, welche bei der Ausführung eines Algorithmus entsteht. Definition 2.12 Erfüllt die Implementierung eines Algorithmus f zur Lösung eines Problems x → f (x) die Abschätzung f (x) − f (x) ≤ C V κrel mach f (x) mit einem mäßig großen C V > 0, so wird der Algorithmus f vorwärtsstabil genannt. Ergibt die Rückwärtsanalyse x ≤ C R mach f (x) = f (x + x) mit x und C R > 0 ist nicht zu groß, so heißt der Algorithmus f rückwärtsstabil. Bei der Vorwärtsstabilität wird gemessen, wie weit das Resultat des Algorithmus vom exakten Rechenergebnis abweicht. Bei der Rückwärtsstabilität interpretiert man hingegen das Resultat des Algorithmus als exaktes Rechenergebnis zu entsprechend geänderten Daten. In Abb. 2.2 findet man eine Veranschaulichung dieses Sachverhalts. Der nächste Satz besagt, dass Rückwärtsstabilität ein stärkeres Kriterium als Vorwärtsstabilität ist. Überraschenderweise lässt sich aber die Rückwärtsstabilität in der Praxis oft wesentlich einfacher nachweisen. Satz 2.13 Jeder rückwärtsstabile Algorithmus ist auch vorwärtsstabil.
Abb. 2.2 Veranschaulichung von Vorwärts- (oben) und Rückwärtsstabilität (unten)
2.4 Kondition und Stabilität
29
Beweis Es gilt f (x) − f (x) f (x + x) − f (x) f (x + x) − f (x) x x = = . · · f (x) f (x) x f (x) x Wegen f (x + x) − f (x) ≈ f (x), x folgt für eine geeignete Konstante c > 0 aufgrund von Definition 2.10 der relativen Konditionszahl die Abschätzung f (x) − f (x) ≤ cκrel x . f (x) x Hieraus ergibt sich schließlich unter Verwendung der Rückwärtsstabilität die Behauptung: f (x) − f (x) ≤ cκrel C R mach . f (x) Als Faustregel gilt, dass ein gut konditioniertes Problem in Verbindung mit einem stabilen Algorithmus stets gute numerische Ergebnisse liefert. Ein schlecht konditioniertes Problem oder ein instabiler Algorithmus liefern hingegen fragwürdige Ergebnisse. Beispiel 2.14 Wir betrachten erneut die Nullstellenberechnung des Polynoms x2 + px + q. Die betragskleinere Nullstelle ist gegeben durch x2 = p − p 2 − q. Die Rückwärtsanalyse von Algorithmus 2.4 aus Beispiel 2.9 hat gezeigt, dass der Fehler im Fall von 0 < |q| 1 < p untragbar wird. Um nun auch die Kondition der Nullstellenberechnung bezüglich des Eingangparameters q zu bestimmen, betrachten wir die Funktion f (x) = p − p 2 − x mit |x| 1 < p. Es ergeben sich die Konditionszahlen 1 κabs = f (x) = x0 . Weiterhin sagen wir f (x) = existiert, dass
O
g(x) , falls für jedes c > 0 ein x0 > 0 derart
f (x) ≤ c · g(x) für alle x > x0 . Schließlich schreiben wir f (x) = g(x) , falls f (x) = O g(x) und g(x) = O f (x) .
Bemerkung 3.8 Gilt f (x) = O g(x) , so wächst f mit wachsendem x nicht schneller als g, das heißt lim sup x→∞
f (x) ≤ C < ∞. g(x)
38
3
Sortieren
Im Fall f (x) = O g(x) folgt hingegen lim
x→∞
f (x) = 0. g(x)
Beispiel 3.9 Weil | sin(x)| ≤ 1 für alle x ∈ R ist, gilt sin(x) = O(1). Ferner ist 5x 2 + 2x + 1 = O(x 2 ) wegen 5x 2 + 2x + 1 = 5. x→∞ x2 lim
Definition 3.10 Der Aufwand eines Algorithmus ist die kleinste obere Schranke für das betrachtete Aufwandsmaß. Bei der Wahl des Aufwandsmaßes wollen wir beim Sortieren den Speicherbedarf eines Algorithmus ignorieren und nur die Rechenzeit berücksichtigen. Als einfaches Maß für die Rechenzeit wählen wir Aufwandsmaß = ˆ Anzahl der Vergleiche. Zur Bestimmung des Aufwands von Algorithmus 3.5 haben wir also Vergleiche zu zählen. Da zur Berechnung des Maximums von Sk jeweils k−1 Vergleiche ausgeführt werden müssen, ist der Aufwand n k=1
k−1=
n−1 k=0
k=
n(n − 1) = O(n 2 ). 2
Dies ist eine dramatische Reduktion im Vergleich zum mehr als exponentiellen Aufwand von Algorithmus 3.3.
3.2
Mergesort
Als nächstes betrachten wir ein Sortierverfahren, welches darauf beruht, dass sich die Vereinigung zweier sortierter Mengen in linearem Aufwand sortieren lässt.
3.2 Mergesort
39
Lemma 3.11 Gegeben seien die beiden sortierten Mengen Sx = {x1 < x2 < . . . < xm }, S y = {y1 < y2 < . . . < yn }. Dann lässt sich die Menge S = Sx ∪ S y in linearem Aufwand sortieren. Genauer, es werden höchstens m + n − 1 Vergleiche benötigt. Den Beweis dieses Lemmas führen wir konstruktiv, indem wir einen entsprechenden Algorithmus angeben: Algorithmus 3.12 (Merge) input: sortierte Mengen Sx = {x1 < x2 < . . . < xm } und S y = {y1 < y2 < . . . < yn } output: sortierte Menge Sz = Sx ∪ S y = {z 1 < z 2 < . . . < z m+n } ➀ Initialisierung: i := 1, j := 1, k := 1 ➁ gehe sukzessive durch Sx und S y : solange i ≤ m und j ≤ n falls xi < y j z k := xi i := i + 1 sonst z k := y j j := j + 1 k := k + 1 ➂ hänge die übrigen Zahlen an: für = 0, 1, . . . , m − i z k+ := xi+ für = 0, 1, . . . , n − j z k+ := y j+ Wir nehmen nun der Einfachheit halber an, dass n = 2m für ein m ∈ N gilt. Die nachfolgenden Überlegungen lassen sich jedoch auch auf beliebige n ∈ N übertragen. Die Idee ist, das Sortierproblem sukzessive in kleinere Probleme zu zerlegen. Man spricht dann auch von einem Teile-und-herrsche-Verfahren. Im Englischen wird eine solche Strategie auch mit Divide and Conquer bezeichnet. Algorithmus 3.13 (Mergesort) input: Menge S = {z 1 , z 2 , . . . , z n } output: sortierte Menge S π = {z π1 < z π2 < . . . < z πn }
40
3
Sortieren
➀ falls n = 1 liefere das Resultat S π := S ➁ sortiere L = {z 1 , z 2 , . . . , z n/2 },
R = {z n/2+1 , z n/2+2 , . . . , z n }
mit Algorithmus 3.13 und erhalte L π und R π ➂ vereinige die sortierten Teilmengen L π und R π mittels Algorithmus 3.12 Man beachte, dass Mergesort sich in ➁ selbst aufruft. In diesem Fall spricht man von einem rekursiven Algorithmus. Im Allgemeinen ist die Beantwortung der Frage, ob ein Algorithmus terminiert, höchst kompliziert, insbesondere wenn dieser rekursiv ist. In diesem Zusammenhang wollen wir den Begriff der Korrektheit einführen. Definition 3.14 Ein Algorithmus heißt korrekt, falls er für jeden zulässigen Input mit dem korrekten Ergebnis terminiert. Im Fall von Mergesort ist die Korrektheit offensichtlich: Nach m Rekursionsschritten ist man bei einer einelementigen Menge S angelangt und beginnt mit dem Vereinigen der Mengen in ➂. Grundlage von Algorithmus 3.13 ist die Beobachtung, dass einelementige Mengen bereits sortiert sind und zwei sortierte Mengen mittels Algorithmus 3.12 effizient zu einer einzelnen, sortierten Menge vereinigt werden können. Ein konkretes Zahlenbeispiel dazu befindet sich in Abb. 3.1. Satz 3.15 Der Aufwand von Mergesort beträgt höchstens O(n log n).
Beweis Der Aufwand von Mergesort für n = 2m Elemente sei A(n). Aufgrund der Rekursion gilt
n . A(n) = n − 1 + 2 · A 2 Merge rekursiver Aufruf
3.3 Quicksort
41
Abb. 3.1 Veranschaulichung des Mergesort-Algorithmus
Außerdem ist A(1) = 0, weil eine einelementige Menge nicht weiter sortiert werden muss. Rekursiv erhalten wir also
n n A(n) = (n − 1) + 2 −1 +4· A 2 4
n n = ... = (2n − 1 − 2) + 4 −1 +8· A 4 8 = mn −
m−1
2i = (m − 1)n + 1.
i=0
Weil nun m = log2 n = ist, folgt die Behauptung A(n) = O(n log n).
log n log 2
In Anbetracht von log n n für große n haben wir Dank des Mergesort-Algorithmus gegenüber dem Bubblesort-Algorithmus eine signifikante Verbesserung des Aufwands für das Sortieren von n Zahlen erzielt.
3.3
Quicksort
Der Quicksort-Algorithmus wurde im Jahr 1962 von Tony Hoare in [Hoa62] vorgeschlagen. Quicksort ist eines der berühmtesten Sortierverfahren und in der Praxis
42
3
Sortieren
Abb. 3.2 Veranschaulichung des Quicksort-Algorithmus
weit verbreitet. Die Grundidee ist, die zu sortierenden Zahlen z 1 , z 2 , . . . , z n bezüglich eines zumeist zufällig ausgewählten Pivotelements x ∈ {z 1 , z 2 , . . . , z n } in die zwei Mengen
z ∈ {z 1 , z 2 , . . . , z n } : z < x , z ∈ {z 1 , z 2 , . . . , z n } : z > x
zu unterteilen, diese rekursiv zu sortieren und dann die sortierten Teilmengen zusammenzusetzen. Das Vorgehen ist in Abb. 3.2 anhand unseres konkreten Zahlenbeispiels illustriert, wobei wir als Pivotelement stets das Element an erster Stelle wählen.
3.3 Quicksort
43
Algorithmus 3.16 (Quicksort) input: Menge S = {z 1 , z 2 , . . . , z n } output: sortierte Menge S π = {z π1 < z π2 < . . . < z πn } ➀ wähle eine Pivotelement x ∈ S ➁ bestimme eine Permutation π , so dass x = z πm , z π1 , z π2 , . . . , z πm−1 < x < z πm+1 , z πm+2 , . . . , z πn ➂ falls L := {z π1 , . . . , z πm−1 } = ∅ rufe Algorithmus 3.16 mit L auf und erhalte L π falls R := {z πm+1 , . . . , z πn } = ∅ rufe Algorithmus 3.16 mit R auf und erhalte R π ➃ vereinige S π := L π ∪ {x} ∪ R π Da n − 1 Vergleiche in Schritt ➁ benötigt werden, folgt für den Aufwand von Algorithmus 3.16 die Rekursion A(n) = n − 1 + A(m − 1) + A(n − m),
(3.1)
wobei A(0) = A(1) = 0 gilt. Je nachdem, wie das Pivotelement gewählt wird, kann der Aufwand des Quicksort-Algorithmus demjenigen des Bubblesort-Algorithmus entsprechen. Lemma 3.17 Im schlimmsten Fall ist der Aufwand von Quicksort O(n 2 ).
Beweis Der Aufwand A(n) aus (3.1) wird offensichtlich maximal, falls m = 1 oder m = n in Schritt ➁ von Algorithmus 3.16 gilt, das heißt, dass das Pivotelement entweder die kleinste oder die größte Zahl in S ist. In diesem Fall gilt A(n) = n − 1 + A(n − 1). Analog zur Aufwandsabschätzung für den Bubblesort-Algorithmus liefert dies den Aufwand n(n − 1) A(n) = . 2 Die in der Praxis beobachteten Laufzeiten des Quicksort-Algorithmus sind bei zufällig gegebenen Zahlenfolgen viel besser als die von Lemma 3.17 vorhergesagte obere Schranke. Es stellt sich nämlich heraus, dass der Rechenaufwand des QuicksortAlgorithmus im Mittel in der Größenordnung des Mergesort-Algorithmus ist.
44
3
Sortieren
Satz 3.18 Alle Permutationen der Zahlen {1, 2, . . . , n} seien gleichwahrscheinlich. Dann benötigt Quicksort im Mittel O(n log n) Vergleiche zum Sortieren einer zufälligen Permutation.
Beweis Sei die Menge aller Permutationen der Zahlen {1, 2, . . . , n}. Wir erinnern uns, dass die Anzahl aller Permutationen n! beträgt. Daher ist der mittlere Aufwand gegeben durch 1 A(n) := A(π ). n! π∈
Ohne Beschränkung der Allgemeinheit nehmen wir an, das Pivotelement steht an erster Stelle. Wir teilen in die Mengen 1 , 2 , . . . , n mit k := {π ∈ : π1 = k}. Da das erste Element aus k fest ist, gilt |k | = (n − 1)!, k ∈ {1, 2, . . . , n}. Für alle π ∈ k ergibt die erste Aufteilung in Quicksort zwei Mengen bestehend aus den Permutationen π< von {1, 2, . . . , k − 1} und π> von {k + 1, k + 2, . . . , n}. Da zum Aufteilen n − 1 Vergleiche notwendig sind, erhalten wir A(π ) = n − 1 + A(π< ) + A(π> ), beziehungsweise
A(π ) = (n − 1)!(n − 1) +
π∈k
π∈k
A(π< ) +
A(π> ).
π∈k
Wenn π alle Permutationen aus k durchläuft, entstehen für π< alle Permutationen von {1, 2, . . . , k − 1}, und zwar jede genau (n−1)! (k−1)! -mal, da |k | = (n − 1)!. Folglich gilt π∈k
und analog
A(π< ) =
(n − 1)! (k − 1)!
π∈k
A(π< ) = (n − 1)! · A(k − 1),
π< ist Permutation von {1,2,...,k−1}
A(π> ) = (n − 1)! · A(n − k).
3.4 Heapsort
45
Zusammengesetzt folgt demnach die Rekursion A(n) = =
n 1 1 A(π ) = A(π ) n! n! π∈ n
k=1 π∈k
(n − 1)! n − 1 + A(k − 1) + A(n − k)
1 n!
k=1
≤n−1+
n 1 A(k − 1) + A(n − k) n k=1
n−1 2 A(k) =n−1+ n k=0
mit den Startwerten A(0) = A(1) = 0. Induktiv zeigt man A(n) = 2(n + 1) n Die Partialsumme i=1 Integral abschätzen: n 1 i=1
i
n 1 i=1
1 i
i
− 4n.
der harmonischen Reihe lässt sich elementar durch ein
n
≤1+ 1
1 dx = 1 + log n − log 1 = 1 + log n. x
Daher erhalten wir schließlich A(n) ≤ 2(n + 1) log n − 2(n − 1).
3.4
Heapsort
Ein weiteres, sehr populäres Sortierverfahren ist Heapsort. Der Heapsort-Algorithmus verwendet einen binären Heap als zentrale Datenstruktur.
46
3
Sortieren
Abb. 3.3 Darstellung eines Binärbaums der Höhe 3
Definition 3.19 Auf der Indexmenge {1, 2, . . . , n} führen wir die Struktur eines Binärbaums wie folgt ein. Für jeden Index i ∈ {2, 3, . . . , n} bezeichne pre(i) := i/2 den Vater von i. Weiterhin bezeichnen wir im Fall von i ∈ {1, 2, . . . , n/2 } mit (i) := 2i den linken Sohn von i und im Fall von i ∈ {1, 2, . . . , (n − 1)/2 } mit r (i) := 2i + 1 den rechten Sohn von i. Der Begriff des Binärbaums wird sofort klar, wenn wir die durch diese Konvention eingeführte Struktur veranschaulichen. Dazu betrachten wir konkret die Zahlen z 1 , z 2 , . . . , z 12 und stellen fest, dass alle Indizes außer dem Index 1 einen Vater haben. Damit ist z 1 die Wurzel des Binärbaums. Der linke Sohn ist der Knoten z 2 , welchen wir durch eine Kante mit seinem Vater z 1 verbinden. Der rechte Sohn ist der Knoten z 3 , welcher ebenfalls über eine Kante mit seinem Vater verbunden wird, und so weiter. Wir erhalten schließlich ein baumartiges Gebilde, das üblicherweise wie in Abb. 3.3 mit der Wurzel nach oben abgebildet wird. Es handelt sich um einen Binärbaum, da jeder Knoten höchstens zwei Söhne besitzt. Ein Knoten ohne Söhne wird Blatt genannt. Wir bezeichnen mit der Tiefe t = t(z i ) eines Knotens z i seinen Abstand zur Wurzel z 1 , das ist die Anzahl der Kanten, welche auf dem Weg von z 1 nach z i passiert werden. Die Höhe des Baums ist die maximal auftretende Tiefe. Nachdem wir einen Binärbaum eingeführt haben, können wir nun einen MaxHeap definieren. Definition 3.20 Die Menge S = {z 1 , z 2 , . . . , z n } von n Zahlen ist ein (binärer) Max-Heap, falls z pre(i) > z i für alle i ∈ {2, 3, . . . , n} gilt. Abb. 3.4 stellt den Max-Heap {z 1 , z 2 , . . . , z 12 } = {42, 37, 15, 18, 6, 10, 8, 2, 4, 1, 5, 3} als Binärbaum dar. Wie man sich leicht überlegt, steht in einem Max-Heap das größte Element stets an erster Stelle, mit anderen Worten, der Wurzelknoten enthält die größte Zahl. Ferner ist jeder von einem beliebig gewählten Knoten ausgehende Teilbaum offenbar wieder ein Max-Heap.
3.4 Heapsort
47
Abb. 3.4 Illustration eines binären Max-Heaps
Die fundamentale Operation zum Erzeugen eines Max-Heaps aus einer Menge S = {z 1 , z 2 , . . . z n } von n Zahlen ist der Max-Heapify-Algorithmus. Gegeben sei ein Index i ∈ {1, 2, . . . , n}, an dem die Max-Heap-Eigenschaft verletzt ist. Dann stellt dieser Algorithmus unter der Annahme, dass die Teilbäume, welche in (i) und r (i) beginnen, Max-Heaps sind, die Max-Heap-Struktur des Teilbaums beginnend in i her. Hierzu wird der Wert z i solange im Baum nach unten verschoben, bis die Max-Heap-Eigenschaft wieder erfüllt ist. Algorithmus 3.21 (Max-Heapify) input: Menge S = {z 1 , z 2 , . . . , z n } und Index i ∈ {1, 2, . . . , n} output: korrigierte Menge S π = {z π1 , z π2 , . . . , z πn } ➀ Initialisierung: m := i und π1 := 1, π2 := 2, . . . , πn := n ➁ bestimme das Maximum des Teilbaums: falls i ≤ n/2 und z (i) > z i m := (i) falls i ≤ (n − 1)/2 und zr (i) > z m m := r (i) ➂ korrigiere den Teilbaum: falls m = i πm := i und πi := m rufe Algorithmus 3.21 mit S π = {z π1 , z π2 , . . . , z πn } und m auf Im schlimmsten Fall traversiert Algorithmus 3.21 einen Weg, beginnend an der Wurzel z 1 des Baums bis zu einem Blatt. Da die Höhe des Baums O(log n) ist, ist dies ebenfalls der Aufwand der Max-Heapify-Operation. Gemäß der Konstruktion des Binärbaums für die Indexmenge {1, 2, . . . , n} kennzeichnen die Indizes { n/2 + 1, n/2 + 2, . . . , n} allesamt Blätter. Insbesondere erfüllt daher jedes z i mit einem solchen Index trivialerweise die
48
3
Sortieren
Max-Heap-Eigenschaft. Somit können wir einen Max-Heap für S = {z 1 , z 2 , . . . , z n } konstruieren, indem wir bei den Blättern beginnen. Dieses Vorgehen ist die Bottomup-Konstruktion. Algorithmus 3.22 (Max-Heap-Konstruktion) input: Menge S = {z 1 , z 2 , . . . , z n } output: Max-Heap S π = {z π1 , z π2 , . . . , z πn } ➀ Initialisierung: π1 := 1, π2 := 2, . . . , πn := n ➁ Konstruiere einen Max-Heap von unten nach oben: für i = n/2 , n/2 − 1, . . . , 1 rufe Algorithmus 3.21 mit S π = {z π1 , z π2 , . . . , z πn } und i auf Die Korrektheit von Algorithmus 3.22 sieht man wie folgt ein: Im i-ten Schritt sind alle Teilbäume, die in den Knoten i + 1, i + 2, . . . , n beginnen, bereits Max-Heaps. Die Max-Heapify-Operation sorgt dann dafür, dass auch der Teilbaum beginnend in i zum Max-Heap wird. Somit sind nach Verlassen der Schleife alle Teilbäume beginnend mit den Knoten 1, 2, . . . , n Max-Heaps, insbesondere also auch das Endresultat Sπ . Die Max-Heap-Konstruktion kann in linearem Aufwand durchgeführt werden: Satz 3.23 Der Aufwand für die Transformation der Menge S = {z 1 , z 2 , . . . , z n } in einen Max-Heap ist O(n).
Beweis Der Einfachheit halber nehmen wir an, dass n = 2m − 1 ist für ein m ∈ N∗ . Offenbar gibt es dann genau 2t Knoten der Tiefe t. Der Aufwand für die MaxHeapify-Operation eines Knotens der Tiefe t ist O(m − t). Für den Gesamtaufwand erhalten wir somit die Abschätzung m−1 t=0
2t (m − t) = 2m
m−1
2t−m (m − t) = 2m
t=0
m k=1
2−k k ≤ 2m
∞
2−k k = 2m+1 ,
k=0
=2
woraus das Behauptete folgt.
Basierend auf der Tatsache, dass in einem Max-Heap das größte Element immer an erster Stelle steht, können wir nun mittels der Heapify-Operation einen Sortieralgorithmus formulieren.
3.5 Untere Schranken für das Sortierproblem
49
Algorithmus 3.24 (Heapsort) input: Menge S = {z 1 , z 2 , . . . , z n } output: sortierte Menge S π = {z π1 < z π2 < . . . < z πn } ➀ Initialisierung: transformiere S mit Algorithmus 3.22 in einen Max-Heap ➁ sortiere sukzessive die Menge S: für i = n, n − 1, . . . 2 vertausche z 1 und z i rufe Algorithmus 3.21 mit S = {z 1 , z 2 , . . . , z i−1 } und 1 auf Die Max-Heap-Konstruktion in ➀ hat einen linearen Aufwand O(n). Ferner lässt sich der Aufwand von Max-Heapify in jedem Durchlauf der Schleife in ➁ durch O(log n) abschätzen. Bei n Schleifendurchläufen ergibt sich somit wie beim MergesortAlgorithmus ein Gesamtaufwand von O(n log n).
3.5
Untere Schranken für das Sortierproblem
Wir haben verschiedene Sortierverfahren kennengelernt, deren Aufwandsabschätzung obere Schranken für den Aufwand des Sortierproblems darstellen. Der nachfolgende Satz liefert nun auch eine untere Schranke für den Aufwand des Sortierens von n Zahlen. Satz 3.25 Jedes deterministische Sortierverfahren, das auf paarweisen Vergleichen beruht und keine Vorkenntnisse über die zu sortierende Menge hat, benötigt im schlimmsten Fall mindestens log2 (n!) Vergleiche, wobei n die Kardinalität der zu sortierenden Menge ist. Zum Beweis des Satzes führen wir das Konzept des Entscheidungsbaums ein. Jedes Sortierverfahren, das auf paarweisen Vergleichen beruht, besitzt einen Solchen Entscheidungsbaum. Abstrakt können wir den Entscheidungsbaum wie folgt beschreiben (siehe auch Abschn. 3.4 zur Definition von Binärbäumen): • Innere Knoten des Entscheidungsbaums entsprechen Vergleichen im Algorithmus. • Ein Weg von der Wurzel zu einem Blatt entspricht der zeitlichen Abfolge der Vergleiche. Ein Weitergehen nach rechts entspricht einem richtigen Vergleich, nach links einem falschen. • Die n! Blätter des Baums stellen die Permutationen der zu sortierenden Menge dar, die jeweils zur Abfolge der Vergleiche gehört.
50
3
Sortieren
Beispiel 3.26 Der Entscheidungsbaum im Fall {z 1 , z 2 , z 3 } ist wie folgt gegeben:
Beweis (von Satz 3.25) Wir müssen eine untere Schranke für die Höhe des Entscheidungsbaums finden. Bestenfalls ist dieser ausbalanciert, das heißt, alle Blätter besitzen dieselbe Tiefe. Ein ausbalancierter Baum hat jeweils 1, 2, 4, 8, . . . , 2m Knoten derselben Tiefe. Da wir n! Blätter haben, muss 2m = n! beziehungsweise m = log2 (n!) gelten. Bemerkung 3.27 Die Funktion f (n) = log2 (n!) verhält sich im wesentlichen wie n log2 n, das heißt, es gilt log2 (n!) = (n log2 n). Denn einerseits finden wir die Abschätzung log2 (n!) ≤ log2 (n n ) = n log2 n. Andererseits gilt aber auch log2 (n!) ≥ log2
n n/2 n n n n = (log2 n − 1). ≥ log2 · ··· 2 2 2 2 2 2
n
·
n/2 Terme
Wir dürfen aus Satz 3.25 schließen, dass Mergesort und Heapsort optimal in dem Sinn sind, dass sich ihre asymptotischen Laufzeiten im schlimmsten Fall nicht unterbieten lassen. Man kann sogar zeigen, dass beim Sortieren von n Zahlen auch im Mittel stets log2 (n!) Vergleiche benötigt werden.
3.5 Untere Schranken für das Sortierproblem
51
Satz 3.28 Alle Permutationen der Zahlen z 1 , z 2 , . . . , z n seien gleichwahrscheinlich. Dann benötigt das Sortierverfahren aus Satz 3.25 im Mittel log2 (n!) Vergleiche.
Beweis Die mittlere Höhe H (τ ) des Entscheidungsbaums τ ist gegeben als Mittelwert der Tiefen tτ (v) aller seiner Blätter v. Bezeichnet B(τ ) die Menge aller Blätter von τ und β(τ ) := |B(τ )| ihre Kardinalität, so gilt also H (τ ) =
1 tτ (v). β(τ ) v∈B(τ )
Der Satz ist bewiesen, wenn wir zeigen können, dass gilt H (τ ) ≥ log2 β(τ ) . Dies zeigen wir durch vollständige Induktion über die Höhe H (τ ) des Entscheidungsbaums τ . Ist H (τ ) = 0, so besteht der Entscheidungsbaum τ nur aus dem Wurzelknoten v mit tτ (v) = 0 und es gilt H (τ ) = 0 = log2 1 = log2 β(τ ) . Dies ist der Induktionsanfang und wir wollen daher annehmen, die Behauptung sei wahr für H (τ ) ≤ h − 1. Seien nun H (τ ) = h und τ , τr der linke beziehungsweise der rechte Teilbaum des Wurzelknotens von τ :
52
3
Sortieren
Dann gilt H (τ ), H (τr ) < h und B(τ ) = B(τ ) ∪ B(τr ),
B(τ ) ∩ B(τr ) = ∅,
sowie β(τ ) = β(τ ) + β(τr ), β(τ ), β(τr ) ≥ 1. Da für jeden Knoten v ∈ τ gilt tτ (v) = tτ (v) + 1, und analog für Knoten aus τr , folgt 1 tτ (v) β(τ ) v∈B(τ )
1 = tτ (v) + tτ (v) β(τ ) v∈B(τ ) v∈B(τr )
1 tτ (v) + 1 + tτr (v) + 1 = β(τ ) v∈B(τ ) v∈B(τr )
β(τ ) + β(τr ) 1 tτ (v) + tτr (v) + = β(τ ) β(τ ) v∈B(τ ) v∈B(τr )
H (τ ) =
β(τ ) β(τr ) =1+ H (τ ) + H (τr ). β(τ ) β(τ )
=1
Einsetzten der Induktionsvoraussetzung H (τ ) ≥ log2 β(τ ) ,
H (τr ) ≥ log2 β(τr )
in die obige Formel ergibt β(τr ) β(τ ) log2 β(τ ) + log2 β(τr ) β(τ ) β(τ ) 1 β(τ ) log2 β(τ ) + β(τ ) − β(τ ) log2 β(τ ) − β(τ ) . =1+ β(τ )
H (τ ) ≥ 1 +
Da wir nicht genau wissen, wie groß β(τ ) ist, fassen wir die rechte Seite dieser Gleichung als Funktion von x := β(τ ) auf und suchen ihr Minimum: H (τ ) ≥ 1 +
1 min x log2 x + (b − x) log2 (b − x) , b := β(τ ). b x∈[0,b]
Übungsaufgaben
53
Ableiten von f (x) := x log2 x + (b − x) log2 (b − x) ergibt f (x) = log2 x +
x 1 1 . − log2 (b − x) − = log2 log 2 log 2 b−x
Offenbar ist x = b/2 die einzige Nullstelle von f (x). Wegen f (0) = f (b) = b log2 b > b log2
b 2
= f
b 2
,
muss x = b/2 das Minimum von f in [0, b] sein. Daher folgt H (τ ) ≥ 1 + log2 β(τ ) − 1 = log2 β(τ ) . Bemerkung 3.29 Wir haben gezeigt, dass der Entscheidungsbaum τ für das Sortieren von n Zahlen den Abschätzungen H (τ ) ≥ log2 β(τ ) und H (τ ) ≥ log2 β(τ ) genügt. Diese werden auch als informationstheoretische Schranken bezeichnet: Jeder deterministische Sortieralgorithmus muss zwischen n! Permutationen unterscheiden und hierzu log2 (n!) Bits an Informationen sammeln.
Übungsaufgaben Aufgabe 3.1 (asymptotische Laufzeitnotation) Sind die folgenden Aussagen wahr oder falsch? Führen Sie einen Beweis. a) n 6 = O(2n ), b) log(n + 1) = O(log n), c) 42n 3 + 13n 2 + 2n + 500 = O(n 3 ), d) 42n 3 + 13n 2 + 2n + 500 = O(n 2 ), e) g(n) = O f (n) impliziert f (n) + g(n) = f (n) , g) n 15 3−n = O(1), e) f (n) = g(n) impliziert g(n) = f (n) . Aufgabe 3.2 (Vergleich von Laufzeiten) Sortieren Sie die folgenden Funktionen bezüglich ihrer Größenordnung, das heißt, geben Sie eine Reihenfolge g1 , g2 , . . . ,
54
3
Sortieren
g18 an mit gk+1 = O(gk ). Kennzeichnen Sie, wenn mehrere g dieselbe Größenord nung besitzen, also wenn sogar gk+1 (n) = gk (n) gilt. 2
log n
√ log n , , n2, nn , 2 1
n 3 , n3, 2
(log n)2 , log(n!), 2(2 ) , n log n , 2log n , 2 n
√ 2 log n
104 , en , 2n , n log n, n!, 2
2n+1
, .
Aufgabe 3.3 (Suchperformance) a) Gegeben sei eine unsortierte Menge S = {z 1 , z 2 , . . . , z n } von n verschiedenen Zahlen. Bei einer linearen Suche nach einem bestimmten Element x untersucht man sukzessive für k ∈ {1, 2, . . . , n}, ob x = z k gilt, und bricht die Suche im Erfolgsfall ab. Zeigen Sie, dass im schlimmsten Fall (n) Vergleiche benötigt werden. b) Falls die Zahlen der Größe nach sortiert wären, könnte man auch eine binäre Suche durchführen. Die binäre Suche nach x in einer sortierten Menge von n Zahlen prüft, ob x = z n/2 gilt. Falls dies nicht der Fall ist, wird die binäre Suche im Fall x < z n/2 rekursiv für die Menge {z 1 , z 2 , . . . , z n/2 −1 } aufgerufen. Andernfalls wird sie rekursiv für {z n/2 +1 , z n/2 +2 , . . . , z n } aufgerufen. Zeigen Sie, dass die binäre Suche im schlimmsten Fall (log n) Vergleiche benötigt. c) Nun soll nach mehreren Zahlen x1 , x2 , . . . , xk in einer unsortierten Menge gesucht werden. Es kann dabei durchaus sein, dass k von n abhängt, etwa k = k(n) = n/2. Bestimmen Sie dasjenige k, ab dem eine Sortierung der Menge gefolgt von k binären Suchen im schlimmsten Fall asymptotisch schneller ist als k lineare Suchen auf der unsortierten Menge. Aufgabe 3.4 (Binärbäume) Im Beweis von Satz 3.28 wurde nachgewiesen, dass die mittlere Höhe eines Binärbaums mit jeweils genau zwei Söhnen in jedem inneren Knoten der Abschätzung H (τ ) ≥ log2 β(τ ) genügt, wobei β(τ ) die Anzahl der Blätter des Baums τ bezeichnet. Zeigen Sie, dass diese Abschätzung auch für beliebige Binärbäume (mit wenigstens einem Knoten) gilt.
4
Graphen
4.1
Grundbegriffe
Graphen eignen sich zur Lösung diskreter Optimierungsprobleme, sie stellen aber auch ein wichtiges Hilfsmittel zur Umsetzung numerischer Verfahren dar, insbesondere auf Netzwerken und hierarchischen Strukturen.
Definition 4.1 Ein Graph G = (V , E) ist ein Tupel, bestehend aus zwei endlichen Mengen V und E. Die Menge V enthält die Knoten und E die Kanten des Graphen. Kanten beschreiben Verbindungen zwischen Knoten und sind gerichtet oder ungerichtet: • Für gerichtete Graphen oder Digraphen gilt E ⊂ {(v, w) ∈ V × V : v = w}. Gilt e = (v, w) ∈ E, so bezeichnet v den Anfangsknoten und w den Endknoten der Kante e. • Im Fall ungerichteter Graphen ist E eine Menge von ungeordneten Paaren {v, w} ⊂ V , das heißt E ⊂ {X ⊂ V : |X | = 2}.
Bemerkung 4.2 Der Buchstabe V für die Kanten rührt vom englischen Begriff Vertices her, während E für das englische Edges steht.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_4
55
56
4
Graphen
Beispiel 4.3 Gegeben sei die Knotenmenge V = {v, w, x, y, z}. Ein möglicher Digraph hierfür ist G = V , {(v, w), (v, x), (w, x), (x, z), (z, x), (y, x)} :
Sind die Kanten ungerichtet, so erhalten wir den ungerichteten Graphen gewählten G = V , {v, w}, {v, x}, {w, x}, {x, y}, {x, z} :
Speziell ist also {v, w} = {w, v} und analog für alle anderen Kanten.
Bemerkung 4.4 In Digraphen werden manchmal auch Kanten der Form (v, v) zugelassen. Man spricht dann von Schleifen.
Definition 4.5 Sei G = (V , E) ein Graph. Ein Tupel π = (v0 , v1 , . . . , vr ) mit r ≥ 1 und (vi , vi+1 ) ∈ E beziehungsweise {vi , vi+1 } ∈ E, i ∈ {0, 1, . . . , r − 1}, heißt Weg oder Pfad in G. Der Weg π ist ein v-w-Weg, falls v0 = v und vr = w gilt. Er heißt einfach, falls • v0 , v1 , . . . , vr entweder paarweise verschieden sind • oder v0 , v1 , . . . , vr −1 paarweise verschieden sind und v0 = vr gilt. Die Länge |π |:=r des Wegs π entspricht der Anzahl Kanten, die von π durchlaufen werden. Schließlich sagen wir, dass ein Knoten w∈V von einem Knoten v ∈ V aus erreichbar ist, falls ein v-w-Weg in G existiert.
Beispiel 4.6 Beispiele für Wege in den beiden Graphen aus Beispiel 4.3 sind • π1 = (v, w), |π1 | = 1, • π2 = (v, w, x), |π2 | = 2, • π3 = (v, w, x, z, x, z), |π3 | = 5.
4.1 Grundbegriffe
57
Betrachten wir den zugehörigen ungerichteten Graphen, so ist auch π4 = (y, x, v, w, x) ein Weg der Länge |π4 | = 4.
Definition 4.7 Es seien G = (V , E) ein Digraph und v ∈ V . Wir definieren • die Menge der Nachfolger von v post(v) := {w ∈ V : (v, w) ∈ E}, • die Menge der Vorgänger von v pre(v) := {w ∈ V : v ∈ post(w)}, • die Menge aller von v erreichbaren Knoten post (v) := {w ∈ V : es existiert ein v-w-Weg in G}, • die Menge aller Knoten, die v erreichen können, pre (v) := {w ∈ V : v ∈ post (w)}. Zu gegebenem v ∈ V sind die Knoten w ∈ post(v) ∪ pre(v) die Nachbarn v. Ihre Anzahl wird Knotengrad genannt deg(v) := indeg(v) + outdeg(v), wobei der Eingangsgrad von v die Anzahl indeg(v) := | pre(v)| aller Vorgängerknoten und der Ausgangsgrad die Anzahl outdeg(v) := | post(v)| aller Nachfolgerknoten ist.
Bemerkung 4.8 Diese Definition gilt mit den offensichtlichen Modifikationen auch für ungerichtete Graphen. In diesem Fall erhalten wir post(v) = pre(v) und post (v) = pre (v). Insbesondere setzen wir deg(v) = indeg(v) = outdeg(v).
58
4
Somit gilt
outdeg(v) =
v∈V
indeg(v) =
v∈V
Graphen
deg(v) = 2|E|.
v∈V
Im Fall von Digraphen sind die Mengen post(v) und pre(v) üblicherweise voneinander verschieden. Es gilt allerdings stets
outdeg(v) =
v∈V
indeg(v) = |E|.
v∈V
Beispiel 4.9 Für den Digraphen aus Beispiel 4.3 ist post(v) = {w, x}, post (v) = {w, x, z}, pre(v) = pre (v) = ∅ und post(y) = {x}, post (y) = {x, z}. Für den entsprechenden ungerichteten Graphen erhalten wir post(x) = {v, w, y, z}, post (x) = V .
4.2
Zusammenhang
Definition 4.10 Seien G = (V , E) ein ungerichteter Graph und ∅ = C ⊂ V eine nichtleere Teilmenge von V . • Die Menge C heißt zusammenhängend, falls jeweils zwei Knoten v, w ∈ C, v = w, voneinander erreichbar sind, das heißt, falls w ∈ post (v) und v ∈ post (w) gilt. Ist G ein Digraph, dann heißt C zusammenhängend, falls C im zugrundeliegenden ungerichteten Graphen zusammenhängend ist. • Eine zusammenhängende Knotenmenge C ⊂ V heißt Zusammenhangskomponente, falls sie maximal ist. Dies bedeutet, es gibt keine weitere, zusammenhängende Knotenmenge D ⊂ V mit C ⊂ D und C = D. • Der Graph G ist zusammenhängend, falls V zusammenhängend ist.
4.2 Zusammenhang
59
Beispiel 4.11 Ein unzusammenhängender Graph mit drei Zusammenhangskomponenten ist:
Indessen ist nachstehender Graph zusammenhängend:
Die Zusammenhangskomponenten eines ungerichteten Graphen sind die Äquivalenzklassen der Knotenmenge V unter der durch die Erreichbarkeit induzierte Äquivalenzrelation. Es ist v ≡ w genau dann, wenn gilt {v} ∪ post (v) = {w} ∪ post (w). Unter dieser Äquivalenzrelation zerfällt der Graph G in paarweise disjunkte Zusammenhangskomponenten C1 , C2 , . . . , Cr mit V =
r
Ci ,
i=1
E=
r
Ei ,
i=1
wobei E i := E ∩ {X ⊂ Ci : |X | = 2} gilt. Satz 4.12 Sei G = (V , E) ein ungerichteter Graph mit n = |V | ≥ 1 Knoten und m = |E| Kanten. Ist G zusammenhängend, so folgt für die Anzahl Knoten und Kanten die Ungleichung m ≥ n − 1.
60
4
Graphen
Beweis Wir beweisen die Aussage durch Induktion nach n. Für n = 1 folgt m = 0 = n − 1. Gilt n = 2, so ist G zusammenhängend genau dann, wenn m = 1 = n − 1 ist. Sei also n ≥ 3 und G zusammenhängend. Wir wählen v ∈ V derart, dass deg(v) = min deg(w) =: k. w∈V
Es folgt k > 0, denn sonst wäre v ein isolierter Knoten im Widerspruch zum Zusammenhang von G. Im Fall k ≥ 2 erhalten wir 2 m = 2|E| =
w∈V
deg(w) ≥ n · k ≥ 2 · n ≥k
und folglich ist m ≥ n ≥ n − 1. Gilt hingegen k = 1, dann ergibt sich die Aussage wie folgt: Es sei G = (E , V ) derjenige Graph, der durch Streichen des Knotens v sowie der ausgehenden Kante entsteht. Mit G ist auch G zusammenhängend und nach Induktionsvoraussetzung folgt wegen |V | = n − 1 und |E | = m − 1 m − 1 = |E | ≥ (n − 1) − 1 = n − 2, das heißt m ≥ n − 1.
4.3
Zyklische Graphen
Definition 4.13 Ein einfacher Zyklus oder einfacher Kreis in einem Graphen G = (V , E) ist ein einfacher Weg π = (v0 , v1 , . . . , vr ) mit v0 = vr und r ≥ 2 (Digraph) beziehungsweise r ≥ 3 (ungerichteter Graph). Ein Zyklus oder Kreis ist ein Weg π = (v0 , v1 , . . . , vr ), der sich aus einfachen Zyklen zusammensetzt. Bemerkung 4.14 Aus der Definition folgen sofort die Aussagen: 1. Jeder einfache Zyklus ist ein Zyklus. 2. Sind π1 = (v0 , v1 , . . . , vr ) und π2 = (w0 , w1 , . . . , w ) Zyklen mit vi = w0 = w , so ist auch π = (v0 , v1 , . . . , vi−1 , w0 , w1 , . . . , w , vi+1 , vi+2 , . . . , vr ) ein Zyklus. 3. Nur die durch die ersten beiden Aussagen konstruierbaren Wege sind Zyklen.
4.3 Zyklische Graphen
61
Beispiel 4.15 • Der Digraph
besitzt die einfachen Zyklen π1 = (x, z, x), π2 = (v, w, x, v) und die nicht einfachen Zyklen π3 = (x, z, x, z, x), π4 = (v, w, x, z, x, v). • Der ungerichtete Graph
besitzt den einfachen Zyklus π1 = (v, w, x, v). Die Wege π2 = (x, y, x) und π3 = (v, w, x, y, x, v) sind hingegen keine Zyklen. Im Folgenden betrachten wir eine besondere Klasse von Zyklen in Graphen. Definition 4.16 Ein Eulerscher Rundweg in einem Graphen G = (V , E) ist ein Zyklus, der jede Kante e ∈ E genau einmal enthält. Im ungerichteten Fall nennen wir G Eulersch, falls der Grad jedes Knotens gerade ist. Ein Digraph ist Eulersch, falls indeg(v) = outdeg(v) für alle v ∈ V gilt. Basierend auf den Begriffen dieser Definition können wir den folgenden, berühmten Satz formulieren, der Leonhard Euler zugeschrieben wird.
62
4
Graphen
Satz 4.17 Ein zusammenhängender Graph G = (V , E) besitzt genau dann einen Eulerschen Rundweg, wenn der Graph Eulersch ist.
Beweis Die Bedingung, dass der Graph Eulersch ist, ist notwendig. Denn ein Knoten v ∈ V , der k-mal in einem Eulerschen Rundweg vorkommt (oder (k + 1)-mal, wenn es sich um den Anfangs- und Endknoten handelt), muss im gerichteten Fall indeg(v) = outdeg(v) = k und im ungerichteten Fall deg(v) = 2k erfüllen. Dass die Bedingung auch hinreichend ist, sieht man wie folgt ein: Sei π = (v0 , v1 , . . . , vr ) der längste Weg, in dem jede Kante aus E höchstens einmal vorkommt. Insbesondere muss in diesem Weg jede Kante enthalten sein, die vr verlässt. Das bedeutet aber v0 = vr wegen der Bedingung an den Knotengrad. Angenommen, π enthält nicht alle Kanten, das heißt, es gibt eine Kante e = (w1 , w2 ) ∈ E oder e = {w1 , w2 } ∈ E derart, dass e = (vi , vi+1 ) beziehungsweise e = {vi , vi+1 } für alle i ∈ {0, 1, . . . , r − 1}. Da G zusammenhängend ist, muss nun entweder w1 oder w2 in π enthalten sein. Ist beispielsweise w1 = vi in π enthalten, so ist π˜ = (vi , vi+1 , . . . , vr , v1 , . . . , vi−1 , vi , w2 ) ein längerer Weg, in dem jede Kante genau einmal vorkommt.
Zu Zeiten Eulers floss durch die Stadt Königsberg der Fluss Pregel. In diesem Fluss gab es eine Insel, hinter der sich der Fluss teilte. Die vier resultierenden Landstücke waren durch insgesamt sieben Brücken verbunden. Hieraus ergab sich die Fragestellung, ob es möglich wäre, einen Rundweg zu finden, der jede Brücke nur genau einmal passiert. Die vorliegende Situation ist im Multigraphen (hierin sind auch Abb. 4.1 Schematische Darstellung des historischen Königsbergs als Multigraph
4.4 Bäume
63
parallele Kanten zugelassen) in Abb. 4.1 schematisch dargestellt. Der soeben bewiesene Satz besagt nun, dass in der vorliegenden Konfiguration kein solcher Rundweg existiert.
4.4
Bäume
Eine wichtige Klasse von Graphen sind Bäume, wie wir sie bereits als Binärbäume oder Entscheidungsbäume in Kap. 3 kennengelernt haben. An dieser Stelle präsentieren wir nun deren formale Einführung. Definition 4.18 Ein Graph G heißt azyklisch oder zyklenfrei, falls es keine Zyklen in G gibt. Ein ungerichteter, azyklischer und zusammenhängender Graph ist ein Baum.
Beispiel 4.19 • Azyklischer Digraph:
• Azyklischer, ungerichteter Graph:
Es gibt viele, zur Definition 4.18 äquivalente Charakterisierungen von Bäumen, die wir nachfolgend nachweisen wollen.
64
4
Graphen
Satz 4.20 Sei G = (V , E) ein ungerichteter Graph mit |V | = n Knoten. Dann sind folgende Aussagen äquivalent: 1. 2. 3. 4.
G ist ein Baum. G hat n − 1 Kanten und ist zusammenhängend. G hat n − 1 Kanten und ist azyklisch. G ist azyklisch und das Hinzufügen einer beliebigen Kante erzeugt einen Zyklus. 5. G ist zusammenhängend und das Entfernen einer Kante erzeugt einen unzusammenhängenden Graphen. 6. Jedes Paar von verschiedenen Knoten in G ist durch genau einen einfachen Weg miteinander verbunden.
Beweis Wir beweisen die Äquivalenz der Aussagen mit Hilfe eines Ringschlusses. 1 ⇒ 6: Dies folgt aus der Tatsache, dass die Vereinigung zweier disjunkter einfacher Wege mit gleichen Anfangs- und Endpunkten ein Zyklus ist. 6 ⇒ 5: G ist zusammenhängend gemäß Voraussetzung. Das Entfernen der Kante {v, w} macht w unerreichbar von v. 5 ⇒ 4: G ist azyklisch, denn sonst kann eine Kante entfernt werden, so dass G weiterhin zusammenhängend ist. Da es in G stets einen Weg von v nach w gibt, liefert das Hinzufügen einer Kante {v, w} einen Zyklus. 4 ⇒ 3 ⇒ 2: Die Behauptung folgt, falls für einen azyklischen, ungerichteten Graphen gilt n = m + p,
(4.1)
wobei m = |E| und p die Anzahl der Zusammenhangskomponenten ist. Da (4.1) klar ist für m = 0, nehmen wir an, (4.1) gilt für ein |E| = m. Fügen wir eine zusätzliche Kante hinzu, dies bedeutet |E| = m + 1, so muss sich p um eins reduzieren, denn sonst würde ein Zyklus entstehen. 2 ⇒ 1: Wir zerstören Zyklen aus G durch Entfernen von Kanten. Haben wir etwa k Kanten entfernt, so folgt aus (4.1) n −
1 − k + p = n,
Anzahl Kanten
=1
das heißt k = 0. Bemerkung 4.21 Fixieren wir in einem Baum G = (V , E) einen Wurzelknoten, so wird automatisch eine Orientierung der Kanten festgelegt. Dann ist pre(v) der Vater des Knotens v ∈ V und post(v) sind seine Söhne.
4.5 Graphendurchmusterung
4.5
65
Graphendurchmusterung
Häufig muss ein Graph durchmustert werden. Populäre Graphendurchmusterungsmethoden sind die Tiefensuche und die Breitensuche. Beide Suchverfahren lassen sich auf den folgenden Algorithmus zurückführen, der alle von einem Startknoten erreichbaren Knoten durchsucht. Dieser Algorithmus sowie die nachfolgenden Sätze in diesem Abschnitt sind nur für Digraphen ausgeführt. Allerdings gelten sie mit den offensichtlichen Modifikationen auch für ungerichtete Graphen. Algorithmus 4.22 (algorithmische Suche) input: Graph G = (V,E) und Startknoten s ∈ V output: azyklischer Graph G = (R, T ) mit R = {s} ∪ post (s) und T ⊂ E ➀ Initialisierung: R := {s}, Q := {s}, T := ∅ ➁ falls Q = ∅ dann stop sonst wähle v ∈ Q ➂ wähle w ∈ V \ R mit e = (v, w) ∈ E falls kein solches w existiert setze Q := Q \ {v} und gehe nach ➁ ➃ setze R := R ∪ {w}, Q := Q ∪ {w}, T := T ∪ {e} und gehe nach ➁ Je nachdem, wie die Menge Q konkret verwaltet wird, ergeben sich verschiedene Resultate. Wir unterscheiden: Definition 4.23 Bei der Tiefensuche oder Depth-First-Search (DFS) wird derjenige Knoten v ∈ Q ausgewählt, der zuletzt zu Q hinzugefügt wurde. Bei der Breitensuche oder Breadth-First-Search (BFS) wird indessen derjenige Knoten v ∈ Q ausgewählt, der zuerst zu Q hinzugefügt wurde. Die Tiefensuche rührt von einer Verwaltung der Menge Q in einem Stapelspeicher her. Bei dieser Speichertechnik werden die Knoten übereinander gestapelt und können daher nur in umgekehrter Reihenfolge wieder vom Stapel genommen werden (Last In – First Out). Die Breitensuche ergibt sich bei einer Verwaltung der Menge Q als Warteschlange. Hier werden die Knoten hintereinander gespeichert, so dass der zuerst hinzugefügte als erstes wieder entnommen werden kann (First In – First Out). In beiden Fällen ist der resultierende Graph aber ein Baum.
66
4
Graphen
Satz 4.24 Algorithmus 4.22 liefert einen azyklischen Graphen G = (R, T ) mit R = {s} ∪ post (s) und T ⊂ E.
Beweis Zu jedem Zeitpunkt des Algorithmus ist (R, T ) zusammenhängend. Insbesondere ist (R, T ) azyklisch, denn eine neue Kante e = (v, w) verbindet stets nur Knoten v und w mit v ∈ Q ⊂ R und w ∈ V \ R. Angenommen, am Ende existiert ein von s erreichbarer Knoten w ∈ V \ R. Seien π = (s, v1 , . . . , vr , w) ein einfacher s-w-Weg in G und (x, y) ∈ E eine Kante mit x ∈ R und y ∈ / R. Da x ∈ R ist, muss irgendwann bei Ausführung des Algorithmus x ∈ Q gelten. Der Algorithmus terminiert jedoch nicht, bevor x aus Q entfernt ist. Dies geschieht jedoch nur, falls (x, y) ∈ / E. Bemerkung 4.25 Ist G = (V , E) ein ungerichteter, zusammenhängender Graph, so bestimmt Algorithmus 4.22 einen sogenannten Spannbaum für G, das ist ein Baum, der jeden Knoten aus V enthält.
Satz 4.26 Die Ausführung von ‘wähle v ∈ Q’ und ‘wähle w ∈ V \ R mit e = (v, w) ∈ E’ sei in O(1) durchführbar. Dann besitzt Algorithmus 4.22 den Aufwand O(|V | + |E|).
Beweis Jeder Knoten v ∈ V wird höchstens (| post(v)| + 1)-mal und jede Kante e ∈ E höchstens einmal betrachtet. Bemerkung 4.27 In der Regel gehen wir davon aus, dass der Graph G = (V , E) zusammenhängend ist. Nach Satz 4.12 bedeutet das |V | − 1 ≤ |E| ≤ |V |2 . Somit ist die Laufzeit der Graphendurchmusterung immer O(|E|). Beispiel 4.28 Der Graph G = (V , E) laute
4.5 Graphendurchmusterung
67
und sei s = v1 . Bei der Tiefensuche ergibt sich die Besuchsreihenfolge v1 , v2 , v4 , v5 , v3 und somit der folgende Baum:
Die Breitensuche liefert dagegen die Besuchsreihenfolge v1 , v2 , v3 , v4 , v5 . Daher erhalten wir nun den Baum:
Die Breitensuche hat eine interessante Optimalitätseigenschaft: Sie bestimmt ausgehend vom Startknoten die kürzesten Wege zu jedem erreichbaren Knoten. Satz 4.29 Seien G = (V , E) ein ungerichteter Graph, s, v ∈ V und dist G (s, v) := min{|π | : π = (s, u 1 , . . . , u r , v) Weg in G}, wobei wir dist G (s, v) := ∞ setzen, falls kein s-v-Weg existiert. Dann enthält der durch die Breitensuche erzeugt Graph G = (R, T ) zum Startknoten s ∈ V einen kürzesten Weg zu jedem Knoten v ∈ post (s). Dies bedeutet, der einfache Weg π = (s, u 1 , . . . , u r , v) erfüllt |π | = dist G (s, v).
Beweis Offenbar ist π eindeutig bestimmt, da G = (R, T ) azyklisch ist. Wir modifizieren nun Algorithmus 4.22 wie folgt: In ➀ setzen wir (s) := 0 und in ➃ (w) := (v) + 1. Dann gilt zu jedem Zeitpunkt (v) = dist (R,T ) (s, v) für alle v ∈ R. Weiterhin gibt es für kein v ∈ Q, das in ➁ ausgewählt wird, ein w ∈ R mit (w) > (v) + 1.
(4.2)
68
4
Graphen
Angenommen, der Algorithmus bricht ab und es existiert ein Knoten w ∈ V mit dist G (s, w) < dist G (s, w).
(4.3)
Falls es mehr als einen solchen Knoten gibt, so wählen wir denjenigen mit dem kleinsten Abstand dist G (s, w). Sei π = (s, u 1 , . . . , u r , v, w) ein kürzester Weg in G. Dann gilt dist G (s, v) = dist G (s, v), da ansonsten v ein Knoten mit kleinerem Abstand wäre, der (4.3) erfüllt. Außerdem gilt {v, w} ∈ E. Weiter ist (w) = dist G (s, w) > dist G (s, w) = dist G (s, v) + 1 = dist G (s, v) + 1 = (v) + 1. Wegen (4.2) gilt w ∈ / R zu dem Zeitpunkt, zu dem v ∈ Q entfernt wird. Dies widerspricht jedoch ➂, denn es ist {v, w} ∈ E. Bemerkung 4.30 Gemäß Satz 4.26 berechnet obiger Algorithmus die Werte dist G (s, v) = dist G (s, v) für alle v ∈ R mit dem Aufwand O(|V | + |E|).
4.6
Starker Zusammenhang
Definition 4.31 Ein Digraph G = (V , E) heißt stark zusammenhängend, falls für jedes Knotenpaar v, w ∈ V mit v = w gilt v ∈ post (w) und w ∈ post (v), das heißt, es gibt einen Weg von v nach w und einen Weg von w nach v. Die starken Zusammenhangskomponenten sind diejenigen stark zusammenhängenden Teilgraphen, welche maximal sind.
Beispiel 4.32 Der Graph
4.6 Starker Zusammenhang
69
ist stark zusammenhängend. Hingegen ist der Graph
nicht stark zusammenhängend. Er besitzt jedoch die starke Zusammenhangskomponente ({v, w, x, z}, {(v, w), (w, x), (x, v), (x, z), (z, x)}). Nachfolgender, auf der Tiefensuche basierender Algorithmus, bestimmt die starken Zusammenhangskomponenten eines Digraphen. Algorithmus 4.33 (Bestimmung starker Zusammenhangskomponenten) input: Digraph G = (V , E) output: Funktion comp : V → N, welche die Zugehörigkeit zu einer starken Zusammenhangskomponente kennzeichnet ➀ Initialisierung: R := ∅, N := 0 ➁ für alle v ∈ V falls v ∈ / R FirstVisit(v) ➂ setze R := ∅, K := 0 ➃ für j = |V |, |V | − 1, . . . , 1 / R falls ι−1 ( j) ∈ setze K := K + 1 und SecondVisit ι−1 ( j) Hilfsprogramm FirstVisit(v): ➀ setze R := R ∪ {v} ➁ für alle w ∈ V \ R mit (v, w) ∈ E: FirstVisit(w) ➂ setze N := N + 1, ι(v) := N und ι−1 (N ) := v Hilfsprogramm SecondVisit(v): ➀ setze R := R ∪ {v} ➁ für alle w ∈ V \ R mit (w, v) ∈ E: SecondVisit(w) ➂ setze comp(v) := K
70
4
Graphen
Beispiel 4.34 Gegeben sei der Digraph
Dann ergibt sich in ➁ für die erste Tiefensuche FirstVisit die Besuchsreihenfolge v1 , v7 , v2 , v4 , v5 mit ι(v1 ) = 1, ι(v7 ) = 2, . . . , ι(v5 ) = 5. Die Tiefensuche für v3 terminiert sofort, da v4 , v7 ∈ R gilt, und wir erhalten ι(v3 ) = 6. Als einziger Knoten ist dann nur noch v6 nicht in R. Die Tiefensuche für v6 bricht also auch sofort ab und es folgt ι(v6 ) = 7. Dieser Ablauf ist in folgender Abbildung veranschaulicht, wobei wir die Werte von ι in jeden Knoten eingetragen haben:
Die Tiefensuche SecondVisit ist eine Tiefensuche im inversen Graphen G −1 := (V , E −1 ), wobei E −1 := {(w, v) : (v, w) ∈ E}. In ➃ startet die erste Tiefensuche SecondVisit mit v6 , da ι(v6 ) = 7, kann aber keine weiteren Knoten erreichen. Genauso verhält es sich mit der zweiten Tiefensuche, beginnend in v3 mit ι(v3 ) = 6. Folglich wird nun die Tiefensuche für v1 gestartet, da ι(v1 ) = 5. Es können v2 und v7 erreicht werden. Schließlich wird v5 von v4 aus erreicht. Der Ablauf sieht demnach folgendermaßen aus:
Hier sind die Knoten mit den Werten der Funktion comp versehen. Folglich ergeben sich die Knotenmengen der starken Zusammenhangskomponenten zu {v6 }, {v3 }, {v1 , v2 , v7 } und {v4 , v5 }.
4.6 Starker Zusammenhang
71
Satz 4.35 Algorithmus 4.33 identifiziert die starken Zusammenhangskomponenten in linearem Aufwand O(|V | + |E|).
Beweis Wir bemerken zunächst, dass sich die Aufwandsabschätzung analog zu der aus Satz 4.26 ergibt. Seien nun v, w ∈ V zwei Knoten derselben starken Zusammenhangskomponente, das heißt, in G gibt es einen Weg von v nach w und umgekehrt. Somit gibt es in G −1 ebenfalls einen Weg von v nach w und umgekehrt. Die Tiefensuche SecondVisit markiert somit beide Knoten als zur selben Zusammenhangskomponente gehörig, also comp(v) = comp(w). Es verbleibt zu zeigen, dass zwei Knoten v, w ∈ V mit comp(v) = comp(w) auch zur selben starken Zusammenhangskomponente gehören. Dazu sei r (v) beziehungsweise r (w) derjenige von v respektive w erreichbare Knoten mit dem höchsten ι-Wert. Wegen comp(v) = comp(w) liegen beide Knoten im selben, durch die Tiefensuche SecondVisit erzeugten Baum. Dessen Startknoten r erfüllt also r = r (v) = r (w). Da r von v erreichbar ist und r einen höheren ι-Wert erhalten hat, muss r in der Tiefensuche FirstVisit vor v zu R hinzugefügt worden sein. Daher erhält der entsprechende, von der Tiefensuche FirstVisit erzeugte Baum einen r v-Weg, das heißt, v ist auch von r erreichbar. Analog ist auch w von r erreichbar. Zusammengefasst ist v von w erreichbar und umgekehrt, was zu zeigen war. Basierend auf den starken Zusammenhangskomponenten kann man den kondensierten Graphen definieren. Dieser fasst die Knotenmengen der starken Zusammenhangskomponenten jeweils zu einem einzigen Knoten zusammen. Definition 4.36 Zu einem Digraphen G = (V , E) seien die starken Zusammenhangskomponenten gegeben durch G i := Vi , E ∩ (Vi × Vi ) , i ∈ {1, 2, . . . , p}, mit V1 , V2 , . . . , V p ⊂ V . Der Graph G = (V , E ) mit V := {V1 , V2 , . . . , V p } und E := {(Vi , V j ) ∈ V × V : i = j und E ∩ (Vi × V j ) = ∅} heißt kondensierter Graph zu G.
72
4
Graphen
Beispiel 4.37 Wir betrachten noch einmal den Graphen
Wie wir in Beispiel 4.34 gesehen haben, sind für diesen Graphen die Knotenmengen der starken Zusammenhangskomponenten gegeben durch {v6 }, {v3 }, {v1 , v2 , v7 } und {v4 , v5 }. Die zu den starken Zusammenhangskomponenten gehörigen Teilgraphen sind somit G1 G2 G3 G4
= (V1 , E 1 ) mit V1 = (V2 , E 2 ) mit V2 = (V3 , E 3 ) mit V3 = (V1 , E 1 ) mit V4
= {v6 }, E 1 = ∅, = {v3 }, E 2 = ∅, = {v1 , v2 , v7 }, E 3 = {(v1 , v7 ), (v2 , v1 ), (v7 , v2 )}, = {v4 , v5 }, E 4 = {(v4 , v5 ), (v5 , v4 )}.
Deshalb gilt für den kondensierten Graphen G = (V , E ), dass V = {V1 , V2 , V3 , V4 } und E = {(V1 , V3 ), (V1 , V4 ), (V2 , V3 ), (V2 , V4 ), (V3 , V4 )}:
Für azyklische Graphen bestimmt Algorithmus 4.33 eine spezielle Sortierung der Knoten. Diese werden wir im Folgenden benötigen. Definition 4.38 Es sei G = (V , E) ein Digraph. Eine Nummerierung V = {v1 , v2 , . . . , vn } der Knoten heißt topologische Ordnung, falls für alle Kanten (vi , v j ) ∈ E gilt i < j.
4.6 Starker Zusammenhang
73
Lemma 4.39 Der Digraph G = (V , E) besitzt eine topologische Ordnung genau dann, wenn er azyklisch ist.
Beweis Der Beweis dieses Lemmas ist als Übungsaufgabe 4.5 zu vollziehen.
Satz 4.40 Zu einem Digraphen G = (V , E) bestimmt Algorithmus 4.33 eine topologische Ordnung des kondensierten Graphen G = (V , E ) in linearem Aufwand O(|V | + |E|).
Beweis Seien Vi , V j ⊂ V die Knotenmengen zweier starker Zusammenhangskomponenten mit comp(vi ) = i und comp(v j ) = j für alle vi ∈ Vi und v j ∈ V j . Ohne Beschränkung der Allgemeinheit gelte i < j. Wir zeigen, dass in G keine Kanten e = (v j , vi ) ∈ E existieren mit vi ∈ Vi und v j ∈ V j . Angenommen, eine solche Kante existiert. Alle Knoten aus Vi werden in der Tiefensuche SecondVisit vor den Knoten aus V j zu R hinzugefügt. Insbesondere gilt / R beim Überprüfen der Kante e = (v j , vi ). Dies bedeutet jedoch, vi ∈ R und v j ∈ dass v j zu R hinzugefügt wird, bevor K in ➃ erhöht wird, was comp(vi ) = comp(v j ) widerspricht.
Korollar 4.41 Der kondensierte Graph G = (V , E ) zu einem Digraphen G = (V , E) ist zyklenfrei.
Beweis Die Behauptung folgt sofort aus Lemma 4.39.
Korollar 4.42 Algorithmus 4.33 bestimmt eine topologische Ordnung des Digraphen G = (V , E) in linearem Aufwand O(|V | + |E|), vorausgesetzt diese existiert. Gibt es eine solche Ordnung nicht, so erfährt man dies ebenfalls in linearem Aufwand.
74
4
Graphen
Beweis Da eine topologische Ordnung nur dann existiert, wenn der Graph azyklisch ist, ergibt sich eine topologische Ordnung genau dann, wenn alle starken Zusam menhangskomponenten einknotig sind, das heißt G = G .
Übungsaufgaben Aufgabe 4.1 (Zusammenhangskomponenten) a) Sei G = (V , E) ein ungerichteter Graph. Man zeige, dass mindestens einer der Graphen G und G c zusammenhängend ist, wobei G c := (V , E c ) mit E c := {X ⊂ V : |X | = 2} \ E das Komplement von G bezeichne. b) Sei G = (V , E) ein ungerichteter Graph. Zeigen Sie, dass die Relation v ≡ w, definiert durch die Bedingung v ∪ post (v) = w ∪ post (w), eine Äquivalenzrelation auf V ist. c) Man zeige, dass ein ungerichteter Graph G = (V , E), der
|V | − 1 |E| > 2 erfüllt, zusammenhängend ist. Aufgabe 4.2 (Knotengrad) Sei G = (V , E) ein Graph mit |V | > 1. Zeigen Sie, dass G zwei Knoten vom selben Grad besitzt. Aufgabe 4.3 (Kantenorientierung) Sei G ein ungerichteter Graph. Man zeige, dass die Kanten von G so orientiert werden können, dass der zugehörige Digraph azyklisch ist. Aufgabe 4.4 (Eulersche Graphen) Zeigen Sie, dass ein ungerichteter, zusammenhängender Graph G = (V , E) mit |V | ≥ 3 genau dann Eulersch ist, wenn jede Kante in E auf einer ungeraden Anzahl von Zyklen liegt. Aufgabe 4.5 (topologische Ordnung) Es sei G = (V , E) ein Digraph. Zeigen Sie, dass G genau dann eine topologische Ordnung besitzt, wenn G azyklisch ist.
5
Graphenalgorithmen
5.1
Kürzeste-Wege-Probleme
Wie wir gesehen haben, bestimmt die Breitensuche kürzeste Wege innerhalb eines Graphen, wobei die Weglänge durch die Anzahl der durchlaufenen Kanten gegeben ist. In diesem Abschnitt werden wir Algorithmen zur Bestimmung kürzester Wege im Hinblick auf allgemeine Kantengewichte betrachten. Definition 5.1 Sei G = (V , E) ein Graph. Eine Gewichtsfunktion für die Kanten von G ist eine Abbildung ω : E → R. Ist π = (v0 , v1 , . . . , vr ) ein Weg in G, so heißt der Wert ω(π ) :=
r −1
ω(vi , vi+1 )
i=0
die Weglänge π bezüglich ω. Das Tripel G = (V , E, ω) heißt gewichteter Graph. Man beachte, daß gewichtete Graphen gerichtet oder ungerichtet sein können. Mit Hilfe der formalen Definition der Weglänge in einem gewichteten Graphen, können wir nun auch kürzeste Wege formal definieren.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_5
75
76
5
Graphenalgorithmen
Definition 5.2 Sei G = (V , E, ω) ein gewichteter Graph und v, w ∈ V . Ein kürzester Weg von v nach w in G bezüglich ω ist ein v-w-Weg π mit der Eigenschaft ω(π ) ≤ ω(π ) für jeden weiteren v-w-Weg π . Die kürzeste Weglänge δ(v, w) von v nach w ist definiert durch δ(v, w) :=
min{ω(π ) : π ist v-w-Weg}, falls ein solcher Weg existiert, ∞, sonst.
Beispiel 5.3 Gegeben sei der gewichtete Graph G = (V , E, ω):
Ein kürzester Weg von v3 nach v1 ist π = (v3 , v2 , v1 ). Seine Weglänge ist ω(π ) = 2 + 3 = 5 und er ist kürzer als ω(v3 , v1 ) = 6. Zum Knoten v5 gibt es von v3 zwei kürzeste Wege, nämlich π1 = (v3 , v4 , v5 ) und π2 = (v3 , v2 , v5 ) mit ω(π1 ) = ω(π2 ) = δ(v3 , v5 ) = 7. Im Folgenden betrachten wir ohne Beschränkung der Allgemeinheit nur Digraphen, da ungerichtete Graphen sich stets als Digraphen auffassen lassen. Man unterscheidet verschiedene Varianten des Kürzeste-Wege-Problems. Vorgelegt sei dazu stets ein gewichteter Digraph G = (V , E, ω). • Einzelpaar-kürzeste-Wege-Problem (single pair shortest path problem): Für ein Knotenpaar v, w ∈ V ist ein kürzester v-w-Weg gesucht. • Einzelquelle-kürzeste-Wege-Problem (single source shortest path problem): Für einen Knoten v ∈ V sind die kürzesten Wege zu allen erreichbaren Knoten w ∈ post (v) gesucht. • Alle-Paare-kürzeste-Wege-Problem (all pair shortest path problem): Für jedes Knotenpaar v, w ∈ V ist ein kürzester v-w-Weg gesucht. Natürlich kann das erste Problem durch das zweite gelöst werden. Es ist auch kein asymptotisch besseres Verfahren bekannt. Aus diesem Grund werden wir gleich dieses allgemeine Problem betrachten. Negative Gewichte sind gemäß Definition 5.1 zugelassen. Problematisch sind jedoch Zyklen mit negativer Weglänge, wie folgendes Beispiel zeigt:
5.1 Kürzeste-Wege-Probleme
77
Beispiel 5.4 Gegeben sei der gewichtete Digraph G = (V , E, ω):
In diesem Graphen gibt es keine kürzesten Wege, denn es ist ω(v, w, x) = −2, ω(v, w, x, v, w, x) = −3, ω(v, w, x, v, w, x, v, w, x) = −4, .. . Bemerkung 5.5 Im Kontext ungerichteter, gewichteter, zusammenhängender Graphen ist man häufig an einem minimalen Spannbaum interessiert. Dies ist ein Spannbaum, vergleiche dazu Bemerkung 4.25, mit minimaler Summe der Kantengewichte. Zwei bekannte Algorithmen zur Berechnung minimaler Spannbäume sind die Algorithmen von Kruskal und Prim, siehe zum Beispiel [KV12].
Lemma 5.6 Sei G = (V , E, ω) ein gewichteter Digraph. Falls es in G keine Zyklen mit negativer Weglänge gibt, dann gibt es für jedes Knotenpaar v, w ∈ V mit w ∈ post (v) einen kürzesten Weg π mit δ(v, w) = ω(π ) > −∞.
Beweis Da es keine negativen Zyklen gibt, genügt es, alle einfachen Wege von v nach w zu betrachten. Weil |V | und |E| endlich sind, sind dies nur endlich viele, woraus die Behauptung folgt.
Lemma 5.7 Sei G = (V , E, ω) ein gewichteter Digraph ohne negative Zyklen. Ist π = (v0 , v1 , . . . , vr −1 , vr ) ein kürzester Weg von v0 nach vr , dann ist für alle 0 ≤ i < j ≤ r der Teilweg πi, j = (vi , vi+1 , . . . , v j ) von π ein kürzester Weg von vi nach v j .
78
5
Graphenalgorithmen
Beweis Angenommen, es existiert ein kürzester Weg πi, j von vi nach v j mit ω(πi, j ) < ω(πi, j ). Dann erfüllt der zusammengesetzte Weg π = (π1,i , πi, j , π j,r ) die Abschätzung ω(π ) = ω(π1,i ) + ω(πi, j ) + ω(π j,r ) < ω(π1,i ) + ω(πi, j ) + ω(π j,r ) = ω(π ). Dies ist ein Widerspruch zur Voraussetzung, dass π ein kürzester Weg von v0 nach vr ist.
Korollar 5.8 Seien G = (V , E, ω) ein gewichteter Digraph ohne negative Zyklen und π = (v0 , v1 , . . . , vr ) ein kürzester Weg von v0 nach vr . Dann gilt δ(v0 , vr ) = δ(v0 , vr −1 ) + ω(vr −1 , vr ).
Beweis Gemäß Lemma 5.7 ist π = (v0 , v1 , . . . , vr −1 ) ein kürzester Weg von v0 nach vr −1 , das heißt ω(π ) = δ(v0 , vr −1 ). Hieraus folgt sofort δ(v0 , vr ) = ω(π ) = ω(π ) + ω(vr −1 , vr ). Basierend auf diesem Korollar löst der nachfolgende Algorithmus das Einzelquellekürzeste-Wege-Problem im Fall nichtnegativer Gewichte: Algorithmus 5.9 (Dijkstra) input: gewichteter Digraph G = (V , E, ω) mit nichtnegativen Gewichten und Startknoten s ∈ V output: kürzeste Wege von s zu allen v ∈ post (v) samt Weglänge (v):=δ(s, v) Initialisierung: (s) := 0 und (v) := ∞ für alle v ∈ V \ {s}, R := ∅ finde u ∈ V \ R mit (u) = minv∈V \R (v) setze R := R ∪ {u} für alle v ∈ V \ R mit (u, v) ∈ E falls (v) > (u) + ω(u, v) setze (v) := (u) + ω(u, v) und p(v) := u ➄ falls R = V gehe nach ➁ ➀ ➁ ➂ ➃
5.1 Kürzeste-Wege-Probleme
79
Bemerkung 5.10 Über die Funktion p : V → V lassen sich die kürzesten Wege rekonstruieren, weil jedem Knoten v ∈ V via p(v) der Vorgänger im kürzesten s-v-Weg zugeordnet ist. Beispiel 5.11 Gegeben sei der gewichtete Digraph G = (V , E, ω):
Ausgehend vom Startknoten v3 ist die Arbeitsweise dieses Algorithmus wie folgt: Iteration 0 1 2 3 4 5
v1 ∞ 6 5 5 – –
v2 ∞ 2 – – – –
v3 0 – – – – –
v4 ∞ 4 4 – – –
v5 ∞ ∞ 7 7 7 –
v6 ∞ ∞ ∞ ∞ ∞ 7
u v3 v2 v4 v1 v5 v6
(u) 0 2 4 5 7 7
p(u) – v3 v3 v2 v4 v5
Nach der Initialisierung in ➀ ist (v) = ∞, außer im Fall des Startknotens s = v3 mit (v3 ) = 0. Die erste Iteration des Dijkstra-Algorithmus startet in ➁ mit u := v3 und es wird R := {v3 } in ➂ gesetzt. In ➃ werden die unmittelbaren Nachbarn von u = v3 erreicht und es folgt (v1 ) = 6, (v2 ) = 2 und (v4 ) = 4. Die Knoten v5 und v6 werden nicht erreicht, weshalb immer noch (v5 ) = (v6 ) = ∞ gilt. Da R = V gilt, startet die zweite Iteration des Dijkstra-Algorithmus in ➁. Es wird u := v2 gesetzt und R := {v2 , v3 }. Von u = v2 können in ➃ aus der Menge V \ R = {v1 , v4 , v5 , v6 } die Knoten v1 , v4 und v5 unmittelbar erreicht werden. Es verbessert sich (v1 ) := 4, da der Weg (v3 , v2 , v1 ) kürzer ist als der direkte Weg (v3 , v1 ). Auch wird v4 von v2 erreicht, so daß (v4 ) = (v2 ) + ω(v2 , v4 ) = 7 gesetzt wird. Alle anderen Werte von verändern sich nicht. In ➄ gilt immer noch R = V und wir beginnen mit der dritten Iteration des Dijkstra-Algorithmus in ➁ und so fort, wie in der obigen Tabelle en détail ausgeführt ist.
Satz 5.12 (Dijkstra) Der Algorithmus 5.9 von Dijkstra arbeitet korrekt, wobei seine Laufzeit O(n 2 ) mit n = |V | ist.
80
5
Graphenalgorithmen
Beweis Der Übersichtlichkeit halber schreiben wir den Iterationsindex als Suffix an alle Variablen des Dijkstra-Algorithmus. Wir beweisen, dass folgende Aussagen bei jeder Ausführung von ➁ gelten: a) Für alle v ∈ R (k) und alle y ∈ V \ R (k) gilt (k) (v) ≤ (k) (y). b) Für alle v ∈ R (k) ist (k) (v) die kürzeste Weglänge von s nach v. Ist (k) (v) < ∞ und v = s, dann existiert ein kürzester Weg von s nach v mit Knoten aus R (k) (k) und letzter Kante p (v), v . c) Für alle v ∈ V \ R (k) ist (k) (v) die kürzeste Weglänge von s nach v im aus den Knoten R (k) ∪ {v} bestehenden Teilgraphen von G. Ist (k) (v) < ∞, dann ist p (k) (v) ∈ R (k) und (k) (v) = (k) p (k) (v) + ω p (k) (v), v . Da diese Aussagen für k = 0 gelten, also nach Ausführung von ➀, zeigen wir, dass ➂ und ➃ die Aussagen erhalten, das heißt, wir zeigen den Induktionsschritt k → k + 1. Dazu sei k ≥ 0 beliebig und u der in ➁ ausgewählte Knoten. Für beliebige v ∈ R (k) und y ∈ V \ R (k) gilt wegen (a) (k+1) (v) = (k) (v) ≤ (k) (u) =
min
x∈V \R (k)
(k) (x) ≤ (k+1) (y).
Folglich gilt Aussage a) auch nach ➂ und ➃, da R (k+1) = R (k) ∪ {u} ist. Um zu zeigen, dass Aussage b) nach ➃ gilt, müssen wir nur den Knoten u betrachten. Weil Aussage c) für k gilt, genügt es nachzuweisen, dass in G kein Weg π von s nach u existiert mit einem Knoten y ∈ V \ R (k+1) und ω(π ) < (k) (u) = (k+1) (u). Angenommen, es gibt einen solchen Weg π , etwa π = (s, v1 , . . . , vr , y , vr +1 , . . . , vr +m , u). ∈R (k)
∈R / (k)
Da Aussage c) für k gilt, ist (k) (y) = ω(s, v1 , . . . , vr , y), und es folgt wegen der Nichtnegativität der Gewichte ω(s, v1 , . . . , vr , y) ≤ ω(π ) < (k) (u). Dies bedeutet (k) (y) < (k) (u), was (k) (u) = min x∈V \R (k) (k) (x) widerspricht. Nun zeigen wir, dass ➂ und ➃ auch Aussage c) erhalten. Falls für ein v ∈ V \ R (k+1) in ➃ p (k+1) (v) := u, (k+1) (v) := (k+1) (u) + ω(u, v) gesetzt wird, muss ein s-v-Weg existieren im von den Knoten R (k+1) ∪ {v} aufgespannten Teilgraphen G (v) von G. Dieser Weg besitzt die Länge (k+1) (u)+ω(u, v) und die letzte Kante (u, v).
5.1 Kürzeste-Wege-Probleme
81
Angenommen, es existiert ein v ∈ V \ R (k+1) und ein Weg π von s nach v in mit ω(π ) < (k+1) (v). Der Knoten u muss in π enthalten sein, da nur u zu (k+1) hinzugefügt worden ist und sich sonst ein Widerspruch zur Aussage c) vor R Ausführung von ➂ und ➃ ergäbe, denn (k+1) (v) ist höchstens kleiner als (k) (v) geworden. Bezeichne x den Vorgänger von v in π . Wegen x ∈ R (k) ⊂ R (k+1) folgt aus Aussage a) G (v)
(k+1) (x) ≤ (k+1) (u) und aus ➃ (k+1) (v) ≤ (k+1) (x) + ω(x, v) ≤ (k+1) (u) + ω(x, v) ≤ ω(π ). Hierin gilt die letzte Ungleichung, weil π den Knoten u und die Kante (x, v) enthält. Die Ungleichung (k+1) (v) ≤ ω(π ) widerspricht jedoch unserer Annahme. Wir folgern, dass in jedem Iterationsschritt k die Aussagen a), b) und c) gelten, insbesondere gilt Aussagen b) bei Abbruch des Algorithmus, das heißt, der Algorithmus arbeitet korrekt. Schließlich ist die Aufwandsabschätzung offensichtlich: Es werden n = |V | Iterationen ausgeführt, welche jeweils einen Aufwand O(n) haben. Bemerkung 5.13 Mit Hilfe sogenannter Fibonacci-Heaps lässt sich die Knotenmenge V in Form einer Vorrangwarteschlange organisieren. In diesem Fall reduziert sich der Aufwand des Algorithmus von Dijkstra auf O(m + n log n), wobei m = |E| und n = |V | gilt. Der geneigte Leser findet Details hierzu in [FT87]. Wenn der vorliegende Graph negative Gewichte besitzt, allerdings keine negativen Zyklen hat, muss ein im Vergleich zum Dijkstra-Algorithmus teurerer Algorithmus verwendet werden, nämlich der Algorithmus von Moore, Bellman und Ford. Dieser ist der schnellste, bisher bekannte Algorithmus für das betrachtete Problem. Algorithmus 5.14 (Moore-Bellman-Ford) input: gewichteter Digraph G = (V , E, ω) ohne negative Zyklen und Startknoten s ∈ V output: kürzeste Wege von s zu allen v ∈ V samt Weglänge (v) := δ(s, v) ➀ Initialisierung: (s) := 0 und (v) := ∞ für alle v ∈ V \ {s} ➁ für k = 1, 2, . . . , n − 1 für alle (u, v) ∈ E falls (v) > (u) + ω(u, v) setze (v) := (u) + ω(u, v) und p(v) := u
82
5
Graphenalgorithmen
Satz 5.15 (Moore-Bellman-Ford) Der Algorithmus 5.14 von Moore, Bellman und Ford arbeitet korrekt, wobei seine Laufzeit O(m · n) ist mit m = |E| und n = |V |.
Beweis Zu jedem Zeitpunkt des Algorithmus bezeichne R := {v ∈ V : (v) < ∞},
F := {(u, v) ∈ E : u = p(v)}.
Wir zeigen zunächst, dass stets folgende drei Aussagen gelten: a) Es ist (v) ≥ (u) + ω(u, v) für alle (u, v) ∈ F, b) der Graph (R, F) ist azyklisch und c) der Graph (R, F) ist ein gerichteter Baum mit Wurzel s, das heißt, jeder Knoten v ∈ R ist von s aus über genau einen Weg erreichbar. Wenn p(v) := u in ➁ gesetzt wird, dann gilt gerade (v) = (u) + ω(u, v). Da (u) danach höchstens verkleinert wird, folgt Aussage a). Um Aussage b) zu zeigen, nehmen wir an, dass zu einem Zeitpunkt ein Zyklus π = (v0 , v1 , . . . , vr −1 , vr ), v0 = vr entsteht durch Setzen von p(vr ) := vr −1 . Dann galt aber zuvor (v0 ) = (vr ) > (vr −1 ) + ω(vr −1 , vr ) und gemäß Aussage a) (vi ) ≥ (vi−1 ) + ω(vi−1 , vi ), i ∈ {1, 2, . . . , r − 1}. Aufsummieren ergibt r
ω(vi−1 , vi ) =
i=1
r −1
ω(vi−1 , vi )
i=1 ≤(v )−(v ) i i−1
i, 0j0 +1 + j00+1,k ist.
5.2
Netzwerkflussprobleme
Netzwerke und Flüsse in Netzwerken sind Konzepte der Graphentheorie, welche vielfältige Anwendungen finden. Wir wollen diese Begriffe und die zugehörigen Fragestellungen zunächst anhand eines typischen Beispiels motivieren. Beispiel 5.18 Über ein Netzwerk, bestehend aus den Knoten A1 , A2 , . . . , A p und B1 , B2 , . . . , Bq , sollen Daten versendet werden. Die Bandbreite für die Kommunikation mit den Knoten A1 , A2 , . . . , A p ist dabei auf r1 , r2 , . . . , r p Gbit/s beschränkt und diejenige mit den Knoten B1 , B2 , . . . , Bq auf d1 , d2 , . . . , dq Gbit/s. Für die Kommunikation der Knoten untereinander beträgt die maximale Bandbreite c(Ai , B j ) Gbit/s.
5.2 Netzwerkflussprobleme
85
Abb. 5.1 Netzwerk mit zugehörigen Kapazitäten
Es stellen sich die folgenden Fragen: • Ist es möglich, alle Bandbreiten vollständig auszuschöpfen? • Falls nein, was ist die maximal erreichbare Bandbreite? • Wie sollten die Daten geroutet werden? Zur Beantwortung dieser Fragen konstruieren wir einen gerichteten Graphen G = (V , E) mit V = {A1 , A2 , . . . , A p , B1 , B2 , . . . , Bq }, E = {(Ai , B j ) : 1 ≤ i ≤ p, 1 ≤ j ≤ q}. Der Kante (Ai , B j ) ordnen wir die Kapazität c(Ai , B j ) zu. Um die Bandbreiten der Knoten Ai beziehungsweise B j zu modellieren, führen wir zwei weitere Knoten s und t und Kanten (s, Ai ) beziehungsweise (B j , t) mit Kapazität ri beziehungsweise d j ein. Treffen wir die Übereinkunft, dass wir alle Kanten mit Kapazität Null nicht einzeichnen, könnte der Graph im Fall p = 5 und r = 6 etwa aussehen wie in Abb. 5.1.
86
5
Graphenalgorithmen
Definition 5.19 Ein Netzwerk ist ein Tupel N = (V , E, c, s, t), bestehend aus einem Digraphen G = (V , E), einer Kapazitätsfunktion c : E → [0, ∞), einer Quelle s ∈ V mit pre(s) = ∅ und einer Senke t ∈ V mit post(t) = ∅. Ein Fluss in diesem Netzwerk ist eine Funktion f : E → [0, ∞), welche folgende zwei Bedingungen erfüllt: 1. Kapazitätsbedingung: f (v, w) ≤ c(v, w) für alle (v, w) ∈ E,
2. Kirchhoffsches Gesetz: u∈pre(v)
f (u, v) =
f (v, w) für alle v ∈ V \ {s, t}.
w∈post(v)
Der Wert des Flusses ist schließlich definiert als flow( f ) := f (s, w). w∈post(s)
Bemerkung 5.20 Das Kirchhoffsches Gesetz entspricht in der Physik der Knotenregel für elektrische Schaltkreise. Diese besagt, dass für jeden Knoten die Summe der zufließenden Ströme gleich der Summe der abfließenden Ströme sein muss. Kurzum, die Summe aller Ströme in einem Knoten ist Null. Zur Beantwortung der in Beispiel 5.18 aufgeworfenen drei Fragen wollen wir folgende Aufgabenstellung lösen: Was ist der maximale Fluss von s nach t in G und wie sieht dieser aus? Definition 5.21 Der maximale Fluss im Netzwerk N = (V , E, c, s, t) ist gegeben durch MaxFlow(N ) := max{flow( f ) : f ist Fluss für N }. Eine Flussfunktion f für N wird optimal genannt, falls flow( f ) = MaxFlow(N ).
5.2 Netzwerkflussprobleme
87
Wie wir im Folgenden zeigen werden, gibt es einen fundamentalen Zusammenhang zwischen dem maximalen Fluss und der Kapazität von Schnitten. Definition 5.22 Ein Schnitt für das Netzwerk N = (V , E, c, s, t) ist eine Knotenmenge S ⊂ V mit s ∈ S und t ∈ / S. Die Kapazität eines Schnitts ist gegeben durch c(v, w). cap(S) := v∈S w∈post(v)\S
Die minimale Schnittkapazität von N ist MinCut(N ) := min{cap(S) : S ist Schnitt für N }. Ein Schnitt bezeichnet demnach eine (echte) Teilmenge der Knotenmenge des Graphen (V , E), wobei der Knoten s in dieser Teilmenge enthalten sein muss, der Knoten t aber nicht enthalten sein darf. Die Kapazität eines Schnitts ist die Summe der Kapazitäten der von S nach V \ S verlaufenden Kanten. Lemma 5.23 Sei S ein Schnitt für das Netzwerk N = (V , E, c, s, t). Dann gelten für jeden Fluss f die Aussagen 1.
flow( f ) =
v∈S w∈post(v)\S
2.
f (v, w) −
f (u, v),
v∈S u∈pre(v)\S
flow( f ) ≤ cap(S).
Beweis Die erste Aussage folgt aus dem Kirchhoffschen Gesetz: flow( f ) =
f (s, w)
w∈post(s)
=
v∈S
=
w∈post(v)
w∈pre(v)
f (v, w) −
v∈S w∈post(v)\S
+
f (u, v)
v∈S u∈pre(v)\S
v∈S w∈post(v)∩S
f (u, v)
f (v, w) −
f (v, w) −
=0
v∈S u∈pre(v)∩S
f (u, v) .
88
5
Graphenalgorithmen
Weil 0 ≤ f (e) ≤ c(e) ist für alle e ∈ E, folgt hieraus mit Hilfe der ersten Aussage flow( f ) ≤
v∈S w∈post(v)\S
f (v, w) ≤
c(v, w) = cap(S),
v∈S w∈post(v)\S
das ist die zweite Aussage.
Wir sind nun in der Lage, das berühmte Max-Flow-Min-Cut-Theorem zu beweisen, welches den entscheidenden Baustein zur Bestimmung des maximalen Flusses in einem Netzwerk darstellt. Satz 5.24 (Max-Flow-Min-Cut-Theorem) Ist N = (V , E, c, s, t) ein Netzwerk, so gilt MinCut(N ) = MaxFlow(N ).
Beweis Aus der zweiten Aussage aus Lemma 5.23 folgt unmittelbar MaxFlow(N ) ≤ MinCut(N ). Daher genügt es zu zeigen, dass ein Schnitt S existiert mit MaxFlow(N ) = cap(S). Hierzu geben wir einen Algorithmus an, der für einen gegebenen Fluss f mit flow( f ) = MaxFlow(N ) einen Schnitt S mit cap(S) = flow( f ) konstruiert. Wir beginnen mit S = {s} und erweitern S sukzessive um Knoten y ∈ V \ S, so dass die Behauptung erfüllbar bleibt: ➀ Initialisierung S := {s} ➁ solange x ∈ S und y ∈ V \ S existieren mit c(x, y) > f (x, y), falls (x, y) ∈ E, f (y, x) > 0, falls (y, x) ∈ E, setze S := S ∪ {y}. Wir zeigen zunächst, dass S stets ein Schnitt für N ist, das heißt, es gilt stets t∈ / S. Angenommen, es gilt vr = t ∈ S, dann gibt es einen Knoten vr −1 ∈ S, so dass c(vr −1 , vr ) > f (vr −1 , vr ) oder f (vr , vr −1 ) > 0 gilt. Ebenso existiert ein Knoten
5.2 Netzwerkflussprobleme
89
vr −2 ∈ S, der dazu geführt hat, dass vr −1 ∈ S gilt, und so weiter. Folglich existiert ein ungerichteter Weg π = (v0 , v1 , . . . , vr ), vi ∈ S für alle i ∈ {0, 1, . . . , r } mit v0 = s. Setzen wir für alle i ∈ {0, 1, . . . , r − 1} ⎧ ⎪ / E, falls e = (vi , vi+1 ) ∈ E und e−1 = (vi+1 , vi ) ∈ ⎨c(e) − f (e), −1 εi := f (e ), falls e = (vi , vi+1 ) ∈ / E und e−1 = (vi+1 , vi ) ∈ E, (5.1) ⎪ ⎩max{c(e) − f (e), f (e−1 )}, falls e = (v , v ) ∈ E und e−1 = (v , v ) ∈ E, i i+1 i+1 i
so folgt nach Konstruktion stets εi > 0. Wir definieren ε := min εi > 0
(5.2)
0≤i≤r
und führen einen Widerspruch herbei, indem wir nun einen Fluss f konstruieren mit flow( f ) = flow( f ) + ε. Hierzu definieren wir f für alle i = 0, 1, . . . , r − 1 wie folgt: f (e) := f (e) + ε,
falls e = (vi , vi+1 ) ∈ E und e−1 = (vi+1 , vi ) ∈ / E,
f (e−1 ) := f (e−1 ) − ε,
falls e = (vi , vi+1 ) ∈ / E und e−1 = (vi+1 , vi ) ∈ E.
Gelten e = (vi , vi+1 ) ∈ E und e−1 = (vi+1 , vi ) ∈ E, so erhöhen wir f (e) um ε, falls c(e) − f (e) > f (e−1 ) ist, ansonsten verringern wir f (e−1 ) um ε. Die Definitionen (5.1) und (5.2) stellen sicher, dass f die Kapazitätsbedingung nicht verletzt. Das Kirchhoffsche Gesetz bleibt beim Übergang f → f erhalten, da es nur folgende vier Möglichkeiten der Flussänderung pro Knoten vi gibt:
Also ist f ein Fluss. Weiter gilt aufgrund des Kirchhoffschen Gesetzes flow( f ) =
f (s, v) =
v∈post(s)
f (u, t)
u∈pre(t)
=
u∈pre(t)\{vr −1 }
f (u, t) + f (vr −1 , t) = flow( f ) + ε, = f (vr −1 ,t)+ε
90
5
Graphenalgorithmen
was ein Widerspruch zu flow( f ) = MaxFlow(N ) ist. Damit ist S ein Schnitt in N und gemäß Konstruktion gilt für alle x ∈ S und y ∈ V \ S, dass f (x, y) = c(x, y) beziehungsweise f (y, x) = 0 ist. Daraus folgt flow( f ) = cap(S). Nachfolgend führen wir einige der im Beweis des Max-Flow-Min-Cut-Theorems verwendeten Konzepte formal ein. Definition 5.25 Sei f ein Fluss für das Netzwerk N = (V , E, c, s, t). Eine Kante e = (x, y) ∈ E heißt Vorwärtskante, falls f (e) < c(e) ist. Eine Kante e = (x, y) mit e−1 = (y, x) ∈ E heißt Rückwärtskante, falls f (e−1 ) > 0 ist. Der Restgraph für f ist der gerichtete Graph G = (V , E ) mit E = {(x, y) ∈ V × V : (x, y) ist Vorwärts- oder Rückwärtskante}. Die Größen c(e)− f (e) beziehungsweise f (e−1 ) heißen Restkapazitäten. Ein augmentierender Weg ist schließlich ein s-t-Weg im Restgraphen.
Beispiel 5.26 Gegeben sei folgendes Netzwerk mit Fluss | Kapazitäten:
Der Restgraph ist
Hierbei sind Vorwärtskanten durch durchgezogene und Rückwärtskanten durch gestrichelte Pfeile markiert.
5.2 Netzwerkflussprobleme
91
Jeder nicht maximale Fluss in einem Netzwerk lässt sich mit Hilfe eines augmentierenden Wegs vergrößern. Wir erhalten folgenden Algorithmus: Algorithmus 5.27 (Ford-Fulkerson) input: Netzwerk N = (V , E, c, s, t) output: Fluss f mit flow(f ) = MaxFlow(N) ➀ Initialisierung: f (e) := 0 für alle e ∈ E ➁ suche einen augmentierenden Weg π von s nach t falls keiner existiert stop ➂ berechne ε gemäß (5.1) und (5.2) ➃ augmentiere f um ε und gehe nach ➁ Ein auf Ford und Fulkerson zurückgehendes Beispiel zeigt, dass der Algorithmus bei irrationalen Kapazitäten nicht immer terminiert, siehe [FF62]. Für ganzzahlige Kapazitäten terminiert der Algorithmus jedoch immer. Satz 5.28 (Ganzheitssatz) Sei N = (V , E, c, s, t) ein Netzwerk mit ganzzahligen Kapazitäten. Dann terminiert der Algorithmus 5.27 von Ford und Fulkerson nach maximal e∈E c(e) Augmentierungsschritten mit einem ganzzahligen, maximalen Fluss.
Beweis Da alle Kapazitäten ganzzahlig sind und wir mit f (e) = 0 für alle e ∈ E starten, ist flow( f ) während der Ausführung von Algorithmus 5.27 stets ganzzahlig. Da ein Augmentierungsschritt den Wert des Flusses mindestens um 1 erhöht, ergibt sich die Behauptung. Auch im Fall ganzzahliger Kapazitäten kann der Algorithmus von Ford und Fulkerson sehr viele Augmentierungsschritte benötigen:
92
5
Graphenalgorithmen
Beispiel 5.29 Wie betrachten das Netzwerk
Offensichtlich gilt MaxFlow(N ) = 2M. Starten wir mit dem Nullfluss und augmentieren stets entlang eines s-t-Wegs der Länge 3, so erhöht sich flow( f ) jeweils nur um ε = 1. Folglich werden 2M Schritte benötigt. Dieses Beispiel verdeutlicht, dass bei willkürlicher Wahl des augmentierenden Wegs die Anzahl der Augmentierungsschritte sehr groß sein kann. Eine polynomielle Laufzeitbeschränkung des Algorithmus von Ford und Fulkerson kann durch die Wahl eines kürzesten augmentierenden Wegs erreicht werden. Hierbei bezieht sich die Länge des Wegs auf die Anzahl der durchlaufenen Kanten. Algorithmus 5.30 (Edmonds-Karp) input: Netzwerk N = (V , E, c, s, t) output: Fluss f mit flow(f ) = MaxFlow(N) ➀ Initialisierung: setze f (e) = 0 für alle e ∈ E ➁ suche einen kürzesten augmentierenden Weg π von s nach t falls keiner existiert stop ➂ berechne ε gemäß (5.1) und (5.2) ➃ augmentiere f um ε und gehe nach ➁
Bemerkung 5.31 Schritt ➁ kann nach Satz 4.29 durch eine Breitensuche im Restgraphen in linearem Aufwand realisiert werden. Beispiel 5.32 Wir illustrieren den Algorithmus von Edmonds und Karp anhand des folgenden, konkreten Beispiels.
5.2 Netzwerkflussprobleme
93
Um die Korrektheit des Algorithmus von Edmonds und Karp nachzuweisen, benötigen werden wir folgendes Lemma:
94
5
Graphenalgorithmen
Lemma 5.33 Sei ( f 0 , π0 ), ( f 1 , π1 ), ( f 2 , π2 ), . . . die von Algorithmus 5.30 erzeugte Folge von Flussfunktionen f i und zugehörigen kürzesten augmentierenden Wegen πi im Restgraphen von f i . Dann gelten die folgenden Aussagen: 1. Für alle i gilt |πi | ≤ |πi+1 |. 2. Kommt e = (v, w) in πi und e−1 = (w, v) in π j vor mit i < j, so gilt |πi | + 2 ≤ |π j |.
Beweis Es sei i (x, y) die Länge eines kürzesten x-y-Wegs im Restgraphen von f i . Insbesondere gilt also |πi | = i (s, t). Wir zeigen zuerst, dass für alle v ∈ V die Ungleichung i+1 (s, v) ≥ i (s, v)
(5.3)
erfüllt ist. Falls i+1 (s, v) = ∞, dann ist die Ungleichung trivialerweise erfüllt. Wir können also annehmen, dass v von s im Restgraphen von f i+1 erreichbar ist, das heißt i+1 (s, v) = r < ∞. Sei π = (s, v1 , v2 , . . . , vr ) ein kürzester Weg von s nach v = vr im Restgraphen von f i+1 . Wir zeigen, dass dann gilt i (s, v j+1 ) ≤ i (s, v j ) + 1, 1 ≤ j < r .
(5.4)
Falls (v j , v j+1 ) eine Kante im Restgraphen von f i ist, so ist dies offensichtlich. Ist (v j , v j+1 ) keine Kante im Restgraphen von f i , dann muss sich der Flusswert der inversen Kante (v j+1 , v j ) im Augmentierungsschritt f i → f i+1 verändert haben. Andernfalls könnte (v j , v j+1 ) im Restgraphen von f i+1 nicht vertreten sein. Folglich liegt die Kante (v j+1 , v j ) auf dem Weg πi . Da πi allerdings ein kürzester s-t-Weg ist und v j+1 unmittelbar vor v j in πi vorkommt, ergibt sich i (s, v j+1 ) = i (s, v j ) − 1, das heißt, es gilt ebenfalls (5.4). Aus (5.4) folgt nun (5.3), denn es ist i (s, v) = i (s, vr ) (5.4)
≤ i (s, vr −1 ) + 1
(5.4)
≤ i (s, vr −2 ) + 2 .. .
(5.4)
≤ i (s, v1 ) + r − 1
(5.4)
≤ i (s, s) + r = i+1 (s, v).
5.2 Netzwerkflussprobleme
95
Insbesondere liefert die Wahl v = t die erste Aussage des Lemmas. Analog zu (5.3) zeigt man, dass auch i+1 (v, t) ≥ i (v, t)
(5.5)
gilt für alle v ∈ V . Seien nun e = (v, w) eine Kante im Weg πi beziehungsweise e−1 = (w, v) eine Kante im Weg π j mit i < j, das heißt πi = (s, . . . , v, w, . . . , t), π j = (s, . . . , w, v, . . . , t). Da beide jeweils kürzeste Wege im entsprechenden Restgraphen sind, gelten die Aussagen a) |πi | = i (s, v) + i (v, t), b) |π j | = j (s, w) + 1 + j (v, t), c) i (s, w) = i (s, v) + 1, während (5.3) und (5.5) wegen i < j implizieren d) j (s, w) ≥ i (s, w), j (v, t) ≥ i (v, t). Die Kombination der Aussagen a) bis d) liefert schließlich auch die zweite Aussage des Lemmas gemäß b)
|π j | = j (s, w) + 1 + j (v, t) d)
≥ i (s, w) + 1 + i (v, t) c)
= i (s, v) + 2 + i (v, t) a)
= |πi | + 2.
Satz 5.34 (Edmonds-Karp) Unabhängig von den Kapazitäten terminiert Algorithmus 5.30 nach höchstens nm/2 Augmentierungsschritten, wobei n = |V | und m = |E| ist.
Beweis Sei ( f 0 , π0 ), ( f 1 , π1 ), ( f 2 , π2 ), . . . die von Algorithmus 5.30 erzeugte Folge von Flussfunktionen f i und zugehörigen kürzesten Wegen πi im Restgraphen von f i . In jedem Augmentierungsschritt wird mindestens eine Kante e = (v, w) des Wegs πi voll ausgeschöpft, das heißt, dass eine Flussveränderung um die Restkapazität stattfindet:
96
5
Graphenalgorithmen
• Ist e eine Vorwärtskante im Restgraphen von f i , so ist f i+1 (e) = c(e). • Ist e eine Rückwärtskante im Restgraphen von f i , so ist f i+1 (e−1 ) = 0. In keinem der beiden Fälle ist e eine Kante im Restgraphen von f i+1 . Bevor dieselbe Kante in einem späteren Augmentierungsschritt f k → f k+1 in πk vorkommt und wieder voll ausgeschöpft wird, muss die inverse Kante e−1 = (w, v) im Weg π j mit i < j < k vorgekommen sein. Aus Lemma 5.33 folgt |πi | ≤ |π j | − 2 ≤ |πk | − 4. Wird also e in den Wegen πi0 , πi1 , πi2 , . . . , πi voll ausgeschöpft, dann existiert eine Indexfolge j0 , j1 , . . . , j−1 derart, dass • i 0 < j0 < i 1 < j1 < . . . < i −1 < j−1 < i , • e−1 = (w, v) kommt in π j0 , π j1 , . . . , π j −1 vor, • 1 ≤ |πi0 | ≤ |π j0 | − 2 ≤ |πi1 | − 4 ≤ |π j1 | − 6 ≤ . . . ≤ |πi | − 4. Da kürzeste Wege stets einfach sind, ist πik stets ein einfacher Weg im Restgraphen von f ik und es folgt |πi | < n. Hieraus schließen wir jedoch, dass jede Kante e ∈ E ∪ E −1 höchstens n/4-mal voll ausgeschöpft werden kann, das heißt, es ist < n/4. Da nur |E ∪ E −1 | ≤ 2|E| Kanten vorhanden sind, werden maximal 2m ·
n m·n = 4 2
Augmentierungsschritte durchgeführt.
Bemerkung 5.35 Wir haben soeben die Existenz einer Lösung des Netzwerkflussproblems im Fall reeller Kapazitäten gezeigt!
Korollar 5.36 Der Aufwand des Algorithmus 5.30 von Edmonds und Karp ist O(m 2 n), wobei n = |V | und m = |E|.
Beweis Gemäß Satz 5.34 benötigen wir höchstens mn/2 Augmentierungsschritte. Weil hierzu jeweils eine Breitensuche benötigt wird, die den Aufwand O(m) besitzt, ergibt sich das Behauptete.
5.3 Bipartites Matching
5.3
97
Bipartites Matching
Wir wollen uns in diesem Abschnitt mit der Lösung eines spezielles Matchingproblems befassen, das in der Literatur als Heiratsproblem bekannt ist. Ein Matchingproblem liegt immer dann vor, wenn man irgendwelche Objekte in eindeutiger Weise irgendwelchen anderen Objekten zuordnen möchte, wobei nur bestimmte Zuordnungen erlaubt sind. Definition 5.37 Sei G = (V , E) ein ungerichteter Graph. Ein Matching für G ist eine Teilmenge M ⊂ E, so dass für alle Kanten e = {v, w}, e = {x, y} ∈ M gilt e = e ⇒ {v, w} ∩ {x, y} = ∅. Dies bedeutet, dass jeder Knoten von G höchstens auf einer Kante von M liegt. Ein Matching M heißt maximal, wenn |M| ≥ |M | für alle Matchings M für G. Wir wollen uns im Folgenden darauf beschränken, ein maximales Matching in einem bipartiten Graphen zu suchen. Definition 5.38 Ein ungerichteter Graph G = (V , E) heißt bipartit oder zweigeteilt, falls zwei nichtleere Knotenmengen VL und V R existieren, so dass • VL ∪ V R = V und VL ∩ V R = ∅, • für jede Kante {v, w} ∈ E ist {v, w} ∩ VL = ∅, {v, w} ∩ V R = ∅. Die Mengen VL und V R heißen (Bi-) Partition. Viele Anwendungen führen auf die Bestimmung eines maximalen Matchings in einem bipartiten Graphen. Wir betrachten zur Veranschaulichung das eingangs erwähnte Heiratsproblem. Beispiel 5.39 (Heiratsproblem) Vier Personen VL = {A1 , A2 , A3 , A4 } haben unter vier anderen Personen V R = {B1 , B2 , B3 , B4 } diejenigen ausgewählt, die für sie als Partner in Frage kommen, und umgekehrt. Eine Partnervermittlung soll anhand dieser Information potentielle Paare bilden. Gesucht ist folglich eine Paarbildung, bei der nur Wunschpaare zulässig sind und die Zahl der vermittelten Paare maximal ist. Wir erhalten beispielsweise den Graphen
98
5
Graphenalgorithmen
wobei die Kanten für Wunschpaare stehen. Ein maximales Matching ist M = {A1 , B2 }, {A2 , B4 }, {A3 , B3 }, {A4 , B1 } . Wir können das Matchingproblem mit Hilfe uns bereits bekannter Algorithmen lösen, indem wir das Matchingproblem auf ein äquivalentes Flussproblem zurückführen. Dazu fassen wir den bipartiten, eigentlich ungerichteten Graphen G = (V , E) mit Partition V = VL ∪ V R als Digraphen auf, indem wir stillschweigend alle Kanten aus E von VL nach V R orientiert annehmen. Definition 5.40 Sei G = (V , E) ein bipartiter Graph mit der Partition V = VL ∪ V R . Wir definieren dann das zugehörige Netzwerk N G = (V , E , c, s, t) gemäß • • • •
s, t ∈ / V und s = t, V := V ∪ {s, t}, E := E ∪ {(s, v) : v ∈ VL } ∪ {(w, t) : w ∈ V R }, c(e) = 1 für alle e ∈ E .
Eine 0-1-Flussfunktion für N G ist eine Flussfunktion f für N G mit f (e) ∈ {0, 1} für alle e ∈ E .
Beispiel 5.41 Für das Heiratsproblem aus Beispiel 5.39 ist VL = {A1 , A2 , A3 , A4 } und V R = {B1 , B2 , B3 , B4 }. Das zugehörige Netzwerk N G ist gegeben durch:
5.3 Bipartites Matching
99
Satz 5.42 Sei G = (V , E) ein bipartiter Graph mit Partition V = VL ∪ V R , dann gilt: 1. Zu jedem Matching M gibt es eine 0-1-Flussfunktion f M für N G , so dass flow( f M ) = |M|. 2. Zu jeder 0-1-Flussfunktion f für N G gibt es ein Matching M f für G, so dass flow( f ) = |M f |.
Beweis Zum Beweis der ersten Aussage sei f M definiert gemäß f M (v, w) :=
f M (s, v) = f M (w, t) = 1, falls v ∈ VL , w ∈ V R , {v, w} ∈ M, 0, sonst.
Da aufgrund der Matchingbedingungen jeder Knoten auf höchstens einer Kante von E liegt, erfüllt f M das Kirchhoffsche Gesetz. Folglich ist f M eine 0-1-Flussfunktion, insbesondere gilt flow( f M ) = |M|. Zum Beweis der zweiten Aussage definieren wir M f := {v, w} ∈ E : f (v, w) = 1 . Das Kirchhoffsche Gesetz für f entspricht der Matchingeigenschaft von M f und offensichtlich ist flow( f ) = |M f |.
100
5
Graphenalgorithmen
Beispiel 5.43 Im Fall des Heiratsproblems aus Beispiel 5.39 wird das maximale Matching M = {A1 , B2 }, {A2 , B4 }, {A3 , B3 }, {A4 , B1 } durch die folgende 0-1-Flussfunktion f M beschrieben:
Hierin entsprechen dicke Pfeile f M (v, w) = 1, dünne Pfeile hingegen f M (v, w) = 0.
Korollar 5.44 Für G wie zuvor gilt MaxFlow(N G ) = max{|M| : M ist Matching für G}. Eine maximale 0-1-Flussfunktion für N G kann mit dem Algorithmus 5.27 von Ford und Fulkerson in der Laufzeit O(n · m) bestimmt werden, wobei n = |V | und m = |E| ist.
Beweis Die ersten Aussagen folgen sofort aus Satz 5.42. Die Behauptung hinsichtlich der Laufzeit ergibt sich aus der Tatsache, dass die Anzahl der Augmentierungsschritte beschränkt ist durch MaxFlow(N G ) und MaxFlow(N G ) ≤
v∈post(s)
c(s, v) =
v∈VL
c(s, v) = |VL | ≤ n. =1
Die Suche nach augmentierenden Wegen kann mit der Breitensuche erfolgen. Schließen wir den Fall isolierter Knoten aus, so gilt m ≥ n/2 und der Aufwand der Breitensuche ergibt sich zu O(m + n) = O(m). Damit folgt auch die Behauptung über die Laufzeit.
5.3 Bipartites Matching
101
Definition 5.45 Sei G = (V , E) ein bipartiter Graph mit Partition V = VL ∪ V R und |VL | ≤ |V R |. Ein Matching M heißt perfekt, falls |M| = |VL | gilt. Der nachfolgende Satz, eingegangen in die Fachliteratur als Heiratssatz von Hall und von Philip Hall im Jahr 1935 in [Hal35] bewiesen, gibt ein Kriterium für die Existenz eines perfekten Matchings an. Satz 5.46 (Heiratssatz von Hall) Sei G = (V , E) ein bipartiter Graph mit Partition V = VL ∪V R und |VL | ≤ |V R |. Dann existiert ein perfektes Matching genau dann, wenn | post(W )| ≥ |W | für alle W ⊂ VL . Hierbei setzen wir post(W ) :=
post(w).
w∈W
Beweis Ist das Matching M perfekt und W ⊂ VL , so enthält M für alle w ∈ W genau eine Kante {w, w M } ∈ E. Die Knoten w M liegen also in post(W ) und sind paarweise verschieden, dies bedeutet | post(W )| ≥ |W |. Folglich ist die Bedingung | post(W )| ≥ |W | notwendig. Um zu zeigen, dass die Bedingung | post(W )| ≥ |W | auch hinreichend ist, seien nun N G das zum Matchingproblem gehörige Netzwerk und f eine maximale 0-1Flussfunktion. Gilt flow( f ) = |VL |, so ist das entsprechende Matching gemäß Korollar 5.44 perfekt. Bezeichne S f die Menge aller von s erreichbaren Knoten im Restgraphen von f . Wegen t ∈ / S f und cap(S f ) =
v∈S f w∈post(v)\S f
c(v, w) =
v∈S f w∈post(v)\S f
f (v, w) −
w∈S f v∈pre(w)\S f
f (v, w) = flow( f ) =0
102
5
Graphenalgorithmen
ist S f ein Schnitt mit minimaler Schnittkapazität, vergleiche den Beweis des MaxFlow-Min-Cut-Theorems. Wir zeigen zunächst, dass post(VL ∩ S f ) ⊂ S f
(5.6)
gilt. Seien hierzu v ∈ S f ∩ VL beliebig und w ∈ post(v). Angenommen, (5.6) gilt nicht, dann ist w ∈ / S f . Folglich ist (v, w) keine Kante im Restgraphen von f . Die Kante (v, w) ist somit gesättigt, das heißt f (v, w) = 1. Da pre(v) = {s} ist, folgt aus dem Kirchhoffschen Gesetz, dass f (s, v) = 1 gilt. Damit ist auch (s, v) keine Kante im Restgraphen. Der Knoten v kann also im Restgraphen nur über eine Rückwärtskante von der Quelle s erreicht werden. Daher gibt es ein u ∈ post(v) ∩ S f mit f (v, u) = 1. Es gibt demnach zwei direkte Nachfolger von v mit f (v, w) = f (v, u) = 1. Dies widerspricht aber dem Kirchhoffschen Gesetz, da (s, v) die einzige zu v führende Kante ist. Damit gilt (5.6) und es folgt für alle Kanten (u, v) in N G mit u ∈ S f und v ∈ V \ S f , dass u = s oder v = t ist. Dies impliziert cap(S f ) =
c(u, v)
u∈S f =1 v∈post(u)\S f
= |{(s, v) ∈ E : v ∈ / S f }| + |{(v, t) ∈ E : v ∈ S f }| = |VL \ S f | + |S f ∩ V R |. Wegen post(VL ∩ S f ) ⊂ V R und (5.6) folgt post(VL ∩ S f ) ⊂ S f ∩ V R , woraus sich schließlich cap(S f ) ≥ |VL \ S f | + | post(VL ∩ S f )| ergibt. Nach Voraussetzung ist | post(W )| ≥ |W | für alle W ⊂ VL , insbesondere ist also auch | post(VL ∩ S f )| ≥ |VL ∩ S f |,
5.3 Bipartites Matching
103
und wir erhalten flow( f ) = cap(S f ) ≥ |VL \ S f | + | post(VL ∩ S f )| ≥ |VL \ S f | + |VL ∩ S f | = |VL |. Andererseits gilt offensichtlich auch flow( f ) ≤ |VL | und somit flow( f ) = |VL |. Beispiel 5.47 Beim Graphen
ist das Hallsche Kriterium erfüllt, denn A1 , A2 und A3 haben jeweils mindestens einen Nachfolger, {A1 , A2 }, {A2 , A3 } und {A1 , A3 } mindestens zwei Nachfolger und {A1 , A2 , A3 } drei Nachfolger. Für den Graphen
existiert hingegen kein perfektes Matching, da die Menge {A2 , A3 } nur einen Nachfolger besitzt. Der Heiratssatz von Hall liefert im Allgemeinen kein effizientes, algorithmisches Kriterium für die Existenz eines perfekten Matchings, da alle Teilmengen W ⊂ VL untersucht werden müssen. Allerdings ermöglicht er einen Nachweis in Graphen, in denen alle Knoten denselben Grad haben. Derartige Graphen heißen auch regulär. Satz 5.48 Sei G = (V , E) ein bipartiter Graph mit Partition V = VL ∪ V R und |VL | ≤ |V R |. Gilt | post(v)| = k > 0 für alle v ∈ V, so existiert ein perfektes Matching.
104
5
Graphenalgorithmen
Beweis Seien W ⊂ VL und E 1 := {v, w} ∈ E : v ∈ W , E 2 := {v, w} ∈ E : w ∈ post(W ) . Aus E 1 ⊂ E 2 folgt k|W | = |E 1 | ≤ |E 2 | = k| post(W )|, das heißt |W | ≤ | post(W )|. Satz 5.46 liefert dann die Behauptung.
Beispiel 5.49 Der Graph
erfüllt | post(v)| = 2 für alle Knoten v ∈ V . Hier ist M = {A1 , B3 }, {A2 , B1 }, {A3 , B2 } ein perfektes Matching.
Übungsaufgaben Aufgabe 5.1 (Dijkstra-Algorithmus) Gegeben sei der folgende, ungerichtete Graph:
Übungsaufgaben
105
Berechnen Sie mittels des Dijkstra-Algorithmus schrittweise die Abstände von a zu allen anderen Knoten. Wie lautet der kürzeste Weg von a nach ? Aufgabe 5.2 (Moore-Bellmann-Ford-Algorithmus) Berechnen Sie ausgehend vom Knoten s = 1 durch Anwendung des Algorithmus von Moore, Bellmann und Ford die kürzesten Wege zu allen anderen Knoten in folgendem Graphen:
Füllen Sie dazu eine Tabelle aus, in der zu jedem Knoten sein Vorgänger sowie die Distanz vom Startknoten verzeichnet sind. Aufgabe 5.3 (Edmonds-Karp-Algorithmus) Vorgelegt sei das folgende Flussnetzwerk, wobei die Zahlen die Kapazität der jeweiligen Kante angeben.
a) Bestimmen Sie für das obige Flussnetzwerk einen maximalen Fluss f mit Hilfe des Algorithmus von Edmonds und Karp. Dabei sollen zu jedem Schritt die augmentierenden Wege angegeben werden. b) Geben sie einen Schnitt minimaler Kapazität an. Aufgabe 5.4 (Kantenkonnektivität) Die Kantenkonnektivität eines ungerichteten, zusammenhängenden Graphen ist die minimale Anzahl an Kanten, die man entfernen muss, damit der Graph nicht mehr zusammenhängend ist. Zum Beispiel ist die
106
5
Graphenalgorithmen
Konnektivität eines Baums 1 und die Konnektivität eines einfachen Zyklus 2. Zeigen Sie, wie man die Berechnung der Konnektivität eines Graphen auf ein Flussproblem zurückführen kann. Aufgabe 5.5 (bipartite Graphen) Zeigen Sie, dass jeder ungerichtete Graph G = (V , E) einen bipartiten Teilgraphen H = (V , E ) enthält mit E ⊂ E und |E | ≥ |E|/2.
6
Vektoren und Matrizen
6.1
Grundbegriffe
In diesem Abschnitt wollen wir die grundlegenden Eigenschaften und Operationen für Vektoren und Matrizen wiederholen. Vektoren bestehen aus reellwertigen Koordinaten xi , i ∈ {1, 2, . . . , n}, welche wir als Spalte anordnen: ⎡ ⎤ x1 ⎢ x2 ⎥ ⎢ ⎥ x = ⎢ . ⎥ ∈ Rn . ⎣ .. ⎦ xn Dahingegen sind Matrizen rechteckige Zahlenschemata reeller Zahlen ai, j , i ∈ {1, 2, . . . , m}, j ∈ {1, 2, . . . , n}, welche wir in der Form ⎤ a1,1 a1,2 · · · a1,n ⎢ a2,1 a2,2 · · · a2,n ⎥ ⎥ ⎢ m×n A=⎢ . .. .. ⎥ ∈ R ⎣ .. . . ⎦ am,1 am,2 · · · am,n ⎡
schreiben. Offensichtlich können wir jeden Vektor x ∈ Rn mit einer Matrix x ∈ Rn×1 identifizieren. Somit übertragen sich alle Operationen für Matrizen in natürlicher Weise auch auf Vektoren. Die kanonische Basis im Rn besteht aus den Vektoren e1 , e2 , . . . , en ∈ Rn , welche [ei ] j = δi, j :=
1, falls i = j, 0, sonst,
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_6
107
108
6 Vektoren und Matrizen
erfüllen. Die Einheitsmatrix I im Rn×n ist definiert als I := [e1 , e2 , . . . , en ]. Für zwei Matrizen A, B ∈ Rm×n und zwei Skalare α, β ∈ R gilt ⎡ ⎤ ⎤ b1,1 b1,2 · · · b1,n a1,1 a1,2 · · · a1,n ⎢ b2,1 b2,2 · · · b2,n ⎥ ⎢ a2,1 a2,2 · · · a2,n ⎥ ⎢ ⎢ ⎥ ⎥ +β⎢ . αA + βB = α ⎢ . ⎥ . . .. .. ⎥ .. .. ⎦ ⎣ .. ⎣ .. . . ⎦ am,1 am,2 · · · am,n bm,1 bm,2 · · · bm,n ⎡ ⎤ αa1,1 + βb1,1 αa1,2 + βb1,2 · · · αa1,n + βb1,n ⎢ αa2,1 + βb2,1 αa2,2 + βb2,2 · · · αa2,n + βb2,n ⎥ ⎢ ⎥ =⎢ ⎥. .. .. .. ⎣ ⎦ . . . ⎡
αam,1 + βbm,1 αam,2 + βbm,2 · · · αam,n + βbm,n
Dies bedeutet, die Multiplikation mit Skalaren sowie die Addition erfolgen jeweils elementweise. Insbesondere bilden die (m × n)-Matrizen einen Vektorraum. Weiterhin können zwei Matrizen mit kompatibler Dimension miteinander multipliziert werden. Für A ∈ Rm×n und B ∈ Rn×k gilt ⎤ c1,1 c1,2 · · · c1,k ⎢ c2,1 c2,2 · · · c2,k ⎥ ⎥ ⎢ m×k A · B = AB = C = ⎢ . .. .. ⎥ ∈ R . ⎣ . . . ⎦ cm,1 cm,2 · · · cm,k ⎡
mit ci, j :=
n
ai, b, j .
=1
Definieren wir zu einer Matrix A ∈ Rm×n die transponierte Matrix gemäß ⎤ a1,1 a2,1 · · · am,1 ⎢a1,2 a2,2 · · · am,2 ⎥ ⎥ ⎢ n×m A := ⎢ . , .. .. ⎥ ∈ R ⎦ ⎣ .. . . a1,n a2,n · · · am,n ⎡
so führt demnach das Produkt ab zweier Vektoren a, b ∈ Rn auf eine Matrix ⎤ ⎡ ⎡ ⎤ a1 b1 a1 b2 · · · a1 bn a1 ⎥ ⎢ a2 ⎥
⎢ ⎢a2 b1 a2 b2 · · · a2 bn ⎥ ⎢ ⎥ ∈ Rn×n . ab = ⎢ . ⎥ b1 , b2 , . . . , bn = ⎢ . . . . .. . . .. ⎥ ⎦ ⎣ .. ⎣ .. ⎦ an an b1 an b2 · · · an bn
6.1 Grundbegriffe
109
Hingegen ist das Skalarprodukt a b dieser Vektoren ⎡ ⎤ b1 ⎢b2 ⎥
⎢ ⎥ a b = a1 , a2 , . . . , an ⎢ . ⎥ = a1 b1 + a2 b2 + . . . + an bn ⎣ .. ⎦ bn ein Skalar. Algorithmisch lässt sich die Matrixmultiplikation wie folgt umsetzen: Algorithmus 6.1 (Matrixmultiplikation) input: Matrizen A ∈ Rm×n , B ∈ Rn×k output: Matrix C ∈ Rm×k ➀ für i = 1, 2, . . . , m für j = 1, 2, . . . , k ci, j :=
n
ai, b, j .
=1
Offensichtlich beträgt der Aufwand der Matrixmultiplikation in dieser Form O(mkn) Additionen beziehungsweise Multiplikationen. Die drei Schleifen über i, j und in Algorithmus 6.1 lassen sich beliebig vertauschen, wodurch sich verschieden vektorisierte Versionen der Matrixmultiplikation ergeben. Bezeichnen wir im Folgenden für eine gegebene Matrix A mit ai,: deren i-te Zeile und mit a:, j deren j-te Spalte, so erhalten wir c:, j =
n =1
b, j a:, , ci,: =
n
ai, b,: und ci, j = ai,: b:, j .
=1
Darüber hinaus finden wir die Darstellung ⎤ b1,: n ⎥
⎢ ⎢b2,: ⎥ C = a:,1 , a:,2 , . . . , a:,n ⎢ . ⎥ = a:, b,: , ⎣ .. ⎦ ⎡
b:,n welche wir später wiederholt nutzen werden.
=1
(6.1)
110
6 Vektoren und Matrizen
Bemerkung 6.2 In Übungsaufgabe 6.1 werden wir sehen, dass diese naiven Implementierungen der Matrixmultiplikation hinsichtlich ihrer kubischen Komplexität nicht optimal sind. Zum Schluss dieses Abschnitts führen wir einige spezielle Matrizen ein, auf die wir später zurückgreifen werden. Definition 6.3 Eine Matrix Q ∈ Rn×n heißt orthogonal, falls Q Q = I gilt. Orthogonale Matrizen bestehen aus Orthonormalbasen des Rn . Speziell gilt der folgende Satz. Satz 6.4 Orthogonale Matrizen haben immer vollen Rang und es gilt QQ = Q Q = I, oder anders ausgedrückt, es ist Q = Q−1 .
Beweis Sei Q eine orthogonale Matrix und x ∈ Rn derart, dass Qx = 0 gilt. Dann folgt sofort 0 = Q 0 = Q (Qx) = (Q Q)x = Ix = x. Damit ist der Kern von Q trivial und Q besitzt vollen Rang. Daraus folgt, dass auch QQ vollen Rang besitzt und weiter QQ = (QQ )−1 (QQ )QQ = (QQ )−1 Q Q Q Q = I. =I
Besondere orthogonale Matrizen sind Permutationsmatrizen. Diese werden verwendet, um Zeilen- und Spaltenvertauschungen in einer Matrix mit Hilfe von Matrixprodukten darzustellen.
6.1 Grundbegriffe
111
Definition 6.5 Für 1 ≤ i < j ≤ n definieren wir die Transpositionsmatrix T {i, j} ∈ Rn×n gemäß
Eine Matrix P ∈ Rn×n heißt Permutationsmatrix, falls sie das Produkt von Transpositionsmatrizen ist, also falls P = T {i1 , j1 } T {i2 , j2 } · · · T {ik , jk } , k ≥ 1, gilt. Wir halten im nachfolgenden Satz die zentralen Eigenschaften von Transpositionsund Permutationsmatrizen fest. Speziell erfolgt der Nachweis, dass Permutationsmatrizen (und damit auch Transpositionsmatrizen) orthogonal sind. Satz 6.6 Sei T {i, j} ∈ Rn×n eine Transpositionsmatrix. Es gelten die folgenden Rechenregeln: 1. Bei der Multiplikation mit T {i, j} von links werden die Zeilen i und j vertauscht. 2. Bei der Multiplikation mit T {i, j} von rechts werden die Spalten i und j vertauscht.
112
6 Vektoren und Matrizen
2 3. Insbesondere gilt T {i, j} = T {i, j} und T {i, j} = I. Ist P ∈ Rn×n eine Permutationsmatrix, so gilt P P = I.
Beweis Die Eigenschaften der Transpositionsmatrix sind elementar nachzurechnen. Sei nun P = T {i1 , j1 } T {i2 , j2 } · · · T {ik , jk } eine Permutationsmatrix. Dann gilt P P = T {i1 , j1 } T {i2 , j2 } · · · T {ik , jk } T {i1 , j1 } T {i2 , j2 } · · · T {ik , jk } } {i 1 , j1 } {i 2 , j2 } = T {ik , jk } T {ik −1, jk −1} · · · T {i1 , j1 T · · · T {ik , jk } T
=T .. .
{i k , jk } {i k −1, jk −1}
T
· · · T
=I {i 2 , j2 } {i 2 , j2 }
T
=I
T
{i 3 , j3 }
· · · T {ik , jk }
= I.
6.2
Vektor- und Matrixnormen
Normen stellen verallgemeinerte Längen- und Abstandsbegriffe für Vektoren und Matrizen zur Verfügung. Später werden wir diese oftmals benötigen. Definition 6.7 Sei X = Rn oder X = Rm×n . Eine Abbildung · : X → [0, ∞) heißt Norm auf X , falls gilt 1. Definitheit: x > 0 für alle x ∈ X \ {0}, 2. Homogenität: αx = |α| · x für alle x ∈ X und α ∈ R, 3. Dreiecksungleichung: x + y ≤ x + y für alle x, y ∈ X .
Bemerkung 6.8 Wegen x = x − 0, kann x als Abstand von x zum Nullpunkt in X interpretiert werden. In der Tat besitzt dist(x, y) := x − y die Eigenschaften einer Distanz von zwei Elementen. Der Begriff Distanz ist allerdings allgemeiner, und nicht nur auf (normierte) Vektorräume beschränkt. Insofern sind Normen spezielle Distanzbegriffe.
6.2 Vektor- und Matrixnormen
113
Häufig verwendete Normen für Vektoren im Raum X = Rn sind die n • Betragssummennorm: x 1 := i=1 |x i |, √ n 2 • Euklid-Norm: x2 := i=1 |x i | = x · x, • Maximumsnorm: x∞ := max1≤i≤n |xi |. Dagegen sind für Matrizen im Raum X = Rm×n nachfolgende Normen sehr gebräuchlich: m |a i, j |, • Spaltensummennorm : A1 := max1≤ j≤n i=1 • Zeilensummennorm: A∞ := max1≤i≤m nj=1 |a i, j |, m n 2 • Frobenius-Norm: A F := i=1 j=1 a i, j = spur(A A). Beispiel 6.9 Für die Matrix
A=
1 −2 −3 2
gilt A1 = 4,
A∞ = 5,
√ A F = 3 2.
Normen in endlichdimensionalen Räumen haben eine besondere Eigenschaft, die im nächsten Satz beschrieben wird. Satz 6.10 Alle Normen auf Rn sind äquivalent, das heißt, für zwei Normen · a und · b auf Rn gibt es Konstanten 0 < c ≤ c mit cxa ≤ xb ≤ cxa für alle x ∈ Rn .
Beweis Es genügt, die Behauptung für ·a = ·∞ zu zeigen. Dazu seien x, y ∈ Rn beliebig und · bezeichne eine Norm im Rn . Wegen x−y=
n
(xi − yi )ei
i=1
folgt aus der Dreiecksungleichung n n x − y ≤ x − y ≤ |xi − yi |ei ≤ x − y∞ ei . i=1
i=1
114
6 Vektoren und Matrizen
n Folglich nist · : R → R eine Lipschitz-stetige Funktion mit Lipschitz-Konstante L := i=1 ei . Als solche nimmt · auf der kompakten Einheitssphäre
Sn−1 := {x ∈ Rn : x∞ = 1} sowohl ihr Minimum c als auch ihr Maximum c an. Wegen der ersten Normeigenschaft aus Definition 6.7 ist insbesondere c > 0. Daher folgt für beliebiges z ∈ Rn z ≤ c. c≤ z∞ Dies ist gleichbedeutend zu cz∞ ≤ z ≤ cz∞ . Beispiel 6.11 Für x ∈ Rn folgt aus max |xi |2 ≤
1≤i≤n
n
|xk |2 ≤ n · max |xi |2
k=1
sofort die Ungleichung x∞ ≤ x2 ≤
1≤i≤n
√ n · x∞ .
(6.2)
Bemerkung 6.12 Satz 6.10 gilt auch im Fall von Matrixnormen, also im Fall des Rm×n . Dass der Satz allerdings nur im Endlichdimensionalen gilt, sieht man sofort anhand von Beispiel 6.11: Die Konstante der oberen Schranke in (6.2) hängt von der Raumdimension ab und strebt gegen unendlich für n → ∞. Wie wir bereits gesehen haben, beinhaltet der Vektorraum Rn×n als weitere Operation noch die Multiplikation A · B zweier Matrizen A, B ∈ Rn×n . Definition 6.13 Eine Matrixnorm · M auf Rn×n heißt submultiplikativ, falls gilt A · B M ≤ A M · B M für alle A, B ∈ Rn×n . Sie heißt verträglich mit einer Vektornorm · V auf Rn , falls gilt A · xV ≤ A M · xV für alle A ∈ Rn×n und x ∈ Rn .
6.2 Vektor- und Matrixnormen
115
Beispiel 6.14 1. Die Gesamtnorm AG := n · max |ai, j | 1≤i, j≤n
n×n ist offensichtlich eine Matrixnorm
auf R . Sie ist aber nicht submultiplikativ, denn für die Matrix A = 11 11 gilt AG = 2, während aus A2 = 22 22 folgt, dass 2 A = 4 = 2 = A2 . G G
2. Mit der Cauchy-Schwarzschen Ungleichung folgt für die i-te Komponente [Ax]i des Vektors Ax die Abschätzung ⎛ [Ax]i2 = ⎝
n
⎞2
⎛
a i, j · x j ⎠ ≤ ⎝
j=1
n
⎞ ⎛ |a i, j |2 ⎠ · ⎝
j=1
n
⎞
⎛
|x j |2 ⎠ = ⎝
j=1
n
⎞ |a i, j |2 ⎠ · x22 .
j=1
Somit ist die Frobenius-Norm mit der Euklid-Norm verträglich: ⎛ ⎞ n n n ⎝ [Ax]i2 ≤ |ai, j |2 ⎠ ·x22 = A2F · x22 . Ax22 = i=1
i=1
j=1
=A2F
Definition 6.15 Sei · V eine Vektornorm auf Rn . Dann heißt AxV = max AxV xV =1 x =0 xV
|||A||| := sup die von · V induzierte Norm.
Bemerkung 6.16 Dass es sich bei der induzierten Norm tatsächlich um eine Norm handelt, lässt sich leicht nachprüfen und verbleibt dem geneigten Leser als Übungsaufgabe 6.2. Beispiel 6.17 Die Spaltensummennorm ist von der Betragssummennorm induziert, während die Zeilensummennorm von der Maximumsnorm induziert ist. Denn für die Spaltensummennorm gilt einerseits
116
6 Vektoren und Matrizen n n n n max Ax1 = max a i, j x j ≤ max |a i, j ||x j | x1 =1 x1 =1 x1 =1 i=1
= max
x1 =1
n
j=1
|x j |
j=1
n
i=1 j=1
|a i, j | ≤ max
n
x1 =1
i=1
|x j |
j=1
=1
max
1≤ j≤n
n
|a i, j | = A1 .
i=1
Umgekehrt sei 1 ≤ k ≤ n der Index der größten Spaltensumme. Dann ergibt sich A1 = max
1≤ j≤n
n i=1
|a i, j | =
n
|ai,k | = Aek 1 ≤ max Ax1 .
i=1
x1 =1
Mit einer ähnlichen Argumentation zeigt man schließlich die Aussage auch für die Zeilensummennorm.
Lemma 6.18 Die von einer Vektornorm · V auf Rn induzierte Norm ||| · ||| ist submultiplikativ und ist mit der Ausgangsnorm verträglich. Ist · M eine mit · V verträgliche Norm, so gilt |||A||| ≤ A M für alle A ∈ Rn×n .
(6.3)
Beweis Die Submultiplikativität der induzierten Norm folgt im Fall B = 0 sofort aus 0 = |||AB||| ≤ |||A||| · |||B||| = 0. Ist B = 0, so gilt ABxV BxV ABxV ABxV = sup = sup · BxV xV x =0 xV Bx =0 xV Bx =0
|||AB||| = sup
ABxV BxV AyV BxV · sup ≤ sup · sup Bx x y V V V Bx =0 Bx =0 y =0 x =0 xV
≤ sup
= |||A||| · |||B|||. Die Verträglichkeit der induzierten Norm sieht man folgendermaßen ein. Für ein beliebiges x ∈ Rn \{0} ergibt sich AyV AxV ≤ sup = |||A|||. xV y =0 yV Deshalb ist AxV ≤ |||A||| · xV
6.3 Dünnbesetzte Matrizen
117
für alle x ∈ Rn \{0}. Weil auch im Fall x = 0 0 = AxV ≤ |||A||| · xV = 0 =0
gilt, ist die Vektornorm · V mit der induzierten Norm ||| · ||| verträglich. Schließlich folgt die Ungleichung (6.3) aus AxV A M · xV ≤ sup = A M . xV x =0 xV x =0
|||A||| = sup
Bemerkung 6.19 Die Begriffe der Submultiplikativität und Verträglichkeit sowie die induzierte Norm (siehe Definitionen 6.13 und 6.15) können auch auf rechteckige Matrizen A ∈ Rm×n und B ∈ Rn×k beziehungsweise auf Matrix-Vektorpaare A ∈ Rm×n und x ∈ Rn erweitert werden. In diesem Fall müssen dann Vektornormen sowohl für den Rm als auch den Rn und gegebenenfalls auch für den Rk spezifiziert werden.
6.3
Dünnbesetzte Matrizen
In vielen Anwendungen treten dünnbesetzte Matrizen auf. Dies sind Matrizen A ∈ Rn×n , die nur sehr wenige nichtverschwindende Einträge besitzen. Solche Matrizen lassen sich effizient in komprimierter Darstellung abspeichern. Ein populäres Format hierfür ist Compressed Row Storage. Wir sprechen dann von einer Matrix im CRSFormat. Im CRS-Format wird die Matrix A mit Hilfe dreier Vektoren aw , az , as gespeichert. Der Vektor aw ∈ Rk enthält die zeilenweise aneinandergereihten Werte aller von Null verschiedenen Einträge von A. Wir setzen nnz(A) := k (‘nnz’ steht für den englischen Ausdruck number of non-zeros). Der Vektor az ∈ Rn+1 gibt an, an welcher Stelle eine neue Zeile beginnt. Ist die i-te Zeile der Matrix leer, so wird z z gesetzt. Außerdem gilt immer an+1 = k + 1. Schließlich gibt der Vektor aiz = ai+1 s k w a ∈ R zu jedem Eintrag in a die zugehörige Spalte an. Damit ergibt sich die folgende Beziehung zwischen den Einträgen ai, j von A und den Einträgen aw des Vektors aw : z , a w , falls as = j und a iz ≤ < a i+1 a i, j = 0, sonst. Der Speicheraufwand des CRS-Formats ist offenbar gegeben durch O nnz(A) + n . Ist nnz(A) sehr viel kleiner als n 2 , dann bedeutet dies eine erhebliche Speicherplatzersparnis im Vergleich zur üblichen Speicherung als vollbesetzte Matrix.
118
6 Vektoren und Matrizen
Wir wollen annehmen, dass die Spaltenindizes innerhalb einer Zeile immer aufs z für alle aiz ≤ < ai+1 und steigend sortiert sind, das bedeutet as < a+1 i ∈ {1, 2, . . . , n}. Eine derartige Sortierung der i-ten Zeile kann beispielsweise mit Hilfe des Mergesort-Algorithmus aus Abschn. 3.2 mit Aufwand O(m log m) z − a z die Anzahl der nichtverschwinbestimmt werden, wobei m = nnz(ai,: ) = ai+1 i denden Einträge in der i-ten Zeile bezeichne. Sind alle Zeilen wie beschrieben sortiert, so ist der Aufwand zur Auswertung eines bestimmten Eintrags a i, j von der Ordnung O(log m), sofern die binäre Suche aus Übungsaufgabe 3.3 benutzt wird. Im Vergleich zum Auswerten einer kompletten Zeile ist das Auswerten einer kompletten Spalte im CRS-Format kostspielig. Wird eine solche Auswertung häufig benötigt, kann die Matrix im CCS-Format (Compressed Column Storage) gespeichert werden. Dieses ist analog zum CRS-Format gegeben: Der Vektor aw ∈ Rk enthält die spaltenweise aneinandergereihten Werte aller von Null verschiedenen Einträge von A, der Vektor as ∈ Rn+1 gibt an, an welcher Stelle eine neue Spalte beginnt, und der Vektor az ∈ Rk gibt zu jedem Eintrag in aw die zugehörige Zeile an. Damit entspricht das CCS-Format für A dem CRS-Format für A . Beispiel 6.20 Sei
⎡
1 ⎢0 ⎢ ⎢0 A=⎢ ⎢0 ⎢ ⎣0 3
0 1 0 0 0 3
0 0 1 0 0 3
0 0 0 1 0 3
0 0 0 0 1 3
⎤ 7 2⎥ ⎥ 2⎥ ⎥ ∈ R6×6 . 2⎥ ⎥ 2⎦ 3
Die Matrix A besitzt im CRS-Format folgende Darstellung: aw as az
1 1 1 1
2 7 6 3
3 1 2 5
4 2 6 7
5 1 3 9
6 2 6 11
7 1 4 17
8 2 6
9 1 5
10 2 6
11 3 1
12 3 2
13 3 3
14 3 4
15 3 5
16 3 6
11 7 1
12 2 2
13 2 3
14 2 4
15 2 5
16 3 6
Die Darstellung im CCS-Format ist gegeben durch: aw az as
1 1 1 1
2 3 6 3
3 1 2 5
4 3 6 7
5 1 3 9
6 3 6 11
7 1 4 17
8 3 6
9 1 5
10 3 6
Die Addition zweier dünnbesetzter Matrizen A, B ∈ Rn×n erfolgt zeilenweise oder spaltenweise, je nachdem ob diese im CRS-Format oder CCS-Format vorliegen. Da die Zeilen beziehungsweise Spalten in geordneter Reihenfolge abgespeichert sind, kann man jeweils synchron durch die Zeilen beziehungsweise Spalten gehen und die Nichtnulleinträge herauslesen und gegebenenfalls addieren.
6.4 Implementierung von Graphen
119
Auch die Matrixmultiplikation kann effizient umgesetzt werden. Exemplarisch betrachten wir dazu das Matrixprodukt im CCS-Format. Dann verwendet man die erste Darstellung des Matrixprodukts aus (6.1), das heißt, man kombiniert die Spalten zur Berechnung von A · B, wie dies in Algorithmus 6.1 umgesetzt ist. Algorithmus 6.21 (Matrixmultiplikation im CCS-Format) input: Matrizen A, B ∈ Rn×n im CCS-Format output: Matrix C ∈ Rn×n im CCS-Format ➀ für j = 1, 2, . . . , n für bsj ≤ < bsj+1 c:, j := c:, j + bw a:,b z Die Kosten für Algorithmus 6.21 lassen sich einfach abschätzen, falls wir annehmen, dass die Anzahl der Einträge in jeder Spalte von A und B beschränkt sind. Gilt beispielsweise nnz(a:,i ) ≤ a und nnz(b:,i ) ≤ b für alle i ∈ {1, 2, . . . , n}, so ist die Anzahl Additionen und Multiplikationen jeweils beschränkt durch n
a · b = O(n · a · b).
j=1
6.4
Implementierung von Graphen
Bislang haben wir noch nicht erklärt, wie sich Graphen sinnvoll implementieren lassen. Das wollen wir an dieser Stelle nachholen. Die einfachste Art, Graphen im Computer zu speichern, ist die Verwendung von Adjazenzmatrizen. Definition 6.22 Der Graph G = (V , E) mit V = {1, 2, . . . , n} kann durch die Adjazenzmatrix oder Nachbarschaftsmatrix n n×n A = [a i, j ]i, j=1 ∈ R
mit a i, j dargestellt werden.
1, falls (i, j) ∈ E, = 0, sonst,
120
6 Vektoren und Matrizen
Beispiel 6.23 Der Digraph
besitzt die Adjazenzmatrix
⎡
0 ⎢0 ⎢ A=⎢ ⎢0 ⎣0 0
1 0 0 0 0
1 1 0 0 1
0 0 1 0 0
⎤ 0 0⎥ ⎥ 1⎥ ⎥. 0⎦ 0
(6.4)
Beim zugrundeliegenden ungerichteten Graphen gilt hingegen ⎡
0 ⎢1 ⎢ A=⎢ ⎢1 ⎣0 0
1 0 1 0 0
1 1 0 1 1
0 0 1 0 0
⎤ 0 0⎥ ⎥ 1⎥ ⎥. 0⎦ 0
Bemerkung 6.24 Bei ungerichteten Graphen ist die Adjazenzmatrix A stets symmetrisch, das heißt, es gilt a i, j = a j,i für alle 1 ≤ i, j ≤ n. Daher genügt es, nur die halbe Matrix zu speichern. Werden alle Einträge der Adjazenzmatrix abgespeichert, so besitzt sie immer den Speicherplatzbedarf |V |2 . Ist indessen die Anzahl der Kanten wesentlich kleiner als |V |2 , so lässt sich die Adjazenzmatrix sehr effizient in einem komprimierten Format abspeichern, beispielsweise im CRS-Format aus dem vorhergehenden Abschnitt. In diesem Fall reduziert sich der Speicheraufwand auf O(|V | + |E|). Bemerkung 6.25 Eine alternative Datenstruktur, welche ebenfalls den Speicheraufwand O(|V | + |E|) besitzt, aber ein wesentlich effizienteres Einfügen und Entfernen von Knoten und Kanten zulässt, ist die Adjazenz- oder Nachbarschaftsliste. Hier werden zu jedem Knoten v ∈ V jeweils alle Nachfolger w ∈ post(v) in einer Liste gespeichert. Diese kann als einfach verkettete Liste gespeichert werden. Dabei handelt es sich um eine Datenstruktur, in der ein Element nebst einem Wert auch einen Verweis auf das nachfolgende Element enthält. Im folgenden Satz zeigen wir einen interessanten Zusammenhang zwischen Potenzen der Adjazenzmatrix und den erreichbaren Knoten in einem Graphen.
6.4 Implementierung von Graphen
121
Satz 6.26 Sei G = (V , E) ein Graph mit n = |V | Knoten und A ∈ Rn×n (k) die zugehörige Adjazenzmatrix. Dann enthält der Eintrag a i, j ≥ 0 der k-ten Matrixpotenz
(k) n Ak =: a i, j i, j=1 die Anzahl aller i- j-Wege mit genau k ≥ 1 Kanten.
Beweis Wir beweisen den Satz mittels vollständiger Induktion nach k. Für k = 1 ist die Aussage klar, da die Wege der Länge 1 genau den Kanten in E entsprechen und A1 = A die Adjazenzmatrix ist. Insbesondere ist jeder i- j-Weg eindeutig. Wir (k) nehmen also an, dass die Behauptung für k ≥ 1 erfüllt sei. Der Eintrag a i, j enthält dann gemäß Voraussetzung die Anzahl aller i- j-Wege der Länge k. Nun folgt wegen Ak+1 = Ak A, dass (k+1) = a i, j
n
(k) ai, a, j .
=1
In der Summe ist a, j = 1 genau dann, wenn (, j) ∈ E, ansonsten ist a, j = 0, dies bedeutet (k+1) (k) a i, j = ai, . ∈{1,2,...,n}: a, j =1 (k+1)
Der Eintrag a i, j
besteht demnach aus der Summe aller i--Wege der Länge k, (k+1)
zu denen auch die Kante (, j) existiert. Folglich entspricht a i, j i- j-Wege der Länge k + 1.
der Anzahl aller
Der vorangegangene Satz liefert einen matrixbasierten Algorithmus zur Berechnung starker Zusammenhangskomponenten eines Graphen. Erfüllt die Adjazenzmatrix A des Graphen G = (V , E) in einer submultiplikativen Norm A < ρ, so existiert gemäß Übungsaufgabe 6.6 der Grenzwert −1 ∞ Ak 1 = . B := I − A ρ ρk
k=0
Insbesondere gilt bi, j > 0 genau dann, wenn ein Weg vom Knoten i zum Knoten j existiert.
122
6 Vektoren und Matrizen
Ist G ungerichtet, so folgt automatisch, dass B symmetrisch ist. In diesem Fall gehören die Knoten i und j genau dann zur selben Zusammenhangskomponente, n falls bi, j = 0 gilt. Im gerichteten Fall betrachtet man die Matrix C = [ci, j ]i, j=1 mit ci, j
1, falls bi, j = 0 und b j,i = 0, := 0, sonst.
Nun befinden sich die Knoten i und j genau dann in derselben starken Zusammenhangskomponente, wenn ci, j = 1 gilt. Beispiel 6.27 Wir betrachten den Digraphen G = (V , E) aus Beispiel 6.23 mit der Adjazenzmatrix (6.4). Es gilt offenbar A∞ < 3. Damit erhalten wir beispielsweise ⎡
1 −1 B= I− A 3
und es folgt
1 ⎢0 ⎢ =⎢ ⎢0 ⎣0 0
⎡
1 ⎢0 ⎢ C=⎢ ⎢0 ⎣0 0
0 1 0 0 0
0 0 1 0 1
1/3 1/2 1 3/8 0 9/8 0 0 0 3/8
0 0 0 1 0
⎤ 1/6 1/6 1/8 1/8⎥ ⎥ 3/8 3/8⎥ ⎥ 1 0 ⎦ 1/8 9/8
⎤ 0 0⎥ ⎥ 1⎥ ⎥. 0⎦ 1
Die starken Zusammenhangskomponenten von G lauten demnach {v1 }, {v2 }, {v3 , v5 } und {v4 }. Bemerkung 6.28 Ähnlich zur Berechnung starker Zusammenhangskomponenten lässt sich auch die Breitensuche in Form von Matrix-Vektor-Produkten ausführen: Ist A ∈ Rn×n die Adjazenzmatrix eines Graphen G = (V , E), so enthält der Vektor A ei = ai,: genau alle direkten Nachfolger des i-ten Knotens, A2 ei enthält alle vom Knoten i erreichbaren Knoten mit Weglänge 2, und so weiter.
6.5
Irreduzible Matrizen
In diesem Abschnitt wollen wir eine Verbindung zwischen stark zusammenhängenden Graphen und Matrizen herleiten, welche in der numerischen linearen Algebra oftmals sehr hilfreich ist.
6.5 Irreduzible Matrizen
123
n n×n eine Matrix. Der Digraph G = Definition 6.29 Sei A := [a i, j ]i, A j=1 ∈ R (V , E) mit
V := {1, 2, . . . , n} und E := {(i, j) ∈ V × V : a i, j = 0} heißt der zu A gehörige Graph.
Bemerkung 6.30 Offenbar besitzt die Adjazenzmatrix des Graphen G A dasselbe Besetzungsmuster wie A. Man beachte jedoch, dass in G A auch Schleifen, also Kanten der Form (i, i), zugelassen sind. Diese entsprechen jeweils den Diagonaleinträgen der Matrix A.
Definition 6.31 Die Matrix A ∈ Rn×n heißt reduzibel, falls eine Permutationsmatrix P ∈ Rn×n existiert, so dass gilt PAP =
A1,1 0 A2,1 A2,2
(6.5)
mit A1,1 ∈ Rm×m und A2,2 ∈ R(n−m)×(n−m) , wobei m ≥ 1. Ist A nicht reduzibel, so heißt A irreduzibel. Insbesondere sind alle (1 × 1)-Matrizen irreduzibel. Der nachfolgende Satz gibt ein leicht zu überprüfendes Kriterium für die Irreduzibilität einer Matrix an. Satz 6.32 Die Matrix A ∈ Rn×n ist genau dann irreduzibel, wenn der zugehörige Graph G A stark zusammenhängend ist.
Beweis Nehmen wir zunächst an, die Matrix A ist reduzibel, wobei wir ohne Beschränkung der Allgemeinheit annehmen können, dass a i, j = 0 gilt für alle i ∈ V1 := {1, 2, . . . , m} und j ∈ V2 := {m + 1, m + 2, . . . , n}. Folglich existiert in E keine Kante (i, j) mit i ∈ V1 und j ∈ V2 . Also gibt es auch keinen v-w-Weg für beliebige v ∈ V1 und w ∈ V2 . Daher ist G A nicht stark zusammenhängend. Sei G A nun nicht stark zusammenhängend. Dann existieren Knoten v, w ∈ V mit v = w, für die kein v-w-Weg existiert. Wir setzen V1 := post (v) ∪ {v} und
124
6 Vektoren und Matrizen
V2 := pre (w) ∪ {w}. Dann gilt V1 , V2 = ∅ und V1 ∩ V2 = ∅. Schließlich sei V3 := V \ (V1 ∪ V2 ). Wir permutieren die Zeilen und Spalten von A derart, dass ⎡
⎤ A1,1 A1,2 A1,3 V1 PAP = ⎣A2,1 A2,2 A2,3 ⎦ V2 A3,1 A3,2 A3,3 V3 V1
V2
V3
gilt. Hierbei kommen zuerst die Einträge mit Indizes aus V1 , dann diejenigen mit Indizes aus V2 und schließlich die Einträge mit Indizes aus V3 . Da kein v-w-Weg existiert, kann es auch keine Kante e = (v1 , v2 ) mit v1 ∈ V1 und v2 ∈ V2 geben. Das bedeutet aber A1,2 = 0. Weiterhin existiert auch keine Kante e = (v1 , v3 ) mit v1 ∈ V1 und v3 ∈ V3 , da sonst zwangsläufig v3 ∈ V1 gelten würde. Es folgt A1,3 = 0 und somit ist A reduzibel. Wir haben nun das nötige Werkzeug, um die Existenz der Frobenius-Normalform einer quadratischen Matrix zu beweisen. Satz 6.33 Sei A ∈ Rn×n . Dann existiert eine Permutationsmatrix P ∈ Rn×n und eine ganze Zahl p ≥ 1, so dass ⎡
A1,1 A1,2 ⎢ 0 A2,2 ⎢ PAP = ⎢ . .. ⎣ .. . 0 0
⎤ · · · A1, p · · · A2, p ⎥ ⎥ .. ⎥ , .. . . ⎦ · · · A p, p
wobei die Diagonalblöcke Ai,i für alle i ∈ {1, 2, . . . , p} quadratische, irreduzible Matrizen sind. Diese Darstellung heißt Frobenius-Normalform der Matrix A. Die Blöcke Ai,i sind eindeutig bestimmt bis auf symmetrische Permutationen ihrer Zeilen und Spalten. Ihre Anordnung entlang der Diagonalen ist hingegen nicht eindeutig.
Beweis Seien G 1 , G 2 , . . . , G p die starken Zusammenhangskomponenten des zu A gehörigen Graphen G A . Nach Satz 4.40 besitzt der kondensierte Graph G A eine topologische Ordnung. Ohne Beschränkung der Allgemeinheit seien die Knotenmengen V1 , V2 , . . . , V p bereits entsprechend sortiert. Wir permutieren nun symmetrisch die Zeilen und Spalten der Matrix A derart, dass zuvorderst die Einträge mit Indizes aus V1 stehen, gefolgt von den Einträgen mit Indizes aus V2 , und so weiter bis zu V p . Wir partitionieren die resultierende Matrix entsprechend und erhalten
Übungsaufgaben
125
⎡
A1,1 A1,2 ⎢ A2,1 A2,2 ⎢ PAP = ⎢ . .. ⎣ .. . A p,1 A p,2
⎤ · · · A1, p · · · A2, p ⎥ ⎥ . ⎥. .. . .. ⎦ · · · A p, p
Offenbar ist G i für i ∈ {1, 2, . . . , p} der zu Ai,i gehörige Graph. Da im kondensierten Graphen G A keine Kanten (vi , v j ) existieren mit vi ∈ Vi , v j ∈ V j und i > j, folgt Ai, j = 0 für alle i > j. Da G i stets stark zusammenhängend ist, schließen wir aus Satz 6.32 den ersten Teil der Behauptung. Um die Eindeutigkeit zu zeigen, nehmen wir an, es existiert eine Permutationsmatrix Q ∈ Rn×n , so dass ⎡
A˜ 1,1 ⎢A˜ 2,1 ⎢ QAQ = ⎢ . ⎣ .. A˜ q,1
A˜ 1,2 A˜ 2,2 .. . A˜ q,2
⎤ ˜ 1,q A A˜ 2,q ⎥ ⎥ .. ⎥ . ⎦ ˜ · · · Aq,q ··· ··· .. .
gilt, wobei jedes A˜ i,i für i ∈ {1, 2, . . . , q} eine irreduzible Matrix ist. Die zu A˜ i,i gehörigen Graphen G˜ i sind also stark zusammenhängend. Weiterhin gibt es in G A für i > j keinen Weg von einem Knoten aus G˜ i zu einem Knoten aus G˜ j . Dies bedeutet, die Graphen G˜ 1 , G˜ 2 , . . . , G˜ q sind genau die starken Zusammenhangskomponenten von G A . Weil diese eindeutig bestimmt sind, entsprechen die Graphen G˜ 1 , G˜ 2 , . . . , G˜ q nur einer Reihung der Graphen G 1 , G 2 , . . . , G p . Insbesondere gilt p = q. Somit sind die Diagonalblöcke A˜ i,i bis auf symmetrische Permutationen von Zeilen und Spalten ebenfalls nur eine Reihung der Diagonalblöcke Ai,i . Bemerkung 6.34 Die starken Zusammenhangskomponenten einer Matrix können mit Hilfe von Algorithmus 4.33 bestimmt werden. Dazu muss man nur den zugehörigen Graphen zur Verfügung stellen. Der Aufwand ist dann linear in der Anzahl der Matrixeinträge, das heißt O(n 2 ). Ist die Matrix dünnbesetzt, reduziert sich der Aufwand entsprechend.
Übungsaufgaben Aufgabe 6.1 (Strassen-Algorithmus) Strassen schlug in [Str69] ein Verfahren zur Beschleunigung der Matrixmultiplikation zweier Matrizen A, B ∈ Rn×n vor, wobei n = 2m eine Zweierpotenz sei. Dazu zerlegen wir A und B in jeweils vier ( n2 × n2 )Matrizen B B A A B = 1,1 1,2 A = 1,1 1,2 , A2,1 A2,2 B2,1 B2,2
126
6 Vektoren und Matrizen
und berechnen die sieben Hilfsprodukte P1 P2 P3 P4
= (A1,1 + A2,2 )(B1,1 + B2,2 ), = (A2,1 + A2,2 )B1,1 , = A1,1 (B1,2 − B2,2 ), = A2,2 (B2,1 − B1,1 ).
P 5 = (A1,1 + A1,2 )B2,2 , P 6 = (A2,1 − A1,1 )(B1,1 + B1,2 ), P 7 = (A1,2 − A2,2 )(B2,1 + B2,2 ),
a) Zeigen Sie die Gleichung
A1,1 A1,2 A2,1 A2,2
P3 + P5 B1,1 B1,2 P + P4 − P5 + P7 = 1 . B2,1 B2,2 P2 + P4 P1 + P3 − P2 + P6
Damit reduziert sich die Zahl der Multiplikationen kleinerer Matrizen von acht auf sieben gegenüber dem naiven Verfahren, während die Zahl der Additionen gestiegen ist. b) Dieses Vorgehen wird nun rekursiv zur Berechnung der sieben kleineren Produkte angewandt. Zeigen Sie, dass der benötige Aufwand A(n) (das heißt, die Anzahl elementarer Additionen und Multiplikationen) für die Multiplikation zweier (n × n)-Matrizen der Rekursion A(n) = 7 A
n 2
9 + n2, 2
A(1) = 1
genügt. c) Zeigen Sie, dass 9 m−k k 7 4 2 m
A(2m ) = 7m +
k=1
gilt und folgern Sie daraus, dass die Matrixmultiplikation nach Strassen die Kosten O(n log2 7 ) ≈ O(n 2.807 ) besitzt. d) Begründen Sie, dass mindestens n 2 Operationen benötigt werden, um zwei vollbesetzte (n × n)-Matrizen miteinander zu multiplizieren. Dies bedeutet, für die Matrixmultiplikation ist ein Aufwand O(n 2 ) bestmöglich. Aufgabe 6.2 (induzierte Norm) Sei · eine Vektornorm auf Rn und A ∈ Rn×n . Zeigen Sie, dass die induzierte Norm Ax x =0 x
A = sup tatsächlich eine Norm auf Rn×n ist.
Übungsaufgaben
127
Aufgabe 6.3 ( p-Norm) a) Für einen Vektor x ∈ Rn ist die p-Norm definiert durch x p :=
n
1 |xi | p
p
,
i=1
wobei 1 ≤ p < ∞ gelte. Zeigen Sie: • lim p→∞ x p = x∞ , • x∞ ≤ x p ≤ x1 , • x p ≤ xq für q ≤ p. b) Sei A ∈ Rn×n . Zeigen Sie, dass die Gesamtnorm AG = n max1≤i, j≤n |a i, j | mit allen p-Normen verträglich ist. Aufgabe 6.4 (Graphen und Adjazenzmatrizen) Wir betrachten den folgenden gerichteten Graphen, in dem ‘↔’ für eine Doppelkante steht (das ist die Kurzform für eine Vorwärts- und eine Rückwärtskante):
a) Geben Sie alle einfachen Wege von Knoten 1 zu Knoten 8 sowie von Knoten 8 zu Knoten 1 an. b) Geben Sie die Adjazenzmatrix für obigen Graphen an. Geben Sie auch die Adjazenzmatrix an, wenn alle Kanten ungerichtet wären. c) Gehen Sie nun davon aus, dass der Graph ungerichtet ist. Geben Sie die maximale Anzahl Kanten an, die entfernt werden können, so dass die Anzahl der Zusammenhangskomponenten immer noch gleich bleibt. Zeichnen Sie auch den zugehörigen Graphen. d) Zeichnen Sie einen Graphen mit Knoten 1, 2, . . . , 9, der die folgende Adjazenzmatrix besitzt:
128
6 Vektoren und Matrizen
Muss der Graph gerichtet gezeichnet werden oder kann er auch ungerichtet sein? Aufgabe 6.5 (Alle-Paare-kürzeste-Wege-Problem und Matrizen) Gegeben sei ein gewichteter Graph G = (V , E, ω), dargestellt durch die Matrix W mit
wi, j
⎧ ⎪ i = j, ⎨0, = ω(i, j), (i, j) ∈ E, ⎪ ⎩ ∞, sonst.
a) Das Ergebnis eines Alle-Paare-kürzeste-Wege-Algorithmus kann mit Hilfe einer Matrix L dargestellt werden, wobei i, j = δ(i, j) die Länge eines kürzesten Wegs von i nach j ist. Um alle Paare kürzester Wege zu berechnen kann man rekursiv vorgehen. Hierzu bestimmt man die Matrizen L(m) , welche alle kürzesten Wege der Länge m enthalten. Als Startwert setzt man L(0) mit (0) i, j
0, i = j, := ∞, sonst.
Zeigen Sie, dass L(m+1) durch die Operation (m+1)
i, j
% & (m) '( (m) := min i, , min + w k, j j i,k k∈V
aus L(m) hervorgeht. Man beachte, dass bei diesem Vorgehen höchstens |V | − 1 Matrizen zu berechnen sind, da in einem Graph ohne negative Zyklen die maximale Länge eines kürzesten Wegs |V | − 1 beträgt. b) Welcher Zusammenhang besteht zwischen dem hier vorgestellten Alle-Paarekürzeste-Wege-Algorithmus und der Matrixmultiplikation aus Algorithmus 6.1? c) Geben Sie die Matrizen L(m) , m = {0, 1, . . . , |V |−1}, für den folgenden Graphen an:
Übungsaufgaben
129
Aufgabe 6.6 (Neumann-Reihe) Für eine beliebige, submultiplikative Matrixnorm und eine Matrix A ∈ Rn×n gelte A < 1. Zeigen Sie −1
(I − A)
=
∞
Ai
i=0
und folgern Sie daraus, dass (I − A)−1 ≤ ist.
1 1 − A
7
Lineare Gleichungssysteme
7.1
Kondition linearer Gleichungssysteme
Bevor wir konkrete numerische Verfahren zur Lösung linearer Gleichungssysteme Ax = b einführen, betrachten wir zunächst deren Kondition: Für den Eingangsfehler b berechnet sich offensichtlich der Ausgangsfehler x gemäß x + x = A−1 (b + b) = A−1 b + A−1 b. Dies bedeutet in Anbetracht von x = A−1 b, dass x = A−1 b. Für ein verträgliches Matrix-Vektornormpaar ergibt sich somit b Ax b A−1 b x = ≤ A−1 ≤ A−1 A . x x b x b
(7.1)
Definition 7.1 Der Faktor cond M (A) := A−1 M A M wird als Kondition der Matrix A bezüglich der Matrixnorm · M bezeichnet. Wie in Abschn. 2.4 beschreibt die Kondition die relative Fehlerverstärkung beim Lösen des linearen Gleichungssystems Ax = b, diesmal allerdings normweise für
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_7
131
132
7
Lineare Gleichungssysteme
den schlimmstmöglichen Fall. Ist die Matrixnorm · M durch eine Vektornorm induziert, so kann man einfache Beispiele für b und b konstruieren, für die diese Fehlerschranke (7.1) exakt ist, also mit Gleichheitszeichen gilt, vergleiche Übungsaufgabe 7.1. Beispiel 7.2 Sei
A=
10−3 1 . 1 1
Die Matrix A ist gut konditioniert, denn mit −1.001 1.001 A−1 ≈ 1.001 −0.001 folgt A∞ = 2 ≈ A−1 ∞ und daher ist cond∞ (A) ≈ 4.
7.2
LR-Zerlegung
Für eine Matrix A ∈ Rn×n und einen Vektor b ∈ Rn betrachten wir das lineare Gleichungssystem Ax = b. Dieses lässt sich numerisch effizient mit Hilfe der Gauß-Elimination lösen. Hierbei nutzt man aus, dass die Durchführung der Gauß-Elimination auf eine Faktorisierung der Matrix A in eine untere (linke) und eine obere (rechte) Dreiecksmatrix führt. Diese Faktorisierung wird LR-Zerlegung genannt. Wir betrachten die Gauß-Elimination nun unter diesem Gesichtspunkt: Es bezeichne Ai die transformierte Matrix im i-ten Schritt der Gauß-Elimination. Für alle i < j ≤ n subtrahiert man dann von der j-ten Zeile der Matrix Ai das jeweils (i) τ j -fache der i-ten Zeile mit dem Ziel, eine Null im ( j, i)-ten Eintrag der Matrix zu erzeugen. Symbolisch führt dies auf ⎡
··· ⎢ . . .. .. ⎢ . . . ⎢ ⎢ ⎢ (i) ⎢ ai,i Ai bi := ⎢ ⎢ (i) ⎢ 0 ai+1,i ⎢ .. ⎢ ⎣ . (i) an,i
···
.. .
··· (i) · · · ai,n (i) · · · ai+1,n .. . (i) · · · an,n
⎤ .. ⎥ . ⎥ ⎥ ⎥ ⎥ (i) (i) bi(i) ⎥ ⎥ −τi+1 · · · −τn (i) ⎥ bi+1 ⎥ ← ⎥ .. ⎥ . ⎦ ←− bn(i)
(7.2)
7.2 LR-Zerlegung
133
Dabei muss τ (i) j offensichtlich gemäß τ (i) j =
(i)
a j,i
(i)
ai,i
, i < j ≤ n,
(i) gewählt werden, um das Gewünschte zu erzielen. Der gemeinsame Nenner ai,i der (i)
Faktoren τ j heißt Pivotelement. Der Elimininationsschritt (7.2) lässt sich mit Hilfe der unteren Dreiecksmatrix ⎡
1
⎤
⎥ ⎢ . ⎢ .. 0 ⎥ ⎥ ⎢ ⎥ ⎢ 1 ⎥ ⎢ ⎥ ⎢ 1 ⎥ ⎢ ⎥ ⎢ (i) −τi+1 1 ⎥ ⎢ ⎥ ⎢ .. .. ⎥ ⎢ . ⎦ . ⎣ 0 (i) 1 −τn
(7.3)
als Matrixprodukt darstellen: Li Ai bi = Ai+1 bi+1 . Mit A1 = A und b1 = b ergibt sich durch Auflösen der Rekursion ⎡
··· ⎢ . . Ln−1 Ln−2 · · · L1 A b = An bn = R c = ⎣ . . .. 0
⎤ .. ⎥ .⎦
mit der oberen Dreiecksmatrix R. Speziell gilt Ln−1 Ln−2 · · · L1 A = R. Dies bedeutet, wir erhalten die Faktorisierung −1 −1 A = L−1 1 L2 · · · Ln−1 R =: LR.
Hierbei lassen sich die Inversen Li−1 der Matrizen Li explizit angeben.
134
7
Lineare Gleichungssysteme
Lemma 7.3 Die Dreiecksmatrix Li aus (7.3) besitzt die folgenden Eigenschaften: 1. Die Matrix Li kann auch geschrieben werden als ⎡
⎤ 0 ⎢ . ⎥ ⎢ .. ⎥ ⎢ ⎥ ⎢ 0 ⎥ ⎢ ⎥ Li = I − i ei = I − ⎢ (i) ⎥ 0, . . . , 0, 1 , 0, . . . , 0 . ⎢τi+1 ⎥ ⎢ . ⎥ Stelle i ⎢ . ⎥ ⎣ . ⎦ τn(i) =: i 2. Die Inverse von Li berechnet sich gemäß ⎡
Li−1
⎤
1
⎢ . ⎢ .. 0 ⎢ ⎢ 1 ⎢ ⎢ 1 = I + i ei = ⎢ ⎢ (i) τi+1 1 ⎢ ⎢ .. .. ⎢ . . ⎣ 0 (i) τn
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥. ⎥ ⎥ ⎥ ⎥ ⎦ 1
−1 −1 3. Die Matrix L = L−1 1 L2 · · · Ln−1 erfüllt
⎡
L=
I+1 e1 +2 e2 +. . .+n−1 en−1
⎤
1
⎢τ2(1) ⎢ ⎢ (1) =⎢ ⎢τ3 ⎢ .. ⎣ . τn(1)
1 (2)
τ3 .. .
τn(2)
⎥ ⎥ ⎥ ⎥ . (7.4) ⎥ ⎥ ⎦
0 ..
. 1
···
τn(n−1)
1
Beweis Die Beziehung Li = I − i ei verifiziert man durch einfaches Nachrechnen. Aufgrund der Nulleinträge in j und ei ist ei j = 0 für i ≤ j. Daraus folgt
(I − i ei )(I + i ei ) = I − i ei + i ei − i ei i ei = I, =0
7.2 LR-Zerlegung
135
dies bedeutet, Li−1 = I + i ei . Weiter ergibt sich induktiv aus
−1 −1 L−1 1 L2 · · · Li = I + 1 e1 + 2 e2 + . . . + i ei ,
dass
−1 −1 −1 L−1 1 L2 · · · Li+1 = (I + 1 e1 + 2 e2 + . . . + i ei )Li+1
= (I + 1 e1 + 2 e2 + . . . + i ei )(I + i+1 ei+1 )
= I + 1 e1 + 2 e2 + . . . + i ei + i+1 ei+1 +
i
j e j i+1 ei+1 . j=1 =0
(i) Wird im Verlauf der Gauß-Elimination ein Pivotelement ai,i Null, dann bricht das Verfahren in dieser Form zusammen. Sind hingegen alle Pivotelemente für i ∈ {1, 2, . . . , n − 1} von Null verschieden, so haben wir das folgende Resultat bewiesen.
Satz 7.4 Falls kein Pivotelement Null wird, bestimmt die Gauß-Elimination neben der Lösung x von Ax = b eine LR-Zerlegung A = LR in eine untere und eine obere Dreiecksmatrix. Die Matrix L ist dabei durch (7.4) gegeben.
Beispiel 7.5 Für die Matrix
⎡
⎤ 14 7 A = ⎣2 5 8 ⎦ 3 6 10
werden bei der Gauß-Elimination die folgenden Schritte vollzogen: ⎤ 1 4 7 −2 −3 A = ⎣2 5 8 ⎦ ← ← 3 6 10
⎡
⎡
−→
⎤ 1 4 7 ⎣0 −3 −6 ⎦ −2 0 −6 −11 ←
⎡ −→
⎤ 1 4 7 ⎣0 −3 −6⎦ . 0 0 1
Deshalb erhalten wir ⎡
⎤ 1 4 7 R = ⎣0 −3 −6⎦ , 0 0 1
⎡
⎤ 100 L = ⎣2 1 0 ⎦ . 321
136
7
Lineare Gleichungssysteme
Bemerkung 7.6 Bei der Realisierung der LR-Zerlegung im Computer überschreibt (1) man die ursprünglichen Einträge ak, = ak, der Matrix A mit den jeweils aktuellen
(i) Einträgen ak, . Die Matrix L lässt sich sukzessive in die nicht mehr benötigte untere Hälfte von A schreiben. Dadurch wird kein zusätzlicher Speicherplatz für die LRZerlegung benötigt. Man spricht daher auch von einem Auf-dem-Platz-Algorithmus.
Die Lösung des linearen Gleichungssystems Ax = b wird mit Hilfe der LRZerlegung wie folgt berechnet: ➀ zerlege A = LR mit der Gauß-Elimination ➁ löse Ax = LRx = b in zwei Schritten: • löse Ly = b durch Vorwärtssubstitution • löse Rx = y durch Rückwärtssubstitution Vorwärtssubstitution und Rückwärtssubstitution sind in Algorithmus 7.7 zu finden. Algorithmus 7.7 (Vorwärts- und Rückwärtssubstitution) input: untere Dreiecksmatrix L = [i, j ] ∈ Rn×n , obere Dreiecksmatrix R = [ri, j ] ∈ Rn×n und Vektor b = [bi ] ∈ Rn output: Lösung x = [xi ] ∈ Rn des linearen Gleichungssystems LRx = b ➀ für i = 1, 2, . . . , n berechne yi := bi −
i−1
i, j y j
j=1
➁ für i = n, n − 1, . . . , 1 berechne xi :=
1 ri,i
yi −
n
ri, j x j
j=i+1
Beispiel 7.8 Für die Matrix A aus Beispiel 7.5 und die rechte Seite b = [1, 1, 1] wollen wir das lineare Gleichungssystem Ax = b lösen. Wir bestimmen also zunächst y mit Ly = b durch Vorwärtssubstitution:
⎡
⎤ 1001 L b = ⎣2 1 0 1⎦ 3211
=⇒
y1 = 1 y2 = 1 − 2 = −1 y3 = 1 − 3 + 2 = 0
7.2 LR-Zerlegung
137
Anschließend bestimmen wir x mit Rx = y durch Rückwärtssubstitution: ⎡ ⎤ 1 4 7 1 x3 = 0 R y = ⎣ 0 −3 −6 −1 ⎦ =⇒ x2 = (−1 + 0)/(−3) = 1/3 0 0 1 0 x1 = 1 − 4/3 − 0 = −1/3 Nachfolgend schätzen wir den Aufwand zum Lösen eines linearen Gleichungssytems mit Hilfe der LR-Zerlegung ab. Dazu betrachten wir die beiden Teilschritte des obigen Verfahrens getrennt: ➀ Gemäß (7.2) werden im i-ten Teilschritt der Gauß-Elimination − i n
+ (n − i) · (n − i) = (n − i)2 + n − i
Berechnung n der {τ (i) j } j=i+1
Anzahl der Zeilen
Anzahl der Spalten
Multiplikationen durchgeführt. Für die Berechnung der LR-Zerlegung werden daher insgesamt n−1 n−1 2 1 (n − i)2 + (n − i) = j + j = n 3 + O(n 2 ) 3 i=1
j=1
Multiplikationen verwendet. ➁ Sowohl die Vorwärtssubstitution als auch die Rückwärtssubstitution haben den gleichen Aufwand. Da jeder Eintrag der zugrundeliegenden Dreiecksmatrizen jeweils einmal multipliziert wird, werden hier 2
n
i = n(n + 1) = O(n 2 )
i=1
Multiplikationen ausgeführt. Es werden also zum Lösen eines linearen Gleichungssystems mit Hilfe der LRZerlegung insgesamt n 3 /3 + O(n 2 ) Multiplikationen (und, wie man leicht nachrechnet, ebenso viele Additionen) benötigt. Der Speicherplatzbedarf ist dabei allerdings nur von der Ordnung O(n 2 ). Bemerkung 7.9 Eine weitere Möglichkeit, das lineare Gleichungssystem Ax = b zu lösen, bietet bekanntlich die Cramersche Regel. Danach lautet die i-te Komponente xi der Lösung xi =
det Ai , det A
138
7
Lineare Gleichungssysteme
wobei hier Ai ∈ Rn×n diejenige Matrix bezeichnet, die aus A entsteht, wenn man die i-te Spalte durch b ersetzt. Berechnet man die Determinante nach dem Laplaceschen Entwicklungssatz, so benötigt man im Allgemeinen n! Operationen. Der Supercomputer Piz Daint ist bei perfekter Skalierung in der Lage, annähernd 20·1015 Gleitkommaoperationen pro Sekunde, das sind 20 PetaFLOPS, durchzuführen (Stand 2019). Damit ergäben sich folgende theoretische Rechenzeiten: n 18 20 22 24 26 Rechenzeit 0.3 s 2 min 15.6 h 359 Tage 639 Jahre
Die Cramersche Regel scheint offenbar kein Ernst zu nehmendes numerisches Verfahren zur Lösung linearer Gleichungssysteme zu sein.
7.3
Block-LR-Zerlegung
Die Verwendung der Gauß-Elimination zur Bestimmung einer LR-Zerlegung lässt sich auch auf Blockmatrizen anwenden. Zu einer gegebenen Matrix A ∈ Rn×n betrachten wir die Blockpartitionierung A=
A1,1 A1,2 A2,1 A2,2
(7.5)
mit A1,1 ∈ R p× p und A2,2 ∈ R(n− p)×(n− p) , wobei 1 ≤ p < n. Ist A1,1 nichtsingulär, so kann man das lineare Gleichungssystem A
x b x A A = = 1,1 1,2 A2,1 A2,2 y c y
(7.6)
vermittels Block-Gauß-Elimination lösen. Wenden wir A2,1 A−1 1,1 von links an, so erhalten wir A1,2 b A1,1 A1,1 A1,2 b −A2,1 A−1 1,1 −→ . −1 A2,1 A2,2 c 0 A2,2 − A2,1 A−1 ←− 1,1 A1,2 c − A2,1 A1,1 b
Definition 7.10 Die Matrix (n− p)×(n− p) S := A2,2 − A2,1 A−1 1,1 A1,2 ∈ R
heißt Schur-Komplement der Matrix A ∈ Rn×n bezüglich A1,1 ∈ R p× p .
(7.7)
7.3 Block-LR-Zerlegung
139
Für die Lösung von (7.6) folgt nun durch blockweise Rückwärtssubstitution y = S−1 c − A2,1 A−1 1,1 b , x = A−1 1,1 (b − A1,2 y). Wir wollen dies allerdings an dieser Stelle nicht weiter vertiefen. Vielmehr bemerken wir, dass die Block-Gauß-Elimination auf eine Block-LR-Zerlegung führt. Es gilt I 0 A1,1 A1,2 mit L2,1 = A2,1 A−1 A= 1,1 . 0 S L2,1 I
Wenden wir diese Block-LR-Zerlegung für p = 1 sukzessive auf das SchurKomplement an, dann ergibt sich die LR-Zerlegung mit Rang-1-Updates: Algorithmus 7.11 (LR-Zerlegung mit Rang-1-Updates) input: reguläre Matrix A ∈ Rn×n output: LR-Zerlegung A = LR = [1 , 2 , . . . , n ][r1 , r2 , . . . , rn ] (1) ➀ Initialisierung: A1 := ak, = A ➁ für i = 1, 2, . . . , n setze (i) 1 (i) i := (i) a:,i , ri := ai,: ai,i (i+1) = Ai − i ri und berechne Ai+1 := ak,
(7.8)
Im i-ten Schritt des Algorithmus wird
i :=
1 (i) ai
(i) (i) (i) 0, . . . , 0, ai,i , ai+1,i , . . . , an,i
,
(i) (i) (i) , ai,i+1 , . . . , ai,n ri := 0, . . . , 0, ai,i in (7.8) gesetzt, siehe auch Abschn. 6.1. Dadurch werden mittels Ai − i ri die i-te Zeile und die i-te Spalte von Ai auf Null gesetzt. Insbesondere gilt An+1 = 0 und somit durch Auflösen der Rekursion
A = 1 r1 + 2 r2 + . . . + n rn = [1 , . . . , n ][r1 , . . . , rn ] = LR.
140
7
Lineare Gleichungssysteme
Algorithmus 7.11 bietet gegenüber einer naiven Implementierung der LR-Zerlegung den Vorteil, dass er sich sehr einfach vektorisieren lässt, was zu verbesserten Laufzeiten führt. Insbesondere muss nie die ganze Matrix Ai berechnet werden, sondern immer nur die aktuell benötigte Zeile und Spalte. Zum Abschluss dieses Abschnitts wollen wir nun noch den Zusammenhang zwischen den starken Zusammenhangskomponenten eines Graphen und der Block-LRZerlegung herstellen. Nach Satz 6.33 können wir eine gegebene Matrix A ∈ Rn×n in die Frobenius-Normalform ⎡ ⎤ A1,1 A1,2 · · · A1, p ⎢ 0 A2,2 · · · A2, p ⎥ ⎢ ⎥ PAP = ⎢ . .. . . .. ⎥ ⎣ .. . . . ⎦ 0 0 · · · A p, p überführen. Dabei ist P ∈ Rn×n eine geeignete Permutationsmatrix. Für die Diagop nalblöcke möge Ai,i ∈ Rni ×ni mit n = i=1 n i gelten. Ein lineares Gleichungssystem mit einer derartigen Block-Dreiecksmatrix kann mittels nachfolgendem Algorithmus gelöst werden. Algorithmus 7.12 (Block-Rückwärtssubstitution) input: Matrix PAP ∈ Rn×n in Frobenius-Normalform und Vektor Pb = [b1 , b2 , . . . , b p ] ∈ Rn output: Lösung y = [y1 , y2 , . . . , y p ] ∈ Rn des linearen Gleichungssystems PAP y = Pb ➀ für i = p, p − 1, . . . , 1 berechne zi := bi −
p
Ai, j y j
j=i+1
und löse Ai,i yi = zi mittels LR-Zerlegung
Allgemein lässt sich die Lösung eines linearen Gleichungssystems Ax = b nun wie folgt berechnen: ➀ bestimme die Permutationsmatrix P, die A in Frobenius-Normalform überführt ➁ löse PAP y = Pb mit der Block-Rückwärtssubstitution aus Algorithmus 7.12 ➂ berechne x = P y
7.4 LR-Zerlegung mit Spaltenpivotisierung
141
Der zugehörige Gesamtaufwand lässt sich wie folgt abschätzen: ➀ Gemäß Satz 4.35 ist die Berechnung der Frobenius-Normalform einer vollbesetzten Matrix mit dem Aufwand O(n 2 ) verbunden. ➁ Für die Berechnung von yi müssen wir p − i Matrix-Vektorprodukte berechnen sowie ein Gleichungssystem mit Kosten O(n i3 ) lösen. Im einfachsten Fall n i = n/ p für i ∈ {1, 2, . . . , p} erhalten wir somit die Gesamtkosten 3 3 p n n n2 O 3 + ( p − i) 2 = O 2 + O(n 2 ). p p p i=1
Im Fall p = 1 ist die Matrix irreduzibel und wir erhalten den ursprünglichen Aufwand O(n 3 ) der LR-Zerlegung. Im anderen Grenzfall p = n entspricht die Frobenius-Normalform einer oberen Dreiecksmatrix und wir erhalten den Aufwand der Rückwärtssubstitution O(n 2 ). ➂ Die Permutation der Lösung kann immer in linearem Aufwand durchgeführt werden.
7.4
LR-Zerlegung mit Spaltenpivotisierung
Wir wollen die LR-Zerlegung mit Spaltenpivotisierung anhand eines Beispiels motivieren. Beispiel 7.13 Wir betrachten das lineare Gleichungssystem Ax = b mit A=
10−3 1 , 1 1
b=
1 . 2
Wie wir im Beispiel 7.2 gesehen haben, ist die Matrix A gut konditioniert und die zugehörige Lösung lautet 1.001 . . . x= . 0.999 . . . Mit der Gauß-Elimination und dreistelliger Gleitkommaarithmetik ergibt sich jedoch bei kleiner Störung der rechten Seite ein völlig falsches Resultat:
142
7
Lineare Gleichungssysteme
Das berechnete Ergebnis hat also rein gar nichts mit der exakten Lösung zu tun. Der Grund für dieses unbefriedigende Resultat ist der folgende: Das kleine (1,1)Element bewirkt einen großen Faktor (nämlich −1000) im Gauß-Eliminationsschritt und damit eine große Fehlerverstärkung, das heißt Instabilität. Damit die Pivotelemente in der LR-Zerlegung nicht beliebig klein werden und dadurch Rundungsfehler verstärken können, vertauscht man vor jedem Eliminierungsschritt die i-te und die k-te Zeile derart, dass das Pivotelement am betragsgröß(i) (i) ten ist, das heißt |ak,i | = maxi≤≤n |a,i |. Damit ist sichergestellt, dass die Einträge der Matrix L betragsmäßig stets kleiner oder gleich Eins sind. Diese Stabilisierung der LR-Zerlegung wird Spaltenpivotsuche oder partial pivoting genannt. Das Vertauschen der i-ten Zeile mit der k-ten Zeile der Matrix Ai kann durch die zugehörige Permutationsmatrix Pi := T {i,k}
(7.9)
aus Definition 6.5 beschrieben werden. Folglich wird aus der Matrix Ai durch Vertauschung die Matrix Pi Ai . Diese Matrix wird nun im Eliminationsschritt weiter reduziert. Der vollständige i-te Teilschritt der Gauß-Elimination mit Spaltenpivotsuche transformiert Ai also wie folgt: Ai → Ai+1 = Li Pi Ai .
(7.10)
Wir benötigen folgendes Lemma: Lemma 7.14 Sei j < i und Pi durch (7.9) gegeben. Dann ist Pi L j = L˜ j Pi , ( j) ( j) wobei L˜ j wieder die gleiche Form hat wie L j , außer dass τk und τi vertauscht sind.
Beweis Wegen Pi2 = I gilt Pi L j = Pi L j Pi2 = (Pi L j Pi )Pi , dies bedeutet L˜ j = Pi L j Pi . Da die Multiplikation mit Pi von links die Zeilen i und k vertauscht, folgt
7.4 LR-Zerlegung mit Spaltenpivotisierung
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ Pi L j = ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
1
143
⎤ ..
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ← Zeile i ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ← Zeile k ⎥ ⎥ ⎥ ⎥ ⎦
. 1 ( j)
−τ j+1 .. . ( j) −τk
..
. 1 0
1 1
.. .
..
. 1
( j) −τi
1
0 1
.. . ( j) −τn
..
. 1
↑ Spalte i
↑ Spalte k
Schließlich vertauscht die Multiplikation mit Pi von rechts noch die Spalten i und k: ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ Pi L j Pi = ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
1
⎤ ..
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ← Zeile i ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ← Zeile k ⎥ ⎥ ⎥ ⎥ ⎦
. 1 ( j)
−τ j+1 .. . ( j) −τk
..
. 1 1
.. . ( j) −τi
0 1
..
. 1
0
1 1
.. . ( j) −τn
..
. 1
↑ Spalte i Damit ist L˜ j von der behaupteten Form.
↑ Spalte k
144
7
Lineare Gleichungssysteme
Mit Hilfe von Lemma 7.14 können wir den folgenden Satz für die LR-Zerlegung mit Spaltenpivotsuche beweisen: Satz 7.15 Ist A nichtsingulär, dann bestimmt die LR-Zerlegung mit Spalten˜ wobei R wie zuvor die obere pivotsuche eine Zerlegung der Matrix PA = LR, Dreiecksmatrix An , P = Pn−1 Pn−2 · · · P1 eine Permutationsmatrix und −1 −1 −1 L˜ = L˜ 1 L˜ 2 · · · L˜ n−1
eine untere Dreiecksmatrix ist mit L˜ n−1 = Ln−1 , L˜ n−2 = Pn−1 Ln−2 Pn−1 , L˜ n−3 = Pn−1 Pn−2 Ln−3 Pn−2 Pn−1 , .. . L˜ 1 = Pn−1 Pn−2 · · · P2 L1 P2 · · · Pn−2 Pn−1 .
Beweis Nehmen wir zunächst an, dass die Gauß-Elimination mit Spaltenpivotsuche nicht zusammenbricht. Dann ergibt sich aus (7.10) durch sukzessives Anwenden von Lemma 7.14, dass R = An = Ln−1 P n−1 An−1 = L˜ n−1 P n−1 Ln−2 P n−2 An−2 = L˜ n−1 L˜ n−2 P n−1 P n−2 Ln−3 P n−3 An−3 .. . = L˜ n−1 L˜ n−2 · · · L˜ 1 P n−1 P n−2 · · · P 1 A. Zu klären bleibt schließlich die Frage, ob die Gauß-Elimination mit Spaltenpivotsuche zusammenbrechen kann. Dies wäre nur dann der Fall, wenn ein Pivotelement nach der Spaltenpivotsuche Null ist. Angenommen, das Pivotelement nach dem i-ten Teilschritt ist Null, dann gilt zwangsläufig ⎡ ··· ⎢ B ⎢ . . . ... ⎢
⎢0 Ai = ⎢ ⎢ ⎢ ⎢ ⎣ 0
⎤ ⎥ ⎥ ⎥ ⎥ ⎥. ··· ⎥ ⎥ .. .. ⎥ . .⎦ ···
0 .. . 0
7.4 LR-Zerlegung mit Spaltenpivotisierung
145
Daraus folgt jedoch ⎡ 0 ⎢ .. det Ai = det B · det ⎣ .
⎤ ··· .. .. ⎥ = 0 . .⎦
0 ···
und weiter i−1 i−1 0 = det Ai = det Li−1 Pi−1 · · · L1 P 1 A = det L j · det P j · det A. j=1
=1
j=1
=±1
Dies impliziert det A = 0 im Widerspruch zur Voraussetzung.
Beispiel 7.16 Wir illustrieren die LR-Zerlegung mit Spaltenpivotisierung anhand des folgende Zahlenbeispiels: ⎡
1 ⎢1/2 A=⎢ ⎣ −1 1
⎤ 1 0 2 −1/2 +1 −1 1/2 2 −1⎥ ⎥ ← 0 −1/8 −5⎦ ← −7 9 10 ←
⎡ −→
1 ⎢0 ⎢ ⎣0 0
1 0 0 2 1 −1/8 −8 9
⎤ 2 −2⎥ ⎥← −3⎦ 8 ←
⎡
⎡ ⎤ ⎤ 1 0 2 1 1 0 2 ⎢ ⎥ P2 −8 9 8⎥ ⎥ +1/8 −→ ⎢0 −8 9 8 ⎥ −→ ⎣ ⎦ 1 −1/8 −3 ← 0 0 1 −2⎦ ← 0 2 −2 0 0 2 −2 ← ⎡ ⎡ ⎤ ⎤ 1 1 0 2 1 1 0 2 ⎢0 −8 9 8 ⎥ ⎢0 −8 9 8 ⎥ P3 ⎢ ⎥ ⎥ −→ ⎢ −→ ⎣0 0 2 −2⎦ −1/2 ⎣0 0 2 −2⎦ . 0 0 1 −2 ← 0 0 0 −1 1 ⎢0 ⎢ ⎣0 0
Unter Beachtung von P 1 = I ergibt sich damit ⎡
1 ⎢0 R=⎢ ⎣0 0
1 −8 0 0
0 9 2 0
⎤ 2 8⎥ ⎥, −2⎦ −1
⎡
⎤ 1 0 0 0 ⎢ 1 1 0 0⎥ ⎥, L˜ = ⎢ ⎣1/2 0 1 0⎦ −1 −1/8 1/2 1 ⎡ ⎤ 1 1 0 2 ⎢ 1 −7 9 10 ⎥ ⎥ PA = ⎢ ⎣1/2 1/2 2 −1⎦ . −1 0 −1/8 −5
146
7
Lineare Gleichungssysteme
Bemerkung 7.17 Die folgende Faustregel ist bei der Berechnung der pivotisierten Gauß-Elimination sehr hilfreich: Um auf L˜ zu kommen, erstellt man zunächst eine Matrix L wie gewohnt. Ganz zum Schluß führt man dann in jeder Spalte alle Vertauschungen in der Reihenfolge P 1 , P 2 , . . . , P n−1 durch, bei denen nur Elemente unterhalb der Diagonalen betroffen sind. Beispiel 7.18 (Fortsetzung von Beispiel 7.13) Wegen 1 > 0.001 würde man in unserem Einführungsbeispiel die beiden Zeilen vertauschen. Wir erhalten dadurch ein erheblich besseres Ergebnis:
Die LR-Zerlegung mit Spaltenpivotisierung lässt sich numerisch sehr elegant analog zur LR-Zerlegung mit Rang-1-Updates umsetzen. Man erhält dann den folgenden Algorithmus. Algorithmus 7.19 (spaltenpivotisierte LR-Zerlegung mit Rang-1Updates) input: reguläre Matrix A ∈ Rn×n output: spaltenpivotisierte LR-Zerlegung PA = LR (1) ➀ Initialisierung: A1 := ak, = A und p := [1, 2, . . . , n] ➁ für i = 1, 2, . . . , n (i) bestimme m := argmax1≤ j≤n a p j ,i vertausche pi ↔ pm setze 1 (i) i := (i) a:,i , ri := a(i) pi ,: a pi ,i und berechne
(i+1) Ai+1 := ak, = Ai − i ri
➂ setze P := [e p1 , e p2 , . . . , e pn ] ➃ setze L := P[1 , 2 , . . . , n ] und R := [r1 , r2 , . . . , rn ]
7.5 LR-Zerlegung mit totaler Pivotisierung
7.5
147
LR-Zerlegung mit totaler Pivotisierung
Die Auswahl des Pivotelements hängt stark von der Skalierung des linearen Gleichungssystems ab. Man könnte in Beispiel 7.2 auch einfach die erste Gleichung mit 1000 multiplizieren und das (1,1)-Element als Pivotelement behalten. Das Ergebnis wäre dann allerdings genauso unbefriedigend wie zuvor. Ein Ausweg wäre daher, im i-ten Teilschritt dasjenige Element als Pivotelement auszuwählen, welches am betragsgrößten ist. Dieses Vorgehen nennt sich totale Pivotisierung. Es liefert die stabilste Variante der LR-Zerlegung. Bei der LR-Zerlegung mit totaler Pivotisierung wird im i-ten Teilschritt aus der (i) (i) Matrix Ai = ak, 1≤k,≤n dasjenige Element a p,q als Pivotelement gewählt, das in (i) der Restmatrix ak, i≤k,≤n betragsmäßig am größten ist: (i) a = max a (i) . p,q k, i≤k,≤n
Da man hierzu Zeilen und Spalten tauschen muss, benötigt man formal zwei Permutationsmatrizen Pi und i : Ai → Ai+1 = Li Pi Ai i . Man erhält so schließlich eine LR-Zerlegung der Matrix PA mit = 1 2 · · · n−1 . Wird die totale Pivotisierung bei der Lösung eines linearen Gleichungssystems eingesetzt, dann entsprechen Spaltenvertauschungen Permutationen der Lösung x. Der Ergebnisvektor ist also nicht mehr in der richtigen Reihenfolge. Die totale Pivotisierung ist stabil, wird aber in der Praxis nur selten eingesetzt, da die Suche nach dem betragsgrößten Element im i-ten Schritt einem Aufwand (n − i + 1)2 entspricht. Der Gesamtaufwand für die Pivotsuche n i=1
(n − i + 1)2 =
n j=1
j2 =
1 3 n + O(n 2 ) 3
ist folglich nicht mehr vernachlässigbar gegenüber der eigentlichen Rechnung. Speziell besitzt die QR-Zerlegung, die wir in Abschn. 2.2 kennenlernen werden, denselben Aufwand wie die LR-Zerlegung mit totaler Pivotisierung und wird dann generell bevorzugt, weil sie sogar noch stabiler ist.
148
7.6
7
Lineare Gleichungssysteme
Cholesky-Zerlegung
Im Fall symmetrischer Matrizen, welche auch positiv definit sind, können wir eine Dreieckszerlegung durch ein Verfahren gewinnen, das nur halb so teuer ist wie die LR-Zerlegung. Definition 7.20 Eine symmetrische Matrix A ∈ Rn×n heißt positiv definit, falls gilt x Ax > 0 für alle x = 0.
(7.11)
Sie heißt positiv semidefinit, falls x Ax ≥ 0 für alle x = 0.
(7.12)
Bemerkung 7.21 Eine symmetrische und positiv definite Matrix ist regulär, da ihr Kern aufgrund von (7.11) nur trivial sein kann. Speziell ist jede symmetrische Matrix diagonalisierbar. Dies bedeutet, es gilt A = VV mit einer orthogonalen Matrix V = [v1 , v2 , . . . , vn ] und einer Diagonalmatrix = diag(λ1 , λ2 , . . . , λn ). Dabei sind die Tupel (λi , vi ), i ∈ {1, 2, . . . , n}, die Eigenpaare von A. Setzen wir in (7.11) x = vi ein, so folgt wegen vi v j = δi, j sofort
vi Avi = vi VV vi = λi > 0. Folglich ist eine symmetrische Matrix A genau dann positiv definit, wenn alle ihre Eigenwerte positiv sind. Sind die Eigenwerte hingegen nur nichtnegativ, so ist die Matrix nur positiv semidefinit. Im Folgenden betrachten wir symmetrische Matrizen A ∈ Rn×n . Diese partitionieren wir für gegebenes 1 ≤ p < n gemäß
A A A = 1,1 1,2 A2,1 A2,2
mit A1,1 ∈ R p× p und A2,2 ∈ R(n− p)×(n− p) . Aufgrund der Symmetrie
A A A1,1 A1,2 = A = A = 1,1 2,1 A2,1 A2,2 A1,2 A2,2
gelten dann für die einzelnen Blockmatrizen die Beziehungen
A1,1 = A1,1 , A2,2 = A2,2 , A1,2 = A2,1 .
(7.13)
7.6 Cholesky-Zerlegung
149
Das folgende Lemma garantiert uns, dass das Schur-Komplement einer positiv definiten Matrix bezüglich einer beliebigen Partitionierung wieder positiv definit ist. Lemma 7.22 Sei A ∈ Rn×n symmetrisch und positiv definit. Dann ist das (n− p)×(n− p) wohldefiniert Schur-Komplement S = A2,2 − A2,1 A−1 1,1 A1,2 ∈ R und sowohl A1,1 als auch S sind symmetrisch und positiv definit.
Beweis Sei
x y
∈ Rn entsprechend zu A partitioniert. Es gilt A1,1 x x x x = x A1,1 x, A = 0≤ A2,1 x 0 0 0
wobei sich Gleichheit nur für x = 0 ergibt. Daher ist auch A1,1 symmetrisch und positiv definit, weshalb A−1 1,1 existiert. Das Schur-Komplement S ist somit wohldefiniert und
−
(7.13)
S = A2,2 − A1,2 A1,1 A2,1 = A2,2 − A2,1 A−1 1,1 A1,2 = S. Schließlich betrachten wir
x y
mit x = −A−1 1,1 A1,2 y. Es folgt
−A1,2 y + A1,2 y x A1,1 x + A1,2 y x x x = 0≤ A = y A2,1 x + A2,2 y y y y −A2,1 A−1 1,1 A1,2 y + A2,2 y 0 x = y Sy. = Sy y Da Gleichheit nur im Fall x = 0 und y = 0 gilt, ist S ebenfalls positiv definit.
Nun führen wir die Cholesky-Zerlegung formal ein. Definition 7.23 Eine Zerlegung A = LL mit unterer Dreiecksmatrix L mit positiven Diagonaleinträgen heißt Cholesky-Zerlegung von A. Die Existenz einer Cholesky-Zerlegung ist eine starke Eigenschaft, aus der sich bereits die Symmetrie und die positive Definitheit der zugrundeliegenden Matrix ableiten lassen.
150
7
Lineare Gleichungssysteme
Satz 7.24 Besitzt A eine Cholesky-Zerlegung, dann ist A symmetrisch und positiv definit.
Beweis Aus A = LL folgt A = L L = LL = A, das heißt, A ist symmetrisch. Wegen x Ax = x LL x = L x L x = L x22 ≥ 0, ist A auch positiv semidefinit. Da L nach Voraussetzung nichtsingulär ist, impliziert L x = 0 auch x = 0. Damit ist A sogar positiv definit. Die Umkehrung des vorangegangenen Satzes gilt ebenfalls.
Satz 7.25 Ist A symmetrisch und positiv definit, dann existiert eine CholeskyZerlegung von A.
Beweis Wir beweisen diesen Satz mit Hilfe vollständiger Induktion über n. Im Fall n = 1 ist A = [a1,1 ] und, weil A positiv definit ist, gilt a1,1 > 0. Wegen A = [a1,1 ] = [1,1 ] · [1,1 ] = LL !
√ folgt damit 1,1 = a1,1 > 0. Wir wollen nun annehmen, dass die Aussage für n − 1 bereits bewiesen ist und betrachten ⎤ ⎡ a1,1 A1,2 ⎦ ∈ Rn×n A=⎣ A2,1 A2,2
mit A2,1 = A1,2 und das Schur-Komplement S = A2,2 −
1 A2,1 A1,2 ∈ R(n−1)×(n−1) a1,1
(7.14)
7.6 Cholesky-Zerlegung
151
von A bezüglich a1,1 . Nach Lemma 7.22 ist a1,1 > 0 und S ist symmetrisch und √ positiv definit. Also ist 1,1 = a1,1 > 0 und aufgrund der Induktionsannahme besitzt S eine Cholesky-Zerlegung S = L˜ L˜ .
Setzen wir
⎡ L=⎣
1,1
⎡
⎤ 0
L = ⎣
⎦,
˜ 1,1 A2,1 L 1
1,1 0
⎤
1 1,1 A1,2 ⎦ ,
L˜
dann ergibt sich ⎡ LL = ⎣
1,1
⎤ ⎡ 0
˜ 1,1 A2,1 L 1
⎦·⎣
1,1
⎤
1 1,1 A1,2 ⎦
L˜
0
⎡ =⎣
⎤ a1,1
A1,2
A2,1
˜˜ a1,1 A2,1 A1,2 + LL 1
⎦.
Wegen 1 1 (7.14) A2,1 A1,2 + L˜ L˜ = A2,1 A1,2 + S = A2,2 a1,1 a1,1 folgt hieraus der Induktionsschritt n − 1 → n: ⎤
⎡ LL = ⎣
a1,1
A1,2
A2,1
A2,2
⎦ = A.
Bemerkung 7.26 Durch die Kombination von Satz 7.24 und Satz 7.25 erhalten wir die Aussage, dass eine Cholesky-Zerlegung genau dann existiert, falls A symmetrisch und positiv definit ist. Die Berechnung von L ergibt sich durch Koeffizientenvergleich: Aus ⎤ ⎡ a1,1 a1,2 · · · a1,n 1,1 ⎢a2,1 a2,2 · · · a2,n ⎥ ⎢2,1 ⎥ ⎢ ⎢ ⎢ .. .. . . .. ⎥ = ⎢ .. ⎣ . . . ⎦ ⎣ . . an,1 an,2 · · · an,n n,1
=A ⎡
⎤ ⎡
1,1 2,1 · · · ⎥ ⎢ 2,2 · · · ⎥ ⎢ ⎥·⎢ .. ⎦ ⎣ .
2,2 .. . . . . n,2 · · · n,n
=L
= L
⎤ n,1 n,2 ⎥ ⎥ .. ⎥ . ⎦
n,n
152
7
Lineare Gleichungssysteme
ergibt sich für die erste Spalte von L √ a1,1 > 0,
a1,1 = 21,1 ,
also 1,1 =
a2,1 = 2,1 1,1 , a3,1 = 3,1 1,1 , .. . an,1 = n,1 1,1 ,
also 2,1 = a2,1 /1,1 , also 3,1 = a3,1 /1,1 , .. . also n,1 = an1 /1,1 ,
für die zweite a2,2 − 22,1 > 0,
a2,2 = 22,1 + 22,2
also 2,2 =
a3,2 = 3,1 2,1 + 3,2 2,2 .. . an,2 = n,1 2,1 + n,2 2,2
also 3,2 = (a3,2 − 3,1 2,1 )/2,2 , .. . also n,2 = (an,2 − n,1 2,1 )/2,2 ,
und allgemein
j, j
j−1 = a j, j − 2j,k > 0,
1 ≤ j ≤ n,
k=1
i, j =
1 j, j
j−1 ai, j − i,k j,k ,
(7.15) j < i ≤ n.
k=1
Die Berechenbarkeit der Cholesky-Zerlegung von A vermittels (7.15) ist durch den Existenzbeweis (Satz 7.25) gewährleistet, das heißt, es gilt i,i = 0 für alle i ∈ {1, 2, · · · , n}. Insbesondere ergibt sich aus (7.15) auch sofort die folgende Aussage: Korollar 7.27 Die Cholesky-Zerlegung von einer symmetrischen und positiv definiten Matrix A ∈ Rn×n ist eindeutig. Um den Aufwand der Cholesky-Zerlegung abzuschätzen, beachten wir, dass für jeden festen Index j zur Berechnung der Koeffizienten i, j , j ≤ i ≤ n, der Cholesky-Zerlegung j Multiplikationen beziehungsweise Wurzeln gemäß den Formeln (7.15) auszuführen sind. Die Aufsummation über alle 1 ≤ j ≤ n ergibt insgesamt n j=1
(n − j + 1) j =
n 2 (n + 1) n(n + 1)(2n + 1) 1 − = n 3 + O(n 2 ) 2 6 6
7.6 Cholesky-Zerlegung
153
Multiplikationen beziehungsweise Wurzeln. Der Aufwand ist demnach nur halb so groß wie für die LR-Zerlegung. Beispiel 7.28 Für
⎡
⎤ 12 3 A = ⎣2 5 8 ⎦ 3 8 14
ergibt sich wegen 2,2 = 5 − 22 = 1, 3,2 = (8 − 3 · 2)/1 = 2, 3,3 = 14 − 32 − 22 = 1
√ 1,1 = 1 = 1, 2,1 = 2/1 = 2, 3,1 = 3/1 = 3, die Cholesky-Zerlegung LL mit
⎡ ⎤ 12 1 L = ⎣2 1 ⎦ , L = ⎣ 1 321 ⎡
⎤ 3 2⎦ . 1
Bemerkung 7.29 Im Gegensatz zur LR-Zerlegung ist die Cholesky-Zerlegung immer stabil. Dies bedeutet, eine Pivotisierung ist nicht notwendig, solange die zu zerlegende Matrix gut konditioniert ist. Analog zur LR-Zerlegung mit Rang-1-Updates, das ist Algorithmus 7.11, kann die Cholesky-Zerlegung ebenfalls mit Hilfe von Rang-1-Updates formuliert werden: Algorithmus 7.30 (Cholesky-Zerlegung mit Rang-1-Updates) input: symmetrische, positiv definite Matrix A ∈ Rn×n output: Cholesky-Zerlegung A = LL = [1 , 2 , . . . , n ][1 , 2 , . . . , n ] (1) =A ➀ Initialisierung: A1 := ak, ➁ für i = 1, 2, . . . , n setze
und berechne Ai+1
1 (i) i := a (i) :,i ai,i (i+1) := ak, = Ai − i i
154
7
Lineare Gleichungssysteme
Auf den ersten Blick sieht es so aus, als ob die Cholesky-Zerlegung in dieser Form dieselben Kosten verursacht wie die LR-Zerlegung. Man beachte allerdings, dass aufgrund der Symmetrie jeweils nur die halbe Matrix berechnet werden muss. Dies erklärt die Beschleunigung um den Faktor 2.
Übungsaufgaben Aufgabe 7.1 (Kondition und Fehlerverstärkung) Gegeben seien die Matrizen
101 99 101 99 A= , B= . 99 101 −99 101 a) Berechnen Sie die Konditionszahlen cond∞ (A) und cond∞ (B). b) Lösen Sie die Gleichungssysteme ˆ = b + b ˆ Ax = b, A(x + x) = b + b, A(x + x) für die Vektoren
1 δ δ ˆ b= , b = , b = 1 δ −δ
mit einer kleinen Zahl δ > 0. c) Vergleichen Sie die jeweiligen Fehler mit den allgemeinen Fehlerabschätzungen b∞ x∞ ≤ cond∞ (A) x∞ b∞
und
ˆ ∞ ˆ ∞ x b ≤ cond∞ (A) . x∞ b∞
Aufgabe 7.2 (Dreiecksmatrizen) Zeigen Sie die folgenden Aussagen: a) Sind R1 , R2 ∈ Rn×n obere Dreiecksmatrizen, so ist auch das Produkt R1 R2 eine obere Dreiecksmatrix. Sind L1 , L2 ∈ Rn×n untere Dreiecksmatrizen, deren Diagonaleinträge nur aus Einsen bestehen, so ist auch das Produkt L1 L2 eine untere Dreiecksmatrix, deren Diagonaleinträge nur aus Einsen bestehen. b) Ist R ∈ Rn×n eine obere Dreiecksmatrix vollen Rangs, so ist auch R−1 eine obere Dreiecksmatrix. Ist L ∈ Rn×n eine untere Dreiecksmatrix, deren Diagonaleinträge nur aus Einsen bestehen, so hat auch L ∈ Rn×n vollen Rang und L−1 ist eine untere Dreiecksmatrix, deren Diagonaleinträge nur aus Einsen bestehen.
Übungsaufgaben
155
Aufgabe 7.3 (LR-Zerlegung) Berechnen Sie die LR-Zerlegung mit Spaltenpivotsuche der Matrix ⎡ ⎤ 0 1 1 1 ⎢−2 0 0 0 ⎥ ⎥ A=⎢ ⎣ 3 0 0 −3⎦ . −4 −4 −8 4 Geben Sie dabei auch die Permutationsmatrix P an. Aufgabe 7.4 (LR-Zerlegung von Tridiagonalmatrizen) Gegeben sei die Tridiagonalmatrix ⎤ ⎡ a 1 c1 ⎥ ⎢b2 a2 c2 ⎥ ⎢ ⎥ ⎢ .. .. .. A=⎢ ⎥ ∈ Rn×n . . . . ⎥ ⎢ ⎣ bn−1 an−1 cn−1 ⎦ bn an Berechnen Sie die zugehörige LR-Zerlegung der Form ⎡
1 ⎢ 2 1 ⎢ ⎢ L = ⎢ ... ... ⎢ ⎣ n−1 1 n
⎤ ⎥ ⎥ ⎥ ⎥, ⎥ ⎦ 1
⎡ ⎤ r1 s1 ⎢ r2 s2 ⎥ ⎢ ⎥ ⎢ ⎥ . . .. .. R=⎢ ⎥. ⎢ ⎥ ⎣ rn−1 sn−1 ⎦ rn
Aufgabe 7.5 (Formel von Sherman, Morrison und Woodbury) Seien A ∈ Rn×n regulär und x, b, v, u ∈ Rn sowie A = LR. Um das geänderte lineare Gleichungssystem (A − uv )z = b zu lösen, wollen wir die Lösung x des Gleichungssystems Ax = b und die LR-Zerlegung von A wiederverwenden. a) Zeigen Sie, dass z = x + A−1 u ·
v x 1 − v A−1 u
eine Lösung des geänderten Gleichungssystems ist, falls v A−1 u = 1 gilt. Ist die Lösung eindeutig? b) Formulieren Sie einen effizienten Algorithmus zur Berechnung von z, wobei die Zerlegung von A in L · R zu benutzen ist. Dabei seien L, R, x, u und v bekannt. c) Ist v A−1 u = 1, so ergibt sich die Inverse von A − uv zu −1 = A−1 + A − uv
1 1 − v A−1 u
A−1 uv A−1 .
156
7
Lineare Gleichungssysteme
Aufgabe 7.6 (diagonaldominante Matrizen) Sei A = [ak, ]nk,=1 eine strikt diagonaldominante (n × n)-Matrix, das heißt es gelte n
|ak, | < |ak,k | für alle k ∈ {1, 2, . . . , n}.
=1 =k
Zeigen Sie, dass die LR-Zerlegung ohne Pivotisierung durchführbar ist, wobei die bei jedem Teilschritt entstehende Matrix Ai wieder strikt diagonaldominant ist. Aufgabe 7.7 (Cholesky-Zerlegung) Berechnen Sie von Hand die Cholesky-Zerlegung A = LL für die Matrix ⎡
49 ⎢28 A=⎢ ⎣42 14
28 20 36 8
⎤ 42 14 36 8 ⎥ ⎥. 108 18⎦ 18 54
Aufgabe 7.8 (Zusammenhang zwischen LR-und Cholesky-Zerlegung) a) Sei A ∈ Rn×n eine symmetrische, reguläre Matrix mit der LR-Zerlegung A = LR. Zeigen Sie, dass eine Diagonalmatrix D ∈ Rn×n existiert mit Diagonaleinträgen di = 0, i ∈ {1, 2, . . . , n}, so dass A = LDL . b) Sei nun A ∈ Rn×n eine symmetrische und positiv definite Matrix. Zeigen Sie, dass Sie dann die vorhergehende Teilaufgabe anwenden können, um A = LDL zu erhalten, wobei di > 0 für alle i ∈ {1, 2, . . . , n} gilt. Schließen Sie somit, dass ˆ gibt, so dass A = LD ˆ LD ˆ die Cholesky-Zerlegung es eine Diagonalmatrix D von A ist.
8
Matrixapproximationsverfahren
8.1
Singulärwerte
Im Folgenden wollen wir auch rechteckige Matrizen A ∈ Rm×n mit m = n zulassen. Wir beginnen mit einer Charakterisierung der von der Euklid-Norm induzierten Matrixnorm. Hierzu verwenden wir die folgende Definition der · 2 -Norm für Matrizen, vergleiche Definition 6.15: A2 := max Ax2 = max x2 =1
x2 =1
(Ax) (Ax) = max
x2 =1
√ x A Ax.
Das nachfolgende Resultat begründet, warum diese Matrixnorm Spektralnorm genannt wird. Satz 8.1 Es gilt A2 =
λmax (A A) = max{λ : λ ist Eigenwert von A A}.
Beweis Es gilt (A A) = A (A ) = A A. Die Matrix A A ist also symmetrisch und wegen x A Ax = (Ax) (Ax) = Ax22 ≥ 0 für alle x ∈ Rn auch positiv semidefinit. Gemäß Bemerkung 7.21 besitzt die Matrix A A daher n nichtnegative Eigenwerte λ1 ≥ λ2 ≥ . . . ≥ λn ≥ 0 und zugehörige,
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_8
157
158
8
Matrixapproximationsverfahren
paarweise orthonormale Eigenvektoren v1 , v2 , . . . , vn , so dass gilt ⎡ ⎢ ⎢ A A = VV mit := ⎢ ⎣
λ1
⎤ λ2
..
.
⎥ ⎥ ⎥ und V := [v1 , v2 , . . . , vn ]. ⎦
(8.1)
λn
Aufgrund der Orthonormalität der Eigenvektoren v1 , v2 , . . . , vn folgt V V = VV = I. Insbesondere lässt sich jeder Vektor x ∈ Rn in der Eigenbasis entwickeln gemäß n
x = V(V x) =
vi vi x = Vξ .
i=1 =:ξi
Dabei gilt x22
= x x = ξ V Vξ = ξ ξ =
n
ξ 2i .
i=1
Einerseits ergibt sich nun x A Ax = ξ V A AVξ = ξ ξ =
n
ξi2 · λi ≤ λ1 ·
i=1
n
ξi2 = λ1 x22 .
i=1
Andererseits gilt aber auch
max x A Ax ≥ v1 A Av1 = λ1 · v1 v1 = λ1 ,
x2 =1
und somit max x A Ax = λ1 .
x2 =1
Beispiel 8.2 Wir betrachten wie im Beispiel 6.9 die Matrix A=
1 −3 −2 2
und wollen deren Spektralnorm berechnen. Dazu bestimmen wir die Eigenwerte der Matrix 1 −3 1 −2 10 −8 A A= = . −2 2 −3 2 −8 8
8.1 Singulärwerte
159
Es gilt det(A A − λI) = det
10 − λ −8 = (10 − λ)(8 − λ) − 64 = λ2 − 18λ + 16. −8 8 − λ
Nullsetzen liefert die beiden Eigenwerte λ1/2 =
18 ±
√ √ 260 = 9 ± 65 2
und damit A2 =
√ 9 + 65.
Wie wir im Beweis von Satz 8.1 gesehen haben, scheinen die Eigenwerte der Matrix A A eine besondere Rolle zu spielen. In der Tat gilt dies für die gesamte Numerik, wobei speziell die r ≤ n positiven Eigenwerte λ1 ≥ λ2 ≥ . . . ≥ λr > λr +1 = λr +2 = . . . = λn = 0 wichtig sind. √ Definition 8.3 Sei A ∈ Rm×n . Die Wurzeln σi := λi , i ∈ {1, 2, . . . , r }, der r ≤ min{m, n} positiven Eigenwerte der Matrix A A heißen Singulärwerte von A. Der nachfolgende Satz liefert eine orthogonale Zerlegung einer gegebenen Matrix bezüglich ihrer Singulärwerte. Satz 8.4 Jede Matrix A ∈ Rm×n besitzt eine Singulärwertzerlegung der Form A = UV . Hierbei besteht
⎡ ⎢ ⎢ := ⎢ ⎣
σ1
⎤ σ2
..
.
⎥ ⎥ ⎥ ∈ Rr ×r ⎦ σr
160
8
Matrixapproximationsverfahren
aus den Singulärwerten von A und V := [v1 , v2 , . . . , vr ] ∈ Rn×r aus den entsprechenden orthonormalen Eigenvektoren v1 , v2 , . . . , vr zu den positiven Eigenwerten von A A. Weiterhin ist U := AV −1 ∈ Rm×r und es gilt U U = I ∈ Rr ×r .
Beweis Es bezeichne W := [vr +1 , vr +2 , . . . , vn ] die Matrix bestehend aus den Eigenvektoren zu den verschwindenden Eigenwerten von A A. Es gilt
V V A AV V A AW = , A A[V, W] = W W A AV W A AW
vergleiche (8.1). Ein Koeffizientenvergleich ergibt W A AW = (AW) (AW) = 0, beziehungsweise AW = 0. Daher folgt AW W = A. UV = AV −1 V = A(I − WW ) = A − =0
Weiterhin erhalten wir ⎡ ⎢ ⎢ U U = (AV −1 ) (AV −1 ) = −1 VA AV −1 = −1 ⎢ ⎣
λ1
⎤ λ2
..
.
⎥ ⎥ −1 ⎥ = I. ⎦ λr
Beispiel 8.5 Vorgelegt sei die Matrix ⎡
⎤ 11 A = ⎣1 1⎦ . 11 Die Matrix A A =
33 33
λ2 = 0 mit den zugehörigen Eigenvektoren besitzt die Eigenwerte λ1 = 6 und √ √ v1 = [1, 1] / 2 und v2 = [1, −1] / 2. Daher finden wir =
√ 1 1 . 6 und V = √ 2 1
8.2 Adaptive Kreuzapproximation
161
Schließlich folgt ⎡
U = AV −1
⎤ ⎡ ⎤ 11 1 1 1 1 = √ ⎣1⎦ . = √ ⎣1 1⎦ 2 3 11 1 3 1
Wir wollen nun die Situation in Betracht ziehen, dass die Dimensionen m und n der Matrix A ∈ Rm×n sehr groß sind. Weisen die Singulärwerte dieser Matrix ein schnelles Abklingen auf, wird also σi schnell klein mit wachsendem i, so lässt sich die Matrix A ∈ Rm×n sehr gut durch eine Matrix Ar ∈ Rm×n mit rang Ar = r rang A ≤ min{m, n} approximieren. Denn für jedes k < rang A lässt sich leicht mit Hilfe der Singulärwertzerlegung eine Matrix Ak ∈ Rm×n mit rang Ak = k angeben, indem man alle Singulärwerte σ mit > k einfach zu Null setzt, so dass gilt A − Ak 2 = σk+1 . Man spricht in diesem Fall von einer Niedrigrangapproximation. Ein schärferes Kriterium liefert die Frobenius-Norm. Hier gilt aufgrund der Invarianz der Spur unter orthogonalen Transformationen rang A A − Ak F = σ2 , =k+1
siehe Übungsaufgabe 8.3. Das Berechnen einer Niedrigrangapproximation über die Singulärwertzerlegung ist allerdings in der Praxis oftmals viel zu aufwendig. Wir stellen daher zwei alternative Berechnungsverfahren vor: die adaptive Kreuzapproximation und die pivotisierte Cholesky-Zerlegung.
8.2
Adaptive Kreuzapproximation
Als erstes Verfahren zur Berechnung einer Niedrigrangapproximation betrachten wir die adaptive Kreuzapproximation. Diese basiert ebenfalls auf der Gauß-Elimination uns ist sehr ähnlich zur LR-Zerlegung mit Rang-1-Updates (Algorithmus 7.11), beinhaltet aber eine spezielle Pivotisierungsstrategie. Ziel der adaptiven Kreuzapproximation ist es, für eine gegebene Matrix A ∈ Rm×n eine Niedrigrangapproximation Ak = Lk Rk an A zu bestimmen mit Lk ∈ Rm×k und Rk ∈ Rk×n , so dass k = rang Ak min{m, n} und A − Ak F < ε gilt für eine vorgegebene Toleranz ε > 0.
162
8
Matrixapproximationsverfahren
Niedrigrangapproximationen existieren, wenn die Matrix A beispielsweise von der Diskretisierung einer glatten Funktion herrührt. Beispiel 8.6 Es sei f : [−1, 1]2 → R eine Funktion, deren Taylor-Entwicklung um den Nullpunkt fr (x, y) :=
r
γα,β x α y β mit γα,β =
α+β=0
β
∂ xα ∂ y f (0, 0) α!β!
schnell konvergiere in dem Sinn, dass der Fehler er := f − fr C([−1,1]2 ) =
max
−1≤x,y≤1
| f (x, y) − fr (x, y)|
für r → ∞ sehr schnell klein werde. Für die Punkte −1 ≤ x1 < x2 < . . . < xm ≤ 1 und −1 ≤ y1 < y2 < . . . < yn ≤ 1 definieren wir die Matrix ⎤ f (x1 , y1 ) f (x1 , y2 ) · · · f (x1 , yn ) ⎢ f (x2 , y1 ) f (x2 , y2 ) · · · f (x2 , yn ) ⎥ ⎥ ⎢ A=⎢ ⎥ ∈ Rm×n . .. .. .. ⎦ ⎣ . . . f (xm , y1 ) f (xm , y2 ) · · · f (xm , yn ) ⎡
Setzen wir nun β β α xα = x 1α , x 2α , . . . , x m , yβ = y1 , y2 , . . . , ynβ , so folgt offenbar bezüglich der Gesamtnorm die Abschätzung r √ √ A − γ x y α,β α β = mn max max | f (x i , y j ) − f r (x i , y j )| ≤ mner . α+β=0
G
1≤i≤m 1≤ j≤n
Die Matrix A lässt sich demnach gut durch eine Niedrigrangapproximation annähern. Der folgende Algorithmus gibt eine mögliche Implementierung der adaptiven Kreuzapproximation an, mit der man beispielsweise die Matrix aus Beispiel 8.6 effizient annähern kann. Algorithmus 8.7 (adaptive Kreuzapproximation) input: Matrix A ∈ Rm×n , Toleranz ε > 0 output: Niedrigrangapproximation A ≈ Lk Rk = [1 , 2 , . . . , k ] [r1 , r2 , . . . , rk ]
8.2 Adaptive Kreuzapproximation
163
➀ Initialisierung: k := 0 und e0 := 2ε ➁ solange ek > ε setze k := k + 1 wähle das Element in (i k , jk )-Position als Pivotelement setze rˆk := aik ,: − k−1 j=1 [ j ]i k r j setze rk := rˆk /[ˆrk ] jk k−1 setze k := a:, jk − i=1 [ri ] jk i berechne ek := A − [1 , 2 , . . . , k ][r1 , r2 , . . . , rk ] F ➂ setze Lk := [1 , 2 , . . . , k ] und Rk := [r1 , r2 , . . . , rk ] Bei der Durchführung von Algorithmus 8.7 ergeben sich allerdings zwei Schwierigkeiten. Die optimale Wahl des Pivots im Schur-Komplement erfordert eine totale Pivotisierung. Allerdings würde dies die Effizienz des Verfahrens sehr negativ beeinflussen. Daher hat sich in der Praxis die folgende Strategie durchgesetzt: Zu Beginn wählt man einen zufälligen Zeilenindex i 1 . In jedem Schritt wird jk dann so gewählt, dass [ˆrk ] jk den größten Betrag in der Zeile rˆk besitzt. Den nächsten Zeilenindex i k+1 erhält man nun, indem man das betragsgrößte Element in der Spalte k wählt unter der Nebenbedingung, dass i k+1 = i k gilt. Die andere Schwierigkeit bildet die Berechnung des Approximationsfehlers ek im letzten Schritt der Schleife, die ebenfalls sehr teuer ist. Daher verwendet man hier das adaptive Abbruchkriterium k 2 rk 2 ≤ εLk Rk F ,
(8.2)
wobei man Lk = [1 , 2 , . . . , k ] und Rk = [r1 , r2 , . . . , rk ] setzt. Die Rechtfertigung dieses Kriteriums basiert auf einer Saturationsannahme: Wir nehmen an, dass der Fehler in jedem Schritt um einen konstanten Faktor 0 < ϑ < 1 reduziert wird, das heißt A − Lk Rk F ≤ ϑA − Lk−1 Rk−1 F . Wegen k rk F = k 2 rk 2 gilt dann k 2 rk 2 = Lk Rk − Lk−1 Rk−1 F ≤ A − Lk Rk F + A − Lk−1 Rk−1 F ≤ (1 + ϑ)A − Lk−1 Rk−1 F . Umgekehrt ergibt sich Lk Rk − Lk−1 Rk−1 F ≥ A − Lk−1 Rk−1 F − A − Lk Rk F ≥ (1 − ϑ)A − Lk−1 Rk−1 F .
164
8
Matrixapproximationsverfahren
Folglich ergibt sich in Abhängigkeit von ϑ die Normäquivalenz (1 − ϑ)A − Lk−1 Rk−1 F ≤ k 2 rk 2 ≤ (1 + ϑ)A − Lk−1 Rk−1 F . Zusammen mit (8.2) erhalten wir schließlich die relative Fehlerschranke A − Lk Rk F ≤
2−ϑ (2 − ϑ)ε 4ε k rk F ≤ Lk Rk F ≤ A F . 1−ϑ 1−ϑ 1−ϑ
Abschließend wollen wir anmerken, dass sich die Frobenius-Norm in (8.2) sukzessive via des binomischen Lehrsatzes Lk Rk 2F
=
Lk−1 Rk−1 2F
+2
k−1
(i k )(ri rk ) + k 2 rk 2
i=1
berechnen lässt. Man beachte, dass mit diesen Überlegungen zur Durchführung von Algorithmus 8.7 nicht die gesamte Matrix A bekannt sein muss, sondern nur diejenigen Einträge, auf die tatsächlich zugegriffen wird. In der Praxis werden diese nur bei Bedarf berechnet. Wie man leicht einsieht, sind daher die Kosten zur Berechnung A von der Ordnung O k 2 (m +n) einer Rang-k-Approximation LkRk für die Matrix und der Speicheraufwand ist O k(m + n) . Ist also k für eine akzeptable Toleranz ε klein verglichen mit den Dimensionen m und n der ursprünglichen Matrix, so erhalten wir eine sehr effiziente Niedrigrangapproximation der Ausgangsmatrix.
8.3
Pivotisierte Cholesky-Zerlegung
Wie die Gauß-Elimination lässt sich auch die Cholesky-Zerlegung zur Berechnung einer Niedrigrangapproximation von Matrizen verwenden. Hierbei muss man sich allerdings auf symmetrische, positiv semidefinite Matrizen einschränken. Dann erhählt man allerdings im Gegensatz zur adaptiven Kreuzapproximation ein rigoroses Abbruchkriterium und garantierte Fehlerschranken. Hierzu ist das folgende Resultat entscheidend, welches uns angibt, wo das maximale Element einer positiv semidefiniten Matrix zu finden ist. Satz 8.8 Sei A ∈ Rn×n symmetrisch und positiv semidefinit. Dann gilt max |ai, j | = max ai,i .
1≤i, j≤n
1≤i≤n
Der betragsgrößte Eintrag steht also immer auf der Diagonalen. Insbesondere sind alle Diagonaleinträge nichtnegativ.
8.3 Pivotisierte Cholesky-Zerlegung
165
Beweis Zunächst bemerken wir, dass Lemma 7.22 auch im Fall positiv semidefiniter Matrizen gilt: Das Schur-Komplement einer positiv semidefiniten Matrix ist wiederum symmetrisch und positiv semidefinit. Somit muss nach einem Schritt der Cholesky-Zerlegung aus Algorithmus 7.30 bezüglich eines beliebigen Pivotelements ai,i auf der Diagonalen von A gelten 0 ≤ a j, j −
2 ai, j
ai,i
oder |ai, j | ≤
√ ai,i a j, j .
Schätzen wir nun das geometrische durch das arithmetische Mittel ab, erhalten wir wie gewünscht |ai, j | ≤
ai,i + a j, j √ ai,i a j, j ≤ ≤ max ai,i . 1≤i≤n 2
Basierend auf dem vorangegangen Satz ist folgender Algorithmus zur pivotisierten Cholesky-Zerlegung naheliegend. Algorithmus 8.9 (pivotisierte Cholesky-Zerlegung) input: symmetrisch und positiv semidefinite Matrix A ∈ Rn×n , Toleranz ε > 0 output: Niedrigrangapproximation A ≈ Lk Lk ➀ Initialisierung: k := 0, d := diag(A) und e0 := d1 ➁ solange ek > ε setze k := k + 1 bestimme j := arg max1≤i≤n di k−1 berechne ˆ k := a:, j − i=1 [i ] j i ˆ setze k := k / d j für i = 1, . . . , n setze di := di − [k ] i2 setze ek := d1 ➂ setze Lk := [1 , 2 , . . . , k ] Der Aufwand der pivotisierten Cholesky-Zerlegung ist analog zur adaptiven Kreuzapproximation O (k 2 n), während der Speicheraufwand O (kn) ist. Da allerdings nur die halbe Matrix berechnet und gespeichert werden muss, ist die Konstante nur halb so groß wie bei der adaptiven Kreuzapproximation. Ein erheblicher Vorteil gegenüber der adaptiven Kreuzapproximation ist, dass der Approximationsfehler rigoros in der Spurnorm · tr kontrolliert wird, vergleiche
166
8
Matrixapproximationsverfahren
Übungsaufgabe 8.4. Der Approximationsfehler im k-ten Schritt ist durch die Spur des aktuellen Schur-Komplements A − Lk L := spur A − Lk L = ek k tr k gegeben und wir brechen das Verfahren erst ab, wenn dieser kleiner oder gleich der vorgegebenen Toleranz ε ist. Speziell gibt die Berechnung des Fehlers ek Aufschluss darüber, was die optimale Pivotisierungsstrategie wäre: Um den Fehler in jedem Schritt zu minimieren, muss man in jedem Schritt diejenige Spalte des Schur-Komplements auswählen, die die maximale Euklid-Norm besitzt. Dies würde allerdings den Gesamtaufwand des Verfahrens erheblich vergrößern, da hierzu die Euklid-Norm jeder Spalte des SchurKomplements gebildet werden müsste.
Übungsaufgaben Aufgabe 8.1 (Abschätzung der Spektralnorm) Beweisen Sie für Matrizen A ∈ Rn×n die Abschätzung der Spektralnorm A22 ≤ A1 A∞ . Aufgabe 8.2 (Abschätzung der Spektralnorm) Berechnen Sie die Singulärwertzerlegung der Matrix 9 8 12 A= . 12 −6 16 Aufgabe 8.3 (Niedrigrangapproximation) Es sei A ∈ Rm×n . a) Zeigen Sie, dass es zu jedem k < rang A eine Matrix Ak ∈ Rm×n vom Rang k gibt, so dass A − Ak 2 = σk+1 . b) Zeigen Sie, dass es zu jedem k < rang A eine Matrix Ak ∈ Rm×n vom Rang k gibt, so dass rang A A − Ak F = σ2 . =k+1
n Aufgabe 8.4 (Spurnorm) Zeigen Sie, dass die Spurnorm Atr := i=1 ai,i tatsächlich eine Norm auf der Menge der symmetrischen, positiv semidefiniten (n ×n)Matrizen definiert. Überlegen Sie sich weiterhin, dass A2 ≤ Atr ≤ nA2 gilt.
9
Graphenbasierte Löser
9.1
Motivation
Eine wichtige Anwendung der Graphentheorie liegt in der Konstruktion schneller Löser für dünnbesetzte lineare Gleichungssysteme, wie sie etwa bei der Diskretisierung partieller Differentialgleichungen auftreten. Repräsentativ betrachten wir dazu das Poisson-Problem auf dem Einheitsquadrat := (0, 1)2 . Gesucht ist eine zweimal stetig differenzierbare Funktion u, so dass gilt −u(x) = f (x), u(x) = 0,
x ∈ , x ∈ ∂.
(9.1)
Hierbei gilt für den Laplace-Operator u(x) :=
∂ 2u ∂ 2u (x1 , x2 ) + 2 (x1 , x2 ). 2 ∂ x1 ∂ x2
Das Poisson-Problem (9.1) beschreibt beispielsweise das elektrostatische Potential u, wenn f proportional zur elektrischen Ladungsdichte ist. Ziel ist es, die Lösung des Poisson-Problems vermittels finiter Differenzen zu approximieren. Hierzu verwenden wir, dass ∂ 2u u(x1 + h, x2 ) − 2u(x) + u(x1 − h, x2 ) (x1 , x2 ) ≈ 2 h2 ∂ x1
(9.2)
∂ 2u u(x1 , x2 + h) − 2u(x) + u(x1 , x2 − h) (x1 , x2 ) ≈ 2 h2 ∂ x2
(9.3)
und analog
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_9
167
168
9
Graphenbasierte Löser
gilt, wobei h > 0 hinreichend klein sei. Nachfolgend werden wir den LaplaceOperator durch diese Approximation ersetzen. Wir wählen ein n ∈ N und führen auf dem Einheitsquadrat ein äquidistantes Gitter zur Schrittweite h = 1/n ein. Die Gitterpunkte sind dann gegeben durch x i, j := h[i, j] für alle i, j ∈ {0, 1, . . . , n}. Gemäß (9.2) und (9.3) soll die numerische Approximation u i, j ≈ u(x i, j ) zum Poisson-Problem (9.1) in allen Gitterpunkten x i, j mit i, j ∈ {1, 2, . . . , n − 1} im Inneren des Einheitsquadrats der Gleichung 1 4ui, j − u i−1, j − u i+1, j − u i, j−1 − u i, j+1 = f i, j 2 h
(9.4)
genügen. In allen Randpunkten x i, j ∈ ∂, das heißt für alle Gitterpunkte x i, j mit i ∈ {0, n} oder j ∈ {0, n}, muss ui, j hingegen die Randbedingung ui, j = 0 erfüllen. Wir erhalten folglich ein lineares Gleichungssystem Au = f mit einer dünnbesetzten Matrix A ∈ R N ×N für die N = (n − 1)2 unbekannten Knotenwerte ui, j im Inneren des Einheitsquadrats. Beispiel 9.1 Konkret erhalten wir bei lexikographischer Sortierung der Knoten für n = 4 das lineare Gleichungssystem ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ u 1,1 f 1,1 4 −1 −1 ⎥ ⎢u 1,2 ⎥ ⎢ f 1,2 ⎥ ⎢−1 4 −1 −1 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢u 1,3 ⎥ ⎢ f 1,3 ⎥ ⎢ −1 4 −1 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢u 2,1 ⎥ ⎢ f 2,1 ⎥ ⎢−1 4 −1 −1 ⎥ ⎢ ⎥ ⎢ ⎥ 1 ⎢ ⎥ · ⎢u 2,2 ⎥ = ⎢ f 2,2 ⎥ = f . (9.5) ⎢ −1 −1 4 −1 −1 Au = ⎢ ⎢ ⎥ ⎥ ⎥ ⎢ 16 ⎢ ⎢ ⎥ ⎢ ⎥ −1 −1 4 −1⎥ ⎥ ⎢u 2,3 ⎥ ⎢ f 2,3 ⎥ ⎢ ⎢ ⎢ ⎥ ⎥ ⎥ ⎢ −1 4 −1 ⎥ ⎢u 3,1 ⎥ ⎢ f 3,1 ⎥ ⎢ ⎣ ⎣ ⎦ ⎦ ⎣ −1 −1 4 −1 u 3,2 f 3,2 ⎦ −1 −1 4 u 3,3 f 3,3 Der zur Matrix gehörige Graph G A ist demnach gegeben durch
Die Schleifen, welche den Diagonaleinträgen entsprechen, sind hier (und in den folgenden Beispielen) der Übersichtlichkeit halber vernachlässigt.
9.2 Cholesky-Zerlegung und Graphen
9.2
169
Cholesky-Zerlegung und Graphen
Da die Matrix A symmetrisch und positiv definit ist, kann das entstandene Gleichungssystem mit Hilfe der Cholesky-Zerlegung gelöst werden. Hierbei interessiert uns speziell die Eliminationsreihenfolge der Unbekannten. Definition 9.2 Eine Eliminationsreihenfolge auf einem Graphen G = (V , E) ist eine Nummerierung σ : {1, 2, . . . , |V |} → V der Knoten. Diese führt auf den geordneten Graphen G σ = (V , E, σ ). Offenbar kommt die Umnummerierung der Knoten einer symmetrische Permutationen der Matrixeinträge gleich, also einer Permutation, die zugleich auf die Zeilen und die Spalten der Matrix A wirkt. Dies verändert die Struktur des zugehörigen Graphen nicht. Es werden lediglich die entsprechenden Knoten umnummeriert. Die Durchführung der Cholesky-Zerlegung aus Algorithmus 7.30 auf die umnummerierte Matrix lautet A1 := A, Ai+1 := Ai − i i , i = {1, 2, · · · , N },
(9.6)
mit 1 (i) i :=
a:,σ (i) . (i) aσ (i),σ (i)
(9.7)
Sie entspricht einer sukzessiven Reduktion G A2 , G A3 , . . . , G A N +1 von G A hin zum Nullgraphen durch Elimination der Knoten σ (1), σ (2), . . . , σ (N ). Im Hinblick auf das lineare Gleichungssystem (9.4) entsprechen die Knoten im jeweiligen Graphen genau den zu eliminierenden Unbekannten. Daher schreiben wir nachfolgend u σ (i) für die Variable, die zum Knoten σ (i) gehört. Beispiel 9.3 Wir betrachten die Matrix A aus (9.5) mit zugehörigem Graphen G A . Für diese Matrix ergibt der erste Eliminationsschritt bezüglich σ (1) = (1, 1)
170
9
Graphenbasierte Löser
Wählen wir nun σ (2) = (1, 2), so erhalten wir bei Rundung auf zwei Dezimalstellen
Im Fall von σ (3) = (2, 2) ergibt sich dann ebenfalls gerundet
Der Aufwand der Cholesky-Zerlegung für dünnbesetzte Matrizen lässt sich wie folgt abschätzen. Lemma 9.4 Es bezeichne νi := nnz(i ) die Anzahl der Nicht-Nulleinträge in i . Dann ist der Aufwand, um die Cholesky-Zerlegung A = LL mittels (9.6) zu bestimmen, gegeben durch θ=
N νi (νi + 3) . 2 i=1
Die Anzahl η = nnz(L) der Nicht-Nulleinträge in L ist η=
N
νi .
k=1
Beweis Für die Berechnung von i gemäß (9.7) werden νi Multiplikationen benö tigt. Da i i symmetrisch ist, beträgt der Aufwand zur Berechnung dieses Rang-1Updates νi (νi + 1)/2 Multiplikationen. Ebenso viele Additionen werden dann zur
9.2 Cholesky-Zerlegung und Graphen
171
Bildung des Schur-Komplements Ai − i i benötigt. Damit folgt der erste Teil der Behauptung. Der zweite Teil ergibt sich direkt aus der Darstellung L = [1 , 2 , . . . , N ]
durch Nachzählen.
Wir wollen nun Eliminationsprozesse ganz allgemein auf geordneten Graphen einführen. Definition 9.5 Für einen geordneten Graphen G σ = (V , E, σ ) ist das Defizit eines Knotens v ∈ V gegeben durch
D(v) := {u, w} : {u, v}, {v, w} ∈ E, {u, w} ∈ /E . Der Graph
G v := V \ {v}, E(V \ {v}) ∪ D(v)
heißt v-Eliminiationsgraph von G σ . Hierbei ist
E(V \ {v}) := {u, w} ∈ E : u = v und w = v . Der Eliminationsprozess P G σ := {G 1 , G 2 , . . . , G |V | } ist die Folge der Eliminationsgraphen, gegeben durch die Rekursion G i+1 := (G i )σ (i) für i ∈ {1, 2, . . . , |V |} mit G 1 := G σ . Der Fill-in ist fill(σ ) :=
n−1
D σ (i) ,
i=1
wobei D σ (i) das Defizit von σ (i) in G i ist. Schließlich lautet der Eliminationsgraph G σ = V , E ∪ fill(σ ) .
Bemerkung 9.6 Die vorangegangene Definition ist konsistent mit der CholeskyZerlegung. Für die LR-Zerlegung gilt eine entsprechende Definition mit gerichteten Graphen. In beiden Fällen entspricht das Defizit D σ (i) (in exakter Arithmetik) genau den zusätzlichen Nicht-Nulleinträgen, welche bei der Elimination des Knotens σ (i) entstehen.
172
9
Graphenbasierte Löser
Beispiel 9.7 Wenden wir auf die Matrix A aus (9.5) die Eliminationsreihenfolge σ (1) = (1, 1), σ (2) = (1, 2), σ (3) = (1, 3) und so fort an, so ergibt sich der Eliminationsgraph G σ gemäß
9.3
Nested Dissection
Ziel dieses Abschnitts ist es, eine Nummerierung σ der Knoten des zugehörigen Graphen zu finden, welche den Fill-in minimiert. Hierzu machen wir uns die folgende Eigenschaft des Eliminationsprozesses zu eigen: eine Fill-in-Kante {v, w} entsteht genau dann, wenn es in G σ einen v-w-Weg gibt, der ausschließlich Knoten enthält, welche sowohl vor v als auch vor w eliminiert wurden. Satz 9.8 Sei G σ ein geordneter Graph. Dann ist {v, w} genau dann eine Kante in G σ , wenn ein Weg (v, v1 , v2 , . . . , vr −1 , w) in G σ existiert mit
σ −1 (vi ) < min σ −1 (v), σ −1 (w) für 1 ≤ i < r .
(9.8)
Beweis Sei k = min σ −1 (v), σ −1 (w) . Wir zeigen induktiv, dass dann zu jeder Kante {v, w} in G σ ein Weg mit der Eigenschaft (9.8) existiert. Für k = 1 ist {v, w} ∈ E und (9.8) gilt trivialerweise. Sei also die Behauptung für alle i ≤ k erfüllt. Ist {v, w} ∈ E, so gilt (9.8) automatisch. Für {v, w} ∈ fill(σ ) gibt es gemäß der Definition von fill(σ ) einen Knoten vi ∈ V , der v und w verbunden hat, also
σ −1 (vi ) < min σ −1 (v), σ −1 (w) mit {v, vi }, {vi , w} ∈ E ∪ fill(σ ). Nach Induktionsvoraussetzung existieren also v-vi -Wege und vi -w-Wege in G σ , die (9.8) erfüllen. Das Zusammensetzen zweier solcher Wege ergibt dann einen entsprechenden v-w-Weg.
9.3 Nested Dissection
173
Die Umkehrung der Aussage beweisen wir per Induktion über die Weglänge. Falls r = 1, ist {v, w} ∈ E und somit auch in G σ . Sei die Behauptung also erfüllt für alle Wege mit Länge ≤ r und sei v = v0 , v1 , . . . , vr +1 = w ein v-w-Weg in G σ , für den (9.8) gilt. Wähle nun v j derart, dass σ −1 (v j ) = max σ −1 (vi ) : 1 ≤ i < r + 1 . Dann erfüllen die Teilwege von v nach v j und von v j nach w die Induktionsvoraussetzung. Somit folgt {v, v j }, {v j , w} ∈ E ∪ fill(σ ) und daher gilt spätestens, wenn v j eliminiert wird, auch {v, w} ∈ E ∪ fill(σ ).
Korollar 9.9 Die Elimination des Knotens σ (k) verbindet paarweise alle Knoten σ (i) und σ ( j), mit denen σ (k) zum Zeitpunkt seiner Elimination verbunden ist.
Nun sind wir soweit, den bekannten Nested-Dissection-Algorithmus, wie er 1973 von Alan George in [Geo73] vorgeschlagen wurde, anzugeben. Er basiert auf der Beobachtung aus Satz 9.8, dass nur Knotenpaare, zwischen denen ein Weg aus zuvor eliminierten Knoten existiert, Fill-in generieren können. Um das Vorgehen besser zu verstehen, sei der Einfachheit halber n = 2 angenommen. Dies bedeutet, es ist A ∈ R N ×N mit N = (n − 1)2 = (2 − 1)2 . Um die Darstellung zu vereinfachen, bezeichnen wir die Knoten des zu A gehörigen Graphen durch Tupel (i, j) mit i, j ∈ {1, 2, . . . , n}. Algorithmus 9.10 (Nested Dissection) input: Knotenmenge S := {(i, j) : 1 ≤ i, j < 2 } in lexikographischer Sortierung output: Knotenmengen S1 , S2 . . . , S
➀ für k = 1, 2, . . . , 2 − 1 zerlege k = 2 p (2q + 1) mit p, q ∈ N und setze ι(k) := p + 1 ➁ für k = , − 1, . . . , 1
setze Sk := (i, j) ∈ S : max{ι(i), ι( j)} = k
Der Algorithmus sortiert die Knoten sukzessive nach dem Schema gerade / ungerade: Die Menge S1 enthält alle Knoten aus S, bei denen beide Indizes ungerade sind. Die Menge S2 enthält alle Knoten aus S \ S1 , die mindestens einen geraden, aber nicht
174
9
Graphenbasierte Löser
Abb. 9.1 Besetzungsmuster von A in lexikographischer Sortierung für n = 17 (oben links) und in Nested-Dissection-Sortierung (unten links). Rechts davon befindet sich jeweils die zugehörige Cholesky-Zerlegung
durch vier teilbaren Index haben. Die Menge S3 enthält alle Knoten aus S \ (S1 ∪ S2 ), die mindestens einen durch vier, aber nicht durch acht teilbaren Index haben, und so weiter. Dadurch müssen die einzelnen Komponenten von Sk zwangsläufig paarweise auf verschiedenen Quadraten des Gitters angeordnet sein.
9.3 Nested Dissection
175
Beispiel 9.11 Für n = 8 erhalten wir die folgenden Mengen S1 , S2 , S3 :
Für n = 17 sind die Besetzungsmuster von A und der zugehörigen CholeskyZerlegung bezüglich der ursprünglichen und der durch Algorithmus 9.10 erzeugten neuen Sortierung der Indizes in Abb. 9.1 zu sehen. Die Speicherplatzersparnis ist in diesem Fall noch nicht riesig, aber die Anzahl der Nicht-Nulleinträge in der Cholesky-Zerlegung wird immerhin in etwa halbiert. Die Strategie ist nun, die Eliminationsreihenfolge σ für die Matrix A derart zu wählen, dass zunächst alle Knoten aus S1 eliminiert werden, gefolgt von denen aus S2 , und so weiter bis S . Wir erhalten folgendes Lemma. Lemma 9.12 Sei n = 2 und seien S1 , S2 , . . . , S die Knotenmengen aus Algorithmus 9.10. Dann gelten folgende Aussagen: 1. Die Menge Sk zerfällt in 22( −k) Teilmengen mit jeweils 2(2k −1)−1 < 2k+1 Elementen, die nicht interagieren. 2. Werden die Knoten in den Mengen S1 , S2 , . . . , S so nummeriert, dass für j < k alle Indizes in S j kleiner als die Indizes in Sk sind, so ist jeder Knoten in Sk bis zum Zeitpunkt seiner Elimination höchstens mit 4(2k − 1) anderen Knoten verbunden.
176
9
Graphenbasierte Löser
Beweis Der Beweis der ersten Aussage erfolgt per Induktion. Für k = werden im zweiten Schritt des Algorithmus 9.10 alle Knoten ausgewählt, bei denen mindestens ein Index durch n/2 = 2 −1 teilbar ist. Dies sind genau die 2n − 3 = 2(2 − 1) − 1 Knoten in der mittleren Zeile sowie der mittleren Spalte des Gitters. Durch Entfernen dieser Knoten zerfällt das Gitter in 4 Teile. Sei die Behauptung also für ein k ≥ 2 erfüllt. Durch Entfernen jeder der 22( −k) Teilmengen im k-ten Schritt zerfällt das Gitter in 4 · 22( −k) = 22( −(k−1)) Teile. Die Menge Sk−1 besteht genau aus allen Knoten jeder mittleren Zeile und Spalte dieser Teile. Folglich zerfällt Sk−1 in genau 22( −(k−1)) Teilmengen, von denen jede 2(n/2 −(k−1) )−3 = 2(2k−1 −1)−1 Knoten enthält. Die zweite Aussage folgt sofort aus folgender Beobachtung: Jede Teilmenge von S j wird von höchstens 4(2k − 1) Knoten aus Sk mit k > j umgeben. Der letzte Knoten aus jeder Teilmenge von S j , der eliminiert wird, ist dann mit allen diesen Knoten verbunden. Mit Hilfe dieses Lemmas können wir leicht den folgenden Satz beweisen, der eine obere Schranke für den Aufwand θ und den Speicherplatzbedarf η der CholeskyZerlegung aus unserem Beispiel liefert. Satz 9.13 Sei n = 2 und seien S1 , S2 , . . . , S die Knotenmengen aus Algorithmus 9.10. Werden die Knoten in diesen Mengen aufsteigend nummeriert, beginnend mit den Knoten in S1 , gefolgt von denen in S2 und so weiter bis zu den Knoten in S , dann gilt θ = O(N 3/2 ) und η = O(N log N ).
Beweis Aus Lemma 9.4 wissen wir bereits, dass θ=
N N νi (νi + 3) 2 νi für νi ≥ 3. ≤ 2 i=1
i=1
Außerdem ist für jede Variable in Sk nach Lemma 9.12 die Anzahl der Einträge im zugehörigen Vektor i beschränkt durch νi < 4 · 2k . Die Anzahl der Knoten in Sk wiederum ist beschränkt durch |Sk | < 22( −k) 2k+1 . Summieren wir nun über die Mengen Sk , so erhalten wir θ≤
N
νi2
n 2 /4 gilt, so gibt es einen Knoten v ∈ V derart, dass G (v) mehr als (n − 1)2 /4 Kanten besitzt. c) Falls G mehr als n 2 /4 Kanten hat, so gibt es in G ein Dreieck, das heißt einen Zyklus der Länge 3.
10
Dreitermrekursion
10.1
Theoretische Grundlagen
Dreitermrekursionen treten in vielen praktischen Anwendungen auf, insbesondere im Zusammenhang mit Orthogonalpolynomen. Definition 10.1 Eine Rekursion der Form pk = ak pk−1 + bk pk−2 + ck , k = 2, 3, . . .
(10.1)
mit ak , bk , ck ∈ R sowie bk = 0 heißt Dreitermrekursion. Die zugehörige Rückwärtsrekursion lautet pk−2 = −
ak 1 ck pk−1 + pk − , k = n, n − 1, . . . , 2. bk bk bk
(10.2)
Geht (10.2) aus (10.1) durch Vertauschen von pk und pk−2 hervor, das heißt, gilt bk = −1, so heißt die Rekursion symmetrisch. Verschwinden alle ck , so heißt die Rekursion homogen, ansonsten heißt sie inhomogen.
Beispiel 10.2 • Dreitermrekursionen können verwendet werden, um trigonometrische Funktionen mit verschiedenen Frequenzen auszuwerten. Dazu seien p0 = 1, p1 = cos x und pk = 2 cos x pk−1 − pk−2 , k = 2, 3, . . . .
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_10
179
180
10
Dreitermrekursion
Dann gilt pk = cos(kx), k = 2, 3, . . . . • Die Rekursionsformel für die Tschebyscheff-Polynome lautet Tk (x) = 2x Tk−1 (x) − Tk−2 (x), k = 2, 3, . . . mit den Startwerten T0 (x) = 1 und T1 (x) = x. Diese Polynome werden wir uns in Beispiel 10.18 genauer anschauen. • Die Fibonacci-Folge wird ebenfalls durch eine Dreitermrekursion beschrieben. Sie ist definiert durch f k = f k−1 + f k−2 , k = 2, 3, . . . . Die Startwerte sind dabei f 0 = 0 und f 1 = 1.
Algorithmisch lässt sich die Dreitermrekursion sehr leicht mit Hilfe einer einzelnen Schleife umsetzen: Algorithmus 10.3 (Dreitermrekursion) input: Koeffizienten {ak }nk=2 , {bk }nk=2 , {ck }nk=2 und Startwerte p0 , p1 output: Werte von { pk }nk=2 ➀ für k = 2, 3, . . . , n pk := ak pk−1 + bk pk−2 + ck
Beispiel 10.4 Vorgelegt sei die Dreitermrekursion p0 = 1, p1 =
√
2 − 1 und pk = −2 pk−1 + pk−2 für k = 2, 3, . . .
(10.3)
In den ersten 50 Schritten liefert Algorithmus 10.3 hierfür die in nachfolgender Tabelle aufgeführten Werte, welche ebenfalls in Abb. 10.1 graphisch dargestellt sind.
10.1 Theoretische Grundlagen
181
Abb. 10.1 Das Resultat von Algorithmus 10.3 im Fall der Dreitermrekursion (10.3)
k 0 1 2 3 4 5 6 7 8 9
pk 1.00 4.14 · 10−1 1.72 · 10−1 7.11 · 10−2 2.94 · 10−2 1.22 · 10−2 5.05 · 10−3 2.09 · 10−3 8.67 · 10−4 3.59 · 10−4
k 10 11 12 13 14 15 16 17 18 19
pk 1.49 · 10−4 6.16 · 10−5 2.55 · 10−5 1.06 · 10−5 4.38 · 10−6 1.81 · 10−6 7.51 · 10−7 3.11 · 10−7 1.29 · 10−7 5.40 · 10−8
k 20 21 22 23 24 25 26 27 28 29
pk 2.06 · 10−8 1.29 · 10−8 −5.22 · 10−8 2.33 · 10−8 −5.19 · 10−8 1.27 · 10−7 −3.06 · 10−7 7.39 · 10−7 −1.78 · 10−6 4.31 · 10−6
k 30 31 32 33 34 35 36 37 38 39
pk −1.04 · 10−5 2.51 · 10−5 −6.06 · 10−5 1.46 · 10−4 −3.53 · 10−4 8.53 · 10−4 −2.06 · 10−3 4.97 · 10−3 −1.20 · 10−2 2.90 · 10−2
k 40 41 42 43 44 45 46 47 48 49
pk −7.00 · 10−2 1.69 · 10−1 −4.08 · 10−1 9.84 · 10−1 −2.38 · 10−1 5.74 −1.38 · 101 3.34 · 101 −8.07 · 101 1.95 · 102
Eine homogene Dreitermrekursion pk = ak pk−1 + bk pk−2 , k = 2, 3, . . . kann stets umgeschrieben werden gemäß pk−1 a b p pk = k k =: Ak k−1 , k = 2, 3, . . . . pk−1 1 0 pk−2 pk−2 Rekursiv folgt somit
p1 p pk = Ak Ak−1 · · · A2 = Bk 1 pk−1 p0 p0
mit der Matrix Bk = Ak Ak−1 · · · A2 ∈ R2×2 . Offensichtlich gilt α p1 + βq1 p1 q1 pk qk = α · Bk + β · Bk =α· +β · Bk α p0 + βq0 p0 q0 pk−1 qk−1
182
10
Dreitermrekursion
für alle α, β ∈ R. Dies bedeutet, die Lösungsfolge { pk }k∈N hängt linear von den Startwerten [ p0 , p1 ] ∈ R2 ab. Im Fall konstanter Koeffizienten a = ak und b = bk folgt Bk = Ak−1 , A =
ab . 10
Bestimmt man die Eigenwerte λ1 und λ2 der Matrix A, so kann die Lösung der homogenen Dreitermrekursion geschlossen angegeben werden. Satz 10.5 Seien λ1 und λ2 die Nullstellen des charakteristischen Polynoms q(λ) = λ2 − aλ − b. Dann ist die Lösung der homogenen Dreitermrekursion pk = apk−1 + bpk−2 , k = 2, 3, . . .
(10.4)
gegeben durch pk = αλk1 + βλk2 , k = 0, 1, . . . . Hierbei sind α, β ∈ R die Lösungen des linearen Gleichungssystems α + β = p0 , αλ1 + βλ2 = p1 .
Beweis Wir führen den Beweis vermittels vollständiger Induktion nach k. Für k = 0 gilt p0 = α + β, während für k = 1 gilt p1 = αλ1 + βλ2 . Wir wollen daher annehmen, das Behauptete gelte für ein k ∈ N. Der Induktionsschritt k → k + 1 ergibt sich nun gemäß + βλk+1 − a · αλk1 + βλk2 − b · αλk−1 + βλk−1 pk+1 − apk − bpk−1 = αλk+1 1 2 1 2 2 2 λ − aλ1 − b + βλk−1 λ − aλ2 − b = 0. = αλk−1 1 2 1 2 =0
=0
+ βλk+1 Dies bedeutet pk+1 = αλk+1 1 2 . Einsetzen von k = 0 und k = 1 in diese Beziehung liefert dann das lineare Gleichungssystem für α und β.
10.1 Theoretische Grundlagen
183
Beispiel 10.6 (Fortsetzung von Beispiel 10.4) Im Hinblick auf Satz 10.5 betrachten wir das zur Dreitermrekursion (10.3) gehörige charakteristische Polynom q(λ) = λ2 + 2λ − 1. Dieses besitzt die Nullstellen λ1 =
√ √ 2 − 1, λ2 = − 2 − 1.
Aus α + β = 1, αλ1 + βλ2 =
√ 2−1
erhält man die Koeffizienten α = 1 und β = 0. Demnach ist die Lösung der Dreitermrekursion (10.3) also pk = λk1 =
√
k 2 − 1 > 0, k = 0, 1, . . . .
Satz 10.5 liefert das folgende explizite Verfahren zur Lösung einer homogenen Dreitermrekursion mit konstanten Koeffizienten: Algorithmus 10.7 (geschlossene Lösung der Dreitermrekursion) input: Koeffizienten a, b und Startwerte p0 , p1 n output: Werte von { pk }k=2 ➀ Initialisierung:
λ1 := −a/2 + a 2 /4 − b λ2 := −a/2 − a 2 /4 − b β := ( p1 − λ1 p0 )/(λ2 − λ1 ) α := p0 − β ➁ für k = 2, 3, . . . , n pk := αλk1 + βλk2
184
10
Dreitermrekursion
Abb. 10.2 Das Resultat von Algorithmus 10.3 im Fall der Dreitermrekursion (10.3)
Im konkreten Fall der Dreitermrekursion (10.3) aus Beispiel 10.4 liefert dieser Algorithmus in den ersten 50 Schritten das folgende Resultat: k 0 1 2 3 4 5 6 7 8 9
pk 1.00 4.14 · 10−1 1.72 · 10−1 7.11 · 10−2 2.94 · 10−2 1.22 · 10−2 5.05 · 10−3 2.09 · 10−3 8.67 · 10−4 3.59 · 10−4
k 10 11 12 13 14 15 16 17 18 19
pk 1.49 · 10−4 6.16 · 10−5 2.55 · 10−5 1.06 · 10−5 4.38 · 10−6 1.81 · 10−6 7.51 · 10−7 3.11 · 10−7 1.29 · 10−7 5.34 · 10−8
k 20 21 22 23 24 25 26 27 28 29
pk 2.21 · 10−8 9.16 · 10−9 3.79 · 10−9 1.57 · 10−9 6.51 · 10−10 2.70 · 10−10 1.12 · 10−10 4.62 · 10−11 1.92 · 10−11 7.93 · 10−12
k 30 31 32 33 34 35 36 37 38 39
pk 3.29 · 10−12 1.36 · 10−12 5.64 · 10−13 2.34 · 10−13 9.67 · 10−14 4.01 · 10−14 1.66 · 10−14 6.88 · 10−15 2.85 · 10−15 1.18 · 10−15
k 40 41 42 43 44 45 46 47 48 49
pk 4.89 · 10−16 2.02 · 10−16 8.38 · 10−17 3.47 · 10−17 1.44 · 10−17 5.96 · 10−18 2.47 · 10−18 1.02 · 10−18 4.23 · 10−19 1.75 · 10−19
Durch einen Blick auf die graphische Darstellung in Abb. 10.2 überzeugt man sich, dass dies offensichtlich das richtige Ergebnis ist. Denn gemäß Satz 10.5 gilt √ k 2 − 1 1. pk = λk1 = Dies wirft natürlich die Frage auf, warum Algorithmus 10.3 nicht das korrekte Ergebnis liefert. Um diese Frage zu beantworten, untersuchen wir die Kondition des zugrundeliegenden Problems. Dazu betrachten wir f : R2 → R mit f ( p0 , p1 ) = pk . Gestörte Daten p˜ 0 = 1 + ε0 , p˜ 1 = λ1 · (1 + ε1 ), |ε0 |, |ε1 | ≤ mach ergeben gestörte Koeffizienten λ2 λ1 − ε1 , λ2 − λ1 λ2 − λ1 λ1 β˜ = (ε1 − ε0 ) λ2 − λ1 α˜ = 1 + ε0
10.1 Theoretische Grundlagen
185
und schließlich die gestörte Lösung p˜ k = 1 + ε0
λ2 λ1 − ε1 λ2 − λ1 λ2 − λ1
λk1 + (ε1 − ε0 )
λ1 λk . λ2 − λ1 2
Folglich ergibt sich der relative Fehler
k
p˜ k − pk λ2
λ2 λ1 λ1
= ε0 −ε + (ε − ε ) 1 1 0
p
λ −λ λ2 − λ1 λ2 − λ1 λ1 k 2 1 =1+ λ
λ1 2 −λ1
λ2 k λ1
= ε0 + (ε1 − ε0 ) · − 1 .
λ2 − λ1 λ1 Gilt |λ2 | > |λ1 |, so explodiert der relative Fehler. Genau dies ist in Beispiel 10.4 passiert: Der parasitäre Zweig |λ2 |k wächst exponentiell, während die Lösung selbst exponentiell fällt. Auch im Fall der allgemeinen Dreitermrekursion (10.1) beobachtet man das unterschiedliche Verhalten der Lösungen. Dies motiviert die folgende Definition. Definition 10.8 Die Lösung { pk }k∈N der Dreitermrekursion (10.1) zu den Startwerten p0 und p1 heißt Minimallösung, falls für jede Lösung {qk }k∈N zu den von p0 und p1 linear unabhängigen Startwerten q0 und q1 gilt lim
k→∞
pk = 0. qk
Eine solche Lösung {qk }k∈N heißt dominante Lösung.
Beispiel 10.9 In Beispiel 10.4 ist { pk }k∈N genau dann Minimallösung, wenn β = 0 gilt. Es ist klar, dass die Minimallösung nur bis auf einen skalaren Faktor eindeutig bestimmt ist. Daher führen wir die Normierung p02 + p12 = 1 ein. Ihre Bestimmung ist allerdings extrem schlecht konditioniert. Algorithmus 10.3 ist im Allgemeinen jedoch stabil, da nur Multiplikationen und Additionen ausgeführt werden. Das Problem ist, dass sich im Laufe der Rekursion aufgrund von Rundungsfehlern Anteile der dominanten Lösung einschleppen.
186
10.2
10
Dreitermrekursion
Miller-Algorithmus
Um die Minimallösung einer Dreitermrekursion numerisch zu bestimmen, betrachten wir die zur homogenen Dreitermrekursion (10.4) gehörende Rückwärtsrekursion a 1 qk−1 = − qk + qk+1 , k = n, n − 1, . . . , 1 b b
(10.5)
mit den Startwerten qn+1 = 0 und qn = 1. Das charakteristische Polynom p(μ) = μ2 +
a 1 μ− b b
besitzt die Nullstellen
√ a 2 + 4b μ1,2 = . 2b Wie man leicht nachrechnet, gilt der Zusammenhang μ1 = 1/λ1 und μ2 = 1/λ2 zwischen den Nullstellen des charakteristischen Polynoms der Dreitermrekursion (10.3) und jenen der Rückwärtsrekursion (10.5). Genau diesen Zusammenhang werden wir uns zunutze machen, denn wir werden gleich sehen, dass die Minimallösung der homogenen Dreitermrekursion (10.4) just eine dominante Lösung der Rückwärtsrekursion (10.5) ist. Wir wollen nun Satz 10.5 auf die Rückwärtsrekursion (10.5) anwenden. Aus den Gleichungen −a ±
α + β = qn+1 = 0,
α β + = αμ1 + βμ2 = qn = 1 λ1 λ2
ergeben sich die Koeffizienten α=
λ1 λ2 λ1 λ2 = 0, β = − = 0. λ2 − λ1 λ2 − λ1
Aufgrund der Lösungsdarstellung + βμn−k = qk = αμn−k 1 2
α λn−k 1
+
β λn−k 2
, k = n, n − 1, . . . , 0
folgt im Fall |λ1 | < |λ2 |, dass pk(n)
qk := = q0
α λn−k 1
+
α λn1
+
(n)
β λn−k 2 β λn2
n λk1 + βα λk2 λλ21 n→∞ = n −→ λk1 . β λ1 1 + α λ2
In der Tat approximiert also pk für großes n die gewünschte Minimallösung. Bei der Wahl von n = 100 wird p50 aus Beispiel 10.4 auf 13 Nachkommastellen genau berechnet. Dies motiviert folgenden Algorithmus zur Berechnung der Minimallösung:
10.2 Miller-Algorithmus
187
Algorithmus 10.10 (Miller) input: n ∈ N hinreichend groß (n) (n) (n) output: Werte von p0 , p1 , . . . , pn ➀ Initialisierung: pˆ n := 0 und pˆ n−1 := 1 ➁ Rückwärtsrekursion: für k = n, n − 1, . . . , 2 pˆ k−2 := − ab pˆ k−1 + b1 pˆ k ➂ Normierung: für k = 0, 1, . . . , n (n) pk := pˆn pˆ 02 + pˆ 12
Satz 10.11 Sei { pk }k∈N Minimallösung der homogenen Dreitermrekursion mit p02 + p12 = 1. Dann erfüllt die Lösung des Miller-Algorithmus lim pk(n) = pk , k ∈ {0, 1, . . . , n}.
n→∞
Beweis Jede Lösung der Dreitermrekursion lässt sich als Linearkombination der Minimallösung { pk }k∈N und einer normierten, dominanten Lösung {qk }k∈N schreiben, das bedeutet pˆ k = α pk + βqk für gewisse α, β ∈ R (vergleiche Übungsaufgabe 10.2). Aufgrund von pˆ n = 0 und pˆ n−1 = 1 ergibt sich somit die Darstellung pk q n − q k pn qn pˆ k = = pn−1 qn − qn−1 pn pn−1 qn − qn−1 pn
pn pk − qk . qn
Speziell folgt mit p02 + p12 = q02 + q12 = 1, dass pˆ 02
+
pˆ 12
qn2 pn 2 2 2 2 p + p1 + 2 ( p0 q 0 + p1 q 1 ) + q 0 + q 1 = ( pn−1 qn − qn−1 pn )2 0 qn 2 pn qn pn2 1 + 2c = + 2 , ( pn−1 qn − qn−1 pn )2 qn qn
wobei c := p0 q0 + p1 q1 . Die Kombination dieser beiden Ausdrücke liefert pk(n) =
pˆ k pˆ0 2 + pˆ1 2
=
pk −
pn qn q k
1 + 2c qpnn +
pn 2 . qn
188
10
Dreitermrekursion
Wegen pn n→∞ −→ 0 qn folgt hieraus schließlich die Behauptung pk(n) −→ pk . n→∞
10.3
Orthogonalpolynome
Orthogonalität ist eine zentrale Eigenschaft in der Mathematik, die insbesondere in der Numerik sehr hilfreich ist. Der Begriff ist bekannt und anschaulich im Fall des Vektorraums Rn : Zwei Vektoren x und y heißen zueinander orthogonal, kurz x ⊥ y, falls gilt x y =
n
xi yi = 0.
i=1
Geometrisch bedeutet dies, dass x senkrecht auf y fußt, siehe Abb. 10.3. Um den Begriff der Orthogonalität auf beliebige Vektorräumen zu verallgemeinern, benötigen wir ein Skalarprodukt. Definition 10.12 Eine Abbildung ·, · : X × X → R auf einem Vektorraum X über R heißt Skalarprodukt oder Innenprodukt, falls gilt:
1. Symmetrie: f , g = g, f für alle f , g ∈ X , 2. Linearität: α f + βg, h = α f , h + βg, h für alle f , g, h ∈ X und α, β ∈ R, 3. Definitheit: f , f > 0 für alle f ∈ X \ {0}.
Bemerkung 10.13 Wegen der Symmetrie ist ·, · auch im zweiten Argument linear. Man nennt eine Abbildung ·, · , welche die ersten beiden Eigenschaften erfüllt, daher auch symmetrische Bilinearform.
Abb. 10.3 Orthogonale Vektoren x und y
10.3 Orthogonalpolynome
189
Satz 10.14 Für alle f , g ∈ X gilt die Cauchy-Schwarzsche Ungleichung f , g 2 ≤ f , f · g, g .
Beweis Im Fall g = 0 ist nichts zu zeigen. Sei also g = 0, dann gilt für jedes α ∈ R 0 ≤ f − αg, f − αg = f , f − 2α f , g + α 2 g, g . Setzt man speziell α = f , g /g, g ein, so ergibt sich 0 ≤ f, f −
f , g 2 . g, g
Hieraus folgt die Behauptung.
Der folgende Satz besagt, dass ein Skalarprodukt stets eine Norm im Vektorraum X festlegt. Satz 10.15 Ein Skalarprodukt ·, · : X × X → R induziert eine Norm auf X gemäß
f := f , f .
Beweis Der einfache Beweis verbleibt dem Leser zur Übung.
Das für uns an dieser Stelle wichtigste Beispiel eines Vektorraums mit Skalarprodukt ist der Raum der auf dem Intervall I = (a, b) quadratisch integrierbaren Funktionen, wobei wir a = −∞ und b = +∞ ausdrücklich zulassen wollen. Dazu sei eine positive Funktion w gegeben mit w(x) dx < ∞. I
Dann ist dieser Raum definiert gemäß L 2w (I ) :=
f (x)2 w(x) dx < ∞ .
f ∈ C(I ) : I
190
10
Dreitermrekursion
Er besitzt das Skalarprodukt f , g :=
f (x)g(x)w(x) dx
(10.6)
I
und die induzierte Norm ist
f =
f (x)2 w(x) dx. I
Die Funktion w heißt Gewichtsfunktion. Ist w(x) ≡ 1, dann schreiben wir auch der Einfachheit halber kurz L 2 (I ). Auf L 2w (I ) lässt sich eindeutig eine Folge von Orthogonalpolynomen definieren, welche speziell einer Dreitermrekursion genügen. Dazu bezeichnen wir nachfolgend mit n := an x n + an−1 x n−1 + . . . + a1 x + a0 : a0 , a1 , . . . , an ∈ R
(10.7)
den Raum der Polynome bis zum Grad n. Satz 10.16 Es seien I = (a, b) ⊂ R ein Intervall und w : I → R eine Gewichtsfunktion mit zugehörigem Skalarprodukt (10.6). Dann existiert eine eindeutig bestimmte Folge von Orthogonalpolynomen {u n }n∈N mit u n ∈ n , so dass gilt u n , u m = δm,n , u n (x) = γn x n + . . . für ein γn > 0.
(10.8)
Die Folge {u n }n∈N genügt zudem der Dreitermrekursion an+1 u n+1 (x) = (x − bn )u n (x) − an u n−1 (x), n = 0, 1, 2, . . . ,
(10.9)
wobei an = γn−1 /γn > 0, bn = xu n , u n , u −1 ≡ 0 und u0 ≡ √
1 1 . = 1, 1 w(x) dx I
Beweis Wir führen den Beweis induktiv. Seien u 0 , u 1 , . . . , u n Orthogonalpolynome in n bezüglich ·, · aus (10.6), die alle im Satz genannten Eigenschaften erfüllen. Ist pn+1 (x) = xu n (x) − bn u n (x) − an u n−1 (x),
10.3 Orthogonalpolynome
191
dann gilt pn+1 , u n = xu n , u n − bn u n , u n −an u n−1 , u n = xu n , u n −bn = 0. =1
=0
=bn
Offensichtlich ergibt sich zudem pn+1 , u n−1 = xu n , u n−1 − bn u n , u n−1 −an u n−1 , u n−1 =0
=1
= xu n , u n−1 − an (10.6)
= u n , xu n−1 − an
(10.9)
= u n , an u n + bn−1 u n−1 + an−1 u n−2 − an = an u n , u n +bn−1 u n , u n−1 +an−1 u n , u n−2 −an =1
=0
=0
=0 und für jedes m < n − 1 pn+1 , u m = xu n , u m − bn u n , u m −an u n−1 , u m =0
=0
= u n , xu m (10.9)
= u n , am+1 u m+1 + bm u m + am u m−1 = 0.
Folglich ist pn+1 für alle 0 ≤ m ≤ n orthogonal zu u m , und nach Konstruktion gilt pn+1 (x) = γn x n+1 + . . . . Nun muss pn+1 nur noch geeignet umskaliert werden, um das normalisierte Polynom u n+1 zu finden. Gesucht ist u n+1 derart, dass der Leitkoeffizient γn+1 positiv ist. Also gilt γn+1 u n+1 (x) = γn+1 x n+1 + . . . = pn+1 (x), γn beziehungsweise pn+1 = an+1 u n+1 . Um die Eindeutigkeit von u n+1 zu zeigen, sei qn+1 ein zweites Polynom, das die Bedingung (10.8) erfüllt. Der Ansatz qn+1 =
n+1
=0
c u
192
10
Dreitermrekursion
liefert 0 = qn+1 , u m =
n+1
c u , u m = cm für alle m ≤ n.
=0 2 u Folglich ist qn+1 = cn+1 u n+1 . Aus qn+1 , qn+1 = cn+1 n+1 , u n+1 ergibt sich 2 cn+1 = 1, das heißt cn+1 = ±1. Weil cn+1 = −1 auf einen negativen Leitkoeffizi enten führt, erhalten wir schließlich cn+1 = 1 und qn+1 = u n+1 .
Bemerkung 10.17 Gebräuchliche Orthogonalpolynome sind: • • • • •
√ Tschebyscheff-Polynome: w(x) = 1/ 1 − x 2 und I = (−1, 1), Legendre-Polynome: w(x) = 1 und I = (−1, 1), Jacobi-Polynome: w(x) = (1 − x)α (1 + x)β für α, β > −1 und I = (−1, 1), 2 Hermite-Polynome: w(x) = e−x und I = R, α Laguerre-Polynome: w(x) = x e−x für α > −1 und I = (0, ∞).
Beispiel 10.18 Für n ∈ N und I = (−1, 1) besitzen die Tschebyscheff-Polynome die Darstellung Tn (x) = cos(n arccos x). Obwohl Tn auf den ersten Blick nicht wie ein Polynom aussieht, überzeugt man sich leicht, dass T0 (x) = 1, T1 (x) = x gilt. Mittels trigonometrischer Identitäten und der Substitution ξ = arccos x folgt weiter Tn−1 (x) + Tn+1 (x) = cos (n − 1)ξ + cos (n + 1)ξ = cos(nξ ) cos ξ − sin(nξ ) sin(−ξ ) + cos(nξ ) cos ξ − sin(nξ ) sin ξ = 2 cos(arccos x) cos(n arccos x) = 2x Tn (x).
Mit anderen Worten, es gilt die Dreitermrekursion Tn+1 (x) = 2x Tn (x) − Tn−1 (x), n = 1, 2, . . . ,
(10.10)
und man erkennt, dass Tn (x) = 2n−1 x n + . . . ein Polynom vom Grad n mit Leitkoeffizient 2n−1 ist. Die ersten fünf Tschebyscheff-Polynome sind in Abb. 10.4 dargestellt. Wir wollen als nächstes zeigen, dass die Tschebyscheff-Polynome auf I = (−1, √ 1) paarweise orthogonal sind bezüglich der Gewichtsfunktion w(x) = 1/ 1 − x 2 . Sie sind demnach die entsprechenden Orthogonalpolynome. Substituieren wir
x = cos ξ, dx = − sin ξ dξ = − 1 − x 2 dξ
10.3 Orthogonalpolynome
193
Abb. 10.4 Tschebyscheff-Polynome bis zum Grad 4
im Integral Tn , Tm =
1
−1
cos(n arccos x) cos(m arccos x) √
1 1 − x2
dx,
so ergibt sich Tn , Tm = − = 0
0
π π
cos(nξ ) cos(mξ ) dξ
⎧ ⎪ ⎨0, falls n = m, cos(nξ ) cos(mξ ) dξ = π, falls n = m = 0, ⎪ ⎩π 2 , falls n = m = 0.
Beispiel 10.19 Wir betrachten das Intervall I = (−1, 1) und das Standard-Skalarprodukt, das heißt w(x) ≡ 1. Das Legendre-Polynom vom Grad n ist definiert durch Pn (x) :=
1 dn [(x 2 − 1)n ] ∈ n . 2n n! dx n
(10.11)
In Abb. 10.5 findet man eine Visualisierung der ersten Legendre-Polynome. Es gilt Pn , Pm = 0 für n = m, denn für m < n folgt durch partielle Integration
1
dn dm [(x 2 − 1)n ] m [(x 2 − 1)m ] dx n dx −1 dx
1 n−1 m
d 2 n d 2 m = n−1 [(x − 1) ] m [(x − 1) ] dx dx −1 1 n−1 m+1 d d − [(x 2 − 1)n ] m+1 [(x 2 − 1)m ] dx. n−1 dx −1 dx
2n n! 2m m! Pn , Pm =
194
10
Dreitermrekursion
Abb. 10.5 Legendre-Polynome bis zum Grad 4
Weil (x 2 −1)n jeweils n-fache Nullstellen in ±1 besitzt, verschwindet der erste Term auf der rechten Seite und wir erhalten 2n n! 2m m! Pn , Pm = −
1
−1
m+1 dn−1 2 n d [(x − 1) ] [(x 2 − 1)m ] dx. dx n−1 dx m+1
Wiederholtes partielles Integrieren führt schließlich auf 2n n! 2m m! Pn , Pm = (−1)n
1
−1
(x 2 − 1)n
dm+n [(x 2 − 1)m ] dx. dx m+n
Da hierin das Polynoms (x 2 − 1)m nur vom Grad 2m ist, aber (n + m)-mal differenziert wird, folgern wir schließlich 2n n! 2m m! Pn , Pm = 0. Wiederum folgt mit Hilfe von partieller Integration 2n n! 2n n! Pn , Pn = (−1)n
1
d2n [(x 2 − 1)n ](x 2 − 1)n dx 2n dx −1
= (−1)n (2n!)
=(2n)!
1 −1
(x − 1)n (x + 1)n dx = (n!)2
22n+1 . 2n + 1
Also ergibt sich Pn , Pn = 2/(2n + 1) und es ist u n (x) =
2n + 1 Pn (x) = 2
2n + 1 (2n)! n x + . . . = γn x n + . . . 2 2n (n!)2
das zugehörige, normierte Polynom.
(10.12)
10.3 Orthogonalpolynome
195
Für die Dreitermrekursion (10.9) schließen wir (2n − 2)! 2 2n − 1 γn−1 2n (n!)2 an = = γn (2n)! 2n + 1 2 2n−1 (n − 1)! 2 2n 2 2n − 1 n . = =√ 2n + 1 2n(2n − 1) 4n 2 − 1 Wegen (10.11) ist Pn ein gerades Polynom, falls n gerade, und ein ungerades Polynom, falls n ungerade ist. Daher muss bn in (10.9) verschwinden. Dies bedeutet, dass n+1 n
u n−1 (x). u n+1 (x) = xu n (x) − √ 2 4n 2 − 1 4(n + 1) − 1 Zum Abschluss dieses Ausflugs zu den Orthogonalpolynomen wollen wir noch folgende, für die Gauß-Quadratur in Abschn. 21.4 wichtige Eigenschaft beweisen: Satz 10.20 Die Nullstellen der Orthogonalpolynome {u n }n∈N sind alle einfach und liegen im Inneren von I .
Beweis Wir nehmen an, die Aussage sei falsch. Hat u n etwa eine Nullstelle z auf dem Rand von I oder in R \ I , dann ist pn−1 (x) :=
u n (x) ∈ n−1 x−z
und daher
0 = pn−1 , u n = I
u 2n (x) w(x) dx. x−z
Da jedoch w(x)/(x − z) in I keinen Vorzeichenwechsel hat und 0 ≡ u 2n (x) ≥ 0 ist, ergibt sich ein Widerspruch. / R, dann Ist hingegen z ∈ I eine mehrfache Nullstelle von u n oder liegt z ∈ wenden wir das entsprechende Argument auf pn−2 (x) :=
u n (x) u n (x) ∈ n−2 = (x − z)(x − z) |x − z|2
an. Dazu beachte man, dass gemäß Satz 10.16 das Polynom u n reell ist, also mit z∈ / R auch z eine Nullstelle von u n ist.
196
10.4
10
Dreitermrekursion
Verfahren der konjugierten Gradienten
Das Verfahren der konjugierten Gradienten, im Jahr 1952 veröffentlicht von Magnus Hestenes und Eduard Stiefel in [HS52], ist das wohl effektivste Verfahren zur Lösung großer linearer Gleichungssysteme Ax = b mit symmetrischer und positiv definiter Matrix A ∈ Rn×n . Aufgrund der englischen Bezeichnung Conjugate Gradient Method wird es auch cg-Verfahren genannt. Das Verfahren basiert auf der Tatsache, dass die Lösung x des linearen Gleichungssystems Ax = b eindeutiges Minimum φ(x ) = 0 des Funktionals φ(x) =
1 1 1 (b − Ax) A−1 (b − Ax) = x Ax − x b + b A−1 b ≥ 0 2 2 2
ist. Ausgehend von einer Startnäherung x wollen wir φ entlang der Richtung d minimieren: φ(x + αd) = φ(x) +
α2 d Ad − αd (b − Ax) → min . α∈R 2
Aus ∂φ(x + αd) ! = αd Ad − d (b − Ax) = 0 ∂α folgt dann d (b − Ax) . d Ad Der Name des Verfahrens rührt von folgender Definition her. α=
(10.13)
Definition 10.21 Ist A ∈ Rn×n symmetrisch und positiv definit, dann definiert x, y A := x Ay, x, y ∈ Rn ein Skalarprodukt. Die induzierte Norm
x A :=
x, x A =
√
x Ax
wird Energienorm bezüglich A genannt. Zwei Vektoren x, y ∈ Rn heißen konjugiert bezüglich A, falls x, y A = x Ay = 0.
10.4 Verfahren der konjugierten Gradienten
197
A-konjugierte Vektoren sind offenbar paarweise orthogonal im Skalarprodukt ·, · A . Speziell besitzen konjugierte Vektoren die folgende Eigenschaft, die sich als sehr hilfreich beim Minimieren des Funktionals φ erweist. Lemma 10.22 Die Vektoren d0 , d1 , . . . , dk seien A-konjugiert, das heißt, es gelte di Ad j = 0 für alle i = j. Ist xk =
argmin
x∈x0 +span{d0 ,d1 ,...,dk−1 }
φ(x)
und setzt man
rk = b − Axk , αk =
dk rk , xk+1 = xk + αk dk , dk Adk
(10.14)
so folgt xk+1 =
argmin
x∈x0 +span{d0 ,d1 ,...,dk }
φ(x).
Beweis Die A-Konjugiertheit der Vektoren {d }k =0 impliziert d k A(x − x0 ) = 0 für alle 0 ≤ ≤ k. Daher folgt α2 d Ad k − αd k (b − Axk ) 2 k α2 = φ(xk ) + d Ad k − αd k (b − Ax0 ) 2 k =: φ(xk ) + ψ(α),
φ(xk + αd k ) = φ(xk ) +
das heißt, das Minimierungsproblem entkoppelt. Da nach Voraussetzung xk das Funktional φ über x0 + span{d 0 , d 1 . . . , d k−1 } minimiert, wird das eindeutige Minimum angenommen, wenn ψ(α) minimal ist. Dies ist aber nach (10.13) für x = x0 und d = d k genau dann der Fall, wenn
αk =
d k (b − Axk ) d (b − Ax0 ) = k . d k Ad k d k Ad k
(10.15)
198
10
Dreitermrekursion
Die Idee des Verfahrens der konjugierten Gradienten ist es nun, ausgehend von einer Startnäherung x0 , sukzessive über zueinander konjugierte Richtungen {d }k =0 zu minimieren. Die Folge der Residuen r0 = b − Ax0 , rk+1 = b − Axk+1
(10.14)
=
rk − αk Ad k , k ≥ 0,
(10.16)
erfüllt dann d rk
=
d (b − Axk )
=
d
b − Ax0 −
k−1
αi Ad i ,
i=0
dies bedeutet, wegen der A-Konjugiertheit der Richtungen {d }k =0 ist
d rk = d (b − Ax0 ) − α d Ad
(10.15)
=
0 für alle < k.
(10.17)
Da A-konjugierte Richtungen offenbar auch linear unabhängig sind, ergibt sich rn = 0, das heißt, das Verfahren der konjugierten Gradienten liefert die Lösung A−1 b nach höchstens n Schritten. Zu beantworten bleibt daher nur die Frage, wie die Suchrichtungen d k geschickt konstruiert werden können. Lemma 10.23 Für beliebiges d0 = r0 erzeugt die Rekursion
rk+1 = rk − αk Adk , dk+1 = rk+1 − βk dk , βk =
d k Ark+1 d k Adk
(10.18)
solange eine Folge nichtverschwindender A-konjugierter Vektoren d0 , d1 , . . . , dk+1 , bis rk+1 = 0 ist.
Beweis Sei Kk (A, r0 ) := span{r0 , Ar0 , . . . , Ak−1 r0 }.
Wir zeigen zunächst induktiv, dass stets gilt Kk (A, r0 ) = span{r0 , r1 , . . . , rk−1 } = span{d 0 , d 1 , . . . , d k−1 }.
Da für k = 1 die Aussage klar ist, nehmen wir an, sie gelte für ein k ≥ 1. Dann folgt rk
(10.18)
=
rk−1 −αk
∈Kk (A,r0 )
Ad k
∈Kk+1 (A,r0 )
∈ Kk+1 (A, r0 ).
10.4 Verfahren der konjugierten Gradienten
199
Gemäß (10.17) ist rk ⊥ span{d 0 , d 1 , . . . , d k−1 } = Kk (A, r0 ), dies bedeutet Kk (A, r0 ) span{r0 , r1 , . . . , rk } ⊂ Kk+1 (A, r0 ).
Weil die Dimension von Kk+1 (A, r0 ) höchstens um eins höher ist als die von Kk (A, r0 ), muss gelten Kk+1 (A, r0 ) = span{r0 , r1 , . . . , rk }.
Nach (10.18) ist rk = d k + βk−1 d k−1 , woraus folgt span{d 0 , d 1 , . . . , d k } = span{d 0 , d 1 , . . . , d k−1 , rk } = span{r0 , r1 , . . . , rk−1 , rk } = Kk+1 (A, r0 ). Insbesondere muss aus Dimensionsgründen d k = 0 sein. Es verbleibt, die A-Konjugiertheit zu zeigen: Angenommen, die Vektoren d 0 , d 1 , . . . , d k sind A-konjugiert. Der Induktionsschritt ergibt sich dann aus
dk Ad k+1
(10.18)
=
dk A(rk+1 − βk d k )
(10.18)
=
dk Ark+1 −
dk Ark+1 d Ad k = 0 dk Ad k k
und für alle < k
d Ad k+1
(10.18)
=
d Ark+1 −
dk Ark+1 d Ad k = (Ad ) rk+1 = 0 dk Ad k =0
wegen Ad ∈ Kk+1 (A, r0 ) ⊥ rk+1 .
Bemerkung 10.24 Der Raum Kk (A, r0 ) heißt Krylov-Raum. Die Iterierte xk des Verfahrens der konjugierten Gradienten minimiert demnach das Funktional φ(x) unter allen x aus dem verschobenen Krylov-Raum x0 + Kk (A, r0 ). Um das Verfahren der konjugierten Gradienten endgültig zu formulieren, bemerken wir zunächst, dass gilt αk
(10.15)
=
dk rk dk Ad k
(10.18)
=
(rk − βk−1 dk−1 ) rk dk Ad k
(10.17)
=
rk 22 . dk Ad k
(10.19)
Wegen rk ∈ Kk+1 (A, r0 ) ⊥ rk+1 , folgt ferner d k Ark+1
= (Ad k ) rk+1
(10.18)
=
1 (rk − rk+1 ) rk+1 αk
(10.19)
=
−
d k Ad k
rk 22
rk+1 22
200
10
Dreitermrekursion
und damit βk
(10.18)
=
d k Ark+1
rk+1 22 =− . d k Ad k
rk 22
(10.20)
Die Kombination von (10.14) und (10.18)–(10.20) liefert schließlich Algorithmus 10.25 (Verfahren der konjugierten Gradienten) input: Matrix A ∈ Rn×n , rechte Seite b ∈ Rn und Startnäherung x0 ∈ Rn output: Folge von Iterierten {xk }nk=1 ➀ Initialisierung: d 0 = r0 := b − Ax0 und k := 0 ➁ berechne αk :=
rk 22 d k Ad k
xk+1 := xk + αk d k rk+1 := rk − αk Ad k βk :=
rk+1 22
rk 22
d k+1 := rk+1 + βk d k ➂ falls rk+1 2 > ε, erhöhe k := k + 1 und gehe nach ➁ Das Verfahren der konjugierten Gradienten wird in der Praxis generell als iteratives Verfahren eingesetzt, das heißt, man bricht die Iteration ab, falls die Residuennorm
rk 2 kleiner als eine vorgegebene Fehlertoleranz ε ist. Pro Iterationsschritt wird nur eine Matrix-Vektor-Multiplikation benötigt. Allerdings hängt die Konvergenz des Verfahrens stark von der Kondition der Matrix ab.
Satz 10.26 Die Iterierten {xk }nk=1 des Verfahrens der konjugierten Gradienten genügen bezüglich der Energienorm der Fehlerabschätzung √ cond2 (A) − 1 k
x − x0 A .
x − xk A ≤ 2 √ cond2 (A) + 1
10.4 Verfahren der konjugierten Gradienten
201
Beweis Wegen rk = b − Axk = A(x − xk ) folgt
x − xk 2A = (b − Axk ) A−1 (b − Axk ) =
min
z∈x0 +Kk (A,r0 )
x − z 2A 2 A
= min x − x0 − c1 r0 − c2 Ar0 − . . . − ck Ak−1 r0 c∈Rk
= min (x − x0 ) − c1 A(x − x0 ) − c2 A2 (x − x0 ) − . . . − ck Ak (x − x0 ) c∈Rk
= min
c∈Rk
I − c1 A − c2 A2 − . . . − ck Ak (x − x0 )
2 A
2 . A
!k Wenn wir ein Polynom p(x) = i=0 αi x i ∈ k auf die Matrix A anwenden, so !k i n×n . Daher können wir ergibt sich offenbar die Matrix p(A) = i=0 αi A ∈ R das Minimierungsproblem über dem Koeffizientenvektor c ∈ Rk auch als Minimierungsproblem über den Polynomraum k auffassen:
x − xk 2A =
min
p∈k : p(0)=1
p(A)(x − x0 ) 2A .
Weil A ∈ Rn×n symmetrisch und positiv definit ist, existieren n Eigenwerte 0 < λ1 ≤ λ2 ≤ . . . ≤ λn und zugehörige orthonormale Eigenvektoren v1 , v2 , . . . , vn ,. Hiermit ergibt sich x − x0 =
n
vi (x − x0 )vi =
i=1
n
γi vi
i=1
und
x − x0 2A =
n
γi γ j vi Av j =
i, j=1
n
γi2 λi .
i=1
Für ein beliebiges Polynom p folgt daher
p(A)(x − x0 ) 2A
n
=
2
γi p(A)vi
i=1
≤
= A
n
2
γi p(λi )vi
i=1
= A
n
γi2 p 2 (λi )λi
i=1
n 2 max p (λi ) γi2 λi = max p 2 (λi )| x − x0 2A .
1≤i≤n
i=1
1≤i≤n
Wir werden nun ein spezielles Polynom q ∈ { p ∈ k : p(0) = 1} angeben, für das sich die gewünschte Fehlerabschätzung ergibt. Dazu wählen wir das Tschebyscheff-Polynom Tk und setzen Tk (λn + λ1 − 2λ)/(λn − λ1 ) . q(λ) = Tk (λn + λ1 )/(λn − λ1 )
202
10
Dreitermrekursion
Wegen λ ∈ [λ1 , λn ]
⇐⇒
λn + λ1 − 2λ ∈ [−1, 1] λn − λ1
und max|t|≤1 |Tk (t)| = 1 erhalten wir daher max |q(λi )| =
1≤i≤n
2 1 = k c + c−k Tk (λn + λ1 )/(λn − λ1 )
mit λn + λ1 c= + λn − λ1
λn + λ1 λn − λ1
2
√ √ λn /λ1 + 1 cond2 (A) + 1 −1= √ . =√ λn /λ1 − 1 cond2 (A) − 1
Zusammengefasst haben wir damit schließlich gezeigt, dass
x − xk A ≤ max | p(λi )| x − x0 A ≤ 1≤i≤n
2c−k
x − x0 A ≤ 2c−k x − x0 A . 1 + c−2k
Bemerkung 10.27 Aus der Approximationstheorie ist bekannt, dass das im obigen Beweis verwendete Polynom auf die kleinstmögliche obere Schranke führt. Wir werden dies später in Satz 17.16 nachweisen.
Übungsaufgaben Aufgabe 10.1 (Vorwärts- versus Rückwärtsrekursion) Vorgelegt sei die Folge {yk }k∈N mit 1 1 x k e x dx. yk = e 0 a) Zeigen Sie die Abschätzungen 1 1 < yk < und yk+1 < yk . e(k + 1) k+1 b) Zeigen Sie die Rekursionsformel yk+1 + (k + 1)yk = 1.
Übungsaufgaben
203
Damit lassen sich also die Integrale y0 , y1 , . . . , yn auf zweierlei Weise berechnen, falls Startwerte y0 beziehungsweise yn bekannt sind: yk+1 := 1 − (k + 1)yk 1 − yk yk−1 := k
vorwärts mit i = 0, 1, 2, 3, . . . , n − 1, rückwärts mit i = n, n − 1, n − 2, . . . , 1.
c) Anstelle der exakten Startwerte y0 beziehungsweise yn seien nur genäherte Startwerte y˜0 beziehungsweise y˜n gegeben. Entsprechend resultieren obige Rekursionen in genäherten Werten y˜k . Wie lauten die absoluten Fehler yk = yk − y˜k bei der Vorwärts- und der Rückwärtsrekursion in Abhängigkeit von y0 beziehungsweise yn ? Aufgabe 10.2 (homogene Dreitermrekursion) Sei { pk }k∈N die Minimallösung einer homogenen Dreitermrekursion pˆ k = a pˆ k−1 + b pˆ k−2 , k = 2, 3, . . . zu normierten Startwerten p02 + p12 = 1 und sei {qk }k∈N eine dominante Lösung dieser Rekursion mit q02 + q12 = 1. a) Zeigen Sie, dass sich jede Lösung { pˆ k } der homogenen Dreitermrekursion schreiben lässt gemäß pˆ k = α pk + βqk für gewisse α, β ∈ R. b) Es gelte pˆ n = 0 und pˆ n−1 = 1. Bestimmen Sie die Koeffizienten α, β durch Lösen des Gleichungssystems α pn + βqn = 0, α pn−1 + βqn−1 = 1.
Aufgabe 10.3 (inhomogene Dreitermrekursion) Sei zu festem j ∈ N jeweils die Dreitermrekursion g j,k = ak g j,k−1 + bk g j,k−2 + δ j,k , k = j, j + 1, . . . mit den Startwerten g j, j−1 = g j, j−2 = 0 gegeben. Dabei seien ak , bk ∈ R unabhängig von j und " δ j,k =
1, j = k, 0, j = k.
204
10
Dreitermrekursion
Zeigen Sie, dass die Lösung { pk }k∈N der inhomogenen Dreitermrekursion pk = ak pk−1 + bk pk−2 + ck , k = 1, 2, . . . mit den Startwerten p 0 = c0 ,
p−1 = 0
die geschlossene Darstellung pk =
k
c j g j,k , k = 1, 2, . . .
j=0
besitzt. Aufgabe 10.4 (Christoffel-Darboux) Sei {u n }n∈N eine Folge von Orthogonalpolynomen und an+1 u n+1 (x) = (x − bn )u n (x) − an u n−1 (x), n = 0, 1, 2, . . . ihre Dreitermrekursion gemäß Satz 10.16. Beweisen Sie die Formel n k=0
u k (x)u k (y) = an+1
u n+1 (x)u n (y) − u n (x)u n+1 (y) x−y
von Christoffel-Darboux für beliebiges x = y und n ≥ 0. Aufgabe 10.5 (Verfahren der konjugierten Gradienten) Es bezeichne xk die kte Iterierte des Verfahrens der konjugierten Gradienten angewandt auf Ax = b. Zeigen Sie, dass die Iteration von der Wahl des zugrundeliegenden orthonormalen Koordinatensystems unabhängig ist: Sei V ∈ Rn×n eine orthonormale Matrix und definiere ˆ := VAV bˆ := Vb, xˆ := Vx. A ˆ x = bˆ Wird das Verfahren der konjugierten Gradienten auf das Gleichungssystem Aˆ mit dem Startvektor xˆ 0 := Vx0 angewandt, so gilt stets xˆ k = Vxk .
11
Wahrscheinlichkeitsräume
11.1
Mengen
Die Grundbausteine der Wahrscheinlichkeitsrechnung sind Mengen. In diesem Abschnitt führen wir die grundlegenden Mengenoperationen ein. Dabei wollen wir auf eine formale Definition des Mengenbegriffs verzichten und stattdessen einige Beispiele geben. Die folgenden Objekte sind Mengen: A = {1, 2, 3, 4},
B = {Kopf, Zahl}, C = N,
D = R,
E = ∅ := {}.
Nachfolgend möge stets eine Menge bezeichnen. Ist eine endliche Menge mit n ∈ N Elementen, so setzen wir || := n. • Wir sagen, dass A eine Teilmenge von ist, in Zeichen A ⊂ , falls ω ∈ A ⇒ ω ∈ für alle ω ∈ A. Umgekehrt schreiben wir A ⊃ , falls ⊂ A gilt, und A = , falls sowohl A ⊂ als auch A ⊃ gelten. • Die Potenzmenge von ist gegeben durch P () := {A : A ⊂ },
das heißt, P () ist genau die Menge aller Teilmengen von . • Weiterhin führen wir für A ⊂ das Komplement von A ein. Dieses ist gegeben durch Ac := {ω ∈ : ω ∈ / A}. Das Komplement von ist damit offensichtlich die leere Menge ∅. © Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_11
205
206
11 Wahrscheinlichkeitsräume
Abb.11.1 Veranschaulichung der Mengendifferenz A \ B = A ∩ Bc
• Schließlich definieren wir für A, B ⊂ die Vereinigung als A ∪ B := {ω ∈ : ω ∈ A oder ω ∈ B} und den Schnitt als A ∩ B := {ω ∈ : ω ∈ A und ω ∈ B}. • Die Differenz A \ B der Mengen A und B enthält alle Elemente aus A, welche nicht in B liegen: A \ B := A ∩ B c . Eine Veranschaulichung der Differenzmenge ist in Abb. 11.1 zu finden. Hierin ist A die durch die Schraffur , B c die durch die Schraffur und A\ B entsprechend markierte Menge. die durch Schraffur Der nachfolgende Satz liefert die wichtigsten Regeln für das Rechnen mit Mengen. Der Beweis ist als Übungsaufgabe 11.1 durchzuführen. Satz 11.1 (Rechenregeln für Mengen) Seien eine Menge und A, B, C ⊂ . Dann gelten die folgenden Rechenregeln. 1. Kommutativgesetze: A∪B = B∪ A A∩B = B∩ A 2. Assoziativgesetze: (A ∪ B) ∪ C = A ∪ (B ∪ C) (A ∩ B) ∩ C = A ∩ (B ∩ C) 3. Distributivgesetze: (A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C) (A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C)
11.1 Mengen
207
4. De Morgansche Regeln: (A ∪ B)c = Ac ∩ B c (A ∩ B)c = Ac ∪ B c 5. Weiterhin gelten: A ∪ ∅ = A, A ∪ = A ∩ ∅ = ∅, A ∩ = A Die De Morganschen Regeln können für endlich viele oder abzählbar unendlich viele Mengen Ai ⊂ verallgemeinert werden. Satz 11.2 Seien eine Menge und Ai ⊂ für i ∈ N∗ . Dann gilt (A1 ∪ A2 ∪ . . . ∪ An )c = Ac1 ∩ Ac2 ∩ . . . ∩ Acn für jedes n ∈ N∗ und allgemeiner ∞
c Ai
i=1
=
∞
Aic .
i=1
∞ Beweis Es genügt, den allgemeinen Fall zu beweisen. Formal bedeutet ω ∈ i=1 A, c i ∞ dass es mindestens einen Index i gibt mit ω ∈ Ai . Gilt also ω ∈ A , so i=1 i c für alle i ∈ N∗ . Wir folgern oder äquivalent hierzu ω ∈ A bedeutet dies ω ∈ / A i i ∞ c Ai und somit ω ∈ i=1 c ∞ ∞ Ai ⊂ Aic . i=1
i=1
∞ ∞ c A , so folgt ω ∈ / Ai für i ∈ N∗ oder ω ∈ / i=1 Ai . Gilt umgekehrt ω ∈ i=1 ∞i c Daraus schließen wir ω ∈ A und daher ist i i=1 ∞ i=1
Aic ⊂
∞
c Ai
.
i=1
208
11.2
11 Wahrscheinlichkeitsräume
Zufällige Ereignisse
Zufallsexperimente sind Experimente unter standardisierten Bedingungen, deren Ausgang sich nicht vorhersagen lässt, also rein zufällig ist. Sie lassen sich jedoch zumindest theoretisch beliebig oft wiederholen. Beispielsweise stellt das idealisierte Werfen einer Münze oder eines Würfels ein Zufallsexperiment dar. Ein Versuch ist die Realisierung eines Zufallsexperiments, wobei wir mit ω das Ergebnis des Versuchs und mit die Menge aller möglichen Ergebnisse bezeichnen. Dabei wollen wir annehmen, dass sich jedes Ergebnis des Versuchs eindeutig einem Element ω der Ergebnismenge zuordnen lässt. Beispiel 11.3 1. Beim Werfen einer Münze ist die Ergebnismenge = {Kopf, Zahl}. Sie besteht also aus zwei möglichen Ergebnissen. 2. Beim Werfen eines Würfels besteht die Ergebnismenge = {1, 2, 3, 4, 5, 6} aus sechs möglichen Ergebnissen. 3. Wir betrachten die Lebensdauer eines Rechenservers. Eine mögliche Ergebnismenge ist = {ω ∈ R : ω ≥ 0}. Diese Menge ist überabzählbar unendlich. Das Ergebnis ω ∈ eines Versuchs entspricht in diesem Fall der Lebensdauer des Rechenservers. 4. Bei der Überprüfung von n verschiedenen Knoten eines Netzwerks sei das Ergebnis ωi definiert gemäß
0, i-ter Knoten defekt, ωi = 1, i-ter Knoten intakt. Dann ist = (ω1 , . . . , ωn ) ∈ {0, 1}n eine endliche Ergebnismenge mit 2n Elementen. Bemerkung 11.4 Zufallsexperimente spielen bei der mathematischen Modellierung von Unsicherheiten eine wichtige Rolle. Hierbei unterscheidet man zwischen epistemischer Unsicherheit und aleatorischer Unsicherheit. Die epistemische Unsicherheit rührt von Modellierungsfehlern, ungenauen Messwerten oder einem Mangel an Information her. Insbesondere lässt sie sich durch bessere Modelle und Messverfahren reduzieren. Demgegenüber beinhaltet die aleatorische Unsicherheit die Unsicherheit, mit der ein Zufallsexperiment, wie das idealisierte Werfen eines Würfels, behaftet ist. Sie ist tatsächlich ein zufälliges Verhalten. Damit fallen die ersten beiden Fälle aus Beispiel 11.3 in den Bereich der aleatorischen Unsicherheit, wohingegen die letzten beiden Beispiele eher mit epistemischer Unsicherheit behaftet sind.
11.2 Zufällige Ereignisse
209
Definition 11.5 Sei eine Ergebnismenge. Ein zufälliges Ereignis ist eine Teilmenge A ⊂ . Gilt ω ∈ A, so ist das Ereignis A eingetreten. Nicht jede Teilmenge A ⊂ muss einem zufälligen Ereignis entsprechen. Allerdings sind alle zufälligen Ereignisse Teilmengen von .
Beispiel 11.6 (Fortsetzung von Beispiel 11.3) 1. Beim Werfen einer Münze entspricht das Ereignis A= ˆ ‘es wird Kopf geworfen’ der Menge A = {Kopf} ⊂ . 2. Beim Werfen eines Würfels entspricht das Ereignis A= ˆ ‘es wird eine gerade Zahl gewürfelt’ der Menge A = {2, 4, 6} ⊂ . 3. Für einen Rechenserver wird das Ereignis A= ˆ ‘die Lebensdauer liegt zwischen 500 und 5000 Tagen’ beschrieben durch A = {ω ∈ R : 500 ≤ ω ≤ 5000} ⊂ . 4. Bei der Überprüfung der n Knoten eines Netzwerks gilt für das Ereignis A= ˆ ‘mindestens 2 Knoten sind intakt’ die Beziehung
n ωi ≥ 2 . A = (ω1 , . . . , ωn ) ∈ {0, 1}n : i=1
In Anbetracht von Definition 11.5 wollen wir folgende Bezeichnungen einführen. Sie helfen uns dabei, die Modellierung von Zufallsexperimenten vermittels Mengen anschaulich zu gestalten.
210
11 Wahrscheinlichkeitsräume
Definition 11.7 Das Ereignis A ist ein Elementarereignis, falls A einelementig ist, das heißt, falls A = {ω} ist für ein ω ∈ . Es heißt sicheres Ereignis, wenn A = gilt. Das Gegenstück ist das unmögliche Ereignis. Hier gilt A = c = ∅.
11.3
Rechnen mit zufälligen Ereignissen
Zwei Ereignisse A und B lassen sich als Teilmengen der Ergebnismenge auffassen. Daher wollen wir die eingeführten Mengenoperationen entsprechend interpretieren. Definition 11.8 Das Ereignis A oder B tritt ein, wenn ω ∈ A ∪ B. Hingegen tritt das Ereignis A und B ein, wenn ω ∈ A ∩ B. Wir sagen A zieht B nach sich, wenn mit dem Ereignis A stets auch das Ereignis B eintritt, falls also gilt A ⊂ B. Zwei Ereignisse A und B heißen unvereinbar, wenn A ∩ B = ∅. Die ‘und’-Operationen beziehungsweise ‘oder’-Operationen können auch auf endlich viele oder abzählbar unendlich viele Ereignisse Ai angewandt werden. Man erhält dann etwa n i=1
Ai ,
n i=1
Ai beziehungsweise
∞ i=1
Ai ,
∞
Ai .
i=1
∞ Hierbei ist ein Ergebnis ω ∈ in i=1 Ai enthalten, wenn es ein j ∈ N∗ gibt, so eines der Ereignisse Ai eintritt. Umgekehrt dass ω ∈ A j gilt, wenn also mindestens ∞ Ai enthalten, wenn ω ∈ Ai für alle i ∈ N∗ gilt, das ist das Ergebnis ω ∈ in i=1 heißt, wenn alle der Ereignisse A1 , A2 , . . . eintreten. Um den möglichen Ereignissen später Wahrscheinlichkeiten zuordnen zu können, benötigen wir eine Struktur, welche mit den eingeführten Operationen für Ereignisse verträglich ist. Definition 11.9 Sei eine Ergebnismenge. Eine Menge A von Teilmengen von heißt σ -Algebra, wenn gilt: 1. ∈ A, 2. A ∈ A ⇒ Ac ∈ A,
11.3 Rechnen mit zufälligen Ereignissen
3. Ai ∈ A für i ∈ N∗ ⇒
∞
i=1
211
A i ∈ A.
Das Tupel (, A) heißt messbarer Raum. Man beachte, dass es sich bei den Elementen einer σ -Algebra um Mengen handelt. Wie man sich leicht überlegt, gelten zusätzlich die folgenden Aussagen. Satz 11.10 Sei (, A) ein messbarer Raum, dann gilt: 1. ∅ ∈ A, ∞ A i ∈ A, 2. Ai ∈ A für i ∈ N∗ ⇒ i=1 3. A, B ∈ A ⇒ A \ B.
Beweis Der einfache Beweis verbleibt dem geneigten Leser zur Übung.
Bemerkung 11.11 Satz 11.10 stellt zusammen mit den Eigenschaften 1–3 aus Definition 11.9 sicher, dass jedes mögliche Ergebnis von endlich vielen oder abzählbar unendlich vielen Mengenoperationen von Ereignissen in der σ -Algebra enthalten ist. Die Potenzmenge P () ist die größtmögliche σ -Algebra für die Ergebnismenge . Eine Teilmenge A ⊂ P () braucht hingegen keine σ -Algebra zu sein. Jedoch lässt sich jede solche Teilmenge entsprechend zu einer σ -Algebra erweitern. Satz 11.12 Sei eine Ergebnismenge und S ⊂ P (). Dann ist σ (S ) :=
A
S ⊂ A ⊂ P () A ist eine σ -Algebra
die kleinste σ -Algebra mit S ⊂ σ (S ). Sie wird die von S erzeugte σ -Algebra genannt.
Beweis Wir verifizieren die Bedingungen aus Definition 11.9. Dazu bezeichne M := {S ⊂ A ⊂ P () : A ist eine σ -Algebra}.
212
11 Wahrscheinlichkeitsräume
Zunächst bemerken wir, dass M nicht leer ist, weil S ⊂ P () gilt. Es gilt ∈ A für alle A ∈ M, das heißt ∈ σ (S ). Aus A ∈ σ (S ) folgt A ∈ A für alle A ∈ M. Dies impliziert Ac ∈ A für alle A ∈ M und somit auch Ac ∈ σ (S ). Es gilt dann Ai ∈ A für alle i ∈ N∗ und Seien nun Ai ∈ σ (S ) für alle i ∈ N∗ . ∞ Ai ∈ A für jedes solche A und daher jedes A ∈ M. Daraus folgern wir A := i=1 ist A ∈ σ (S ). Wir haben damit nachgewiesen, dass σ (S ) eine σ -Algebra ist, deren Minimalität sich direkt aus der Definition ergibt.
11.4
Wahrscheinlichkeitsverteilungen
Es sei (, A) ein messbarer Raum und es bezeichne A ∈ A ein Ereignis innerhalb eines Zufallsexperiments. Wir betrachten n unabhängige, das heißt sich gegenseitig nicht beeinflussende Versuche. Die absolute Häufigkeit h n (A) gibt an, wie oft das Ereignis A bei n Versuchen eintritt. Definition 11.13 Die relative Häufigkeit für das Eintreten von A bei n Versuchen ist definiert als h n (A) Hn (A) := . n In vielen Fällen konvergiert die relative Häufigkeit für n → ∞ gegen eine feste Zahl. Dies nennt man den Stabilisierungseffekt der Folge Hn (A) der relativen Häufigkeiten. Falls der Grenzwert existiert, setzen wir P(A) := lim Hn (A). n→∞
Wir halten einige zentrale Eigenschaften der relativen Häufigkeit fest. Satz 11.14 Sei (, A) ein messbarer Raum. 1. Positivität: Die relative Häufigkeit ist nichtnegativ. Demnach gilt stets 0 ≤ Hn (A) für alle A ∈ A. 2. Normierung: Es gilt Hn () = 1.
11.4 Wahrscheinlichkeitsverteilungen
213
3. Additivität: Sind A, B ∈ A unvereinbar, das heißt A ∩ B = ∅, dann gilt Hn (A ∪ B) =
h n (A) + h n (B) h n (A) h n (B) = + = Hn (A) + Hn (B). n n n
Dies bedeutet, dass sich für unvereinbare Ereignisse die relativen Häufigkeiten addieren.
Beweis Der einfache Beweis verbleibt dem Leser als Übung.
Die im vorigen Satz beschriebenen Eigenschaften der relativen Häufigkeit sind die Grundlage des Kolmogorovschen Axiomensystems der Wahrscheinlichkeitsrechnung. Definition 11.15 Gegeben sei ein messbarer Raum (, A), welcher ein Zufallsexperiment beschreibt. Die Abbildung P : A → [0, 1] erfülle die folgenden Axiome: A1. A2. A3.
Positivität: 0 ≤ P(A) für alle A ∈ A. Normierung: P() = 1. σ -Additivität: Für jede Folge Ai ∈ A, i ∈ N∗ , mit Ai ∩ A j = ∅ für i = j gilt ∞ ∞ P Ai = P(Ai ). i=1
i=1
Dann nennen wir P eine Wahrscheinlichkeitsverteilung und das Tupel (, A, P) einen Wahrscheinlichkeitsraum. Für A ∈ A heißt P(A) die Wahrscheinlichkeit von A.
Abb. 11.2 Der Schnitt A ∩ B wird in der Summe P(A) + P(B) doppelt beachtet, weshalb P(A ∩ B) abgezogen werden muss, um P(A ∪ B) zu erhalten
214
11 Wahrscheinlichkeitsräume
Satz 11.16 Sei (, A, P) ein Wahrscheinlichkeitsraum. Dann gelten folgende Aussagen: 1. Es ist P(∅) = 0. 2. Für jede endliche Folge von paarweise unvereinbaren Ereignissen Ai ∈ A gilt n n Ai = P(Ai ). P i=1
i=1
3. Die Wahrscheinlichkeit für das Eintreten des Komplements Ac des Ereignisses A ∈ A ist gegeben durch P(Ac ) = 1 − P(A). 4. Für zwei Ereignisse A, B ∈ A gilt die Additionsformel P(A ∪ B) = P(A) + P(B) − P(A ∩ B). , dies bedeutet, die 5. Bilden die Ereignisse Ai ∈ A eine Zerlegung von ∞ Ai , so folgt Ereignisse Ai sind paarweise unvereinbar und = i=1 ∞
P(Ai ) = 1.
i=1
Beweis 1. Die Ereignisse A1 := und Ai := ∅ für i ≥ 2 sind paarweise unvereinbar wegen Ai ∩ A j = ∅ für i = j. Aus den Axiomen A2 und A3 folgt, dass ∞ ∞ ∞ 1 = P() = P Ai = P(Ai ) = 1 + P(∅). i=1
i=1
i=2
Hieraus ergibt sich die Behauptung P(∅) = 0. 2. Setzen wir Ai := ∅ für alle i > n, so ergibt sich die Behauptung sofort aus Axiom A3. 3. Wegen A ∪ Ac = und A ∩ Ac = ∅ folgt aus den Axiomen A2 und A3 1 = P() = P(A) + P(Ac ). 4. Die gesuchte Formel ist in Abb. 11.2 illustriert. Um sie zu beweisen, definieren wir C := B \ A ⊂ B und schließen A ∪ B = A ∪ C und A ∩ C = ∅. Mit Axiom A3 erhalten wir P(A ∪ B) = P(A) + P(C).
(11.1)
11.4 Wahrscheinlichkeitsverteilungen
215
Weiter gilt für D := A ∩ B, dass B = C ∪ D und C ∩ D = ∅, und folglich P(B) = P(C) + P(D) = P(C) + P(A ∩ B)
(11.2)
gemäß Axiom A3. Aus (11.1) und (11.2) ergibt sich dann die Behauptung. 5. Aus den Axiomen A2 und A3 folgt ∞ ∞ 1 = P() = P Ai = P(Ai ). i=1
i=1
Wahrscheinlichkeitsverteilungen sind über die gezeigten Eigenschaften hinaus auch σ -stetig. Die σ -Stetigkeit ermöglicht es, von der Annäherung eines Ereignisses auf die Annäherung von dessen Wahrscheinlichkeit zu schließen. Satz 11.17 Sei (, A, P) ein Wahrscheinlichkeitsraum. Ist A1 ⊂ A2 ⊂ . . . eine aufsteigende Familie von Ereignissen aus A, so gilt ∞ lim P(An ) = P lim An := P Ai .
n→∞
n→∞
i=1
Ist umgekehrt A1 ⊃ A2 ⊃ . . . eine absteigende Familie von Ereignissen aus A, so gilt ∞ lim P(An ) = P lim An := P Ai . n→∞
n→∞
i=1
Beweis Wir definieren die Familie B1 := A1 und Bi := Ai \ Ai−1 für i ≥ 2. Dann ∞ ∞ Bi = i=1 Ai . Daraus schließen wir mit gilt Bi ∩ B j = ∅ für i = j sowie i=1 Hilfe der σ -Additivität der Wahrscheinlichkeitsverteilung, dass n ∞ ∞ ∞ P lim An = P Ai = P Bi = P(Bi ) = lim P(Bi ) n→∞
i=1
i=1
= P(A1 ) + lim
n→∞
n i=2
i=1
n→∞
i=1
P(Ai ) − P(Ai−1 ) = lim P(An ). n→∞
Für eine absteigende Familie A1 ⊃ A2 ⊃ . . . ist offensichtlich Ac1 ⊂ Ac2 ⊂ . . . ∞ c c ∞ = i=1 Ai gemäß Satz 11.2. eine aufsteigende Familie und es gilt i=1 Ai Somit folgt
216
11 Wahrscheinlichkeitsräume
∞
P
i=1
Ai
∞ c =1−P Ai = 1 − lim P(Acn ) i=1
n→∞
= 1 − lim 1 − P(An ) = lim P(An ). n→∞
n→∞
Die einfachsten Zufallsexperimente sind dadurch gekennzeichnet, dass jeder Versuchsausgang gleichwahrscheinlich ist. Wir sprechen dann von einem LaplaceModell. In einem solchen Modell kann man die Wahrscheinlichkeitsverteilung natürlich sofort angeben. Satz 11.18 (Laplace-Modell) Für die Ergebnismenge gelte || = n und alle Elementarereignisse seien gleich wahrscheinlich, dies bedeutet P({ω1 }) = P({ω2 }) = . . . = P({ωn }) =
1 . n
Dann ist die Wahrscheinlichkeit für das Ereignis A = {ωi1 , ωi2 , . . . , ωim } ∈ A gegeben durch m P(A) = . n
Beweis Die Behauptung folgt sofort aus den Kolmogorovschen Axiomen.
Bemerkung 11.19 Die Aussage von Satz 11.18 kann auch kurz dargestellt werden durch Anzahl der für A günstigen Ergebnisse . P(A) = Anzahl aller möglichen Ergebnisse Beispiel 11.20 Für die Ergebnismenge beim einmaligen Werfen eines idealen Würfels gilt = {1, 2, 3, 4, 5, 6}. Das Ereignis A= ˆ ‘eine durch 3 teilbare Zahl wird gewürfelt’ ist durch die Menge A = {3,6} gegeben. Damit gilt P(A) =
2 1 |A| = = . || 6 3
11.5 Kombinatorik
11.5
217
Kombinatorik
Wir betrachten eine Urne mit n nummerierten und somit unterscheidbaren Kugeln. Wir wollen die Anzahl der Möglichkeiten beim Ziehen von m Kugeln bestimmen. Dabei müssen wir berücksichtigen, ob eine entnommene Kugel vor der Entnahme der nächsten Kugel wieder zurückgelegt wird und ob die Reihenfolge der Kugeln eine Rolle spielt. Ist die Reihenfolge der Entnahme relevant, so spricht man von Variationen. Spielt indessen die Reihenfolge der Entnahme keine Rolle, so spricht man von Kombinationen. Je nach konkreter Wahl eines solchen Urnenmodells, erhalten wir offensichtlich eine unterschiedliche Anzahl von Möglichkeiten. Der nachfolgende Satz gibt Auskunft über die Anzahl der möglichen Variationen. Satz 11.21 (Variationen) Sei eine Menge mit || = n. 1. Die Anzahl aller Variationen der Länge m mit Zurücklegen ist gegeben durch |{(ω1 , ω2 , . . . , ωm ) : ω1 , ω2 , . . . , ωm ∈ }| = n m . 2. Die Anzahl aller Variationen der Länge m ohne Zurücklegen ist gegeben durch |{(ω1 , ω2 , . . . , ωm ) : ω1 , ω2 , . . . , ωm ∈ und ωi = ω j für i = j}| =
n! . (n − m)!
Beweis 1. Beim Ziehen mit Zurücklegen können wir für jede Position des Tupels (ω1 , ω2 , . . . , ωm ) aus allen n Elementen von auswählen. Demnach gibt es n · n · . . . · n = n m m Faktoren
verschiedene Variationen. 2. Beim Ziehen ohne Zurücklegen haben wir vor dem k-ten Zug bereits k − 1 Elemente von gezogen. Folglich können wir für die k-te Position des Tupels (ω1 , ω2 , . . . , ωm ) nur noch aus n − k + 1 Elementen von auswählen. Deshalb erhalten wir in diesem Fall n! n · (n − 1) · . . . · (n − m + 1) = (n − m)! m Faktoren
verschiedene Variationen.
218
11 Wahrscheinlichkeitsräume
Wie für die Variationen wollen wir auch die Anzahl der möglichen Kombinationen bestimmen. Satz 11.22 (Kombinationen) Sei eine Menge mit || = n. 1. Die Anzahl aller Kombinationen der Länge m mit Zurücklegen ist gegeben durch {ω1 , ω2 , . . . , ωm }∗ : ω1 , ω2 , . . . , ωm ∈ = (n + m − 1)! =: n + m − 1 . m m!(n − 1)!
Man beachte, dass es sich bei der Menge {. . .}∗ formal um eine Multimenge handelt, dies bedeutet, einzelne Elemente dürfen auch mehrfach vorkommen. 2. Die Anzahl aller Kombinationen der Länge m ohne Zurücklegen ist gegeben durch n! n {ω1 , ω2 , . . . , ωm } : ω1 , ω2 , . . . , ωm ∈ = = . m!(n − m)! m
Beweis 1. Wir können jede Multimenge {ω1 , ω2 , . . . , ωm }∗ bijektiv auf ein Tupel (a1 , a2 , . . . , am ) mit 1 ≤ a1 ≤ a2 ≤ . . . ≤ am ≤ n abbilden. Dabei entspricht ai beispielsweise dem Index von ωi bezüglich einer beliebigen Nummerierung der Menge . Die Menge aller dieser Tupel {(a1 , . . . , am ) : 1 ≤ a1 ≤ . . . ≤ am ≤ n} wird wiederum durch bi := ai + i − 1 bijektiv auf die Menge aller Tupel {(b1 , . . . , bm ) : 1 ≤ b1 < b2 < . . . < bm ≤ n + m − 1} abgebildet. Vernachlässigen wir für den Moment die aufsteigende Sortierung der Tupel und fordern nur, dass alle Elemente verschieden sind, so erhalten wir gemäß der ersten Aussage aus Satz 11.21 genau die (n + m − 1)! (n − 1)! verschiedenen Variationen für das Ziehen ohne Zurücklegen. Berücksichtigen wir auch noch, dass es genau m! Möglichkeiten gibt, um die Elemente b1 , b2 , . . . , bm anzuordnen und nur genau eine von diesen die aufsteigende Sortierung ist, so ergibt sich die Behauptung. 2. Erneut schließen wir aus der ersten Aussage aus Satz 11.21, dass es genau n! (n − m)!
11.5 Kombinatorik
219
verschiedene Variationen für das m-malige Ziehen ohne Zurücklegen aus einer Menge von n Elementen gibt. Wie zuvor existieren genau m! Möglichkeiten, um die Elemente ω1 , ω2 , . . . , ωm anzuordnen. Da es bei einer Kombination nicht auf die Reihenfolge ankommt, müssen wir die Anzahl der Variationen also noch durch m! dividieren, woraus sich die Behauptung ergibt. Wir veranschaulichen die Ergebnisse aus den Sätzen 11.21 und 11.22 anhand von zwei Beispielen. Das erste Beispiel behandelt das Geburtstagsparadoxon. Es ist ein bekanntes Beispiel dafür, dass bestimmte Wahrscheinlichkeiten intuitiv oftmals völlig falsch eingeschätzt werden. Das zweite Beispiel beschäftigt sich mit dem Lottospielen. Beispiel 11.23 (Geburtstagsparadoxon) Wir wollen die Wahrscheinlichkeit dafür bestimmen, dass in einem Raum zwei Personen am gleichen Tag Geburtstag haben. Dabei setzen wir die folgenden Modellannahmen voraus: • Im Raum befinden sich n Personen. • Niemand hat an einem 29. Februar Geburtstag. • Die übrigen 365 Tage seien als Geburtstag gleichwahrscheinlich. Wir interessieren uns für das Ereignis A= ˆ ‘mindestens 2 Personen haben am gleichen Tag Geburtstag’ und insbesondere für dessen Wahrscheinlichkeit P(A). A tritt ein, wenn 2, 3, 4, . . . Personen am gleichen Tag Geburtstag haben. Um die Berechnung zu vereinfachen, ist es sinnvoll, mit dem Komplementärereignis zu arbeiten. Dieses lautet ˆ ‘keine zwei Personen haben am gleichen Tag Geburtstag’ Ac = = ˆ ‘alle Geburtstage sind verschieden’. Weil die dritte Modellannahme uns zusichert, dass ein Laplace-Experiment vorliegt, ergibt sich P(A) = 1 − P(Ac ) = 1 −
Anzahl der günstigen Ergebnisse . Anzahl aller Ergebnisse
Nun stellt sich die Frage nach dem zu wählenden Urnenmodell. Das Modell ‘Ziehen mit Zurücklegen unter Beachtung der Reihenfolge’ ist das korrekte, um den Ergebnisraum zu charakterisieren, während das Modell ‘Ziehen ohne Zurücklegen unter Beachtung der Reihenfolge’ auf die für Ac günstigen Ereignisse zutrifft. Es folgt daher
220
11 Wahrscheinlichkeitsräume n Faktoren
365 · 364 · 363 · . . . · (365 − n + 1) P(A) = 1 − . 365n Für n = 23 Personen folgt beispielsweise P(A) = 0.507, während sich für n = 70 Personen schon P(A) = 0.999 ergibt. Beispiel 11.24 (Lottospiel) Beim Lotto werden 6 nummerierte Kugeln aus einer Urne mit 49 Kugeln ohne Zurücklegen und ohne Beachtung der Reihenfolge gezogen. Der Spieler hat gewonnen, wenn er mindestens drei Zahlen richtig getippt hat. Offensichtlich handelt es sich beim Lotto um ein Laplace-Modell, da jede Zahlenkombination (mathematisch korrekt müsste es hier Zahlenvariation heißen!) gleich verschiedene Möglichkeiten, wahrscheinlich ist. Gemäß Satz 11.21 sind dies 49 6 was der Zahl 13 983 816 entspricht. Wir wollen nun die Anzahl der günstigen Ereignisse für A= ˆ ‘genau k Richtige getippt’ bestimmen. Dazu überlegen wir uns, dass der Spieler k richtige Zahlen getippt haben muss. Dazu hat er k6 Möglichkeiten. Da aber 6 Kugeln gezogen werden, können auch 6−k Nieten, das sind falsche 43 Kugeln, getippt werden. Weil 49−6 = 43 Kugeln Möglichkeiten. Wir schließen demnach falsch sind, gibt es hiervon 6−k Richtige
Nieten
6 43 Anzahl der günstigen Ergebnisse k 6−k . P(A) = = 49 Anzahl aller Ergebnisse 6 In der nachfolgenden Tabelle sind die Gewinnwahrscheinlichkeiten aufgeführt. Da beim Lotto ein Gewinn nur für k ≥ 3 Richtige ausgeschüttet wird, haben wir uns nur auf diese Fälle beschränkt: Richtige günstige Ereignisse Wahrscheinlichkeit 3 Richtige 246820 1.77 % 4 Richtige 13545 0.0969 % 5 Richtige 258 0.00185 % 6 Richtige 1 0.00000715 %
Übungsaufgaben
221
Übungsaufgaben Aufgabe 11.1 (Beweis von Satz 11.1) Beweisen Sie die Aussagen aus Satz 11.1. Aufgabe 11.2 (Ereignisse und Mengen) Beim monatlichen Vergleich zweier Technologieaktien wird für jede Aktie festgestellt, ob es zu einem Gewinn von mindestens 3 % kam, ob sich ein Verlust um mehr als 3 % ergab oder ob die Aktie sich dazwischen bewegte, es also keine signifikante Änderung gab. a) Geben Sie alle Elementarereignisse an. b) Stellen Sie die folgenden Ereignisse mit Hilfe der Elementarereignisse dar: A= ˆ ‘beide Aktien erzielen einen signifikanten Kursgewinn’, B= ˆ ‘keine der beiden Aktien veränderte sich signifikant’, C= ˆ ‘höchstens eine der beiden Aktien verschlechterte sich signifikant’, D= ˆ ‘mindestens eine der beiden Aktien verschlechterte sich signifikant’. c) Welche Bedeutung haben die Ereignisse E 1 = A ∪ C, E 2 = A ∪ D, E 3 = A ∩ C, E 4 = A ∩ C c und E 5 = (A ∩ D)c ? Aufgabe 11.3 (Rechenregeln) Für die Ereignisse A und B seien folgende Wahrscheinlichkeiten bekannt: P(A) = 0.25, P(B) = 0.45, P(A ∪ B) = 0.5. Berechnen Sie die Wahrscheinlichkeiten P(A ∩ B c ), P(Ac ∩ B c ) und P (A ∩ B c ) ∪ (Ac ∩ B) mit Hilfe der Rechenregeln für Ereignisse und Wahrscheinlichkeiten. Aufgabe 11.4 (σ -Algebren) a) Geben Sie alle auf der Menge = {1, 2, 3} möglichen σ -Algebren an. b) Sei = (−∞, 0]. Ist A = (a, b] : −∞ ≤ a ≤ b ≤ 0 eine σ -Algebra? c) Sei wieder = (−∞, 0] und sei A gegeben wie in der vorherigen Teilaufgabe. Ist
∞ ∞ B= Ak, : Ak, ∈ A k=1 =1
eine σ -Algebra?
222
11 Wahrscheinlichkeitsräume
Aufgabe 11.5 (Laplace-Experiment) Andrea kann von 31 bereits bekannten Prüfungsfragen 25 beantworten. In der Prüfung werden 7 Fragen zufällig ausgewählt. Eine sehr gute Note erhält, wer alle Fragen richtig beantwortet, eine gute Note, wer 5 der Fragen richtig beantwortet, und die Prüfung ist bestanden, wenn 2 Fragen richtig beantwortet wurden. a) Mit welcher Wahrscheinlichkeit erhält Andrea eine sehr gute Note? b) Berechnen Sie die Wahrscheinlichkeit dafür, dass Andrea mindestens eine gute Note erhält. c) Wie hoch ist die Wahrscheinlichkeit, dass Andrea die Prüfung besteht? Aufgabe 11.6 (Kombinatorik) Eine regelmäßiger Würfel wird fünfmal geworfen. Wie groß ist die Wahrscheinlichkeit, dass a) b) c) d)
jedes Mal einen Sechser geworfen wird? genau drei Sechser geworfen werden? genau fünf unterschiedliche Zahlen geworfen werden? die Zahlen in aufsteigender Reihenfolge geworfen werden?
12
Bedingte Wahrscheinlichkeiten und Unabhängigkeit
12.1
Definition der bedingten Wahrscheinlichkeit
Zur Motivation bedingter Wahrscheinlichkeiten betrachten wir folgendes Szenario: Wir führen n Versuche eines Zufallsexperiments durch, wobei h n (A), h n (B) und h n (A ∩ B) wie in Abschn. 11.4 die absoluten Häufigkeiten für das Eintreten von A, B sowie A und B angeben. Die relative Häufigkeit für das Ereignis A unter der Bedingung, dass B bereits eingetreten ist, kurz A|B, ergibt sich dann zu Hn (A|B) =
h n (A ∩ B) = h n (B)
h n (A∩B) n h n (B) n
=
Hn (A ∩ B) . Hn (B)
Konvergiert die relative Häufigkeit gegen eine Wahrscheinlichkeit, so motiviert dies die folgende Definition. Definition 12.1 Es seien (, A, P) ein Wahrscheinlichkeitsraum und A, B ∈ A mit P(B) > 0. Die bedingte Wahrscheinlichkeit von A gegeben B ist definiert als P(A ∩ B) P(A|B) := . (12.1) P(B)
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_12
223
224
12
Bedingte Wahrscheinlichkeiten und Unabhängigkeit
Beispiel 12.2 Wir führen zwei Würfe mit einem idealisierten Würfel durch. Dabei bezeichnen A und B die folgenden Ereignisse A= ˆ ‘beim ersten Wurf wird eine Sechs gewürfelt’, B= ˆ ‘die Augensumme beider Würfel ist 8’. Die möglichen Augensummen zweier Würfelwürfe sind im folgenden Tableau dargestellt: 1 2 3 4 5 6
1 2 3 4 5 6 7
2 3 4 5 6 7 8
3 4 5 6 7 8 9
4 5 6 7 8 9 10
5 6 7 8 9 10 11
6 7 8 9 10 11 12
Wir sehen, dass fünf der insgesamt 36 möglichen Ergebnisse günstig für B sind. Somit gilt P(B) = 5/36. Nur im Fall, dass zunächst eine Sechs und dann eine Zwei gewürfelt wird, treten A und B gleichzeitig ein, dies bedeutet P(A ∩ B) = 1/36. Weiterhin überzeugt man sich leicht, dass P(A|B) = 1/5 ist. Wir erhalten deshalb konsistent mit Definition 12.1 P(A|B) =
1 36 5 36
=
1 . 5
Nachfolgend führen wir einige Rechenregeln für bedingte Wahrscheinlichkeiten auf. Die Faustregel ist, dass bezüglich des ersten Arguments die üblichen Regeln gelten, solange die Bedingung im zweiten Argument unverändert bleibt. Denn die bedingte Wahrscheinlichkeit P(·|B) definiert eine Wahrscheinlichkeitsverteilung auf A. Daher übertragen sich alle Rechenregeln für Wahrscheinlichkeitsverteilungen auf P(·|B).
Satz 12.3 Es seien (, A, P) ein Wahrscheinlichkeitsraum sowie A, B, C ∈ A mit P(C) > 0. Dann gilt: 1. P(C|C) = 1, 2. P(A|C) = 1 − P(Ac |C), 3. P(A ∪ B|C) = P(A|C) + P(B|C) − P(A ∩ B|C).
12.1 Definition der bedingten Wahrscheinlichkeit
225
Beweis 1. Es gilt P(C ∩ C) P(C) = = 1. P(C) P(C) 2. Wegen A ∪ Ac = folgt (A ∩ C) ∪ (Ac ∩ C) = C und weiter P (A ∩ C) ∪ (Ac ∩ C) P(C) P(A ∩ C) + P(Ac ∩ C) 1= = = P(C) P(C) P(C) c = P(A|C) + P(A |C). P(C|C) =
3. Aus der vierten Aussage von Satz 11.16 erhalten wir schließlich, dass P (A ∪ B) ∩ C P(A ∪ B|C) = P(C) P(A ∩ C) P(B ∩ C) P (A ∩ C) ∩ (B ∩ C) = + − P(C) P(C) P(C) = P(A|C) + P(B|C) − P(A ∩ B|C). Beispiel 12.4 (Stapelsuchproblem) Der Vinylliebhaber Helmut besitzt 7 gleichgroße Regale für seine Schallplattensammlung. Er durchsucht diese Regale nach einer ganz bestimmten LP. Die Wahrscheinlichkeit, dass sich die LP in irgendeinem dieser Regale befindet, sei 0.8. Er hat bereits 6 Stapel erfolglos durchsucht. Wie groß ist die Wahrscheinlichkeit, dass er die LP im 7. Stapel findet? Um diese Frage zu beantworten, setzen wir Ai = ˆ ‘LP befindet sich im i-ten Stapel’, wobei P(A1 ) = P(A2 ) = . . . = P(A7 ) = p gelte. Aus !
P(A1 ∪ A2 ∪ . . . ∪ A7 ) = P(A1 ) + P(A2 ) + . . . + P(A7 ) = 7 p = 0.8 folgt dann p = 0.8/7 ≈ 0.114 und daher ist P(A7 ∩ Ac1 ∩ . . . ∩ Ac6 ) P A7 |(A1 ∪ A2 ∪ . . . ∪ A6 )c = P(A7 |Ac1 ∩ Ac2 ∩ . . . ∩ Ac6 ) = P(Ac1 ∩ Ac2 ∩ . . . ∩ Ac6 ) P(A7 ) p = = ≈ 0.3636. 1 − P(A1 ∪ A2 ∪ . . . ∪ A6 ) 1 − 6p
Mit einer Wahrscheinlichkeit von rund 36 % findet Helmut demnach die LP im letzten Regal.
226
12.2
12
Bedingte Wahrscheinlichkeiten und Unabhängigkeit
Multiplikationsregeln
Aus der Definition der bedingten Wahrscheinlichkeit (12.1) folgen sofort die Multiplikationsregeln P(A ∩ B) = P(A|B) · P(B) = P(B|A) · P(A).
(12.2)
Beispiel 12.5 Gabriele studiert das Fach Mathematik. Typischerweise schließen 70 % der Studierenden wenigstens mit einer befriedigenden Note ab. Unter diesen Studierenden erreichen 25 % sogar eine gute oder sehr gute Note. Mit welcher Wahrscheinlichkeit schließt Gabriele mit einer guten oder sehr guten Note ab? Zur Lösung dieses Problems, modellieren wir es wie folgt. Wir definieren die Ereignisse A und B gemäß A= ˆ ‘Gabriele schließt gut oder sehr gut ab’, B= ˆ ‘Gabriele schließt wenigstens befriedigend ab’. Nach Aufgabenstellung sind dann die Wahrscheinlichkeiten P(B) = 0.7 und P(A|B) = 0.25 vorgegeben, während P(A) gesucht ist. Im Hinblick auf (12.2) folgt hierfür P(A) = P(A ∩ B) = P(A|B) · P(B) = 0.175. =0.25
=0.7
Formel (12.2) gilt für zwei Ereignisse. Rekursiv lässt sich diese Formel auf n Ereignisse erweitern. Satz 12.6 (erweiterte Multiplikationsregel) Seien (, A, P) ein Wahrscheinlichkeitsraum und A1 , A2 , . . . , An ∈ A, wobei P(A1 ∩ A2 ∩ . . . ∩ An−1 ) > 0 gelte. Dann gilt die erweiterte Multiplikationsregel P(A1 ∩. . .∩ An ) = P(A1 )·P(A2 |A1 )·P(A3 |A1 ∩ A2 ) · · · P(An |A1 ∩. . .∩ An−1 ).
Beweis Aufgrund von A1 ∩ A2 ∩ . . . ∩ An−1 ⊂ A1 ∩ A2 ∩ . . . ∩ Am für alle m < n, folgt aus P(A1 ∩ A2 ∩ . . . ∩ An−1 ) > 0
12.2 Multiplikationsregeln
227
sofort P(A1 ∩ A2 ∩ . . . ∩ Am ) > 0. Folglich sind alle bedingten Wahrscheinlichkeiten in der erweiterten Multiplikationsregel wohldefiniert. Die Richtigkeit der erweiterten Multiplikationsregel ergibt sich nun durch vollständige Induktion. Für n = 2 erhalten wir gerade die Multiplikationsregel (12.2). Sei die Behauptung also für ein n > 1 erfüllt. Aus der Induktionsvoraussetzung folgt der Induktionsschritt gemäß P(A1 ∩ . . . ∩ An ) = P(An |A1 ∩ . . . ∩ An−1 ) · P(A1 ∩ . . . ∩ An−1 ) = P(An |A1 ∩ . . . ∩ An−1 ) · P(An−1 |A1 ∩ . . . ∩ An−2 ) · · · P(A1 ).
Die erweiterte Multiplikationsregel aus Satz 12.6 ermöglicht die übersichtliche Darstellung eines Zufallsexperiments als Baumdiagramm. Sinnvollerweise wird dieses verwendet, wenn ein Zufallsexperiment aus mehreren Schritten besteht. Interessiert man sich etwa nacheinander für die Ereignisse A, B und C, so können alle möglichen Ergebnisse durch den in Abb. 12.1 dargestellten Baum erfasst werden. Die Kanten des Baums sind gewichtet mit den Übergangswahrscheinlichkeiten von einem Knoten zum nächsten. Die Übergangswahrscheinlichkeit von einem gegebenen Knoten zum Folgeknoten ist offensichtlich die bedingte Wahrscheinlichkeit, dass das Ereignis im Folgeknoten eintritt unter der Bedingung, dass man sich im gegeben Knoten befindet. Beim Entlanggehen eines Pfads muss man die Wahrscheinlichkeiten miteinander multiplizieren, was gerade der erweiterten Multiplikationsregel aus Satz 12.6 entspricht. Diese wird daher auch Pfadregel genannt.
Abb. 12.1 Interpretation der Multiplikationsregel durch ein Baumdiagramm
228
12
Bedingte Wahrscheinlichkeiten und Unabhängigkeit
Beispiel 12.7 (Ziegenproblem) In einer Spielshow hat ein Kandidat die Möglichkeit, eines von drei verschlossenen Toren auszuwählen. Hinter einem der drei Tore befindet sich ein Auto, hinter den beiden anderen Toren jeweils eine Ziege. Nachdem der Kandidat sich für eines der Tore entschieden hat, öffnet der Moderator Monty Hall eines der verbliebenen Tore mit einer Ziege dahinter. Der Kandidat hat nun die Möglichkeit, seine Wahl zu ändern, wobei sich die Frage stellt, ob dies für den Kandidaten vorteilhaft wäre. Für i ∈ {1, 2, 3} mögen die Ereignisse Ai und Bi jeweils die Tore bezeichnen, die der Kandidat auswählt beziehungsweise der Moderator öffnet: ˆ ‘Kandidat wählt Tor i’, Ai = Bi = ˆ ‘Moderator öffnet Tor i’. Wir nehmen ohne Beschränkung der Allgemeinheit an, dass sich das Auto hinter dem ersten Tor befindet und wollen im Folgenden die Nicht-Wechsel-Strategie, bei der der Kandidat seine Wahl nicht revidiert, und die Wechsel-Strategie, bei der der Kandidat seine Wahl revidiert und das andere, noch geschlossene Tor auswählt, näher untersuchen. Das Ziegenproblem kann folgendermaßen modelliert werden. Der Kandidat wählt eines der drei Tore mit gleichgroßer Wahrscheinlichkeit P(A1 ) = P(A2 ) = P(A3 ) =
1 . 3
Wenn der Kandidat das erste (und richtige) Tor wählt, kann der Moderator entweder das zweite oder dritte Tor öffnen, da sich hinter beiden eine Ziege befindet. Wir haben also 1 P(B2 |A1 ) = P(B3 |A1 ) = . 2 Hat der Kandidat hingegen das zweite oder dritte Tor gewählt, so öffnet der Moderator entsprechend das dritte oder zweite Tor, da sich hinter dem ersten Tor ja das Auto befindet. Es gilt demnach P(B3 |A2 ) = P(B2 |A3 ) = 1. Man beachte, dass wir alle anderen bedingten Wahrscheinlichkeiten wie beispielsweise P(B2 |A2 ) vernachlässigen, da sie jeweils verschwinden. In der Nicht-Wechsel-Strategie revidiert der Kandidat seine Wahl nicht mehr, weshalb wir das folgende Baumdiagramm erhalten, aus dem wir sofort herauslesen, dass die Gewinnwahrscheinlichkeit bei dieser Strategie 1/3 ist.
12.2 Multiplikationsregeln
229
Bei der Wechsel-Strategie wechselt der Kandidat hingegen das Tor in eindeutiger Weise, nachdem der Moderator ein Tor mit einer Ziege dahinter geöffnet hat. Wir erhalten das folgende Baumdiagramm:
Wie wir sehen, ist die Gewinnwahrscheinlichkeit bei der Wechsel-Strategie 2/3. Wir schließen hieraus, dass es wesentlich besser ist, das Tor zu wechseln.
Satz 12.8 (Gesetz der totalen Wahrscheinlichkeit) Sei (, A, P) ein Wahrscheinlichkeitsraum. Ferner sei B1 , B2 , . . . ∈ A eine Zerlegung von , das bedeutet ∞ Bi = mit Bi ∩ B j = ∅ für i = j. i=1
230
12
Bedingte Wahrscheinlichkeiten und Unabhängigkeit
Dann gilt für ein beliebiges Ereignis A ∈ A die Formel P(A) =
∞
P(A|Bi ) · P(Bi ).
i=1
Dabei sind in der Summe alle Terme wegzulassen, bei denen P(Bi ) = 0 gilt.
Beweis Da die Mengen Bi eine Zerlegung von bilden, gilt A = A∩= A∩
∞
Bi
i=1
=
∞
(A ∩ Bi ).
i=1
Wegen der paarweisen Unvereinbarkeit von A ∩ Bi für alle i ∈ N∗ folgt hieraus mit Hilfe von (12.2), dass P(A) =
∞
P(A ∩ Bi ) =
i=1
∞
P(A|Bi ) · P(Bi ).
i=1
Die Kombination aus der Definition der bedingten Wahrscheinlichkeit und dem Gesetz der totalen Wahrscheinlichkeit liefert die berühmte Bayessche Formel. Satz 12.9 (Bayessche Formel) Unter den Voraussetzungen von Satz 12.8 gilt für P(A) > 0 die Bayessche Formel P(B j |A) =
P(A|B j ) · P(B j ) P(A|B j ) · P(B j ) , = ∞ P(A) i=1 P(A|Bi ) · P(Bi )
j ∈ N∗ .
Beweis Aus (12.2) folgt P(A ∩ B j ) = P(A|B j ) · P(B j ) = P(B j |A) · P(A), dies bedeutet P(B j |A) =
P(A|B j ) · P(B j ) . P(A)
Mit dem Gesetz der totalen Wahrscheinlichkeit folgt dann auch die letzte Gleichung.
12.2 Multiplikationsregeln
231
Beispiel 12.10 Die Statistik eines Netzwerkbetreibers für ein gewisses Jahr gibt die folgenden Ursachen für Störungen eines Netzwerks an: • 50 % Störungen an Switches, • 30 % Störungen an Routern, • 20 % andere Störungen. Kurzfristig konnten dabei die folgenden Ausfälle behoben werden: • 50 % der Störungen an Switches, • 30 % der Störungen an Routern, • 5 % der sonstigen Störungen. Wir stellen folgende zwei Fragen. Erstens, in wieviel Prozent der Störungen an Routern konnten diese spontan behoben werden? Und zweitens, wie wahrscheinlich sind die drei Ursachen jeweils, wenn die Störung spontan behoben werden konnte? Um die erste Frage zu beantworten, beachten wir, dass die Ereignisse ˆ ‘Störung an einem Switch’, B1 = B2 = ˆ ‘Störung an einem Router’, B3 = ˆ ‘sonstige Störung’ eine Zerlegung der Ergebnismenge bilden, wobei P(B1 ) = 0.5, P(B2 ) = 0.3, P(B3 ) = 0.2 gilt. Damit erhalten wir für das Ereignis A= ˆ ‘Störung konnte spontan behoben werden’ gemäß dem Gesetz der totalen Wahrscheinlichkeit P(A) = P(A|B1 ) ·P(B1 ) + P(A|B2 ) ·P(B2 ) + P(A|B3 ) ·P(B3 ) = 0.35. =0.3
=0.5
=0.05
Die Störung konnte also in 35 % aller Fälle spontan behoben werden. Die zweite Frage beantworten wir mit Hilfe der Bayesschen Formel. Gemäß Satz 12.9 lauten die gesuchten Einzelwahrscheinlichkeiten P(A|B1 ) · P(B1 ) = 0.714, P(A) P(A|B2 ) · P(B2 ) P(B2 |A) = = 0.257, P(A) P(A|B3 ) · P(B3 ) P(B3 |A) = = 0.029. P(A) P(B1 |A) =
232
12.3
12
Bedingte Wahrscheinlichkeiten und Unabhängigkeit
Stochastische Unabhängigkeit
In der Wahrscheinlichkeitstheorie formalisiert die stochastische Unabhängigkeit von Ereignissen die Vorstellung, dass das Eintreten eines Ereignisses die Wahrscheinlichkeit des Eintretens eines anderen Ereignisses nicht beeinflusst. Definition 12.11 Sei (, A, P) ein Wahrscheinlichkeitsraum. Zwei Ereignisse A, B ∈ A heißen stochastisch unabhängig, wenn gilt P(A ∩ B) = P(A) · P(B). Zwei Ereignisse sind demnach stochastisch unabhängig, wenn P(A|B) = P(A) und P(B|A) = P(B). Dies bedeutet, die Wahrscheinlichkeiten der Ereignisse A und B beeinflussen sich tatsächlich nicht gegenseitig. Satz 12.12 Falls A und B stochastisch unabhängig sind, so sind auch die Ereignisse Ac und B c , A und B c , sowie Ac und B stochastisch unabhängig.
Beweis Wegen P(A ∩ B c ) = P(A) − P(A ∩ B) = P(A) − P(A) · P(B) = P(A) · 1 − P(B) = P(A) · P(B c ) sind mit A und B auch A und B c stochastisch unabhängig. Analog zeigt man die verbliebenen Fälle. Wir verallgemeinern nun die stochastische Unabhängigkeit auf den Fall von endlich vielen oder abzählbar unendlich vielen Ereignissen Ai ∈ A. Definition 12.13 Sei (, A, P) ein Wahrscheinlichkeitsraum. Die Familie A1 , A2 , . . . ∈ A von Ereignissen heißt stochastisch unabhängig, wenn für jede Auswahl von m ∈ N∗ Ereignissen gilt: P(Ai1 ∩ Ai2 ∩ . . . ∩ Aim ) = P(Ai1 ) · P(Ai2 ) · · · P(Aim ).
12.3 Stochastische Unabhängigkeit
233
Bemerkung 12.14 Die Definition lässt sich direkt auf endliche Familien A1 , A2 , . . . , An übertragen. Hierzu setzt man einfach Ai = für i > n. Man beachte, dass es in dieser Definition nicht genügt, nur die Gleichheit
∞
P
Ai
=
i=1
∞
P(Ai )
i=1
zu fordern. Insbesondere können die Ereignisse A1 , A2 , . . . paarweise stochastisch unabhängig sein, ohne dass die gesamte Familie stochastisch unabhängig ist. Wir wollen diesen Sachverhalt durch ein Beispiel illustrieren. Beispiel 12.15 Sei = {1, 2, 3, 4} mit P({1}) = P({2}) = P({3}) = P({4}) =
1 . 4
Die Ereignisse A = {1, 2}, B = {1, 3} und C = {2, 3} besitzen demnach die Wahrscheinlichkeit 1 P(A) = P(B) = P(C) = . 2 Wegen 1 = P(A) · P(B), 4 1 P(A ∩ C) = P({2}) = = P(A) · P(C), 4 1 P(B ∩ C) = P({3}) = = P(B) · P(C), 4 P(A ∩ B) = P({1}) =
sind A, B und C paarweise stochastisch unabhängig. Jedoch ergibt sich P(A ∩ B ∩ C) = P(∅) = 0 = P(A) · P(B) · P(C) =
1 , 8
das heißt, es liegt keine stochastische Unabhängigkeit der Familie A, B, C vor. Eine für die Praxis sehr wichtige Folgerung aus der stochastischen Unabhängigkeit von Familien von Ereignissen ist die folgende: Sind die Ereignisse A1 , A2 , . . . stochastisch unabhängig, so gilt mit Hilfe der De Morganschen Regel P
∞ i=1
Ai
∞ ∞ =1−P Aic = 1 − P(Aic ). i=1
i=1
Mit anderen Worten, die Wahrscheinlichkeit dafür, dass wenigstens eines der Ereignisse A1 , A2 , . . . eintritt, ist gleich 1 minus dem Produkt aus den Einzelwahrscheinlichkeiten für das Eintreten von Aci .
234
12.4
12
Bedingte Wahrscheinlichkeiten und Unabhängigkeit
Produktexperimente
Gegeben seien die Modelle (1 , A1 , P1 ), (2 , A2 , P2 ), . . . , (n , An , Pn ) zu n Zufallsexperimenten. Wir wollen nun ein Modell für das Zufallsexperiment konstruieren, welches die unabhängige Hintereinanderausführung der Teilexperimente modelliert. Die folgende Definition liefert eine Konstruktion für den zugehörigen Wahrscheinlichkeitsraum. Definition 12.16 Werden die Wahrscheinlichkeitsräume (i , Ai , Pi ) für alle i ∈ {1, 2, . . . , n} stochastisch unabhängig gekoppelt, so entsteht das Produkt der Wahrscheinlichkeitsräume (, A, P) gemäß := 1 ×. . .×n , A := σ ({A1 ×. . .×An : Ai ∈ Ai }), P := P1 ⊗. . .⊗Pn . Die Ergebnismenge besteht demnach aus allen n-Tupeln ω = (ω1 , ω2 , . . . , ωn ) mit ωi ∈ i . Die Produkt-σ -Algebra A ist die von den Quadermengen Q := {A1 × A2 × . . . × An : Ai ∈ Ai }
erzeugte σ -Algebra, vergleiche Satz 11.12. Die Wahrscheinlichkeitsverteilung P ist schließlich definiert durch die Eigenschaft P(A) := P1 (A1 ) · P2 (A2 ) · · · Pn (An ) für alle A ∈ Q.
(12.3)
Bemerkung 12.17 Die Quadermengen Q sind ein durchschnittsstabiler Erzeuger von A. Das bedeutet, der Schnitt zweier Quader ist wiederum ein Quader. Daher gewährleistet (12.3) nach dem Maßfortsetzungsatz von Carathéodory die eindeutige Fort setzbarkeit der Wahrscheinlichkeitsverteilung P auf beliebige Mengen aus A. Sei ωi die i-te Koordinate des Tupels ω = (ω1 , ω2 . . . , ωn ) ∈ . Das Eintreten des Ereignisses Ai ⊂ i im i-ten Teilexperiment wird dann durch das Ereignis {ω ∈ : ωi ∈ Ai } ∈ A beschrieben, kurz {ωi ∈ Ai }. Damit entspricht A = A1 × A2 × . . . × An =
n
{ωi ∈ Ai }
i=1
dem Ereignis, dass sich jeweils Ai im i-ten Teilexperiment ereignet. Da es sich bei A um eine Quadermenge handelt, gilt gemäß (12.3), dass P
n
{ωi ∈ Ai } = P(A) = P1 (A1 ) · P2 (A2 ) · · · Pn (An ).
i=1
12.4 Produktexperimente
235
Fixiert man darüber hinaus einen Index 1 ≤ k ≤ n und setzt Ai := i für i = k, so ergibt sich n
{ωi ∈ Ai } = {ωk ∈ Ak }
i=1
und daher P({ωk ∈ Ak }) = Pk (Ak ). Also ist die Wahrscheinlichkeit für das Eintreten von Ak ⊂ k im k-ten Teilexperiment identisch mit der Wahrscheinlichkeit von Ak bezüglich des k-ten Teilmodells (k , Ak , Pk ). Insbesondere folgern wir
n n {ωi ∈ Ai } = P({ωi ∈ Ai }). P i=1
i=1
Da hierin beliebig viele Ai = i gesetzt werden können, folgt schließlich
P {ωi ∈ Ai } = P({ωi ∈ Ai }) i∈I
i∈I
für jede Auswahl von Indizes I ⊂ {1, 2, . . . , n}. Das Modell (, A, P) besitzt also tatsächlich die Eigenschaft, dass Ereignisse, die eine Aussage über die Ausgänge verschiedener Teilexperimente machen, unabhängig sind. Beispiel 12.18 Wir betrachten eine Folge von n unabhängigen Einzelexperimenten, die für jedes i ∈ {1, 2, . . . , n} jeweils durch die Ergebnismenge i = {0, 1} und die Wahrscheinlichkeitsverteilung Pi (ωi ) =
p, falls ωi = 1, 1 − p, falls ωi = 0,
beschrieben sind. Hierbei sei 0 ≤ p ≤ 1. Die Ergebnismenge ist = {0, 1}n = {(ω1 , ω2 , . . . , ωn ) : ωi ∈ {0, 1}, 1 ≤ i ≤ n}, und die Wahrscheinlichkeitsverteilung ist gegeben durch n P({ω}) = P {(ω1 , ω2 , . . . , ωn )} = Pi ({ωi }) = p k (1 − p)n−k , i=1
wobei k die Anzahl der Indizes i mit ωi = 1 ist.
236
12
Bedingte Wahrscheinlichkeiten und Unabhängigkeit
Übungsaufgaben Aufgabe 12.1 (Unabhängigkeit) Bekannt seien folgende Wahrscheinlichkeiten: P(Ac ) = 0.70, P(A ∩ B c ) = 0.24, P(A ∪ B) = 0.44. a) Was ist P(B)? b) Sind die Ereignisse A und B unabhängig? Aufgabe 12.2 (Multiplikationsregel) Eine Vorlesung im Studienfach Mathematik besteht aus acht Kapiteln. Bei einer mündlichen Prüfung ziehen die Studierenden drei zufällige Kapitel, deren Inhalt dann geprüft wird. Die Studierenden erhalten eine sehr gute Note genau dann, wenn sie sämtliche Fragen zu diesen drei Kapiteln richtig beantworten. Ein sehr gutes Wissen über die Vorlesung haben Studierende genau dann, wenn sie sämtliche Fragen zu mindestens sieben Kapiteln beantworten können. Die Wahrscheinlichkeit, dass sie in genau j Kapiteln sämtliche Fragen richtig beantworten können, sei j/36. a) Simone kann zu genau j Kapiteln sämtliche Fragen richtig beantworten. Mit welcher Wahrscheinlichkeit erhält Simone eine sehr gute Note? b) Nicola hat ein sehr gutes Wissen über die Vorlesung. Mit welcher Wahrscheinlichkeit erhält Nicola eine sehr gute Note? c) Mit welcher Wahrscheinlichkeit erhält Michele eine sehr gute Note, ohne ein sehr gutes Wissen über die Vorlesung zu haben? d) Andrea erhält eine sehr gute Note. Mit welcher Wahrscheinlichkeit hat Andrea auch ein sehr gutes Wissen über die Vorlesung? Aufgabe 12.3 (Bayessche Formel) Im Rahmen einer Studie werden Studierende befragt, ob sie schon einmal abgeschrieben haben. Um Anonymität zu gewährleisten, benutzt man das folgende Verfahren: Die Befragten werfen erst einmal im Geheimen einen fairen Würfel. Haben sie eine Eins gewürfelt, so antworten sie mit Nein, im Fall einer Sechs mit Ja. In allen anderen Fällen sagen sie die Wahrheit. Wir nehmen an, dass sich alle an diese Anweisung halten. In der Umfrage antworten schließlich 2/3 der Studierenden mit Ja. a) Wie hoch ist der Anteil der Studierenden, die schon einmal gespickt haben? b) Wie groß ist die Wahrscheinlichkeit, dass Studierende, die in der Umfrage mit Ja geantwortet haben, tatsächlich schon einmal abgeschrieben haben? c) Bestimmen Sie die Wahrscheinlichkeit dafür, dass Studierende, die mit Nein geantwortet haben, wirklich noch nie abgeschrieben haben. Aufgabe 12.4 (Gesetz der totalen Wahrscheinlichkeit) Eine Mietwagenfirma verfüge über 500 Fahrzeuge eines bestimmten Typs, welche jährlich nach folgender Regel erneuert werden: Ein Wagen werde bereits nach einem Jahr erneuert, wenn er
Übungsaufgaben
237
in dieser Zeit mehr als 100 000 km gefahren wurde, andernfalls wird er im darauffolgenden Jahr erneuert. Erfahrungsgemäß weisen 40 % der Wagen nach ihrem ersten Jahr einen Kilometerstand von mehr als 100 000 km auf. Bestimmen Sie den Anteil der zu erneuernden Wagen nach k Jahren, falls zu Beginn des ersten Jahres 500 Neuwagen vorhanden sind. Gegen welchen Wert streben diese Anteile? Aufgabe 12.5 (Unabhängigkeit) Die Ereignisse A1 , A2 , . . . , An ∈ A seien stochastisch unabhängig. Zeigen Sie: a) Die Ereignisse ∅, A1 , A2 , . . . , An , sind stochastisch unabhängig. b) Sind i, j ∈ {1, 2, . . . , n} mit i = j derart, dass Ai = A j ist, dann gilt P(Ai ) ∈ {0, 1}. c) Gilt Bi ∈ {Ai , Aic } für jedes i ∈ {1, 2, . . . , n}, so sind die Ereignisse B1 , B2 , . . . , Bn stochastisch unabhängig. d) Im Fall n > 2 sind auch A1 ∪ A2 , A3 , . . . , An stochastisch unabhängig.
13
Diskrete Verteilungen
13.1
Zufallsvariablen
In vielen Zufallsexperimenten sind die Ergebnisse konkrete Zahlenwerte. Oftmals möchte man auch in Fällen, in denen dies nicht zutrifft, Zahlenwerte zur Charakterisierung der Ergebnisse eines Zufallsexperiments heranziehen. Dazu ist es notwendig, geeignete Abbildungen X : → R zu definieren, welche einem Ergebnis ω ∈ eine reelle Zahl X (ω) zuordnen. Definition 13.1 Sei (, A, P) ein Wahrscheinlichkeitsraum. Dann heißt die Abbildung X : → R Zufallsvariable über (, A, P), wenn {ω ∈ : X (ω) ≤ x} ∈ A für alle x ∈ R.
Bemerkung 13.2 Die von den halboffenen Intervallen I = (−∞, x] erzeugte σ Algebra ist die sogenannte Borelsche σ -Algebra B (R) auf R. In B (R) enthaltene Mengen sind beispielsweise offene, halboffene oder abgeschlossene Intervalle. Die Eigenschaft {ω ∈ : X (ω) ≤ x} ∈ A garantiert, dass für jede Menge B ∈ B (R) das Urbild X −1 (B) in A enthalten ist. Damit ist P X (B) := P({ω ∈ : X (ω) ∈ B}) für jedes solche B wohldefiniert und folglich eine Wahrscheinlichkeitsverteilung auf B (R), welche Verteilung von X unter P genannt wird.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_13
239
240
13
Diskrete Verteilungen
Zufallsvariablen können diskret oder stetig sein. Diskrete Zufallsvariablen werden in der nachfolgenden Definition eingeführt, während stetige Zufallsvariablen Gegenstand von Kap. 14 sind. Definition 13.3 Eine Zufallsvariable heißt diskret, wenn sie nur endlich viele oder abzählbar unendlich viele Werte annimmt.
Beispiel 13.4 Das Würfeln zweier idealisierter Würfel können wir mittels der Ergeb nismenge = (i, j) : i, j ∈ {1, 2, . . . , 6} modellieren. Dabei mögen i und j die gewürfelten Augenzahlen des ersten beziehungsweise des zweiten Würfels bezeichnen. Die Summe der Augenzahlen ist dann eine diskrete Zufallsvariable X (ω) = i + j. Im Weiteren werden wir die Schreibweise {X ∈ B} für das Ereignis {ω ∈ : X (ω) ∈ B} benutzen. Dies vereinfacht die Notation ohne der Verständlichkeit zu schaden. Definition 13.5 Ist X eine diskrete Zufallsvariable, welche die Werte x1 , x2 , . . . annimmt, so bezeichnet die Zuordnung pi := P({X = xi }), i ∈ N∗ die Wahrscheinlichkeitsfunktion der diskreten Zufallsvariable X .
Bemerkung 13.6 Die in Definition 13.5 eingeführten Wahrscheinlichkeiten pi sind für alle i ∈ N∗ wohldefiniert. Denn für beliebiges x ∈ R und 1 1 = x − ,x An := (−∞, x] \ − ∞, x − n n gilt, dass 1 ∈ A, X −1 (An ) = {X ∈ An } = {X ∈ (−∞, x]} \ X ∈ − ∞, x − n da A eine σ -Algebra und X eine Zufallsvariable ist. Weiter gilt {X ∈ An+1 } ⊂ {X ∈ An } für alle n ∈ N∗ sowie ∞ n=1 {X ∈ An } = {X = x}. Deshalb folgt aufgrund der σ -Stetigkeit von P aus Satz 11.17, dass limn→∞ P({X ∈ An }) = P({X = x}) gilt.
13.1 Zufallsvariablen
241
Beispiel 13.7 (Fortsetzung von Beispiel 13.4) Die Zufallsvariable X entspreche der gewürfelten Augensumme beim Werfen zweier Würfel. Die endliche Zahl der Ergebnisse erlaubt eine Darstellung der Wahrscheinlichkeitsfunktion als Tabelle: i 1 2 3 4 5 6 7 8 9 10 11 xi 2 3 4 5 6 7 8 9 10 11 12 1 1 1 1 5 1 5 1 1 1 1 pi 36 18 12 9 36 6 36 9 12 18 36
Eine diskrete Zufallsvariable X wird offensichtlich vollständig durch ihre Wahrscheinlichkeitsfunktion charakterisiert. Satz 13.8 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine diskrete Zufallsvariable. Dann gelten für die Wahrscheinlichkeitsfunktion die folgenden Aussagen: 1. Es gilt 0 ≤ pi ≤ 1 für alle i ∈ N∗ . ∞ pi = 1. 2. Es gilt i=1 3. Die Wahrscheinlichkeit dafür, dass X im Intervall [a, b] liegt, berechnet sich gemäß
pi . P({X ∈ [a, b]}) = a≤xi ≤b
Beweis Der einfache Beweis verbleibt dem Leser zur Übung.
Beispiel 13.9 (geometrische Verteilung) Wir drehen so lange an einem Glücksrad, bis dieses den Hauptgewinn anzeigt. Die Wahrscheinlichkeit für den Hauptgewinn betrage 0 < p < 1. Dementsprechend ist 1 − p die Wahrscheinlichkeit für eine Niete beziehungsweise einen Trostpreis. Das wiederholte Drehen des Glücksrads sei voneinander unabhängig. Wir wollen die Zufallsvariable X= ˆ ‘Anzahl der Versuche bis zum Hauptgewinn’ untersuchen. Es gilt für das Ereignis ˆ ‘Hauptgewinn beim i-ten Drehen’ Ai = P(Ai ) = p und P(Aci ) = 1 − p. Daher ergibt sich für X die Wahrscheinlichkeitsfunktion = p, P(X = 0) = P(A1 ) = (1 − p) · p, P(X = 1) = P(Ac1 ∩ A2 ) P(X = 2) = P(Ac1 ∩ Ac2 ∩ A3 ) = (1 − p)2 · p,
242
13
Diskrete Verteilungen
und allgemein P(X = i) = P(Ac1 ∩ . . . ∩ Aci ∩ Ai+1 ) = (1 − p)i · p, i ∈ N.
(13.1)
Insbesondere gilt 0 ≤ p · (1 − p)i ≤ 1 für alle i ∈ N und ∞
(1 − p)i · p = p ·
i=0
∞
(1 − p)i = p ·
i=0
1 1 = p · = 1. 1 − (1 − p) p
Eine Zufallsvariable X mit der Wahrscheinlichkeitsfunktion (13.1) heißt geometrisch verteilt. Wie in unserem Beispiel modelliert die geometrische Verteilung üblicherweise die Wartezeit bis zum Eintreffen eines bestimmten Ereignisses.
13.2
Verteilungsfunktionen
Definition 13.10 Es seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine Zufallsvariable. Dann heißt die zu X gehörige Funktion F(x) := P({X ≤ x}) Verteilungsfunktion von X .
Bemerkung 13.11 Im Fall einer diskreten Zufallsvariable X mit den Werten x1 , x2 , . . . ergibt sich die Verteilungsfunktion offenbar zu F(x) = P({X ≤ x}) =
xi ≤x
P({X = xi }) =
pi .
xi ≤x
Im folgenden Satz formulieren wir die wichtigsten Eigenschaften von Verteilungsfunktionen. Satz 13.12 Es seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine Zufallsvariable. Dann gilt: 1.
lim F(x) = 0.
x→−∞
2. lim F(x) = 1. x→∞
13.2 Verteilungsfunktionen
243
3. F(x) ist monoton wachsend (nicht notwendigerweise streng), das heißt x < y ⇒ F(x) ≤ F(y). 4. F ist rechtsseitig stetig, das heißt lim F(y) = F(x).
y x
Beweis 1. Sei {xn } ⊂ R eine beliebige Folge mit xn → −∞ für n → ∞. Dann bilden die absteigende Familie, das heißt Ai+1 ⊂ Ai für Ereignisse An := {X ≤ xn } eine ∞ Ai = ∅. Gemäß Satz 11.17 folgt deshalb alle i ∈ N∗ und limn→∞ An = i=1 lim F(xn ) = lim P({X ≤ xn }) = P lim {X ≤ xn } = P(∅) = 0.
n→∞
n→∞
n→∞
2. Der Beweis erfolgt analog zur ersten Aussage, indem man zu einer beliebigen Folge {xn } ⊂ R mit xn → ∞ für n → ∞ die aufsteigende Familie An := {X ≤ xn } betrachtet. 3. Aufgrund von {X ≤ x} ⊂ {X ≤ y} folgt das Behauptete sofort aus der vierten Aussage aus Satz 11.16. 4. Sei {yn } ⊂ R eine monoton fallende Folge mit yn → x für n → ∞. Die Ereignisse An := {X ≤ yn } bilden dann eine absteigende Familie derart, dass ∞ n=1 An = {X ≤ x} gilt. Die Behauptung folgt nun wie in der ersten Aussage mit Hilfe von Satz 11.17. Bemerkung 13.13 Im Fall diskreter Zufallsvariablen ist die Verteilungsfunktion immer eine Treppenfunktion. Die Punkte xi kennzeichnen die Sprungstellen und die Werte pi die zugehörigen Sprunghöhen, das heißt, es gilt pi = F(xi ) − F(x) für alle xi−1 ≤ x < xi . Die gezeigte rechtsseitige Stetigkeit bedeutet, dass der Funktionswert an der Sprungstelle dem rechten Teil des Graphen zugeordnet wird. Beispiel 13.14 (Fortsetzung von Beispiel 13.7) Entspricht X der gewürfelten Augensumme beim Werfen zweier Würfel, so erhalten wir die Verteilungsfunktion aus Abb. 13.1.
244
13
Diskrete Verteilungen
Abb. 13.1 Die Verteilungsfunktion zur Wahrscheinlichkeitsfunktion aus Beispiel 13.7
13.3
Erwartungswert
Um den Erwartungswert einer Zufallsvariable zu motivieren, betrachten wir erneut die geometrische Verteilung. Beispiel 13.15 (Erwartungswert der geometrischen Verteilung) Wir führen das in Beispiel 13.9 beschriebene Zufallsexperiment n mal durch und erhalten das folgende Ergebnis: ˆ ‘Anzahl der Hauptgewinne beim ersten Drehen’, h n (0) = ˆ ‘Anzahl der Hauptgewinne beim zweiten Drehen’, h n (1) = .. . h n (i) = ˆ ‘Anzahl der Hauptgewinne beim (i + 1)-ten Drehen’. Die mittlere Anzahl der Versuche, bevor der Hauptgewinn erzielt wird, ist dann gegeben durch ∞
h n (i) i=0
n
·i =
∞
n→∞
Hn (i) · i −→
i=0
∞
P({X = i}) · i.
i=0
Konkret erhalten wir im Fall der geometrischen Verteilung ∞
i=0
P({X = i}) · i =
∞
p(1 − p) · i = p(1 − p) i
i=0
= p · (1 − p)
∞
i(1 − p)i−1
i=0
1
2 = 1 − (1 − p)
1− p , p
13.3 Erwartungswert
245
wobei wir die Summenformel ∞
i x i−1 =
i=0
1 (1 − x)2
(13.2)
benutzt haben, die sich durch Differentation nach x aus der bekannten Identität ∞
xi =
i=0
1 1−x
ergibt.
Definition 13.16 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine diskrete Zufallsvariable. Weiterhin bezeichne pi = P({X = xi }) die Wahrscheinlichkeitsfunktion von X . Dann wird die Größe E[X ] :=
∞
xi pi =
i=1
∞
xi P({X = xi })
(13.3)
i=1
∞ |xi | pi < ∞ gilt. Erwartungswert der Zufallsvariablen X genannt, falls i=1 Konvergiert die Reihe (13.3) nicht absolut, so existiert kein Erwartungswert.
Bemerkung 13.17 Es gilt offensichtlich die Identität
X (ω) P({ω}). E[X ] =
(13.4)
ω∈
Nachfolgend halten wir die wichtigsten Eigenschaften des Erwartungswerts fest.
Satz 13.18 Seien (, A, P) ein Wahrscheinlichkeitsraum und X , Y : → R zwei diskrete Zufallsvariablen. 1. Falls E[X ] existiert, so gilt für alle a, b ∈ R E[a X + b] = a · E[X ] + b.
(13.5)
246
13
Diskrete Verteilungen
2. Falls E[X ] und E[Y ] existieren, so gilt E[X + Y ] = E[X ] + E[Y ].
(13.6)
3. Falls E[X ] und E[Y ] existieren und X (ω) ≤ Y (ω) für alle ω ∈ , so gilt E[X ] ≤ E[Y ].
Beweis 1. Es gilt E[a X + b] =
∞
(a · xi + b) pi = a ·
i=1
∞
xi pi +b ·
i=1
=E[X ]
∞
pi = a · E[X ] + b.
i=1
=1
2. Nach (13.4) folgt E[X + Y ] =
X (ω) + Y (ω) · P({ω})
ω∈
=
X (ω) · P({ω}) +
ω∈
Y (ω) · P({ω})
ω∈
= E[X ] + E[Y ]. 3. Die Behauptung folgt erneut aus (13.4): E[X ] =
X (ω) ·P({ω}) ≤
ω∈ ≤Y (ω)
Y (ω) · P({ω}) = E[Y ].
ω∈
Bemerkung 13.19 Die Beziehungen (13.5) und (13.6) implizieren die Linearität des Erwartungswerts, dies bedeutet E[a X + bY ] = aE[X ] + bE[Y ].
(13.7)
Neben E[X ] kann auch der Erwartungswert von Funktionen einer Zufallsvariablen X betrachtet werden, wie zum Beispiel g(X ) = X 2 .
13.4 Varianz
247
Satz 13.20 Seien (, A, P) ein Wahrscheinlichkeitsraum, X : → R eine diskrete Zufallsvariable und g : R → R eine stetige Funktion. Weiterhin sei pi = P({X = xi }) die Wahrscheinlichkeitsfunktion von X . Falls E[X ] und E[g(X )] existieren, so gilt E[g(X )] =
∞
g(xi ) · pi =
i=1
∞
g(xi ) P({X = xi }).
i=1
Beweis Für die Zufallsvariable Y := g(X ) folgt E[Y ] =
∞
i=1
=
∞
∞
yi P({Y = yi }) = yi i=1
P({X = x j })
j∈{k:g(xk )=yi }
g(xk ) P({X = xk }).
k=1
13.4
Varianz
Der Erwartungswert einer Zufallsvariablen beschreibt ihr Verhalten im Mittel. Er gibt jedoch keinerlei Aufschluss darüber, wie gut die Zufallsvariable durch diesen Wert tatsächlich repräsentiert wird. So ist etwa der Mittelwert der Zahlen {−x, x} immer 0, unabhängig von der Größe x. Daher führen wir nun ein Maß für die mittlere quadratische Abweichung vom Erwartungswert ein.
Definition 13.21 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine diskrete Zufallsvariable. Existiert E[X 2 ], so heißt die Größe σ 2 := V[X ] mit (13.8) V[X ] := E (X − E[X ])2 √ Varianz oder Streuung von X . Die Wurzel σ := V[X ] heißt Standardabweichung von X .
248
13
Diskrete Verteilungen
Bemerkung 13.22 Wegen
2 für alle ω ∈ |X (ω)| ≤ 1 + X (ω) folgt aus der Existenz von E[X 2 ] bereits die Existenz von E[X ].
Lemma 13.23 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine diskrete Zufallsvariable. Dann gilt für alle a, b ∈ R V[a X + b] = a 2 V[X ].
Beweis Die Behauptung folgt sofort aus der Definition der Varianz gemäß V[a X + b] = E (a X + b − E[a X + b])2 = E (a X − aE[X ])2 =aE[X ]+b
= a E (X − E[X ])2 = a 2 V[X ]. 2
Formel (13.8) ist in numerischen Verfahren oft ungeeignet, weil man den Erwartungswert E[X ] der Zufallsvariablen bereits berechnet haben muss, bevor die Varianz V[X ] ausgewertet werden kann. Dies kann mit der folgenden Formel vermieden werden, welche sich daher in der Praxis als hilfreich erweist.
Satz 13.24 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine diskrete Zufallsvariable, für die die Varianz existiere. Dann gilt V[X ] = E[X 2 ] − (E[X ])2 .
Beweis Es gilt V[X ] = E (X − E[X ])2 = E X 2 − 2X E[X ] + (E[X ])2 . Benutzen wir (13.7) und die Tatsache, dass E[X ] ∈ R eine reelle Zahl ist, so folgt V[X ] = E[X 2 ] − 2E[X ] · E[X ] + (E[X ])2 = E[X 2 ] − (E[X ])2 .
13.4 Varianz
249
Beispiel 13.25 (Varianz der geometrischen Verteilung) Wir berechnen die Varianz V[X ] für die geometrische Verteilung. Dazu ziehen wir die Formeln pi = p · (1 − p)i , E[X ] =
1− p , V[X ] = E[X 2 ] − (E[X ])2 p
heran, vergleiche dazu Beispiele 13.9 und 13.15. Durch Differentiation von (13.2) nach x folgt die Summenformel ∞
i(i − 1)x i−2 =
i=0
2 . (1 − x)3
Damit erhalten wir E[X 2 ] =
∞
i 2 p(1 − p)i =
i=0
∞
i(i − 1)
i=0
= p(1 − p)2 ·
2
3 + 1 − (1 − p)
p(1 − p)i = p(1− p)2 (1− p)i−2
+
∞
i=0
i p(1 − p)i
=E[X ]
1− p 1− p 2(1 − p)2 + = . p p2 p
Schließlich ergibt sich V[X ] = E[X 2 ] − (E[X ])2 =
(1 − p)2 1− p + . p2 p
Mit Hilfe des Erwartungswerts und der Varianz einer diskreten Zufallsvariablen X können wir bereits eine Abschätzung für die Wahrscheinlichkeit dafür angeben, dass X Werte außerhalb eines symmetrischen Intervalls um den Erwartungswert annimmt. Satz 13.26 (Tschebyscheffsche Ungleichung) Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine diskrete Zufallsvariable, für die die Varianz existiere. Dann gilt für alle ε > 0 die Abschätzung P({|X − E[X ]| ≥ ε}) ≤
V[X ] . ε2
Diese ist äquivalent zu |X − E[X ]| 1 P ≥ε ≤ 2. σ ε
(13.9)
250
13
Diskrete Verteilungen
Beweis Wir schätzen die Varianz wie folgt nach unten ab: V[X ] =
∞
(xi − E[X ])2 pi ≥
i=1
≥ ε2
i∈{ j:|xj −E[X ]|≥ε}
(xi − E[X ])2 pi ≥ε 2
pi = ε2 · P({|X − E[X ]| ≥ ε}).
i∈{ j:|xj −E[X ]|≥ε}
Die Behauptung ergibt sich hieraus durch Auflösen nach P({|X − E[X ]| ≥ ε}). Bemerkung 13.27 1. Den Beweis der Tschebyscheffschen Ungleichung (13.9) kann man analog auch im Fall strenger Ungleichheit führen. Dann folgt für alle ε > 0 die Abschätzung P({|X − E[X ]| > ε})
0, dass P({|X n − μ| ≥ ε}) ≤
M n→∞ −→ 0. ε2 n
Beweis Aufgrund der Linearität des Erwartungswerts gilt
n n 1
1 E[X n ] = E Xi = μ = μ. n n i=1
i=1
13.6 Binomialverteilung
255
Mit Lemma 13.34 folgt weiter
n n n 1 2 1 1
M Xi = 2 σi ≤ 2 M= V[X n ] = V . n n n n i=1
i=1
i=1
Die Behauptung ergibt sich nun sofort aus der Tschebyscheffschen Ungleichung (13.9). Aus dem Gesetz der großen Zahlen folgt als Spezialfall die Konvergenz der relativen Häufigkeit. Der Nachweis dieser Konvergenz war das Hauptergebnis aus der Ars Conjectandi von Jakob Bernoulli [Ber13]. Dieses Buch war das erste systematische Werk zur Wahrscheinlichkeitstheorie und bildete das Fundament aller weiteren Entwicklungen. Beispiel 13.36 (Konvergenz der relativen Häufigkeit) Ein Zufallsexperiment sei modelliert durch den Wahrscheinlichkeitsraum (, A, P). Wir fixieren ein gegebenes Ereignis A ∈ A und betrachten n unabhängige Versuche. Für i ∈ {1, 2, . . . , n} setzen wir 1, A tritt im i-ten Versuch ein, Xi = 0, A tritt im i-ten Versuch nicht ein. Dann gilt 1 . 4 Das schwache Gesetz der großen Zahlen liefert für die relative Häufigkeit E[X i ] = P(A) = p, V[X i ] = p(1 − p) ≤
n 1
Xi Hn (A) = n i=1
die Abschätzung 1 n→∞ −→ 0. 4ε2 n Diese Abschätzung besagt, dass sich die relative Häufigkeit Hn (A) des Ereignisses A immer mehr der theoretischen Wahrscheinlichkeit p annähert, wenn die Anzahl der Versuche erhöht wird. P({|Hn (A) − p| ≥ ε}) ≤
13.6
Binomialverteilung
Vorgelegt sei eine Zufallsexperiment, das durch den Wahrscheinlichkeitsraum (, A, P) modelliert werde. Wir führen n unabhängige Versuche durch, wobei wir
256
13
Diskrete Verteilungen
uns für das Eintreten eines gegebenen Ereignisses A ∈ A interessieren. Wie in Beispiel 13.36 setzen wir für i ∈ {1, 2, . . . , n} wieder Xi =
1, A tritt im i-ten Versuch ein, 0, A tritt im i-ten Versuch nicht ein.
Dann gilt P(A) = P({X i = 1}) = p, P(Ac ) = P({X i = 0}) = 1 − p. Für ein Tupel (x1 , x2 , . . . , xn ) ∈ {0, 1}n mit P({X 1 = x1 , X 2 = x2 , . . . , X n = xn }) =
n
i=1 x i
n
= k gilt
P({X i = xi }) = p k (1 − p)n−k .
i=1
Da es insgesamt
n k
Tupel mit
n
i=1 x i
= k gibt, folgt für die Zufallsvariable
Sn = X 1 + X 2 + . . . + X n , dass n
xi = k P({Sn = k}) = P (X 1 , X 2 , . . . , X n ) = (x1 , x2 , . . . , xn ) ∈ {0, 1}n : i=1
n k = p (1 − p)n−k . k Insbesondere gilt E[Sn ] =
n
i=1
E[X i ] = np, V[Sn ] = =p
n
V[X ] i i=1 = p(1− p)
= np(1 − p).
Definition 13.37 Sei (, A, P) ein Wahrscheinlichkeitsraum. Eine diskrete Zufallsvariable X : → R mit der Wahrscheinlichkeitsfunktion n k P({X = k}) = p (1 − p)n−k , k ∈ {0, 1, . . . , n}, k heißt binomialverteilt mit den Parametern n ∈ N∗ und p ∈ [0, 1]. Wir schreiben dann auch kurz X ∼ Bin(n, p).
13.6 Binomialverteilung
257
Abb. 13.2 Binomialverteilungen für n = 100 und p = 0.1, 0.5, 0.8
Im Fall n = 100 ist die Wahrscheinlichkeitsfunktion der Binomialverteilung für verschiedene Werte von p in Abb. 13.2 dargestellt. Wir bemerken, dass die Verteilung im Fall p = 0.5 symmetrisch zum Erwartungswert np = 50 ist. Im Fall von p = 0.5 ergibt sich hingegen keine Symmetrie bezüglich des Erwartungswerts. Beispiel 13.38 Ein idealisierter Würfel werde n = 20 mal geworfen. Wir wollen die Wahrscheinlichkeit dafür bestimmen, dass mindestens zwei Sechsen gewürfelt werden. Dazu sei A= ˆ ‘es wird eine Sechs gewürfelt’, wobei p = P(A) = 1/6 gelte, und X= ˆ ‘Anzahl der geworfenen Sechsen bei n = 20 Würfen’. Wegen X ∼ Bin(n, p) = Bin(20, 1/6) folgt P({X ≥ 2}) = 1 − P({X < 2}) ={X ≤1}
= 1 − P({X = 0}) − P({X = 1}) 0 20 1 19 20 1 5 5 20 1 =1− − 6 6 6 9 0 1 = 0.8696. Um die Frage zu beantworten, mit welcher Wahrscheinlichkeit die bei n = 20 Würfen erzielte Anzahl von Sechsen asymptotisch um mehr als 3 vom Erwartungswert 1 E[X ] = n · p = 20 · = 3.3 6
258
13
Diskrete Verteilungen
abweicht, verwenden wir die Tschebyscheffsche Ungleichung (13.9) P({|X − E[X ]| > 3})
3})
t1 . 3. Ordinarität: Die Ereignisse treten für hinreichend kleine Zeitintervalle einzeln auf. Es gilt also entweder X t = 0 oder X t = 1, falls t genügend klein ist. Weiter sei P({X t = 1}) = μt. Der Parameter μ mit 0 < μ < ∞ heißt Intensität.
13.7 Poisson-Verteilung
259
Definition 13.39 Sei (, A, P) ein Wahrscheinlichkeitsraum. Eine diskrete Zufallsvariable X t : → R mit der Wahrscheinlichkeitsfunktion P({X t = k}) =
(μt)k −μt e , k∈N k!
(13.12)
heißt Poisson-verteilt. Oft setzt man λ = μt, so dass λ der einzige Parameter der Poisson-Verteilung ist. Wir schreiben X t ∼ πμt beziehungsweise X t ∼ πλ .
Die Wahrscheinlichkeitsfunktion der Poisson-Verteilung ist in Abb. 13.3 für verschiedene Werte von λ visualisiert. Die Verteilung steigt für kleinere Werte von λ schnell an und fällt danach auch schnell wieder ab. Für größere Werte von λ ist die Wahrscheinlichkeitsfunktion hingegen breiter und folglich auch flacher. Bemerkung 13.40 Formel (13.12) lässt sich folgendermaßen motivieren: Man teilt das Zeitintervall der Länge t in n gleichlange, hinreichend kleine Teilintervalle t = t/n mit P({X t = 1}) = μ t auf. Nun liefert die Binomialverteilung n P({X t = k}) = (μ t)k (1 − μ t)n−k , k da in k aus n Teilintervallen ein Ereignis stattfindet, während in n − k Teilintervallen kein Ereignis stattfindet. Es folgt:
Abb. 13.3 Poissonverteilungen für λ = 5, 10, 20
260
13
Diskrete Verteilungen
k μt μt n−k n! 1− k!(n − k)! n n n k μt n · (n − 1) · · · (n − k + 1) 1 (μt) 1− = k k k! n n 1 − μt −→ 1 n −→ e−μt n→∞ n→∞
P({X t = k}) =
−→ 1
n→∞
(μt)k −μt −→ e . k!
n→∞
Das bedeutet, dass die Poisson-Verteilung als Grenzwert der Binomialverteilung im Fall p · n → λ und n → ∞ aufgefasst werden kann. Beispiel 13.41 Wir suchen für einen Netzwerkknoten die Wahrscheinlichkeit dafür, dass innerhalb einer Viertelstunde wenigstens 3 und höchstens 7 Verbindungsanfragen eingehen. Dabei sei die gewählte Zeiteinheit ‘Minuten’ und die Intensität μ = 1/3. Es gilt also t = 15 und λ = μt = 1/3 · 15 = 5. Die Zufallsvariable X 15 , welche die Anzahl der eingehenden Verbindungsanfragen in t = 15 Minuten modelliert, erfüllt X 15 ∼ πμt = π5 . Daher erhalten wir P({3 ≤ X 15 ≤ 7}) =
7
5k k=3
k!
e−5 = 0.742.
Satz 13.42 Seien (, A, P) ein Wahrscheinlichkeitsraum und X t : → R mit X t ∼ πλ eine Poisson-verteilte Zufallsvariable. Dann gilt E[X t ] = V[X t ] = λ.
Beweis Für den Erwartungswert von X t ∼ πλ ergibt sich E[X t ] =
∞
k=0
∞
k·
λk−1 λk −λ e = λe−λ k! (k − 1)! k=1
j:=k−1
=
λe−λ ·
∞
λj
j! j=0
=eλ
= λ.
13.8 Hypergeometrische Verteilung
261
Weiter erhalten wir für E[X t2 ], dass E[X t2 ] =
∞
k=0
k2
∞ ∞ λk −λ λk λk k · (k − 1) e−λ + k e−λ e = k! k! k! k=0 k=0
∞
λk−2 2 −λ +λ = λ e (k − 2)!
=E[X t ]=λ
j:=k−2
=
λ2 e−λ
k=2
∞ λj j! j=0
+ λ = λ2 + λ.
=eλ
Damit ergibt sich die Varianz gemäß V[X t ] = E[X t2 ] − (E[X t ])2 = λ2 + λ − λ2 = λ. Bemerkung 13.43 Bei einer Poisson-verteilten Zufallsvariablen X t ∼ πμt gibt die Intensität μ mit μ = E[X t ]/t die mittlere Anzahl von auftretenden Ereignissen pro Zeiteinheit an.
13.8
Hypergeometrische Verteilung
Wir wollen das Lottospiel aus Beispiel 11.24 wie folgt verallgemeinern. Eine Urne enthalte N Kugeln, von denen M schwarz und N − M weiß seien. Wir ziehen ohne Zurücklegen n Kugeln aus der Urne und zählen die dabei gezogenen schwarzen Kugeln, das heißt X= ˆ ‘Anzahl der gezogenen schwarzen Kugeln’. Beim Lottospiel entsprechen die Gewinnzahlen den schwarzen Kugeln und die Nieten den weißen Kugeln. Daher gilt offensichtlich M N −M P({X = m}) =
m
n−m
N
, m ∈ 0, 1, 2, . . . , min{n, M} .
(13.13)
n
Hier haben wir benutzt, dass die Anzahl schwarze Kugeln, welche gezogen werden können, einerseits beschränkt ist durch n und andererseits auch beschränkt ist durch M.
262
13
Diskrete Verteilungen
Definition 13.44 Sei (, A, P) ein Wahrscheinlichkeitsraum. Eine Zufallsvariable X mit der Wahrscheinlichkeitsfunktion (13.13) heißt hypergeometrisch verteilt mit den Parametern n, N und M, kurz X ∼ H (n, N , M).
Eine Darstellung der Wahrscheinlichkeitsfunktion der hypergeometrischen Verteilung ist für n = 100, N = 300 und verschiedene Werte von M in Abb. 13.4 zu finden. Im Spezialfall von M = N /2 = 150 ist die Wahrscheinlichkeitsfunktion achsensymmetrisch um ihren Maximalwert angeordnet, während sie andernfalls unsymmetrisch ist. Satz 13.45 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R mit X ∼ H (n, N , M) eine hypergeometrisch verteilte Zufallsvariable mit den Parametern n, N und M. Dann gilt E[X ] = n · sowie
M N
M N −n M 1− V[X ] = n . N N N −1
Beweis Für den Erwartungswert E[X ] im Fall X ∼ H (n, N , M) gilt E[X ] =
min{n,M}
M N −M · m m N n−m ,
m=0
n
Abb. 13.4 Hypergeometrische Verteilungen für n = 100, N = 300 und M = 25, 100, 250
Übungsaufgaben
263
wobei offenbar der erste Summand in dieser Summe weggelassen werden darf. Wie man leicht nachrechnet, gilt für 1 ≤ k ≤ n die Identität n n n−1 . = k k−1 k Mir ihr erhalten wir M N −M min{n,M}
· m m N n−m = m
N −M M M−1 m m−1 · n−m E[X ] =
N N −1 n n−1 n m=1 m=1
min{n,M} M−1 N −M min{n,M} M−1 (N −1)−(M−1) M
M
m−1 (n−1)−(m−1) m−1 · n−m =n· =n· N −1 N −1 N N n−1 n−1 m=1 m=1 M−1 (N −1)−(M−1) min{n−1,M−1}
M M j:=m−1 j (n−1)− j =n· . = n· N −1 N N n−1 j=0 min{n,M}
Die letzte Gleichheit folgt aus der Tatsache, dass M−1 (N −1)−(M−1) min{n−1,M−1}
j (n−1)− j N −1 n−1 j=0 gerade der Aufsummation der Wahrscheinlichkeitsfunktion einer Zufallsvariable Y ∼ H (n − 1, N − 1, M − 1) entspricht. Schließlich berechnen wir die Varianz V[X ] im Fall X ∼ H (n, N , M). Ähnlich wie beim Erwartungswert ergibt sich E[X ] = 2
min{n,M}
m=1
M N −M · n−m 2 m m N n
= E[X ] + n(n − 1) ·
=n·
= E[X ] +
M(M − 1) N (N − 1)
min{n,M}
M N −M · m(m − 1) m N n−m
n m=1 M−2 (N −2)−(M−2) min{n,M}
m−2 (n−2)−(m−2) N −2 n−2 m=2
M M(M − 1) + n(n − 1) · . N N (N − 1)
=1
Hieraus folgt durch eine einfache Rechnung das Ergebnis gemäß M M2 M(M − 1) + n(n − 1) · − n2 · 2 N N (N − 1) N M N −n n M(M − N )(n − N ) M 1− = =n . N 2 (N − 1) N N N −1
V[X ] = E[X 2 ] − (E[X ])2 = n ·
264
13
Diskrete Verteilungen
Übungsaufgaben Aufgabe 13.1 (Zufallsvariable) Michele habe auf dem Weg zur Universität vier voneinander unabhängige, zufällig geregelte Ampelkreuzungen zu überqueren. Es bezeichne X die Anzahl überquerten Kreuzungen bis zum erstmaligen Halt von Michele aufgrund einer roten Ampel oder des Erreichens der Universität. Die Wahrscheinlichkeiten, dass die Ampeln grün haben, betrage jeweils 0.5. a) Geben Sie einen Wahrscheinlichkeitsraum (, A, P) an, der die Zustände der vier Ampeln modelliert. b) Definieren Sie die Zufallsvariable X , die oben sprachlich gegeben ist, formal als Abbildung X : → R. Zeigen Sie hierfür auch, dass ihre Abbildung X die Eigenschaft {ω ∈ : X (ω) ≤ x} ∈ A für alle x ∈ R besitzt. c) Bestimmen Sie den Wertebereich und die Wahrscheinlichkeitsfunktion von X . d) Berechnen Sie mit Hilfe der Zufallsvariable X die Wahrscheinlichkeit, dass Michele die Universität erreicht, ohne vor den Ampeln anhalten zu müssen. e) Kann man mit Hilfe der Zufallsvariable X die Wahrscheinlichkeit angeben, dass Michele vor dem Erreichen der Universität vor jeder Ampel halten muss? f) Bestimmen Sie den Erwartungswert von X . Aufgabe 13.2 (Erwartungswert) Betrachten Sie das folgende Glücksspiel: Zu Beginn zahlen Sie dem Veranstalter einen einmaligen Einsatz von x Talern. Der Veranstalter wirft nun so lange eine faire Münze, bis zum ersten Mal ‘Kopf’ erscheint. Sei k die Anzahl der dazu notwendigen Versuche. Der Veranstalter zahlt Ihnen nun 2k−1 Taler aus. a) Was ist der faire Wert des Einsatzes x? Dies bedeutet, bestimmen Sie x so, dass der erwartete Gewinn des Spiels für beide Parteien 0 ist. Empfinden Sie das Ergebnis als intuitiv oder überraschend? b) Nehmen sie an, der Veranstalter heißt Dagobert Duck. Er haftet mit seinem Gesamtvermögen von v = 96 000 000 000 Talern, das heißt, er muss Ihnen statt 2k−1 jeweils nur min{2k−1 , v} zahlen. Was ist nun der faire Einsatz, wenn man die Obergrenze der Zahlungsfähigkeit von Herrn Duck berücksichtigt?
Übungsaufgaben
265
Aufgabe 13.3 (Verteilungsfunktion) Gegeben Sei eine Zufallsvariable X mit der Verteilungsfunktion ⎧ 0, für x < 3, ⎪ ⎪ ⎪ ⎨k(x), für 3 ≤ x < 5, F(x) = ⎪ 0.8, für 5 ≤ x < 7, ⎪ ⎪ ⎩ 1, für 7 ≤ x, und den Eigenschaften P X ∈ {2, 3.2, 4, 7} = 1, P({X = 4}) = 0.3. Bestimmen Sie a) die Funktion k(x) für x ∈ [3, 5), b) die Wahrscheinlichkeitsfunktion P({X = k}), c) den Erwartungswert E[X ] und d) die Varianz V[X ]. Aufgabe 13.4 (Tschebyscheffsche Ungleichung) Ist X eine Zufallsvariable, für welche E[X 2 ] existiert, so folgt für k > 0 nach der Tschebyscheffschen Ungleichung (13.9) die Abschätzung 0 ≤ P({|X − E[X ]| ≥ k}) ≤ Zeigen Sie, dass diese Schranken für k > Zufallsvariablen X 1 und X 2 mit
√
V[X ] . k2
V[X ] scharf sind. Es existieren also
E[X 1 ] = E[X 2 ] = E[X ] und V[X 1 ] = V[X 2 ] = V[X ], so dass 0 = P({|X 1 − E[X 1 ]| ≥ k}) und P({|X 2 − E[X 2 ]| ≥ k}) =
V[X ] . k2
266
13
Diskrete Verteilungen
Aufgabe 13.5 (Binomialverteilung) a) Bei einer bestimmten Malariaschutzimpfung treten im Mittel in 0.5 % aller Fälle Negativreaktionen auf. Bestimmen Sie die Wahrscheinlichkeit dafür, dass bei 500 Impfungen Negativreaktionen beobachtet werden. Wie groß ist die durchschnittliche Anzahl der Negativreaktionen? b) Die Wahrscheinlichkeit dafür, dass ein Ereignis A bei vier unabhängigen Versuchen mindestens einmal eintritt, sei 0.5904. Dabei sei das Eintreten von A bei jedem Versuch gleichwahrscheinlich. Wie groß ist die Wahrscheinlichkeit dafür, dass dieses Ereignis A mindestens zweimal eintritt?
14
Stetige Verteilungen
14.1
Dichtefunktionen
Nachdem wir im vorigen Kapitel diskrete Zufallsvariablen kennengelernt haben, wollen wir uns nun stetigen Zufallsvariablen zuwenden. Definition 14.1 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine Zufallsvariable. Die Zufallsvariable Xheißt stetig, wenn eine integrier∞ bare Funktion f : R → [0, ∞) existiert mit −∞ f (t) dt = 1, so dass P({a ≤ X ≤ b}) =
b
f (x) dx.
a
Die Funktion f (x) heißt Dichtefunktion der Zufallsvariablen X .
Bemerkung 14.2 Als Dichtefunktionen f (x) treten oft stetige oder stückweise stetige Funktionen auf, die gegebenenfalls auch schwache Polstellen besitzen dürfen. Wegen a f (x) dx = 0 P({a ≤ X ≤ a}) = P({X = a}) = a
ist die Wahrscheinlichkeit, dass X genau einen festen Wert annimmt, immer gleich Null.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_14
267
268
14
Stetige Verteilungen
Die zu einer stetigen Zufallsvariablen mit Dichtefunktion f (x) gehörige Verteilungsfunktion ist nach Definition 13.10 gegeben durch x f (t) dt. F(x) = −∞
Mit ihrer Hilfe kann man die Wahrscheinlichkeit dafür, dass a ≤ X ≤ b ist, leicht berechnen gemäß P({a ≤ X ≤ b}) =
b
f (x) dx = F(b) − F(a).
a
Im Gegensatz zur Verteilungsfunktion einer diskreten Zufallsvariablen, die immer eine Treppenfunktionen ist, ist die Verteilungsfunktion einer stetigen Zufallsvariablen in jedem Punkt sowohl linksseitig als auch rechtsseitig stetig. Deshalb ist die Verteilungsfunktion global stetig. Ist insbesondere die Dichtefunktion f (x) im Punkt y ∈ R stetig, so ist F(x) dort sogar differenzierbar und es gilt F (y) = f (y). Im Übrigen besitzt die Verteilungsfunktion selbstverständlich alle Eigenschaften aus Satz 13.12.
14.2
Erwartungswert und Varianz
Die Konstruktion des Erwartungswerts einer stetigen Zufallsvariable erfolgt durch Approximation mit diskreten Zufallsvariablen. Für letztere haben wir den Erwartungswert bereits in Abschn. 13.3 definiert. Seien im Folgenden (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine stetige Zufallsvariable. Für beliebiges n ∈ N∗ definieren wir die diskrete Zufallsvariable X n : → R, welche die Werte k/n für k ∈ Z annimmt gemäß X n :=
k · 1 k k+1 . n n ≤X < n
(14.1)
k∈Z
Hierin ist für A ∈ A die charakteristische Funktion 1 A : → {0, 1} definiert durch 1, falls ω ∈ A, 1 A (ω) := 0, sonst. Die zur Zufallsvariable X n gehörige Wahrscheinlichkeitsfunktion ist nun offenbar gegeben durch
k k+1 , k ∈ Z. ≤X< P({X n = k/n}) = P n n
14.2 Erwartungswert und Varianz
269
Darüber hinaus gilt X n (ω) ≤ X (ω) < X n (ω) +
1 f¨ur alle ω ∈ . n
Insbesondere erhalten wir für jedes ω ∈ , dass |X n (ω) − X m (ω)| ≤ |X n (ω) − X (ω)| + |X (ω) − X m (ω)| ≤
1 1 + . n m
(14.2)
Die Folge X n (ω) ist somit für jedes ω ∈ eine Cauchy-Folge in R mit Grenzwert X (ω). Dies bedeutet, dass die Folge X n punktweise gegen X konvergiert. Das folgende Lemma gibt ein Kriterium für die Existenz von E[X n ] sowie den Grenzwert der Folge der Erwartungswerte. Lemma 14.3 Ist X n die in (14.1) definierte Folge, so existiert E[X n ] für alle n ∈ N∗ genau dann, wenn E[X 1 ] existiert. In diesem Fall existiert auch der Grenzwert limn→∞ E[X n ]. Beweis Existiert der Erwartungswert für alle n ∈ N∗ , so existiert trivialerweise auch E[X 1 ]. Umgekehrt gilt |E[X n ]| ≤ |E[X n ] − E[X 1 ]| + |E[X 1 ]| ≤ E[|X n − X 1 |] + |E[X 1 ]| (14.2) 1 ≤ + 1 + |E[X 1 ]|, n wobei n ∈ N∗ beliebig wählbar ist. Es verbleibt demnach zu zeigen, dass der Grenzwert limn→∞ E[X n ] existiert. Wir erhalten für beliebige m, n ∈ N∗ aus (14.2), dass |E[X n ] − E[X m ]| ≤ E[|X n − X m |] ≤
1 1 + . n m
Die Folge der Erwartungswerte bildet also eine Cauchy-Folge in R und ist somit konvergent.
Definition 14.4 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine stetige Zufallsvariable. Existiert E[X 1 ] für die diskrete Zufallsvariable X1 = k∈Z k · 1{k≤X 0 eine streng monoton wachsende Folge {xn }n∈Z mit xn → −∞ für n → −∞ und xn → ∞ für n → ∞, so dass |g(xn ) − g(x)| < ε für alle xn ≤ x < xn+1 . Setzen wir nun gε (x) := g(xn ) für alle xn ≤ x < xn+1 und n ∈ Z, so gilt |g(x) − gε (x)| < ε für alle x ∈ R.
(14.3)
Die Funktion gε ist eine Treppenfunktion, welche g punktweise mit Genauigkeit ε annähert, vergleiche Abb. 14.1.
14.2 Erwartungswert und Varianz
271
Abb. 14.1 Approximation von g durch die Treppenfunktion gε
Aus (14.3) folgern wir ∞
E[gε (X )] =
g(xn )P({xn ≤ X < xn+1 }) =
n=−∞
∞
g(xn )
n=−∞
xn+1
f (x) dx.
xn
Hierin konvergiert die letzte Summe genau dann absolut, wenn I endlich ist, denn es ist
∞
|g(xn )|
xn+1
f (x) dx ≤
−∞
xn
n=−∞
∞
|g(x)| f (x) dx +
∞
xn+1
n=−∞ xn
|g(xn ) − g(x)| f (x) dx
b verschwindet die Dichtefunktion und die Verteilungsfunktion ist konstant mit F(x) = 0 beziehungsweise F(x) = 1. Ist hingegen x ∈ [a, b], dann gilt F(x) =
x −∞
f (t) dt =
x
a
1 x −a t x dt = . = b−a b−a a b−a
Folglich ergibt sich für die Verteilungsfunktion
F(x) =
⎧ ⎪ ⎨0,
x−a , ⎪ b−a
⎩ 1,
x ≤ a, a < x ≤ b, x > b.
Eine Visualisierung dieser Verteilungsfunktion und der zugehörigen Dichtefunktion befindet sich in Abb. 14.2.
Abb.14.2 Dichtefunktion der Gleichverteilung (links) und zugehörige Verteilungsfunktion (rechts)
274
14
Stetige Verteilungen
Satz 14.10 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine auf [a, b] gleichverteilte Zufallsvariable. Dann gilt E[X ] =
a+b (b − a)2 und V[X ] = . 2 12
Beweis In Anbetracht von Definition 14.9 folgt für den Erwartungswert E[X ] =
∞
−∞
x f (x) dx = a
b
x b2 − a 2 x 2 b a+b dx = = . = b−a 2(b − a) a 2(b − a) 2
Weiter ergibt sich wegen E[X ] = 2
∞
−∞
x2 dx = b−a
a
b
x2 x 3 b dx = b−a 3(b − a) a
b3 − a 3 a 2 + ab + b2 = = 3(b − a) 3 für die Varianz a 2 + ab + b2 (a + b)2 − 3 4 4a 2 + 4ab + 4b2 − 3(a 2 + 2ab + b2 ) a 2 − 2ab + b2 (a − b)2 = = = . 12 12 12
V[X ] = E[X 2 ] − E2 [X ] =
14.4
Exponentialverteilung
Die Exponentialverteilung ist eine einparametrige Wahrscheinlichkeitsverteilung über der Menge der nichtnegativen reellen Zahlen. Sie wird durch eine Exponentialfunktion beschrieben und vorrangig zur Modellierung zufälliger Wartezeiten benutzt. Definition 14.11 Sei (, A, P) ein Wahrscheinlichkeitsraum. Eine stetige Zufallsvariable X : → R mit der Dichtefunktion 0, x < 0, f (x) = λe−λx , x ≥ 0, heißt exponentialverteilt mit dem Parameter λ > 0. Wir schreiben in diesem Fall auch kurz X ∼ Exp(λ).
14.4 Exponentialverteilung
275
Abb. 14.3 Dichtefunktion der Exponentialverteilung (links) und zugehörige Verteilungsfunktion (rechts)
Für x < 0 verschwindet die Dichtefunktion der Exponentialverteilung, woraus F(x) = 0 für derartige x folgt. Hingegen ergibt sich für x ≥ 0, dass
x
F(x) = 0
x λ · e−λt dt = −e−λt = 1 − e−λx .
Damit erhalten wir
0
F(x) =
0, x < 0, −λx 1−e , x ≥ 0.
Sowohl diese Verteilungsfunktion als auch die zugrundeliegende Dichtefunktion sind in Abb. 14.3 skizziert. Es gibt einen direkten Zusammenhang zwischen der Exponential- und der PoissonVerteilung. Wie in Abschn. 13.7 betrachten wir zur Herleitung dieses Zusammenhangs wieder einen Netzwerkknoten, bei dem die Verbindungsanfragen in zufälligem Zeitabstand eingehen. Wir führen die zwei Zufallsvariablen ˆ ‘Anzahl der eingehenden Verbindungen im Zeitintervall der Länge t’, Xt = T = ˆ ‘Zeitabstand zwischen zwei eingehenden Verbindungen’ ein. Wie wir bereits wissen, ist die diskrete Zufallsvariable X t Poisson-verteilt X t ∼ πμt , wobei der Parameter μ der Intensität entspricht. Wie im nachfolgenden Satz gezeigt wird, ist die stetige Zufallsvariable T hingegen exponentialverteilt mit μ als Parameter, das heißt T ∼ Exp(μ).
276
14
Stetige Verteilungen
Satz 14.12 Die Zufallsvariable X t zähle, wie oft das Ereignis A innerhalb eines Zeitintervalls der Länge t eintritt. Die Zeit T , die nach dem Eintreten von A bis zum nächsten Eintreten verstreicht, ist exponentialverteilt T ∼ Exp(μ), falls X t Poisson-verteilt ist mit der Intensität μ, das heißt, falls gilt X t ∼ πμt .
Beweis Wir wollen zeigen, dass P({a ≤ T ≤ b}) =
b
μ · e−μx dx
a
gilt. Dazu nehmen wir an, dass {a ≤ T ≤ b} ist. Dann ist das Ereignis A zum Zeitpunkt a noch nicht, zum Zeitpunkt b jedoch mindestens einmal eingetreten. Demnach erhalten wir X a = 0 und X b ≥ 1, wobei X a ∼ πμa und X b ∼ πμb gilt. Die vorliegende Situation entspricht also folgender Skizze:
Aus der Zerlegung [a, b] ∪ [b, ∞) = [a, ∞) folgt P({a ≤ T ≤ b}) + P({b ≤ T }) = P({a ≤ T }), woraus sich nun durch Umstellen das Behauptete ergibt: P({a ≤ T ≤ b}) = P({a ≤ T }) − P({b ≤ T }) = P({X a = 0}) − P({X b = 0}) b −μa −μb =e −e = μe−μx dx. a
Beispiel 14.13 An einem Netzwerkknoten kommen im Mittel 20 Verbindungsanfragen pro Stunde an. Gesucht ist die Wahrscheinlichkeit dafür, dass 3 bis 6 Minuten zwischen zwei Verbindungsanfragen vergehen.
14.4 Exponentialverteilung
277
Legt man Minuten als Zeiteinheit fest, so folgt aus !
E[X 60 ] = μ · 60 = 20, dass die Intensität μ = 1/3 ist. Misst die Zufallsvariable T die Zeit zwischen zwei Verbindungsanfragen, so gilt nach Satz 14.12, dass T ∼ Exp(1/3). Demnach ist die gesuchte Wahrscheinlichkeit P({3 ≤ T ≤ 6}) = F(6) − F(3) = 1 − e−μ·6 − 1 − e−μ·3 = −e−2 + e−1 = 0.2325.
Satz 14.14 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine mit dem Parameter λ exponentialverteilte Zufallsvariable. Dann gilt E[X ] =
1 1 und V[X ] = 2 . λ λ
Beweis Gemäß Definition des Erwartungswerts ist ∞ E[X ] = x · λe−λx dx. 0
Substituieren wir t = λx, so folgt ∞ ∞ 1 ∞ 1 t · (−e−t ) − E[X ] = t · e−t dt = 1 · (−e−t ) dt 0 λ 0 λ 0 ∞ 1 1 1 = (0 + 1) = . − 0 + 0 − e−t = 0 λ λ λ In ähnlicher Weise ergibt sich ∞ ∞ 1 x 2 · λe−λx dx = 2 t 2 e−t dt E[X 2 ] = λ 0 0 ∞ ∞ 1 2 1 2 −t −t = 2 t · (−e ) − 2t · (−e ) dt = (−0 + 0 + 2) = 2 , 0 λ λ λ 0 woraus wir V[X ] = E[X 2 ] − (E[X ])2 = erhalten.
2 1 1 − 2 = 2 2 λ λ λ
278
14
Stetige Verteilungen
Bemerkung 14.15 Wie eingangs in diesem Abschnitt erwähnt, ist eine typische Anwendung der Exponentialverteilung die Modellierung von Wartezeiten. Die Exponentialverteilung wird auch oft zur Modellierung von Lebensdauerproblemen eingesetzt, da diese der Wartezeit bis zu einem Defekt entspricht. Allerdings werden durch die Exponentialverteilung keine Alterungseffekte beachtet, wie folgende Rechnung zeigt: Sei X ∼ Exp(λ) die Lebensdauer eines elektronischen Bauelements. Dann gilt P({x ≤ X ≤ x + y}) F(x + y) − F(x) = P({X ≥ x}) 1 − F(x) −λ(x+y) −λx ) − (1 − e ) (1 − e e−λx − e−λ(x+y) = = 1 − (1 − e−λx ) e−λx −λx −λx −λy −e e e = = 1 − e−λy = F(y) −λx e = P({X ≤ y}).
P({X ≤ x + y} | {X ≥ x}) =
Demzufolge ist die Wahrscheinlichkeit dafür, dass ein intaktes Bauelement in den nächsten y Zeiteinheiten kaputtgeht, unabhängig von dessen Alter X stets dieselbe. Man spricht daher von der Gedächtnislosigkeit der Exponentialverteilung.
14.5
Normalverteilung
Die Normalverteilung oder Gauß-Verteilung ist eine der meistgenutzten stetigen Verteilungen. Als normalverteilt können Zufallsvariablen angesehen werden, die durch Überlagerung einer großen Anzahl von Einflüssen entstehen, wobei jede Einflussgröße nur einen im Verhältnis zur Gesamtsumme unbedeutenden Beitrag liefert. Beispiele normalverteilter Zufallsvariablen sind • zufällige Beobachtungs- oder Messfehler, • zufällige Abweichungen vom Nennmaß bei der Fertigung von Werkstücken oder • Effekte beim Prozess der Brownschen Molekularbewegung. Definition 14.16 Sei (, A, P) ein Wahrscheinlichkeitsraum. Eine stetige Zufallsvariable X : → R mit der Dichtefunktion f (x) = √
1 2πσ
·e
− (x−μ) 2
2
2σ
ist normalverteilt mit den Parametern μ und σ 2 > 0, kurz X ∼ N (μ, σ 2 ). Im Fall X ∼ N (0, 1) bezeichnet man die Zufallsvariable X als standardisiert normalverteilt. Wir setzen x2 1 · e− 2 . ϕ(x) := √ 2π
14.5 Normalverteilung
279
Abb. 14.4 Dichtefunktion der Normalverteilung mit Parametern μ und σ (links) und zugehörige Verteilungsfunktion (rechts)
Die Dichtefunktion der Normalverteilung ist eine Glockenkurve, welche durch den Lageparameter μ und den Formparameter σ 2 > 0 charakterisiert wird, vergleiche Abb. 14.4. Der Parameter μ gibt die Lage der Symmetrieachse an, während σ 2 die Breite √ der Glocke bestimmt. Die Glocke hat ihr Maximum in μ mit dem Wert 1/( 2π σ ) und besitzt in μ ± σ je einen Wendepunkt. Ist σ 2 groß, so erhalten wir eine breitgezogene Glockenkurve, für kleines σ 2 ergibt sich hingegen eine stark lokalisierte Glockenkurve. Die Verteilungsfunktion der N (μ, σ 2 )-Normalverteilung F(x) =
x
−∞
f (t) dt =
x −∞
2 1 − (t−μ) · e 2σ 2 dt √ 2πσ
besitzt im Allgemeinen keine geschlossene Darstellung. Daher muss man in der Praxis auf geeignete numerische Verfahren zurückgreifen, um sie auszuwerten. Typischerweise verwendet man dafür die standardisierte Normalverteilung mit Verteilungsfunktion x ϕ(t) dt. (x) := −∞
Satz 14.17 Seien (, A, P) ein Wahrscheinlichkeitsraum und X : → R eine standardisiert normalverteilte Zufallsvariable. Dann gilt E[X ] = 0 und V[X ] = 1.
Beweis Wegen xϕ(x) = −ϕ (x) folgt
∞
−∞
|x|ϕ(x) dx = 2 lim
C→∞ 0
C
ϕ (x) dx = 2 lim
C→∞
ϕ(0) − ϕ(C) = 2ϕ(0) < ∞.
280
14
Stetige Verteilungen
Dies bedeutet, die Funktion xϕ(x) ist punktsymmetrisch und somit gilt ∞ xϕ(x) dx = 0. E[X ] = −∞
Weiter ergibt sich mit partieller Integration 1 V[X ] = E[X 2 ] = √ 2π
∞
x · xe−
−∞ u
v
x2 2
∞ x 2 ∞ x2 1 dx = √ + 1 · e− 2 dx = 1. −x e− 2 −v −∞ u 2π u −v −∞ √ = 2π
=0
Das letzte Integral rechnet man dabei wie folgt aus:
∞ −∞
e−
x2 2
2
=
dx
∞ ∞
−∞ −∞
x2
e− 2 e−
y2 2
∞ ∞
dx dy =
−∞ −∞
e−
x 2 +y 2 2
dx dy.
Verwenden wir nun Polarkoordinaten x = r cos ψ,
y = r sin ψ,
so ergibt sich schließlich die gesuchte Identität ∞ −∞
e−
x2 2
2 dx
=
2π ∞ 0
0
r · e−
r2 2
dr dψ =
2π 0
−e−
x2 2
2π ∞ 1 dψ = 2π. dψ = 0
0
Satz 14.18 Falls X ∼ N (μ, σ 2 ) ist, so folgt X − E[X ] Y = √ ∼ N (0, 1). V[X ] Insbesondere gilt E[X ] = μ und V[X ] = σ 2 .
Beweis Sei Y ∼ N (0, 1), dann folgt für X := σ Y + μ, dass
a−μ b−μ P({a ≤ X ≤ b}) = P({a ≤ σ Y + μ ≤ b}) = P ≤Y ≤ σ σ b−μ 2 σ y 1 = √ e− 2 dy. a−μ 2π σ
14.5 Normalverteilung
281
Mit der Substitution x := σ y + μ ergibt sich hieraus P({a ≤ X ≤ b}) =
b
a
2 1 − (x−μ) e 2σ 2 dx, √ 2π σ
dies bedeutet, X ∼ N (μ, σ 2 ). Schließlich erhalten wir E[X ] = E[σ Y + μ] = σ E[Y ] + μ = μ und V[X ] = V[σ Y + μ] = σ 2 V[Y ] = σ 2 . Bemerkung 14.19 Die affine Transformation X − E[X ] Y = √ V[X ] einer Zufallsvariablen X heißt Standardisierung von X . Dabei gilt stets E[Y ] = 0 und V[Y ] = 1. Im Zusammenhang mit der Normalverteilung macht man sich diese zunutze, um Wahrscheinlichkeiten des Typs P({a ≤ X ≤ b}) für X ∼ N (μ, σ 2 ) zu berechnen. Durch Standardisierung folgt nämlich
a−μ b−μ X −μ P({a ≤ X ≤ b}) = P ≤ ≤ σ σ σ
=
b−μ σ
=:Y ∼N (0,1)
−
a−μ . σ
Beispiel 14.20 Ein Werkstück besitzt die gewünschte Qualität, wenn die Abweichung eines bestimmten Maßes vom entsprechenden Nennmaß dem Betrag nach nicht größer als 3,6 mm ist. Der Herstellungsprozess sei so beschaffen, dass dieses Maß als normalverteilte Zufallsvariable angesehen werden kann, wobei der Erwartungswert mit dem Nennmaß übereinstimmt. Weiter sei σ = 3 mm bekannt. Wieviel Prozent der Werkstücke einer Serie werden durchschnittlich mit gewünschter Qualität produziert? Zur Beantwortung dieser Problemstellung, setzten wir X= ˆ ‘zufällige Abweichung vom Nennmaß’.
282
14
Stetige Verteilungen
Es gilt X ∼ N (0,9). Wegen
|X | 3.6 P({|X | ≤ 3.6}) = P ≤ 3 3
∼N (0,1)
= (1.2) − (−1.2) = (1.2) − 1 − (1.2) = 2 (1.2) − 1 = 0.88493 · 2 − 1 = 0.76983, genügen durchschnittlich etwa 77 % aller Werkstücke den Qualitätsansprüchen.
Übungsaufgaben Aufgabe 14.1 (Dichtefunktion) Sei α > 1 und f (x) =
κ x −α , für x ≥ 1, 0, für x < 1.
Bestimmen Sie κ so, dass f die Dichtefunktion einer stetigen Zufallsvariable X ist. Bestimmen Sie außerdem den Erwartungswert sowie die Varianz von X . Aufgabe 14.2 (Summe zweier Zufallsvariablen) Seien (, A, P) ein Wahrscheinlichkeitsraum und X und Y zwei Zufallsvariablen, deren Erwartungswerte existieren. Zeigen Sie, dass dann auch der Erwartungswert der Zufallsvariable Z := X +Y existiert und E[Z ] = E[X ] + E[Y ] gilt. Aufgabe 14.3 (Poisson- und Exponentialverteilung) Ein radioaktiver Stoff emittiert während einer Stunde im Mittel drei Teilchen. a) Wie groß ist die Wahrscheinlichkeit, dass während einer Minute mindestens zwei Teilchen emittiert werden? b) Mit welcher Wahrscheinlichkeit wird nach der Emission eines Teilchens das nächste Teilchen frühestens nach vier und spätestens nach sechs Minuten emittiert? c) Wie lange muss man nach der Emission eines Teilchens warten, damit die Wahrscheinlichkeit, dass wieder ein Teilchen emittiert wird, größer als 95 % ist? Aufgabe 14.4 (Normalverteilung) In einer Kleinbrauerei sei für die automatische Abfüllung eines Bieres in Flaschen ein Gegendruckabfüllautomat auf eine Abfüllmenge von 330 ml eingestellt. Für Abfüllmengen in diesem Bereich wird vom Hersteller des Automaten angegeben, dass die tatsächliche Abfüllmenge eine normalverteilte Zufallsvariable ist mit der eingestellten Füllmenge als Erwartungswert, das heißt μ = 330 ml, und der Varianz σ 2 = 16.66 (ml)2 .
Übungsaufgaben
283
a) Wie viele von 4 000 Flaschen einer Tagesproduktion weisen im Mittel eine Abfüllmenge kleiner als 322 ml auf? b) Auf welche neue Abfüllmenge müsste der Automat eingestellt werden, damit durchschnittlich nur 1 % der Flaschen eine Abfüllmenge kleiner als 322 ml aufweisen?
Stochastische Simulationsverfahren
15.1
15
Pseudozufallszahlen
Voraussetzung für die numerische Simulation zufälliger Ereignisse sind üblicherweise gleichverteilte Pseudozufallszahlen, welche von Pseudozufallszahlengeneratoren erzeugt werden. Unter Pseudozufallszahlen versteht man deterministische Zahlenfolgen, die vom Computer mittels geeigneter Algorithmen berechnet werden, so dass sie sich möglichst zufällig verhalten. Eine oftmals verwendete Klasse solcher Algorithmen bilden die linearen Kongruenzgeneratoren. Bei einem linearen Kongruenzgenerator wählt man natürliche Zahlen m ≥ 1 (den Modul), a ≥ 1 (den Multiplikator) und b ≥ 0 (das Inkrement). Ausgehend vom Startwert z 0 mit z 0 ≤ m − 1 berechnet man dann rekursiv die Kongruenzfolge z j+1 := (az j + b) mod m,
j = 0, 1, . . . .
(15.1)
Es wird also nur der bei der Division durch m entstehende Rest der Zahl az j + b verwendet. Demnach gilt 0 ≤ z j < m. Durch die Normierungsvorschrift x j :=
zj , m
j = 0, 1, . . . ,
liefert der lineare Kongruenzgenerator (15.1) schließlich eine Folge x0 , x1 , . . . im Intervall [0, 1]. Für einige bekannte lineare Kongruenzgeneratoren sind die Werte der Parameter a, b und m in Tab. 15.1 aufgeführt.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_15
285
286
15
Stochastische Simulationsverfahren
Tab. 15.1 Parameterwerte einiger linearer Kongruenzgeneratoren Name
Modul m
Multiplikator a
Inkrement b
Texas Instruments (TI 59) Turbo Pascal ANSI-C Minimal Standard RANDU
199017 232 231 231 − 1 231
24298 33797 1103515245 16807 65539
99991 1 12345 0 0
Beispiel 15.1 Wir betrachten als konkretes Beispiel die Parameter m = 100, a = 18, b = 11 und z 0 = 50. Dann gilt z1 z2 z3 z4 z5
= (18 · 50 + 11) mod 100 = (18 · 11 + 11) mod 100 = (18 · 9 + 11) mod 100 = (18 · 73 + 11) mod 100 = (18 · 25 + 11) mod 100
= 911 mod 100 = 209 mod 100 = 173 mod 100 = 1325 mod 100 = 461 mod 100
= 11, = 9, = 73, = 25, = 61.
Es werden also die Pseudozufallszahlen x0 = 0.5, x1 = 0.11, x2 = 0.09, x3 = 0.73, x4 = 0.25, x5 = 0.61 erzeugt.
Die von einem linearen Kongruenzgenerator erzeugte Folge {z j } erfüllt offensichtlich immer z j ∈ {0, 1, . . . , m − 1}. Folglich können höchstens m verschiedene Pseudozufallszahlen erzeugt werden. Daher wählt man m in der Praxis sehr groß, etwa m = 2k , wobei k die Wortlänge in Bits ist, also beispielsweise k = 64 auf aktuellen Computern. Wie man leicht nachprüft, gilt z 6 = 9 = z 2 für die Zahlenfolge aus Beispiel 15.1. Damit treten nur sechs verschiedene Zahlen auf und der Generator liefert bereits nach zwei Schritten die Periode 9, 73, 25, 61 der Länge vier. Die maximal mögliche Periodenlänge ist allerdings m. Für b ≥ 1 erhält man diese genau dann, wenn die folgenden drei Bedingungen erfüllt sind: • b und m sind teilerfremd. • Jede Primzahl, die m teilt, teilt auch a − 1. • Ist m durch 4 teilbar, so muss auch a − 1 durch 4 teilbar sein. Im Allgemeinen sagt die Periodenlänge allerdings wenig über die Güte der Gleichverteilungseigenschaft des Pseudozufallsgenerators aus. So besitzt der lineare Kongruenzgenerator z j+1 = (z j + 1) mod m die maximale Periodenlänge m, aber die generierte Zahlenfolge besitzt offenbar eine sehr schlechte Gleichverteilungseigenschaft. Um derartige Fälle zu vermeiden, sollte ein Multiplikator a von moderater
15.1 Pseudozufallszahlen
287
Größe gewählt werden. Es hat sich in der Praxis bewährt, ihn so zu wählen, dass er der Ungleichung √ √ m 0. Wir betrachten das Monte-Carlo-Verfahren zur Approximation des Erwartungswerts λ von X . Die Samples von X lassen sich konstruieren durch Xi =
1 log(Ui ), λ
wobei Ui unabhängige und gleichverteilte Zufallsvariablen auf [0, 1] sind. Der Monte-Carlo-Schätzer für den Erwartungswert lautet dann E[X ] ≈
n 1 Xi . n i=1
Die Varianz dieses Monte-Carlo-Schätzers geht in die Fehlerabschätzung des Erwartunsgwerts ein. Zeigen Sie, dass sich die Varianz des Schätzers verringern lässt, indem man die Samples X i durch die Samples Yi ersetzt, wobei Yi gegeben ist durch Yi =
1 log(Ui ) + log(1 − Ui ) . 2λ
Aufgabe 15.5 (Importance Sampling) Eine Methode zur Varianzreduktion bei Monte-Carlo-Verfahren ist das Importance Sampling. Grob gesagt wird bei dieser Methode die Dichtefunktion, bezüglich derer das Monte-Carlo-Verfahren durchgeführt wird, derart geändert, dass die modifizierte Dichtefunktion groß ist, wo der Integrand große Werte besitzt, und klein ist, wo der Integrand kleine Werte besitzt. Dieses Vorgehen lässt sich durch die Integraltransformation
∞
−∞
∞
ρ(x) f (x)ρ(x) dx = h(x) μ(x) dx = μ(x) −∞
∞
−∞
f˜(x)μ(x) dx
beschreiben. Als Beispiel betrachten wir die Funktion f (x) = 10e−5|x−2| und eine standardnormalverteilte Zufallsvariable X . Zu bestimmen sei der Erwartungswert E[ f (X )] =
∞ −∞
x2
e− 2 f (x) √ dx. 2π
Wir verwenden hierfür einen Monte-Carlo-Schätzer, der n zufällige, standardnormalverteilte Realisierungen von X mittelt. Wie verändert sich die Varianz des Schätzers, falls ein Importance Sampling bezüglich der Dichtefunktion (x−2)2 1 μ(x) = √ e− 2 2π
durchgeführt wird?
298
15
Stochastische Simulationsverfahren
Aufgabe 15.6 (Kontrollvariable) Eine Möglichkeit der Varianzreduktion beim Monte-Carlo-Verfahren zur Bestimmung des Integrals
1
f (x) dx
0
ist die Verwendung einer Kontrollvariablen. Mit Hilfe einer Funktion g(x), deren Integralwert bekannt ist, lässt sich das gesuchte Integral umschreiben zu 0
1
1
f (x) dx = 0
f (x) − g(x) dx +
1
g(x) dx 0
Somit muss man lediglich das Monte-Carlo-Verfahren für das erste Integral auf der rechten Seite anwenden. Zeigen Sie, dass dabei nun die Varianz von f − g in die Fehlerabschätzung des Monte-Carlo-Verfahrens eingeht. Bestimmen Sie die Varianzreduktion anhand des konkreten Beispiels f (x) = 4x(1−x) und der Kontrollvariablen g(x) = sin(π x).
16
Markov-Ketten
16.1
Grundlagen
Beispiel 16.1 (zufällige Irrfahrt) Zur Veranschaulichung einer zufälligen Irrfahrt betrachten wir ein sehr einfaches Computernetzwerk, welches nur aus vier Knoten und vier Verbindungen zwischen diesen besteht:
Zum Zeitpunkt t = 0 gehe ein Datenpaket am Knoten x1 ein. Zum Zeitpunkt t = 1 wird das Paket zufällig und mit gleicher Wahrscheinlichkeit entweder zu x2 oder x4 versendet. Zum Zeitpunkt t = 2 wird das Paket wieder zufällig weitergeleitet. Dieses Vorgehen wird für die Zeitschritte t = 3, 4, . . . wiederholt. Für jedes t ∈ N sei ˆ ‘Position des Datenpakets zum Zeitpunkt t’. Xt = Dann gilt P({X 0 = x1 }) = 1 und P({X 1 = x2 }) = P({X 1 = x4 }) =
1 . 2
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_16
299
300
16
Markov-Ketten
Um die Wahrscheinlichkeitsverteilung für X t mit t ≥ 2 zu berechnen, betrachten wir die zugehörigen bedingten Wahrscheinlichkeiten. Angenommen, das Datenpaket befindet sich zum Zeitpunkt t beim Knoten x2 , so folgt P({X t+1 = x1 }|{X t = x2 }) = P({X t+1 = x3 }|{X t = x2 }) =
1 . 2
Offensichtlich ändern sich diese Wahrscheinlichkeiten nicht, wenn wir die gesamte Vergangenheit in Betracht ziehen: Es gilt P({X t+1 = x1 }|{X 0 = x0 , X 1 = x1 , . . . , X t−1 = xt−1 , X t = x2 }) =
1 2
P({X t+1 = x3 }|{X 0 = x0 , X 1 = x1 , . . . , X t−1 = xt−1 , X t = x2 }) =
1 2
und
für jede Wahl möglicher x0 , x1 , . . . , xt−1 . Insbesondere ist die Wahrscheinlichkeit P({X t+1 = xi }|{X t = x j }) unabhängig vom Zeitpunkt t.
Definition 16.2 Seien (, A, P) ein Wahrscheinlichkeitsraum, X t : → R, t ∈ N∗ , eine Familie diskreter Zufallsvariablen und Z := ∞ t=0 X t (). Die Familie {X t } bildet eine Markov-Kette, falls die Markov-Eigenschaft gilt: Für alle t ∈ N und für x0 , x1 . . . , xt ∈ Z mit P({X 0 = x0 , X 1 = x1 , . . . , X t = xt }) > 0 gilt P({X t+1 = xt+1 }|{X 0 = x0 , X 1 = x1 , . . . , X t = xt }) = P({X t+1 = xt+1 }|{X t = xt }).
Die Menge Z wird Zustandsraum genannt. Ist der Zustandsraum endlich und sind alle Übergangswahrscheinlichkeiten P({X t+1 = x j }|{X t = xi }) unabhängig von t ∈ N, so können wir diese in einer Matrix anordnen.
16.1 Grundlagen
301
Definition 16.3 Eine Markov-Kette {X t } mit endlichem Zustandsraum Z = n {x1 , x2 , . . . , xn } heißt homogen mit Übergangsmatrix P = [ pi, j ]i, j=1 ∈ n×n R , falls für alle t ∈ N und i, j ∈ {1, 2, . . . , n} gilt P({X t+1 = x j }|{X t = xi }) = pi, j . Die Einträge von P heißen Übergangswahrscheinlichkeiten.
Bemerkung 16.4 Die Übergangsmatrix ist eine stochastische Matrix, das heißt, es gilt pi, j ≥ 0 für alle i, j ∈ {1, 2, . . . , n} und pi,: 1 = 1 für alle i = {1, 2, . . . , n}. Beispiel 16.5 Für die zufällige Irrfahrt aus Beispiel 16.1 ergeben sich konkret der Zustandsraum Z = {x1 , x2 , x3 , x4 } und die Übergangsmatrix ⎡
0
1 2
0
⎢1 0 1 2 2 P=⎢ ⎣0 1 0 2 1 1 2 0 2
1⎤ 2
0⎥ ⎥ 1⎦ .
(16.1)
2
0
Eine homogene Markov-Kette lässt sich durch einen gewichteten Digraphen übersichtlich darstellen, der Übergangsgraph genannt wird. Dieser ist der aus Definition 6.29 bekannte, zur Matrix P gehörige Graph. Die Knotenmenge umfasst die Menge der Zustände Z = {x1 , x2 , . . . , xn }, während die Kante (i, j) genau dann vorhanden ist, falls die Übergangswahrscheinlichkeit pi, j > 0 ist, und ihr Gewicht ist dann gerade pi, j . Beispiel 16.6 Im Fall der zufälligen Irrfahrt aus Beispiel 16.1 mit der Übergangsmatrix (16.1) erhalten wir folgenden Übergangsgraphen:
302
16
Markov-Ketten
Die Wahrscheinlichkeitsverteilung von X t fassen wir als Spaltenvektor μ(t) ∈ Rn auf, also ⎡ (t) ⎤ ⎡ ⎤ μ1 P({X t = x1 }) ⎢ (t) ⎥ ⎢ ⎢μ2 ⎥ ⎢P({X t = x2 })⎥ ⎥ ⎥ μ(t) = ⎢ ⎥. .. ⎢ .. ⎥ = ⎢ ⎣ ⎦ . ⎣ . ⎦ P({X t = xn })
μ(t) n
Die Wahrscheinlichkeitsverteilung μ(0) von X 0 heißt auch Startverteilung. Satz 16.7 Für die homogene Markov-Kette {X t } mit endlichem Zustandsraum Z = {x1 , x2 , . . . , xn }, Startverteilung μ(0) und Übergangsmatrix P gilt für jedes t ∈ N μ(t) = (Pt ) μ(0) .
Beweis Der Beweis des Satzes erfolgt durch vollständige Induktion. Im Fall t = 1 gilt für alle i ∈ {1, 2, . . . , n}, dass (1)
μi
= P({X 1 = xi }) =
k
P({X 0 = x j , X 1 = xi })
j=1
=
k j=1
P({X 0 = x j }) · P({X 1 = xi }|{X 0 = x j }) =
(0)
=μj
= pj,i
k j=1
(0) p j,i μ(0) . j = P μ i
16.1 Grundlagen
303
Sei die Behauptung also für ein t ≥ 1 erfüllt. Dann gilt (t+1)
μi
= P({X t+1 = xi }) =
n
P({X t = x j , X t+1 = xi })
j=1
=
n j=1
=
n
P({X t = x j }) · P({X t+1 = xi }|{X t = x j })
= pj,i
(t)
=μj
(t) μ(t) = (P t+1 ) μ(0) i , j p j,i = P μ i
i=1
wobei die letzte Identität aus der Induktionsannahme folgt.
Bemerkung 16.8 Offenbar ist Satz 16.7 das Markov-Ketten-Pendant zu Satz 6.26: Der Eintrag pi,(t)j der Matrix P t gibt die Wahrscheinlichkeit dafür an, in genau t Schritten vom Zustand xi zum Zustand x j zu gelangen. (1)
(2)
Definition 16.9 Es sei P (1) = [ pi, j ], P (2) = [ pi, j ], . . . eine Folge stochastischer (n ×n)-Matrizen. Eine Markov-Kette {X t } mit endlichem Zustandsraum Z = {x1 , x2 , . . . , xn } heißt inhomogen mit Übergangsmatrizen P (1) , P (2) , . . ., falls für alle t ∈ N und i, j ∈ {1, 2, . . . , n} gilt (t+1) P({X t+1 = x j }|{X t = xi }) = pi, j .
Beispiel 16.10 Wir verfeinern das Netzwerkmodell aus Beispiel 16.1, indem wir zusätzlich zwischen ‘Last’ und ‘Ruhe’ unterscheiden. Der Lastfall tritt während der Arbeitstage ein (das heißt von Montag bis Freitag), da hier viele Datenpakete versendet werden müssen. Der Ruhefall tritt hingegen an den Wochenenden ein (das heißt am Samstag und Sonntag). Dann sind wesentlich weniger Datenpakte zu bearbeiten, so dass die Kommunikation zu jeweils einem Nachbarknoten eingestellt werden kann. Wir erhalten so die inhomogene Markov-Kette mit P (7k) = P (7k+1) = P (7k+2) = P (7k+3) = P (7k+4) = P Last := P mit der Übergangsmatrix P aus (16.1) und ⎡
P (7k+5) = P (7k+6) = P Ruhe
wobei k ∈ N gilt.
0 ⎢0 := ⎢ ⎣0 1
1 0 0 0
0 1 0 0
⎤ 0 0⎥ ⎥, 1⎦ 0
304
16
Markov-Ketten
Satz 16.11 Für die inhomogene Markov-Kette {X t } mit endlichem Zustandsraum Z = {x1 , x2 , . . . , xn }, Startverteilung μ(0) und Übergangsmatrizen P(1) , P(2) , . . . gilt für jedes t ∈ N μ(t) = P(1) P(2) · · · P(t) μ(0) .
Beweis Unter Beachtung der Identität P(1) P(2) · · · P(t) = (P(t) ) · · · (P(2) ) (P(1) ) ergibt sich die Aussage analog zum Beweis von Satz 16.7.
16.2
Simulation von Markov-Ketten
Um eine homogene Markov-Kette {X t } mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P numerisch zu simulieren, benötigen wir eine Startfunktion und eine Updatefunktion. Zu gegebener Startverteilung (0) (0) μ(0) = [μ1 , μ2 , . . . , μ(0) n ]
wählen wir die Startfunktion ⎧ ⎪ x1 , ⎪ ⎪ ⎪ ⎪ ⎪ x2 , ⎪ ⎪ ⎪ ⎪ ⎨ (x) = ⎪ xj , ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ xn ,
(0)
x ∈ [0, μ1 ), (0) (0) (0) x ∈ [μ1 , μ1 + μ2 ), .. . j−1 (0) j (0) x∈ =1 μ , =1 μ , .. . n−1 (0) x∈ =1 μ , 1 .
(16.2)
Für eine auf [0, 1] gleichverteilte Zufallsvariable Y gilt dann i−1 i (0) (0) (0) = μi , μ ≤ Y < μ P({(Y ) = xi }) = P =1
=1
dies bedeutet, X 0 = (Y ) besitzt die gewünschte Startverteilung μ(0) . Wir bemerken, dass dieses Vorgehen der Simulation diskreter Zufallsvariablen aus Abschn. 15.2 entspricht.
16.2 Simulation von Markov-Ketten
305
Die Updatefunktion liefert für t ∈ N den Schritt μ(t) → μ(t+1) = P μ(t) , das heißt, für gegebenes X t = xi die Verteilung P({X t+1 = x j }|{X t = xi }) = pi, j ,
j ∈ {1, 2, . . . , n}.
Sie ist gegeben durch ⎧ ⎪ x1 , x ∈ [0, pi,1 ), ⎪ ⎪ ⎪ ⎪ ⎪ x2 , x ∈ [ pi,1 , pi,1 + pi,2 ), ⎪ ⎪ ⎪ .. ⎪ ⎨ . j−1 (x, xi ) = j ⎪ xj , x ∈ ⎪ =1 pi, , =1 pi, , ⎪ ⎪ ⎪ .. ⎪ ⎪ . ⎪ ⎪ ⎪ ⎩x , x ∈ n−1 p , 1. n =1 i,
(16.3)
Wie man sich analog zur Argumentation bei der Startfunktion überlegt, folgt für eine auf [0, 1]-gleichverteilte Zufallsvariable Y , dass P({X t+1 = x j }|{X t = xi }) = P {(Y , xi ) = x j } = pi, j . Bemerkung 16.12 Im Fall einer inhomogenen Markov-Kette ist die Updatefunktion zeitabhängig. Wir haben dann also für jedes t ∈ N eine andere Updatefunktion (t) (x, xi ). Wir erhalten schließlich den folgenden Algorithmus, der es ermöglicht, eine gegebene Markov-Kette numerisch zu simulieren. Algorithmus 16.13 (Monte-Carlo-Simulation von Markov-Ketten) input: Startverteilung μ(0) und Übergangsmatrix P output: Realisierung {xt } der Markov-Kette {X t } ➀ Initialisierung: ziehe eine Zufallszahl y ∈ [0, 1] und bestimme x0 = (y) gemäß (16.2) ➁ für t = 1, 2, . . . ziehe eine Zufallszahl y ∈ [0, 1] bestimme xt = (y, xt−1 ) gemäß (16.3)
306
16.3
16
Markov-Ketten
Irreduzible und aperiodische Markov-Ketten
Wir wollen uns im Folgenden auf homogene Markov-Ketten beschränken. Dann ist die Wahrscheinlichkeit P({X t+s = x j }|{X t = xi }) = [P s ]i, j unabhängig von t ∈ N. Satz 16.14 (Chapman-Kolmogorov-Gleichung) Ist {X t } eine homogene Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn } und t1 < s < t2 , dann gilt für alle xi , x j ∈ Z P({X t2 = x j }|{X t1 = xi }) =
n
P({X t2 = x j }|{X s = x })P({X s = x }|{X t1 = xi }).
(16.4)
=1
Beweis Sei ohne Beschränkung der Allgemeinheit t1 = 0. Aus P t2 = P s · P t2 −s folgt sofort n P({X t2 = x j }|{X 0 = xi }) = P t2 i, j = [P t2 −s ], j [P s ]i, =1
=
n
P({X t2 = x j }|{X s = x })P({X s = x }|{X 0 = xi }),
=1
wobei wir ausgenutzt haben, dass aufgrund der Homogenität P({X t2 = x j }|{X s = x }) = P({X t2 −s = x j }|{X 0 = x }) gilt.
Bemerkung 16.15 Wie man sich leicht überlegt, gilt die Chapman-KolmogorovGleichung auch im Fall inhomogener Markov-Ketten.
16.3 Irreduzible und aperiodische Markov-Ketten
307
Definition 16.16 Es sei {X t } eine homogene Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P. Wir sagen, der Zustand x j ist vom Zustand xi erreichbar, kurz xi → x j , falls ein s > 0 existiert, so dass P({X t+s = x j }|{X t = xi }) > 0. Ist x j von xi erreichbar und umgekehrt, so sagen wir, dass die Zustände xi und x j kommunizieren, kurz xi ↔ x j .
Bemerkung 16.17 Aus der Chapman-Kolmogorov-Gleichung (16.4) folgt für t1 < s < t2 und ∈ {1, 2, . . . , n}, dass P({X t2 = x j }|{X t1 = xi }) ≥ P({X t2 = x j }|{X s = x })P({X s = x }|{X t1 = xi }), beziehungsweise xi → x und x → x j
⇒
xi → x j .
Demnach ist die Relation ‘ →’ transitiv in Analogie zur Erreichbarkeitsrelation von Graphen. Betrachten wir den zu P gehörigen (gewichteten) Graphen G P , so ist x j von xi erreichbar, falls x j ∈ post (xi ) gilt. Die Knoten xi und x j kommunizieren, falls x j ∈ post (xi ) und xi ∈ post (x j ) gilt. Kommunizieren alle Zustände miteinander, so ist G P stark zusammenhängend. Gemäß Satz 6.32 ist in diesem Fall P irreduzibel. Dies motiviert die folgende Definition. Definition 16.18 Eine homogene Markov-Kette {X t } mit Zustandsraum Z = {x1 , x2 , . . . , xn } heißt irreduzibel, falls für alle xi , x j ∈ Z gilt xi ↔ x j , andernfalls heißt die Markov-Kette reduzibel.
Beispiel 16.19 Wir betrachten die homogene Markov-Kette {X t } mit Zustandsraum Z = {x1 , x2 , x3 , x4 } und Übergangsmatrix ⎡
0.3 0.5 ⎢0.3 0.4 P=⎢ ⎣0 0 0 0
0.2 0 0.2 0.8
⎤ 0 0.3⎥ ⎥. 0.8⎦ 0.2
308
16
Markov-Ketten
Der zugehörige Übergangsgraph ist:
Insbesondere ist die Markov-Kette reduzibel. Denn falls wir in x3 oder x4 starten, verhält sich die Markov-Kette genauso wie die Markov-Kette mit Zustandsraum {x3 , x4 } und Übergangsmatrix 0.2 0.8 . 0.8 0.2
Definition 16.20 Sei {X t } eine homogene Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn }. Für einen Zustand xi ∈ Z mit xi → xi heißt der größte gemeinsame Teiler der potentiellen Rückkehrzeiten d(xi ) := ggT{t ≥ 1 : [P t ]i,i > 0} die Periode des Zustands. Gilt nicht xi → xi , so setzen wir d(xi ) := ∞. Zustände mit d(xi ) = 1 heißen aperiodisch. Die Markov-Kette heißt aperiodisch, wenn alle Zustände aperiodisch sind, ansonsten heißt sie periodisch.
Beispiel 16.21 In der zufälligen Irrfahrt aus Beispiel 16.1 gilt [P t ]i,i > 0 nur für t = 2, 4, 6, . . .. Daher ist d(xi ) = 2 für alle i ∈ {1, 2, 3, 4} und folglich die MarkovKette periodisch. Eine Markov-Kette, deren Übergangsmatrix keinen Nulleintrag auf der Diagonalen besitzt, ist offensichtlich aperiodisch, weil stets [P]i,i > 0 für alle i ∈ {1, 2, . . . , n} gilt.
16.3 Irreduzible und aperiodische Markov-Ketten
309
Wir benötigen folgendes Resultat aus der elementaren Zahlentheorie: Lemma 16.22 Gegeben sei die Menge A = {a1 , a2 , . . .} ⊂ N∗ mit den Eigenschaften 1. ggT(a1 , a2 , . . .) = 1, 2. a, b ∈ A ⇒ a + b ∈ A. Dann existiert eine Zahl N < ∞, so dass n ∈ A gilt für alle n ∈ N∗ mit n ≥ N.
Beweis Wir vollziehen den Beweis in drei Schritten. i. Wir zeigen zunächst, dass für beliebige Zahlen a, b ∈ N∗ Zahlen x, y ∈ N∗ existieren mit ax − by = ggT(a, b). (16.5) Hierzu sei ohne Beschränkung der Allgemeinheit ggT(a, b) = 1, denn ansonsten betrachten wir einfach a/ ggT(a, b) und b/ ggT(a, b). Definieren wir die b−1 Zahlen z 1 := a mod b, z 2 := 2a mod b, .. . z b−1 := (b − 1)a mod b, so gilt 0 ≤ z i < b für alle 1 ≤ i < b. Weiter gilt z i = 0 für alle 1 ≤ i < b, denn sonst gäbe es ein p ∈ N mit a = pb, das heißt, b teilt a im Widerspruch zu ggT(a, b) = 1. Ist hingegen z i = 1 für alle 1 ≤ i < b, so muss es zwei Zahlen 1 ≤ k < < b geben mit ka mod b = z k = z = a mod b. Dann ist aber (−k)a mod b = 0, das heißt, b teilt (−k)a, was wegen ggT(a, b) = 1 auf den Widerspruch b teilt 0 = − k < b führt. Folglich gibt es ein 1 ≤ k < b mit z k = ka mod b = 1, oder anders ausgedrückt, es gilt die Gleichung ka − b = 1. Damit haben wir die Darstellung (16.5) bewiesen. ii. Darstellung (16.5) können wir mittels vollständiger Induktion auf K Zahlen verallgemeinern. Denn gibt es K − 1 Zahlen n 1 , n 2 , . . . , n K −1 ∈ Z mit b=
K −1 k=1
n k ak = ggT(a1 , a2 , . . . , a K −1 ),
310
16
Markov-Ketten
so existieren gemäß (16.5) x, y ∈ N∗ mit bx − a K y = ggT(b, a K ) = ggT(a1 , a2 , . . . , a K ). Setzen wir n˜ k := xn k ∈ Z für alle 0 < k < K und n˜ K := −y ∈ Z, so folgt K
n˜ k ak = ggT(a1 , a2 , . . . , a K ).
(16.6)
k=1
iii. Da jedes a ∈ A eine endliche Primfaktorzerlegung besitzt, gibt es ein K < ∞ mit ggT(a1 , a2 , . . . , a K ) = 1. Gemäß (16.6) existieren also Zahlen n 1 , n 2 , . . . , n K ∈ Z mit K
n k ak = 1.
k=1
Setzen wir L := max{|n 1 |, |n 2 |, . . . , |n K |} und N := La1 (a1 + a2 + . . . + a K ), so gibt es zu jedem n ≥ N offenbar eine eindeutige Zerlegung n = N + ka1 + mit k ≥ 0 und 0 ≤ < a1 . Nun gilt aber n = La1 (a1 + a2 + . . . + a K ) + ka1 +
K k=1
n k ak =
K
m k ak
k=1
mit nichtnegativen, ganzzahligen Koeffizienten m 1 = La1 + k + n 1 ≥ 0, m 2 = La2 + n 2 ≥ 0, .. . m K = La K + n K ≥ 0. Dies liefert wegen der Abgeschlossenheit von A bezüglich der Addition schließlich die Behauptung.
16.3 Irreduzible und aperiodische Markov-Ketten
311
Satz 16.23 Gegeben sei eine aperiodische Markov-Kette {X t } mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P. Dann existiert ein T < ∞ derart, dass [P t ]i,i > 0 für alle i ∈ {1, 2, . . . , n} und t ≥ T .
Beweis Für xi ∈ Z setze Ai := {t ≥ 1 : [P t ]i, j > 0}, das heißt, Ai ist die Menge der Rückkehrzeiten zum Zustand xi . Da gemäß Voraussetzung die Markov-Kette aperiodisch ist, gilt ggT(Ai ) = 1. Weiter bedeutet s, t ∈ Ai dass P({X s = xi }|{X 0 = xi }) > 0, P({X t+s = xi }|{X s = xi }) > 0, und gemäß der Chapman-Kolmogorov-Gleichung (16.4) ergibt sich P({X t+s = xi }|{X 0 = xi }) ≥ P({X t+s = xi }|{X s = xi })P({X s = xi }|{X 0 = xi }) > 0, beziehungsweise s + t ∈ Ai . Damit lässt sich Lemma 16.22 anwenden und es existiert ein Ti < ∞ derart, dass t ∈ Ai gilt für alle t ≥ Ti . Setzen wir T := max{T1 , T2 , . . . , Tn }, so erhalten wir schließlich das Behauptete.
Korollar 16.24 Sei {X t } eine aperiodische, irreduzible Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P. Dann existiert ein T < ∞, so dass [P t ]i, j > 0 für alle i, j ∈ {1, 2, . . . , n} und T ≤ t.
Beweis Nach Satz 16.23 existiert ein S < ∞, so dass [P t ]i,i > 0 für alle t ≥ S. Für beliebige, feste Zustände xi , x j ∈ Z folgt aus der Irreduzibilität, dass ein ti, j existiert mit [P ti, j ]i, j > 0. Setze Ti, j := S + ti, j , dann gilt für alle t ≥ S, dass t − ti, j ≥ Ti, j , und somit ist P({X t = x j }|{X 0 = xi }) (16.4)
≥ P({X t = x j }|{X t−ti, j = xi })P({X t−ti, j = xi }|{X 0 = xi }) > 0.
Für T = maxi, j {Ti, j } folgt nun die Behauptung.
312
16.4
16
Markov-Ketten
Stationäre Verteilungen
Definition 16.25 Gegeben sei eine homogene Markov-Kette {X t } mit Zustandsraum Z = {x1 , x2 , . . . , xn }. Zu gegebenem X 0 = xi ∈ Z heißt Ti, j = min{t > 0 : X t = x j } die Treffzeit von x j ∈ Z . Diese ist also die Zeit, die nach Start in xi vergeht, bis erstmals x j besucht wird. Ist P({X t = x j }|{X 0 = xi }) = 0 für alle t ∈ N, so setzen wir Ti, j = ∞. Im Folgenden betrachten wir die Wahrscheinlichkeit für eine endliche Treffzeit sowie die erwartete Treffzeit. Lemma 16.26 Sei {X t } eine aperiodische, irreduzible Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P. Dann gilt P({Ti, j < ∞}) = 1 und E[Ti, j ] =
∞
P({Ti, j > t}) < ∞.
t=0
Beweis Nach Korollar 16.24 existiert ein T < ∞ mit [P T ]i, j > 0 für alle i, j ∈ {1, 2, . . . , n}. Setze α := min [P T ]i, j : i, j ∈ {1, 2, . . . , n} > 0 und wähle xi , x j ∈ Z beliebig. Startet die Markov-Kette in xi , dann folgt P({Ti, j > T }) ≤ P({X T = x j }|{X 0 = xi }) ≤ 1 − α, und, wegen P({X 2T = x j }|{Ti, j > T }) =
n k=1 i =k
P({X 2T = x j }|{X T = xk }) ≥ α,
16.4 Stationäre Verteilungen
313
auch P({Ti, j > 2T }) = P({Ti, j > T })P({Ti, j > 2T }|{Ti, j > T }) ≤ P({Ti, j > T }) P({X 2T = x j }|{Ti, j > T }) ≤ (1 − α)2 .
≤1−α
≤1−α
Für beliebiges ∈ N ergibt sich induktiv P({Ti, j > T }) = P({Ti, j > ( − 1)T })P({Ti, j > T }|{Ti, j > ( − 1)T }) ≤ P({Ti, j > ( − 1)T }) P({X T = x j }|{Ti, j > ( − 1)T })
≤1−α
≤(1−α)−1 →∞
≤ (1 − α) −→ 0, dies bedeutet P({Ti, j = ∞}) = 0. Weiter folgt E[Ti, j ] =
∞
tP({Ti, j = t}) =
t=1
=
∞
P({Ti, j = t}) =
P({Ti, j > m}) =
∞
∞ (+1)T −1 =0
(1 − α) =
=0
m=T
∞ ∞
P({Ti, j = t})
m=1 t=m
t=1 m=1
m=0
≤T
∞ t
P({Ti, j > m})
≤P({Ti, j >T })≤(1−α)
T T = < ∞. 1 − (1 − α) α
Dies komplettiert den Beweis.
Definition 16.27 Sei {X t } eine homogene Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P. Ein Vektor π = [π1 , π2 , . . . , πn ] heißt stationäre Verteilung der Markov-Kette, falls gilt . , n} und π1 = 1 sowie 1. πi ≥ 0 für alle i ∈ {1, 2, . . 2. π = P π, das heißt πi = nj=1 p j,i π j für alle j ∈ {1, 2, . . . , n}.
Bemerkung 16.28 Eine stationäre Verteilung π ist gemäß der zweiten Eigenschaft aus dieser Definition ein Eigenvektor der Matrix P zum Eigenwert 1. Beispiel 16.29 (PageRank-Algorithmus) Der PageRank-Algorithmus wurde im Jahr 1997 von Sergei Brin und Lawrence Page zum Patent angemeldet und war die
314
16
Markov-Ketten
Grundlage der Suchmaschine Google. Der Algorithmus dient dazu, eine Liste sich gegenseitig referenzierender Dokumente, wie beispielsweise die Webseiten des Internets, welche einen bestimmten Suchbegriff enthalten, hinsichtlich Ihrer Relevanz zu bewerten. Die Relevanz der Webseiten wird dabei durch ihren PageRank reflektiert. Um den PageRank zu bestimmen, greift man auf das Random-Surfer-Modell zurück: Wir betrachten einen Random-Surfer, der sich durch die Webseiten des Internets klickt. Wir beginnen mit einer zufälligen Webseite, die von einem RandomSurfer besucht wird. Mit der Wahrscheinlichkeit p (typischerweise p ≈ 0.85) beginnt der Random-Surfer sich auf dieser Webseite zu langweilen und klickt zufällig auf einen Link. Dabei nehmen wir an, dass jeder Link auf der Webseite die gleiche Wahrscheinlichkeit habe, angeklickt zu werden. Hingegen beginnt der RandomSurfer mit der Wahrscheinlichkeit 1 − p die gesamte Prozedur von vorne und startet auf einer zufälligen Webseite. Betrachten wir das Internet als Digraphen G = (V , E), wobei jede Webseite einem Knoten i ∈ V des Graphen und jede Kante (i, j) ∈ E einem Link auf der Webseite i zur Webseite j entspricht, so ist der PageRank der Webseite i definiert gemäß PR j 1− p +p . (16.7) PRi := |V | outdeg( j) j∈pre(i)
Der PageRank stellt eine Wahrscheinlichkeitsverteilung auf der Knotenmenge V dar. Dabei entspricht PRi der Wahrscheinlichkeit, dass der Random-Surfer die Webseite i besucht. Um den PageRank zu berechnen, modellieren wir den Random-Surfer als MarkovKette. Jeder Zustand der Markov-Kette entspricht einer Webseite des Internets. Die n zugehörige Übergangsmatrix G = [gi, j ]i, j=1 , mit n = |V | und gi, j =
1− p p n + outdeg(i) , 1− p n ,
falls (i, j) ∈ E, sonst,
heißt Google-Matrix. Wie man sich leicht überlegt, ist (16.7) äquivalent zur Gleichung π = G π mit π := [PR1 , PR2 , . . . , PRn ] . Damit ist der PageRank also eine stationäre Verteilung der homogenen Markov-Kette mit Übergangsmatrix G.
Satz 16.30 Für jede aperiodische, irreduzible Markov-Kette {X t } mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P existiert mindestens eine stationäre Verteilung.
16.4 Stationäre Verteilungen
315
Beweis Wir nehmen an, die Markov-Kette startet in x1 und setzen für jedes i ∈ {1, 2, . . . , n} ρi :=
∞
P({X t = xi , T1,1 > t}) ≤ E[T1,1 ] < ∞.
t=0
Wir wählen π = [π1 , π2 , . . . , πn ] =
ρ1 ρ2 ρn , ,..., E[T1,1 ] E[T1,1 ] E[T1,1 ]
(16.8)
und zeigen zunächst π = P π. Für i = 1 gilt
ρi =
∞
i =1
=
i =1
P({X t = xi , T1,1 > t}) =
t=0 ∞
∞
P({X t = xi , T1,1 > t − 1}) =
t=1 i =1
=
P({X t = xi , T1,1 > t})
t=1
n ∞
∞ n
P({X t−1 = x j , X t = xi , T1,1 > t − 1})
t=1 j=1
P({X t−1 = x j , T1,1 > t − 1})P({X t = xi }|{X t−1 = x j , T1,1 > t − 1}),
t=1 j=1
wobei wir im letzten Schritt die Multiplikationsregel (12.2) benutzt haben. Da das Ereignis {T1,1 > t − 1} einzig bestimmt ist durch X 0 , X 1 , . . . , X t−1 , folgt unter Zuhilfenahme der Markov-Eigenschaft P({X t = xi }|{X t−1 = x j , T1,1 > t − 1}) = P({X t = xi }|{X t−1 = x j }) = pj,i und weiter ρi = = = =
n ∞
pj,i P({X t−1 t=1 j=1 n ∞
P({X t−1 = x j , T1,1 > t − 1})
pj,i
j=1 n j=1 n j=1
pj,i
= x j , T1,1 > t − 1})
t=1 ∞ s=0
pj,i ρj .
P(X s = x j , T1,1 > s)
(16.9)
316
16
Markov-Ketten
Skalieren wir beide Seiten dieser Gleichung mit E[T1,1 ], so sehen wir, dass (16.8) die Behauptung für i = 1 erfüllt: ρj ρi pj,i pj,i πj = [P π]i . = = E[T1,1 ] E[T1,1 ]
πi =
n
n
j=1
j=1
Im Fall i = 1 beachte man, dass gilt
P({X t = x1 , T1,1 > t}) =
1, falls t = 0, 0, falls t ≥ 1.
Daher schließen wir ρ1 = 1 und mit Hilfe der Aperiodizität folgt, dass ρ1 = 1 = P({T1,1 < ∞}) =
∞
P({T1,1 = t})
t=1
= =
n ∞ t=1 j=1 n ∞
P({X t−1 = x j , T1,1 = t}) =
n ∞
P({X t−1 = x j , X t = x1 , T1,1 > t − 1})
t=1 j=1
P({X t = x1 }|{X t−1 = x j , T1,1 > t − 1})P({X t−1 = x j , T1,1 > t − 1}).
t=1 j=1
Hier haben wir im letzten Schritt wieder die Multiplikationsregel (12.2) benutzt. Verwenden wir erneut, dass das Ereignis {T1,1 > t − 1} nur von X 0 , X 1 , . . . , X t−1 abhängt, so folgt in Anbetracht von (16.9), dass ρ1 = =
n j=1 n
pj,1
pj,1
∞ t=1 ∞
P({X t−1 = x j , T1,1 > t − 1}) P({X s = x j , T1,1 > s}) =
n
s=0
j=1
pj,1 ρ j .
j=1
Mit anderen Worten, es gilt π1 =
ρj ρ1 pj,1 pj,1 πj . = = E[T1,1 ] E[T1,1 ] n
n
j=1
j=1
Wir schließen, dass π ein Eigenvektor von P zum Eigenwert 1 ist. Es verbleibt n πi = 1 zu zeigen. Aus Lemma 16.26 folgt diese jedoch dessen Normierung i=1 sofort gemäß E[T1,1 ] =
∞
P({T1,1 > t}) =
t=0
=
n ∞ i=1 t=0
∞ n
P({X t = xi , T1,1 > t})
t=0 i=1
P({X t = xi , T1,1 > t}) =
n
ρi .
i=1
16.4 Stationäre Verteilungen
317
Bemerkung 16.31 Die stationäre Verteilung besitzt sogar die Eigenschaft, dass alle πi > 0 sind. Denn wären etwa π1 , π2 , . . . , π = 0 und π+1 , π+2 , . . . , πk = 0, so folgt pj,i = 0 für alle i ∈ { + 1, + 2, . . . , k} und j ∈ {1, 2, . . . , }. Die Markov-Kette wäre demnach reduzibel, was zu einem Widerspruch führt.
Satz 16.32 Sei {X t } eine aperiodische, irreduzible Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P. Dann gilt für jede Startverteilung μ(0) und jede stationäre Verteilung π, dass t→∞
μ(t) = (Pt ) μ(0) −→ π.
Beweis Es genügt, die Behauptung für alle μ(0) = ei mit i ∈ {1, 2, . . . , n} zu zeigen. Seien hierzu {X t } und {Yt } die Markov-Ketten, welche in X 0 = xi beziehungsweise mit der Startverteilung π starten. Wir konstruieren nun eine weitere Markov-Kette {Wt }, welche aus den Paaren Wt = (X t , Yt ) besteht. Ihr Zustandsraum ist damit Z × Z und die Übergangswahrscheinlichkeiten lauten q(i,i ),( j, j ) = pi, j pi , j . Die Irreduzibilität impliziert, dass ein S < ∞ existiert mit [P S ]i, j > 0 für alle i, j ∈ {1, 2, . . . , n}. Damit gilt aber auch [P S ]i,k [P S ] j,n > 0. Folglich ist die MarkovKette {Wt } ebenfalls irreduzibel. Offensichtlich ist sie auch aperiodisch, so dass aus Lemma 16.26 für die Zufallsvariable T := min{t > 0 : X t = Yt }
(16.10)
folgt P({T = ∞}) =
n
P({T = ∞}|{Y0 = x j })P({Y0 = x j })
j=0 n = P {T(i, j),(1,1) = ∞, T(i, j),(2,2) = ∞, . . . , T(i, j),(n,n) = ∞} P({Y0 = x j }) j=0
= 0. Hier ist T(i, j),(k,k) die Treffzeit von Zustand (xk , xk ) ∈ Z × Z ausgehend vom Zustand (xi , x j ) ∈ Z × Z bezüglich der Markov-Kette Wt . Wir schließen also P({T < ∞}) = 1, dies bedeutet, dass sich die Markov-Ketten {X t } und {Yt } mit der Wahrscheinlichkeit 1 irgendwann einmal treffen.
318
16
Markov-Ketten
Nun ist T aus (16.10) die Zeit, welche vergeht, bis das Verhalten der MarkovKetten {X t } und {Yt } übereinstimmt. Denn für alle t ≥ T und alle j ∈ {1, 2, . . . , n} gilt P({X t = x j }|{T ≤ t}) = P({Yt = x j }|{T ≤ t}). Multiplikation mit P({T ≤ t}) liefert dann P({X t = x j , T ≤ t}) = P({Yt = x j , T ≤ t}).
(16.11)
Nun gilt πi = P({Yt = xi }) = P({Yt = xi , T ≤ t}) + P({Yt = x j , T > t}) .
t→∞
≤P({T >t}) −→ 0
Daraus folgern wir t→∞
P({Yt = xi , T ≤ t}) −→ πi und aus (16.11) ergibt sich t→∞
P({X t = xi , T ≤ t}) −→ πi . Die Behauptung erhalten wir schließlich aus t→∞
P({X t = xi }) = P({X t = xi , T ≤ t}) + P({X t = xi , T > t}) −→ πi .
t→∞
−→ πi
t→∞
≤P(T >t) −→ 0
Satz 16.33 Für eine aperiodische, irreduzible Markov-Kette {X t } mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P existiert genau eine stationäre Verteilung.
Beweis Seien π 1 und π 2 zwei stationäre Verteilungen. Nach Satz 16.32 folgt t→∞
π 1 − π 2 1 = π 1 − (P t ) π 2 1 −→ π 1 − π 1 1 = 0, das heißt π 1 = π 2 .
16.4 Stationäre Verteilungen
319
Beispiel 16.34 Offensichtlich gilt für die Google-Matrix aus Beispiel 16.29 stets gi, j > 0 für alle i, j ∈ {1, 2, . . . , n}. Damit ist die zugehörige homogene MarkovKette aperiodisch und irreduzibel. Gemäß Satz 16.33 ist der PageRank (16.7) folglich eindeutig. Wir kommen nun zu einem letzten Begriff Markov-Ketten betreffend, nämlich der Reversibilität. Bei einer reversiblen Verteilung ist es gleichwahrscheinlich, in einem Zeitschritt vom Zustand xi zum Zustand x j zu gelangen und umgekehrt. Es spielt dann keine Rolle, ob man die Markov-Kette vorwärts oder rückwärts in der Zeit durchläuft. Definition 16.35 Sei {X t } eine homogene Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P. Eine Verteilung π heißt reversibel, falls für alle i, j ∈ {1, 2, . . . , n} gilt pj,i πj = pi, j πi . Besitzt eine Markov-Kette eine reversible Verteilung, dann wird sie als reversible Markov-Kette bezeichnet. Die Reversibilität einer Markov-Kette impliziert die Existenz eines stationären Zustands, wie das folgende Ergebnis besagt. Satz 16.36 Sei {X t } eine homogene Markov-Kette mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangsmatrix P. Ist die Verteilung π reversibel, dann ist sie auch stationär.
Beweis Ist π reversibel, so folgt für jedes i ∈ {1, 2, . . . , n} n j=1
pj,i πj =
n
pi, j πi = πi
j=1
n
pi, j = πi .
j=1
=1
In Matrix-Vektor-Notation ergibt sich daraus π = P π, was zu beweisen war.
320
16
16.5
Markov-Ketten
Markov-Ketten-Monte-Carlo-Verfahren
Wir wollen uns nun dem Problem zuwenden, eine Markov-Kette zu konstruieren, die eine vorgegebene stationäre Verteilung π besitzt. Dies ist vor allem dann interessant, falls der Zustandsraum sehr groß ist und man nur die stationäre Verteilung π samplen will. Es sei G = (Z , E) ein ungerichteter, zusammenhängender Graph mit dem Zustandsraum als Knotenmenge. Wir betrachten die Übergangsmatrix P = n [ pi, j ]i, j=1 mit
pi, j
! ⎧ πj deg(xi ) 1 ⎪ min , 1 , ⎪ πi deg(xj ) ⎨ deg(xi ) 1 = 1 − x ∈post(x ) min j i deg(xi ) ⎪ ⎪ ⎩ 0,
falls {xi , x j } ∈ E,
!
πj deg(xi ) πi deg(xj ) , 1
, falls i = j,
(16.12)
sonst.
Diese Übergangsmatrix gehört zum folgenden Übergangsmechanismus: Angenommen es gilt X t = xi , dann bestimme gleichverteilt einen Nachbarn x j ∈ post(xi ). Das heißt, jeder Nachbar wird mit Wahrscheinlichkeit 1/ deg(xi ) ausgewählt. Setze dann ⎧ ! ⎨x j mit Wahrscheinlichkeit min πj deg(xi ) , 1 , πi deg(xj ) ! X t+1 = ⎩xi mit Wahrscheinlichkeit 1 − min πj deg(xi ) , 1 . πi deg(xj ) Das vorgeschlagene Vorgehen führt auf den folgenden Algorithmus. Jede Iteration besitzt den Aufwand O(1), wobei die Konstante vom Knotengrad abhängt. Daher ist die Simulation sehr schnell, wenn der maximale Knotengrad im Graphen klein ist. Speziell ist in diesem Fall die Übergangsmatrix P dünnbesetzt. Algorithmus 16.37 (Metropolis-Algorithmus) input: ungerichteter, zusammenhängender Graph G = (Z , E) und Startknoten x ∈ Z = {1, 2, . . . , n} output: Realisierung {xt } der Markov-Kette {X t } ➀ Initialisierung: x0 := x und t := 0 ➁ bestimme gleichverteilt einen Nachbarknoten j ∈ post(xt !) π deg(x ) ➂ setze xt+1 := j mit Wahrscheinlichkeit min πxj deg(xtj ) , 1 t
oder xt+1 := xt mit Wahrscheinlichkeit 1 − min ➃ erhöhe t := t + 1 und gehe nach ➁
!
πj deg(xt ) πxt deg(xj ) , 1
Der nachfolgende Satz bestätigt, dass Algorithmus 16.37 in der Tat Zufallszahlen mit der gewünschten Verteilung π erzeugt.
16.5 Markov-Ketten-Monte-Carlo-Verfahren
321
Satz 16.38 Die Markov-Kette {X t } mit Zustandsraum Z = {x1 , x2 , . . . , xn } und Übergangwahrscheinlichkeiten (16.12) ist aperiodisch, irreduzibel und besitzt die eindeutige stationäre Verteilung π.
Beweis Da der ungerichtete Graph G = (Z , E) zusammenhängend ist, ist der Übergangsgraph der Markov-Kette stark zusammenhängend, denn jede Kante ist sowohl vorwärts als auch rückwärts vorhanden. Deshalb ist die Markov-Kette irreduzibel. Sie ist auch aperiodisch, da pi,i > 0 für alle i ∈ {1, 2, . . . , n} ist. Wir wollen nun zeigen, dass die Verteilung π reversibel ist, also für alle i, j ∈ {1, 2, . . . , n} gilt pj,i πj = pi, j πi . Im Fall i = j oder {xi , x j } ∈ / E ist dies klar. Sei also i = j und {xi , x j } ∈ E. Gilt πj deg(xi ) πi deg(xj ) ≥ 1, dann folgt πj deg(xi ) 1 πi pi, j πi = πi min ,1 = deg(xi ) πi deg(x j ) deg(xi )
=1
πi deg(x j ) 1 = πj min , 1 = pj,i πj . deg(x j ) πj deg(xi )
π deg(x )
= πi deg(xj ) j
Ist hingegen
πj deg(xi ) πi deg(xj )
i
< 1, so ergibt sich
πj πj deg(xi ) 1 pi, j πi = πi min ,1 = deg(xi ) πi deg(x j ) deg(x j )
π deg(x )
= πj
= πj deg(xi ) i
j
πi deg(x j ) 1 min , 1 = pj,i πj . deg(x j ) πj deg(xi )
=1
Gemäß Satz 16.36 ist folglich π die stationäre Verteilung der Markov-Kette, welche gemäß Satz 16.33 eindeutig ist.
322
16
Markov-Ketten
Übungsaufgaben Aufgabe 16.1 (Mischen von Karten) Betrachten Sie einen Stapel Spielkarten bestehend aus n Karten. Ihre Reihenfolge wird repräsentiert durch eine Permutation π der Zahlen {1, 2, . . . , m}. Wenn man die Karten mischt, so verändert man ihre Reihenfolge, das heißt, man wendet eine weitere Permutation π auf die Permutation π an und die Karten haben danach die Reihenfolge π ◦ π . Bezeichne Z m die Menge aller Permutationen von {1, 2, . . . , m}. Starten Sie nun zu einem Zeitpunkt t = 0 mit einer gewissen Kartenreihenfolge X 0 = π0 ∈ Z m . Zum Zeitpunkt t > 0 wählen Sie zufällig eine Permutation πt ∈ Z m mit Wahrscheinlichkeit pπt und mischen die Karten mittels πt , also X t+1 = πt ◦ X t . a) Geben Sie die Übergangswahrscheinlichkeiten pπ,π für π, π ∈ Z m an. b) Geben Sie zwei Beispiele für die Verteilung { pπ }π∈Z m derart an, dass die MarkovKette {X t } irreduzibel beziehungsweise reduzibel ist. c) Zeigen Sie, dass die Übergangsmatrix doppelt stochastisch ist, das heißt, dass sowohl die Zeilensummen als auch die Spaltensummen jeweils Eins ergeben, symbolisch pπ,π = pπ ,π = 1 f¨ur alle π ∈ Z m . π ∈Z m
π ∈Z m
d) Zeigen Sie, dass die Gleichverteilung auf Z m eine stationäre Verteilung für die Markov-Kette ist. Mit anderen Worten, die Wahrscheinlichkeitsverteilung μ = [μπ ]π∈Z m mit μπ = 1/m! für alle π ∈ Z m ist stationär. Aufgabe 16.2 (Computerausstattung) Der Sollstand an Computern in einem Großraumbüro sei n ∈ N∗ . Am Anfang der Woche t seien X t ∈ {0, 1, . . . , n} Computer intakt. Während dieser Woche fallen davon Yt Computer aus. Montags wird die Differenz zum Soll nachbestellt, wobei die Computer erst am Sonntag geliefert werden. In der ersten Woche seien X 0 Computer vorhanden. a) Zeigen Sie die Rekursionsformel X t+1 = n − Yt , t = 0, 1, 2, . . . . b) Die Zufallsvariablen {Yt } seien jeweils gleichverteilt, das heißt P({Yt = k}|{X t = }) =
1 , k ∈ {0, 1, . . . , }. +1
Betrachten Sie die Zufallsvariablen {X t } als Markov-Kette mit Zustandsraum Z := {0, 1, . . . , n}. Bestimmen Sie die Übergangswahrscheinlichkeit P({X t+1 = k}|{X t = }) und erstellen Sie die Übergangsmatrix.
Übungsaufgaben
323
c) Bestimmen Sie die stationäre Verteilung π . d) Berechnen Sie den Erwartungswert der Verteilung π im Fall n = 5. Aufgabe 16.3 (zufällige Irrfahrt) Vorgelegt sei folgender ungerichtete Graph:
Die Markov-Kette {X t } modelliere die zufällige Irrfahrt auf diesem Graphen. Dies bedeutet, falls wir zum Zeitpunkt t ∈ N in einem Knoten xi ∈ V sind, dann gehen wir gleichverteilt zu einem der Nachbarknoten. a) Bestimmen Sie die Übergangsmatrix P ∈ R8×8 . b) Zeigen Sie, dass die Verteilung 1 deg(x1 ), deg(x2 ), . . . , deg(xn ) d n stationär ist, wobei d := i=1 deg(x1 ). π=
17
Polynominterpolation
17.1
Lagrange-Interpolation
Häufig sind nur einige wenige Punktauswertungen einer Funktion bekannt. Diese können beispielsweise aus Messungen stammen. Man ist dann daran interessiert, die vorhandenen Daten auf sinnvolle Weise durch eine stetige Funktion zu interpolieren. Eine Möglichkeit, diese Interpolationsaufgabe zu lösen, bietet die Polynominterpolation. Dazu erinnern wir uns, dass n gemäß (10.7) den Raum aller reellwertigen Polynome vom Grad kleiner oder gleich n bezeichnet. Definition 17.1 Gegeben seien n + 1 paarweise verschiedene Stützstellen x0 < x1 < . . . < xn sowie n + 1 Werte y0 , y1 , . . . , yn , kurz n + 1 Interpolationspunkte (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ). Die Lagrangesche Interpolationsaufgabe lautet dann: Bestimme ein Polynom p ∈ n , mit !
p(xi ) = yi für alle i ∈ {0, 1, . . . , n}.
(17.1)
Im Folgenden wollen wir uns mit der Existenz und Eindeutigkeit der Lösung der Interpolationsaufgabe (17.1) befassen. Hierzu führen wir zunächst eine spezielle Basis für den Polynomraum n ein.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_17
325
326
17
Polynominterpolation
Definition 17.2 Zu gegebenen n + 1 Stützstellen x0 < x1 < . . . < xn nennen wir n w(x) = (x − x j ) ∈ n+1 j=0
das Knotenpolynom. Die zugehörigen Lagrange-Polynome lauten L i (x) =
n x − xj ∈ n , i ∈ {0, 1, . . . , n}. xi − x j j=0 j=i
Die Lagrange-Polynome sind gerade so konstruiert, dass gilt L i (x j ) = δi, j für alle i, j ∈ {0, 1, . . . , n},
(17.2)
vergleiche auch Abb. 17.1 für eine Illustration der Lagrange-Polynome vom Grad 4. Daher kann man das Interpolationspolynom zur Interpolationsaufgabe (17.1) sehr leicht angeben. Es gilt p(x) =
n
yi L i (x).
(17.3)
i=0
Denn wegen (17.2) ist p(x j ) =
n i=0
yi L i (x j ) =
n
yi δi, j = yj für alle j ∈ {0, 1, . . . , n}.
i=0
Hiermit ist bereits die Existenz einer Lösung der Interpolationsaufgabe garantiert. Dass (17.3) auch die einzige Lösung der Interpolationsaufgabe ist, bestätigt der nachfolgende Satz.
Abb. 17.1 Lagrange-Polynome vom Grad 4
17.1 Lagrange-Interpolation
327
Satz 17.3 Die Lagrangesche Interpolationsaufgabe (17.1) ist eindeutig lösbar. Beweis Seien p, q ∈ n zwei Lösungen der Interpolationsaufgabe (17.1). Dann ist p − q ∈ n , also ein Polynom vom Grad n, das aufgrund von ( p − q)(xi ) = 0 für alle i ∈ {0, 1, . . . , n} n + 1 Nullstellen besitzt. Daraus folgt jedoch p(x) ≡ q(x) nach dem Fundamentalsatz der Algebra. Bemerkung 17.4 Die Koeffizienten a0 , a1 , . . . , an des Interpolationspolynoms p(x) = an x n + an−1 x n−1 + . . . + a1 x + a0 lassen sich im Prinzip auch mit Hilfe der Vandermonde-Matrix ⎡
x 00 x 01 · · · x 0n
⎢x 0 ⎢ V(x0 , . . . , xn ) := ⎢ .1 ⎣ ..
x 11 · · · .. . . . . x n0 x n1 · · ·
⎤
x 1n ⎥ ⎥ .. ⎥ .⎦
(17.4)
x nn
bestimmen. Denn die Koeffizienten ergeben sich offenbar als Lösung des linearen Gleichungssystems ⎡ 0 1 ⎤⎡ ⎤ ⎡ ⎤ x 0 x 0 · · · x 0n a0 y0 ⎢ x 0 x 1 · · · x n ⎥ ⎢a1 ⎥ ⎢ y1 ⎥ ⎢ 1 1 ⎢ ⎥ 1⎥ ⎢ ⎥ ⎢. . . ⎥⎢ . ⎥ = ⎢ . ⎥. ⎣ .. .. . . ... ⎦ ⎣ .. ⎦ ⎣ .. ⎦ an yn x n0 x n1 · · · x nn Weil für die Determinante der Vandermonde-Matrix gilt det V(x0 , . . . , xn ) = (x j − xi ), 0≤i< j≤n
folgt speziell, dass die Interpolationsaufgabe (17.1) genau dann eindeutig lösbar ist, wenn alle Stützstellen verschieden sind. Zur numerischen Lösung der Interpolationsaufgabe ist die Vandermonde-Matrix allerdings im Allgemeinen nicht geeignet. Im Fall reeller Stützstellen lässt sich nämlich zeigen, dass ihre Kondition exponentiell mit der Anzahl der Stützstellen wächst. Wird eine hinreichend oft stetig differenzierbare Funktion f durch ein Polynom p interpoliert, so können wir eine konkrete Darstellung für den punktweisen Approximationsfehler | f (x) − p(x)| herleiten.
328
17
Polynominterpolation
Satz 17.5 Die Funktion f sei (n + 1)-mal stetig differenzierbar. Weiterhin sei p ∈ n das Interpolationspolynom zu den Stützstellen a = x0 < x1 < . . . < xn = b und Werten yi = f (xi ). Dann existiert zu jedem x ∈ R eine Stelle ξ aus dem kleinsten Intervall I , das a, b und x enthält, so dass f (x) − p(x) =
f (n+1) (ξ ) w(x). (n + 1)!
(17.5)
Beweis Fällt x mit einer der Stützstellen xi zusammen, so ist (17.5) gültig für beliebiges ξ ∈ I . Sei also x ∈ / {x0 , x1 , . . . , xn }. Dann besitzt die Funktion h(t) := f (t) − p(t) −
w(t)
f (x) − p(x) ∈ C n+1 (I ) w(x)
n + 2 einfache Nullstellen, nämlich in x0 , x1 , . . . , xn und in t = x. Folglich enthält jedes der n + 1 Teilintervalle zwischen diesen Nullstellen nach dem Satz von Rolle (1) eine einfache Nullstelle ti von h , i ∈ {1, 2, . . . , n + 1}. Eine Illustration dazu findet man in Abb. 17.2. In jedem der n Teilintervalle zwischen den Nullstellen (1) (1) (1) t 1 , t 2 , . . . , t n+1 finden wir wiederum nach dem Satz von Rolle je eine einfache Nullstelle ti(2) von h . Ein wiederholtes Anwenden dieses Arguments liefert folglich
(k) n + 1, n, n − 1, . . . Nullstellen t 1(k) , t 2(k) , . . . , t n+2−k von h (k) , k = 1, 2, 3, . . ., im (n+1)
Intervall I . Schließlich ergibt sich eine Nullstelle ξ = t1 p ∈ n gilt p (n+1) (x) ≡ 0, und wegen w(n+1) (t) =
d dt
von h (n+1) in I . Wegen
n+1
Abb. 17.2 Illustration des Satzes von Rolle
(t n+1 + . . .) = (n + 1)!
17.1 Lagrange-Interpolation
329
folgt hieraus 0 = h (n+1) (ξ ) = f (n+1) (ξ ) −
(n + 1)!
f (x) − p(x) . w(x)
Diese Gleichung ist äquivalent zum gesuchten Ausdruck (17.5).
Bemerkung 17.6 Wegen |w(x)| ≤ (b − a)n+1 für x ∈ [a, b], impliziert die Darstellung (17.5) des Approximationsfehlers sofort die globale Fehlerschranke f − pC([a,b]) ≤
(b − a)n+1 f (n+1) , C([a,b]) (n + 1)!
wobei die C([a, b])-Norm definiert ist gemäß (n+1) f
C([a,b])
:= max f (n+1) (x). x∈[a,b]
Die verwendete Abschätzung für das Knotenpolynom ist aber je nach Stützstellenwahl sehr grob. Abhängig von der speziellen Lage der Stützstellen ist eine verbesserte Fehlerabschätzung möglich. Als Verfahren der numerischen Approximation ist die Polynominterpolation nur mit großer Vorsicht anwendbar, da starke Oszillationen auftreten können, wenn der Term maxx∈[a,b] | f (n+1) (x)|/(n + 1)! für n → ∞ nicht beschränkt bleibt. Wenn nichts genaueres über die zu approximierende Funktion bekannt ist, sollte deshalb als Faustregel der Grad des Interpolationspolynoms 6 nicht übersteigen. Beispiel 17.7 (Runge) Die Folge von Interpolationspolynomen pn ∈ 2n , welche die Funktion 1 f (x) = ∈ C ∞ ([−1, 1]) 1 + 25x 2 in den äquidistanten Stützstellen xi = ±i/n, i ∈ {0, 1, . . . , n}, interpolieren, konvergiert auf dem Intervall [−1, 1] nicht punktweise gegen f . Dies hat Carl Runge im Jahr 1901 in [Run01] nachgewiesen. Eine Visualisierung der Interpolationspolynome in den Fällen n = 4 und n = 8 ist in Abb. 17.3 zu finden. Speziell beobachtet man, dass die Funktion f korrekt interpoliert wird, das Interpolationspolynom aber
330
17
Polynominterpolation
Abb. 17.3 Runge-Funktion und Interpolationspolynome vom Grad 8 (gestrichelt) und vom Grad 16 (gepunktet) zu äquidistanten Stützstellen
an den Intervallenden stark von der Funktion abweicht. Dieses Verhalten wird als Runge-Phänomen bezeichnet. Bemerkung 17.8 Bei der Hermite-Interpolation werden einzelne Stützstellen mehrfach zugelassen. Bei ki -maligem Auftreten der Stützstelle xi müssen dann neben dem Funktionswert yi an der Stelle x = xi auch die ersten ki − 1 Ableitungen p(xi ) = yi , p (xi ) = yi , . . . , p (ki −1) (xi ) = yi(ki −1) vorgegeben werden. Die zugehörige Interpolationsaufgabe ist ebenfalls eindeutig lösbar und die Darstellung des Approximationsfehlers aus Satz 17.5 bleibt auch in diesem Fall gültig. Der Beweis ist als Übungsaufgabe 17.3 durchzuführen.
17.2
Neville-Schema
Die Bestimmung des Interpolationspolynoms mit Hilfe der Lagrange-Polynome ist numerisch instabil und teuer. Will man das Interpolationspolynom nur an einigen wenigen Stellen auswerten, so bietet sich das Neville-Schema an. Um dieses herzuleiten, bezeichne pi,i+1,...,i+ j (x) für 0 ≤ i ≤ i + j ≤ n dasjenige Polynom vom Grad j, welches bezüglich der n + 1 Interpolationspunkte (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) die Interpolationsaufgabe pi,i+1,...,i+ j (xk ) = yk , k ∈ {i, i + 1, . . . , i + j} erfüllt. Dieses Polynom ist gemäß Satz 17.3 eindeutig bestimmt.
17.2 Neville-Schema
331
Satz 17.9 Für 0 ≤ i ≤ n seien die Interpolationspolynome pi ∈ 0 gegeben durch pi (x) = yi . Dann genügen die Interpolationspolynome pi,i+1,...,i+ j ∈ j für 0 ≤ i ≤ i + j ≤ n und j > 0 der Rekursionsformel pi,i+1,...,i+ j (x) =
(x − xi ) pi+1,i+2,...,i+ j (x) − (x − xi+ j ) pi,i+1,...,i+ j−1 (x) . xi+ j − xi (17.6)
Beweis Wir führen den Beweis mittels vollständiger Induktion über j. Für j = 0 ist die Aussage für alle i wegen pi ∈ 0 und pi (xi ) = yi offensichtlich korrekt. Um den Induktionsschritt j − 1 → j zu vollziehen, bezeichnen wir mit q(x) die rechte Seite von (17.6) und zeigen q(x) ≡ pi,i+1,...,i+ j (x). Weil pi+1,i+2,...,i+ j (x) und pi,i+1,...,i+ j−1 (x) Polynome vom Grad j − 1 sind, ist q(x) ein Polynom vom Grad j. Weiter gilt 0 − (xi − xi+ j ) pi,i+1,...,i+ j−1 (xi ) 0 − (xi − xi+ j )yi = = yi , xi+ j − xi xi+ j − xi (xi+ j − xi ) pi+1,i+2,...,i+ j (xi+ j ) − 0 (xi+ j − xi )yi+ j − 0 q(xi+ j ) = = = yi+ j . xi+ j − xi xi+ j − xi q(xi ) =
Darüber hinaus ergibt sich für k ∈ {i + 1, i + 2, . . . , i + j − 1} in Anbetracht der Induktionsannahme, dass (xk − xi ) pi+1,i+2,...,i+ j (xk ) − (xk − xi+ j ) pi,i+1,...,i+ j−1 (xk ) xi+ j − xi (xk − xi )yk − (xk − xi+ j )yk −xi yk + xi+ j yk = = = yk . xi+ j − xi xi+ j − xi
q(xk ) =
Aufgrund der eindeutigen Lösbarkeit der Interpolationsaufgabe müssen daher die Polynome q(x) und pi,i+1,...,i+ j (x) identisch sein. Die Abhängigkeiten, welche sich für die Polynome pi,i+1,...,i+ j (x) aus der Rekursionsformel (17.6) ergeben, lassen sich mit Hilfe des Neville-Schemas in Abb. 17.4 visualisieren. Die entsprechenden Einträge können spaltenweise jeweils von oben nach unten berechnet werden. Weil das Interpolationspolynom nicht explizit aufgestellt wird, ist des Neville-Schema allerdings nur zweckmäßig zur Auswertung des Interpolationspolynoms an wenigen Stellen x. Wie man leicht nachrechnet, fallen bei jeder Auswertung 3n 2 /2 + O(n) Multiplikationen an.
332
17
Polynominterpolation
Abb. 17.4 Das Neville-Schema
Beispiel 17.10 Gegeben seien die Interpolationspunkte (0, 1), (1, 4) und (3, 2). Für x = 2 ergibt die Auswertung des zugehörigen Interpolationspolynoms gemäß dem Neville-Schema: p0 (2) = y0 = 1 p1 (2) = y1 = 4
p0,1 (2) =
(2−0)·4−(2−1)·1 1−0
=7
p2 (2) = y2 = 2
p1,2 (2) =
(2−1)·2−(2−3)·4 3−1
=3
17.3
p0,1,2 (2) =
(2−0)·3−(2−3)·7 3−0
=
13 3
Newtonsche Interpolationsformel
Wir wollen nun ein Verfahren kennenlernen, bei dem das Interpolationspolynom explizit berechnet wird. Dies ist immer dann sinnvoll, wenn viele Auswertungen des Interpolationspolynoms benötigt werden. Definition 17.11 Zu n + 1 paarweise verschiedenen Stützstellen x0 , x1 , . . . , xn ∈ R sind die n + 1 Newton-Polynome definiert gemäß N0 (x) := 1,
Ni (x) := (x − xi−1 )Ni−1 (x), 1 ≤ i ≤ n.
(17.7)
Offensichtlich gilt Ni (x) = (x − xi−1 )(x − xi−2 ) · · · (x − x0 ). Das Polynom Ni (x) stimmt also mit dem Knotenpolynom zu den Stützstellen x0 , x1 , . . . , xi−1 überein. Insbesondere ist Ni (x) also ein Polynom vom Grad i. Folglich sind die Newton-Polynome Ni (x) für alle i ∈ {0, 1, . . . , n} linear unabhängig
17.3 Newtonsche Interpolationsformel
333
und bilden somit eine Basis von n . Speziell lässt sich das gesuchte Interpolationspolynom p ∈ n als Linearkombination der Newton-Polynome darstellen p(x) =
n
ai Ni (x)
(17.8)
i=0
für noch zu bestimmende Koeffizienten ai ∈ R. Eine Illustration der NewtonPolynome befindet sich in Abb. 17.5. Die Darstellung (17.8) heißt die Newtonsche Darstellung des Interpolationspolynoms. Benutzt man die rekursive Struktur der Newton-Polynome,
ai Ni (ξ )+ai−1 Ni−1 (ξ ) = ai (ξ − xi−1 )+ai−1 Ni−1 (ξ ) für alle i ∈ {1, 2, . . . , n}, so sieht man leicht ein, dass sich das Interpolationspolynom p(x) für jedes x = ξ effizient mit dem Horner-Schema auswerten lässt:
p(ξ ) =
···
an (ξ − xn−1 ) + an−1 (ξ − xn−2 ) + an−2 (ξ − xn−3 ) + . . . + a1 (ξ − x0 ) + a0 .
Die Auswertung wird von links nach rechts durchgeführt. Damit erhalten wir den nachfolgenden Algorithmus.
Abb. 17.5 Die ersten fünf Newton-Polynome auf [−1, 1]
334
17
Polynominterpolation
Algorithmus 17.12 (Horner-Schema) n n input: Koeffizienten {ai }i=0 und Stützstellen {xi }i=0 der Newton-Darstellung des Interpolationspolynoms, Auswertungspunkt ξ ∈ R output: Funktionsauswertung y = p(ξ ) des Interpolationspolynoms ➀ Initialisierung: y := an ➁ für i = n − 1, n − 2, . . . , 0 datiere auf y := y · (ξ − xi ) + ai Durch Abzählen bestätigt man, dass bei jeder Auswertung des Interpolationspolynoms nur 3n Operationen benötigt werden. Das ist wesentlich weniger als beim Neville-Schema, welches quadratischen Aufwand besitzt. Allerdings müssen wir das Interpolationspolynom in der Newton-Darstellung (17.8) zunächst noch berechnen. Weil Ni (x j ) = 0 für alle j < i ist, können die Koeffizienten ai ∈ R sukzessive aus den Interpolationsbedingungen gewonnen werden: y0 = p(x0 ) = a0 N0 (x0 ), y1 = p(x1 ) = a0 N0 (x1 ) + a1 N1 (x1 ), y2 = p(x2 ) = a0 N0 (x2 ) + a1 N1 (x2 ) + a2 N2 (x2 ), .. . Bei einer naiven Berechnung fallen allerdings n 3 /6 + O(n 2 ) Multiplikationen an. Mit Hilfe dividierter Differenzen lässt sich der Aufwand zur Berechnung der Koeffizienten auf O(n 2 ) Operationen reduzieren. Definition 17.13 Zu gegebenen Interpolationspunkten (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) sind die dividierten Differenzen erklärt gemäß f [xi ] := yi , 0 ≤ i ≤ n, f [xi , xi+1 , . . . , xi+ j ] :=
f [xi+1 , xi+2 , . . . , xi+ j ] − f [xi , xi+1 , . . . , xi+ j−1 ] , xi+ j − xi 0 ≤ i < i + j ≤ n. (17.9)
17.3 Newtonsche Interpolationsformel
335
Abb. 17.6 Das Newton-Schema
Für die Berechnung aller dividierten Differenzen zu den Interpolationspunkten (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) sind lediglich n(n + 1)/2 Multiplikationen erforderlich. Die Abhängigkeiten zwischen den dividierten Differenzen sind im Newton-Schema dargestellt, welches sich in Abb. 17.6 befindet. Satz 17.14 (Newtonsche Interpolationsformel) Seien N0 , N1 , . . . , Nn die Newton-Polynome zu den n + 1 paarweise verschiedenen Stützstellen x0 , x1 , . . . , xn . Dann gilt für das Interpolationspolynom p ∈ n zu den Interpolationspunkten (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) die Darstellung p(x) = f [x0 ]N0 (x) + f [x0 , x1 ]N1 (x) + . . . + f [x0 , x1 , . . . , xn ]Nn (x). (17.10)
Beweis Sei p0,1,...,i (x) wie in Satz 17.9 das Polynom vom Grad i, welches die Interpolationspunkte (x0 , y0 ), (x1 , y1 ), . . . , (xi , yi ) interpoliert. Da das NewtonPolynom Ni genau den Grad i besitzt, gilt p0,1,...,i (x) = cNi (x) + q(x) für ein Polynom q ∈ i−1 und ein c ∈ R. Insbesondere folgt unmittelbar aus yj = p0,1,...,i (x j ) = c Ni (x j ) +q(x j ) für j ∈ {0, 1, . . . i − 1}, =0
dass q(x) und p0,1,...,i−1 (x) übereinstimmen. Die Behauptung des Satzes ergibt sich demnach, wenn wir zeigen können, dass c = f [x0 , x1 , . . . , xi ] gilt. Da c offensichtlich der Leitkoeffizient von p0,1,...,i (x) ist, müssen wir hierzu nur p0,1,...,i (x) = f [x0 , x1 , . . . , xi ]x i + . . .
336
17
Polynominterpolation
zeigen. Wir führen den Beweis dieser Aussage mittels vollständiger Induktion über den Polynomgrad i. Weil sie im Fall i = 0 klar ist, wollen wir annehmen, dass die Aussage für i − 1 gilt. Für die Interpolationspolynome p0,1,...,i−1 , p1,2,...,i ∈ i−1 folgt dann aus der Induktionsannahme p0,1,...,i−1 (x) = f [x0 , x1 , . . . , xi−1 ]x i−1 + . . . , p1,2,...,i (x) = f [x1 , x2 , . . . , xi ]x i−1 + . . . . Der Induktionsschritt ergibt sich nun aus Satz 17.9 gemäß p0,1,...,i (x) =
(x − x0 ) p1,2,...,i (x) − (x − xi ) p0,1,...,i−1 (x) xi − x0
(x − x0 )( f [x1 , . . . , xi ]x i−1 + . . .) − (x − xi )( f [x0 , . . . , xi−1 ]x i−1 + . . .) xi − x0 f [x1 , x2 , . . . , xi ] − f [x0 , x1 , . . . , xi−1 ] i = x + ... xi − x0 =
= f [x0 , x1 , . . . , xi ]x i + . . . .
Beispiel 17.15 Zu den Stützstellen aus Beispiel 17.10 wollen wir das entsprechende Interpolationspolynom in der Newtonschen Darstellung bestimmen. Mit dem Newton-Schema erhalten wir
Damit ergibt sich schließlich das Interpolationspolynom 4 p(x) = 1 + 3x − x(x − 1). 3
17.4 Tschebyscheff-Interpolation
337
Ein Vorteil der Newtonschen Darstellung des Interpolationspolynoms zu den Interpolationspunkten (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) ist, dass sich problemlos eine weitere Stützstelle (xn+1 , yn+1 ) hinzufügen lässt. Denn in der Darstellung p(x) =
n+1
f [x0 , x1 , . . . , xi ]Ni (x)
i=0
sind die ersten n + 1 Koeffizienten bereits bekannt, während sich der letzte Koeffizient f [x0 , x1 , . . . , xn+1 ] einfach durch Hinzufügen einer neuen Zeile am Ende des Newton-Schemas ergibt. Bei einer Implementierung des Newton-Schemas als Auf-dem-Platz-Algorithmus fügt man die neue Stützstelle hingegen ganz oben im Newton-Schema ein und berechnet einfach alle Koeffizienten neu – der Aufwand ist derselbe.
17.4
Tschebyscheff-Interpolation
Die Darstellung (17.5) des Interpolationsfehlers führt auf die Fehlerabschätzung f − pC([a,b]) ≤
wC([a,b]) f (n+1) . C([a,b]) (n + 1)!
(17.11)
Der einzige Stellhebel für die Genauigkeit der Interpolation ist somit das Knotenpolynom w(x). Dessen Norm hängt von der Wahl der Stützstellen ab. Nachfolgend wollen wir herausfinden, wie die bestmögliche Wahl der Stützstellen aussieht. Wir suchen also Stützstellen a ≤ x0 < x1 < . . . < xn ≤ b, so dass der Ausdruck wC([a,b]) = max
x∈[a,b]
n
|x − xi |
i=0
minimal wird. Zur Beantwortung dieser Fragestellung, untersuchen wir die Tschebyscheff-Polynome Tn (x) = cos(n arccos x), n ∈ N,
(17.12)
welche in Beispiel 10.18 eingeführt wurden. Sie haben eine Reihe von Optimalitätseigenschaften, die sie für viele Anwendungen in der Numerik interessant machen. Die für unseren Zweck benötigte Eigenschaft ist in folgendem Satz formuliert:
338
17
Polynominterpolation
Satz 17.16 Unter allen monischen Polynomen pn (x) = x n + . . . minimiert 21−n Tn die Maximumsnorm pn C([−1,1]) über [−1, 1].
Beweis Sei qn := 21−n Tn und pn ein weiteres monisches Polynom vom Grad n. Dann hat pn − qn höchstens den Grad n − 1. Wir nehmen nun an, dass gilt pn C([−1,1]) < 21−n = qn C([−1,1]) . Da qn nach (17.12) an den n + 1 Stellen xk = cos(kπ/n), 0 ≤ k ≤ n, alternierend die Extremalwerte ±21−n annimmt, hat pn − qn mindestens n Vorzeichenwechsel, also n Nullstellen. Da der Grad des Polynoms pn − qn jedoch kleiner oder gleich n − 1 ist, muss daher ( pn − qn )(x) ≡ 0 gelten im Widerspruch zur gemachten Annahme. Satz 17.16 besagt, dass das Polynom 2−n Tn+1 auf dem Intervall [−1, 1] das optimale Knotenpolynom für n + 1 Stützstellen darstellt. Folglich müssen die Stützstellen als Nullstellen dieses Polynoms gewählt werden. Diese sind gegeben durch xk = cos
2k + 1 π , k ∈ {0, 1, . . . , n}. 2n + 2
Wie man in Abb. 17.7 erkennt, entstehen die Stützstellen durch eine Projektion von äquidistant auf dem Einheitskreis verteilten Punkten auf die reelle Achse. Speziell liegen sie am Rand des Intervalls [−1, 1] viel dichter als in dessen Inneren. Basierend auf unseren Überlegungen können wir nun mit Hilfe einer affine Transformation eine Fehlerabschätzung für die Interpolation auf beliebigen Intervallen angeben.
Abb. 17.7 Die Stützstellen für die Tschebyscheff-Interpolation entstehen durch die Projektion von äquidistant auf dem Einheitskreis verteilten Punkten
Übungsaufgaben
339
Korollar 17.17 Sei f ∈ C n+1 ([a, b]). Löst p ∈ n die Interpolationsaufgabe (17.1) in den Tschebyscheff-Stützstellen a+b b−a 2k + 1 + cos π , k ∈ {0, 1, . . . , n}, xk = 2 2 2n + 2 so gilt die Fehlerabschätzung max | f (x) − p(x)| ≤
x∈[a,b]
(b − a)n+1 f (n+1) C([a,b]) . 22n+1 (n + 1)!
Beweis Das Intervall [a, b] wird durch die affine Transformation x → (2x − b − a)/(b − a) auf das Intervall [−1, 1] abgebildet. Wie man leicht überprüft, sind die ausgewählten Stützstellen gerade die Nullstellen des transformierten Tschebyscheff
Polynoms Tn+1 (2x − b − a)/(b − a) . Aufgrund von 2−n Tn+1
2x − b − a b−a
=
2x b−a
n+1 + ...
gilt für das Knotenpolynom w(x) =
n j=0
(x − x j ) =
b−a 2
n+1
2−n Tn+1
2x − b − a . b−a
Hieraus folgt wC([a,b])
2x − b − a (b − a)n+1 (b − a)n+1 = max Tn+1 = 22n+1 . 22n+1 x∈[a,b] b−a =1
Dies eingesetzt in (17.11) zeigt, dass das Interpolationspolynom p ∈ n der gewünschten Fehlerabschätzung genügt.
Übungsaufgaben Aufgabe 17.1 (Lagrange-Interpolation) Betrachten Sie die Funktion f (x) =
3 . 3 + 2x
340
17
Polynominterpolation
Bestimmen Sie das Interpolationspolynom p(x) in Lagrange-Darstellung bezüglich der Stützstellen [x0 , x1 , x2 , x3 ] = [−1, −0.5, 0.5, 1] und zeigen Sie die Fehlerabschätzung max | f (x) − p(x)| ≤ 12.
x∈[−1,1]
Aufgabe 17.2 (Eigenschaften der Lagrange-Polynome) Gegeben seien n + 1 beliebige Stützstellen x0 < x1 < . . . < xn , und es seien L 0 , L 1 , . . . , L n die zugehörigen Lagrange-Polynome sowie w(x) das Knotenpolynom. Zeigen Sie für alle x ∈ R, dass a) L i (x) =
w(x) , (x − xi )w (xi )
b) n
L i (x) = 1.
i=0
Aufgabe 17.3 (Hermite-Interpolation) Gegeben seien die n + 1 Stützstellen x0 < x1 < . . . < xn und seien ki ≥ 1 für alle i ∈ {0, 1, . . . , n}. Beweisen Sie im Fall der Hermite-Interpolation die Aussage von Satz 17.5. Zeigen Sie also die Fehlerabschätzung f (x) − p(x) =
f (K ) (ξ ) w(x), K!
K :=
n
ki ,
i=0
im Fall des Polynoms p ∈ K −1 , welches den Interpolationsbedingungen (ki −1)
p(xi ) = yi , p (xi ) = yi , . . . , p (ki −1) (xi ) = yi
für alle i ∈ {0, 1, . . . , n}
genügt. Das Knotenpolynom w(x) lautet hierbei w(x) =
n
(x − x j )ki ∈ K .
j=0
Aufgabe 17.4 (Newton-Interpolation) Gegeben seien die drei Stützstellen i 0 1 2 xi −2 1 3 yi 1 1 −2
Übungsaufgaben
341
a) Berechnen Sie das zugehörige Interpolationspolynom p(x) unter Verwendung des Newton-Schemas. b) Fügen Sie den obigen Interpolationspunkten noch (0,0) hinzu und berechnen Sie das Interpolationspolynom q(x). c) Werten Sie q(x) mittels des Horner-Schemas an der Stelle x = −1 aus. Aufgabe 17.5 (Hermite-Interpolation und Newton-Schema) Wir wollen die Hermite-Interpolation einer Funktion f in den n + 1 doppelten Stützstellen z 0 < z 1 < . . . < z n bestimmen. Die 2n + 2 Hermite-Interpolationsbedingungen sind dann durch die Funktionswerte von f und deren Ableitung f in den Stützstellen gegeben. Gesucht ist also ein Polynom p vom Grad 2n + 1, so dass gilt p(z i ) = f (z i ) und p (z i ) = f (z i ) für alle i ∈ {0, 1, . . . , n}. Durch eine kleine Modifikation der dividierten Differenzen lässt sich die HermiteInterpolationsaufgabe durch das Newton-Interpolationspolynom lösen. Dazu definieren wir für k ∈ {0, 1, . . . , n} die 2n + 2 Stützstellen x2k := x2k+1 := z k und die ersten zwei dividierten Differenzen neu (die Differenzen höherer Ordnung bleiben unverändert) gemäß f [x2k ] := f [x2k+1 ] := f (z k ) und f [xi , xi+1 ] :=
f [x
i+1 ]− f [xi ] , xi+1 −xi
f (x
i ),
falls xi < xi+1 , falls xi = xi+1 ,
i ∈ {0, 1, . . . , 2n}.
Bestimmen Sie mit Hilfe des Newton-Schemas das Newton-Interpolationspolynom, das durch die Hermite-Interpolationsaufgabe p(0) = −1, p (0) = 1, p(2) = 0 und p (2) = 6 gegeben ist. Verifizieren Sie, dass p die Interpolationsaufgabe auch tatsächlich erfüllt. Aufgabe 17.6 (vollständiges Horner-Schema) Wir wollen für ein Polynom p(x) = a0 +a1 x +. . .+an x n vom Grad n die Werte p (k) (ξ ) für k ∈ {0, 1, . . . , n} bestimmen. Unser Ziel ist es, das Auswerten von Potenzen vermeiden. Für k = 0 geschieht dies bekanntlich mit dem Horner-Schema
p(ξ ) = a0 + ξ a1 + ξ(a2 + . . . + ξ an ) · · · . Nun setzen wir an = an und rekursiv a = a + ξ a+1 für = n − 1, n − 2, . . . , 0.
342
17
Polynominterpolation
Zeigen Sie, dass dann gilt p(x) = a0 + (x − ξ )(a1 + a2 x + . . . + an x n−1 ) und p (ξ ) = a1 + a2 ξ + . . . + an ξ n−1 . Wiederholt man diesen Algorithmus und setzt für = n − 1, n − 2, . . . , 1, an = an und rekursiv a = a + ξ a+1
so erhält man p(x) = a0 + (x − ξ )a1 + (x − ξ )2 (a2 + a3 x + . . . + an x n−2 ). Zeigen Sie, dass der Algorithmus nach n-maliger Wiederholung die Umentwicklung von p um die Stelle ξ p(x) = a0 + a1 (x − ξ ) + a2 (x − ξ )2 + . . . + an(n+1) (x − ξ )n liefert. Folgern Sie abschließend, dass dann p (k) (ξ )/k! = ak(k+1) gilt für k ∈ {0, 1, . . . , n}. Wie teuer ist dieses vollständige Horner-Schema?
18
Trigonometrische Interpolation
18.1
Theoretische Grundlagen
In diesem Abschnitt befassen wir uns mit der trigonometrischen Interpolation zur Approximation 2π -periodischer Funktionen. Hierbei handelt es sich um Funktionen, für die gilt f (x) = f (x + 2π k) für alle x ∈ [0, 2π ) und k ∈ Z. Vorgelegt seien die n Interpolationspunkte (x0 , y0 ), (x1 , y1 ), . . . , (xn−1 , yn−1 ), wobei wir annehmen wollen, dass die Stützstellen x0 , x1 , . . . , xn−1 äquidistant verteilt sind, das heißt 2π k , k ∈ {0, 1, . . . , n − 1}. (18.1) n Anstelle polynomialer Basisfunktionen verwendet man zur Interpolation periodischer Funktionen geeignete Linearkombinationen der trigonometrischen Funktionen cos(kx) und sin(kx), denn diese besitzen für ganzzahliges k ebenfalls die Periode 2π . Speziell unterscheidet sich der Ansatz, je nachdem ob n gerade oder ungerade ist: xk =
q(x) = q(x) =
m a0 a cos(x) + b sin(x) , + 2
a0 + 2
=1 m−1 =1
am a cos(x) + b sin(x) + cos(mx), 2
falls n = 2 m + 1, falls n = 2 m.
(18.2) Man stellt also die 2π -periodische Funktion f bezüglich der ersten n Frequenzen dar. In Abb. 18.1 findet man eine Illustration der trigonometrischen Interpolationspolynome im Fall einer Zick-Zack-Funktion.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_18
343
344
18 Trigonometrische Interpolation
Abb. 18.1 Trigonometrische Interpolante (gestrichelte Linie) der 2π -periodischen Fortsetzung der Funktion f (x) = |x − π | (durchgezogene Linie) in n = 4 (links) und n = 8 (rechts) äquidistanten Stützstellen auf [0, 2π )
Die Motivation der Darstellungen in (18.2) wird sofort klar, wenn man die zuge√ hörige komplexwertige Interpolationsaufgabe betrachtet. Dazu bezeichne i := −1 die imaginäre Einheit. Definition 18.1 Zu den n äquidistanten Stützstellen aus (18.1) seien die Interpolationspunkte (x0 , y0 ), (x1 , y1 ), . . . , (xn−1 , yn−1 ) gegeben. Die trigonometrische Interpolationsaufgabe lautet dann: Bestimme ein trigonometrisches Polynom vom Grad n − 1 p(x) = β0 + β1 eix + β2 e2ix + . . . + βn−1 e(n−1)ix
(18.3)
mit !
p(xk ) = yk für alle k ∈ {0, 1, . . . , n − 1}.
(18.4)
Dass (18.3) äquivalent zu den Ausdrücken aus (18.2) ist, ergibt sich nun aus der Moivreschen Formel eix = cos(x) + i sin(x) und der Definition der Stützstellen xk . Es gilt e−ixk = e−2πik/n = e2πi(n−)k/n = ei(n−)xk , so dass cos(xk ) =
eixk + ei(n−)xk eixk − ei(n−)xk , sin(xk ) = . 2 2i
(18.5)
18.1 Theoretische Grundlagen
345
Durch Einsetzen von (18.5) in (18.2) für x = xk und Umordnen der Summanden nach Potenzen von eixk , ergibt sich für n = 2m + 1 der Zusammenhang β0 =
a0 , 2
βk =
ak − ibk , 2
βn−k =
ak + ibk , 2
k ∈ {1, 2, . . . , m}, (18.6)
a0 = 2β0 , a = β + βn− , b = i(β − βn− ), ∈ {1, 2, . . . , m}, und für n = 2m der Zusammenhang a0 ak − ibk ak + ibk am , βk = , βn−k = , k ∈ {1, 2, . . . , m − 1}, βm = , 2 2 2 2 a0 = 2β0 , a = β + βn− , b = i(β − βn− ), ∈ {1, 2, . . . , m − 1}, am = 2βm .
β0 =
(18.7)
Aus der Herleitung sieht man, dass p(xk ) = q(xk ) für alle k ∈ {0, 1, . . . , n − 1} gilt, jedoch gilt im Allgemeinen nicht p(x) = q(x) für x = xk . Damit sind p und q nur in dem Sinn äquivalent, dass die Koeffizienten der Darstellung (18.3) sofort aus den Koeffizienten der Darstellung (18.2) berechnet werden können und umgekehrt. Ein Vorteil der Darstellung (18.3) ist, dass wir aus ihr unmittelbar die eindeutige Lösbarkeit der trigonometrischen Interpolationsaufgabe erhalten. Satz 18.2 Zu beliebigen Werten yk ∈ C mit k ∈ {0, 1, . . . , n −1} gibt es genau ein trigonometrisches Polynom, das die Interpolationsaufgabe (18.4) löst.
Beweis Substituieren wir ω := eix und ωk := eixk in (18.3), so stellen wir fest, dass die Interpolationsaufgabe (18.4) äquivalent ist zu: suche p(ω) =
n−1
β ω ∈ n−1
=0
mit p(ωk ) = yk für alle k ∈ {0, 1, . . . , n − 1}. Diese Aufgabe ist gemäß Satz 17.3 eindeutig lösbar, weil er in dieser Form offenbar auch im Komplexen gilt. Die Koeffizienten β können sehr einfach berechnet werden. Eine wesentliche Rolle spielt dabei die n-te komplexe Einheitswurzel ωn := e2πi/n . Bezeichnen wir wie üblich die zu z = a + ib ∈ C komplex konjugierte Zahl als z = a − ib, so erhalten wir die Rechenregeln ωnk = e2πik/n = e−2πik/n = ωn−k
(18.8)
346
18 Trigonometrische Interpolation
sowie ωnk ωn = e2πik/n e2πi/n = e2πi(k+)/n = ωnk+ .
(18.9)
Mit Hilfe dieser Rechenregeln können wir folgendes Lemma nachweisen, wobei a := a der zum Vektor a ∈ Cn adjungierte Vektor beziehungsweise A := A die zur Matrix A ∈ Cn×n adjungierte Matrix seien. Lemma 18.3 Die Vektoren ⎡ ⎢ ⎢ ⎢ ω := ⎢ ⎢ ⎣
ωn0 ωnk ωn2k .. .
k
⎤
ωn(n−1)k
⎥ ⎥ ⎥ ⎥ , k ∈ {0, 1, . . . , n − 1}, ⎥ ⎦
(18.10)
bilden eine Orthogonalbasis des Cn mit n, falls k = , (ω ) ωk = 0, falls k = .
(18.11)
Beweis Der Beweis erfolgt durch Nachrechnen. Für beliebiges 0 ≤ k, < n gilt wegen (18.8) und (18.9) (ω ) ωk =
n−1
j
jk
ωn ωn =
n−1
j=0
− j
ωn
jk
ωn =
j=0
n−1
j(k−)
ωn
.
j=0
Damit ergibt sich im Falle k = , dass k
(ω ) ω =
n−1
ωn0
=
j=0
n−1
1 = n.
j=0
Ist k = , so folgt mit der Summenformel für die geometrische Reihe (ω ) ωk =
n−1
j(k−)
ωn
j=0
=
=
n−1
e2πi j(k−)/n
j=0
1−1 −1 = 2πi(k−)/n = 0. e2πi(k−)/n − 1 e −1
e2πin(k−)/n
18.1 Theoretische Grundlagen
347
Mit Hilfe dieses Lemmas können wir nun die Koeffizienten β des trigonometrischen Polynoms (18.3) ausrechnen. Hierzu setzen wir ⎡
ωn0 ωn0 ωn0 0 1 ⎢ωn ωn ωn2 ⎢ 0
0 1 2 2 ⎢ ωn4 Tn := ω , ω , ω , . . . , ωn−1 = ⎢ωn ωn ⎢ .. .. .. ⎣ . . . 2(n−1) ωn0 ωnn−1 ωn sowie
⎡ ⎢ ⎢ y= ⎢ ⎣
⎤
y0 y1 .. .
⎡
⎥ ⎢ ⎥ ⎢ ⎥, β = ⎢ ⎦ ⎣
β0 β1 .. .
··· ··· ··· .. .
ωn0 ωnn−1 ωn2(n−1) .. .
⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
(18.12)
· · · ωn(n−1)(n−1)
⎤ ⎥ ⎥ ⎥. ⎦
βn−1
yn−1
Damit resultiert die Interpolationsaufgabe (18.3) in dem linearen Gleichungssystem Tn β = y.
(18.13)
T n Tn = n I,
(18.14)
1 T , n n
(18.15)
Nun bedeutet Lemma 18.3, dass
also insbesondere Tn−1 = und wir schließen daher 1 T y. n n Wir haben soeben den folgenden Satz bewiesen. β=
Satz 18.4 Das trigonometrische Polynom (18.3) erfüllt die Interpolationsbedingung (18.4) genau dann, wenn β =
n−1 n−1 1 1 −2πi j/n − j y j ωn = yj e , ∈ {0, 1, . . . , n − 1}. n n j=0
j=0
348
18 Trigonometrische Interpolation
Bemerkung 18.5 Aufgrund von Tn = V(ωn0 , . . . , ωnn−1 ) fällt Tn gerade mit der Vandermonde-Matrix (17.4) bezüglich der komplexen Einheitswurzeln zusammen. Aus (18.14) folgt sofort, dass cond2 (Tn ) = 1 ist. Deshalb ist das lineare Gleichungssystem (18.13) im Unterschied zur Polynominterpolation gut konditioniert. Insbesondere ist die Inverse von Tn gemäß (18.15) explizit bekannt, so dass der Aufwand zu dessen Lösung lediglich O(n 2 ) ist. Abschließend stellen wir nun noch den Zusammenhang zu den trigonometrischen Ausdrücken (18.2) her. Satz 18.6 Die trigonometrischen Ausdrücke (18.2) lösen die Interpolationsaufgabe q(xk ) = yk für k ∈ {0, 1, 2, . . . , n − 1} genau dann, wenn die zugehörigen Koeffizienten den Gleichungen n−1 n−1 2 2 2πj , a = yj cos( j x ) = yj cos n n n b =
2 n
j=0
j=0
n−1
n−1
yj sin( j x ) =
j=0
2 n
yj sin
j=0
2πj n
genügen.
Beweis Aufgrund der Umrechnungsformeln (18.6) und (18.7) können wir das Resultat von Satz 18.4 sofort auf die Koeffizienten a , b ∈ R des reellen trigonometrischen Polynoms q(x) aus (18.2) übersetzen. Für den Koeffizienten a0 gilt a0 = 2β0 =
n−1 n−1 2 2 − j0 y j ωn = yj cos( j x0 ). n n j=0
j=0
Verwenden wir die Identität βn/2 = βn−n/2 falls n gerade ist, so folgt für alle anderen Koeffizienten a a = β + βn− =
n−1 n−1 1 −2πi j/n 1 − j j(−n) = y j ω n + ωn yj e + e2πi j(−n)/n n n j=0
=
2 n
n−1 j=0
yj
e−2πi j/n + e2πi j/n 2 = 2 n
j=0
n−1 j=0
yj cos( j x ).
18.2 Schnelle Fourier-Transformation
349
Ganz ähnlich ergibt sich die Behauptung auch im Fall der Koeffizienten b : b = i(β − βn− ) =
n−1 i − j j(−n) y j ω n − ωn n j=0
=
n−1 i −2πi j/n yj e − e2πi j(−n)/n n j=0
=−
n−1 n−1 2 e−2πi j/n − e2πi j/n 2 yj yj sin( j x ). = n 2i n j=0
j=0
18.2
Schnelle Fourier-Transformation
Den linearen Abbildungen Tn und Tn kommt in der digitalen Signalverarbeitung eine besondere Bedeutung zu. Wir wollen diese Abbildungen daher nun formal einführen. Definition 18.7 Die Abbildung y → β =
1 T y n n
wird diskrete Fourier-Transformation genannt. Ihre Umkehrung β → y = Tn β heißt Fourier-Synthese. Weil die Matrix Tn gemäß (18.12) symmetrisch ist, folgt β=
1 1 1 Tn y = Tn y = Tn y. n n n
Daher ist die Fourier-Transformation mit Hilfe der Fourier-Synthese berechenbar, weshalb wir uns im Folgenden auf letztere beschränken können. Mathematisch entspricht die Fourier-Synthese der Auswertung eines trigonometrischen Polynoms p(x) an den Stellen xk = 2π k/n, denn es gilt yk = p(xk ) =
n−1 =0
β e2πik/n =
n−1 =0
β ωnk , k ∈ {0, 1, . . . , n − 1}.
350
18 Trigonometrische Interpolation
Bei einer naiven Anwendung von Tn auf einen Vektor werden n 2 Multiplikationen benötigt. Die schnelle Fourier-Transformation, oftmals nur als FFT für Fast Fourier Transform bezeichnet und im Jahr 1965 von James Cooley und John Tukey in [CT65] entwickelt, benötigt hingegen nur (n log2 n)/2 Multiplikationen. Anhand eines Beispiels wollen wir die Vorgehensweise bei der schnellen Fourier-Transformation motivieren. Beispiel 18.8 Im Fall n = 8 berechnet sich die Fourier-Synthese gemäß y = T8 β. Ausgeschrieben bedeutet dies ⎡
ω80 0 ⎡ ⎤ ⎢ ⎢ ω80 y0 ⎢ω 8 ⎢ y1 ⎥ ⎢ ω80 ⎢ ⎥ ⎢ ⎢ ⎢ .. ⎥ = ⎢ 0 ⎣ . ⎦ ⎢ ω8 ⎢ ω0 y7 ⎢ 8 ⎣ ω0 8 ω80
ω80 ω81 ω82 ω83 ω84 ω85 ω86 ω87
ω80 ω82 ω84 ω86 ω80 ω82 ω84 ω86
ω80 ω83 ω86 ω81 ω84 ω87 ω82 ω85
ω80 ω84 ω80 ω84 ω80 ω84 ω80 ω84
ω80 ω85 ω82 ω87 ω84 ω81 ω86 ω83
ω80 ω86 ω84 ω82 ω80 ω86 ω84 ω82
⎤ ω80 ω87 ⎥ ⎥⎡ ⎤ β0 ω86 ⎥ ⎥⎢ ⎥ β1 ⎥ ω85 ⎥ ⎥⎢ ⎢ .. ⎥ . 4 ⎥ ω8 ⎥ ⎣ . ⎦ ω83 ⎥ ⎥ β7 ω82 ⎦ ω81
Wir ordnen nun die rechte Seite nach geraden und ungeraden Indizes: ⎤ ⎡ 0 ω8 y0 ⎢ y1 ⎥ ⎢ ω80 ⎢ ⎥ ⎢ 0 ⎢ y2 ⎥ ⎢ ω8 ⎢ ⎥ ⎢ 0 ⎢ y3 ⎥ ⎢ ω ⎢ ⎥=⎢ 8 ⎢ y4 ⎥ ⎢ ω0 ⎢ ⎥ ⎢ 8 ⎢ y5 ⎥ ⎢ ω0 ⎢ ⎥ ⎢ 8 ⎣ y6 ⎦ ⎣ ω0 8 y7 ω80 ⎡
ω80 ω82 ω84 ω86 ω80 ω82 ω84 ω86
ω80 ω84 ω80 ω84 ω80 ω84 ω80 ω84
ω80 ω86 ω84 ω82 ω80 ω86 ω84 ω82
ω80 ω81 ω82 ω83 ω84 ω85 ω86 ω87
ω80 ω83 ω86 ω81 ω84 ω87 ω82 ω85
ω80 ω85 ω82 ω87 ω84 ω81 ω86 ω83
⎤⎡ ⎤ ω80 β0 ⎢ β2 ⎥ ω87 ⎥ ⎥⎢ ⎥ ⎢ ⎥ ω86 ⎥ ⎥ ⎢ β4 ⎥ 5 ⎥ ⎥ ω8 ⎥ ⎢ ⎢ β6 ⎥ . 4 ⎢ ⎥ ω 8 ⎥ ⎢ β1 ⎥ ⎥ ⎢ ⎥ ω83 ⎥ ⎥ ⎢ β3 ⎥ ω82 ⎦ ⎣ β5 ⎦ β7 ω81
Es ist ω84 = e−πi = −1 und ω82k = e−2πik/4 = ω4k . Mit D4 = diag(ω80 , ω81 , ω82 , ω83 ) können wir daher schreiben ⎡ ⎤ ⎡ ⎤ β0 y0 ⎢ β2 ⎥ ⎢ y1 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ y2 ⎥ ⎢ ⎥ ⎢ β4 ⎥ ⎢ ⎥ ⎢ y3 ⎥ ⎢ ⎥ = T4 D4 T4 ⎢ β6 ⎥ . ⎢ y4 ⎥ ⎥ T4 − D4 T4 ⎢ ⎢ β1 ⎥ ⎢ ⎥ ⎢ β3 ⎥ ⎢ y5 ⎥ ⎢ ⎥ ⎢ ⎥ ⎣ β5 ⎦ ⎣ y6 ⎦ y7 β7
18.2 Schnelle Fourier-Transformation
Setzen wir
351
⎡ ⎤ ⎡ ⎤ β0 β1 ⎢ β2 ⎥ ⎢ β3 ⎥ ⎥ ⎢ ⎥ c := T4 ⎢ ⎣β4 ⎦ , d := D4 T4 ⎣β5 ⎦ , β6 β7
so folgt
⎡ ⎤ y0 ⎢ y1 ⎥ ⎢ ⎥ = c+ d, ⎣ y2 ⎦ y3
⎡ ⎤ y4 ⎢ y5 ⎥ ⎢ ⎥ = c− d. ⎣ y6 ⎦ y7
Dies bedeutet, die Fourier-Synthese für n = 8 Unbekannte lässt sich aus zwei Fourier-Synthesen für n/2 = 4 Unbekannte zusammensetzen. Die Idee aus diesem Beispiel lässt sich verallgemeinern. Wir erhalten dann das folgende Ergebnis. Satz 18.9 Zu gegebenem β ∈ C2n seien ⎡ ⎢ ⎢ n−1 0 1 , ω2n , . . . , ω2n ), c = Tn ⎢ Dn = diag(ω2n ⎣
⎤
β0 β2 .. .
⎡
⎥ ⎢ ⎥ ⎢ ⎥ , d = Dn Tn ⎢ ⎦ ⎣
β2n−2
β1 β3 .. .
⎤ ⎥ ⎥ ⎥. ⎦
β2n−1
Dann gilt für y = T2n β ∈ C2n die Beziehung ⎡
y0 y1 .. .
⎢ ⎢ ⎢ ⎣
⎤
⎡
⎥ ⎥ ⎥ = c+ d, ⎦
⎢ yn+1 ⎥ ⎢ ⎥ ⎢ .. ⎥ = c− d. ⎣ . ⎦ y2n−1
yn−1
yn
⎤
Beweis Nachrechnen liefert für ∈ {0, 1, 2, . . . , n − 1} y =
n−1
β2k ωnk + ω2n
k=0
=
n−1 k=0
n−1 k=0
2k β2k ω2n +
n−1 k=0
β2k+1 ωnk =
n−1
2k β2k ω2n + ω2n
k=0 2n−1
(2k+1) β2k+1 ω2n =
k=0
n−1 k=0
k βk ω2n
2k β2k+1 ω2n
352
18 Trigonometrische Interpolation
und für ∈ {n, n + 1, . . . , 2n − 1} y = =
n−1 k=0 n−1
−n β2k ωnk − ω2n
β2k ωnk + ω2n
k=0
n−1
β2k+1 ωnk
k=0 n−1
2n−1
k=0
k=0
β2k+1 ωnk =
k βk ω2n .
Zur Berechnung von y = T2n β ∈ C2n werden demnach nur die Vektoren c, d ∈ Cn benötigt. Dies führt auf ein Teile-und-herrsche-Verfahren, indem die ursprüngliche Aufgabe für 2n Unbekannte durch geschicktes Unterteilen in zwei Probleme mit nur noch n Unbekannten zerlegt wird. Die vollständige schnelle Fourier-Synthese erhalten wir, wenn wir cund d rekursiv mit Hilfe desselben Algorithmus berechnen. Dazu seien j ∈ N und n = 2 j eine Zweierpotenz. Algorithmus 18.10 (schnelle Fourier-Synthese) input: Koeffizienten β ∈ Cn eines trigonometrischen Polynoms output: Funktionsauswertungen y ∈ Cn in den Stützstellen {2π k/n}n−1 k=0 ➀ falls n = 2, so brich die Rekursion ab mit 1 1 y := T2 β = β 1 −1 ➁ setze n := n/2 ➂ berechne
⎡ ⎢ ⎢ c := Tn ⎢ ⎣
β0 β2 .. .
⎤
⎡
⎥ ⎢ ⎥ ⎢ ⎥ , d := Tn ⎢ ⎦ ⎣
β2n−2 mit Algorithmus 18.10 ➃ für k = 0, 1, . . . , n − 1 multipliziere dk := eπik/n dk ➄ setze ⎤ ⎡ y0 ⎢ y1 ⎥ ⎥ ⎢ ⎢ .. ⎥ := c+ d, ⎣ . ⎦ yn−1
β1 β3 .. .
⎤ ⎥ ⎥ ⎥ ⎦
β2n−1
⎡
yn
⎤
⎢ yn+1 ⎥ ⎢ ⎥ ⎢ .. ⎥ := c− d. ⎣ . ⎦ y2n−1
18.3 Zirkulante Matrizen
353
Die schnelle Fourier-Transformation ist einer der bedeutendsten Algorithmen des 20. Jahrhunderts. Wie der folgende Satz zeigt, vermag sie es, die diskrete FourierTransformation in fast linearem Aufwand auszuführen. Satz 18.11 Der Aufwand zur Berechnung der Fourier-Synthese mit Hilfe von Algorithmus 18.10 ist beschränkt durch (n log2 n)/2 Multiplikationen.
Beweis Wir führen den Beweis vermittels vollständiger Induktion über j. Für den Induktionsanfang j = 1 ist keine weitere Unterteilung möglich und wir müssen die volle (2 × 2)-Matrix anwenden: 1 1 T2 β = β. 1 −1 Der Aufwand hierfür lässt sich durch A(1) = 1/2 · 2 log2 2 = 1 Multiplikation abschätzen. Wir wollen nun annehmen, dass die Behauptung für j richtig ist, wir also nicht mehr als A( j) = 1/2 · 2 j log2 (2 j ) = 1/2 · 2 j j Multiplikationen zur Berechnung von T2 j β benötigen. Der Induktionsschritt j → j + 1 ergibt sich nach Satz 18.9 wie folgt: 1 1 A( j + 1) = 2 · A( j) + 2 j = 2 · 2 j j + 2 j = 2 j ( j + 1) = 2 j+1 ( j + 1). 2 2 Bemerkung 18.12 Die Reduktion des Rechenaufwands von O(n 2 ) auf O(n log2 n) bewirkte eine technische Revolution in der Signalverarbeitung. Erst mit Hilfe der schnellen Fourier-Transformation wurde die digitale Signalverarbeitung überhaupt möglich.
18.3
Zirkulante Matrizen
Eine wichtige Anwendung der schnellen Fourier-Transformation ergibt sich im Fall zirkulanter Matrizen, dies sind spezielle Toeplitz-Matrizen. Derartige Matrizen sind in der Praxis oft anzutreffen, etwa bei der Berechnung der Faltung zweier Vektoren. Für a = [ak ] ∈ Rn und b = [bk ] ∈ Rn ist diese definiert durch [a∗ b]k =
n−1 =0
a(k+) mod n b .
354
18 Trigonometrische Interpolation
Definition 18.13 Eine Matrix T ∈ Rn×n ist eine Toeplitz-Matrix, falls ein Vektor t = [t1−n , t2−n , . . . , tn−2 , tn−1 ] ∈ R2n−1 derart existiert, dass ⎡
t0
t1 t0
t2 t1 t0 .. .
⎢ t−1 ⎢ ⎢ T = ⎢ t−2 t−1 ⎢ .. .. ⎣ . . t1−n t2−n t3−n
⎤ · · · tn−1 · · · tn−2 ⎥ ⎥ · · · tn−3 ⎥ ⎥. . . .. ⎥ . . ⎦ · · · t0
Eine zirkulante Matrix C ∈ Rn×n ist eine Toeplitz-Matrix mit tk = tk−n für alle k ∈ {1, 2, . . . , n − 1}. Dies bedeutet, es existiert ein Vektor c = [c0 , c1 , c2 , . . . , cn−1 ] ∈ Rn , so dass ⎡
c0
⎢cn−1 ⎢ ⎢ C = ⎢cn−2 ⎢ .. ⎣ . c1
⎤ c1 c2 · · · cn−1 c0 c1 · · · cn−2 ⎥ ⎥ cn−1 c0 · · · cn−3 ⎥ ⎥. .. .. . . . ⎥ . . . .. ⎦ c2 c3 · · · c0
Der nachfolgende Satz zeigt, dass sich die Eigenpaare von zirkulanten Matrizen direkt aus der diskreten Fourier-Transformation ergeben. Satz 18.14 Seien C ∈ Rn×n eine zirkulante Matrix und ⎤ ⎡ ⎤ ⎡ c0 λ0 ⎢ c1 ⎥ ⎢ λ1 ⎥ ⎥ ⎢ ⎥ ⎢ ⎢ .. ⎥ = Tn ⎢ .. ⎥ . ⎣ . ⎦ ⎣ . ⎦ λn−1 cn−1 Dann gilt für die Diagonalmatrix D = diag(λ0 , λ1 , . . . , λn−1 ) die Gleichung C=
1 Tn D Tn . n
(18.16)
Dies bedeutet, die Tupel (λk , ωk ) mit k ∈ {0, 1, . . . , n −1} sind die Eigenpaare von C.
18.3 Zirkulante Matrizen
355
Beweis Für j, k ∈ {0, 1, 2, . . . , n − 1} bezeichne Cωk j den j-ten Eintrag des Vektors Cωk . Setzen wir c− := cn+ für alle ∈ {1, 2, . . . , n − 1}, so gilt
Cωk
j
=
n−1
jk
c− j ωnk = ωn
=0
−1 jk
= ωn
=− j
=
jk ωn
n−1 =0
n−1
k(− j)
c− j ωn
=0
c ωnk k(n+)
=cn+ ωn
+
n−1− j
c ωnk
=0
c ωnk .
=λk
Mit anderen Worten, es ist Cωk = λk ωk für alle k ∈ {0, 1, . . . , n − 1}. Folglich entspricht jedes Tupel (λk , ωk ) genau einem Eigenpaar von C, was äquivalent ist zur Gleichung CTn = Tn D. Unter Verwendung von (18.15) ergibt sich hieraus (18.16).
Eine zirkulante Matrix C ist folglich durch die diskrete Fourier-Transformation diagonalisierbar. Daher ist das lineares Gleichungssystem Cx = bmit Hilfe der schnellen Fourier-Transformation sehr effizient lösbar gemäß x = C−1 b = nTn− D−1 Tn−1 b =
1 Tn D−1 Tn b. n
Der Aufwand hierzu ist offensichtlich von der Ordnung O(n log n). Ebenso können Matrix-Vektor-Multiplikation in O(n log n) Operationen durchgeführt werden: Cx =
1 Tn DTn x. n
Im Fall einer Toeplitz-Matrix bleibt die vorgestellte Technik anwendbar, wenn die Toeplitz-Matrix T ∈ Cn×n in eine zirkulante Matrix C ∈ C2n×2n eingebettet wird: ⎡
⎤ 0 t1−n t2−n · · · t−1 ⎢ t−1 0 t1−n · · · t−2 ⎥ ⎢ ⎥ TE ⎢ ⎥ C= mit E = ⎢ t−2 t−1 0 · · · t−3 ⎥ . ET ⎢ .. .. .. . . .. ⎥ ⎣ . . . ⎦ . . t1−n t2−n t3−n · · · 0
356
18 Trigonometrische Interpolation
Mit Hilfe der schnellen Fourier-Transformation lässt sich nun das Matrix-VektorProdukt Tx effizient vermittels x Tx C = 0 Ex bestimmen, wobei der Aufwand etwa doppelt so hoch ist wie im Fall einer zirkulanten (n × n)-Matrix.
Übungsaufgaben Aufgabe 18.1 (trigonometrische Interpolation) Gegeben seien die Stützstellen j 0 1 2 3 4 x j 0 π/2 π 3π/2 2π yj 1 3 2 −1 1 a) Berechnen Sie das trigonometrische Polynom p(x) = β0 + β1 eix + β2 e2ix + β3 e3ix , welches die oben angegebenen Stützstellen interpoliert. b) Bestimmen Sie das äquivalente trigonometrische Polynom q(x) =
a2 a0 + a1 cos x + b1 sin x + cos(2x). 2 2
Aufgabe 18.2 (Orthonormalsysteme) Zu m ∈ N sind die 2m + 1 Funktionen gk : [0, 2π ] → R gegeben durch g1 (x) = √1 und 2π
1 1 g2k (x) = √ cos(kx), g2k+1 (x) = √ sin(kx), k ∈ {1, 2, . . . , m}. π π Zeigen Sie, dass diese Funktionen ein Orthonormalsystem in L 2 (0, 2π ), dem Raum der quadratisch integrierbaren Funktionen über (0, 2π ), bilden. Dies bedeutet, dass gk , g :=
2π
0
für alle k, ∈ {1, 2, . . . , 2m + 1} gilt.
gk (x)g (x) dx = δk,
Übungsaufgaben
357
Aufgabe 18.3 (Optimalität trigonometrischer Interpolation) Für n ∈ N∗ bezeichne pn (x) ein trigonometrisches Polynom vom Grad n − 1, das heißt, pn : [0, 2π ] → C ist definiert durch pn (x) =
n−1
βk eikx .
k=0
Außerdem seien die äquidistanten Knoten xj =
2πj , n
j ∈ {0, . . . , n − 1},
und das trigonometrische Polynom vom Grad m ≤ n − 1 gegeben qm (x) =
m−1
γk eikx , γ1 , γ2 , . . . , γm−1 ∈ C.
k=0
Zeigen Sie, dass die Fehlerfunktion e(qm ) =
n−1
| pn (x j ) − qm (x j )|2
j=0
durch das Polynom pm (x) =
m−1
βk eikx
k=0
minimiert wird. Zeigen Sie also, dass stets e(qm ) ≥ e( pm ) ist. Mit anderen Worten, die Wahl γk = βk minimiert die quadratische Abweichung von qm (x) zu pn (x) in den Knoten x j .
19
Splines
19.1
Spline-Räume
Wie wir in Kap. 17 gesehen haben, ist die Polynominterpolation im Allgemeinen kein geeignetes Verfahren zur numerischen Approximation von Funktionen. Dies gilt insbesondere, wenn viele Stützstellen zu interpolieren sind und der Polynomgrad entsprechend groß ist. Deshalb betrachten wir in diesem Kapitel stückweise polynomiale Approximationen niedriger Ordnung, welche aber möglichst glatt miteinander verklebt werden. Definition 19.1 Sei = {x0 , x1 , . . . , xn } ein Gitter von n + 1 paarweise verschiedenen Stützstellen mit x0 < x1 < . . . < xn−1 < xn . Ein Spline vom Grad m ist eine (m − 1)-mal stetig differenzierbare Funktion s, die auf jedem Intervall [xi−1 , xi ], i ∈ {1, 2, . . . , n}, mit einem Polynom vom Grad m übereinstimmt. Die Menge der Splines vom Grad m bezüglich bezeichnen wir mit Sm (). Splines vom Grad 1, 2 beziehungsweise 3 werden auch linear, quadratisch beziehungsweise kubisch genannt.
Bemerkung 19.2 Sind s1 , s2 ∈ Sm () zwei Splines und α, β ∈ R, dann gilt offenbar auch αs1 + βs2 ∈ Sm (). Folglich ist Sm () sogar ein Vektorraum mit m ⊂ Sm (). Um die Eigenschaften von Splines besser zu verstehen, betrachten wir zunächst den Fall linearer Splines, da hier die Situation ganz einfach ist. Speziell kann der © Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_19
359
360
19
Splines
interpolierende Spline leicht explizit angegeben werden, wie anhand der Illustration in Abb. 19.1 sofort klar wird. Dass die lineare Spline-Interpolation eindeutig ist, zeigt der folgende Satz. Satz 19.3 Zu gegebenen Interpolationspunkten (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) existiert genau ein linearer Spline s ∈ S1 () mit s(xi ) = yi , i ∈ {0, 1, . . . , n}. Insbesondere besitzt der Vektorraum S1 () die Dimension dim S1 () = n +1.
Beweis Zu den Daten y0 , y1 , . . . , yn konstruieren wir einen linearen Spline durch s(x) :=
x − xi xi+1 − x yi + yi+1 , x ∈ [xi , xi+1 ]. xi+1 − xi xi+1 − xi
Die so beschriebene Funktion ist offensichtlich stetig und verbindet auf jedem Teilintervall [xi , xi+1 ] die beiden Randpunkte (xi , yi ) und (xi+1 , yi+1 ) durch eine Gerade, das heißt, es ist s ∈ S1 (). Insbesondere ist s(x) durch die Werte an den Randpunkten jedes Intervalls eindeutig bestimmt. Deshalb ist die lineare Abbildung
Abb. 19.1 Linearer Spline auf dem Gitter = {x0 , x1 , . . . , x5 }
19.1 Spline-Räume
361
⎡
⎤
s(x0 ) ⎢s(x1 )⎥ ⎥ ⎢ L : S1 () → Rn+1 , s → ⎢ . ⎥ ⎣ .. ⎦ s(xn )
bijektiv, womit alle Aussagen des Satzes bewiesen sind.
Mit Hilfe linearer Splines werden wir nun die Dimension von Spline-Räumen höherer Ordnung herleiten. Satz 19.4 Sei = {x0 , x1 , . . . , xn } ein Gitter von n + 1 paarweise verschiedenen Stützstellen. Dann ist Sm () ein (n + m)-dimensionaler Vektorraum.
Beweis Für m = 1 haben wir die Behauptung im vorhergehenden Satz bereits bewiesen. Sei also m > 1 und sei s0 , s1 , . . . , sn eine Basis von S1 (). Für gegebenes i ∈ {0, 1, . . . , n} bezeichne weiterhin σi eine beliebige (m − 1)-te Stammfunktion von si , Dann gehören sowohl σi als auch die Monome x 0 , x 1 , . . . , x m−2 zu Sm (). Wir zeigen, dass {σ0 , σ1 , . . . , σn } ∪ {x 0 , x 1 , . . . , x m−2 } (19.1) eine Basis von Sm () ist. Ist s ∈ Sm (), so ist die (m − 1)-te Ableitung s (m−1) aus S1 () und deshalb haben wir n s (m−1) (x) = ci si (x) i=0
für gewisse Koeffizienten ci ∈ R. Daraus folgt aber, dass s(x) =
n
ci σi (x) +
i=0
m−2
di x i
i=0
gilt mit Koeffizienten di ∈ R. Demnach lässt sich jedes s ∈ Sm () als Linearkombination der Funktionen aus (19.1) darstellen. Zum Nachweis der linearen Unabhängigkeit dieser Funktionen nehmen wir an, es sei n
ci σi (x) +
i=0
m−2
di x i ≡ 0
(19.2)
i=0
für Zahlen c0 , c1 , . . . , cn , d0 , d1 , . . . , dm−2 ∈ R. Differenzieren wir diese Gleichung (m − 1)-mal, dann folgt n i=0
ci si (x) ≡ 0.
362
19
Splines
Da s0 , s1 , . . . , sn eine Basis von S1 () ist, ergibt sich hieraus c0 = c1 = . . . = cn = 0. Aus m−2
di x i ≡ 0
i=0
schließen wir auch d0 = d1 = . . . = dm−2 = 0. Damit besitzt (19.2) nur die triviale Lösung und der Beweis ist vollständig erbracht.
19.2
Kubische Splines
Lineare Splines über = {x0 , x1 , . . . , xn } besitzen genau n + 1 Freiheitsgrade, weshalb das Interpolationsproblem eindeutig lösbar ist, wenn die Funktionswerte an den Stützstellen vorgegeben sind. Da die Dimension von Sm () für m > 1 größer als n +1 ist, müssen in diesem Fall zusätzliche Bedingungen an den interpolieren Spline gestellt werden, um die Eindeutigkeit zu erhalten. Für ungerades m benötigen wir eine gerade Anzahl an Zusatzbedingungen, die wir symmetrisch an den Intervallenden verteilen. Die meisten der folgenden Sätze können leicht auf beliebigen Grad m übertragen werden. Wir werden uns allerdings der Übersichtlichkeit halber auf kubische Splines beschränken. Da diese vom Auge als glatt empfunden werden, sind sie in der Praxis besonders beliebt. Definition 19.5 Seien = {x0 , x1 , . . . , xn } ein Gitter für das Intervall [a, b], das heißt a = x0 < x1 < . . . < xn−1 < xn = b, sowie die Interpolationspunkte (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) vorgegeben. Die kubische SplineInterpolationsaufgabe lautet dann: Bestimme einen kubischen Spline s ∈ S3 () mit !
s(xi ) = yi , i ∈ {0, 1, . . . , n},
(19.3)
der zusätzlich einer der folgenden Randbedingungen s (a) = s (b) = 0 = y0 , s (b) = yn s (a) = s (b), s (a) = s (b) s (a)
(natürliche Randbedingungen) (Hermite-Randbedingungen) (19.4) (periodische Randbedingungen)
genügt. Dabei gelte im zweiten Fall y0 , yn ∈ R und im dritten s(a) = y0 = yn = s(b).
19.2 Kubische Splines
363
Bemerkung 19.6 Interpolierende kubische Splines haben eine interessante Optimalitätseigenschaft hinsichtlich ihrer Glattheit. Für eine Funktion f : [a, b] → R ist f (x) κ(x) :=
3/2 1 + f (x)2
die Krümmung der Kurve x, f (x) für ein gegebenes Argument x. Beschreibt etwa f (x) die Lage einer dünnen Holzlatte, so misst E=
b
|κ(x)| dx =
a
2
a
b
2
3/2 dx 1 + f (x)2 f (x)
die Biegeenergie dieser Latte. Aufgrund des Hamiltonschen Prinzips stellt sich die Latte so ein, dass die Biegeenergie E minimal wird. Für kleine Auslenkungen f (x) gilt b E ≈ f 2L 2 (a,b) := | f (x)|2 dx. a
Wie wir gleich sehen werden, beschreibt der kubische Spline näherungsweise die Form dieser Holzlatte, falls sie an den Stellen (xi , yi ), i ∈ {0, 1, . . . , n}, fixiert wird und an den Enden • lose und deshalb gerade ist: s (x) = 0 für x ≤ a und x ≥ b (natürliche Randbedingungen), • in eine bestimmte Richtung fest eingespannt ist (Hermite-Randbedingungen), oder • zusammengeklebt ist (periodische Randbedingungen).
Satz 19.7 Sei = {x0 , x1 , . . . , xn } ein Gitter für das Intervall [a, b]. Der kubische Spline s ∈ S3 () interpoliere die Punkte (xi , yi ), i ∈ {0, 1, . . . , n}, und erfülle eine der Randbedingungen aus (19.4). Ist g ∈ C 2 ([a, b]) eine weitere interpolierende Funktion, die denselben Randbedingungen genügt, so gilt g 2L 2 (a,b) = s 2L 2 (a,b) + g − s 2L 2 (a,b)
(19.5)
und daher insbesondere s L 2 (a,b) ≤ g L 2 (a,b) .
(19.6)
364
19
Splines
Beweis Es gilt g 2L 2 (a,b) = s + (g − s )2L 2 (a,b) = s 2L 2 (a,b) + g − s 2L 2 (a,b) + 2
b
s (g − s )dx.
a
Wir müssen also zeigen, dass hierin der letzte Term verschwindet. Weil s und g nach Voraussetzung dieselben Randbedingungen erfüllen, gilt die Identität
(19.7) s (a) g (a) − s (a) = s (b) g (b) − s (b) . Deshalb ergibt sich mit partieller Integration
b
s (g − s )dx =
a
n i=1
=
xi
s (g − s )dx
xi−1
n
xi s (g − s )
xi−1
i=1
xi
−
s (g − s )dx .
xi−1
Hierin ist s eine auf [a, b] stückweise konstante Funktion, welche im Innern der Intervalle [xi−1 , xi ] stets konstant ist, etwa gleich ci ∈ R. Es folgt daher a
b
s (g − s )dx =
n
xi s (g − s )
i=1
xi−1
−
n
xi
ci
(g − s )dx
xi−1
i=1
n b xi = s (g − s ) − ci (g − s) = 0, a i=1 xi−1 =0 wegen (19.7)
=0
da g und s dieselben Punkte interpolieren.
Mit Hilfe des vorangegangenen Satzes können wir nun insbesondere die eindeutige Lösbarkeit der kubischen Spline-Interpolationsaufgabe folgern. Satz 19.8 Die durch (19.3) und (19.4) bestimmte kubische Spline-Interpolationsaufgabe ist eindeutig lösbar.
19.2 Kubische Splines
365
Beweis Gemäß Satz 19.4 ist S3 () ein (n + 3)-dimensionaler Vektorraum. Wählen wir eine Basis {s0 , s1 , . . . , sn+2 } ∈ S3 () und machen den Ansatz s(x) =
n+2
ci si (x),
i=0
dann erhalten wir das folgende lineare Gleichungssystem aus den Interpolationsbedingungen (19.3): n+2
ci si (x j ) = yj für j ∈ {0, . . . , n}.
i=0
Jede der Randbedingungen aus (19.4) liefert zwei zusätzliche Gleichungen. So gilt im Fall natürlicher Randbedingungen n+2
ci si (x0 ) = 0,
i=0
n+2
ci si (xn ) = 0,
i=0
im Fall von Hermite-Randbedingungen n+2 i=0
ci si (x0 ) = y0 ,
n+2
ci si (xn ) = yn ,
i=0
während im Fall periodische Randbedingungen folgt n+2 n+2 ci si (x0 ) − si (xn ) = 0, ci si (x0 ) − si (xn ) = 0. i=0
i=0
Wir haben also für die n + 3 Koeffizienten c0 , c1 , . . . , cn+2 immer genau n + 3 Gleichungen. Damit ist das lineare Gleichungssystem eindeutig lösbar, wenn wir zeigen können, dass im Fall homogener Daten nur die triviale Lösung s(x) ≡ 0, sprich c0 = c1 = . . . = cn+2 = 0, existiert. Dies ergibt sich folgendermaßen. Indem wir g(x) ≡ 0 wählen, besagt Satz 19.7, dass jeder kubische Spline s ∈ S3 (), welcher die Interpolationsbedingungen (x0 , 0), . . . , (xn , 0) und eine der Randbedingungen in (19.4) erfüllt, der Abschätzung 0 ≤ s L 2 (a,b) ≤ g L 2 (a,b) = 0 genügt, wobei wir im Fall von Hermite-Randbedingungen zusätzlich y0 = yn = 0 annehmen. Aus s L 2 (a,b) = 0 folgt insbesondere s (x) ≡ 0 aufgrund der Stetigkeit von s (x). Daraus ergibt sich zwangsläufig s ∈ 1 . Wegen s(a) = s(b) = 0 schließen wir aber sofort s(x) ≡ 0 aufgrund der Eindeutigkeit der Polynominterpolation.
366
19.3
19
Splines
B-Splines
Wir führen nun eine Basis für die Spline-Räume Sm () ein, die zur numerischen Berechnung interpolierender Splines genutzt werden kann. Dabei beschränken wir uns auf äquidistante Gitter. Satz 19.9 Die durch 1, −0.5 ≤ x < 0.5, B0 (x) := 0, sonst, und Bm+1 (x) :=
x+1/2
Bm (t)dt, x ∈ R, m = 0, 1, 2, . . .
(19.8)
x−1/2
rekursiv definierten Funktionen sind Splines vom Grad m auf dem Gitter m+1 m+1 m+1 , m := i − : i = 0, 1, . . . , m + 1 ⊂ − , 2 2 2 das heißt Bm ∈ Sm (m ). Sie heißen B-Splines vom Grad m, sind nichtnegativ und erfüllen Bm (x) = 0 für |x| > (m + 1)/2.
Beweis Wir beweisen die Behauptung durch Induktion nach m. Für m = 0 ist die Aussage klar. Wer nehmen also an, dass die Behauptung für ein m ≥ 0 erfüllt ist. Dann folgt aus (19.8), dass Bm+1 (x) ≥ 0 ist für alle x ∈ R, weil Bm (x) ≥ 0 gilt für alle x ∈ R. Weiter erhalten wir Bm+1 (x) = 0 für alle |x| > (m + 2)/2, weil Bm (x) = 0 ist für alle |x| > (m + 1)/2. Außerdem schließen wir (x) Bm+1
= Bm
1 x+ 2
− Bm
1 x− 2
nach dem Hauptsatz der Differential- und Integralrechnung. Aufgrund der Indukti onsannahme ist daher Bm+1 (x) überall mindestens (m −1)-mal stetig differenzierbar und stimmt für jedes x ∈ m auf dem Intervall [x −1/2, x +1/2] mit einem Polynom vom Grad ≤ m überein. Daher ist Bm+1 (x) ein Spline vom Grad m + 1.
19.3 B-Splines
367
Wie man leicht anhand der Rekursionsformel (19.8) nachrechnet, ist der lineare B-Spline gegeben durch B1 (x) =
1 − |x|, |x| ≤ 1, 0, |x| > 1,
der quadratische B-Spline durch ⎧ ⎪2 − (|x| − 0.5)2 − (|x| + 0.5)2 , |x| ≤ 0.5, 1⎨ B2 (x) = (|x| − 1.5)2 , 0.5 < |x| ≤ 1.5, 2⎪ ⎩ 0, |x| > 1.5, und der kubische B-Spline durch ⎧ ⎪(2 − |x|)3 − 4(1 − |x|)3 , |x| ≤ 1, 1⎨ B3 (x) = (2 − |x|)3 , 1 < |x| ≤ 2, 6⎪ ⎩ 0, |x| > 2. Eine graphische Darstellung dieser B-Splines befindet sich in Abb. 19.2. Wir konstruieren aus dem B-Spline Bm (x) eine Basis für Sm (m ), indem wir die verschobenen B-Splines Bm (x ± i) für i ∈ {0, 1, . . . , m} verwenden. Um zu zeigen, dass diese tatsächlich eine Basis für Sm (m ) bilden, benötigen wir folgendes Lemma, welches die Unabhängigkeit der verschobenen B-Splines auf dem letzten Intervall des Gitters m sichert, siehe Abb. 19.3 für eine Veranschaulichung im Fall m = 3. Abb. 19.2 Linearer, quadratischer und kubischer B-Spline
368
19
Splines
Abb. 19.3 Überlagerung der verschobenen kubischen B-Splines auf dem Intervall I3
Lemma 19.10 Für m ∈ N sind die B-Splines Bm (x − i), i ∈ {0, 1, . . . , m} linear unabhängig auf dem Intervall Im := [(m − 1)/2, (m + 1)/2].
Beweis Für m = 0 ist die Behauptung offensichtlich. Wir nehmen also an, dass die Behauptung wahr ist für m − 1. Zu zeigen ist, dass aus m
ci Bm (x − i) = 0 für alle x ∈ Im
(19.9)
i=0
folgt, dass c0 = c1 = . . . = cm = 0 ist. Differenzieren von (19.9) liefert
m 1 1 − Bm−1 x − i − = 0 für alle x ∈ Im . ci Bm−1 x − i + 2 2 i=0
Wegen Bm−1 (x) = 0 für alle |x| ≥ m/2, folgt
1 1 = Bm−1 x − m − = 0 für alle x ∈ Im . Bm−1 x + 2 2 Daher können wir die letzte Gleichung umformen gemäß m i=1
1 = 0 für alle x ∈ Im . (ci − ci−1 )Bm−1 x − i + 2
19.3 B-Splines
369
Aus der Induktionsannahme ergibt sich nun ci = ci−1 für alle i ∈ {1, 2, . . . , m}, dies bedeutet c0 = c1 = . . . = cm =: c. Daher gilt nach (19.9) c
m
Bm (x − i) = 0 für alle x ∈ Im .
i=0
Durch Integration dieser Gleichung über dem Interval Im erhalten wir c
m (m+1)/2
(m−1)/2 i=0
Bm (x − i)dx = c =c
m
(m+1)/2−i
i=0 (m−1)/2−i (m+1)/2 −(m+1)/2
Bm (x)dx
Bm (x)dx = 0,
vergleiche Abb. 19.3. Dies impliziert
schließlich c = 0, da Bm (x) auf dem offenen Intervall − (m + 1)/2, (m + 1)/2 positiv ist.
Satz 19.11 Sei = {x0 , x1 , . . . , xn } ein äquidistantes Gitter mit Gitterweite h > 0, das heißt xi := x0 + hi, und sei m = 2 − 1 mit ∈ N∗ . Dann bilden die B-Splines
x − xi , x ∈ [x0 , xn ] Bm,i (x) := Bm h für i ∈ {1 − , 2 − , . . . , n + − 1} eine Basis von Sm ().
Beweis Nach Satz 19.9 liegen die n + m Funktionen Bm,i (x) alle in Sm (). In Anbetracht von Satz 19.4 müssen wir daher lediglich zeigen, dass sie linear unabhängig sind. Dies folgt allerdings durch Anwendung von Lemma 19.10 auf jedes Teilintervall. Mit Hilfe von B-Splines können interpolierende Splines effizient berechnet werden. Wir demonstrieren dies am Beispiel linearer und kubischer Splines. Beispiel 19.12 (lineare Spline-Interpolation) Den linearen interpolierenden Spline kann man mit Hilfe der B-Splines B1,i (x) sofort angeben. Weil B1 (k) = δ0,k für alle ganzen Zahlen k ∈ Z ist, interpoliert der lineare Spline s(x) =
n
yi B1,i (x), x ∈ [x0 , xn ]
i=0
die Punkte (xi , yi ) für alle i ∈ {0, 1, . . . , n}.
370
19
Splines
Beispiel 19.13 (kubische Spline-Interpolation) Im Falle kubischer Splines müssen wir gemäß Satz 19.11 auch die beiden verschobenen B-Splines mit einbeziehen, welche noch jeweils an den Rändern in den Interpolationsbereich [x0 , xn ] hereinragen:
Daher besitzt der interpolierende kubische Spline die Form s(x) =
n+1
ci B3,i (x), x ∈ [x0 , xn ].
i=−1
Zum Aufstellen des linearen Gleichungssystems für die Koeffizienten ci ∈ R müssen wir die verschobenen B-Splines B3,i (x) in den Gitterpunkten auswerten. Es gilt B3 (0) =
2 1 1 , B3 (±1) = , B3 (0) = 0, B3 (±1) = ∓ , B3 (0) = −2, B3 (±1) = 1. 3 6 2
Damit ergeben sich aus den Interpolationsbedingungen (19.3) die Gleichungen s(xi ) = ci−1 B3,i−1 (xi ) + ci B3,i (xi ) + ci+1 B3,i+1 (xi ) =
1 2 1 ci−1 + ci + ci+1 = yi 6 3 6
für alle i ∈ {0, 1, . . . , n}. Die konkrete Form des Gleichungssystems hängt nun von der gewählten Randbedingung aus (19.4) ab: 1. Natürliche Randbedingungen: Es gilt am linken Intervallende s (x0 ) = c−1 B3,−1 (x0 ) + c0 B3,0 (x0 ) + c1 B3,1 (x0 ) =
c−1 2c0 c1 − 2 + 2 = 0. h2 h h
Am rechten Intervallende folgt analog s (xn ) = cn−1 B3,n−1 (xn )+cn B3,n (xn )+cn+1 B3,n+1 (xn ) =
cn−1 2cn cn+1 − 2 + 2 = 0. h2 h h
Damit ergibt sich das lineare Gleichungssystem ⎤⎡ ⎡ ⎤ ⎡ ⎤ c−1 0 1 −2 1 ⎥ ⎢ c0 ⎥ ⎢ y0 ⎥ ⎢1/6 2/3 1/6 ⎥⎢ ⎢ ⎥ ⎢ ⎥ ⎥ ⎢ c1 ⎥ ⎢ y1 ⎥ ⎢ 1/6 2/3 1/6 ⎥⎢ ⎢ ⎥ ⎢ ⎥ ⎥ ⎢ .. ⎥ = ⎢ .. ⎥ . ⎢ .. .. .. ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ . . . ⎥⎢ . ⎥ ⎢ . ⎥ ⎢ ⎣ ⎦ ⎣ 1/6 2/3 1/6 cn ⎦ ⎣ yn ⎦ 1 −2 1 cn+1 0
19.4 Interpolationsfehler
371
2. Hermite-Randbedingungen: An den beiden Intervallenden gilt (x0 ) + c0 B3,0 (x0 ) + c1 B3,1 (x0 ) = − s (x0 ) = c−1 B3,−1
c−1 c1 + = y0 , 2h 2h
und s (xn ) = cn−1 B3,n−1 (xn )+cn B3,n (xn )+cn+1 B3,n+1 (xn ) = −
cn−1 cn+1 + = yn . 2h 2h
Dies führt auf das lineare Gleichungssystem ⎤⎡ ⎡ ⎤ ⎡ ⎤ c−1 hy0 −1/2 0 1/2 ⎥ ⎢ c0 ⎥ ⎢ y0 ⎥ ⎢ 1/6 2/3 1/6 ⎥⎢ ⎢ ⎥ ⎢ ⎥ ⎥ ⎢ c1 ⎥ ⎢ y1 ⎥ ⎢ 1/6 2/3 1/6 ⎥⎢ ⎢ ⎥ ⎢ ⎥ ⎥ ⎢ .. ⎥ = ⎢ .. ⎥ . ⎢ .. .. .. ⎥⎢ . ⎥ ⎢ . ⎥ ⎢ . . . ⎥⎢ ⎢ ⎥ ⎢ ⎥ ⎣ 1/6 2/3 1/6⎦ ⎣ cn ⎦ ⎣ yn ⎦ −1/2 0 1/2 cn+1 hyn 3. Periodische Randbedingungen: Unter der Voraussetzung y0 = yn identifizieren wir hier aufgrund der Periodizität B3,i+n−1 (x) mit B3,i−1 (x) für jedes i ∈ {0, 1, 2}. Demnach schließen wir ci+n−1 = ci−1 für i ∈ {0, 1, 2} und wir erhalten das lineare Gleichungssystem ⎤ ⎡ 1/6 2/3 1/6 ⎡ ⎤ ⎡ ⎤ ⎥ c−1 ⎢ 1/6 2/3 1/6 y0 ⎥ ⎢ ⎥ ⎢ c0 ⎥ ⎢ y1 ⎥ ⎢ .. ⎥⎢ ⎢ ⎥ ⎢ ⎥ . ⎥ ⎢ .. ⎥ = ⎢ .. ⎥ . ⎢ ⎥⎣ . ⎦ ⎣ . ⎦ ⎢ 1/6 2/3 1/6 ⎥ ⎢ ⎣1/6 1/6 2/3⎦ cn−2 yn−1 2/3 1/6 1/6
19.4
Interpolationsfehler
Es sei = {x0 , x1 , . . . , xn } ein Gitter mit a = x0 < x1 < . . . < xn−1 < xn = b. Setzen wir h i := xi+1 −xi , i = 0, 1, . . . , n−1, so bezeichnet h = maxi=0,1,...,n−1 h i die Gitterweite. Wir zeigen zunächst, dass die lineare Spline-Interpolation eine Approximation zweiter Ordnung liefert. Dazu führen wir den Interpolationsprojektor P1 : C([a, b]) → S1 (),
f → s
ein, wobei s ∈ S1 () gemäß Satz 19.3 durch die Interpolationsbedingungen s(xi ) = f (xi ), i ∈ {0, 1, . . . , n}, eindeutig bestimmt ist.
372
19
Splines
Satz 19.14 Für f ∈ C 2 ([a, b]) gilt f − P1 f L 2 (a,b) ≤
h 2 f L 2 (a,b) . 2
(19.10)
Beweis Die Funktion g := f − P1 f besitzt die Nullstellen x0 , x1 , . . . , xn . Daher folgt mit Hilfe der Cauchy-Schwarzschen Ungleichung
xi+1 xi
2 x dx g (t) · 1dt xi xi x xi+1 x 2 1dt |g (t)| dt dx ≤ xi x x
x i i xi+1 2 (x − xi ) |g (t)| dt dx = xi xi
xi+1 xi+1 ≤ |g (t)|2 dt (x − xi ) dx
xi+1
|g(x)|2 dx =
xi
=
h i2
xi
2
xi+1
|g (t)|2 dt.
xi
Durch Summation über i erhalten wir die Abschätzung h f − P1 f L 2 (a,b) ≤ √ ( f − P1 f ) L 2 (a,b) . 2
(19.11)
Weiter erhalten wir mit Hilfe partieller Integration ( f − P1 f ) 2L 2 (a,b) =
n−1 i=0
xi+1 ( f − P1 f ) (x)( f − P1 f )(x) xi =0
xi+1
−
( f − P1 f ) (x)( f − P1 f )(x)dx
xi
=−
n−1 i=0
xi+1
f (x)( f − P1 f )(x)dx.
xi
Mit Hilfe der Cauchy-Schwarzschen Ungleichung und (19.11) folgt hieraus ( f − P1 f ) 2L 2 (a,b) ≤ f − P1 f L 2 (a,b) f L 2 (a,b) h ≤ √ ( f − P1 f ) L 2 (a,b) f L 2 (a,b) . 2
19.4 Interpolationsfehler
373
Division durch ( f − P1 f ) L 2 (a,b) liefert h ( f − P1 f ) L 2 (a,b) ≤ √ f L 2 (a,b) , 2 was in Kombination mit (19.11) die Behauptung ergibt.
Wir betrachten nun den kubischen Spline-Interpolationsprojektor P3 : C([a, b]) → S3 (),
f → s,
der durch die Interpolationsbedingungen s(xi ) = f (xi ), i ∈ {0, 1, . . . , n}, und eine der Randbedingungen aus (19.4) eindeutig bestimmt ist. Satz 19.15 Für f ∈ C 4 ([a, b]) gilt f − P3 f L 2 (a,b) ≤
h 4 (4) f L 2 (a,b) . 4
Beweis Weil P1 ( f − P3 f ) = 0 gilt, erhalten wir mit (19.10) f − P3 f L 2 (a,b) = ( f − P3 f ) − P1 ( f − P3 f ) L 2 (a,b) ≤
h 2 f − (P3 f ) L 2 (a,b) . 2
(19.12)
Wir wählen nun ein s ∈ S3 () derart, dass s = P1 ( f ) ist, und definieren g := f − s. Dabei können wir annehmen, dass auch die Randbedingungen erfüllt sind, da bei zweimaligem Integrieren von P1 ( f ) zwei Konstanten frei wählbar sind. Aus f − (P3 f ) 2L 2 (a,b) = f − s − (P3 f ) + s 2L 2 (a,b) erhalten wir wegen P3 s = s f − (P3 f ) 2L 2 (a,b) = g − (P3 g) 2L 2 (a,b) ≤ g − (P3 g) 2L 2 (a,b) + (P3 g) 2L 2 (a,b) . In Anbetracht von (19.5) ist die Summe auf der rechten Seite identisch zu g 2L 2 (a,b) , das heißt, es gilt f − (P3 f ) 2L 2 (a,b) ≤ g 2L 2 (a,b) = f − s 2L 2 (a,b) .
374
19
Splines
Weil s = P1 ( f ) gewählt wurde, folgt f − s 2L 2 (a,b) = f − P1 ( f )2L 2 (a,b) und eine erneute Anwendung von (19.10) auf f ergibt f − (P3 f ) L 2 (a,b) ≤ f − P1 f L 2 (a,b) ≤
h 2 (4) f L 2 (a,b) . 2
Durch Kombination dieser Ungleichung mit (19.12) erhalten wir schließlich die Behauptung.
Übungsaufgaben Aufgabe 19.1 (kubischer Spline) Bestimmen Sie α, β ∈ R so, dass die Funktion sα,β : [−1, 2] → R, definiert durch ⎧ ⎨ (x + 1)4 + α(x − 1)4 + 1, −1 ≤ x ≤ 0, 0 < x ≤ 1, sα,β (x) := −x 3 − 8αx + 1, ⎩ 3 11 2 1 < x ≤ 2, βx + 8x + 3 , ein kubischer Spline bezüglich des Gitters := {−1, 0, 1, 2} ist. Aufgabe 19.2 (kubische Spline-Interpolation) Bestimmen Sie die Koeffizienten des kubischen Splines 3
s(x) =
αj B3 (x − j), x ∈ [0, 2]
j=−1
durch die Stützpunkte i 0 1 2 xi 0 1 2 yi 6 17/3 4 mit den natürlichen Randbedingungen s (0) = s (2) = 0. Aufgabe 19.3 (Partition der Eins) Zeigen Sie, dass die B-Splines eine Partition der Eins bilden, das heißt, zeigen Sie, dass k∈Z
für alle x ∈ R und m ∈ N gilt.
Bm (x − k) = 1
Übungsaufgaben
375
Aufgabe 19.4 (quadratische Spline-Interpolation) Auf dem Intervall [0, 4] sei durch 5
s(x) =
αj B2 (x − j)
j=−1
ein 4-periodischer (also α−1 = α3 , α0 = α4 und α1 = α5 ), quadratischer Spline zum Gitter = {1/2, 3/2, 5/2, 7/2} gegeben. Stellen Sie das Gleichungssystem für die Koeffizienten dieses Splines auf, damit er gegebene Daten yk , k ∈ {0, 1, 2, 3}, a) in den Knoten (k + 1/2, yk ) interpoliert und b) in den Knoten (k, yk ) interpoliert. Zeigen Sie, dass im ersten Fall die resultierende Systemmatrix singulär ist.
Wavelet- und Multilevelbasen
20.1
20
Haar-Transformation
Zur Darstellung zweier Zahlen a, b ∈ R innerhalb eines Computers genügt es offenbar, ihren Mittelwert c und ihre Differenz d zu speichern: c=
a+b a−b , d= . 2 2
(20.1)
Die Rekonstruktion der ursprünglichen Zahlen erhalten wir dann gemäß a = c + d, b = c − d. Sind nun a und b ungefähr gleich groß, so ist c von derselben Größenordnung wie a und b, wohingegen die Differenz d klein ist. In diesem Fall werden also für die Speicherung von c und d weniger Bits benötigt als für die Speicherung von a und b. Man kann die Differenz d sogar ganz weglassen und erreicht eine Speicherplatzersparnis auf Kosten eines zu analysierenden Fehlers. Wir nehmen nun an, dass wir nicht nur zwei Zahlen, sondern ein Signal f j+1 = 2n j [ f j+1,k ]2n−1 k=0 ∈ R gegeben haben, wobei n = 2 gelte. Wir können uns ein Signal als Funktionswerte einer Funktion f ∈ C([0, 1]) an den Stützstellen k/(2n) vorstellen, also k , k ∈ {0, 1, . . . , 2n − 1}. 2n In der Signalverarbeitung nennt man diese diskreten Funktionswerte auch Samples. Beispielsweise können wir annehmen, dass das Signal einer auf den Intervallen k/(2n), (k + 1)/(2n) konstanten Funktion f entspricht, vergleiche Abb. 20.1. f j+1,k = f (xk ), xk =
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_20
377
378
20 Wavelet- und Multilevelbasen
Abb. 20.1 Gesampelte Funktion mit stückweise konstanter Approximation
Beispiel 20.1 Audio-Signale, digitale Bildsignale, Messreihen und so weiter werden in der Signalverarbeitung als diskrete Signale verarbeitet. Wenn wir die Mittelwert- und Differenzbildung auf jedes Paar a = f j+1,2k und b = f j+1,2k+1 , k ∈ {0, 1, . . . , n − 1}, anwenden, so erhalten wir das Trendsignal n f j = [ f j,k ]n−1 k=0 ∈ R vermöge f j,k =
f j+1,2k + f j+1,2k+1 , k ∈ {0, 1, . . . , n − 1}, 2
n und das Differenzsignal d j = [d j,k ]n−1 k=0 ∈ R vermöge
d j,k =
f j+1,2k − f j+1,2k+1 , k ∈ {0, 1, . . . , n − 1}. 2
Das aus 2n Samples bestehende Ausgangssignal f j+1 wird also in zwei neue Signale f j und d j , bestehend aus jeweils n Samples, aufgespalten. In Matrixschreibweise bedeutet dies ⎤ ⎡ ⎡ ⎤ 1 1 f j,0 ⎢ ⎢ f j,1 ⎥ ⎥ 1 1 ⎥ ⎢ ⎢ ⎥⎡ ⎤ ⎢ ⎢ .. ⎥ ⎥ . .. f j+1,0 ⎢ ⎢ . ⎥ ⎥ ⎥ ⎢ ⎢ ⎥⎢ f j+1,1 ⎥ ⎢ f j,n−1 ⎥ 1 ⎢ 1 1⎥ ⎥ ⎢ ⎥= ⎢ ⎥⎢ (20.2) ⎥. .. ⎢ d j,0 ⎥ 2 ⎢ 1 −1 ⎥⎢ ⎣ ⎦ . ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ d j,1 ⎥ ⎥ 1 −1 ⎢ ⎥ ⎢ ⎥ f j+1,2n−1 ⎢ ⎢ . ⎥ ⎥ .. ⎣ ⎣ .. ⎦ ⎦ . d j,n−1 1 −1
=: T j
20.1 Haar-Transformation
379
Die obere Hälfte der Transformationsmatrix T j ∈ R2n×2n nennen wir H j ∈ Rn×2n und die untere Hälfte G j ∈ Rn×2n . Damit lässt sich die Gleichung (20.2) auch kurz schreiben als fj Hj = f j+1 = T j f j+1 . (20.3) Gj dj Die Aufspaltung dieses Signals in Trendsignal und Differenzsignal ist in Abb. 20.2 dargestellt. Weil n = 2 j eine Zweipotenz ist, kann man den Schritt (20.3) sukzessive auf die Trendsignale f j+1 , f j , . . . , f 1 anwenden. Man erhält dann einen einzelnen Wert f 0 und eine Folge von Differenzsignalen d , ∈ {0, 1, . . . , j}. Dieses Vorgehen kann so interpretiert werden, dass beim Übergang f +1 → f das Signal geglättet wird und die verlorengegangenen Details in d gespeichert werden. Dies ist die HaarTransformation, welche wie in Abb. 20.3 veranschaulicht werden kann. Sie ist das einfachste Modell einer Wavelet-Transformation und wurde von Alfréd Haar bereits im Jahr 1910 in [Haa10] eingeführt. Aufgrund der augenscheinlichen Ähnlichkeit wird das der Haar-Transformation zugrundeliegende Schema als Fischgrätenschema bezeichnet. Wie man leicht nachrechnet, gilt
2T j T j = I.
Abb. 20.2 Aufspaltung der Samples von f in das Trendsignal c und das Differenzsignal d
Abb. 20.3 Veranschaulichung der Haar-Transformation
380
20 Wavelet- und Multilevelbasen
Daher ist die Transformationsmatrix T j orthogonal bis auf Skalierung, so dass in Anbetracht von (20.3) das ursprüngliche Signal f j+1 wieder aus dem Trendsignal f j und dem Differenzsignal d j rekonstruiert werden kann gemäß f j+1
j j G = H
fj dj
=
2T j
fj . dj
(20.4)
Ausgeschrieben heißt dies ⎡
⎤
⎡
f j,0 f j,1 .. .
⎤
1 1 ⎢ ⎥ ⎥ ⎢1 ⎥⎢ −1 ⎢ ⎥ ⎢ ⎥ f j+1,0 ⎢ ⎥ ⎢ ⎥⎢ 1 ⎥ ⎥⎢ ⎢ f j+1,1 ⎥ ⎢ 1 ⎥ ⎢ f j,n−1 ⎥ ⎢ ⎥ ⎢ 1 −1 ⎥. ⎥⎢ ⎢ ⎥=⎢ .. ⎥ ⎢ d j,0 ⎥ ⎣ ⎦ ⎢ .. .. . ⎥ ⎢ ⎥ . . ⎥ ⎢ ⎥⎢ f j+1,2n−1 ⎢ d j,1 ⎥ ⎣ ⎦ 1 1 ⎢ . ⎥ ⎣ .. ⎦ −1 1
d j,n−1 = 2Tj ⎡
⎤
(20.5)
Damit ergibt sich die Inverse der Haar-Transformation, sprich die Rekonstruktion des Signals, gemäß des umgekehrten Fischgrätenschemas, welches in Abb. 20.4 dargestellt ist. Der Aufwand des Dekompositionsschritts (20.2) beträgt 2n = 2 · 2 j = 2 j+1 Additionen beziehungsweise Multiplikationen. Somit beläuft sich der Gesamtaufwand der Dekomposition eines Signals der Länge 2n = 2 j+1 auf j
2 j+1 = 2 j+2 − 1
=1
Additionen beziehungsweise Multiplikationen. Dies bedeutet, der Gesamtaufwand der Haar-Transformation wächst nur linear mit der Größe des Signals. Das gleiche gilt für die inverse Haar-Transformation.
Abb. 20.4 Veranschaulichung der inversen Haar-Transformation
20.2 Haar-Wavelets
20.2
381
Haar-Wavelets
Wir wollen nun das der Haar-Transformation zugrundeliegende Funktionensystem kennenlernen. Dazu betrachten wir die Haarsche Skalierungsfunktion ϕ(x) :=
1, x ∈ [0, 1), 0, sonst.
(20.6)
Sie ist in Abb. 20.5 dargestellt und entspricht bis auf eine Verschiebung dem B-Spline B0 (x) aus Satz 19.9. Für ein gegebenes Level j ≥ 0 bilden wir nun wie bei den Splines durch Verschiebung und Stauchung der Skalierungsfunktion (20.6) die Funktionen ϕ j,k (x) := ϕ(2 j x − k), k ∈ {0, 1, . . . , 2 j − 1}. Diese stellen gerade die stückweise konstanten B-Splines bezüglich des Gitters j = 2− j k : k ∈ {0, 1, . . . , 2 j }
(20.7)
dar. Mit ihrer Hilfe können wir demnach den Raum V j := span ϕ j,k : k ∈ {0, 1, . . . , 2 j − 1} definieren, welcher aus den auf den Intervallen der Form 2− j k, 2− j (k + 1) konstanten Funktionen besteht. 2 −1 eine OrthoSatz 20.2 Für jedes Level j ≥ 0 bilden die Funktionen {ϕ j,k }k=0 gonalbasis im Raum V j bezüglich des Skalarprodukts 1 u, v := u(x)v(x)dx, (20.8) j
0
das heißt, es gilt ϕ j,k , ϕ j, = 2− j δk, , k, ∈ {0, 1, . . . , 2 j − 1}.
Abb. 20.5 Die Haarsche Skalierungsfunktion
382
20 Wavelet- und Multilevelbasen
Beweis Für alle 0 ≤ k, < 2 j gilt ϕ j,k , ϕ j, =
1
0
=2
−j
ϕ j,k (x)ϕ j, (x)dx =
1
ϕ(2 j x − k)ϕ(2 j x − )dx
0
2j
ϕ(x − k)ϕ(x − )dx = 2− j δk, ,
0
was zu zeigen war. offensichtlich genügt die Skalierungsfunktion (20.6) der Verfeinerungsgleichung ϕ(x) = ϕ(2x) + ϕ(2x − 1).
(20.9)
Diese führt auf den folgenden Satz, welcher besagt, dass die Basisfunktionen des Raums V j durch jeweils zwei Basisfunktionen des Raums V j+1 dargestellt werden können. Satz 20.3 Für jedes Level j ≥ 0 gilt die Verfeinerungsgleichung ϕ j,k (x) = ϕ j+1,2k (x) + ϕ j+1,2k+1 (x), k ∈ {0, 1, . . . , 2 j − 1}.
(20.10)
Beweis Es folgt sofort mit Hilfe von (20.9), dass ϕ j,k (x) = ϕ(2 j x − k) = ϕ(2 j+1 x − 2k) + ϕ(2 j+1 x − 2k − 1) = ϕ j+1,2k (x) + ϕ j+1,2k+1 (x). Da die Basisfunktionen von V j durch jene von V j+1 dargestellt werden können, folgt offenbar V j ⊂ V j+1 . Wir definieren das orthogonale Komplement W j := span ψ j,k : k ∈ {0, 1, . . . , 2 j − 1} von V j , so dass ⊥
V j+1 = V j ⊕ W j
(20.11)
gilt. Dies bedeutet, jede Funktion f ∈ V j+1 besitzt eine eindeutige Darstellung f (x) =
j −1 2
k=0
ck ϕ j,k (x) +
∈V j
j −1 2
k=0
dk ψ j,k (x)
∈W j
20.2 Haar-Wavelets
383
und es gilt ϕ j,k , ψ j, = 0 für alle k, ∈ {0, 1, . . . , 2 j − 1}. Wir wollen als nächstes eine Basis für den Raum W j angeben. Dazu definieren wir zusätzlich zur Haarschen Skalierungsfunktionen das Haar-Wavelet ⎧ ⎪ x ∈ [0, 1/2), ⎨1, ψ(x) = −1, x ∈ [1/2, 1), ⎪ ⎩ 0, sonst.
(20.12)
Wie wir in Abb. 20.6 sehen, ist diese Funktion wellenförmig, was die Bezeichnung Wavelet motiviert. Satz 20.4 Für jedes Level j ≥ 0 bilden die Funktionen ψ j,k (x) := ψ(2 j x − k), k ∈ {0, 1, . . . , 2 j − 1}, eine Orthogonalbasis des Raums W j bezüglich des Skalarprodukts (20.8). Genauer gilt ψ j,k , ψ j, = 2− j δk, , ψ j,k , ϕ j, = 0, k, ∈ {0, 1, . . . , 2 j − 1}.
Beweis Für beliebige 0 ≤ k, < 2 j erhalten wir ψ j,k , ψ j, =
1
0
= 2− j
ψ j,k (x)ψ j, (x)dx = 0
Abb. 20.6 Das Haar-Wavelet
1
ψ(2 j x − k)ψ(2 j x − )dx
0 2j
ψ(x − k)ψ(x − )dx = 2− j δk, .
384
20 Wavelet- und Multilevelbasen
2 −1 Dies impliziert, dass die Funktionen {ψ j,k }k=0 linear unabhängig sind. Analog ergibt sich j
1
ψ j,k , ϕ j, = 0
= 2− j
1
ψ j,k (x)ϕ j, (x)dx =
ψ(2 j x − k)ϕ(2 j x − )dx
0
2j
ψ(x − k)ϕ(x − )dx = 0,
0 2 −1 2 −1 orthogonal zu den Funktionen {ϕ j,k }k=0 was zeigt, dass die Funktionen {ψ j,k }k=0 sind, also insbesondere davon linear unabhängig sind. Wegen dim(V j+1 ) = 2 j+1 j
j
2 −1 2 −1 bilden die Funktionen {ϕ j,k }k=0 ∪ {ψ j,k }k=0 folglich eine Orthogonalbasis in V j+1 . j
j
Auch das Haar-Wavelet (20.12) genügt einer Verfeinerungsgleichung. Offensichtlich gilt nämlich ψ(x) = ϕ(2x) − ϕ(2x − 1).
(20.13)
Analog zu Satz 20.3 schließen wir daraus: Satz 20.5 Für jedes Level j ≥ 0 gilt die Verfeinerungsgleichung ψ j,k (x) = ϕ j+1,2k (x) − ϕ j+1,2k+1 (x), k ∈ {0, 1, . . . , 2 j − 1}.
Beweis Der einfache Beweis verbleibt dem Leser zur Übung.
(20.14)
Indem wir (20.11) rekursiv anwenden, erhalten wir eine orthogonale Zerlegung des Raums V j+1 : V j+1 = V j ⊕ W j = V j−1 ⊕ W j−1 ⊕ W j .. . = V0 ⊕ W0 ⊕ W1 ⊕ . . . ⊕ W j . Weil hierbei die Summanden genau den Anteilen der verschiedenen Level entsprechen, spricht man von einer Multilevelzerlegung. Speziell haben wir in jedem Summanden eine Orthogonalbasis zur Verfügung, was auf eine neue Orthogonalbasis von V j+1 führt, Haar-Wavelets genannt.
20.2 Haar-Wavelets
385
Korollar 20.6 Im Raum V j+1 ist durch 2 −1 {ϕ0,0 } ∪ {ψ0,0 } ∪ {ψ1,0 , ψ1,1 } ∪ . . . ∪ {ψ j,k }k=0 j
(20.15)
eine Orthonormalbasis gegeben. Speziell besitzt jede Funktion f j+1 ∈ V j+1 die eindeutige Darstellung
f j+1 (x) = f 0,0 ϕ0,0 (x) +
j 2 −1
d,k ψ,k (x)
(20.16)
=0 k=0
mit f 0,0 = f , ϕ0,0 und d,k = 2 f , ψ,k .
Da die Haar-Wavelets (20.15) aus Funktionen von jedem Level bestehen, sprechen wir von einer Multilevelbasis. Eine Veranschaulichung der Haar-Wavelets im Raum V3 befindet sich in Abb. 20.7. Wir wollen uns nun überlegen, wie für die Funktion f (x) =
2 j+1 −1 k∈0
Abb. 20.7 Haar-Wavelets im Raum V3
f j+1,k ϕ j+1,k (x)
(20.17)
386
20 Wavelet- und Multilevelbasen
die Dekomposition f (x) =
j −1 2
f j,k ϕ j,k (x) +
k∈0
j −1 2
d j,k ψ j,k (x)
(20.18)
k∈0
aussieht. Sobald dieser Schritt zur Verfügung steht, erhält man dann rekursiv die Multileveldarstellung (20.16). Wegen der Orthogonalität folgt mit Hilfe der Verfeinerungsgleichungen (20.10) und (20.14) sofort 1 f j+1,2k + f j+1,2k+1 , f j,k = 2 j f , ϕ j,k = 2 j f , ϕ j+1,2k + f , ϕ j+1,2k+1 = 2 1 j j f j+1,2k − f j+1,2k+1 . d j,k = 2 f , ϕ j,k = 2 f , ϕ j+1,2k − f , ϕ j+1,2k+1 = 2 2 −1 2 −1 Die Koeffizienten { f j,k }k=0 und {d j,k }k=0 des dekomponierten Signals ergeben sich demnach gerade vermittels (20.2) beziehungsweise (20.3). Zur vollständigen Dekomposition von f muss der Algorithmus gemäß des Fischgrätenschemas aus Abb. 20.3 iteriert werden. Diese (diskrete) Wavelet-Transformation kann folglich in O(2 j ) Operationen durchgeführt werden, wie leicht anhand von Algorithmus 20.7 ersichtlich ist. Mit anderen Worten, der Basiswechsel von stückweise konstanten Splines in die Haar-Wavelets besitzt linearen Aufwand. j
j
Algorithmus 20.7 (Wavelet-Transformation) j+1 input: Samples [ f j+1,k ]2k=0 −1 eines Signals 2 j −1 output: Koeffizienten f 0,0 , d0,0 , [d1,k ]1k=0 , . . . , [d j,k ]k=0 bezüglich der Haar-Wavelets ➀ für = j, j − 1, . . . , 0 für k = 0, 1, . . . , 2 − 1 f ,k := f +1,2k + f +1,2k+1 /2 d,k := f +1,2k − f +1,2k+1 /2 Wir kommen nun zur Rekonstruktion, das heißt, aus der Darstellung (20.18) soll die Darstellung (20.17) berechnet werden. Wir bemerken, dass gilt 2 j+1 ϕ j, , ϕ j+1,k = 2 j+1 ϕ j+1,2 , ϕ j+1,k + ϕ j+1,2+1 , ϕ j+1,k 1, falls k = 2 oder k = 2 + 1, = 0, sonst,
20.2 Haar-Wavelets
387
und analog 2 j+1 ψ j, , ϕ j+1,k = 2 j+1 ϕ j+1,2 , ϕ j+1,k − ϕ j+1,2+1 , ϕ j+1,k ⎧ ⎪ falls k = 2, ⎨1, = −1, falls k = 2 + 1, ⎪ ⎩ 0, sonst. Damit erhalten wir f j+1,2k = 2 j+1 f , ϕ j+1,2k =
j −1 2
2
j+1
f j, ϕ j, , ϕ j+1,2k +
=0
j −1 2
2 j+1 d j, ψ j, , ϕ j+1,2k
=0
= f j,k + d j,k und analog f j+1,2k+1 = 2 j+1 f , ϕ j+1,2k+1 j −1 j −1 2 2 j j 2 f j, ϕ j, , ϕ j+1,2k + 2 d j, ψ j, , ϕ j+1,2k =2 =0
=0
= f j,k − d j,k Wie man leicht überprüft, entspricht dies gerade (20.4) beziehungsweise (20.5). Die vollständige Rekonstruktion erhält man sukzessive gemäß des umgekehrten Fischgrätenschemas aus Abb. 20.4 in linearem Aufwand. Die Rekonstruktion ist in Algorithmus 20.8 konkret umgesetzt. Algorithmus 20.8 (inverse Wavelet-Transformation) 2 j −1 bezüglich output: Koeffizienten f 0,0 , d0,0 , [d1,k ]1k=0 , . . . , [d j,k ]k=0 der Haar-Wavelets j+1 input: Samples [ f j+1,k ]2k=0 −1 eines Signals ➀ für = 0, 1, . . . , j für k = 0, 1, . . . , 2 − 1 f +1,2k := f ,k + d,k f +1,2k+1 := f ,k − d,k
388
20.3
20 Wavelet- und Multilevelbasen
Walsh-Transformation
Die Walsh-Transformation ist der Prototyp einer Wavelet-Paket-Zerlegung. Sie ist benannt nach ihrem Entdecker Joseph L. Walsh [Wal23]. Im Gegensatz zur WaveletTransformation zerlegen wir hier nicht nur das Trendsignal, sondern auch die Details mit der Haar-Zerlegung. Wie man in der Veranschaulichung in Abb. 20.8 sieht, liefert dies anstatt des Fischgrätenschemas einen Binärbaum. Unter der Voraussetzung n = 2 j , erhalten wir j Level. Der Baum besitzt demnach die Tiefe j. Da für jedes Level O(n) = O(2 j ) arithmetische Operationen benötigt werden, besitzt die Walsh-Transformation den Gesamtaufwand O( j2 j ) = O(n log n). Wie aus Abb. 20.9 hervorgeht, haben die der Walsh-Transformation zugrundeliegenden Walsh-Funktionen im Gegensatz zu den Haar-Wavelets allesamt das ganze Intervall [0, 1] als Träger. Die Walsh-Transformation dient zur Kompression von Signalen. Dazu beachten wir, dass das Signal eines Vaters stets aus dem seiner zwei Söhne rekonstruiert werden kann. Folglich befähigt die Gesamtheit aller Signale in den Blättern eines jeden Teilbaums mit jeweils zwei Söhnen pro Knoten, das ursprüngliche Signal zu rekonstruieren. Daher verwendet man die Walsh-Transformation in einer adaptiven Weise und geht wie folgt vor. Man berechnet und speichert alle Signale für jeden Knoten im Baum. Dann komprimiert man diese Signale durch das Vernachlässigen hinreichend kleiner Koeffizienten. In jedem Knoten v werden dazu die Kosten A(v) als Anzahl der Nichtnulleinträge definiert. Wenn die Summe der Kosten der beiden Söhne größer ist als die Kosten des Vaters, dann ist es günstiger, die Söhne zu vernachlässigen und nur das Signal des Vaters zu speichern. Diese Tatsache wird nun rekursiv vom feinsten Level startend ausgenutzt: Man startet in den Blättern und vergleicht sukzessive die Summe der Kosten der beiden Söhne mit denen des Vaters. Sind die Kosten des
Abb. 20.8 Veranschaulichung der Walsh-Transformation
20.3 Walsh-Transformation
389
Abb. 20.9 Walsh-Funktionen im Fall von drei Leveln
Vaters größer, dann behält man die Söhne bei und ersetzt die Kosten des Vaters durch die Summe der Kosten der beiden Söhne. Ansonsten löscht man die Söhne und gegebenenfalls daran hängende Teilbäume. Am Ende ergibt sich ein Teilbaum des ursprünglichen Baums derart, dass das ursprüngliche Signal aus den Signalen in seinen Blättern rekonstruierbar ist. Wie man sich leicht überlegt, ist dies derjenige Teilbaum, welcher das Signal mit den geringsten Gesamtkosten speichert. Beispiel 20.9 Wir wollen das Vorgehen anhand eines konkreten Beispiels im Fall von j = 3 Leveln verdeutlichen. Wir gehen von folgenden konkreten Kosten aus:
390
20 Wavelet- und Multilevelbasen
Im ersten Schritt werden alle Blätter markiert. Nun vergleichen wir von den Blättern aus startend die Summe der Kosten der beiden Söhne mit denen des Vaters. Sind die Kosten im Vater geringer, so wird der Vater markiert, ansonsten werden die Kosten des Vaters durch die Summe der Kosten der beiden Söhne ersetzt. Dies führt auf den folgenden Baum:
In einem letzten Schritt, werden überall in den markierten Knoten die Nachfahren entfernt. Damit erhalten wir schließlich den folgenden Teilbaum:
Das ursprüngliche Signal kann offensichtlich anhand der Signale in seinen Blättern rekonstruiert werden. Die Gesamtkosten für das Signal sind nun 17, was deutlich geringer als 29 im Fall des ursprünglichen Signals und ebenfalls geringer als 20 im Fall der vollständigen Walsh-Transformation ist.
20.4
Hierarchische Basis
Wir wollen nun die hierarchische Basis kennenlernen. Sie bildet eine Multilevelbasis im Raum der stückweise linearen Splines, den wir in Abschn. 19.1 eingeführt haben. Dazu rufen wir uns diesen Raum wieder ins Gedächtnis zurück.
20.4 Hierarchische Basis
391
Definition 20.10 Es bezeichne 1 − |x|, −1 ≤ x ≤ 1, ϕ(x) = 0, sonst, den linearen B-Spline, der auch Hutfunktion genannt wird. Für gegebenes Level j ≥ 0 bilden die Funktionen ϕ j,k (x) = ϕ(2 j x − k)[0,1] , k ∈ {0, 1, . . . , 2 j } die nodale Basis im Raum V j = f ∈ C([0, 1]) : f [2− j k,2− j (k+1)] ∈ 1 für alle k ∈ {0, 1, . . . , 2 j −1} der stückweise linearen Splines bezüglich des Gitters (20.7). Abb. 20.10 zeigt eine Visualisierung der nodalen Basis im Fall von j = 3 Leveln. Da diese mit den stückweise linearen B-Splines in V j zusammenfallen, kann eine Funktion f ∈ C([0, 1]) einfach approximiert werden gemäß j
f (x) ≈ f j (x) :=
2
f j,k ϕ j,k (x) mit f j,k = f (2− j k).
(20.19)
k=0
Als nächstes betrachten wir die Darstellung der Funktion f j (x) bezüglich einer speziellen Basis für V j , welche sukzessive mehr Details der Funktion f (x) auflöst. Dazu definieren wir 1 − |2x − 1|, 0 ≤ x ≤ 1, ψ(x) = 0, sonst, und setzen für jedes j ≥ 0
ψ j,k (x) = ψ(2 j x − k)[0,1] , k ∈ {0, 1, . . . , 2 j − 1}.
Abb. 20.10 Die nodale Basis für j = 3 Level
392
20 Wavelet- und Multilevelbasen
Lemma 20.11 Der Raum W j := span ψ j,k : k ∈ {0, 1, . . . , 2 j − 1} ist komplementär zu V j bezüglich des Raums V j+1 . Dies bedeutet, es gilt die Beziehung V j+1 = V j ⊕ W j .
(20.20)
Beweis Zunächst bemerken wir, dass dim(V j+1 ) = dim(V j ) + dim(W j ) gilt. Daher genügt es zu zeigen, dass sich jede Basisfunktion aus V j+1 als Linearkombination der Basisfunktion aus V j und W j schreiben lässt. Für alle Basisfunktionen mit ungeradem Index gilt ϕ j+1,2k+1 (x) = ψ j,k (x), k ∈ {0, 1, . . . , 2 j }. Außerdem finden wir für die Basisfunktion am linken Intervallende die Gleichung 1 ϕ j+1,0 (x) = ϕ j,0 (x) − ψ j,0 (x) 2 und für die am rechten Intervallende 1 ϕ j+1,2 j+1 (x) = ϕ j,2 j (x) − ψ j,2 j −1 (x). 2 Schließlich ergibt sich für alle inneren Basisfunktionen mit geradem Index 1 1 ϕ j+1,2k (x) = − ψ j,k−1 (x) + ϕ j,k (x) − ψ j,k (x), k ∈ {1, 2, . . . , 2 j − 1}. 2 2 Demnach schließen wir, dass in der Tat jede Basisfunktion aus V j+1 als Linearkom bination der Basisfunktionen aus V j und W j darstellbar ist. Wir wollen uns nun überlegen, wie die Koeffizienten in den beiden Basisdarstellungen j+1 2
k=0
j
f j+1,k ϕ j+1,k (x) =
2 k=0
f j,k ϕ j,k (x) +
j −1 2
d j,k ψ j,k (x)
(20.21)
k=0
zusammenhängen. Für die Punkte xm = 2 j m des Gitters j+1 gilt einerseits ϕ j+1,k (xm ) = δk,m , während wir andererseits ⎧ ⎪ ⎨1, falls m gerade und k = m/2, ϕ j,k (xm ) = 21 , falls m ungerade und k = (m ± 1)/2, ⎪ ⎩ 0, sonst,
20.4 Hierarchische Basis
und
393
1, falls m ungerade und k = (m + 1)/2, ψ j,k (xm ) = 0, sonst,
finden. Wenn wir also die Gitterpunkte xm mit m = 2n in (20.21) einsetzen, so erhalten wir die Gleichung f j+1,2n = f j,n . Im Fall von xm mit m = 2n + 1 folgt hingegen f j+1,2n+1 =
1 1 f j,n + d j,n + f j,n+1 . 2 2
Dies ist gleichbedeutend mit 1 1 d j,n = − f j+1,2n + f j+1,2n+1 − f j+1,2n+2 . 2 2 Wir haben demnach gezeigt, dass gilt ⎡
f j,0 f j,1 .. .
⎤
⎡
2
⎤
⎥ ⎢ ⎥ ⎢ 2 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎡ ⎢ . ⎤ .. ⎥ ⎢ ⎥ ⎢ f j+1,0 ⎥ ⎢ ⎥ ⎢ ⎢ f j,2 j −1 ⎥ ⎥ ⎢ 2 f j+1,1 ⎥ ⎥ ⎢ ⎥⎢ ⎢ ⎥ ⎢ f j,2 j ⎥ = 1 ⎢ ⎥⎢ 2 ⎢ ⎥. .. ⎥ 2⎢ ⎢ ⎥⎣ ⎦ . ⎢ d j,0 ⎥ ⎥ ⎢ −1 2 −1 ⎥ ⎢ ⎥ ⎢ ⎢ d j,1 ⎥ ⎥ f j+1,2 j+1 ⎢ −1 2 − 1 ⎥ ⎢ ⎥ ⎢ ⎢ . ⎥ ⎥ ⎢ .. ⎣ .. ⎦ ⎦ ⎣ . −1 2 −1 d j,2 j −1
=: T j
(20.22)
Wie bei den Haar-Wavelets erhalten wir durch rekursives Anwenden von (20.20) eine Multilevelzerlegung V j+1 = V0 ⊕ W0 ⊕ W1 ⊕ . . . ⊕ W j , welche von der sogenannten hierarchischen Basis erzeugt wird. Eine Illustration dieser Basis befindet sich in Abb. 20.11. Die Transformation der Darstellung (20.19) bezüglich der nodalen Basis in die hierarchische Basis kann durch das Fischgrätenschema aus Abb. 20.3 in linearem j j+1 Aufwand berechnet werden, wobei H j ∈ R(2 +1)×(2 +1) die obere Hälfte der j+1 j+1 Transformationsmatrix T j ∈ R(2 +1)×(2 +1) aus (20.22) bezeichnet und G j ∈ j j+1 R2 ×(2 +1) deren untere Hälfte. Genauer gilt:
394
20 Wavelet- und Multilevelbasen
Korollar 20.12 Im Raum V j+1 ist durch die hierarchische Basis 2 −1 {ϕ0,0 , ϕ0,1 } ∪ {ψ0,0 } ∪ {ψ1,0 , ψ1,1 } ∪ . . . ∪ {ψ j,k }k=0 j
(20.23)
eine Multilevelbasis gegeben. Jede Funktion f j+1 ∈ V j+1 besitzt die eindeutige Darstellung
f j+1 (x) = f j+1 (0)ϕ0,0 (x) + f j+1 (1)ϕ0,1 (x) +
j 2 −1
d,k ψ,k (x) (20.24)
=0 k=0
mit den hierarchischen Überschüssen 1 1 d,k = − f 2− k + f 2−(+1) (2k + 1) − f 2− (k + 1) . 2 2
Abb. 20.11 Die hierarchische Basis im Raum V3
(20.25)
20.4 Hierarchische Basis
395
Beispiel 20.13 Im Fall der Parabel f (x) = 4x − 4x 2 ergeben sich folgende Basisdarstellungen auf dem Level j = 3:
Wie man in der linken Abbildung sieht, sind die Koeffizienten bezüglich der nodalen Basis alle ungefähr gleich groß. Hingegen sieht man in der rechten Abbildung, dass die Koeffizienten bezüglich der nodalen Basis stark abklingen mit wachsenden Level. Man rechnet leicht nach, dass die hierarchischen Überschüsse im vorliegenden Fall gegeben sind durch 1 1 d,k = − f 2− k + f 2−(+1) (2k + 1) − f 2− (k + 1) = 4−(+1) . 2 2 Das Verhalten der hierarchischen Überschüsse im vorangegangenen Beispiel ist prototypisch. Es gilt folgendes allgemeine Resultat, das wir an späterer Stelle noch ausnutzen werden.
Lemma 20.14 Ist f ∈ C 2 ([0, 1]), so genügen die hierarchischen Überschüsse (20.25) der Abschätzung |d,k | ≤ 2−(2+3) f C([2− k,2− (k+1)]) ≤ 2−(2+3) f C([0,1]) .
Beweis Die Taylor-Entwicklung von f an der Stelle x ∈ (0, 1) liefert für hinreichend kleines h > 0 die beiden Gleichungen h 2 f (ξ1 ), ξ1 ∈ (x − h, x), 2 h 2 f (x + h) = f (x) + h f (x) + f (ξ2 ), ξ2 ∈ (x, x + h). 2
f (x − h) = f (x) − h f (x) +
396
20 Wavelet- und Multilevelbasen
Hieraus folgt 1 h 2 1 h 2 f (x + h) − f (x) + f (x − h) = f (ξ1 ) + f (ξ2 ). 2 2 4 4 Mit x = 2−(+1) (2k + 1) und h = 2−(+1) ergibt sich demnach die Abschätzung |dk, | ≤
2−2(+1) | f (ξ1 ) + f (ξ2 )| ≤ 2−(2+3) f C([2− k,2− (k+1)]) . 4
Zum Schluss wollen wir uns überlegen, wie die Transformation von der Darstellung (20.24) bezüglich der hierarchischen Basis zurück in die nodale Basis aussieht. Dazu müssen wir beachten, dass die hierarchische Basis im Gegensatz zu den HaarWavelets nicht orthogonal ist. Folglich müssen wir die Inverse von T j aus (20.22) berechnen. Durch Nachrechnen bestätigt man ⎤ ⎤⎡ f j,0 2 f j,1 ⎥ ⎥⎢ ⎢1 1 2 ⎥ ⎥⎢ ⎢ ⎢ ⎥ ⎢ .. ⎥ ⎢ 2 ⎡ ⎤ ⎥ . ⎥ ⎢ f j+1,0 ⎥ ⎥⎢ ⎢ 1 2 ⎢ ⎥ ⎢ f j,n−1 ⎥ ⎢ f j+1,1 ⎥ 1 ⎢ ⎥ ⎥⎢ ⎢ ⎢ ⎥ .. .. ⎥ ⎢ f j,n ⎥ ⎢ .. ⎥ = ⎢ . . ⎥. ⎥⎢ ⎣ . ⎦ 2⎢ ⎥ d ⎥ ⎢ 1 2 ⎥ ⎢ j,0 ⎥ ⎢ f j+1,2n ⎢ ⎥ ⎢ d j,1 ⎥ ⎢ 2 ⎥ ⎥⎢ ⎢ ⎥ ⎣ 11 2 ⎦ ⎣ ... ⎦ 2
d j,n−1 −1 = Tj ⎡
(20.26)
(2 +1)×(2 +1) nennen wir Die linke Hälfte der Transformationsmatrix T −1 j ∈ R j+1 j j+1 j j ∈ R(2 +1)×2 . Somit lässt sich j ∈ R(2 +1)×(2 +1) und die rechte Hälfte G H die Gleichung (20.26) auch kurz schreiben als j+1
f j+1 = T −1 j
fj dj
j j G = H
j+1
fj . dj
Die vollständige Rekonstruktion erhalten wir dann schließlich mit Hilfe des Fischgrätenschemas aus Abb. 20.4.
Übungsaufgaben
397
Übungsaufgaben Aufgabe 20.1 (Haar-Wavelets) Haar-Wavelets sind orthogonal zur HaarschenSkalierungsfunktion. Benutzen Sie diese Tatsache, um zu zeigen, dass für alle Funktionen f ∈ C 1 ([0, 1]) und k ∈ {0, 1, . . . , 2 j − 1} die Abschätzung | f , ψ j,k | ≤ 4−( j+1) f C([0,1]) gilt. Aufgabe 20.2 (semiorthogonale Wavelets) In dieser Aufgabe wollen wir die Komplementräume W j für den Fall linearer Splines derart konstruieren, dass neben V j+1 = V j ⊕ W j auch V j ⊥ W j gilt. Da wir nicht zusätzlich fordern, dass die Basisfunktionen in W j eine Orthogonalbasis bilden, spricht man hier von semiorthogonalen Wavelets. a) Die gewünschte Basis im Inneren des Intervalls ergibt sich durch Verschiebung und Stauchung der unten abgebildeten Funktion ψ gemäß ψ j,k (x) = ψ(2 j x − k) für k ∈ {1, 2, . . . , 2 j − 2}, vorausgesetzt es gelten die Orthogonalitätsbedingungen ϕ, ψ(· − k) = 0 für k ∈ {−2, −1, 0, 1}. Setzen Sie also ψ als linearen Spline bezüglich des Gitters = {−1, −0.5, . . . , 2} an und bestimmen Sie die Koeffizienten derart, dass die Orthogonalitätsbedingungen erfüllt sind. Als zusätzliche Bedingung gelte ψ(0.5) = 1.
b) An den Intervallrändern müssen die Wavelets geeignet modifiziert werden. Bestimmen Sie das linke Randwavelet ψ j,0 (x) = ψ (L) (2 j x), so dass ϕ(· − k), ψ (L) = 0 für k ∈ {0, 1, 2}
398
20 Wavelet- und Multilevelbasen
gilt. Als zusätzliche Bedingung sei wiederum ψ (L) (0.5) = 1 gefordert. Das Wavelet ψ (R) (x) am rechten Intervallrand ergibt sich übrigens aus Symmetriegründen zu ψ (R) (x) = ψ (L) (2 − x).
Aufgabe 20.3 (Detailoperator) Betrachten Sie den stückweise linearen Interpolationsoperator j
P j : C([0, 1]) → V j , (P j g)(x) :=
2
g j,k ϕ j,k (x)
k=0
mit g j,k = g(2− j k) gemäß (20.19). Zeigen Sie, dass der zugehörige Detailoperator Q j := P j+1 − P j gegeben ist durch Q j : C([0, 1]) → W j , (Q j f )(x) =
j −1 2
d j,k ψ j,k (x).
k=0
Dabei sind die Koeffizienten d j,k genau die hierarchischen Überschüsse. Folgern Sie, dass Q j f C([0,1]) ≤ 2−(2 j+3) f C([0,1]) gilt. Aufgabe 20.4 (Monte-Carlo-Verfahren) Sei f ∈ C 2 ([0, 1]2 ) und u(x) :=
1
f (x, t)dt.
0
Ziel ist es, die Funktion u zu approximieren. Dazu machen wir den Ansatz
j
u(x) ≈ (P j u)(x) =
2 k=0
u j,k ϕ j,k (x), wobei u j,k = 0
1
f (2− j k, t)dt
Übungsaufgaben
399
mit dem stückweise linearen Interpolationsoperator P j . Zur Approximation der Intenj grale u j,k verwenden wir die Monte-Carlo-Quadratur. Hierzu seien {X j,i }i=1 unabhängige und gleichverteilte Zufallsvariablen auf [0, 1]. Dann gilt u j,k
nj 1 ≈ f (2− j k, xi ) nj i=1
beziehungsweise j
nj nj 2 1 1 u(x) ≈ u j (x) := f (2− j k, xi )ϕ j,k (x). P j f (·, xi ) (x) = nj nj i=1
i=1 k=0
Zeigen Sie, dass für den mittleren quadratischen Fehler −2 j e j = E u − u j 2L 2 (0,1) = O(n −1 ) j +2 gilt. Dies bedeutet, dass n j = 22 j Samples benötigt werden, um einen mittleren quadratischen Fehler von O(2−2 j ) zu erhalten. Bestimmen sie den Aufwand für die Berechnung von u j . Nehmen Sie dazu an, dass eine Funktionsauswertung von f in O(1) Operationen durchgeführt werden kann. Aufgabe 20.5 (Multilevel-Monte-Carlo-Verfahren) Der Interpolationsoperator P j aus der vorhergehenden Aufgabe kann auch als Teleskopsumme dargestellt werden gemäß P j = P0 +
j
(P − P−1 ) =
=1
wobei wir Q −1 := P0 vereinbaren. Folglich gilt
j
Q −1 ,
=0
nj nj j j 1 1 u j (x) = Q −1 f (·, xi ) (x) = Q −1 f (·, xi ) (x). nj nj i=1 =0
=0
i=1
Lassen wir nun auf jedem Level eine unterschiedliche Anzahl an Samples zu, so erhalten wir den Multilevel-Monte-Carlo-Schätzer von u, welcher gegeben ist durch uˆ j (x) :=
j n 1 Q −1 f (·, xi ) (x). n =0
i=1
Zeigen Sie, dass die Wahl n = 22( j−) auf den mittleren quadratischen Fehler eˆ j = E u − uˆ j 2L 2 (0,1) = O( j2−2 j ) führt. Wie hoch ist der Aufwand zur Berechnung von uˆ j ?
21
Numerische Quadratur
21.1
Trapezregel
Angenommen, wir wollen die Wahrscheinlichkeit dafür bestimmen, dass eine normalverteilte Zufallsvariable X ∼ N (0, 1) innerhalb des Intervalls [a, b] liegt. Dann müssen wir das Integral 1 P({a ≤ X ≤ b}) = √ 2π
b
x2
e− 2 dx
a
berechnen. Für dieses Integral ist allerdings keine analytische Lösung bekannt, so dass wir uns mit einer numerischen Approximation behelfen müssen. In diesem Kapitel werden wir verschiedene Verfahren zur approximativen Berechnung bestimmter Integrale der Form b f (x)dx, (21.1) I[ f ] = a
herleiten. Dabei werden stets voraussetzen, dass der Integrand f stetig ist, so dass Funktionsauswertungen in jedem Punkt des Intervalls [a, b] möglich sind. Eines der einfachsten Verfahren zur numerischen Berechnung bestimmter Integrale ist die Trapezregel a
b
f (x)dx ≈
b − a f (a) + f (b) , 2
(21.2)
welche das Integral einer gegebenen Funktion durch die Fläche eines Sehnentrapezes annähert. Eine geometrische Interpretation der Trapezregel befindet sich in Abb. 21.1.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_21
401
402
21
Numerische Quadratur
Abb. 21.1 Geometrische Interpretation der Trapezregel
Natürlich kann die Formel (21.2) abhängig vom Integranden sehr große Approximationsfehler produzieren. Daher zerlegt man in der Praxis das Intervall [a, b] in n gleichgroße Teilintervalle und wendet (21.2) auf jedes Teilintervall an: b−a , n n n−1 xi − xi−1 h h f (xi ) + f (b). Tn [ f ] := f (xi ) + f (xi−1 ) = f (a) + h 2 2 2 i=1 i=1 (21.3) a = x0 < x1 < . . . < xn−1 < xn = b, xi = a + i h, h =
Dieses Verfahren heißt zusammengesetzte Trapezregel oder Trapezsumme. Man macht sich leicht anhand der Definition des Riemann-Integrals klar, dass Tn [ f ] → I [ f ] konvergiert für n → ∞. Hierzu bemerken wir, dass f aufgrund der Stetigkeit über [a, b] Riemann-integrierbar ist. Unter Zusatzannahmen an den Integranden kann folgende Fehlerabschätzung bewiesen werden: Satz 21.1 Sei f ∈ C 2 ([a, b]). Dann gilt für die Trapezsumme (21.3) die Fehlerabschätzung |I [ f ] − Tn [ f ]| ≤
b − a 2
h f C([a,b]) . 12
Beweis Wir betrachten zunächst die Näherung (21.2), das ist der Fall n = 1. Wie aus Abb. 21.1 deutlich wird, ist T1 [ f ] =
b − a f (a) + f (b) = 2
b
p(x)dx. a
21.1 Trapezregel
403
Hierin bezeichnet p ∈ 1 das lineare Polynom p(x) = f (a) +
x − a f (b) − f (a) , b−a
welches f in den Punkten a und b interpoliert. Gemäß Satz 17.5 folgt
f (ξ ) f
C([a,b]) | f (x) − p(x)| = (x − a)(x − b) ≤ (x − a)(b − x). 2 2 Demnach ist
f
C([a,b]) b f (x) − p(x) dx ≤ (x − a)(b − x)dx 2 a a 1 f
C([a,b]) f
C([a,b]) 3 = t(1 − t)dt = (b − a) (b − a)3 , 2 12 0
|I [ f ] − T1 [ f ]| =
b
wobei wir die affine Transformation x = a + (b − a)t verwendet haben. Diese Abschätzung angewandt auf die Trapezsumme (21.3) ergibt eingedenk der Definition h = (b − a)/n das gesuchte Ergebnis: n |I [ f ] − Tn [ f ]| ≤
≤
i=1 n i=1
=
xi xi−1
h f (x)dx − f (xi−1 ) + f (xi ) 2
1 3
n 3
h f C([a,b]) = h f C([a,b]) 12 12
b − a 2
h f C([a,b]) . 12
Wir wollen uns nun den Zusammenhang zwischen der Trapezsumme und der stückweise linearen Spline-Interpolation zunutze machen. Dazu betrachten wir ohne Beschränkung der Allgemeinheit das Intervall [a, b] = [0, 1]. Wie wir in Abschn. 20.4 gesehen haben, kann eine Funktion f ∈ C([0, 1]) mit Hilfe der nodalen Basis approximiert werden gemäß j
f (x) ≈ f j (x) =
2
f j,k ϕ j,k (x) mit f j,k = f (2− j k).
k=0
Folglich gilt I[ f ] = 0
1
j
f (x)dx ≈ I [ f j ] =
2 k=0
f j,k 0
1
ϕ j,k (x)dx
−j, falls 0 0 die Abschätzung 4 d( ,k ),( ,k ) ≤ 4−(x + y +3) ∂ f . x x y y ∂ x 2∂ y2 C([0,1]2 )
Beweis Eine Taylor-Entwicklung zunächst in der ersten und danach in der zweiten Variable liefert
21.2 Dünngitter-Quadratur
409
f (x + h x , y ± h y ) + f (x − h x , y ± h y )
hx 2 ∂ f ∂2 f = 2 f (x, y ± h y ) + s (x + s, y ± h y ) − (x − s, y ± h y ) ds ∂x2 ∂x2 0
hx ∂2 f ∂2 f = 2 f (x, y ± h y ) + s (x + s, y) − (x − s, y) ds ∂x2 ∂x2 0 3
hx ∂ f ∂3 f ± sh y (x + s, y) − (x − s, y) ds ∂ x 2∂ y ∂ x 2∂ y 0
hx h y 4 ∂ f ∂4 f st (x + s, y ± t) − 2 2 (x − s, y ± t) dtds. ± ∂ x 2∂ y2 ∂x ∂ y 0 0 Mit Hilfe der Gleichung
hx
f (x +h x , y)+ f (x −h x , y) = 2 f (x, y)+
s 0
∂2 f ∂2 f (x +s, y)− (x −s, y) ds ∂x2 ∂x2
folgt f (x + h x , y + h y ) + f (x − h x , y + h y ) + f (x + h x , y − h y ) + f (x − h x , y − h y ) = 2 f (x, y + h x ) + 2 f (x, y − h y ) + 2 f (x + h x , y) + 2 f (x − h x , y) − 4 f (x, y) hx h y 4 ∂ f ∂4 f st (x + s, y + t) + (x − s, y − t) + ∂ x 2∂ y2 ∂ x 2∂ y2 0 0
∂4 f ∂4 f − 2 2 (x + s, y − t) − 2 2 (x − s, y + t) dtds. ∂x ∂ y ∂x ∂ y
Aufgrund der Beziehung d(x ,k x ),( y ,k y ) = S(2−(x +1) ,2−( y +1) ) 2−(x +1) (2k x + 1), 2−( y +1) (2k y + 1) [ f ] (21.7) ergibt sich hieraus mit h x = 2−(x +1) und h y = 2−( y +1) , dass 2−(x +1) 2−( y +1) 4 d( ,k ),( ,k ) ≤ ∂ f stdtds. x x y y ∂ x 2∂ y2 0 C([0,1]2 ) 0 Die Behauptung erhalten wir nun durch Auswerten des Doppelintegrals.
Dieses Lemma bedeutet, dass die hierarchischen Überschüsse auch in der zweidimensionalen Konstruktion mit wachsendem Level schnell abklingen, vorausgesetzt, dass f hinreichend glatt ist. Daher können etliche von ihnen vernachlässigt werden ohne Genauigkeit einzubüßen. In der Tat werden wir gleich zeigen, dass nur diejenigen hierarchischen Überschüsse in (21.5) benötigt werden, für die x + y < j gilt. Dies ist in Abb. 21.3 veranschaulicht für den Fall j = 4. Die hierarchischen Überschüsse gehören jeweils zu den Produkten aus eindimensionalen, hierarchischen Basisfunktionen ψx ,k x (x) und ψ y ,k y (y). Von diesen Produkten sind nur diejenigen relevant, die schraffiert sind. Dies führt auf den sogenannten Dünngitter-Interpolanten. Die Integration des Dünngitter-Interpolanten führt dann auf die Dünngitter-Quadratur.
410
21
Numerische Quadratur
Abb. 21.3 Nur die schraffierten hierarchischen Überschüsse tragen wesentlich zum Interpolanten bei
Satz 21.7 Es seien f : [0, 1]2 → R sowie fˆj (x, y) := f j (x, y) +
x −1 2 y −1 2
d(x ,k x ),( y ,k y ) ψx ,k x (x)ψ y ,k y (y).
x + y < j k x =0 k y =0
(21.8) Existiert die Ableitung ∂ 4 f (x, y)/(∂ x 2 ∂ y 2 ) für alle (x, y) ∈ [0, 1]2 , dann gilt die Abschätzung 4 (I ⊗ I )[ f j − fˆj ] ≤ 4−( j+3) j − 1 ∂ f . 2 2 3 ∂ x ∂ y C([0,1]2 )
Beweis Es gilt f j − fˆj =
x −1 2 y −1 2
x , y < j k x =0 k y =0 x + y ≥ j
d(x ,k x ),( y ,k y ) ψx ,k x (x)ψ y ,k y (y).
21.2 Dünngitter-Quadratur
411
Aus Lemma 21.6 erhalten wir deshalb die Abschätzung (I ⊗ I )[ f j − fˆj ] =
≤
x −1 2 y −1 2
1 d(x ,k x ),( y ,k y )
x , y < j k x =0 k y =0 x + y ≥ j
x −1 2 y −1 2
4
ψx ,k x (x)ψ y ,k y (y)dydx
1
0 0
4 ∂ f ∂ x 2∂ y2
−(x + y +3) −(x +1) −( y +1)
2
2
C([0,1]2 )
x , y < j k x =0 k y =0 x + y ≥ j
=
x , y < j x + y ≥ j
4 ∂ f 4−(x + y +4) . ∂ x 2∂ y2 C([0,1]2 )
Wir setzen j ≤ := x + y ≤ 2( j − 1) und beachten, dass es stets 2 j − − 1 verschiedene Kombinationen mit = x + y gibt, vergleiche Abb. 21.3. Daraus folgt schließlich 4 j−1) ∂ f 2( −(+4) (I ⊗ I )[ f j − fˆj ] ≤ 4 (2 j − − 1) 2 2 ∂ x ∂ y C([0,1]2 ) = j 4 −( j+3) j − 1 ∂ f ≤4 . 2 2 3 ∂ x ∂ y C([0,1]2 )
Korollar 21.8 Sei f : [0, 1]2 → R. Existiert die Ableitung ∂ 4 f (x, y)/ (∂ x 2 ∂ y 2 ) für alle x, y ∈ [0, 1]2 , dann genügt die Dünngitter-Quadratur der Abschätzung 2 4 2 ∂ f ∂ f (I ⊗I )[ f − fˆj ] ≤ 4− j j − 1 max ∂ f . , , ∂x2 ∂ y2 ∂ x 2∂ y2 6 C([0,1]2 ) C([0,1]2 ) C([0,1]2 )
Beweis Es gilt (I ⊗ I )[ f − fˆj ] = (I ⊗ I )[ f − f j ] + (I ⊗ I )[ f j − fˆj ]. Gemäß Satz 21.4 schließen wir (I ⊗ I )[ f − f j ] = (I ⊗ I )[ f ] − (Tn ⊗ Tn )[ f ] 2 2 ∂ f ∂ f 4− j , ≤ max 2 ∂ y2 6 ∂x 2 C([0,1] )
C([0,1]2 )
Diese Abschätzung muss nun nur noch mit Satz 21.7 kombiniert werden.
.
412
21
Numerische Quadratur
Wir erhalten die Dünngitter-Quadratur, indem wir den hierarchischen Interpolanten (21.8) integrieren. In Anbetracht von 0
1 1 0
ψx ,k x (x)ψ y ,k y (y)dydx = 2−(x +1) 2−( y +1)
sowie (21.6) und (21.7) können wir den folgenden Algorithmus formulieren. Algorithmus 21.9 (Dünngitter-Quadratur) input: Funktion f ∈ C([0, 1]2 ) und Level j output: Approximation Q ≈ I [ f ] ➀ berechne (I ⊗ I )[ f j ]: setze 1 Q := f (0, 0) + f (1, 0) + f (1, 1) + f (0, 1) 4 für k = 1, 2, . . . , 2 j − 1 datiere auf Q := Q + 2−( j+1) f (2− j k, 0) + f (2− j k, 1) + f (0, 2− j k) + f (1, 2− j k) ➁ berechne die hierarchischen Überschüsse: für x = 0, 1, . . . , j − 1 setze h x := 2−(x +1) für y = 0, 1, . . . , j − x − 1 setze h y := 2−( y +1) für k x = 1, 2, . . . , 2x − 1 und k y = 1, 2, . . . , 2 y − 1 datiere auf Q := Q + h x h y S(h x ,h y ) h x (2k x + 1), h y (2k y + 1) [ f ] Obwohl die Dünngitter-Quadratur fast dieselbe Genauigkeit besitzt wie die Tensorprodukt-Trapezsumme, werden erheblich weniger Quadraturpunkte benötigt. Satz 21.10 Algorithmus 21.9 verwendet nur O(2 j j) Auswertungen der Funktion f .
21.2 Dünngitter-Quadratur
413
Beweis Bei der Berechnung von (I ⊗ I )[ f j ] in ➀ werden nur 4 · 2 j Auswertungen der Funktion f durchgeführt. Jede Anwendung des Sterns S(h x ,h y ) auf f in der innersten Schleife in ➁ benötigt neun Funktionsauswertungen. Die Anzahl der Schleifendurchläufe ist
x −1 2 y −1 2
1≤
x + y < j k x =0 k y =0
x + y < j
2 x 2 y ≤
j−1
2 j ≤ 2 j j.
=0
Zusammen folgt das Behauptete.
Abb. 21.4 zeigt auf der rechten Seite die Auswertungspunkte der Funktion f für die Dünngitter-Quadratur. Ein direkter Vergleich mit den Auswertungspunkten der Tensorpordukt-Trapezsumme auf der linken Seite erklärt den Begriff des dünnen Gitters. Das dünne Gitter besteht offensichtlich aus erheblich weniger Punkten. Speziell merken wir an, dass die Anwendung des Sterns S(h x ,h y ) auf f in ➁ zwar neun Funktionsauswertungen benötigt, allerdings sind alle Funktionswerte außerhalb des Zentrums des Sterns bereits einmal auf einem gröberen Level ausgewertet worden. Fasst man mehrfach auftretende Quadraturpunkte zusammen, indem man deren Gewichte summiert, so lässt sich Algorithmus 21.9 noch ungefähr um den Faktor neun beschleunigen. Bemerkung 21.11 Die Dünngitter-Konstruktion kann analog auf den d-dimensionalen Würfel [0, 1]d verallgemeinert werden. Die Genauigkeit der DünngitterQuadratur ist dann O(4− j j d−1 ), während der Aufwand im wesentlichen dem der (eindimensionalen) Trapezsumme entspricht: O(2 j j d−1 ).
Abb. 21.4 Volles Gitter (links) und dünnes Gitter (rechts) im Fall j = 5
414
21.3
21
Numerische Quadratur
Newton-Côtes-Formeln
Wir kehren nun wieder zur eindimensionalen Integration zurück. Motiviert durch die Trapezregel wollen wir nun allgemeine Verfahren zur numerischen Berechnung von Integralen der Form (21.1) einführen. Definition 21.12 Eine Quadraturformel zur Approximation von (21.1) ist eine gewichtete Summe der Form Q[ f ] =
m
wi f (xi )
i=1
mit Stützstellen {xi } und Gewichten {wi }. Unter der dazugehörigen zusammengesetzten Quadraturformel Q n [ f ] verstehen wir dann die Unterteilung von [a, b] in n gleich große Teilintervalle, auf denen jeweils die Quadraturformel angewandt wird. Die Genauigkeit einer Quadraturformel hängt davon ab, bis zu welchem Grad Polynome exakt integriert werden. Hingegen steht bei zusammengesetzten Quadraturformeln die Asymptotik n → ∞ im Vordergrund. Um die qualitativen Merkmale einer (zusammengesetzten) Quadraturformel beschreiben zu können, führen wir daher folgende Definitionen ein. Definition 21.13 Eine Quadraturformel Q[ f ] besitzt Exaktheitsgrad q, falls I [ p] = Q[ p] für alle p ∈ q . Eine zusammengesetzte Quadraturformel konvergiert gegen I [ f ] mit der Ordnung s, falls |I [ f ] − Q n [ f ]| = O(n −s ) für n → ∞.
Bemerkung 21.14 Für die Bestimmung des Exaktheitsgrads genügt es, eine Basis des Polynomraums q zu untersuchen, da sowohl Q[·] als auch I [·] lineare Abbildungen bezüglich des Integranden sind. Speziell folgt aus 1 ∈ 0 die Gleichung
21.3 Newton-Côtes-Formeln
415 b
1dx =
m
a
i=0
wi f (xi ) =
=1
m
wi .
i=0
Daher muss für jede Quadraturformel mit Exaktheitsgrad q ≥ 0 gelten, dass m
wi = b − a.
i=0
Beispiel 21.15 Gemäß Satz 21.1 besitzt die Trapezregel den Exaktheitsgrad q = 1. Die zusammengesetzte Trapezregel konvergiert mit der Ordnung s = 2. Mit Hilfe der Polynominterpolation lassen sich leicht Quadraturformeln für I [ f ] mit beliebigem Exaktheitsgrad angeben. Satz 21.16 Zu gegebenen m + 1 Stützstellen x0 < x1 < . . . < xm in [a, b] sei wi :=
b
L i (x)dx
(21.9)
a
das Integral des i-ten zugehörigen Lagrange-Polynoms. Die Quadraturformel Q[·] mit Stützstellen {xi } und Gewichten {wi } hat dann den Exaktheitsgrad q = m.
Beweis Ein Polynom p ∈ m interpoliert sich offensichtlich selbst. Aufgrund der Eindeutigkeit des Interpolationspolynoms gilt deshalb gemäß (17.3) die Gleichung p(x) =
m
p(xi )L i (x).
i=0
Daraus folgt mit (21.9), dass I [ p] =
b
p(x)dx =
a
=
m i=0
was zu zeigen war.
a
p(xi ) a
b
m b
p(xi )L i (x)dx
i=0
L i (x)dx=
m
wi p(xi ) = Q[ p],
i=0
416
21
Numerische Quadratur
Bemerkung 21.17 Satz 17.5 liefert uns sofort eine Abschätzung für den Quadraturfehler: f (m+1) C([a,b]) b |I [ f ] − Q[ f ]| ≤ w(x)dx. (m + 1)! a Hierbei ist w(x) das Knotenpolynom aus Definition 17.2.
Im Fall äquidistanter Stützstellen a = x0 < x1 < . . . < xm−1 < xm = b erhalten wir die sogenannten Newton-Côtes-Formeln. Für m = 1 ergibt sich speziell die Trapezregel (21.2), wohingegen sich für m = 2 die Simpson-Regel
b
f (x)dx ≈
a
b−a 6
f (a) + 4 f
a + b 2
+ f (b)
ergibt. Da die Polynominterpolation allerdings nur eine bedingt gute Approximation an eine Funktion f liefert, vergleiche Kap. 17, ergibt es im Allgemeinen nur wenig Sinn, den Polynomgrad m beliebig zu erhöhen. Zudem treten ab m = 7 negative Gewichte und dadurch unter Umständen Stabilitätsverluste selbst bei positiven Integranden auf. Die Gewichte der Newton-Côtes-Formeln für m ≤ 6 sind in Tab. 21.1 zu finden. Um eine verbesserte Approximation an ein Integral zu erhalten, unterteilt man den Integrationsbereich, wie bereits in Abschn. 21.1 gesehen, und verwendet die zugehörige zusammengesetzte Newton-Côtes-Formel. Im Fall m = 2 erhält man so die zusammengesetzte Simpson-Regel
b
f (x)dx ≈
a
h f (a) + 4 f (x1 ) + 2 f (x2 ) + 4 f (x3 ) + . . . 3 + 2 f (x2n−2 ) + 4 f (x2n−1 ) + f (b)
mit xi = a + i h für i ∈ {1, 2, . . . , 2n − 1} und h = (b − a)/(2n). Für die Abschätzung des Quadraturfehlers der zusammengesetzten SimpsonRegel benötigen wir das folgende Hilfsresultat.
Tab. 21.1 Die Newton-Côtes Formeln bis zum Polynomgrad m = 6. Bei der angegeben Fehlerabschätzung gilt jeweils h := (b − a)/m b m Gewichte Name a f (x)dx − Q[ f ] 1 2 3 4 5 6
1 1 2 2 1 4 1 6 6 6 1 3 3 1 8 8 8 8 7 32 12 32 90 90 90 90 19 75 50 288 288 288 41 216 27 840 840 840
7 90 50 288 272 840
75 288 27 840
19 288 216 41 840 840
1 3
12 h f C([a,b]) 1 5 (4) C([a,b]) 90 h f 3 5 (4) h f C([a,b]) 80 8 7 (6) h f C([a,b]) 945 275 7 (6) h f C([a,b]) 12096 9 9 (8) C([a,b]) 1400 h f
Trapezregel Simpson-Regel 3/8-Regel Milne-Regel — Weddle-Regel
21.3 Newton-Côtes-Formeln
417
Lemma 21.18 Sei Q[·] eine Quadraturformel für das Integral (21.1) mit zu (a + b)/2 symmetrischen Stützstellen und Gewichten. Ist I [ p] = Q[ p] für alle Polynome p ∈ 2q , dann hat Q[·] mindestens den Exaktheitsgrad 2q + 1.
Beweis Wir betrachten die Basis a + b 2q+1 0 1 2q x ,x ,...,x , x − 2 von 2q+1 . Nach Voraussetzung ist Q[x i ] = I [x i ] für alle i ∈ {0, 1, . . . , 2q}. Ferner ist 2q+1 = 0, Q x − a+b 2 da die Stützstellen und Gewichte symmetrisch zu (a + b)/2 liegen und x − (a + 2q+1 b)/2 punktsymmetrisch zum Punkt (a + b)/2, 0 ist. Andererseits ist auch
I x−
a+b 2q+1 2
a + b 2q+2 b 1 x− = 2q + 2 2 a b − a 2q+2 a − b 2q+2 1 = − 2q + 2 2 2 = 0.
Folglich ist I [ p] = Q[ p] für alle p ∈ 2q+1 .
Somit hat die Simpson-Regel den Exaktheitsgrad 3 anstatt 2. Darüber hinaus gilt das folgende Resultat. Satz 21.19 Sei f ∈ C 4 ([a, b]), dann gilt für die zusammengesetzte SimpsonRegel Sn [ f ] die Fehlerabschätzung |I [ f ] − Sn [ f ]| ≤
b − a 4 (4) b−a h f C([a,b]) , h = . 180 2n
Beweis Wir interpolieren f in jedem der n Teilintervalle [c, d] durch ein Polynom p dritten Grads mit Stützstellen c, d und (c + d)/2, wobei letztere doppelt genommen wird und daher dort f (x) und f (x) vorgegeben sind. Da die Quadraturformel für Polynome dritten Grads exakt ist, verbleibt das Integral über f − p abzuschätzen. Dazu verwenden wir die Fehlerdarstellung (17.5) mit dem Knotenpolynom c + d 2 , w(x) = (x − c)(x − d) x − 2
418
21
Numerische Quadratur
vergleiche Bemerkung 17.8. Durch Integration ergibt sich
d c
f (4) C([a,b]) d − c 5 1 2 | f (x) − p(x)|dx ≤ t (1 − t 2 )dt 4! 2 −1 4 f (4) C([a,b]) d − c 5 = 15 4! 2 d − c b − a 4 (4) = f C([a,b]) . 180 2n
Aufsummation ergibt nun die Behauptung.
Bemerkung 21.20 Für die zusammengesetzte Simpson-Regel werden doppelt so viele Funktionswerte benötigt wie für die zusammengesetzte Trapezregel. Dafür erhält man allerdings auch die doppelte Ordnung, nämlich s = 4.
21.4
Gauß-Quadratur
In diesem Abschnitt wollen wir Gauß-Quadraturformeln konstruieren. Diese basieren auf einer allgemeineren Formulierung des Quadraturproblems: Zu gegebenen m Stützstellen x1 , x2 , . . . , xm und Gewichten w1 , w2 , . . . , wm betrachten wir das Quadraturproblem Gw[ f ] =
m
wi f (xi ) ≈ Iw [ f ] =
i=1
b
f (x)w(x)dx
(21.10)
a
für eine vorgegebene Gewichtsfunktion w. Gauß-Quadraturformeln werden nun so konstruiert, dass sie den maximal möglichen Exaktheitsgrad besitzen. Hierzu liefert der nächste Satz zunächst eine obere Schranke für den maximalen Exaktheitsgrad der Quadraturformel (21.10). Satz 21.21 Die Stützstellen x1 , x2 , . . . , xm seien alle im Intervall [a, b] sowie w > 0 in (a, b). Dann ist der Exaktheitsgrad der Quadraturformel G w [·] aus (21.10) maximal q = 2m − 1.
Beweis Für p(x) =
m (x − xi )2 ∈ 2m i=1
21.4 Gauß-Quadratur
419
ist G w [ p] = 0, während Iw [ p] =
m
b
a
(x − xi )2 w(x) dx > 0
i=1
>0 für x =a,x1 ,x2 ,...,xm ,b
gilt. Hieraus folgt das Behauptete.
Im nachfolgenden Satz zeigen wir, dass mit Hilfe von Orthogonalpolynomen eine Quadraturformel konstruiert werden kann, welche die obere Schranke 2m − 1 des maximal möglichen Exaktheitsgrads auch annimmt. Satz 21.22 Wählt man die Stützstellen x1 , x2 , . . . , xm der Quadraturformel G w [·] als Nullstellen des Orthogonalpolynoms u m vom Grad m bezüglich des Innenprodukts b f (x)g(x)w(x)dx f , g = a
und die Gewichte wi gemäß wi =
b
L i (x)w(x)dx,
(21.11)
a
dann besitzt G w [·] den Exaktheitsgrad 2m − 1.
Beweis Die Quadraturformel G w [·] ist nach Satz 21.16 exakt für Polynome vom Grad q = m. Daher gilt Iw [ p] = G w [ p] für alle p ∈ m . Wir erweitern die Monombasis {1, x, x 2 , . . . , x m } von m durch Hinzunahme der Polynome {u m x, u m x 2 , . . . , u m x m−1 }, zu einer Basis von 2m−1 . Weil der Grad von u m x k jeweils genau m + k ist, erhalten wir so in der Tat eine Basis. Da die Stützstellen von G w [·] den Nullstellen von u m entsprechen, folgt damit G w [u m x k ] = 0 für alle k ∈ {1, 2, . . . , m − 1}. Andererseits ist aber auch b u m (x) x k w(x)dx = 0 für alle k ∈ {1, 2, . . . , m − 1}, Iw [u m x k ] = a
weil u m orthogonal zu m−1 ist. Wir schließen daher Iw [ p] = G w [ p] für alle p ∈ 2m−1 .
420
21
Numerische Quadratur
Tab. 21.2 Stützstellen und Gewichte der Gauß-Legendre-Quadraturformeln m
xi
wi
1 2
0 − √1
2 11
3 4
5
√1 3√ √3 − 515 0 515 √ 1 ± 35 525 − 70 30 √ 1 ± 35 525 + 70 30
0
√ 1 ± 21 245 − 14 70 √ 1 ± 21 245 + 14 70
5 8 5 9 9 9 √ 1 36 (18 + 30) √ 1 36 (18 − 30) 128 225 √ 1 900 (322 + 13 70) √ 1 900 (322 − 13 70)
Beispiel 21.23 Im in der Praxis wichtigsten Fall (a, b) = (−1, 1) und w(x) ≡ 1 sind die zugehörigen Orthogonalpolynome gerade die Legendre-Polynome aus Beispiel 10.19. Man spricht daher von Gauß-Legendre-Quadraturformeln. Bis m = 5 sind die Stützstellen und Gewichte in Tab. 21.2 tabelliert. Für den Fehler bei der Gauß-Quadratur gilt folgendes Resultat: Satz 21.24 Sei f ∈ C 2m ([a, b]) und G w die Gauß-Quadraturformel mit m Stützstellen für Iw . Dann gilt (2m) C([a,b]) Iw [ f ] − G w [ f ] ≤ f , (2m)!γm2
wobei γm wie in (10.8) den Leitkoeffizienten des Orthogonalpolynoms u m (x) bezeichnet.
Beweis Es sei p ∈ 2m−1 dasjenige Polynom, für das gilt f (xi ) = p(xi ),
f (xi ) = p (xi ), i ∈ {1, 2, . . . , m}.
!m (x − xi )2 ∈ 2m das zugehörige Knotenpolynom. Ferner bezeichne q(x) := i=1 Wie im Beweis von Satz 17.5 betrachten wir die Funktion h(t) := f (t) − p(t) −
q(t) f (x) − p(x) , x ∈ [a, b]. q(x)
21.4 Gauß-Quadratur
421
Weil diese m doppelte Nullstellen in den Punkten x1 , x2 , . . . , xm sowie eine einfache Nullstelle in t = x besitzt, folgt nach dem Satz von Rolle, dass h genau 2m (1) (1) (1) Nullstellen τ1 < τ2 < . . . < τ2m in [a, b] hat, h
genau 2m − 1 Nullstellen (2) (2) (2) a < τ1 < τ2 < . . . < τ2m−1 < b hat, und so weiter. Schließlich besitzt h (2m) genau eine Nullstelle ξ ∈ (a, b). In Anbetracht von p (2m) (x) ≡ 0 folgt 0 = h (2m) (ξ ) := f (2m) (ξ ) −
(2m)! f (x) − p(x) q(x)
beziehungsweise f (2m) (ξ ) (x − xi )2 . (2m)! m
f (x) − p(x) =
i=1
Nach Konstruktion sind die Stützstellen xi gerade die Nullstellen des (m + 1)-ten Orthogonalpolynoms u m ∈ m , weshalb f (x) − p(x) =
f (2m) (ξ ) 2 u (x) (2m)!γm2 m
gilt. Daraus ergibt sich Iw [ f ] − G w [ f ] = Iw [ f ] − G w [ p] = Iw [ f − p] f (2m) C([a,b]) b 2 f (2m) C([a,b]) ≤ u (x)w(x)dx = . m (2m)!γm2 (2m)!γm2
a =1
Bemerkung 21.25 Im Fall der Gauß-Legendre-Quadraturformeln gilt gemäß (10.12) γm2 =
2m + 1 (2m)!2 4m · 2m 4 ≈ . 2 2 m! π
Hierbei ergibt sich die letzte Abschätzung aus der Stirlingschen Formel n! =
n n √ 1 1 2π n eλ(n) mit < λ(n) < , e 12n + 1 12n
indem man eλ(n) ≈ 1 benutzt.
422
21
Numerische Quadratur
Übungsaufgaben Aufgabe 21.1 (gewichtete Quadratur) Sei α > −1 und w(x) := x α . Betrachten Sie für f ∈ C([0, 1]) das gewichtete Integral Iw [ f ] =
1
f (x)w(x)dx.
0
Als Approximation an das Integral sei die Quadraturformel Iw [ f ] ≈ Q[ f ] = a f (ξ ) mit der Stützstelle ξ ∈ [0, 1] und dem Gewicht a ∈ R gegeben. Bestimmen Sie ξ und a so, dass die Quadraturformel den maximalen Exaktheitsgrad hat. Wie lautet dieser? Aufgabe 21.2 (korrigierte Trapezregel) Die korrigierte Trapezregel für eine Funktion f ∈ C 1 ([a, b]) ist gegeben durch Q[ f ] =
(b − a)2
b − a f (a) + f (b) + f (a) − f (b) . 2 12
Welchen Exaktheitsgrad besitzt die korrigierte Trapezregel? Wie sieht die zugehörige korrigierte Trapezsumme aus? Aufgabe 21.3 (offene Newton-Côtes-Formeln) Auf dem Intervall (−1, 1) sind die offenen Newton-Côtes-Formeln definiert als interpolatorische Quadraturformeln zu den Stützstellen i +1 xi = 2 − 1, i ∈ {0, 1, . . . , n}. n+2 a) Zeigen Sie, dass die Quadraturformeln mindestens Exaktheitsgrad n, falls n ungerade ist, und n + 1, falls n gerade ist, besitzen. b) Bestimmen Sie für n = 0, n = 1 und n = 2 die zugehörigen Gewichte. Aufgabe 21.4 (Gauss-Quadratur mit teilweise festen Stützstellen) Gegeben sei eine Quadraturformel Q[ f ] durch
b
w(x) f (x)dx ≈ Q[ f ] :=
a
m
n
ak f (yk ) +
k=1
wk f (xk ),
k=1
mit den fixierten Stützstellen y1 , y2 , . . . , ym und den frei wählbaren Stützstellen x1 , x2 , . . . , xn . Ferner definieren wir die Polynome r (x) :=
m
(x − yk ) und s(x) :=
k=1
n
(x − xk ).
k=1
Übungsaufgaben
423
Zeigen Sie, dass Q[ f ] exakt ist für alle Polynome p ∈ m+2n−1 genau dann, wenn Q[ f ] exakt ist für alle p ∈ m+n−1 und a
gilt.
b
w(x)r (x)s(x) p(x)dx = 0 für alle p ∈ n−1
22
Lineare Ausgleichsprobleme
22.1
Normalengleichungen
Im Folgenden seien A ∈ Rm×n und b ∈ Rm . Gesucht ist ein Vektor x ∈ Rn mit Ax ≈ b. Da wir m Gleichungen für n Unbekannte haben, ist das lineare Gleichungssystem im Allgemeinen nicht oder zumindest nicht eindeutig lösbar. Ist m > n, so nennen wir das lineare Gleichungssystem überbestimmt, ist m < n, so nennen wir es unterbestimmt. Speziell überbestimmte Probleme treten häufig auf, wenn es darum geht, Modellparameter an Messdaten anzupassen. Beispiel 22.1 Unter Einfluss der Schwerkraft lässt sich die Flugbahn eines Körpers als Parabel modellieren. Besitzt der Körper zum Zeitpunkt t = 0 am Punkt 0 die Anfangsgeschwindigkeit v = (vx , v y ) und fliegt er anschließend nur unter Einwirkung der Schwerkraft, so ist er zum Zeitpunkt t > 0 am Ort x = vx t,
1 y = v y t − gt 2 , 2
wobei g die Erdbeschleunigung ist. Die Anfangsgeschwindigkeit v y und die Erdbeschleunigung g seien unbekannt und sollen aus Messungen bestimmt werden. Hierzu wurde die Höhe über Grund des Körpers zu folgenden Zeiten gemessen: Es ergeben i ti [s] yi [m]
1 0.1 0.75
2 0.4 2.42
3 1 3.1
4 1.2 2.54
5 1.4 1.6
6 1.6 0.25
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_22
425
426
22
Lineare Ausgleichsprobleme
sich damit sechs Gleichungen für die beiden unbekannten Parameter v y und g: 1 yi = ti v y − ti2 g, i ∈ {1, 2, . . . , 6}. 2 Führen wir die Matrix A ∈ R6×2 mit 1 ai,1 = ti , ai,2 = − ti2 , i ∈ {1, 2, . . . , 6}, 2 ein, so erhalten wir das lineare Gleichungssystem ⎤ ⎤ ⎡ 0.1 −0.005 0.75 ⎥ ⎥ ⎢ ⎢ ⎢0.4 −0.08 ⎥ ⎢2.42⎥ ⎥ ⎢ ⎢ 1 −0.5 ⎥ v y 3.1 ⎥ v ⎥ = y, · =⎢ A y =⎢ ⎥ ⎥ ⎢ ⎢ g ⎢1.2 −0.72 ⎥ g ⎢2.54⎥ ⎣1.4 −0.98 ⎦ ⎣ 1.6 ⎦ 1.6 −1.28 0.25 ⎡
(22.1)
welches keine klassische Lösung besitzt.
Im Fall m > n können die m Gleichungen im Allgemeinen nicht alle exakt erfüllt werden. Die lineare Ausgleichsrechnung liefert nun eine Methode, dennoch sinnvolle Lösungen für über- oder unterbestimmte Gleichungssysteme zu definieren. Hierbei sucht man nach einem Vektor x ∈ Rn , für den das Residuum r := b − Ax
(22.2)
möglichst klein ist. Definition 22.2 Für eine Matrix A ∈ Rm×n und einen Vektor b ∈ Rm heißt das Problem b − Ax2 → min
(22.3) Rn
lineares Ausgleichsproblem. Eine Lösung x ∈ des Ausgleichsproblems heißt Ausgleichslösung oder Kleinste-Quadrate-Lösung.
Bemerkung 22.3 Der Lösungsbegriff in (22.3) ist eine Verallgemeinerung der klassischen Lösung. Gilt nämlich m = n und ist x ∈ Rn eine klassische Lösung, das heißt gilt Ax = b, dann ist offensichtlich x ebenfalls eine Lösung von (22.3).
22.1 Normalengleichungen
427
Satz 22.4 Die Lösungen von (22.3) sind genau die Lösungen der Gaußschen Normalengleichungen A Ax = A b,
(22.4)
insbesondere existiert eine Lösung x. Ist z eine weitere Lösung, so gilt Ax = Az. Das Residuum (22.2) ist eindeutig bestimmt und genügt der Gleichung A r = 0.
Beweis Das Bild der Matrix A ist der lineare Teilraum img( A) = { Ax : x ∈ Rn } ⊂ Rm , der von den Spalten von A aufgespannt wird. Wegen img( A)⊥ = {r ∈ Rm : r z = 0 für alle z ∈ img( A)} = {r ∈ Rm : r A = 0} = ker( A ) folgt ⊥
Rm = img( A) ⊕ ker( A ).
(22.5)
Der Vektor b ∈ Rm lässt sich demnach eindeutig schreiben als b = y + r, y ∈ img( A), r ∈ ker( A ). Folglich gibt es mindestens ein x ∈ Rn mit Ax = y und es gilt A r = A Ax, A b = A y + =0
das heißt, x löst die Normalengleichungen (22.4). Insbesondere ist das Residuum r = b − Ax eindeutig bestimmt. Um zu zeigen, dass x auch Ausgleichslösung ist, setzen wir für beliebiges z ∈ Rn y := Az − Ax. Für das Residuum r = b − Ax folgt dann wegen A r = 0, dass b − Az22 = r − y22 = r22 + y22 ≥ r22 = b − Ax2 . Der Vektor x minimiert also (22.3). Gleichheit gilt in dieser Abschätzung nur dann für ein z ∈ Rn , wenn 0 = y22 = A(z − x)22 .
428
22
Lineare Ausgleichsprobleme
Dies ist genau dann der Fall, wenn z − x ∈ ker( A) ⊂ ker( A A), was gleichbedeutend damit ist, dass z ebenfalls (22.4) löst.
Bemerkung 22.5 Aus A r = 0 schließen wir, dass das Residuum senkrecht auf den Spalten von A steht. Das Residuum r ist folglich die Normale zum von den Spalten der Matrix A aufgespannten Raum. Daher rührt die Bezeichnung Normalengleichungen.
Satz 22.6 Die Matrix A A ∈ Rn×n ist symmetrisch und positiv semidefinit. Darüber hinaus ist A A genau dann positiv definit, wenn der Kern von A trivial ist, das heißt, wenn ker( A) = {0}. Letzteres ist genau dann der Fall, wenn die Spalten von A linear unabhängig sind.
Beweis Offensichtlich ist A A symmetrisch und wegen x A Ax = Ax22 ≥ 0 für alle x ∈ Rn auch positiv semidefinit. Ist ker A = {0}, so ergibt sich Gleichheit nur im Fall x = 0, das heißt, A A ist positiv definit. Beispiel 22.7 (Fortsetzung von Beispiel 22.1) Für das überbestimmte Gleichungssystem (22.1) lauten die gesuchten Normalengleichungen 7.1300 −4.8165 v y 9.8310 vy = = = A y. A A g −4.8165 3.37365 g −5.4642
Die Matrix A A ist in der Tat symmetrisch und positiv definit. Die damit eindeutige Lösung ist mit drei Stellen Genauigkeit gegeben durch 8.01 vy = . g 9.81 Zwischen dem hier vorgestellten linearen Ausgleichsproblem und der linearen Mehrfachregression aus der Statistik gibt es einen engen Zusammenhang, wie das folgende Beispiel aufzeigt.
22.1 Normalengleichungen
429
Beispiel 22.8 (lineare Mehrfachregression) Bei der linearen Mehrfachregression wird versucht, eine beobachtete, abhängige Variable y durch n unabhängige Variablen x1 , x2 , . . . , xn eines linearen Modells zu erklären. Dazu nehmen wir an, dass wir m ≥ n Observationen der abhängigen Variable y von der Form yi = β1 xi,1 + β2 xi,2 + . . . + βn xi,n + εi , i ∈ {1, 2, . . . , m}, haben. Dabei sind xi,1 , xi,2 , . . . , xi,n die zugehörigen Werte der unabhängigen Variablen, β1 , β2 , . . . βn die zu schätzenden Parameter und εi ∼ N (0, σ 2 ) ein normalverteilter Fehlerterm. Mit ⎡ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎤ x1,1 x1,2 · · · x1,n β1 ε1 y1 ⎢ x2,1 x2,2 · · · x2,n ⎥ ⎢ β2 ⎥ ⎢ ε2 ⎥ ⎢ y2 ⎥ ⎢ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎥ y := ⎢ . ⎥ , X := ⎢ . .. .. ⎥ , β := ⎢ .. ⎥ , ε := ⎢ .. ⎥ ⎣ .. ⎣ ⎣ . ⎦ ⎣ .. ⎦ ⎦ ⎦ . . . ym
xm,1 xm,2 · · · xm,n
βn
εm
ergibt sich die Matrixformulierung y = Xβ + ε. Um β zu schätzen, betrachtet man die Likelihood-Funktion. Unter der Annahme, dass die Fehlerterme stochastisch unabhängig sind, lautet diese L(β) = (2π σ 2 )−m/2 e
−
y −Xβ2 2 2σ 2
.
Sie beschreibt die Wahrscheinlichkeitsdichte von β in Abhängigkeit von y unter der Bedingung, dass X gegeben ist. Der Schätzwert für β ergibt sich nun als Maximum der Likelihood-Funktion. Um dieses zu bestimmen, logarithmiert man die Likelihood-Funktion zunächst, da dies die Position des Maximums nicht verändert und erhält y − Xβ22 m . log L(β) = − log(2π σ 2 ) − 2 2σ 2 Weil der erste Summand unabhängig von β ist, führt die Maximierung dieses Ausdrucks auf die Minimierung von y − Xβ2 . Gemäß Satz 22.4 wird das Minimum für die Lösung der Gaußschen-Normalengleichungen X Xβ = X y angenommen.
430
22
Lineare Ausgleichsprobleme
Prinzipiell könnte man das lineare Ausgleichsproblem mit den Gaußschen Normalengleichungen auch numerisch behandeln, etwa mittels einer Cholesky-Zerlegung der Matrix A A. Die Kondition der Normalengleichungen ist allerdings erheblich schlechter als die Kondition des ursprünglichen Problems. Dies überlegt man sich leicht anhand einer invertierbaren Matrix A ∈ Rn×n . Dann ist die Kondition des linearen Gleichungssystems Ax = b gegeben durch −1
cond2 ( A) = A2 · A
2 =
λmax ( A A) . λmin ( A A)
Hingegen erhalten wir für die Kondition der Normalengleichungen cond2 ( A A) = A A2 · ( A A)−1 2 =
2 λmax ( A A) = cond2 ( A) . λmin ( A A)
Wir wollen daher in den nachfolgenden Abschnitten einen Algorithmus herleiten, der die Normalengleichungen zur Lösung des Minimierungsproblems (22.3) vermeidet.
22.2
QR-Zerlegung
Im Folgenden sei A ∈ Rm×n eine gegebene Matrix mit m ≥ n = rang( A). Eine QRZerlegung ist eine Faktorisierung A = Q R in eine obere Dreiecksmatrix R ∈ Rm×n und eine orthogonale Matrix Q ∈ Rm×m . Über die definierende Eigenschaft orthogonaler Matrizen aus Satz 6.4 hinaus werden wir in diesem Abschnitt die folgenden Eigenschaften benötigen. Satz 22.9 Ist Q ∈ Rn×n eine orthogonale Matrix, so gelten die folgenden Aussagen: 1. Q ist eine das heißt, es gilt Qx2 = x2 für alle x ∈ Rn . Isometrie, −1 = Q2 = 1 und daher cond2 ( Q) = 1. 2. Es gilt Q 2 3. Ist P ∈ Rn×n eine weitere orthogonale Matrix, so sind PQ und Q P ebenfalls orthogonal.
Beweis Satz 6.4 besagt Q Q = Q Q = I. Hieraus folgen sofort die erste Aussage Qx22 = ( Qx) Qx = x Q Qx = x x = x22 und die zweite Aussage −1 Q = Q 2 = Q2 = max Qx2 = 1. 2 x2 =1
22.2 QR-Zerlegung
431
Abb. 22.1 Veranschaulichung der HouseholderTransformationen als Spiegelung
Schließlich gilt ( P Q) P Q = Q P P Q = Q Q = I. =I
Die Orthogonalität von Q P zeigt man analog.
Definition 22.10 Zu gegebenem v ∈ Rn \ {0} wird die Matrix P=I−
2 vv ∈ Rn×n v22
Householder-Transformation genannt. Householder-Transformationen beschreiben Spiegelungen, wobei der definierende Vektor v die Normale zur Spiegelachse ist. Eine Veranschaulichung der HouseholderTransformation befindet sich in Abb. 22.1. Lemma 22.11 Die Householder-Transformation P ist eine symmetrische, orthogonale Matrix mit Pv = −v und für alle w ∈ Rn mit w ⊥ v gilt Pw = w.
432
22
Lineare Ausgleichsprobleme
Beweis Aus der Definition von P folgt unmittelbar, dass P symmetrisch ist. Weiter gilt P P = P2 =
I−
=I−
2 vv v22
I−
2 vv v22
=I−
4 4 vv + v v v v v22 v42 =v22
4 4 vv + vv = I. 2 v2 v22
Außerdem ergibt sich für den Vektor v aus der Definition von P, dass Pv = Iv −
2 v v v = v − 2v = −v, v22 =v22
und für beliebiges w ⊥ v, dass Pw = Iw −
2 v v w = w. v22 =0
Eine QR-Zerlegung der Matrix A ∈ Rm×n kann nun berechnet werden, indem man diese sukzessive durch Multiplikation mit geeigneten Householder-Transformationen Q 1 , Q 2 , . . . , Q n−1 auf obere Dreiecksgestalt bringt. Hierfür benötigen wir das nächste Lemma. Es gibt Aufschluss darüber, wie man HouseholderTransformationen für jedes x ∈ Rn \ {0} derart konstruiert, dass P x = σ e1 mit σ ∈ R \ {0} gilt. Lemma 22.12 Gegeben sei x ∈ Rn \ {0} mit x ∈ / span{e1 }. Für v = x + σ e1 mit σ = ±x2 gilt
I−
2 x = −σ e1 . vv v22
22.2 QR-Zerlegung
433
Beweis Wegen x ∈ / span{e1 } ist v = 0. Weiter gilt x + σ e1 22 = x22 + 2σ x e1 + σ 2 = 2(x + σ e1 ) x. Daraus erhält man 2v x = 2(x + σ e1 ) x = x + σ e1 22 = v22 . Division durch v22 und Multiplikation mit v = x + σ e1 liefert die Gleichung 2 v(v x) = x + σ e1 , v22
welche die Behauptung impliziert.
Bemerkung 22.13 Damit im Fall x1 = 0 bei der Berechnung von v keine Auslöschung auftritt, wählen wir σ mit demselben Vorzeichen wie x1 . Aus v = x + sign(x1 )x2 e1 mit der Vorzeichenfunktion sign(x) :=
1, x ≥ 0, −1, x < 0,
folgt nämlich v22 = 2x22 + 2|x1 |x2 .
Satz 22.14 Sei A ∈ Rm×n mit m ≥ n = rang( A). Dann existieren eine orthogonale Matrix Q ∈ Rm×m und eine obere Dreiecksmatrix R ∈ Rm×n mit ⎤⎫ ⎡ ··· ⎬ ⎢ . . .. ⎥ n ⎢ ⎭ . .⎥ ⎥ ⎢ ⎥ ⎢ A = Q · R = Q ·⎢ ⎥⎫ ⎥ ⎢ ⎥⎬ ⎢ ⎣ 0 ⎦ m−n ⎭
n
434
22
Lineare Ausgleichsprobleme
Beweis Wir bestimmen die gesuchte Zerlegung, indem wir in jedem Schritt i ∈ {1, 2, . . . , n − 1} eine Householder-Transformation Q i an A heranmultiplizieren, um sukzessive die Spalten von R zu erhalten: Q n−1 Q n−2 · · · Q 1 A = R.
(22.6)
Wegen der Symmetrie der Householder-Transformationen, ist die Matrix Q dann gegeben durch Q = Q 1 Q 2 · · · Q n−1 . (1) Im ersten Schritt setzen wir A1 = ak, := A sowie (1) (1) m v 1 := a(1) :,1 + sign a1,1 a :,1 2 e1 ∈ R , β1 :=
2 . v 1 22
Für P 1 := (I − β1 v 1 v 1 ) ∈ Rm×m gilt dann gemäß Lemma 22.12, dass
(1) P 1 a(1) :,1 = r1,1 e1 und |r1,1 | = a :,1 2 = 0, beziehungsweise ⎡
r1,1 r1,2 · · · r1,n
⎢ P 1 A1 = ⎢ ⎣ 0
A2
⎤ ⎥ ⎥ mit A2 = a (2) ∈ R(m−1)×(n−1) . k, ⎦
Führen wir dieses Vorgehen fort, so erhalten wir im i-ten Schritt (i) (i) (i) v i := a:,1 + sign a1,1 a:,1 2 e1 ∈ Rm−i−1 , βi :=
2 v i 22
mit zugehöriger Householder-Transformation P i := (I−βi v i v i ) ∈ R(m−i+1)×(m−i+1) . Nach Lemma 22.12 folgt nun wieder (i) (i) = 0. P i a:,1 = ri,i e1 und |ri,i | = a:,1 2 Man beachte, dass |ri,i | für alle i ∈ {1, 2, . . . , n − 1} immer von Null verschieden (i) und damit auch A einen Rangdefekt hätten. ist, da ansonsten Ai = ak, Wir setzen nun für i ∈ {1, 2, . . . , n − 1} wi := [0, . . . , 0, vi,1 , vi,2 , . . . , vi,m−i+1 ] ∈ Rm
i-mal
22.2 QR-Zerlegung
435
und
Q i :=
I 0 = (I − βi wi wi ) ∈ Rm×m . 0 Pi
(22.7)
Dann folgt ⎤ r1,1 · · · r1,i−1 r1,i · · · r1,n ⎢ .. .. .. ⎥ .. ⎢ . . . . ⎥ ⎥ ⎢ ⎥ ⎢ r · · · r r i−1,i−1 i−1,i i−1,n ⎥ Q i Q i−1 · · · Q 1 A = ⎢ ⎥ ⎢ ⎥ ⎢ ⎦ ⎣ 0 P i Ai ⎡
⎡
r1,1 · · · r1,i−1 ⎢ .. .. ⎢ . . ⎢ ⎢ r i−1,i−1 ⎢ =⎢ ⎢ ⎢ ⎢ ⎣ 0
⎤ · · · r1,n .. ⎥ . ⎥ ⎥ ri−1,i · · · ri−1,n ⎥ ⎥ . ri,i ri,i+1 · · · ri,n ⎥ ⎥ ⎥ ⎥ 0 Ai+1 ⎦ r1,i .. .
Insbesondere bleiben hierbei aufgrund der Struktur von Q i die ersten Zeilen von Q i−1 Q i−2 · · · Q 1 A unverändert. Wir erhalten demnach die gewünschte Zerlegung (22.6). Der Beweis von Satz 22.14 ist konstruktiv und führt auf den nachfolgenden Algorithmus zur QR-Zerlegung einer Matrix A ∈ Rm×n mit m ≥ n. Algorithmus 22.15 (QR-Zerlegung) input: Matrix A ∈ Rm×n output: QR-Zerlegung A = Q R (1) ➀ Initialisierung: A1 = ak, := A ➁ für i = 1, 2, . . . , n − 1 setze (i) (i) (i) v i := a:,1 + sign a1,1 a:,1 2 e1 ∈ Rm−i+1 , βi :=
2 v i 22
berechne Ai := (I − βi v i v i ) Ai (i+1) aus Ai durch Streichen der ersten Zeile und erhalte Ai+1 = ak, der ersten Spalte
436
22
Lineare Ausgleichsprobleme
Der Algorithmus 22.15 bricht zusammen, wenn rang( A) = p < n gilt. In diesem Fall muss man die Spalten von A permutieren (ähnlich zur Pivotsuche) und erhält eine Faktorisierung der Art R1 R2 Q AP = 0 0 mit einer Permutationsmatrix P ∈ Rn×n , einer oberen Dreiecksmatrix R1 ∈ R p× p , und einer eventuell vollbesetzten Matrix R2 ∈ R p×(n− p) . Bemerkung 22.16 1. Bei der Implementierung sollten die Householder-Transformationen P = (I − βvv ) nicht explizit aufgestellt werden, da sonst der Aufwand zur Berechnung von P · A von der Ordnung O(m 2 n) ist. Wesentlich effizienter ist es, die Anwendung von P auf einen Vektor zu implementieren: u = A v, P A = A − βvu .
(22.8)
In diesem Fall ist der Aufwand nur noch von der Ordnung O(mn). 2. Modifizieren wir Formel (22.7) aus dem Beweis der QR-Zerlegung gemäß wi := [0, . . . , 0, 1, vi,2 /vi,1 , . . . , vi,m−i+1 /vi,1 ] ∈ Rm , βi :=
2 2vi,1
v i 22
,
so lassen sich die nichttrivialen Einträge von wi in den freiwerdenden Einträgen von A speichern. Zusätzlich muss nur noch der Vektor β = [β1 , β2 , . . . , βn−1 ] gespeichert werden. Die Matrix Q ist dann wie folgt gegeben Q=
n
I − βi wi wi
.
i=1
Um den Aufwand der QR-Zerlegung zu bestimmen, schlüsseln wir den Aufwand im i-ten Schritt unter Verwendung von (22.8) auf. Es werden • • • •
m − i + 3 Multiplikationen zum Berechnen von v, 2 Multiplikationen zum Berechnen von β, (m − i + 2)(n − i + 1) Multiplikationen zum Berechnen von u und (m − i)(n − i + 1) Multiplikationen zum Berechnen von Ai
22.2 QR-Zerlegung
437
benötigt. Dies führt auf 2(m − i + 1)(n − i + 1) + O(m) Multiplikationen. Für den Gesamtaufwand ergibt sich deshalb n n j:=n−i 2 (m − i + 1)(n − i + 1) = 2 j(m − n + j) i=1
j=1
=2
n
j 2 + 2(m − n)
j=1
n
j
j=1
2 3 n + (m − n)n 2 + O(mn) 3 1 = mn 2 − n 3 + O(mn). 3 Dies bedeutet, dass der Aufwand ungefähr doppelt so groß ist wie bei der LRZerlegung. =
Beispiel 22.17 Gesucht sei die QR-Zerlegung von ⎡ ⎤ 1 1/2 A = A1 = ⎣−2 0 ⎦ . 2 −1 Die erste Spalte von A1 ist ⎡ a(1) :,1 Also ist
⎤ 1 √ = ⎣−2⎦ , a(1) :,1 2 = 1 + 4 + 4 = 3. 2
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ 1 1 4 (1) (1) (1) v 1 = a:,1 + sign a1,1 a:,1 2 e1 = ⎣−2⎦ + 3 ⎣0⎦ = ⎣−2⎦ . 2 0 2
Somit folgt β1 = woraus sich
2 1 = , 12 v 1 22
⎡ ⎤ 4 1 1 −2 2 1 ⎣ ⎦ −2 = u = β1 A1 v 1 = 1/2 0 −1 0 12 2
ergibt. Dies bedeutet ⎡
⎤ ⎡ 1 1/2 4 Q 1 A1 = A1 − v 1 u = ⎣−2 0 ⎦ − ⎣−2 2 −1 2
⎤ ⎡ ⎤ 0 −3 1/2 0⎦ = ⎣ 0 0 ⎦ . 0 0 −1
438
22
Lineare Ausgleichsprobleme
Die erste Spalte stimmt dabei gemäß der Konstruktion der Householder-Transformation mit −σ e1 überein. Diese ist gegeben durch ⎡ ⎤ −1 2 −2 1 Q 1 = P 1 = I − β1 v 1 v 1 = ⎣ 2 2 1 ⎦ . 3 −2 1 2 Im zweiten Schritt ist (2) A2 = a:,1 =
0 , a(2) :,1 2 = 1. −1
Mit (2) (2) (2) v 2 = a:,1 + sign a1,1 a:,1 2 e1 =
0 1 −1 − = −1 0 −1
und β2 = folgt
2 =1 v 2 22
−1 = 1 . u = β2 A2 v 2 = 0 −1 −1
Damit ergibt sich 0 −1 1 − = , P 2 A2 = A2 − v 2 u = −1 −1 0
weshalb die Matrix Q 2 die Form ⎤ ⎡ ⎤ ⎡ 1 0 0 1 0 ⎦ = ⎣0 0 −1⎦ . Q2 = ⎣ 0 I − β2 v 2 v 2 0 −1 0 besitzt. Damit erhalten wir für Q schließlich ⎡ ⎤⎡ ⎤ ⎡ ⎤ −1 2 −2 1 0 0 −1 2 −2 1⎣ 1 2 2 1 ⎦ ⎣0 0 −1⎦ = ⎣ 2 −1 −2⎦ , Q = Q1 Q2 = 3 −2 1 2 3 −2 −2 −1 0 −1 0 während R gegeben ist durch ⎡
⎤ −3 1/2 R = ⎣ 0 1 ⎦. 0 0
22.3 Methode der Orthogonalisierung
22.3
439
Methode der Orthogonalisierung
Wir wollen abschließend die Methode der Orthogonalisierung herleiten, mit deren Hilfe das lineare Ausgleichsproblem ohne Verschlechterung der Kondition lösbar ist. Dazu betrachten wir zunächst den Fall, dass die Matrix A ∈ Rm×n mit m ≥ n = rang( A) obere Dreiecksstruktur besitzt, das heißt A=
R 0
mit einer oberen Dreiecksmatrix R ∈ Rn×n . Der Vektor b ∈ Rm sei analog zerlegt: b=
c , c ∈ Rn , d ∈ Rm−n . d
Damit haben wir b −
Ax22
2 c c − Rx 2 R = c − Rx2 + d2 . − x = = 2 2 d 0 2 d − 0x 2
Da die obere Dreiecksmatrix R invertierbar ist, ist die Lösung des Minimierungsproblems (22.3) offensichtlich gegeben durch x = R−1 c ∈ Rn . Die Größe des Residuums r = b − Ax können wir auch sofort ablesen, nämlich r2 = d2 . Satz 22.18 Seien m ≥ n und A ∈ Rm×n eine Matrix mit linear unabhängigen Spalten sowie der QR-Zerlegung R A= Q , 0
Q ∈ Rm×m , R ∈ Rn×n .
Für beliebiges b ∈ Rm sei c , c ∈ Rn , d ∈ Rm−n . Q b= d
Dann ist die Lösung x ∈ Rn des Ausgleichsproblems (22.3) eindeutig bestimmt durch Rx = c. Die Norm des Residuums r = b − Ax ist gegeben durch r2 = d2 .
440
22
Lineare Ausgleichsprobleme
Beweis Wegen Q z2 = z2 für alle z ∈ Rm folgt 2 c R b − Ax22 = Q( Q b − Q Ax)22 = Q b − Q Ax22 = d − 0 x 2 = c − Rx22 + d22 . Weil A vollen Rang besitzt, ist R nicht singulär. Damit wird dieser Ausdruck minimal für die eindeutig bestimmte Lösung x := R−1 c ∈ Rn . Beispiel 22.19 Wir führen das Vorgehen wieder mit den Zahlen aus Beispiel 22.1 vor. Die QR-Zerlegung der Matrix A aus (22.1) lautet A = Q R mit ⎤ ⎡ −0.037450 −0.180608 −0.383435 −0.453114 −0.520457 −0.585464 ⎢−0.149801 −0.549195 −0.496965 −0.248870 0.115054 0.594808 ⎥ ⎥ ⎢ ⎢−0.374503 −0.506796 0.733552 −0.216753 −0.132730 −0.014379⎥ ⎥ ⎢ Q=⎢ ⎥ ⎢−0.449404 −0.261679 −0.219283 0.781626 −0.202544 −0.171792⎥ ⎣−0.524304 0.098930 −0.138633 −0.206085 0.713220 −0.380716⎦ −0.599205 0.575031 −0.024498 −0.179887 −0.385438 0.358847 und
⎡
⎤ −2.67021 1.80379 ⎢ 0.00000 −0.34634 ⎥ ⎢ ⎥ ⎥ ⎢ 0 0 ⎢ ⎥ R ⎥. =⎢ 0 0 ⎢ ⎥ 0 ⎢ ⎥ 0 0 ⎢ ⎥ ⎣ ⎦ 0 0 0 0
Wir berechnen
⎤ ⎤ ⎡ −3.6817 0.75 ⎢2.42⎥ ⎢−3.3982⎥ ⎥ ⎥ ⎢ ⎢ ⎥ ⎢−0.0011⎥ ⎢ ⎢ 3.1 ⎥ ⎥. ⎢ Q y= Q ⎢ ⎥ ⎥=⎢ ⎢2.54⎥ ⎢−0.0034⎥ ⎣ 1.6 ⎦ ⎣ 0.0070 ⎦ 0.0000 0.25 ⎡
Die gewünschte Partitionierung von Q y ist somit ⎡ ⎤ −0.0011 ⎢−0.0034⎥ c −3.6817 ⎥ , c= , d=⎢ Q y = ⎣ 0.0070 ⎦ . d −3.3982 0.0000 Deshalb erhalten wir als zu lösendes Gleichungssystem −3.6817 −2.67021 1.80379 vy = Rx = = c. −3.3982 0.00000 −0.34634 g
Übungsaufgaben
441
Es ergibt sich v y = 8.01, g = 9.81 in Übereinstimmung mit Beispiel 22.7 und die Norm des Residuums ist r2 = d2 = 0.0078. Im Fall m = n = rang( A) ist das Gleichungssystem Ax = b eindeutig lösbar. Speziell ist das Residuum Null und Satz 22.18 besagt dann: Zerlege A = Q R und löse Q Rx = b durch Rückwärtssubstitution Rx = Q b. Die QR-Zerlegung kann demnach analog zur LR-Zerlegung zur Lösung eines nichtsingulären linearen Gleichungssystems Ax = b verwendet werden. Bemerkung 22.20 Die QR-Zerlegung gehört zu den stabilsten Algorithmen in der numerischen linearen Algebra. Der Grund dafür ist, dass Orthogonaltransformationen wegen cond2 ( Q) = 1 keinerlei Fehlerverstärkung erzeugen. Insbesondere besitzt die Rückwärtssubstitution dieselbe Kondition wie das Ausgangsproblem, denn aus Qx2 = x2 folgt max A−1 x 2 A2 A−1 2 = max Ax2 x2 =1 x2 =1 = max Q Rx2 max R−1 Q x 2 x2 =1 x2 =1 = max Rx2 max R−1 y2 x2 =1 y2 =1 −1 = R2 R 2 , das heißt cond2 (R) = cond2 ( A).
Übungsaufgaben Aufgabe 22.1 (Normalengleichungen) Bestimmen Sie diejenige Parabel p(x) = ax 2 + bx + c,
442
22
Lineare Ausgleichsprobleme
welche zu den Daten i 0123 xi −1 0 1 2 yi 1 0 1 0 die Summe der Fehlerquadrate 3
p(xi ) − yi
2
i=0
minimiert. Lösen Sie dazu die Normalengleichungen. Aufgabe 22.2 (Sattelpunktformulierung) Sei A ∈ Rm×n eine Matrix mit Rang n ≤ m und es gelte b I A λ = . 0 A 0 x Zeigen Sie, dass x ∈ Rn den Normalengleichungen A Ax = A b genügt. Welcher Größe entspricht der Vektor λ? Aufgabe 22.3 (Regularisierung) Zu A ∈ Rm×n und b ∈ Rm sei für α > 0 und x ∈ Rn das quadratische Tichonov-Funktional Tα (x) := b − Ax2 + αx2 gegeben. Man zeige: a) Für jedes α > 0 existiert ein eindeutig bestimmtes Minimum x α ∈ Rn von Tα (x α ), das heißt, es ist Tα (x α ) ≤ Tα (x) für alle x ∈ Rn . b) Das Minimum x α erfüllt das lineare Gleichungssystem ( A A + α I)x α = A b. Aufgabe 22.4 (QR-Zerlegung) Lösen Sie das lineare Gleichungssystem Ax = b für ⎡ ⎤ ⎡ ⎤ 1 4 −2 3 A = ⎣2 4 −2⎦ , b = ⎣4⎦ 20 6 8 vermittels QR-Zerlegung.
Übungsaufgaben
443
Aufgabe 22.5 (Givens-Rotation) Seien c, s ∈ R mit c2 + s 2 = 1. Die GivensRotation G i, j = [gk, ]nk,=1 ∈ Rn×n ist definiert durch ⎡
G i, j
mit
gk,
⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ =⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
⎤
1
..
. 1 ··· .. . −s · · · c .. .
⎧ ⎪ c, ⎪ ⎪ ⎪ ⎪ ⎪ ⎨s, = −s, ⎪ ⎪ ⎪ 1, ⎪ ⎪ ⎪ ⎩0,
falls k falls k falls k falls k sonst.
s .. . c
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ 1 ⎥ ⎥ .. . ⎦ 1
= = i oder k = = j, = i und = j, = j und = i, = und k = i, j,
Zeigen Sie: a) Die Givens-Rotation ist orthogonal. b) Für x = [xk ]nk=1 ∈ Rn sei b = [bk ]nk=1 ∈ Rn gegeben durch b = G i, j x. Gilt c2 =
xi2 xi2 + x 2j
und s 2 =
x 2j xi2 + x 2j
,
so folgt b j = 0 und bk = xk für alle k = i, j. c) Wie kann mit Hilfe von Givens-Rotationen eine QR-Zerlegung bestimmt werden?
23
Iterative Lösungsverfahren
23.1
Fixpunktiterationen
In vielen konkreten Problemstellungen treten nichtlineare Gleichungen oder gar Systeme nichtlinearer Gleichungen auf. Während wir Verfahren zur Lösung linearer Gleichungssysteme in Kap. 7 kennengelernt haben, welche die Lösung in endlich vielen Schritten berechnen, ist dies bei nichtlinearen Gleichungssystemen im Allgemeinen unmöglich. Es werden deshalb fast immer iterative Verfahren angewandt, bei denen eine Folge von Approximationen konstruiert wird, die gegen die gesuchte Lösung konvergiert. Definition 23.1 Eine Abbildung : D → D heißt Selbstabbildung von D ⊂ Rn . Gilt zusätzlich (x) − ( y) ≤ Lx − y für alle x, y ∈ D für ein L < 1, so heißt kontrahierend.
Bemerkung 23.2 Eine kontrahierende Abbildung ist offenbar immer auch Lipschitzstetig.
© Der/die Autor(en), exklusiv lizenziert durch Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2_23
445
446
23
Iterative Lösungsverfahren
Definition 23.3 Sei : D → D eine Selbstabbildung von D ⊂ Rn . Ein Punkt x ∈ D ist ein Fixpunkt von , falls dieser der Fixpunktgleichung x = (x ) genügt. Nichtlineare Gleichungen werden zumeist in eine Fixpunktgleichung umgeformt, weil zu ihrer Lösung folgendes iterative Verfahren naheliegt: Für einen geeigneten Startwert x 0 definiert man die Folge {x i }i∈N durch x i+1 := (x i ), i = 0, 1, 2, . . . .
(23.1)
Eine solche Iteration heißt Fixpunktiteration. Satz 23.4 (Banachscher Fixpunktsatz) Sei K ⊂ Rn eine abgeschlossene Menge. Ferner sei eine kontrahierende Selbstabbildung von K . Dann existiert genau ein Fixpunkt x ∈ K und für jeden Startwert x 0 ∈ K konvergiert die durch die Iterationsvorschrift (23.1) definierte Folge {x i }i∈N gegen diesen Fixpunkt. Ferner gelten die folgenden Abschätzungen: x − x i ≤ Lx − x i−1 Li 2. A-piori-Schranke: x − x i ≤ x 1 − x 0 1−L L 3. A-posteriori-Schranke: x − x i ≤ x i − x i−1 1−L 1. Monotonie:
Beweis Sei x 0 ∈ K beliebig. Wir zeigen zunächst, dass die Folge {x i }i∈N eine Cauchy-Folge ist. Da (x) ∈ K für beliebiges x ∈ K ist, gilt x i ∈ K für alle i ∈ N. Für beliebiges i ∈ N folgt weiter die Abschätzung x i+1 − x i =
(x i ) − (x i−1 )
≤ Lx i − x i−1
= L(x i−1 ) − (x i−2 ) ≤ L 2 x i−1 − x i−2 = L 2 (x i−2 ) − (x i−3 ) ≤ L 3 x i−2 − x i−3 = . . . ≤ L i x 1 − x 0 . Eingesetzt in die Dreiecksungleichung x j − x i ≤
j−1 k=i
x k+1 − x k
23.1 Fixpunktiterationen
447
liefert dies x j − x i ≤
j−1
L k x 1 − x 0 = x 1 − x 0
k=i
j−1
L k = x 1 − x 0 L i
k=i
j−i−1
Lk
k=0
1 − L j−i L i i→∞ = x 1 − x 0 L i −→ 0. ≤ x 1 − x 0 1−L 1−L Dies bedeutet, zu jedem ε > 0 existiert ein N ∈ N, so dass für alle N < i < j gilt x j − x i ≤ ε. Demnach ist {x i }i∈N eine Cauchy-Folge. Weil K ⊂ Rn vollständig ist, existiert der Grenzwert x = lim x i ∈ K . i→∞
Ferner ist nach Voraussetzung Lipschitz-stetig, also insbesondere stetig auf K , woraus x = lim x i+1 = lim (x i ) = lim x i = (x ) i→∞
i→∞
i→∞
x
folgt, das heißt, ∈ K ist Fixpunkt von . Dieser ist eindeutig, denn ist x ∈ K ein weiterer Fixpunkt von , dann gilt 0 ≤ x − x = (x ) − (x ) ≤ Lx − x . Wir schließen x − x = 0 beziehungsweise x = x . Die Monotonie folgt gemäß 0 ≤ x − x i = x − (x i−1 ) ≤ Lx − x i−1 . Um die beiden Fehlerschranken zu zeigen, wenden wir noch die Dreiecksungleichung an x − x i ≤ Lx − x i + x i − x i−1 ≤ Lx − x i + Lx i − x i−1 . Hieraus ergibt sich dann x − x i ≤
L L2 Li x i − x i−1 ≤ x i−1 − x i−2 ≤ . . . ≤ x 1 − x 0 . 1−L 1−L 1−L
448
23
Iterative Lösungsverfahren
Beispiel 23.5 Jede Lösung des nichtlinearen Gleichungssystems x = 0.5 sin x + 0.1 cos y y = 0.5 cos x − 0.1 sin y ist ein Fixpunkt der Abbildung : R2 → R2 mit 0.5 sin x + 0.1 cos y (x, y) := . 0.5 cos x − 0.1 sin y Für die Jacobi-Matrix von , 0.5 cos x − 0.1 sin y , (x, y) = −0.5 sin x − 0.1 cos y
folgt L := (x, y) F = 0.25(cos x)2 + 0.01(sin y)2 + 0.25(sin x)2 + 0.01(cos y)2 √ = 0.26 ≈ 0.510. Also ist : R2 → R2 kontrahierend, und besitzt nach dem Banachschen Fixpunktsatz genau einen Fixpunkt [x , y ] ∈ R2 . Die Folge xi+1 := (xi , yi ) yi+1 konvergiert für jeden Startvektor [x, y] ∈ R2 gegen [x , y ] . Wir wählen x0 = y0 = 0 und verlangen die Genauigkeit xi x −6 yi − y ≤ 10 . 2 Unter Verwendung der A-priori-Schranke xi Li x yi − y ≤ 1 − L 2
x1 x0 y1 − y0 2
ergibt sich i ≥ 21 als hinreichende Bedingung. Die folgende Tabelle enthält neben der Iterierten xi und yi auch die Werte L xi xi−1 := ei − yi−1 2 1 − L yi aus der A-posteriori-Fehlerschranke:
23.1 Fixpunktiterationen i 1 2 3 4 5 .. . 10 .. . 16 17 18 .. . 21
449
xi 0.100000 0.137675 0.158684 0.168975 0.174128 .. . 0.179093 .. . 0.179250 0.179250 0.179251 .. . 0.179251
yi 0.500000 0.449560 0.451811 0.450058 0.449377 .. . 0.448641 .. . 0.448617 0.448617 0.448617 .. . 0.448617
ei 5.3 · 10−1 6.6 · 10−2 2.2 · 10−2 1.1 · 10−2 5.4 · 10−3 .. . 1.7 · 10−4 .. . 2.6 · 10−6 1.3 · 10−6 6.4 · 10−7 .. . 7.9 · 10−8
Offensichtlich wird der gewünschte Abbruchfehler ε = 10−6 bereits nach i = 18 Iterationen erzielt. Der Banachsche Fixpunktsatz garantiert die Existenz eines Fixpunkts und die Konvergenz der Fixpunktiteration. In der Praxis ist die Existenz eines Fixpunkts meist bekannt (beispielsweise durch graphische Betrachtungen) und sogar seine ungefähre Lage. In dieser Situation besteht die Relevanz des Banachschen Fixpunktsatzes darin, ein relativ einfach zu überprüfendes Kriterium für die Konvergenz der Fixpunktiteration zu liefern: Korollar 23.6 Seien : D → Rn stetig differenzierbar auf der offenen Menge D ⊂ Rn und x ∈ D ein Fixpunkt von . Zusätzlich sei · V eine Norm auf Rn und · M eine verträgliche Matrixnorm, für die (x ) M < 1 gelte. Dann gibt es ein ε > 0 derart, dass für jedes x 0 mit x − x 0 V ≤ ε die Folge {x i }i∈N , definiert durch die Fixpunktiteration x i+1 = (x i ), gegen x konvergiert.
Beweis Sei δ := 1 − (x ) M > 0. Wegen der Stetigkeit von lässt sich dann ein ε > 0 finden, so dass (x) M ≤ 1 − δ/2 gilt für alle x ∈ K := { y ∈ Rn : x − xV ≤ ε} ⊂ D. Für alle x, y ∈ K folgt nach dem Hauptsatz der Differentialund Integralrechnung
1
(x) − ( y) = 0
t x + (1 − t) y (x − y)dt.
450
23
Iterative Lösungsverfahren
Da mit x und y auch deren Verbindungsstrecke [x y] := {t x + (1 − t) y : t ∈ [0, 1]} in K liegt, folgt
t x + (1 − t) y x − yV dt ≤ 1 − δ x − yV . M 2
1
(x) − ( y)V ≤ 0
≤1− 2δ
Dies bedeutet, ist eine Kontraktion auf der abgeschlossenen Menge K . Die Behauptung des Korollars folgt nun aus dem Banachschen Fixpunktsatz, wenn wir zeigen können, dass (x) ∈ K für alle x ∈ K ist. Sei hierzu x ∈ K beliebig. Dann gilt wegen x = (x ) x − (x)V = (x ) − (x)V 1 δ ε ≤ ε, t x + (1 − t)x M x − xV dt ≤ 1 − ≤ 2
0 ≤ε
≤1− 2δ
wobei wir wieder [x z] ⊂ K verwendet haben.
Beispiel 23.7 Gesucht werde eine Lösung der nichtlinearen Gleichung 2 cos x − e x = 0.
(23.2)
Durch graphische Überlegungen sieht man, dass es genau eine positive Lösung x ≈ 0.5 gibt:
Für x > 0 kann die nichtlineare Gleichung (23.2) auf verschiedene Weise in eine Fixpunktgleichung umgeformt werden, nämlich x = arccos
ex 2
=: 1 (x)
23.1 Fixpunktiterationen
451
oder
x = ln 2 cos x =: 2 (x).
Natürlich lassen sich noch beliebig viele weitere Formulierungen finden. Die Fixpunktiterationen, welche auf den Iterationsfunktionen 1 beziehungsweise 2 beruhen, verhalten sich allerdings höchst unterschiedlich. Verwenden wir etwa den Startwert x0 = 0.5, so ergibt sich: i 0 1 2 3 4 5 6 7 8 9
xi+1 = 1 (xi ) 0.601725 0.421119 0.704658 Abbruch
xi+1 = 2 (xi ) 0.562563 0.525782 0.548042 0.534792 0.542760 0.537997 0.540855 0.539144 0.540169 0.539555
Die Fixpunktiteration xi+1 = 1 (xi ) konvergiert nicht. Sie bricht sogar ab, weil nach drei Schritten das Argument e x /2 des Arcuscosinus größer als Eins wird und dieser deswegen nicht mehr definiert ist. Hingegen konvergiert die Iteration xi+1 = 2 (xi ) gegen den korrekten Wert x = 0.539785160 . . .. Korollar 23.6 erklärt das unterschiedliche Verhalten: Am Fixpunkt gilt
ex ≈ −1.67, 2 (x ) = − tan(x ) ≈ −0.599. 1 (x ) = − √ 2x 4−e Wir erwarten deshalb Konvergenz der auf 2 basierenden Iteration für hinreichend nahe am Fixpunkt gelegene Startwerte. Für die auf 1 basierende Iteration ist Korollar 23.6 nicht anwendbar. Man kann sogar zeigen, dass für stetig differenzierbare Iterationsfunktionen die Bedingung | (x )| > 1 zu Divergenz der Fixpunktiteration führt. Um einen Vergleich von verschiedenen Fixpunktverfahren zu ermöglichen, will man die Konvergenzgeschwindigkeit messen können. Dazu führen wir den Begriff der Konvergenzordnung ein.
452
23
Iterative Lösungsverfahren
Definition 23.8 Sei {εk }k∈N eine Folge positiver reeller Zahlen mit εk → 0 für k → ∞. Wir sagen, dass die Konvergenz (mindestens) die Ordnung p ≥ 1 hat, wenn ein C > 0 existiert, so dass p
εk+1 ≤ Cεk
für alle k ∈ N.
Im Fall p = 1 fordert man zusätzlich, dass C < 1 ist.
Beispiel 23.9 Um die Konvergenzordnung iterativer Verfahren zu studieren, muss man nur die Folge {εk }k∈N der Fehler der Iterierten betrachten und obige Definition anwenden. • Der Fall p = 1 ist von besonderer Bedeutung und uns bereits im Zusammenhang mit dem Banachschen Fixpunktsatz 23.4 begegnet. In diesem Fall spricht man von linearer Konvergenz. • Der Fall p = 2 wird uns im Abschn. 23.3 begegnen im Zusammenhang mit dem Newton-Verfahren. Hier spricht man von quadratischer Konvergenz. Bei nichtlinearen Problemen ist es wichtig, zwischen lokaler und globaler Konvergenz zu unterscheiden: Definition 23.10 Ein Iterationsverfahren mit Iterierten x i ∈ Rn heißt lokal konvergent gegen x ∈ Rn , falls eine Umgebung U ⊂ Rn um x ∈ U existiert, so dass i→∞
x i −→ x für alle x 0 ∈ U . Man spricht von globaler Konvergenz, falls U = Rn .
23.2
Iterationsverfahren für lineare Gleichungssysteme
Viele Anwendungen führen auf sehr große, dünn besetzte, lineare Gleichungssysteme Ax = b. In diesem Fall verbietet sich der Einsatz von direkten Lösern wegen ihres kubischen Aufwands. In solchen Fällen behilft man sich gerne mit Iterationsverfahren. Solch ein Iterationsverfahren ist das Gesamtschritt- oder Jacobi-Verfahren:
23.2 Iterationsverfahren für lineare Gleichungssysteme
453
Algorithmus 23.11 (Gesamtschrittverfahren) input: Matrix A = [ai, j ] ∈ Rn×n , rechte Seite b = [bi ] ∈ Rn und Startnäherung x (0) = [xi(0) ] ∈ Rn output: Folge von Iterierten {x (k) }k∈N mit x (k) = [xi(k) ] ∈ Rn ➀ Initialisierung: k := 0 ➁ für i = 1, 2, . . . , n setze (k+1)
xi
:=
1 (k) bi − ai, j x j ai,i j =i
➂ erhöhe k := k + 1 und gehe nach ➁
Bei diesem Algorithmus handelt sich um eine Fixpunktiteration. Der Fixpunkt ist die Lösung von Ax = b. Zu seiner Durchführung muss offensichtlich einzig vorausgesetzt werden, dass ai,i = 0 ist für alle i ∈ {1, 2, . . . , n}. Die Frage nach der Konvergenz ist dadurch allerdings noch nicht beantwortet. Das Gesamtschrittverfahren lässt sich auch in Matrixnotation formulieren. Dazu zerlegen wir A= D−L−R in eine Diagonalmatrix und in strikte untere und strikte obere Dreiecksmatrizen. Dann ist
x (k+1) = D−1 b + (L + R)x (k) . (23.3) Im Gegensatz zum Gesamtschrittverfahren, verwendet man beim Einzelschritt- oder Gauß-Seidel-Verfahren in ➁ alle bereits berechneten Komponenten von x (k+1) : Algorithmus 23.12 (Einzelschrittverfahren) input: Matrix A = [ai, j ] ∈ Rn×n , rechte Seite b = [bi ] ∈ Rn und Startnäherung x (0) = [xi(0) ] ∈ Rn output: Folge von Iterierten {x (k) }k∈N mit x (k) = [xi(k) ] ∈ Rn
454
23
Iterative Lösungsverfahren
➀ Initialisierung: k := 0 ➁ für i = 1, 2, . . . , n setze xi(k+1) :=
1 (k) bi − ai, j x (k+1) − a x i, j j j ai,i ji
➂ erhöhe k := k + 1 und gehe nach ➁
Entsprechend zu (23.3) erhält man die Matrixformulierung, indem man alle Komponenten von x (k+1) in ➁ auf die linke Seite bringt. Dann folgt (k+1)
ai,i xi
+
(k+1)
ai, j x j
ji
das heißt, x (k+1) ergibt sich durch Auflösen des Dreieckssystems ( D − L)x (k+1) = b + Rx (k) , also
x (k+1) = ( D − L)−1 b + Rx (k) .
(23.4)
Für das Gesamtschrittverfahren (23.3) und das Einzelschrittverfahren (23.4) sind verschiedene, mehr oder weniger praktikable Konvergenzresultate verfügbar. Wir wollen uns auf nachfolgendes, einfach nachzuweisendes Kriterium beschränken. Definition 23.13 Eine Matrix A ∈ Rn×n heißt strikt diagonaldominant, falls |ai,i | >
|ai, j | für alle i ∈ {1, 2, . . . , n}.
j =i
Satz 23.14 Sei A ∈ Rn×n eine strikt diagonaldominante Matrix und b ∈ Rn . Dann konvergieren das Gesamtschrittverfahren und das Einzelschrittverfahren für jeden Startvektor x (0) ∈ Rn gegen die eindeutige Lösung von Ax = b.
Beweis Weil sowohl Gesamt- als auch Einzelschrittverfahren Fixpunktiterationen der Form x (k+1) = (x (k) ) sind, wobei die Abbildung sogar affin ist, können wir
23.2 Iterationsverfahren für lineare Gleichungssysteme
455
den Banachschen Fixpunktsatz 23.4 anwenden. Setzen wir K = Rn , so müssen wir lediglich zeigen, dass eine Kontraktion ist. Zunächst betrachten wir das Gesamtschrittverfahren. Zu zeigen ist, dass ein L < 1 existiert mit D−1 (L + R)w ≤ Lw
(23.5)
für alle w ∈ Rn . Aus der strikten Diagonaldominanz von A folgt D−1 (L + R)∞ = max
1≤i≤n
n |ai, j | j=1 j =i
|ai,i |
< 1,
das ist (23.5) mit · = · ∞ und L = D−1 (L + R)∞ . Für das Einzelschrittverfahren verwenden wir wieder die ∞-Norm und müssen analog zu (23.5) nachweisen, dass max ( D − L)−1 Rx∞ = ( D − L)−1 R∞ < 1.
x∞ =1
(23.6)
Sei also x∞ = 1 und L < 1 wie zuvor definiert. Die einzelnen Komponenten yi von y = ( D − L)−1 Rx ergeben sich gemäß Algorithmus 23.12 aus yi :=
1 ai,i
−
ai, j yj −
ji
Der Beweis, dass |yi | ≤ L < 1 für alle i ∈ {1, 2, . . . , n} gilt, erfolgt induktiv. Dazu schätzen wir den Eintrag |yi | in (23.7) mit der Dreiecksungleichung und der Induktionsannahme ab (der Fall i = 1 ist klar): 1 |ai, j ||yj | + |ai, j ||x j | |ai,i | ji 1 |ai, j |L + |ai, j |x∞ ≤ |ai,i | ji 1 ≤ |ai, j | + |ai, j | ≤ L. |ai,i |
|yi | ≤
ji
Wir erhalten also y∞ ≤ L und somit (23.6).
456
23.3
23
Iterative Lösungsverfahren
Newton-Verfahren
Das Newton-Verfahren ist wohl das wichtigste Verfahren zum Lösen von nichtlinearen Gleichungen. Wir betrachten hierzu eine differenzierbar Funktion f : Rn → Rn . Das Ziel ist, die Nullstelle x ∈ Rn der nichtlinearen Gleichung f (x) = 0 zu finden. Ist x 0 ∈ Rn ein Näherungswert an diese Lösung, dann approximieren wir 0 = f (x ) ≈ f (x 0 ) + f (x 0 )(x − x 0 ).
−1 Falls f (x 0 ) ∈ Rn×n existiert, so folgt
−1 x ≈ x 0 − f (x 0 ) f (x 0 ). Setzen wir
−1 x 1 := x 0 − f (x 0 ) f (x 0 ),
so ist x 1 möglicherweise eine bessere Näherung an x . Wir werden gleich sehen, dass dies in einer geeigneten Umgebung von x tatsächlich der Fall ist. Daher ist es naheliegend, das folgende Iterationsverfahren
−1 f (x i ), i = 0, 1, 2, . . . x i+1 := x i − f (x i )
(23.8)
zum Auffinden einer Nullstelle zu verwenden. Die Iteration (23.8) ist das bekannte Newton-Verfahren. Eine geometrische Interpretation des Newton-Verfahrens für den Fall einer Funktion f : R → R befindet sich in Abb. 23.1. In der aktuellen Iterierten xi wird die Tangente an f (xi ) gelegt. Die nächste Iterierte xi+1 ergibt sich dann als Schnittpunkt dieser Tangente mit der x-Achse.
Abb. 23.1 Geometrische Interpretation des Newton-Verfahrens
23.3 Newton-Verfahren
457
Das Newton-Verfahren (23.8) ist von der Form (23.1), das heißt eine Fixpunktiteration. Wann und wie schnell dieses Verfahren konvergiert, beantwortet der nächste Satz. Satz 23.15 Sei D ⊂ Rn offen und konvex, · V eine Norm auf Rn und · M eine verträgliche Matrixnorm. Ferner sei f : D → Rn eine stetig differenzierbare Funktion mit invertierbarer Jacobi-Matrix f (x) mit −1 f (x)
M
≤α
für alle x ∈ D. Zusätzlich sei f (x) auf D Lipschitz-stetig mit der Konstanten β, f (x) − f ( y) M ≤ βx − yV , x, y ∈ D. Der Punkt x ∈ D sei eine Nullstelle, das heißt f (x ) = 0, und x 0 eine Startnäherung mit x 0 ∈ K := {x ∈ Rn : x − xV ≤ γ }, wobei γ hinreichend klein sei, so dass K ⊂ D und γ ≤
2 . αβ
Dann bleibt die durch das Newton-Verfahren (23.8) definierte Folge {x i }i∈N innerhalb der Kugel K und konvergiert quadratisch gegen x , das heißt x − x i+1 V ≤
αβ x − x i 2V , i = 0, 1, 2, . . . . 2
Beweis Wegen (23.8) und f (x ) = 0 finden wir für x i ∈ D
−1 f (x i ) − x x i+1 − x = x i − f (x i )
−1 f (x i ) − f (x ) = x i − x − f (x i ) −1
f (x ) − f (x i ) − f (x i )(x − x i ) . = f (x i )
(23.9)
458
23
Iterative Lösungsverfahren
Daher gilt
−1 x − x i+1 V ≤ f (x i ) f (x ) − f (x i ) − f (x i )(x − x i )V . M
≤α
(23.10) Die rechte Seite ist nun abzuschätzen. Dazu setzen wir für x, y ∈ D
g(t) = f (1 − t)x + t y und bemerken, dass g(0) = f (x) und g(1) = f ( y) gilt. Nach Voraussetzung ist g differenzierbar und nach der Kettenregel folgt
g (t) = f (1 − t)x + t y ( y − x). Also ist wegen der Lipschitz-Stetigkeit
g (t) − g (0)V = f (1 − t)x + t y − f (x) ( y − x)V
≤ f (1 − t)x + t y − f (x) M y − xV
≤βt y−xV
≤ βt y −
x2V .
Mit f ( y) − f (x) − f (x)( y − x) = g(1) − g(0) − g (0) =
1
g (t) − g (0) dt
0
folgt hieraus
f ( y) − f (x) − f (x)( y − x)V ≤ β y −
x2V
0
1
tdt =
β y − x2V . 2
Im Hinblick auf (23.10) erhalten wir hieraus die gewünschte Konvergenzabschätzung (23.9). Es verbleibt zu zeigen, dass für alle i ∈ N die Ungleichung x − x i V ≤ γ gilt. Wir zeigen dies durch vollständige Induktion. Für i = 0 ist die Behauptung aufgrund der Wahl der Startnäherung klar. Der Induktionsschritt ergibt sich nun aus (23.9) gemäß x − x i+1 V ≤
αβ x − x i V x − x i V ≤ γ .
2
≤1
≤γ
23.3 Newton-Verfahren
459
Bemerkung 23.16 Die Konvergenz des Newton-Verfahrens ist im Allgemeinen nur lokal. Bei der Implementierung des Newton-Verfahrens ist zu beachten, dass die inverse Jacobi-Matrix nicht explizit berechnet wird. Vielmehr wird die Iterationsvorschrift (23.8) wie folgt modifiziert: 1. Löse das lineare Gleichungssystem f (x i ) x i = − f (x i ) und 2. setze x i+1 = x i + x i . Zur Lösung des linearen Gleichungssystems kann man beispielsweise die LRZerlegung verwenden. Beispiel 23.17 In Beispiel 23.5 haben wir die Lösung [x , y ] des nichtlinearen Gleichungssystems x = 0.5 sin x + 0.1 cos y y = 0.5 cos x − 0.1 sin y mit dem Banachschen Fixpunktsatz berechnet. Zum Vergleich soll [x , y ] auch mit dem Newton-Verfahren approximiert werden. Dazu formulieren wir das Fixpunktproblem als Nullstellenaufgabe einer Funktion f , nämlich f (x, y) :=
x − 0.5 sin x − 0.1 cos y ! 0 = . 0 y − 0.5 cos x + 0.1 sin y
Das Newton-Verfahren lautet dann
−1 xi+1 x = i − f (xi , yi ) f (xi , yi ), i = 0, 1, 2, . . . . yi+1 yi Hierbei ist in Anbetracht von 1 − 0.5 cos x 0.1 sin y f (x, y) = 0.5 sin x 1 + 0.1 cos y
und
det f (x, y) = 1 − 0.5 cos x + 0.1 cos y − 0.05 cos(x − y)
die inverse Jacobi-Matrix gegeben als
−1 = f (x, y)
1 1 + 0.1 cos y −0.1 sin y . −0.5 sin x 1 − 0.5 cos x det f (x, y)
In der folgenden Tabelle findet man die Iterierten der Banachschen Fixpunktiteration und des Newton-Verfahrens, wobei als Startwerte wieder x0 = y0 = 0
460
i 1 2 3 4 5 .. . 10
23
xi 0.100000 0.137675 0.158684 0.168975 0.174128 .. . 0.179093
Fixpunktiteration yi 0.500000 0.449560 0.451811 0.450058 0.449377 .. . 0.448641
xi 0.200000 0.179287 0.179251 0.179251 0.179251 .. . 0.179251
Iterative Lösungsverfahren Newton-Verfahren yi 0.454545 0.448710 0.448617 0.448617 0.448617 .. . 0.448617
gewählt wurde: Man erkennt, dass xi und yi beim Newton-Verfahren schon nach drei Schritten auf sechs Stellen genau sind. Ab i ≥ 4 gilt sogar |x − xi | < 10−15 und |y − yi | < 10−15 . Die Referenzlösung mit zehn gültigen Stellen lautet x ≈ 0.1792512001,
y ≈ 0.4486167772.
Übungsaufgaben Aufgabe 23.1 (Fixpunktiteration) Vorgelegt sei die Fixpunktgleichung
0.6(x + y + 1) ! x (x, y) = = . cos(x/5) sin(y/5) y a) Zeigen Sie, dass die Fixpunktiteration
xi+1 = (xi , yi ), i = 0, 1, 2, . . . yi+1
für jeden Startwert [x0 , y0 ] ∈ R2 gegen genau einen Fixpunkt [x , y ] ∈ R2 konvergiert. b) Wieviel Iterationsschritte sind nötig, um ausgehend vom Startwert [x0 , y0 ] = 0 einen Fehler < 10−6 zu gewährleisten? √ Aufgabe 23.2 (Heron-Verfahren) Zur Berechnung der Quadratwurzel a einer positiven Zahl a > 0 benutzten wohl schon die Babylonier, spätestens aber der Alexandriner Heron (etwa 1. Jahrhundert n. Chr.), das folgende Verfahren: Für einen beliebigen, reellen Startwert x0 > 0 iteriere xn+1 =
1 a , i = 0, 1, 2, . . . . xn + 2 xn
Übungsaufgaben
461
a) Zeigen Sie, dass das Heron-Verfahren global quadratisch konvergiert. √ b) Führen Sie vier Iterationsschritte zur Berechnung von 2 aus. Wählen Sie dazu den Startwert x0 = 2 und stellen sie erst x4 als Dezimalzahl dar. Geben Sie zu jeder Iterierten auch den Fehler an. Aufgabe 23.3 (Schulz-Iteration) Zur effizienten Berechnung der Inversen einer regulären Matrix A ∈ Rn×n hat Günther Schulz in [Sch33] folgende Iteration vorgeschlagen: X i+1 = X i (2 I − AX i ), i = 0, 1, 2, . . . . Zeigen Sie folgende Aussagen: a) Die Iterierten der Schulz-Iteration erfüllen die Gleichung I − AX i+1 = (I − AX i )2 , i = 0, 1, 2, . . . . b) Das Verfahren konvergiert, falls die Startnäherung X 0 für eine submultiplikative Matrixnorm · der Ungleichung I − AX 0 < 1 genügt. c) Das Verfahren ist lokal quadratisch konvergent. Aufgabe 23.4 (Newton-Verfahren) Gegeben sei das nichtlineare Gleichungssystem 3 0 x + y3 − 4 = . f (x, y) = 0 x 3 − y3 a) Zeigen Sie, dass das Newton-Verfahren zur Lösung von f (x, y) = 0 für jeden Startvektor [x0 , y0 ] ∈ [1, 2] × [1, 2] konvergiert. b) Führen Sie ausgehend vom Startvektor [x0 , y0 ] = [1, 1] zwei Iterationsschritte des Newton-Verfahrens durch.
Literatur
[Bai04] Baier, C.: Informatik IV. Algorithmen und Datenstrukturen. Vorlesungsskript, Universität Bonn (2004) [Beb00] Bebendorf, M.: Approximation of boundary element matrices. Numer. Math. 86(4), 565–589 (2000) [Ber13] Bernoulli, J.: Ars Conjectandi. Opus Posthumum. Accedit Tractatus de Seriebus Infinitis, et Epistola Gallice scripta de Ludo pilae reticularis. Impensis Thurnisiorum, Fratrum, Basileae (1713) [Blu04] Blum, N.: Algorithmen und Datenstrukturen. Oldenbourg Wissenschaftsverlag, München (2004) [BM04] Bollhöfer, M., Mehrmann, V.: Numerische Mathematik. Vieweg, Wiesbaden (2004) [BR91] Brualdi, R.A., Ryser, H.J.: Combinatorial Matrix Theory. Cambridge University Press, Cambridge (1991) [CLRS09] Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 3. Aufl. MIT Press, Cambridge (2009) [CT65] Cooley, J.W., Tukey, J.W.: An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19, 297–301 (1965) [DH19] Deuflhard, P., Hohmann, A.: Numerische Mathematik 1. Eine algorithmisch orientierte Einführung. De Gruyter, Berlin (2019) [FF62] Ford Jr., L.R., Fulkerson, D.R.: Flows in Networks. Princeton University Press, New Jersey (1962) [FT87] Fredman, M.L., Tarjan, R.E.: Fibonacci heaps and their uses in improved network optimization algorithms. J. ACM 34(3), 596–615 (1987) [Geo73] George, A.: Nested dissection of a regular finite element mesh. SIAM J. Numer. Anal. 10(2), 345–363 (1973) [GV13] Golub, G.H., Van Loan, C.F.: Matrix Computations, 4. Aufl. Johns Hopkins University Press, Baltimore (2013) [Haa10] Haar, A.: Zur Theorie der orthogonalen Funktionensysteme. Math. Annal. 69(331– 371), 413 (1910) [Häg02] Häggström, O.: Finite Markov Chains and Algorithmic Applicatios. Cambridge University Press, Cambridge (2002) [Hal35] Hall, P.: On representation of subsets. Quart. J. Math. 10, 26–30 (1935) [HB09] Hanke-Bourgeois, M.: Grundlagen der Numerischen Mathematik und des Wissenschaftlichen Rechnens. Vieweg + Teubner, Wiesbaden (2009) [Hoa62] Hoare, C.A.R.: Quicksort. Comput. J. 5(1), 10–16 (1962)
© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2022 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2
463
464
Literatur
[Hof00] Hoffmann, B.: Einführung in die Stochastik. Vorlesungsskript, Technische Universität Chemnitz (2000) [HPS12] Harbrecht, H., Peters, M., Schneider, R.: On the low-rank approximation by the pivoted Cholesky decomposition. Appl. Numer. Math. 62(4), 428–440 (2012) [HS52] Hestenes, M.R., Stiefel, E.: Methods of conjugate gradients for solving linear systems. J. Res. NBS 49(6), 409–436 (1952) [KG11] Kepner, J., Gilbert, J.: Graph Algorithms in the Language of Linear Algebra. Society for Industrial and Applied Mathematics, Philadelphia (2011) [Kre98] Kress, R.: Numerical Analysis. Springer, New York (1998) [Kre05] Krengel, U.: Einführung in die Wahrscheinlichkeitstheorie und Statistik. Vieweg, Wiesbaden (2005) [KV12] Korte, B., Vygen, J.: Combinatorial Optimization: Theory and Algorithms. Springer, Heidelberg (2012) [Möh04] Möhring, R.H.: Computerorientierte Mathematik I mit Java. Vorlesungsskript, Technische Universität Berlin (2004) [Nak08] Nakamoto, S.: Bitcoin: A peer-to-peer electronic cash system (2008) [RTL76] Rose, D.J., Tarjan, R.E., Lueker, G.S.: Algorithmic aspects of vertex eliminations on graphs. SIAM J. Comput. 5, 266–283 (1976) [Run01] Runge, C.: Über empirische Funktionen und die Interpolation zwischen äquidistanten Ordinaten. Z. Math. Phys. 46, 224–243 (1901) [Saa03] Saad, Y.: Iterative Methods for Sparse Linear Systems, 2. Aufl. Society for Industrial and Applied Mathematics, Philadelphia (2003) [Sch33] Schulz, G.: Iterative Berechung der reziproken Matrix. Z. Angew. Mathe. Mech. 13(1), 57–59 (1933) [Sto05] Stoer, J.: Numerische Mathematik 1: Eine Einführung – unter Berücksichtigung von Vorlesungen von F. L. Bauer, 9. Aufl. Springer, Berlin (2005) [Str69] Strassen, V.: Gaussian elimination is not optimal. Numer. Math. 13, 354–356 (1969) [SW05] Schaback, R., Wendland, H.: Numerische Mathematik. Springer, Berlin (2005) [WADG09] Weir, M., Aggarwal, S., De Medeiros, B., Glodek, B.: Password cracking using probabilistic context-free grammars. In: 2009 30th IEEE Symposium on Security and Privacy, S. 391-405. IEEE (2009) [Wal23] Walsh, J.L.: A closed set of normal orthogonal functions. Am. J. Math. 45(1), 5–24 (1923)
Stichwortverzeichnis
A Horner-Schema, 4, 334 absolute Häufigkeit, 212 inverse Wavelet-Transformation, 388 absolute Konditionszahl, 27 Inversionsmethode, 292 Abweichung korrekter, 40 mittlere, 294 LR-Zerlegung, 139 adaptive Kreuzapproximation, 161 LR-Zerlegung mit Spaltenpivotisierung, 147 Adjazenzliste, 120 Matrixmultiplikation, 109 Adjazenzmatrix, 119 Matrixmultiplikation im CCS-Format, 119 σ -Algebra, 210 Max-Heap-Konstruktion, 48 erzeugte, 211 Max-Heapify, 47 Produkt-σ -Algebra, 234 Merge, 39 algorithmische Suche, 65 Mergesort, 40 Algorithmus Metropolis-Algorithmus, 320 b-adische Darstellung, 4 Miller-Algorithmus, 186 adaptive Kreuzapproximation, 163 Monte-Carlo-Simulation von MarkovKetten, 305 adaptive Trapezsumme, 405 von Moore, Bellman und Ford, 81 algorithmische Suche, 65 Nested Dissection, 174 Auf-dem-Platz-Algorithmus, 136 Nullstellenberechnung, 22, 23 Aufwand, 38 pivotisierte Cholesky-Zerlegung, 165 Beasley-Springer-Moro-Algorithmus, 293 QR-Zerlegung, 436 zur Bestimmung starker ZusammenhangsQuicksort, 43 komponenten, 70 rekursiver, 40 Block-Rückwärtssubstitution, 140 Rückwärtssubstitution, 136 Breitensuche, 65 schnelle Fourier-Synthese, 353 Bubblesort, 37 Strassen-Algorithmus, 125 Cholesky-Zerlegung, 154 Tiefensuche, 65 von Dijkstra, 78 Verfahren der konjugierten Gradienten, 200 Dreitermrekursion, 180 Verwerfungsmethode, 290 Dünngitter-Quadratur, 412 Vorwärtssubstitution, 136 von Edmonds und Karp, 92 Wavelet-Transformation, 386 Einzelschrittverfahren, 454 Alphabet, 1 von Floyd und Warshall, 83 Binäralphabet, 2 von Ford und Fulkerson, 91 Hexadezimalalphabet, 2 Gesamtschrittverfahren, 453 Oktalalphabet, 2 Heapsort, 49 © Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2022 465 H. Harbrecht und M. Multerer, Algorithmische Mathematik, https://doi.org/10.1007/978-3-642-41952-2
466
Stichwortverzeichnis
Analyse Rückwärtsanalyse, 25 Vorwärtsanalyse, 25 Anfangsknoten, 55 aperiodischer Zustand, 308 Arithmetik Pseudoarithmetik, 19 t-stellige, 15 Asymptotik, 37 Auf-dem-Platz-Algorithmus, 136 Aufwand Aufwandsmaß, 38 eines Algorithmus, 38 Ausgleichslösung, 426 Ausgleichsproblem, 426 Auslöschung, 22 Axiomensystem von Kolmogorov, 213
Breadth-First-Search (BFS), 65 Breitensuche, 65 Brute-Force-Methode, 35 B-Spline, 366 Bubblesort, 37
B Banachscher Fixpunktsatz, 446 Basis einer Gleitkommazahl, 11 Haar-Wavelets, 384 hierarchische, 393 kanonische, 107 Multilevelbasis, 385 nodale, 391 eines Zahlensystems, 1 Baum, 63 Binärbaum, 46 Entscheidungsbaum, 49 gerichteter, 82 Höhe, 46 Baumdiagramm, 227 Bayessche Formel, 230 Beasley-Springer-Moro-Algorithmus, 293 bedingte Wahrscheinlichkeit, 223 Bereich darstellbarer, 7 Betragssummennorm, 113 Biasdarstellung, 13 Binäralphabet, 2 Binärbaum, 46 binärer Heap, 45 binäre Suche, 118 Binomialverteilung, 256 Bipartition, 97 Bit, 4 b-Komplement, 6 (b − 1)-Komplement, 5 b-Komplementdarstellung, 7 Blatt, 46 Borelsche σ -Algebra, 239 Bottom-up-Konstruktion, 48
D darstellbarer Bereich, 7 Darstellung Biasdarstellung, 13 b-Komplementdarstellung, 7 Exzessdarstellung, 13 Festkommadarstellung, 10 Gleitkommadarstellung, 11 Vorzeichen-Betrag-Darstellung, 4 Datenfehler, 24 De Morgansche Regel, 207 Defizit, 171 Depth-First-Search (DFS), 65 Dichtefunktion, 267 der Exponentialverteilung, 274 der Gleichverteilung, 273 der Normalverteilung, 278 Differenzenstern, 408 Differenzmenge, 206 Differenzsignal, 378 Digraph, 55 Dijkstra-Algorithmus, 78 diskrete Wavelet-Transformation, 386 Divide and Conquer, 39 dividierte Differenzen, 334 dominante Lösung, 185 Dreitermrekursion, 179 homogene, 179 inhomogene, 179 symmetrische, 179 dünnes Gitter, 413 Dünngitter-Interpolant, 409 Dünngitter-Quadratur, 409
C Cauchy-Schwarzsche Ungleichung, 189 CCS-Format, 118 cg-Verfahren, 196 charakteristische Funktion, 268 Cholesky-Zerlegung, 149 pivotisierte, 165 Compressed Column Storage, 118 Compressed Row Storage, 117 Cramersche Regel, 137 CRS-Format, 117
E Einerkomplement, 6
Stichwortverzeichnis Einheitsmatrix, 108 Einzelschrittverfahren, 453 Elementarereignis, 210 Eliminationsgraph, 171 Eliminationsprozess, 171 Eliminationsreihenfolge, 169 Endknoten, 55 Energienorm, 196 Entscheidungsbaum, 49 Ereignis Elementarereignis, 210 sicheres, 210 unmögliches, 210 unvereinbare Ereignisse, 210 zufälliges, 209 Erwartungstreue, 294 Erwartungswert, 245, 247, 270 erzeugte σ -Algebra, 211 Euklid-Norm, 113 Eulerscher Graph, 61 Exaktheitsgrad, 414 Exponent, 11 Exponentialverteilung, 274 Exzessdarstellung, 13 F Faltung, 353 Fehler Datenfehler, 24 Fehleranalyse, 24 relativer, 11 Rundungsfehler, 15, 20, 24 Verfahrensfehler, 24 Festkommadarstellung, 10 FFT (Fast Fourier Transorm), 350 Fibonacci-Folge, 180 Fibonacci-Heap, 81 Fill-in, 171 finite Differenzen, 167 Fischgrätenschema, 379, 380 Fixed Point Representation, 10 Fixpunkt, 446 Fixpunktgleichung, 446 Fixpunktiteration, 446 Floating Point Representation, 11 Floyd-Warshall-Algorithmus, 83 Fluch der Dimension, 407 Fluss, 86 Flusswert, 86 maximaler, 86 optimaler, 86 0-1-Flussfunktion, 98 Folge Fibonacci-Folge, 180
467 Format CCS-Format, 118 CRS-Format, 117 Formel von Bayes, 230 Newton-Côtes-Formel, 416 offene Newton-Côtes-Formel, 422 Quadraturformel, 414 von Sherman, Morrison und Woodbury, 155 von Stirling, 421 zusammengesetzte Quadraturformel, 414 Fourier-Synthese, 349 Fourier-Transformation, 349 Frobenius-Norm, 113 Frobenius-Normalform, 124 Funktion charakteristische, 268 Hutfunktion, 391 Likelihood-Funktion, 429 Walsh-Funktion, 388 G Ganzheitssatz, 91 Gauß-Legendre-Quadratur, 420 Gauß-Quadratur, 419 Gaußsche Glockenkurve, 279 Gaußsche Normalengleichungen, 427 Gauß-Seidel-Verfahren, 453 Gauß-Verteilung, 278 Geburtstagsparadoxon, 219 geometrische Verteilung, 242 Gesamtnorm, 115 Gesamtschrittverfahren, 452 Gesetz von Kirchhoff, 86 schwaches Gesetz der großen Zahlen, 254 der totalen Wahrscheinlichkeit, 229 Gewicht, 414 Gewichtsfunktion, 75, 190 Gitter, 168, 359, 362 dünnes, 413 Givens-Rotation, 443 Gleichungssystem lineares, 131 nichtlineares, 445 überbestimmtes, 425 unterbestimmtes, 425 Gleichverteilung, 273 Gleitkommadarstellung, 11 Google-Matrix, 314 Grad Ausgangsgrad, 57 Eingangsgrad, 57 Knotengrad, 57
468 Graph, 55 azyklischer, 63 bipartiter, 97 Digraph, 55 Eulerscher, 61 geordneter, 169 gerichteter, 55 gewichteter, 75 Komplement, 74 kondensierter, 71 regulärer, 103 stark zusammenhängender, 68 Übergangsgraph, 301 ungerichteter, 55 zu einer Matrix gehöriger, 123 zusammenhängender, 58 zweigeteilter, 97 zyklenfreier, 63 gut konditioniertes Problem, 27 H Haar, 379 Haarsche Skalierungsfunktion, 381 Haar-Transformation, 379 Haar-Wavelet, 383 Häufigkeit absolute, 212 relative, 212 Heap binärer, 45 Fibonacci-Heap, 81 Max-Heap, 46 Heapsort, 49 Heiratsproblem, 97 Heiratssatz von Hall, 101 Heron-Verfahren, 460 Hexadezimalalphabet, 2 Hidden Bit, 13 hierarchische Basis, 393 hierarchischer Überschuss, 394 Höhe, 46 homogene Markov-Kette, 301 Horner-Schema, 4, 333 vollständiges, 342 Householder-Transformation, 431 Hutfunktion, 391 I Importance Sampling, 297 induzierte Norm, 115, 189 informationstheoretische Schranke, 53 inhomogene Markov-Kette, 303 Inkrement, 285 Innenprodukt, 188
Stichwortverzeichnis Intensität, 258 Interpolant Dünngitter-Interpolant, 409 hierarchischer, 404 stückweise bilinearer, 406 Interpolation Hermite-Interpolation, 330, 340 kubische Spline-Interpolation, 362 Lagrange-Interpolation, 325 lineare Spline-Interpolation, 360 Polynominterpolation, 325 trigonometrische, 344 Interpolationspolynom Lagrange-Darstellung, 326 Newton-Darstellung, 333 inverse Wavelet-Transformation, 388 Inversionsmethode, 292 J Jacobi-Verfahren, 452 K kanonische Basis, 107 Kante, 46 Schleife, 56, 123 Kapazität, 86 eines Schnitts, 87 Kapazitätsbedingung, 86 Kapazitätsfunktion, 86 Restkapazität, 90 Kirchhoffsches Gesetz, 86 Kleinste-Quadrate-Lösung, 426 Knoten, 46 Anfangsknoten, 55 Ausgangsgrad, 57 Blatt, 46 Defizit, 171 Eingangsgrad, 57 Endknoten, 55 erreichbarer, 56 Nachbar, 57 Nachfolger, 57 Tiefe, 46 Vater, 46 Vorgänger, 57 Wurzel, 46 Knotengrad, 57 Kombination, 217 Komplement, 74, 205 b-Komplement, 6 (b − 1)-Komplement, 5 b-Komplementdarstellung, 7 Einerkomplement, 6 Neunerkomplement, 6
Stichwortverzeichnis orthogonales, 382 Zehnerkomplement, 6 Zweierkomplement, 6 Komponente starke Zusammenhangskomponente, 68 Zusammenhangskomponente, 58 Kondition absolute, 27 einer Matrix, 131 relative, 27 Konditionszahl absolute, 27 relative, 27 Kongruenzgenerator linearer, 285 nichtlinearer, 289 konjugierte Vektoren, 196 Kontraktion, 445 Konvergenz globale, 452 Konvergenzordnung, 452 lineare, 452 lokale, 452 quadratische, 452 Korrektheit, 40 Kreis, 60 einfacher, 60 Krümmung, 363 Krylov-Raum, 199 Kürzeste-Wege-Problem, 76 L Lagrange-Interpolation, 325 Lagrange-Polynom, 326 Laplace-Modell, 216 Laplace-Operator, 167 Legendre-Polynom, 193 Level, 381 Likelihood-Funktion, 429 lineare Mehrfachregression, 428 linearer Kongruenzgenerator, 285 Liste Adjazenzliste, 120 einfach verkettete, 120 Nachbarschaftsliste, 120 Lösung Ausgleichslösung, 426 dominante, 185 Minimallösung, 185 Lottospiel, 220 LR-Zerlegung, 135 mit Rang-1-Updates, 139 mit Spaltenpivotsuche, 144 mit totaler Pivotisierung, 147
469 M Mantisse, 11 normalisierte, 12 Markov-Eigenschaft, 300 Markov-Kette, 300 aperiodische, 308 homogene, 301 inhomogene, 303 irreduzible, 307 Metropolis-Algorithmus, 320 Monte-Carlo-Simulation, 306 periodische, 308 reduzible, 307 reversible, 319 Maschinengenauigkeit, 15 Maschinenzahl, 12 Matching, 97 maximales, 97 perfektes, 101 Matrix Adjazenzmatrix, 119 im CCS-Format, 118 im CRS-Format, 117 dünnbesetzte, 117 Google-Matrix, 314 irreduzible, 123 Nachbarschaftsmatrix, 119 orthogonale, 110 Permutationsmatrix, 111 positiv definite, 148 positiv semidefinite, 148 reduzible, 123 stochastische, 301 strikt diagonaldominante, 454 Toeplitz-Matrix, 354 transponierte, 108 Transpositionsmatrix, 111 Übergangsmatrix, 301 Vandermonde-Matrix, 327 zirkulante, 354 zugehöriger Graph, 123 Matrixnorm, 113 Max-Flow-Min-Cut-Theorem, 88 Max-Heap, 46 Max-Heap-Konstruktion, 48 Max-Heapify, 47 Maximumsnorm, 113 Mehrfachregression, 428 Menge, 205 Differenz, 206 Komplementmenge, 205 Multimenge, 218 Potenzmenge, 205 Schnittmenge, 206
470 Teilmenge, 205 Vereinigungsmenge, 206 Merge, 39 Mergesort, 40 Mersenne-Twister, 289 messbarer Raum, 211 Methode Inversionsmethode, 292 der rohen Gewalt, 35 Metropolis-Algorithmus, 320 Miller-Algorithmus, 186 Milne-Regel, 416 Minimallösung, 185 mittlere Abweichung, 294 Modul, 285 Monte-Carlo-Quadratur, 295 Monte-Carlo-Schätzer, 294 Multilevel-Monte-Carlo-Schätzer, 399 Monte-Carlo-Verfahren, 293, 294 Multilevel-Monte-Carlo-Verfahren, 399 Moore-Bellman-Ford-Algorithmus, 81 Multilevelbasis, 385 Multilevel-Monte-Carlo-Schätzer, 399 Multilevelzerlegung, 384 Multimenge, 218 Multiplikationsregel, 226 erweiterte, 226 Multiplikator, 285 N Nachbarknoten, 57 Nachbarschaftsliste, 120 Nachbarschaftsmatrix, 119 Nachfolgerknoten, 57 natürliche Zahl, 1 Nested Dissection, 174 Netzwerk, 86 Neumann-Reihe, 129 Neunerkomplement, 6 Neville-Schema, 331 Newton Newton-Côtes-Formel, 416 Newton-Polynom, 332 Newton-Schema, 335 Newton-Verfahren, 456 Newtonsche Interpolationsformel, 335 offene Newton-Côtes-Formel, 422 Niedrigrangapproximation, 161, 164 nodale Basis, 391 Norm, 112 Betragssummennorm, 113 Energienorm, 196 Euklid-Norm, 113 Frobenius-Norm, 113
Stichwortverzeichnis Gesamtnorm, 115 induzierte, 115, 189 Matrixnorm, 113 Maximumsnorm, 113 p-Norm, 127 Spaltensummennorm, 113 Spektralnorm, 157 Spurnorm, 166 submultiplikative, 114 Vektornorm, 113 verträgliche, 114 Zeilensummennorm, 113 Normalengleichung, 427 Normalverteilung, 278 Not a Number, 14 O Oktalalphabet, 2 optimaler Fluss, 86 Ordnung einer Quadratur, 414 Konvergenzordnung, 452 topologische, 72 orthogonales Komplement, 382 Orthogonalpolynom, 190 Orthonormalsystem, 356 P PageRank-Algorithmus, 313 Partition der Eins, 374 eines Graphen, 97 Permutation, 35 Permutationsmatrix, 111 Pfad, 56 Pfadregel, 227 Pivotelement, 42, 133 pivotisierte Cholesky-Zerlegung, 165 Pivotisierung partielle, 142 totale, 147 p-Norm, 127 Poisson-Problem, 167 Poisson-Verteilung, 259 Polynom Interpolationspolynom, 326, 333 Knotenpolynom, 326 Lagrange-Polynom, 326 Legendre-Polynom, 193 Newton-Polynom, 332 Orthogonalpolynom, 190 trigonometrisches, 344 Tschebyscheff-Polynom, 180, 192, 201, 337 Potenzmenge, 205
Stichwortverzeichnis Problem Ausgleichsproblem, 426 gut konditioniertes, 27 Heiratsproblem, 97 Kürzeste-Wege-Problem, 76 schlecht konditioniertes, 27 Ziegenproblem, 228 Produkt Innenprodukt, 188 Produkt-σ -Algebra, 234 Skalarprodukt, 109, 188 von Wahrscheinlichkeitsräumen, 234 Pseudoarithmetik, 19 Pseudozufallszahl, 285 Pseudozufallszahlengenerator, 285 linearer Kongruenzgenerator, 285 Mersenne-Twister, 289 nichtlinearer Kongruenzgenerator, 289 Q QR-Zerlegung, 147, 430 Quadratur 3/8-Regel, 416 adaptive Trapezsumme, 405 Dünngitter-Quadratur, 409 Gauß-Legendre-Quadratur, 420 Gauß-Quadratur, 419 Milne-Regel, 416 Monte-Carlo-Quadratur, 295 offene Trapezregel, 422 Quadraturordnung, 414 Simpson-Regel, 416 Tensorprodukt-Trapezsumme, 406 Trapezregel, 401 Weddle-Regel, 416 Quadraturformel, 414 zusammengesetzte, 414 Quelle, 86 Quicksort, 43 R Randbedingung Hermite-Randbedingung, 362 natürliche, 362 periodische, 362 Random-Surfer-Modell, 314 Raum Krylov-Raum, 199 messbarer, 211 Regel 3/8-Regel, 416 Cramersche, 137 von De Morgan, 207 erweiterte Multiplikationsregel, 226
471 Milne-Regel, 416 Multiplikationsregel, 226 Simpson-Regel, 416 Trapezregel, 401 Weddle-Regel, 416 Rekursion, 40 Dreitermrekursion, 179 homogene Dreitermrekursion, 179 inhomogene Dreitermrekursion, 179 Rückwärtsrekursion, 179 symmetrische Dreitermrekursion, 179 relative Häufigkeit, 212 Eigenschaften, 212 Konvergenz, 255 relative Konditionszahl, 27 relativer Fehler, 11 Residuum, 426 Restgraph, 90 Restkapazität, 90 reversible Markov-Kette, 319 Rückkehrzeit, 311 Rückwärtsanalyse, 25 Rückwärtskante, 90 Rückwärtsrekursion, 179 Rückwärtsstabilität, 28 Rückwärtssubstitution, 136 Rundung, 15 Rundungsfehler, 15, 20, 24 Runge-Phänomen, 330 S Sample, 377 Saturationsannahme, 163 Satz Banachscher Fixpunktsatz, 446 Ganzheitssatz, 91 Heiratssatz von Hall, 101 Max-Flow-Min-Cut-Theorem, 88 von Bayes, 230 Wurzelsatz von Vieta, 23 Schema Fischgrätenschema, 379, 380 Horner-Schema, 4, 333 Newton-Schema, 335 vollständiges Horner-Schema, 342 schlecht konditioniertes Problem, 27 Schleife, 56, 123 schnelle Fourier-Synthese, 353 Schnitt, 87 Schnittkapazität, 87 minimale, 87 Schnittmenge, 206 Schulz-Iteration, 461 Schur-Komplement, 138
472 schwaches Gesetz der großen Zahlen, 254 Selbstabbildung, 445 kontrahierende, 445 semiorthogonale Wavelets, 397 Senke, 86 sicheres Ereignis, 210 Signal, 377 Differenzsignal, 378 Trendsignal, 378 Signifikant, 13 signifikante Stelle, 15 Simpson-Regel, 416 zusammengesetzte, 416 Singulärwert, 159 Skalarprodukt, 109, 188 Skalierungsfunktion Haarsche Skalierungsfunktion, 381 Hutfunktion, 391 Sohn, 46 Spaltenpivotsuche, 142 Spaltensummennorm, 113 Spannbaum, 66 minimaler, 77 Spline, 359 B-Spline, 366 kubischer, 359 linearer, 359 quadratischer, 359 Spurnorm, 166 Stabilität Rückwärtsstabilität, 28 Vorwärtsstabilität, 28 Standardabweichung, 247, 272 Standardisierung, 281 Startfunktion, 304 Startverteilung, 302 σ -Stetigkeit, 215 Stirlingsche Formel, 421 stochastische Matrix, 301 Strassen-Algorithmus, 125 Streuung, 247, 272 Stützstelle, 325, 414 Knotenpolynom, 326 Tschebyscheff-Stützstellen, 339 Suche binäre, 54 lineare, 54 T Teile-und-herrsche-Verfahren, 39, 352 Teilmenge, 205 Tensorprodukt, 405 Tiefe eines Knotens, 46 Tiefensuche, 65
Stichwortverzeichnis Toeplitz-Matrix, 354 topologische Ordnung, 72 totale Wahrscheinlichkeit, 229 Transformation diskrete Fourier-Transformation, 349 Householder-Transformation, 431 inverse Wavelet-Transformation, 388 schnelle Fourier-Transformation, 350 Walsh-Transformation, 388 Wavelet-Transformation, 386 Transpositionsmatrix, 111 Trapezregel, 401 adaptive Trapezsumme, 405 Dünngitter-Quadratur, 409 offene, 422 Tensorprodukt-Trapezsumme, 406 Trapezsumme, 402 Trendsignal, 378 Tschebyscheff-Polynom, 180, 192, 201, 337 Tschebyscheff-Stützstellen, 339 Tschebyscheffsche Ungleichung, 249, 272 Twisted Generalized Feedback Shift Register, 289 U Übergangsgraph, 301 Übergangsmatrix, 301 doppelt stochastische, 322 Übergangswahrscheinlichkeit, 300 Überlauf, 10, 13 Unabhängigkeit einer Familie von Ereignissen, 232 von Zufallsvariablen, 250 von zwei Ereignissen, 232 Ungleichung von Cauchy-Schwarz, 189 von Tschebyscheff, 249, 272 unmögliches Ereignis, 210 Unsicherheit, 208 aleatorische, 208 epistemische, 208 Unterlauf, 10, 14 unvereinbare Ereignisse, 210 Updatefunktion, 304 V Vandermonde-Matrix, 327 Varianz, 247, 272 Variation, 217 Vater, 46 Vektornorm, 113 Vereinigungsmenge, 206 Verfahren Einzelschrittverfahren, 453
Stichwortverzeichnis Gesamtschrittverfahren, 452 Heron-Verfahren, 460 der konjugierten Gradienten, 196 Monte-Carlo-Verfahren, 293 Multilevel-Monte-Carlo-Verfahren, 399 Newton-Verfahren, 456 Teile-und-herrsche-Verfahren, 39, 352 Verfahrensfehler, 24 Verfeinerungsgleichung, 382, 384 Versuch, 208 Verteilung, 239 Binomial-Verteilung, 256 Exponential-Verteilung, 274 Gauß-Verteilung, 278 geometrische, 242 Gleichverteilung, 273 hypergeometrische, 262 Normalverteilung, 278 Poisson-Verteilung, 259 stationäre, 313 Verteilungsfunktion, 242 der Exponentialverteilung, 275 gemeinsame, 251 der Gleichverteilung, 273 der Normalverteilung, 279 Verwerfungsmethode, 290 Vorgängerknoten, 57 Vorwärtsanalyse, 25 Vorwärtskante, 90 Vorwärtsstabilität, 28 Vorwärtssubstitution, 136 Vorzeichen-Betrag-Darstellung, 4 W Wahrscheinlichkeit, 213 bedingte, 223 totale, 229 Übergangswahrscheinlichkeit, 300 Wahrscheinlichkeitsfunktion, 240 Wahrscheinlichkeitsraum, 213 Wahrscheinlichkeitsverteilung, 213 Walsh, 388 Walsh-Funktion, 388 Walsh-Transformation, 388 Wavelet, 383
473 Wavelet-Paket-Zerlegung, 388 Wavelet-Transformation inverse, 387 Weddle-Regel, 416 Weg, 56 einfacher Weg, 56 Eulerscher Rundweg, 61 kürzester, 76 v-w-Weg, 56 Weglänge, 56, 75 kürzeste, 76 Worst Case, 36 Wort, 1 Wurzel, 46 Wurzelsatz von Vieta, 23 Z Zahl denormalisierte, 14 natürliche, 1 Pseudozufallszahl, 285 Zahlensystem, 1 Zehnerkomplement, 6 Zeilensummennorm, 113 Zerlegung, 214 zirkulante Matrix, 354 zufällige Irrfahrt, 299 Zufallsexperiment, 208 Zufallsvariable, 239 diskrete, 240 stetige, 267 Zusammenhang, 58 starke Zusammenhangskomponente, 68 starker, 68 Zusammenhangskomponente, 58 Zustand aperiodischer, 308 erreichbarer, 307 kommunizierender, 307 Periode eines Zustands, 308 Zustandsraum, 300 Zweierkomplement, 6 Zyklus, 60 einfacher, 60