Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2...

153
Fachhochschule Jena, 2002 / 2017 Lehrmaterial Numerische Mathematik Prof. Dr. W. Rosenheinrich Dritte, berichtigte und ergänzte Auflage Kopien dieses Lehrmaterials dürfen nur zum Zweck des Studiums an der FH Jena hergestellt werden.

Transcript of Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2...

Page 1: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Fachhochschule Jena, 2002 / 2017

Lehrmaterial

Numerische Mathematik

Prof. Dr. W. Rosenheinrich

Dritte, berichtigte und ergänzte Auflage

Kopien dieses Lehrmaterials dürfen nur zum Zweck des Studiums an der FH Jena hergestellt werden.

Page 2: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Inhaltsverzeichnis

1 Einführung 41.1 Inhalte der numerischen Mathematik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Hinweise zur Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Bemerkungen zum vorliegenden Lehrmaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Zahlen im Computer 102.1 Zahlendarstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2 Besonderheiten des praktischen Rechnens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Einige universelle Verfahren 173.1 Das Aitkensche ∆2-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2 Das Verfahren vom Goldenen Schnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3 Numerische Differentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4 Lösen von Gleichungen 284.1 Eine Gleichung einer Unbekannten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.1.1 Vorbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.1.2 Intervallhalbierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.1.3 Regula falsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.1.4 Das Newton-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.1.5 Fixpunktiteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.1.6 Polynomnullstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2 Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.2.1 Vorbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.2.2 Lineare Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.2.3 Nichtlineare Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.2.4 Das Newton-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.2.5 Das gedämpfte Newton-Verfahren und Einbettung . . . . . . . . . . . . . . . . . . . . 724.2.6 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5 Optimierung 795.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.2 Koordinatenweiser Abstieg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815.3 Gradientenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.4 Heuristische Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845.5 Optimierung mit Nebenbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Approximation von Funktionen 886.1 Problemstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886.2 Berechnung von Grundfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896.3 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6.3.1 Algebraische Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926.3.2 Kubische Splinefunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 Gleichmäßige Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996.5 Approximation im Quadratmittel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

2

Page 3: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

6.6 Anpassung an Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066.7 Nichtlineare Anpassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076.8 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7 Differentialgleichungen 1107.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107.2 Vorbetrachtung: Taylor-Polynom zur Lösungsfunktion . . . . . . . . . . . . . . . . . . . . . . 1117.3 Runge - Kutta - Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177.4 Schrittweitensteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237.5 Spezielle Verfahren für spezielle Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267.6 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

8 Beispiele 1318.1 Beispiel 1: Numerische Auswertung einer Fourier-Reihe . . . . . . . . . . . . . . . . . . . . 1318.2 Beispiel 2: Ladungsdichte auf einem Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1348.3 Beispiel 3: Stationäre Temperaturverteilung - ein Randwertproblem . . . . . . . . . . . . . . . 1378.4 Beispiel 4: Nullstellensuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

9 Literatur 149

10 Bemerkungen zu den Fußnoten 150

Sachwortverzeichnis 152

3

Page 4: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 1

Einführung

1.1 Inhalte der numerischen MathematikDie numerische Mathematik - hier auch im Sinne des Begriffs ’Wissenschaftliches Rechnen’ verstanden -befaßt sich mit den Gesichtspunkten, die bei der zahlenmäßigen Auswertung mathematischer Erkenntnissezu beachten sind. Bei der Planung einer konkreten Zahlenrechnung geht es um die folgenden Faktoren:

1. Welche Genauigkeit kann wie erreicht werden? Welche Genauigkeitsgrenzen gibt es gegebenfalls?

2. Welcher Rechenaufwand muß getrieben werden?

3. Welche theoretischen Vorarbeiten / Programmieraufwand ist notwendig?

4. Ist es eine Handrechnung, eine mit Unterstützung durch einen Computer oder verläuft sie völlig auto-matisch?

5. Wie kann die Richtigkeit des Resultats / des Programms überprüft werden?

Die ersten drei Punkte arbeiten gegeneinander. Wünscht man eine hohe Genauigkeit, so muß man i. a. vielrechnen (im Sinne von: Viele Rechenoperationen ausführen, viele Funktionen auswerten, ...). Diesen Aufwandkann man senken, indem man das Problem sinnvoll theoretisch aufarbeitet und geschickt programmiert (vgl.Beispiel 1 im Anhang).Es wird also für ein gewisses Problem nicht das Rechenverfahren geben, vielmehr ist das Verfahren denjeweiligen Bedürfnissen anzupassen. Will man eine einzige Gleichung einmalig lösen, so ist ein einfachesVerfahren ausreichend, das man in einer Minute programmiert hat, selbst wenn es dann 0.1sec rechnet. Istdiese Gleichung dagegen z. B. in einem in Echtzeit arbeitenden Steuerrechner sehr oft zu lösen und möglichstschnell, so kann es gerechtfertigt sein, einen Tag über das Problem nachzudenken und die Rechenzeit miteinem sorgfältig erstellten Programm auf 0.001sec zu senken.

Beispiel: Wenn die kleinste positive Nullstelle des Polynoms 2.13x3+37.53x2+4.09x−38.15 gefunden werdensoll und man hat einen Computer oder Taschenrechner mit geeigneter mathematischer Software zur Verfü-gung, so läßt man sich einfach die Kurve der Funktion zeichnen, bekommt eine Information über die Lageder Nullstellen und vergrößert dann einfach den interessierenden Bereich solange, bis man den gesuchtenWert mit akzeptabler Genauigkeit ablesen kann.Hat man nur einen einfachen Taschenrechner oder keine Grafik, so kann man sich überlegen, daß die Ableitungdieses Polynoms ein quadratisches Polynom mit nur positiven Koeffizienten ist (deren Wert ist unwesent-lich), daß diese Funktion also bei x > 0 streng monoton wächst und da sie in x = 0 negativ ist gibt esfolglich tatsächlich eine und nur eine positive Nullstelle. Diese kann man z. B. mit dem Newton-Verfahrenberechnen, wobei man in einem Computerprogramm die Abbruchbedingung weglassen kann - man läßt sichdie Näherungen fortlaufend auf den Bildschirm ausgeben und bricht einfach von Hand ab.Sei nun aber y(x) die kleinste positive Nullstelle des Polynoms (in y)

2.13y3 + (4.56 + 3.9x2)y2 + (4.21 + 3.19x)y − (3.66 + 4.12x2 + 0.94x4)

und will man diese Funktion für verschiedene Werte von x tabellieren (oder das Integral∫y(x) dx in den

Grenzen von 0.48 bis 3.81 numerisch berechnen), so braucht man ein Programm, das solche Nullstellenauf-gaben autonom löst, das mit dem Fall nur einer reellen, mehrfacher oder mehrerer Nullstellen zurecht kommt

4

Page 5: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

und das dann auch noch mit Sicherheit die ggfs. richtige unter mehreren positiven Nullstellen findet (washier aber bei x ≥ 0 nicht eintritt).Es gibt mathematische Probleme, deren Lösungen sich mit den üblichen mathematischen Hilfsmitteln nichtaufschreiben lassen, zumindest nicht als endliche Ausdrücke. Hierzu gehört die Aufgabe, die Nullstelle eines(allgemeinen) Polynoms des Grades 5 oder höher zu finden oder die Lösung der Gleichung x + ex = 2. Indiesen Fällen ist man auf Näherungsverfahren angewiesen. Dieser Begriff ist bisweilen nicht ganz zutreffend,denn oftmals können diese Verfahren mit geringen Aufwand eine solche (rechnerische) Genauigkeit liefern,die weit über den praktischen Erfordernissen liegt. In dieser Hinsicht gibt es also keinen Qualitätsunterschiedzu dem Resultat, das eine ’exakte’ Formel liefert (die man erhält, wenn man die Gleichung in den Fällen, wodies möglich ist, nach x auflöst). Der reale Nachteil des numerischen Verfahrens ist, daß es in irgendeinemSinne nur ein Resultat liefert. Die Lösung der Gleichung x+ eax = 2 hängt von a ab. Wenn es eine Formelzu ihrer Auflösung gäbe, so könnte man den Ausdruck für die so definierte Funktion x = x(a) aufschreiben,sie diskutieren usw.. Mit einem numerischen Verfahren kann man höchstens eine Tablle dieser Funktion - fürverschiedene Werte von a - berechnen.Ein weiteres Anwendungsfeld für Näherungsverfahren sind die Fälle, wo man die Gleichung zwar exakt lösenkönnte, dies aber zuviel Aufwand wäre (z. B. bei einem Polynom dritten oder vierten Grades).Im Rahmen dieses Kurses werden Näherungsverfahren zur Lösung gewisser Standardprobleme entwickeltund vorgestellt. Es wird auf die Möglichkeiten und Grenzen dieser Methoden eingegangen. In den Fällen,wo zu einem Problem mehrere Verfahren angeboten werden erfolgt ein Vergleich bezüglich der Vor- undNachteile der Varianten.Eine wichtige Kennziffer zur Bewertung eines Verfahrens ist sein Aufwand (oder das Verhältnis vom Auf-wand zur erzielten Genauigkeit). Dieser wird in der notwendigen Anzahl von arithmetischen Operationen,von Funktionsaufrufen o. ä. gemessen.

Beispiel: Gesucht ist ein Begriff im Lexikon (mit N Einträgen, wobei N eine große Zahl ist).1. Verfahren: Man liest das Lexikon - von vorn beginnend - durch, bis man den Begriff findet. - Dazu mußman im Mittel - bei vielen Suchzugriffen - N/2 Begriffe überprüfen. Das wäre die Anzahl der ’Funktions-wertberechnungen’ (oder der Aufwand).2. Verfahren: Man schlägt das Lexikon in der Mitte auf und stellt fest, ob der gesuchte Begriff davor oderdanach liegt. Danach halbiert man die betreffende Hälfte usw.. - Der Aufwand beträgt etwa log2N Zugriffeund ist wesentlich geringer als N/2.3. Verfahren: Man nimmt die ersten zwei(, drei oder vier) Buchstaben des Wortes (z. B. Rutil) und inter-pretiert sie als Zahlen: a = 0, . . . , r = 17, . . . , u = 20, . . . eines Systems mit der Basis 26. Hier wäre also derWert ru = 17 · 26 + 20 = 462.Das Lexikon beginn mit Aachen (aa = 0) und endet mit Zytologie (zy = 25 · 26 + 24 = 262 − 2 = 674),es habe z. B. 1577 Seiten. Nun suchen wir die Seite 462

674 · 1577 = 1081 und sehen nach, ob wir dort Rutilfinden. Angenommen, dort steht statt dessen Pylon (py = 15 · 26 + 25 = 415), dann teilen wir die Seitenvon 1079 bis 1577 so, wie die Zahl 462 den Abschnitt von 415 bis 674 teilt, usw..Dieses Verfahren ist nochmals deutlich effektiver als das vorige.Zur Lösung des gestellten Problems gibt es also (mindestens) drei Verfahren, die sich vom Aufwand herenorm unterscheiden. - Wenn man sie aber programmiert, so ist dabei der Aufwand genau umgekehrt be-messen.

Ziel ist es meist, den Aufwand des Verfahrens gering zu halten. Dahinter steht die Absicht, Rechenzeit zusparen. Das mag im Einzelfall nicht nötig sein. Die Erfahrung zeigt aber, das die Geschwindigkeitssteigerungder Computer diese Betrachtungen nicht überflüssig macht. - Ende der 40er Jahre kam die Meinung auf, daßder Bau einiger weiterer Großrechner (von den Maßen her; sie konnten kaum soviel wie manch heutiger pro-grammierbarer Taschenrechner) den gesamten Rechenbedarf der Menschheit abdecken würde. Das stimmtesogar, allerdings nur unter der Voraussetzung, daß dieser konstant bliebe, was nicht eintrat. Seither hat sicherwiesen, daß nach jeder Verbesserung der Computerparameter (Geschwindigkeit, Speicher, ...) neue, bisherunangreifbare Probleme in den Bereich des Machbaren geraten und diese lasten die Technik wiederum vollaus. Die komplizierten Rechnungen sind Kombinationen einfacher Verfahren, z. B. der Lösung von Millionenlinearer Gleichungssysteme, und dies muß also effektiv erfolgen, wenn man die Rechnung in akzeptabler Zeitschaffen will.

5

Page 6: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

1.2 Hinweise zur ProgrammierungAngenommen, ein Ingenieur hat im Rahmen einer Entwicklung oder Untersuchung eine mehr oder wenigergroße Rechnung vor und plant, dafür ein Programm zu erstellen. Die Einhaltung der folgenden Hinweisesollte dabei manchen Kummer und Aufwand ersparen:

1. Man stelle sich ein bald erreichbares Ziel.Es lohnt sich oftmals, zunächst eine stark vereinfachte Variante zu rechnen. Die Ergebnisse sind grob, gebenaber evtl. sehr nützliche Orientierungen. Die typische Situation ist, daß man vor Beginn der Rechnung nichtgenau weiß, was man eigentlich haben will, aber glaubt, es zu wissen. Einige erste grobe Resultate liefernein Bild und nun beginnt man die Problematik zu begreifen und man kann in der nächsten Etappe bereitssinnvolle Fragen stellen (... Werte berechnen) (s. Beispiel 2). - Ärgerlich ist es, wenn jemand mit Akribiein tage- oder wochenlanger Arbeit ein Programm entwickelt und dann feststellt, daß es seine Fragen nichtbeantwortet und auch nicht mehr zu retten ist. Schlimmstenfalls kommt es nie zum Laufen - weil es eineSituation modelliert, die physikalisch oder technisch unmöglich ist, wovon man sich mit wesentlich wenigerAufwand hätte überzeugen können

2. Man formuliere die Aufgabe nicht zu speziell.Es ist nicht untypisch, daß man das Programm in einer Arbeitsphase beginnt, wo man noch nicht genau sa-gen kann, was man eigentlich mit der Antwort (dem Rechenresultat) anfangen will. Und man weiß bisweilenauch noch nicht, welche Antwort man benötigt (welche Kennziffern man wirklich braucht).Wie gesagt, manche Fragen entstehen im Laufe der Problembearbeitung und sie sind keineswegs vorherzu-sehen. Deswegen sollte man im Programm Freiheiten vorsehen.Angenommen, in allen Vorgängermustern war R4 = 3.5kΩ und so wird es auch bleiben, also schreibt mandas gleich als Zahl in das Programm.Und dann wird doch beschlossen, diesen Wert zu ändern...Jetzt hat man ein Problem, denn man kann nicht einfach ’3500’ mit dem Editor suchen - an einer Stelle imProgramm steht nämlich die Hälfte dieses Wertes, an anderer Stelle sein Kehrwert ... .Also: Auch wenn’s überflüssig aussehen sollte - man vereinbare für R4 eine Variable und lese sie z. B. auseinem File GSGW.DAT ein (Ganz Selten Geänderte Werte).

3. Man zerlege das Programm in klare Schritte (Modularisierung).Ein Riesenprogramm in einem Stück zu bauen ist eigentlich immer ein Fehler. Die Regel ’Kein Programm /Unterprogramm / Unit länger als 1...2 DIN A4 - Seiten.’ ist sehr sinnvoll.Die Lösung von Hilfsgleichungen u. ä. sollte man als separate Unterprogramme programmieren, selbst wenndiese im Programm nur einmal aufgerufen werden. Ein solches Unterprogramm kann für sich getestet werden,und wenn man sich seiner sicher ist kann man diesen Teil des Programms vergessen (na, nicht ganz). DasHauptprogramm bzw. die Unterprogramme der oberen Level bestehen dann fast nur aus Unterprogramm-aufrufen und dadurch werden sie kurz und übersichtlich.Spätere Änderungen sind einfacher zu lokalisieren und betreffen meist nur wenige definierte Unterprogram-me.Man ist auf diese Weise genötigt, die Datenübergabe zwischen den Programmteilen vernünftig zu planen.Das zwingt auch, die Programmstruktur vorab sorgfältig zu bedenken und das wiederum verlangt Klarheitüber die Problemstellung. Insgesamt kommt dadurch Linie ins Projekt.Es ist ein typischer Fehler, daß man, wenn man mit der theoretischen Durchdringung des Problems nichtweiter kommt (z. B. irgendeinen physikalischen Aspekt nicht versteht) erst einmal anfängt zu programmie-ren. Vielleicht das Rahmenprogramm und die Ein- und Ausgaben ... .Das ist Aktionismus. Man hat zwar für den Moment das Gefühl, etwas Nützliches zu tun, aber oft erlebtman dann eine böse Überraschung: Das Gebaute erweist sich als unbrauchbar oder, was noch schlimmer ist,kann durch mühsame Umbauten dazu gebracht werden, mehr schlecht als recht seinen Dienst zu tun.Bei diesen Unterprogrammen unterscheide man sorgfältig zwischen lokalen und globalen Variablen usw. usf.,sicher wurden entsprechende Hinweise in der Informatikausbildung gegeben. Diese Strukturierung und Klar-heit ist keine Zwangsjacke, sondern das Vermeiden von massiven Ärger - und bei Projekten ab einer gewissenGröße die einzige Chance, sie zu realisieren.

4. Man überlege sich Kontrollmöglichkeiten.Die Zeit nach dem Schreiben des Quelltextes, in der der Compiler syntaktische Fehler meldet, ist vergleichs-weise problemlos.Wenn das Laufzeitsystem ’Division durch Null’ oder ’Wurzel aus einer negativen Zahl’ reklamiert, so kannman meist recht einfach klären, was falsch ist und wie man es korrigieren muß.

6

Page 7: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Ein offensichtlich unsinniges Resultat nützt nichts, schadet aber auch nicht.Kritisch ist es, wenn das Resultat stimmen könnte, aber man weiß es nicht sicher.1Hat man (vgl. 1.) nur eine grobe Rechnung gemacht, so kann man sie evtl. für einen einfachen Fall mit demTaschenrechner separat nachrechnen und dann vergleichen. (Noch besser ist es, sie von einer anderen Personnachrechnen zu lassen, um nicht beide Male demselben Denkfehler aufzusitzen. Geht das nicht, so sollte manes wenigstens an einem anderen Tag machen und ohne die vorige Rechnung daneben zu haben.) Ist man sichseiner groben Werte dann halbwegs sicher, so kann man mit ihrer Hilfe das feinere Modell kontrollieren.Bisweilen lassen sich Probleme ganz primitiv programmieren, das entstehendende Programm ist aber inpuncto Genauigkeit und Rechenzeit undiskutabel schlecht und für Routinerechnungen ungeeignet. Aber einpaar Stunden kann man opfern, um wenige Beispiele zum Vergleich zu rechnen. (s. Beispiel 2).In vielen Problemen kann man gewisse Sonderfälle leicht lösen und diese Sonderfälle sollte man unbedingtzu Testzwecken rechnen. Das muß man vielleicht schon beim Erstellen des Programms vorhersehen und esetwas allgemeiner schreiben als geplant.Beispiele:a) Man modelliert ein elektrisches Netzwerk. Ziel ist es, gewisse Ströme in ihm zu berechnen. - Setzt mansämtliche Spannungsquellen auf Null (entsprechende Eingabe ermöglichen), so dürfte kein Strom fließen -kontrollieren! Setzt man sämtliche Spannungen auf denselben Wert, so ist möglicherweise offensichtlich, daßdann auch (evtl. in einem Teil der Schaltung) keine Ströme fließen - kontrollieren! Evtl. weiß man, was pas-sieren muß, wenn die Frequenz der Spannungen wächst oder fällt - kontrollieren!b) Man möchte numerisch das Anfangswertproblem

y′′ −√a+ b sin2 cy · y′ − y · (p+ q · cos cy) = re−sx · sin(2cx+ u) , y(0) = 0, y′(0) = w

mit vorgebbaren Parametern a, b, c, p, q, r, s, u und w lösen.Das Programm wird so erstellt, daß eine beliebige rechte Seite f(x) vorgesehen ist und statt der homogenenBedingung für y(0) sieht man noch einen Parameter z vor. Dann rechnet man aus, wie die rechte Seite unddie Anfangsbedingung aussieht, wenn man für y(x) konkrete Funktionen einsetzt: x2, x3, eαx, sinαx usw. undstartet das Programm damit - es müßte die jeweils gedachte Funktion reproduzieren.Bei b = q = 0 ist das Problem geschlossen lösbar - ein unbedingt auszunutzender Testfall.Analog im Fall c = 0.c) Man hat ein Programm geschrieben, das ein allgemeines lineares Gleichungssystem Ax = b löst.Zu Testzwecken belegt man den Vektor b mit Werten

bi =n∑j=1

j · aij .

Es müßte dann xj = j sein, durch Rundungsfehler können die Werte aber etwas verfälscht werden.Eine Kontrolle könnte so ablaufen: Die Matrix A wird mit Zufallszahlen belegt, dann wird b in der beschrie-benen Weise berechnet und danach bestimmt das Testprogramm den Wert

n∑j=1

|xj − j| .

Ist dieser kleiner als 10−6, so wird dieser Test mit einer neuen Matrix A wiederholt, ansonsten wird A ausge-geben und gestoppt. Dann muß man detailliert prüfen, wieso es zu einem solchen Problem kommen konnte.Vielleicht ist es ein echter Fehler im Programm, vielleicht aber auch eine Stelle, die formal richtig ist, imrauhen Wind der Praxis aber versagt.Wieso nicht einfach die Summe aller Elemente einer Zeile von A nehmen, die Lösung muß dann xj = 1sein? - Das ist eine weniger sichere Kontrolle. Beim Lösen des Systems hat man vielleicht Spalten der Matrixgetauscht und sich dabei geirrt. Wenn alle Unbekannte untereinander gleich sind, so merkt man diesen Fehlernicht.Den Zufallszahlengenerator sollte man definiert initialisieren und nicht etwa von der Rechneruhr her, dennsonst kann es passieren, man erwischt ein Problem und findet es nie wieder.Wenn dieses Programm einige Tausende von Gleichungssytemen mit verschiedenen Anzahlen von Unbekann-ten korrekt gerechnet hat so kann man es mit einigem Vertrauen einsetzen.

1’Nach der Erfahrung des Autors kann ein guter Theoretiker fast beliebige gewonnene Resultate erklären, richtige wie falsche,aber er kann zumindest eine Masse Zeit verlieren, wenn er klärt, ob sie richtig sind oder nicht.’R. W. Hamming, Bell Telephone Laboratories

7

Page 8: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Eine Feststellung aus diesem Test könnte aber durchaus sein, daß das Programm formal korrekt ist undSysteme mit maximal etwa 40 Unbekannten auch ganz ordentlich löst, aber darüber wird es unsicher undsollte nicht verwendet werden. - Dann weiß man, woran man ist und wo seine Grenzen liegen. Evtl. muß mannun also ein zweites Programm schreiben, das gründlicher arbeitet und n ≤ 200 verkraftet. Wegen seinersubtilen Arbeitsweise ist es langsamer als das alte und sollte deshalb bei n ≤ 40 durch dieses ersetzt werden- das ist doch eine nützliche Erkenntnis.c) Das Programm soll für ein Polynom n-ten Grades (n < 10) mit nur reellen Nullstellen diese ausrechnen.Das Polynom ist in der klassischen Form xn + an−1x

n−1 + . . .+ a2x2 + a1 + a0 gegeben.

Der Test erfolgt analog: Man würfelt n Nullstellen mit dem Zufallszahlengenerator aus, multipliziert dann(x − x1)(x − x2) . . . (x − xn) aus (natürlich nicht von Hand; dafür genügt ein kleines Programm) und läßtdann das betreffende Programm auf das Resultat los. Dessen berechnete Nullstellen werden mit den vorge-gebenen verglichen (vorher sortieren) und bei Problemen erfolgt eine Meldung. Der Prozeß wird viele Malewiederholt.Besonders wichtig ist es hier, den Fall mehrfacher Nullstellen zu testen, und den Fall von sehr eng benach-barten - also fast mehrfachen - Nullstellen. Und falls das Polynom echt komplexe Nullstellen besitzt solltees das Programm auch merken und mitteilen.

5. Man statte das Programm mit Testmöglichkeiten aus.Nichts gegen die in vielen Programmsystemen enthaltenen Debugger, aber bisweilen sind Informationen ausdem eigenen Programm heraus hilfreicher.In der Testphase des Programms wird man sicher eine Anzahl Hilfswerte auf das Display ausgeben lassen.Man ist oftmals gut beraten, dies nicht sporadisch und nach Bedarf zu tun, sondern es einigermaßen zuplanen.Praktisch bewährt haben sich Ausgaben der Form

if test then writeln(’CYM5’,a,b,c);

Hierbei ist test eine logische Variable, die in der Testphase auf true und in der Phase der Nutzrechnungenauf false gesetzt wird. ’CYM5’ ist eine Information zu der Stelle, an der die Ausgabe erfolgte und a, b, c sindinteressierende Werte.Ein erfolgreicher Programmtest ist keine Garantie gegen Überaschungen in der Zukunft. Bei dieser Vorge-hensweise würde man - z. B. bei einem Absturz des Programms - test wieder zuschalten, den Lauf wiederholenund hätte die Absturzstelle schon einigermaßen lokalisiert.Ggfs. ist es sinnvoll, die Rechnung in einem gewissen Umfang in einem Hilfsfile zu protokollieren, den manignoriert, wenn sie problemlos ablief.

1.3 Bemerkungen zum vorliegenden LehrmaterialDieses Lehrmaterial ist hauptsächlich als Lehrbuch zur Ergänzung der Vorlesung gedacht und nur in zweiterLinie als Nachschlagewerk oder Formelsammlung.Dabei wurden an einigen Stellen Fakten und Zusammenhänge nur knapp dargestellt, die im Rahmen derVorlesung an der Tafel wesentlich verständlicher entwickelt werden können, als dies in einer statischen Dar-stellung möglich ist.Das Skript orientiert auf Ingenieurstudenten und versucht, mit den mathematischen Mitteln auszukommen,die im Grundstudium vermittelt werden. Insofern ist damit die Numerikausbildung eine gewisse Wieder-holung von Stoffteilen, die nach Bedarf (und nicht in der chronologischen Reihenfolge ihrer Behandlung)miteinander kombiniert werden. Speziell die Formel von Taylor wird wiederholt benutzt und erweist sichals außerordentlich nützlich.Für den Ingenieur ist die Mathematik ein Hilfsmittel und nicht das Zentrum seiner Tätigkeit. Deshalb wirdhier darauf verzichtet, für die theoretische Analyse der Verfahren notwendige technische Begriffe zu ent-wickeln, die später in der Praxis kaum verwendet werden (können). Bei der detaillierte Betrachtung dernumerischen Lösung von linearen Gleichungssystemen benötigt man z. B. den Begriff der Matrixnorm, denman schlecht einführen kann, ohne gründlicher auf seine Eigenschaften einzugehen. Dieses Wissen wird abervermutlich später für die meisten Absolventen überflüssig sein. Deshalb wird hier darauf - und auf einige an-dere Begriffe - verzichtet. Der Preis ist der Umstand, daß einige Aspekte nicht exakt erklärt werden können,sondern nur plausibel dargestellt werden. Ein ’richtiges’ Lehrbuch hat diesen Nachteil nicht, um aber dasdort auf Seite 259 beschriebene Verfahren zu verstehen muß man den gesamten Text davor ... nicht gelesen,sondern studiert haben.

8

Page 9: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Welche Ziele werden mit dieser Ausbildung (und diesem Material) verfolgt?Der Hörer soll anschließend in der Lage sein, gewisse Standardprobleme selbst zu rechnen bzw. zu program-mieren. Er soll für die Besonderheiten des Zahlenrechnens sensibilisiert sein, nach geeigneter Software suchenkönnen, deren Beschreibung mit einer gewissen Sachkenntnis lesen und bewerten. Bei Fehlern und Problemensollte er diverse übliche Ursachen erkennen und beseitigen können.Ebenfalls sehr wichtig ist die prinzipielle Erkenntnis, daß man nicht blind drauflosrechnen darf, sondern aufFallstricke und Fehlerquellen achten muß. Die häufigsten und vermutlich gefährlichsten werden im Text an-gesprochen. Man vergesse nicht: Zahlenrechnen ist mathematische Praxis. Daß Theorie und Praxis durchausgrundverschiedene Dinge sind sollte ein angehender Ingenieur wissen. Ebenso, daß die Praxis nicht ohneordentliche Theorie auskommt.Die Beispielprogramme werden in einer PASCAL-ähnlichen Notation geschrieben. Damit dürften sie auchfür solche Leser verständlich sein, die diese Programmiersprache nicht nutzen, denn diese Formulierungenlehnen sich an die natürliche Sprache an.Mit a, b, . . . , h, p, q, . . . , z werden real-Größen bezeichnet, mit i, j, k, l,m, n solche vom Typ integer.Variablenvereinbarungen, Ein- und Ausgaben u. ä. werden in den Beispielprogrammen in der Regel wegge-lassen.Es geht hier darum, prinzipielle Kenntnisse zu vermitteln, nicht solche, die beim Übergang von einer Version4.3 zu 4.4 hinfällig werden.In nicht-ganzen Zahlen wird ein Dezimalpunkt verwendet.

9

Page 10: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 2

Zahlen im Computer

2.1 ZahlendarstellungHallo, ist da Herr Andreas Aal? - Nein, hier ist Zacharias Zander!Nanu? Ist das nicht die 276034? - Nein, die 276033.Mensch! Minimale Abweichung in der sechsten Stelle und so ein Effekt!

Im Computer unterscheidet man prinzipiell zwischen ganzen Zahlen (integer, longint, ...) und Gleitkom-mazahlen (engl.: floating point number) (real, double, extended, ...). Erstere werden für zählbare Objektewie Indizes, x-Potenzen im Polynom usw. benutzt, die zweiten für sich (mehr oder weniger) stetig änderndeGrößen.1 Die Anzahl der Protonen im Atom eines gewissen Elements ist ganzzahlig, sein Atomgewicht istes nicht. Ganzzahlige Angaben sind in der Regel exakt, reelle Zahlen enthalten meist eine gewisse Toleranz:- Das deutsche Eherecht erlaubt einen Gatten.- Diese Tüte enthält ein Kilogramm Mehl.Der Übergang kann fließend sein:- An der Versammlung nahmen 23 Personen teil. (vermutlich exakt)- Zur Demonstration kamen 3 000 Menschen.(bestimmt gerundet, obwohl die Anzahl der Demonstrationsteilnehmer fraglos ganzzahlig ist)

Im Computer wird im Dualsystem gerechnet (oder oktal oder hexadezimal, aber das sind nur Variationendavon). Eine Gleitkommazahl hat dann prinzipiell die folgende Gestalt:

x = v ·M · 2n .

Dabei repräsentiert v das Vorzeichen von x, es ist also +1 oder -1 (und wird durch ein einziges Bit dargestellt).Die Zahl M heißt Mantisse von x. Sie ist üblicherweise normiert, d. h. sie liegt zwischen 1 und 2 (oder 0.5und 1; das ist nicht wesentlich, es muß nur festgelegt sein). Die (einzige) Ausnahme hiervon ist x = 0, danngilt M = 0. Der ganzzahlige Wert n ist der Exponent der Gleitkommazahl x. Im Computer ist nur v, M undn gespeichert.Beispiel: Eine Gleitkommazahl könnte z. B. durch fünf im Speicher aufeinanderfolgende Bytes A,B,C,D undE dargestellt werden. Das Vorzeichen könnte man im ersten Bit A1 von A unterbringen: A1 = 0 bedeutet’positiv’ und A1 = 1 entsprechend ’negativ’.Das nächste Bit A2 ist fast immer 1. A2 = 0 bedeutet x = 0 (und zieht A = B = C = D = E = 0 nach sich, d.h. ’Null’ ist positiv und hat den Exponenten 0). Der Rest A3 bis A8 sind die ersten dualen Nachkommastellenvon x, die weiteren stehen in B, C und D. E enthält den Exponenten. E1 ist sein Vorzeichen und E2 bisE8 enthalten den Wert (oder man einigt sich, daß bei E1 = 1 die Ergänzung zu 28 der betreffende negativeWert ist, d. h. 11111111 steht für -1).In dieser Konvention wäre

A B C D E11110100 00100111 01010001 01110011 10000101

die Zahl (im Dualsystem)

x = −1.1110100001001110101000101110011 · 2−101 .

Die erste Stelle der Mantisse (A2 steht für 20 = 1, die letzte für 2−(6+3·8) = 2−30 = 9.313 · 10−10.1Man denke an den Unterschied zwischen den Begriffen digital und analog!

10

Page 11: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Die Begriffe, die mit der Zahlendarstellung im Computer im Zusammenhang stehen, rühren noch aus derZeit her, als die Rechenoperationen im Computer fest verdrahtet waren, als ein Rechner also nur in ei-nem Modus arbeiten konnte. Heute werden diese Operationen durch Programme realisiert. Damit gibt esmehr Freiheiten. Allerdings kann / wird es wohl vorkommen, daß auf einem konkreten Computer verschie-dene Gleitkommavarianten von verschiedener Software genutzt werden. Wenn also hier und weiterhin vomComputer gesprochen wird ist meist die jeweilige konkrete Software gemeint.

2.2 Besonderheiten des praktischen RechnensDie Zahlendarstellung zieht einige Unterschiede zwischen dem praktischen Rechnen im Computer und denidealen Rechengesetzen der Mathematik nach sich.

1. Es gibt eine kleinste (k) und eine größte (G) positive Zahl, analog im negativen Bereich. Wenn eineRechnung ein Resultat ergibt, das diesen Maximalwert überschreitet (z. B. G2), so erfolgt i. a. eine Fehler-meldung und ein Abbruch. Wird dagegen der kleinste Wert unterschritten (z. B. k2), so wird als Resultat 0angenommen.

2. Jede Zahl x im Computer (außer G und −G) hat zwei wohldefinierte Nachbarn x− und x+ und zwischenx und diesen gibt es in der Zahlenmenge des Computers keine weiteren Elemente. Man kann sich also einemgewissen Wert nicht beliebig weit annähern, sondern nur bis zu seinem nächsten Nachbarn.Der Abstand von x zu seinem Nachbarn hängt von x ab.2 Im vorangegangenen Beispiel einer Gleitkomma-implementation wäre bei x = 1 der nächstgrößere Wert x+ dadurch bestimmt, daß in der letzten Mantissen-stelle eine 1 steht statt der Null bei x = 1. Damit ist 1+ − 1 = 2−30 ≈ 10−9.Dieser Wert - der Abstand von 1 zur nächstgrößeren Zahl - heißt Maschinengenauigkeit εmasch. Je kleiner erist, desto genauer erfolgt die Rechnung. Der Preis einer guten Maschinengenauigkeit ist eine lange Mantisse,also hoher Speicherbedarf und ggfs. längere Verarbeitung.Die Zahl 2 hat dieselbe Mantisse wie die Zahl 1, aber sie wird mit 21 multipliziert und damit auch ihre letzteStelle. Also ist 2+ − 2 = 2 · 10−30 = 2εmasch.Grob gesprochen: Es gilt für x > 0 : x+ − x ≈ x · εmasch.Beispiel: Man hat ein digital anzeigendes Meßgerät, das drei Stellen und den Dezimalexponenten ausgibt.Bei der Anzeige 2.93 E-2 ist der Abstand zum nächsten Wert 2.94 E-2 gerade 0.01 E-2 = 1 E-4, aber 2.93E+3 liegt 0.01 E+3 = 1 E+1 unter 2.94 E+3. - Die relative (prozentuale) Änderung ist in beiden Fällen diegleiche.

3. Der Quotient m/n zweier ganzer Zahlen (maximal gekürzter Bruch und n > 1 vorausgesetzt) ist nur danneine endlich lange Dezimalzahl, wenn n = 2p · 5q mit natürlichen Werten p und q ist. Die Division durch 2,4, 5, 8, 10, 16, 20, 25, ... bricht ab, die durch 3, 6, 7, ... hingegen nicht.Allgemein ist die Darstellung eines solchen Bruchs in einem Zahlensytem genau dann endlich, wenn derNenner nur Primfaktoren enthält, die auch in der Basis des Zahlensystems vorkommen.Im Dualsystem ist dies einzig die Zahl 2. Endliche Dualbrüche enthält man also nur bei Division durch 2, 4,8, 16, ... .Man muß also beachten, daß 1/5 = 0.2 zwar eine endlich lange Dezimalzahl ist, die aber im Dualsystemnicht als endlicher Wert geschrieben werden kann:

1/5 = 0.0011001100110011 . . . .

Der Wert 1/5 (und analog 1/10, 1/20, ...) ist also in einem Computer nicht exakt darstellbar.Wird als Ergebnis einer Rechnung z. B. 5.370000000E-02 ausgegeben (also eine in irgendeinem Sinne ’glatte’Dezimalzahl), so steht im Computer etwas anderes!3Rundet man 1/3 zu 0.333 und addiert man diesen Wert dreimal, so entsteht 0.999. Theoretisch wäre 3· 13 = 1.Bei 5 · 1

5 hätte man diese Differenz im Dezimalsystem nicht, im Dualsystem aber schon! (Es muß allerdingsnicht auftreten, denn es kann sein, daß durch Rundung bei der Verarbeitung der Zahlen der exakte Wert 1entsteht.)Beispiel: Eine Funktion f(x) soll für x=0, 0.01, 0.02, ... 0.99, 1 tabelliert werden:

x:=0;1: Ausgabe(x,f(x)); x:=x+0.01;

if x ≤ 1 then goto 1;2Ist der Abstand von x zu x− gleich dem zu x+?3Wie ist das bei 5.370000000E+02?

11

Page 12: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

So sollte man das nicht programmieren; in x steht irgendwann 0.01+0.01+...+0.01 (100mal). Das sollte 1sein, muß es aber nicht. Wegen der Rundungsfehler könnte z. B. 1.000000004 entstehen und dann wird derletzte Wert nicht berechnet.Reelle Zahlen sind also als Indizes ungeeignet!Es ist zumeist sinnlos, reelle Zahlen auf Gleicheit zu testen, statt dessen prüfe man, ob sie weiter als einegewisse Grenze voneinander entfernt sind. Wenn ja, so sieht man sie als verschieden an, ansonsten als gleich.Im Falle des letzten Beispiels könnte man die letzte Zeile ändern in

if x < 1.001 then goto 1;dann gäbe es das Problem nicht mehr. Die Zahl 1.001 läßt einen durch Rundungseffekte geringfügig über 1liegenden Wert zu, schließt 1.01 aber aus. (Man könnte auch 1.005 nehmen ...)Noch ein Beispiel:- Sind alle 11 Spieler der Mannschaft im Bus? (exakt entscheidbar)- Sind genau 1000g Mehl in dieser Tüte? - Die Antwort könnte sein: Die Messung ergibt 1001.3± 0.6g, alsonein. Es kann aber auch sein, daß die vorhandene Meßtechnik keine Entscheidung ermöglicht.Beachten: Laut Definition ist x∗ eine Nullstelle der Funktion f(x), wenn f(x∗) = 0 gilt. In der Praxis istdieser Test sinnlos. Er muß durch den Test

|f(x∗)| ≤ ε

mit einer geigneten kleinen Größe ε ersetzt werden. Diese ist problemabhängig und kann keineswegs univer-sell festgelegt werden.Sei z. B. ε = 10−10 gewählt, das sieht erst einmal nicht schlecht aus. - Die Funktion f(x) = x−1 hat offenbardie Nullstelle x∗ = 1. Ein Wert, der der praktischen Definition |f(x∗)| ≤ ε genügt, sollte also auch nahe bei1 liegen.Sei nun f(x) = 10−20(x− 1) und x = 109= 1 Milliarde (!), so gilt |f(x)| ≈ 10−11 < ε, obwohl x mit x∗ nunwirklich nichts gemein hat.Umgekehrt, sei die Maschinengenauigkeit des Computers 10−14 und wir untersuchen die Funktion 1020(0.3−sinx). Falls der Wert 0.3 (genauer: seine interne Repräsentation) nicht von irgendeinem sinx genau getroffenwird (was keineswegs erwartet werden muß), so liegt die Differnz 0.3 − sinx in der Größenordnung dieserMaschinengenauigkeit und |f(x)| unterschreitet 106 nicht wesentlich. Damit kommen sie nie auch nur in dieNähe der Genauigkeitsschranke 10−10 und man käme zu dem falschen Schluß, diese Funktion habe keineNullstelle.Die Genauigkeitsschranke kann im einfachsten Fall so bestimmt werden, daß man mit Hilfe einiger reprä-sentativer Funktionswerte eine Größenordnung von |f(x)| ermittelt und dann ε als einen kleinen Teil diesesWertes festlegt.Ob Gulliver klein oder groß war ist nicht absolut feststellbar. Die Bewohner von Liliput und Brobdingnagwaren jedenfalls verschiedener Ansicht.

4. Addition (und entsprechend Subtraktion) von Gleitkommazahlen erfolgt in der folgenden Weise (mit klei-nen Variationsmöglichkeiten):Haben beide Summanden denselben Exponenten, so werden die Mantissen addiert (subtrahiert), danachwird das Ergebnis - das in einer Zwischenform eine Stelle mehr haben kann - wieder normalisiert und dabeiggfs. gerundet.Der einfacheren Lesbarkeit wegen werden nachfolgend die Beispiele mit dezimalen Gleitkommazahlen mitnur vierstelliger Mantisse (zwischen 1 und 10) ausgeführt - es geht nur um das Prinzip.

Summanden Zwischensumme Endwert8.445E+02

+8.263E+02 16.708E+02 1.671E+03

oderSummanden Zwischensumme Endwert8.445E+02-8.263E+02 0.182E+02 1.820E+01

Haben die beiden Summanden verschiedene Exponenten, so wird die Mantisse desjenigen mit dem kleinerenExponenten so verschoben, daß er denselben Exponenten wie der andere Summand bekommt. Dann wirddiese verschobene Mantisse auf die entsprechende Länge gerundet und mit der anderen Mantisse verknüpft(addiert oder subtrahiert). Weiter wie gehabt.

12

Page 13: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Summanden Verschiebung Rundung Zwischensumme Endwert8.445E+03 8.445E+03 8.445E+031.263E+01 0.01263E+03 0.013E+03 8.458E+03 8.458E+03

Konsequenz dieser Arbeitsweise ist, daß das Ergebnis einer Summation jetzt - im Unterschied zur Theorie,die das Gegenteil behauptet - von der Reihenfolge der Summanden abhängt. In der Praxis gilt also nicht

(a+ b) + c = a+ (b+ c) .

Beispiel: a = 3.051E + 03, b = 4.711E − 01, c = 6.532E − 02, vierstellige dezimale Mantisse.Linke Seite, Klammerausdruck:Wert Summanden Verschiebung Rundung Zwischensumme Endwerta 3.051E+03 3.051E+03 3.051E+03b 4.711E-01 0.0004711E+03 0.000E+03 3.051E+03 3.051E+03

Linke Seite, Endwert:Wert Summanden Verschiebung Rundung Zwischensumme Endwerta+b 3.051E+03 3.051E+03 3.051E+03c 6.532E-02 0.00006532E+03 0.000E+03 3.051E+03 3.051E+03

Diese Summe ist gleich a. Die Addition von b und c hat nichts bewirkt. Nun zur anderen Form:Rechte Seite, Klammerausdruck:Wert Summanden Verschiebung Rundung Zwischensumme Endwertb 4.711E-01 4.711E-01 4.711E-01c 6.532E-02 0.6532E-01 0.653E-01 5.364E-01 5.364E-01

Rechte Seite, Endwert:Wert Summanden Verschiebung Rundung Zwischensumme Endwerta 3.051E+03 3.051E+03 3.051E+03

b+c 5.364E-01 0.0005364E+03 0.001E+03 3.052E+03 3.052E+03

Die Endresultate der beiden Summationen (unterstrichen) differieren.Einzeln können die beiden kleinen Summanden gegen den großen nichts bewirken. Man merkt von ihnen erstetwas, wenn sie zusammenhalten.Bei gründlichen Rechnungen kann dieser Effekt von Bedeutung sein. Sind viele Summanden zu addieren, sosollte man dies in der Reihenfolge ihrer Größe tun, mit den betragskleinsten beginnend.Das ist ein guter Ratschlag, aber er erfordert das Sortieren der Werte und dies ist i. a. recht aufwendig,weshalb man es kaum in Betracht zieht. In manchen Fällen bekommt man die Summanden aber schon rechtgut vorsortiert, z. B. bei der Summation von Reihen. Betrachten wir als Beispiel die Reihe

∞∑k=1

1k2 =

π2

6= 1.644 934 066 848 226 436 . . . .

Um das Beispiel zu begrenzen nehmen wir eine nur dreistellige Mantisse an und summieren die Reihe inder naheliegendsten Weise. Der erste Summand ist 1 und er ist auch die erste Partialsumme. Alle weiterenSummanden werden passend zur vorigen Partialsumme verschoben.Die Rechnung ist in der nebenstehenden Tabelle dar-gestellt, wobei auf die Exponentialschreibweise ver-zichtet wurde und alles im Fixpunktformat der Man-tisse geschrieben ist. Die zweite Spalte ist auch in ei-ner bequemen Form geschrieben; intern sind es Gleit-kommazahlen ( Punkte hinter einer Zahl bedeuteneinen periodischen Dezimalbruch).

Hier kann man mit der Summation aufhören. Alleweiteren Summanden werden vom Computer igno-riert.Das Resultat ist recht ungenau, aber besser wird’snicht!

k 1/k2 Verschoben Partialsumme1 1 1.00 1.002 0.25 0.25 1.253 0.111... 0.11 1.364 0.0625 0.06 1.425 0.04 0.04 1.466 0.02777... 0.03 1.497 0.0204... 0.02 1.518 0.015625 0.02 1.539 0.0123... 0.01 1.5410 0.01 0.01 1.5511 0.0082... 0.01 1.5612 0.0069... 0.01 1.5713 0.0059... 0.01 1.5814 0.0051... 0.01 1.5915 0.0044... 0.00 1.59

13

Page 14: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Nun wird die Reihe ’rückwärts’ summiert. Um dieTabelle nicht zu lang werden zu lassen sei bei k = 25begonnen. Die Partialsummen sind anfangs klein unddie Summanden alle etwa gleich groß, sie werden alsoallesamt berücksichtigt.

Jedesmal, wenn die Partialsumme eine neue Zehner-potenz erreicht, wird ihre bisherige letzte Stelle weg-gerundet und die neuen Summanden werden künftigeine Stelle weniger verschoben.

Endresultat, etwas besser:

k 1/k2 Verschoben Partialsumme25 0.0016 0.00160 0.0016024 0.001736... 0.00174 0.0033423 0.001890... 0.00189 0.0052322 0.002066... 0.00207 0.0073021 0.002267... 0.00227 0.0095720 0.0025 0.00250 0.012119 0.00277... 0.0028 0.014918 0.00308... 0.0031 0.018017 0.00346... 0.0035 0.021516 0.00390625 0.0039 0.025415 0.00444... 0.0044 0.029814 0.00510... 0.0051 0.034913 0.00591... 0.0059 0.040812 0.00694... 0.0069 0.047711 0.00826... 0.0083 0.056010 0.01 0.0100 0.06609 0.0123... 0.0123 0.07838 0.015625 0.0156 0.09397 0.0204... 0.0204 0.1146 0.02777... 0.028 0.1425 0.04 0.040 0.1824 0.0625 0.063 0.2453 0.111... 0.111 0.3562 0.25 0.250 0.6061 1 1.00 1.61

Das Resultat ist nicht berauschend besser, aber wichtig ist, daß man bei der Summation ’rückwärts’ (beinahe)beliebig viele Summanden einbeziehen kann, während beim Aufsummieren in die ’natürliche’ Richtung nurdie ersten vierzehn beteiligt waren.Wiederholt man die letzte Rechnung4 in genau dieser Weise, aber mit mehr Summanden, so erhält manbeim Start bei k = 50 den Wert 1.63 und bei k = 100 beginnend 1.64 - der exakte Wert im Rahmen diesesGleitkommaformats.Das ist eine gängige Technik beim Summieren von Reihen, sofern sie nicht sehr schnell konvergieren. Manbraucht dazu aber eine Restgliedabschätzung der Reihe, damit man weiß, wo man bei der rückwärts laufendenSummation beginnen soll (vgl. Beispiel 1 im Anhang).Im Unterschied zur Wurst hat eine Folge eben nur ein Ende.

5. Sei x 6= 0. Die vorderen Ziffern in der (normierten) Mantisse, die reale Information beinhalten, nennenwir gültige Ziffern.Beispiel: Es wird ein Strom von 10.0±0.1A bei einer Spannung von 3.0±0.1V gemessen. Rechnerisch ergibtsich hieraus ein Widerstand von 3.33± 0.15Ω. Der Taschenrechner zeigt 3.33333333E+00, aber nur die ersteZiffer nach dem Komma ist gültig, allerdings unsicher.Eine gefürchtete Erscheinung ist der Verlust gültiger Ziffern durch Auslöschung, die bei der Subtraktion engbenachbarter Werte auftritt.

4Das geschah mit dem nachstehenden kleinen QBASIC-Programm, das diese Arithmetik simuliert:n = 100: s = 1 / (n ∗ n): CLS : FOR k = 1 TO n - 1u = 1 / ((n - k) ∗ (n - k))IF s > 1 THEN u = .01 ∗ INT(100 ∗ u + .5): GOTO 2IF s > .1 THEN u = .001 ∗ INT(1000 ∗ u + .5): GOTO 2IF s > .01 THEN u = .0001 ∗ INT(10000 ∗ u + .5): GOTO 2IF s > .001 THEN u = .00001 ∗ INT(100000 ∗ u + .5): GOTO 2IF s > .0001 THEN u = .000001 ∗ INT(1000000 ∗ u + .5): GOTO 2IF s > .00001 THEN u = .0000001 ∗ INT(10000000 ∗ u + .5): GOTO 22 s = s + uIF s > 1 THEN s = .01 ∗ INT(100 ∗ s + .5): GOTO 1IF s > .1 THEN s = .001 ∗ INT(1000 ∗ s + .5): GOTO 1IF s > .01 THEN s = .0001 ∗ INT(10000 ∗ s + .5): GOTO 1IF s > .001 THEN s = .00001 ∗ INT(100000 ∗ s + .5): GOTO 1IF s > .0001 THEN s = .000001 ∗ INT(1000000 ∗ s + .5): GOTO 1IF s > .00001 THEN s = .0000001 ∗ INT(10000000 ∗ s + .5): GOTO 11 PRINT n - k; u; s: NEXT k

14

Page 15: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Beispiel: Es interessiert die Spannung zwischen den Punkten A und B, die sich aber nicht direkt messenläßt. Man kann nur die (positive) Spannung in beiden Punkten gegen Erde messen und kommt auf 155.7Vund 152.3V mit einer Unsicherheit von 0.1V (so sei das Meßgerät). Die beiden Messungen haben also eineUnsicherheit (Fehlerschranke) von etwa 0.07%. Der interessierende Wert ist 155.7V - 152.3V = 3.4V miteiner Unsicherheit von 0.2V oder etwa 6%, also mehr als das Hundertfache der eigentlichen Meßwerte. -Durch die Subtraktion wurde aus Angaben mit vier gültigen Ziffern eine mit nur noch zwei.Beispiel: Man berechne die Nullstellen von x2 + 123.566x− 0.00343 !Die Koeffizienten sollen als exakte Werte verstanden werden.Nehmen wir eine achtstellige Gleitkommaarithmetik an, dann ist −p/2 = 6.1783000E+01 und

√p2/4− q =

6.1783028E + 015, hieraus folgt x1 = 1.2356603E + 02 und x2 = 2.8000000E − 05.Der erste Wert ist völlig in Ordnung und enthält nur gültige Ziffern. Schlimmstenfalls ist die letzte Stelledurch Rundung um eine oder zwei Einheiten verfälscht. Aber x2 ist katastrophal schlecht - es gibt hier nurzwei gültige Ziffern (wiederum mit einer kleinen Unsicherheit in der hinteren). Beim Bilden der Differenzsind sechs der acht Stellen verlorengegangen!Ausweg: Man berechne nur die betragsgrößere der beiden Nullstellen einer quadratischen Gleichung mit Hilfeder Lösungsformel, also −p/2 +

√p2/4− q bei p < 0 und −p/2 −

√p2/4− q bei p > 0 (d. h. man addiere

zwei positive oder zwei negative Zahlen) und bestimme dann den anderen Wert aus der Formel von Vieta:x1x2 = q.Hier folgt x2 = 0.00343/123.56603 = 2.7758438E − 05, alle Stellen gültig.

2.3 Aufgaben1. Ermitteln Sie die Maschinengenauigkeit Ihres Taschenrechners / Computers!

2. Laut Beschreibung arbeitet ein gewisser Taschenrechner intern mit zwölfstelligen Dezimalzahlen (alsomit dem etwa entsprechenden dualen Gleitkommazahlen), von denen nur die ersten zehn angezeigtwerden.Der Nutzer läßt

√2 berechnen. Wie kann er sich die 10. und 11. Nachkommastelle anzeigen lassen?

3. Sei G die größte positive Gleitkommazahl in einer Arithmetik, z. B. G = 9.99 . . . · 1099. Was bewirkendie Operationen G+ 1 und G+ 0.1G?

4. Ein Polynom Pn(x) = anxn + . . .+ a1x+ a0 mit an · a0 < 0 besitzt mindestens eine positive Nullstelle

x0. Das nachstehende Programm soll einen Wert a liefern, für den a − 1 ≤ x0 ≤ a gilt, also eineEinschließung dieser Nullstelle:

a:=0; y0:=P(a);1: a:=a+1; if y0*P(a) > 0 then goto 1;

Ist es theoretisch korrekt? Wieso ist es praktisch unbrauchbar?Hinweis: Betrachten Sie P2(x) = x2 − 2 · 10n für n = 20 oder n = 60.

5. Jemand hat eine Funktion kuwu(x) programmiert, die die dritte Wurzel aus einer reellen Zahl berech-nen soll, und will sein Unterprogramm nun testen:

Eingabe(x);if kuwu(x)*kuwu(x)*kuwu(x) 6= x then Ausgabe(’Fehler!’);

Was ist von diesem Testprogramm zu halten?

6. Berechnen Sie e−x für x = 0, 1, 2, . . . , 30 mit Hilfe der Potenzreihendarstellung e−x =∑∞k=0(−x)k/k!

und vergleichen Sie die Werte mit denen von der internen Funktion exp(x)!

7. Es sei - mit einer nichtnegativen ganzen Zahl n -

In =∫ 1

0

fn(x) dx =∫ 1

0

xn · e1−x dx .

a) Berechnen Sie für die x-Werte des Integrationsintervalls den Grenzwert limn→∞ fn(x) !b) Wie lautet demzufolge limn→∞ In ?

5Diese Zahl ist mit dem Taschenrechner berechnet. Die achtstellige Arithmetik würde ihn vermutlich noch etwas verfälschen.Man überlege sich deren Rechenweg!

15

Page 16: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

c) Zeigen Sie , daß für alle n die Monotonie In > In+1 > 0 gilt!d) Leiten Sie durch partielle Integration die Rekursionsformel In = n · In−1 − 1 her und bestimmen

Sie I0!e) Ermitteln Sie mit Hilfe der Potenzreihendarstellung der Funktion ex die Reihendarstellung

In = e ·∞∑k=0

(−1)k

(k!) · (n+ 1 + k)!

f) Berechnen Sie mit Hilfe beider Formeln die Werte I1 bis I50, und vergleichen Sie die Resultate!

16

Page 17: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 3

Einige universelle Verfahren

3.1 Das Aitkensche ∆2-VerfahrenGegeben sei eine Folge reeller Zahlen xk, die gegen einen gesuchten Wert A konvergiert. Sie habe die Form

xk = A+Bqk + yk

mit 0 < |q| < 1, B 6= 0 und einer schnell konvergenten Nullfolge yk. Sie konvergiere so schnell, daß auch nochq−k · yk −→ 0 gilt.Vernachlässigen wir diese schnell konvergente Folge, so können wir sagen, die gegebene Folge ist die Summeeiner Konstanten und einer geometrischen Folge und diese Konstante ist gerade der interessierende Grenzwert.Treffen wir die Annahme yk = 0 und nennen wir die Folgeglieder ohne yk einfach xk. Es soll nun A aus dreiaufeinander folgenden Werten xk berechnet werden:

xk = A+Bqk , xk+1 = A+Bqk+1 , xk+2 = A+Bqk+2 =⇒

xk+1 − xk = Bqk(q − 1) , xk+2 − xk+1 = Bqk+1(q − 1) =⇒ xk+2 − xk+1

xk+1 − xk= q

A = xk+1 − q ·Bqk = xk+1 − q · (xk −A) =⇒ A(1− q) = xk+1 − qxk =⇒

A =xk+1 − qxk

1− q=

xk+1 − xkxk+2 − xk+1

xk+1 − xk1− xk+2 − xk+1

xk+1 − xk

=xk+1(xk+1 − xk)− xk(xk+2 − xk+1)

(xk+1 − xk)− (xk+2 − xk+1)=

xkxk+2 − x2k+1

xk+2 − 2xk+1 + xk.

Es ist üblich, diesen Wert als Korrektur des xk darzustellen:

A = xk − xk +xkxk+2 − x2

k+1

xk+2 − 2xk+1 + xk= xk −

xk(xk+2 − 2xk+1 + xk)xk+2 − 2xk+1 + xk

+xkxk+2 − x2

k+1

xk+2 − 2xk+1 + xk=

= xk +2xkxk+1 − x2

k − x2k+1

xk+2 − 2xk+1 + xk= xk −

(xk+1 − xk)2

(xk+2 − xk+1)− (xk+1 − xk)= xk −

(∆xk)2

∆2xk.

Den Ausdruck xk+1 − xk nennt man ’die erste Differenz der Folge xk’, und bildet man von dieser Folgewiederum die Differenz, so erhält man (xk+2 − xk+1) − (xk+1 − xk). Dieses wird entsprechend die ’zweiteDifferenz der Folge xk’ genannt. Hieraus resultiert die Schreibweise der letzten Formel. Sie ähnelt der für dieerste oder zweite Ableitung.Das ist die Formel für das Aitkensche ∆2-Verfahren.Was bringt es im Falle, daß dem idealen Verlauf xk = A + Bqk noch die kleine ’Störung’ yk aufgeprägtist? Wenden wir die Formel auf die ursprüngliche Folge xk an; damit resultiert eine neue Folge ak nach derVorschrift

ak = xk −(∆xk)2

∆2xk= xk + yk −

(∆(xk + yk)2

∆2(xk + yk).

Sei rk = sk + tk, dann ist

∆rk = rk+1 − rk = (sk+1 + tk+1)− (sk + tk) = (sk+1 − sk) + (tk+1 − tk) = ∆sk + ∆tk ,17

Page 18: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

d. h. die Differenz einer Summe ist die Summe der Diffrenzen (analog zur Differentation) und analog für diezweite Differenz, also wird

ak = xk + yk −(∆xk + ∆yk)2

∆2xk + ∆2yk= xk −

(∆xk)2

∆2xk+[yk +

(∆xk)2

∆2xk− (∆xk + ∆yk)2

∆2xk + ∆2yk

]=

= A+[yk +

(∆xk)2∆2xk + (∆xk)2∆2yk −∆2xk · (∆xk)2 − 2∆2xk ·∆xk ·∆yk −∆2xk · (∆yk)2

∆2xk(∆2xk + ∆2yk)

]=

= A+[yk +

(∆xk)2∆2yk − 2∆2xk ·∆xk ·∆yk −∆2xk · (∆yk)2

∆2xk(∆2xk + ∆2yk)

].

Es ist∆xk = xk+1 − xk = (A+Bqk+1)− (A+Bqk) = B(q − 1)qk und

∆2xk = xk+2 − 2xk+1 + xk = B(q2 − 2q + 1)qk = B(q − 1)2qk .

Nehmen wir der Einfachheit halber an, daß die Beträge der ak monoton abnehmen: |yk+1| ≤ |yk|, so ist|∆yk| = |yk+1 − yk| ≤ |yk+1|+ |yk| ≤ 2|yk| und analog |∆2yk| ≤ 4|yk|.Damit erhält man eine Abschätzung für den Betrag der eckigen Klammer. Wegen q−k · yk −→ 0 gilt irgend-wann |q−k ·∆2yk| ≤ |q|−k · 4|yk| ≤ 1

2 |B|(1− q)2; sei k so groß, daß dies eintrete, und sei ebenso |q−k · yk| ≤ 1:∣∣∣∣yk +

(∆xk)2∆2yk − 2∆2xk ·∆xk ·∆yk −∆2xk · (∆yk)2

∆2xk(∆2xk + ∆2yk)

∣∣∣∣ =

=∣∣∣∣yk +

B2(q − 1)2q2k∆2yk − 2B(q − 1)2qk ·B(q − 1)qk ·∆yk −B(q − 1)2qk · (∆yk)2

B(q − 1)2qk(B(q − 1)2qk + ∆2yk)

∣∣∣∣ =

=∣∣∣∣yk +

Bqk∆2yk − 2B(q − 1)qk ·∆yk − (∆yk)2

B(q − 1)2qk + ∆2yk

∣∣∣∣ =∣∣∣∣yk +

B∆2yk −−2B(q − 1) ·∆yk − q−k(∆yk)2

B(q − 1)2 + q−k∆2yk

∣∣∣∣ ≤≤ |yk|+

4|B| · |yk|+ 2|B(q − 1)| · |yk|+ 1 · |yk|

|B|(1− q)2− 12|B|(1− q)2

=

1 +(4 + 2|q − 1|)B + 1

12|B|(1− q)2

|yk| .Die neugewonnene Folge hat also die schnelle Konvergenz der Nullfolge yk, die nach Voraussetzung die derAusgangsfolge weit übertrifft.Beispiel: Es sei sk die k-te Teilsumme der Reihe

∞∑k=0

ln(k + 2)2k

,

die Reihe konvergiert offensichtlich und damit diese Folge. Sie soll durch Anwendung des Aitkenschen ∆2-Verfahrens weiter verbessert werden:

k sk sk − (∆sk)2/∆2sk k sk sk − (∆sk)2/∆2sk0 0.693147180560 - 1 1.242453324894 -2 1.589026915174 2.181498381042 3 1.790206654228 2.0685766613834 1.902191621055 2.042789914901 5 1.963001313213 2.0352592284716 1.995492587302 2.032771607949 7 2.012658404312 2.0318855811688 2.021652877332 2.031553396143 9 2.026336266536 2.03142411344110 2.028762933187 2.031372341693 11 2.030015349865 2.03135113660112 2.030659650971 2.031342290807 13 2.030990223505 2.03133854434814 2.031159448891 2.031336937192 15 2.031245911701 2.03133624017716 2.031290015274 2.031335935014 17 2.031312479560 2.03133580030018 2.031323907372 2.031335740397 19 2.031329714338 2.03133571358620 2.031332662185 2.031335701517 21 2.031334157306 2.03133569605522 2.031334915013 2.031335693572 23 2.031335298733 2.03133569243824 2.031335492930 2.031335691919 25 2.031335591154 2.03133569168026 2.031335640808 2.031335691569 27 2.031335665896 2.03133569151828 2.031335678566 2.031335691494 29 2.031335684963 2.03133569148330 2.031335688190 2.031335691478 31 2.031335689819 2.03133569147632 2.031335690640 2.031335691475 33 2.031335691053 2.03133569147434 2.031335691262 2.031335691474 35 2.031335691367 2.031335691474

18

Page 19: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Die verbesserten Werte stimmen ab k = 33 im Rahmen der Ausgabegenauigkeit mit dem exakten Resultatüberein. Für die primären sk gilt das erst ab k = 44, d. h. wenn die Summanden etwa um den Faktor 1/1000kleiner sind.

3.2 Das Verfahren vom Goldenen SchnittDie relle Funktion f(x) sei auf [a, b] definiert, gesucht ist ihr Maximum auf diesem Abschnitt.Im Falle der Minimumsuche verläuft die Rechnung völlig analog, so daß hier nur der Fall des Maximumsbetrachtet werden soll.Die Extremwertstelle soll durch Abtasten der Funktion ermittelt werden. Man will also nur f(x) benutzenund nicht auf f ′(x) zugreifen.

1. Idee:Man teilt [a, b] in zehn gleiche Abschnitte x0 = a < x1 < . . . < x9 < x10 = b und berechnet die zugehörigenFunktionswerte y0 bis y10. Unter ihnen gibt es einen größten, z. B. y2. Nun verengt man das Intervall auf x1

bis x3, unterteilt dies zehnmal usw..Letztlich bleibt ein sehr kurzes Intervall übrig, dessen Mittelpunkt man als Extremstelle akzeptieren kann.

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

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

| | | | | | | | | | || | | | | | | | | | |

|||||||||||

f(x)

Falls der größte Wert am Rand liegt (x0 oder x10), so soll mit dem einzigen angrenzenden Abschnitt weiter-gerechnet werden. Der Fall wird nicht näher betrachtet.1Angenommen, man beendet die Arbeit, wenn das Endintervall kürzer ist als ein gewisser vorgegebener Wertε > 0. Pro Zyklusschritt wird das Intervall auf 2/10 seiner Länge gekürzt und - vom ersten Schritt abgesehen- werden dazu 8 Funktionswerte berechnet (die Werte am Rand und der in der Mitte sind bekannt). Nach nZyklen beträgt die Länge des Restintervalls (b− a) · 0.2n und wenn diese kleiner als ε sein soll muß

n >1

ln 5· ln b− a

ε= 0.621 335 ln

b− aε

gelten.Schlüsselt man die Intervallkürzung um den Faktor 0.2 bei acht Funktionswertberechnungen formal auf jedeeinzelne auf, so kann man ihr einen Faktor von 8

√0.2 = 0.817 765 zubilligen.

2. Idee:Man unterteilt den Abschnitt [a, b] in drei gleiche Teile.Tatsächlich, wozu zehn Teile nehmen? Sicher spielte die Herausbildung der Hand bei der Menschwerdungder Affen eine wichtige Rolle, aber die dabei resultierende Fingerzahl hat doch mit diesem Problem nichtszu tun.2Drei Teile ist die Minimalzahl, die man braucht. Nun vergleicht man die Funktionswerte in den beiden in-neren Punkten und verlagert den Rand auf der Seite des kleineren der beiden in diesen, usw..

1Was sollte man machen, wenn es zwei gleiche Maximalwerte gibt?2Es wurde schon darauf verwiesen, daß das Dezimalsystem eine willkürliche menschliche Festlegung ist. Man hüte sich vor

’Natur’gesetzen, die einzig auf Grund unserer Konventionen gelten. - Für die Erdbeschleunigung gilt g = 9.81 ≈ π2 = 9.87,aber nur, wenn man Meter und Sekunde verwendet. In feet trifft ein anderes ’Naturgesetz’ zu: g = 32.2 ≈ 32 = 25.

19

Page 20: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

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

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

| | | |u u u u| | | |u u u u| | | |u u u u| | | |u u u u

| | | |u u u u............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ....................... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .......................... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .......................... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

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

f(x)

Auf diese Weise wird pro Zyklusschritt das Intervall auf 2/3 seiner vorigen Länge gekürzt. Man braucht also,um eine Endlänge von ε zu unterbieten mindestens

n >1

ln 1.5· ln b− a

ε= 2.466 303 ln

b− aε

Schritte, jeder allerdings mit nur zwei Funktionswertberechnungen. Das ergibt einen Verbesserungsfaktorvon

√2/3 = 0.816 497, also eine geringfügig besseren Wert.

Anders gerechnet: Es ist 8/ ln 5 = 4.9707, aber 2/ ln 1.5 = 4.9326.3

3. Idee:Man unterteilt in drei Intervalle, legt die Punkte aber nicht mehr im gleichen Abstand voneinander (auch soeine typische naheliegende menschliche Handlungsweise),4 vielmehr so, daß man den einen, im reduziertenIntervall verbleibenden Funktionswert gleich wieder nutzen kann, ohne ihn neu zu berechnen.Sei a < x1 < x2 < b und sei f(x1) > f(x2). Dann wird x2 der neue rechte Rand.Wären die Größenverhältnisse anders: f(x1) < f(x2), so würde x1 der neue linke Rand. Es muß also allessymmetrisch sein und demzufolge ist x1−a = b−x2 oder x1 = a+h und x2 = b−h und x2−x1 = b−a−2h.

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

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

| ||u|u| ||u |u| ||u|u

| ||u |u............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ....................... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .......................... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

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

f(x)

Die neue Intervallänge ist b− a− h = q(b− a) mit einem Faktor q < 1.Damit im nächsten Schritt das alte x1 da liegt, wo dann der rechte innere Punkt hinkommt muß sich alsodie Strecke von a bis zu x1 so zu der von a bis x2 verhalten wie die von a zu x2 zu der von a bis b.Das ist aber gerade das Verhältnis vom Goldnenen Schnitt:Die kürzere Strecke verhält sich zur längeren wie diese zur Gesamtstrecke.Sei diese Gesamtstrecke 1 und die längere Teilstrecke habe die Länge q, dann ist also (1− q) : q = q : 1 oder

3Was erhält man bei vier Teilintervallen?4Wie wirkt ein Bauwerk von Friedensreich Hundertwasser auf einen unvorbereiteten Betrachter?

20

Page 21: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

q2 = 1− q. Die positive Lösung q der quadratischen Gleichung q2 + q − 1 = 0 ist

q =

√5− 12

= 0.618 034 .

Diese Zahl ist damit der Verbesserungsfaktor pro Funktionswertberechnung. Wie man sieht ist er wesentlichkleiner als der Wert, den die ersten beiden geschilderten Methoden liefern.Das Verfahren vom Goldnenen Schnitt ist also das effektivste - es erfordert mit v = ln[(b − a)/ε] - zumErreichen der gewünschten Genauigkeit etwa −v/ ln q = 2.0781v Funktionswertberechnungen, während diegleichabständige Drittelung rund 4.9707v und die Unterteilung in zehn Abschnitte ungefähr 4.9326v Funk-tionswertberechnungen erfordert.

Man beachte, daß dieses Verfahren nicht unbedingt das globale Maximum bzw. Minimum der Funktion f(x)liefern muß, es kann auch in einem lokalen Extremwert ’hängenbleiben’.Vor diesem Hintergrund ist die Unterteilung in 10 Abschnitte sicherer, weil sie das Intervall etwas gründlicherabtastet. Eine Garantie gibt sie aber auch nicht und man kann leicht ein Beispiel konstruieren, wo sie sichgründlich irrt, während die Methode vom Goldenen Schnitt den wahren Extremwert liefert.5

3.3 Numerische DifferentiationGegeben sei eine Funktion f(x). Ziel ist es, ihre Ableitung(en) an der Stelle x0 näherungsweise zu berechnen,wobei nur Funktionswerte f(x) benutzt werden sollen.

Das dies möglich ist zeigt die folgende Überlegung: Es ist

f ′(x0) = limx→x0

f(x)− f(x0)x− x0

und damit gilt für ein nahe bei (aber nicht in) x0 liegendes x1

f ′(x0) ≈ f(x1)− f(x0)x1 − x0

.

Nachstehend sollen sinnvolle Formeln und Aussagen über ihre Genauigkeit und Anwendbarkeit gewonnenwerden. Sei h > 0 eine Schrittweite. Es werden mit ganzzahligen Werten von i die Argumente xi = x0 + ihdefiniert: x1 = x0 + h, x−1 = x0 − h usw., es ist stets xi+1 = xi + h. Sei weiterhin yi = f(xi). Aus einigendieser Funktionswerte wird der Näherungswert y′ zu f ′(x0) gewonnen.Man geht davon aus, daß h in irgendeinem Sinne klein ist und theoretisch soll es gegen Null gehen. DerNäherungswert y′ hängt ab von h. Seine Abweichung von f ′(x0) wird i. a. mit der Abnahme von h kleiner(d. h. geht gegen Null). Sie ist näherungsweise proportional zu einer Potenz hp. Diese Zahl p nennt mandie Ordnung der Näherungsformel. Man sieht eine Formel als um so besser an, je höher diese Ordnung ist.Allerdings sind Formeln hoher Ordnung in der Regel kompliziert und problematisch, so daß man sich in derPraxis mit relativ einfachen Fällen begnügt. - Korrekt ist p der größte Wert, für den für alle Funktionenf(x) mit p+ 1 stetigen Ableitungen in einer Umgebung von x0 der Grenzwert

limh→0

y′(h)− f ′(x0)hp

endlich ist.Die Herleitungen basieren auf der Taylor-Formel. Die Funktion f(x) wird in x = x0 in ein Taylor-Polynommit Restglied zerlegt, wobei die Existenz der benötigten Ableitungen vorausgesetzt wird:

f(x) = f(x0) + f ′(x0) · (x− x0) +f ′′(x0)

2!(x− x0)2 + . . .+

f (n)(x0)n!

(x− x0)n +Rn(x, x0) .

Speziell im Falle x = xi ist x− x0 = ih und es gilt

yi = f(x0) + f ′(x0) · ih+f ′′(x0)

2!(ih)2 +

f ′′′(x0)3!

(ih)3 + . . .+f (n)(x0)

n!(ih)n +Rn(h) .

5Ostap Bender in I. Ilf, J. Petrow: Die 12 Stühle: ’Eine hundertprozentige Sicherheit gibt Ihnen nur eine Versicherungs-police.’

21

Page 22: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Nach der bekannten Restgliedformel gilt mit ξi zwischen x0 und xi die Beziehung

Rn(h) =f (n+1)(ξi)(n+ 1)!

(ih)n+1 .

Aus h → 0 folgt xi → x0 und damit f (n+1)(ξi) → f (n+1)(x0). Für kleine Werte von h kann man alsof (n+1)(ξi) als praktisch konstant und mit f (n+1)(x0) übereinstimmend ansehen.

Mit den gewonnenen Beziehungen soll die Ordnung der als Eingangsbeispiel angegebenen Formel

f ′(x0) ≈ f(x1)− f(x0)x1 − x0

=f(x1)− f(x0)

h

untersucht werden. Es ist

f(x1)− f(x0)h

=[f(x0) + f ′(x0)h+R1(h)]− f(x0)

h= f ′(x0) +

R1(h)h

= f ′(x0) +f ′′(ξ1)

2h .

Diese Formel hat also die Ordnung p = 1, denn im Fehlerterm steht der Faktor h = h1. - In Wirklichkeithängt ξ1 auch von x1 und damit von h ab, aber bei kleinem Wert kann man ξ1 ≈ x0 als ungefähr konstantansehen, so daß sich eine angenäherte Proportionalität des Fehlers zu h ergibt.

Beispiel: Ableitung von f(x) = ex an der Stelle x0 = 0.Bei h = 0.1 erhält man den Näherungswert (e0.1 − e0)/0.1 = (1.105170918 − 1)/0.1 = 1.0517 . . . statt deswahren Werte 1, also reichlich 5% zuviel.Für verschiedene Werte von h sind nachstehend die Näherungswerte tabelliert:

h 1 0.1 0.01 0.001 0.0001Näherungswert 1.7183 1.0517 1.005017 1.0005017 1.00005017Abweichung 0.7183 0.0517 0.005017 0.0005017 0.00005017

Man erkennt, das sich der Fehler bei Verringerung von h auf ein Zehntel seinerseits auf ein Zehntel verringert.Fehler und Schrittweite h sind also annähernd proportional. Das wird durch die Ordnung p = 1 ausgesagt.Diese annähernde Proportionalität gilt nur für genügend kleine Werte von h. Im Falle h = 1 erweist sich derFehler als deutlich anders.

Nun sollen zwei Formeln 2. Ordnung konstruiert werden, wobei von drei Werten xi bzw. yi ausgegangenwird. Es kann gezeigt werden, ist aber offensichtlich, daß die Werte xi möglichst nahe bei x0 gewählt werdensollten. Zuerst wird deshalb x−1, x0 und x1 betrachtet und die gesuchte Näherungsformel in der GestaltAy−1 +By0 + Cy1 angesetzt. Einsetzen der Taylor-Polynome ergibt

Ay−1 +By0 + Cy1 =

= A

[f(x0)− f ′(x0) +

f ′′(x0)2

h2 − f ′′′(ξ−1)6

h3

]+Bf(x0) +C

[f(x0) + f ′(x0) +

f ′′(x0)2

h2 +f ′′′(ξ1)

6h3

]=

= (A+B + C)f(x0) + (C −A)h · f ′(x0) +f ′′(x0)

2h2 · (A+ C) +

Cf ′′′(ξ1)−Af ′′′(ξ−1)6

h3

Damit rechts möglichst genau der gewünschte Wert f ′(x0) erscheint müssen möglichst viele Ausdrücke an-gepaßt werden:

A+B + C = 0 , (C −A)h = 1 , C +A = 0 .

Das ist ein System von drei Gleichungen für die Parameter A, B und C, es hat die Lösungen A = −1/2h,B = 0 und C = 1/2h. Die gesuchte Formel lautet also

f ′(x) ≈ y1 − y−1

2h.

Das ist die zentrale Differenzenformel für die erste Ableitung; der Wert y0 selbst geht nicht ein!Mit h = 0.1 ergibt das obige Beispiel für f(x) = ex, x0 = 0 das Resultat (e0.1 − e−0.1)/2 · 0.1 = 1.0016675.Eine solche Genauigkeit wurde damals erst mit h wesentlich unter 0.01 erreicht!Die analoge Tabelle ist nun:

22

Page 23: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

h 1 0.1 0.01 0.001 0.0001Näherungswert 1.1752 1.00167 1.0000167 1.000000167 1.00000000167Abweichung 0.1752 0.00167 0.0000167 0.000000167 0.00000000167

Die Abweichungen sind deutlich kleiner als in der ersten Tabelle. Bei Verringerung von h auf ein Zehntelvermindert sich jetzt der Fehler der Formel auf ein Hundertstel. Das läßt erwarten, daß p = 2 die Ordnungdes Fehlers ist. Tatsächlich ist er dargestellt durch

Cf ′′′(ξ1)−Af ′′′(ξ−1)6

h3 =f ′′′(ξ1) + f ′′′(ξ−1)

6 · 2hh3 =

f ′′′(ξ1) + f ′′′(ξ−1)6 · 2

h2 .

Das arithmetische Mittel von f ′′′(ξ1) und f ′′′(ξ−1 liegt zwischen diesen beiden Werten (sofern sie verschiedensind) und wenn f ′′′(x) eine stetige Funktion ist, was vorausgesetzt sei, so existiert also eine Stelle ξ zwischenξ−1 und ξ1 und damit zwischen x−1 und x1, in der es genau gleich f(ξ) ist. Für den Fehler gilt also

f ′′′(ξ)6

h2

und seine Ordnung ist tatsächlich 2.

Für manche Zwecke sind einseitige Darstellungen der Ableitung notwendig. Nähern wir analog f ′(x0) durchy0, y1 und y2 an:

f ′(x) ≈ Ay0 +By1 + Cy2 =

= Af(x0) +B

[f(x0) + f(x0)h+

f ′′(x0)2

h2 +f ′′′(ξ1)

6h3

]+

+C[f(x0) + f(x0) · 2h+

f ′′(x0)2

(2h)2 +f ′′′(ξ2)

6(2h)3

]=

= (A+B + C)f(x0) + (hB + 2hC)f ′(x0) +(h2

2B + 2h2C

)f ′′(x0) +

(Bf ′′′(ξ1)

6h3 + C

f ′′′(ξ2)6

(2h)3).

Es folgen wiederum die Forderungen

A+B + C = 0 , (B + 2C)h = 1 , B + 4C = 0

mit den Lösungen A = 3/2h, B = −4/2h und C = 1/2h, folglich wird

f ′(x) ≈ 3y0 − 4y1 + y22h

.

Eine entsprechende Betrachtung liefert einen Fehlerterm der Form

f ′′′(ξ)3

h2 ,

die Ordnung ist ebenfalls 2, aber dieser Wert ist etwa das Doppelte dessen von der zentralen Differenzenfor-mel. (’Etwa’ deshalb, weil die ξ-Werte in den beiden Formeln i. a. nicht übereinstimmen.) Letztere ist alsonach Möglichkeit vorzuziehen. Die einseitige Formel wird z. B. verwandt, wenn man eine einseitige Ableitungam Rande des Definitionsbereichs ausrechnen will oder wenn man bei einer Prozeßsteuerung die momentaneZeitableitung einer Größe benötigt, wobei man natürlich nur auf Werte von Gegenwart und Vergangenheitzugreifen kann.

Die entsprechende einseitige Formel von der anderen Seite her lautet

f ′(x) ≈ −3y0 + 4y−1 − y−2

2h.

Der Fehlerausdruck ist völlig analog, aber diesmal liegt ξ zwischen x−2 und x0.

Mit Hilfe dieser Formeln kann man also f ′(x) näherungsweise berechnen, ohne den analytischen Ausdruckder Ableitung zu bilden. Das ist nützlich in den Fällen, wo man keine Formel von f(x) besitzt, weil dieseFunktion nur als Tabelle vorliegt (z. B. eine Meßreihe). Diese einfachen Formeln bewähren sich auch imfolgenden praktischen Fall: Man hat eine Funktion und ihre Ableitungen programmiert und will nun dieses

23

Page 24: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Programm auf Richtigkeit testen. Das kann man machen, indem man f ′(x) auf beiden Wegen berechnet.Weichen die Werte drastisch ab, so muß ein Fehler vorliegen.

Auf den Differenzenformeln basieren Verfahren zur näherungsweisen Lösung von Differentialgleichungen;dazu an anderer Stelle.

Eine Bemerkung zur Genauigkeit: Wenn die Werte yi beispielsweise Meßwerte sind, die in gleichabständigenZeitschritten o. ä. erhoben werden, so können sie zufällige Meßfehler εi enthalten. Es sei |εi| ≤ ε eineuniverselle Schranke dieser Fehler. Der Irrtum der zentralen Differenzenformel ist dann

f ′(x) =y1 + ε1 − y−1 − ε−1

2h+f ′′(ξ)

6h2 =

y1 − y−1

2h+ε1 − ε−1

2h+f ′′(ξ)

6h2 .

Der schlimmste Fall träfe z. B. bei ε1 = ε und ε−1 = −ε ein, dann wäre der Gesamtfehler

ε

h+f ′′(ξ)

6h2 .

Der zweite Summand nimmt mit Verringerung von h ab (alles betragsmäßig gedacht), der erste nimmt aberzu. Ihre Summe besitzt ein positives Minimum in einem gewissen h0 und damit kann man den theoretischbeliebig verkleinerbaren Fehler in diesem praktischen Fall nicht unter eine gewisse Grenze senken!In der nachstehenden Abbildung ist der erste Summand punktiert gezeichnet, der zweite gestrichelt und dieSumme als durchgehende Kurve:

Fehler

h............. ............. ............. ............. ............. ............. .......................... ............. .............

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

h0

Das Dilemma wird durch die nachstehenden Abbildungen erläutert. Es gehe darum, den Anstieg der Kurvein dem linken der beiden jeweiligen Punkte zu bestimmen. Die Funktionswerte sind mit einem gewissenUnsicherheitsintervall bestimmbar, das durch die beiden dicken senkrechten Balken repräsentiert ist. DerAnstieg, der sich hieraus ergibt, liegt zwischen den Anstiegen der Verbindungsgeraden der jeweils kleinstenund größten Werte, abwechselnd. Diese Geraden sind gestrichelt. Es wird der Einfachheit halber von dersimplen Formel

f ′(x0) ≈ y1 − y0h

ausgegangen.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24

Page 25: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Links liegen die Punkte weit auseinander und die beiden Geraden relativ eng zusammen, sie geben aber ziem-lich falsche Anstiege, da sie durch den Bezug auf einen weit entfernten Punkt einen großen Fehler f ′′(ξ1)h/2machen.Im mittleren Bild bekommt man halbwegs richtige Anstiegswerte in akzeptablen Toleranzgrenzen.Rechts sind die Punkte recht nahe, h ist klein. Man könnte das lokale Verhalten der Funktion recht genauermitteln, wenn nicht die Ungenauigkeiten bei der Bestimmung der Funktionswerte wäre, die dafür sorgt,daß der Bereich der möglichen Anstiege sehr weit auseinanderklafft.

Praktische Schlußfolgerungen:

1. Eine Formel mit einem kleinen theoretischen Fehlerterm ist günstig, denn sie erlaubt es, mit einer relativgroßen Schrittweite h zu arbeiten. Dann wirkt sich aber der Einfluß der Ungenauigkeiten wenig aus, denndieser ist proportional zu 1/h.2. Wir hatten festgestellt, daß in der zentralen Differenzenformel die Ungenauigkeiten einen Fehler ε/h ver-ursachen können. In der einseitigen Formel wäre er - im schlimmsten Falle - aber (3ε−4(−ε)+ε)/2h = 4ε/h,also viermal größer. - Das ist ein weiterer Grund, auf die einseitige Formel nicht ohne zwingenden Grundzurückzugreifen.3. Wenn man eine empirisch zu ermittelnde Funktion differenzieren soll und ihre Werte experimentell nurrelativ ungenau ermitteln kann, so kann man sich helfen, indem man in der Umgebung von x0 eine größereAnzahl von Meßwerten erfaßt, durch diese eine Ausgleichsgerade oder -parabel legt, und dann deren Anstiegin x0 als Näherungswert zu f ′(x) ansieht. Durch den Ausgleich wird die Wirkung der - vermutlich zufälligen- Meßfehler zumindest teilweise neutralisiert. Weiteres siehe Lehrbücher zur Statistik bzw. 6.7.: ’Anpassungan Tabellen’.

Die Berechnung der zweiten Ableitung:

Man kann analog vorgehen: Beutzen wir die drei Stellen x−1, x0 und x1 und setzen die gesuchte Näherungs-formel wieder in der Gestalt Ay−1 +By0 + Cy1 an. Einsetzen der Taylor-Polynome ergibt

Ay−1 +By0 + Cy1 =

= A

[f(x0)− f ′(x0) +

f ′′(x0)2

h2 − f ′′′(x0)6

h3 +f ′′′′(ξ−1)

24h4

]+Bf(x0)+

+C[f(x0) + f ′(x0) +

f ′′(x0)2

h2 +f ′′′x0)

6h3 +

f ′′′(ξ1)24

h4

]=

= (A+B+C)f(x0)+(C−A)h ·f ′(x0)+f ′′(x0)

2h2 ·(A+C)+

f ′′′(x0)6

h3 ·(C−A)+Af ′′′(ξ−1) + Cf ′′′′(ξ1)

24h4

Um den gewünschten Wert f ′′(x0) zu erhalten verlangt man

A+B + C = 0 , C −A = 0 , (A+ C)h2/2 = 1

für die ersten drei Ausdrücke. Man erkennt dann aber, daß damit auch der Summand mit h3 verschwindet.Es resultieren die Koeffizienten A = C = 1/h2 und B = −2/h2, also die Formel (nach analoger Bearbeitungdes Fehlerterms)

f ′′(x0) =y1 − 2y0 + y−1

h2 +f ′′′′(ξ)

12h2 .

Diese Formel (’zentrale Differenzenformel für die zweite Ableitung’ genannt) besitzt wiederum die Ordnungp = 2.

Eine andere Vorgehensweise zur Herleitung dieser Formel ist recht anschaulich und liefert eine praktikableVerallgemeinerung:Man betrachtet fiktive Punkte x0 ± h/2; fiktiv deshalb, weil die Funktion f(x) in Wirklichkeit dort nichtausgewertet wird.Die zweite Ableitung in x0 ist die Ableitung der ersten Ableitung. Diese wird als zentrale Differenzenformelbezüglich dieser beiden Punkte geschrieben, wobei man beachten muß, daß der Abstand von x0 zu diesenPunkten nur h/2 ist:

y′′(x0) =y′(x0 + h/2)− y′(x0 − h/2)

2 · (h/2).

25

Page 26: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Nun ersetzt man diese beiden ersten Ableitungen ihrerseits durch zentrale Differenzen in den beiden jeweilsh/2 entfernten Nachbarpunkten, die aber nicht mehr fiktiv sind - es handelt sich um x−1, x0 und x1:

y′(x0 − h/2) ≈ y(x0)− y(x0 − h)2 · (h/2)

=y0 − y−1

h, y′(x0 + h/2) ≈ y(x0 + h)− y(x0)

2 · (h/2)=

y1 − y0h

=⇒

y′′(x0) ≈

y1 − y0h

− y0 − y−1

hh

=y1 − 2y0 + y−1

h2 .

Man gelangt zu derselben zentralen Differenzenformel für die zweite Ableitung. Diese Herleitung ist anschau-lich, liefert aber keinen Fehlerterm.Dafür kann man die erhaltene Zwischenformel praktisch nutzen:

Beispiel: Näherungsweise Lösung eines RandwertproblemsGesucht ist die Funktion y(x), die der Differentialgleichung 2. Ordnung

d

dx

(p(x)

dy

dx

)+ q(x) · y = f(x)

mit gegebenen Funktionen p(x), q(x) und f(x) genügt und die in den Punkten a < b die - ebenfalls gegebenen- Werte y(a) = ya und y(b) = yb annimmt.(Formal könnte man die DGl. in die Form p(x)y′′ + p′(x)y′ + q(x)y = f(x) bringen, dies ist aber aus einerReihe von Gründen nicht günstig.)Man sucht eine Näherungslösung dieses Randwertproblems, und zwar in Form einer Tabelle. Der Abschnitt[a, b] wird in n gleichgroße Teile der Länge h geteilt. Es gilt h = (b− a)/n. Man setzt x0 = a, xk = a+ k · hund xn = b. In diesen Punkten xk werden Näherungswerte yk zu den exakten Lösungswerten y(xk) gesucht.Zur Bestimmung der yk ersetzt man die Ableitungen durch Differenzenformeln. Den Term (py′)′ behandeltman unter Verwendung fiktiver Punkte in der beschriebenen Weise. Die ’äußere’ Ableitung wird als zentraleDifferenzenformel bezüglich der fiktiven Punkte geschrieben und die ’inneren’ Ableitungen als ebensolcheum diese fiktiven Punkte herum.Die Funktion p(x) kann an jeder Stelle des Intervalls ausgewertet werden, auf y(x) greift man nur in denPunkten xk zu (auchMaschen- oderGitterpunkte genannt). Es resultiert die folgendeDifferenzengleichung fürdie yk, formuliert für einen (jeden) Punkt xl im Inneren des Intervalls (a, b), d. h. für l = 1, 2, 3, . . . , n−2, n−1.Zur Abkürzung wurde mit halbzahligen Indizes gearbeitet und xk±h/2 = x0 +kh±h/2 = x0 +(k±1/2)h =xk±1/2 bezeichnet:

1h

(p(xl + h/2)

yl+1 − ylh

− p(xl − h/2)yl − yl−1

h

)+ q(xl)yl = f(xl) .

Zusammengefaßt und verkürzt geschrieben - mit bekannten bzw. berechenbaren Werten ql = q(xl) usw. -resultiert

pl−1/2

h2 yl−1 +(ql −

pl−1/2 + pl+1/2

h2

)yl +

pl+1/2

h2 yl+1 = fl , l = 1, 2, . . . , n− 1 .

Das ist ein lineares Gleichungssystem für die gesuchten Werte yl, das noch durch die zwei Gleichungeny0 = ya und yn = yb abgeschlossen wird.Im Falle n = 5 hätte man in Matrixschreibweise - jede Gleichung mit h2 multipliziert, mit Ausnahme derersten und letzten:

1 0 0 0 0 0p1/2 h2q1 − (p1/2 + p3/2) p3/2 0 0 0

0 p3/2 h2q2 − (p3/2 + p5/2) p5/2 0 00 0 p5/2 h2q1 − (p5/2 + p7/2) p7/2 00 0 0 p7/2 h2q1 − (p7/2 + p9/2) p9/2

0 0 0 0 0 1

y0y1y2y3y4y5

=

yah2f1h2f2h2f3h2f4yb

Im allgemeinen arbeitet man mit wesentlich größeren Werten von n. Man kann zeigen, daß unter gewissen- in der Regel erfüllten - Bedingungen die Abweichungen zwischen yk und y(xk) wiederum proportional h2

und damit proportional zu n−2 sind.In der Matrix des Gleichungssystems sind alle Elemente aij mit |i − j| > 1 gleich Null. Diese Matrix heißtschwach besetzt oder sparse. Nicht - Null - Elemente findet man also nur auf der Hauptdiagonalen sowie

26

Page 27: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

unmittelbar darunter oder darüber. Statt der (n+1)2 Elemente dieser Matrix braucht man im Computer nurdie 3n−1 von Null verschiedenen Elemente zu speichern und das Gauss-Verfahren läßt sich so modifizieren,daß das System sehr effektiv gelöst werden kann. In vielen Fällen kann man das Pivotelement immer aufder Haupdiagonale wählen, so daß die Hinrechnung nur im Eliminieren der Werte darunter besteht. (vgl.insgesamt Beispiel 3)

3.4 Aufgaben1. Ein Meßgerät schwingt sich nach der Formel x(t) = A+Be−λt sin(ωt+α) langsam auf seinen Meßwert

ein. Man möchte nicht warten, bis sich der Zeiger beruhigt hat und registriert drei aufeinander folgendeMaximalausschläge x1, x2 und x3.Überzeugen Sie sich, daß man mit Hilfe des Aitkenschen ∆2-Verfahrens daraus sofort den Meßwertermitteln kann!

27

Page 28: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 4

Lösen von Gleichungen

4.1 Eine Gleichung einer Unbekannten

4.1.1 VorbemerkungenEine Gleichung der Form g(x) = h(x) mit gegebenen Funktionen g und h sei formuliert, aus der die Werte xermittelt werden sollen, die sie erfüllen. Diese Bestimmungsgleichung für x kann immer in eine äquivalente(d. h. mit genau derselben Lösungsmenge) Nullstellenaufgabe überführt werden, indem man die Funktionf(x) = g(x)− h(x) einführt und f(x) = 0 betrachtet.Das ist eine universelle Methode aber sie ist nicht immer die beste, wie auch ein Spezialwerkzeug im konkretenFall meist einem Universalwerkzeug vorzuziehen ist.Aus e3x cosx = e2x sinx sollte man z. B. besser ex − tanx = 0 machen. Und

3x4 + 3x2 − 2x− 5x3 + 2x+ 5

= 2x2 + 3x− 7

ist in der Gestalt

(x3 + 2x+ 5)(2x2 + 3x− 7)− (3x4 + 3x2 − 2x− 5) = 2x5 − 3x3 + 13x2 + 3x− 30 = 0

gewiß besser zu behandeln. Man beachte aber, daß solche Umformungen die Lösungsmenge verändern kön-nen.Hier sei x ein Element der Menge der reellen Zahlen.Die formulierte Gleichung f(x) = 0 beinhaltet drei Fragen:

1. Gibt es Lösungen?2. Wenn ja, wieviele?3. Wo liegen sie (...konkrete Werte)?

Der ideale Weg zur Lösung einer Gleichung besteht darin, daß man sie nach x auflöst. Das ist aber oftmalsnicht möglich oder wäre sehr umständlich. In diesen Fällen ist es notwendig oder sinnvoll, numerische Ver-fahren anzuwenden, die einem (wenigstens) den Wert der (oder einer) Lösung liefern.Ein gutes, sachgemäß realisiertes numerisches Verfahren liefert oftmals noch gewisse Aussagen über die Punk-te 1. und 2..Typischerweise sind numerische Verfahren in diesem Falle Vorschriften, die eine Folge von Werten x0, x1, . . .liefern, die gegen die wahre Nullstelle x∗ konvergiert. Solche Methoden nennt man Iterationsverfahren1, dasie in der Regel immer wieder dieselbe Vorschrift wiederholen.Ein Wert x0 muß zumeist vorgegeben werden. Er heißt Startwert, weil das Verfahren mit ihm beginnt. Esgibt auch Verfahren, die mehr als einen Startwert benötigen.Diese Rechnung wird bei irgendeinem xn abgebrochen und es wird dies als Näherungswert akzeptiert.Welche Eigenschaften sollte ein gutes Iterationsverfahren haben?1. Schnelle Konvergenz, d. h. man muß nur wenige Schritte machen und kann z. B. bereits x3 akzeptieren.2. Sicherheit, d. h. bei ’vernünftig’ gestellten Problemen soll es die Lösung liefern, nicht auf halben Wegabstürzen oder etwas anderes als die Lösung offerieren.3. Genauigkeitsaussagen ermöglichen, speziell ist es günstig, wenn die Werte ’monoton’ besser werden, wenn

1itero lat. - wiederholen

28

Page 29: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

man also annehmen kann, daß diejenigen Dezimalstellen, die in xk und xk+1 übereinstimmen, bereits halb-wegs richtig sind.4. Einfache Rechenvorschrift; im bequemsten Fall kommt man mit einem Programm aus, das nur die Er-mittlung der Werte f(x) erfordert. (Noch weniger zu verlangen wäre unrealistisch.)

Zur Charakterisierung der Annäherungsgeschwindigkeit der Werte xk an x∗ verwendet man den Begriff derKonvergenzordnung. Sie wird beschrieben durch eine Zahl α ≥ 1. Das ist derjenige Wert, für den der positiveendliche Grenzwert

limk→∞

|xk+1 − x∗||xk − x∗|α

= q , 0 < q < +∞

existiert. (Falls er existiert; es gibt Verfahren, für die so keine Konvergenzordnung definiert werden kann.)Für große Werte von k gilt dann also näherungsweise

|xk+1 − x∗| = q|xk − x∗|α .

Man beachte, daß xk − x∗ eine Nullfolge sein soll.Je größer α, desto schneller konvergiert das Verfahren.Bei α = 1 nennt man ein Verfahren linear konvergent. Damit Konvergenz eintritt muß in diesen Fall q < 1gelten. Ist q = 0.5, so wird der Abstand von xk zu x∗ folglich von Schritt zu Schritt etwa halbiert (wenigstensab einem gewissen k). Bei q = 0.1 gewinnt man pro Schritt eine Dezimalstelle der Lösung.Bei linear konvergenten Verfahren kann man die Annäherung an die Nullstelle beschleunigen, indem manauf die gewonnene Folge das Aitkensche ∆2-Verfahren anwendet.Im Falle α > 1 spricht man von superlinearer Konvergenz.Verfahren mit α = 2 heißen quadratisch konvergent. Der Fehler |xk+1 − x∗| in einem neuen Schritt ist (voneinem Faktor q abgesehen, der hier eine beliebige positive Zahl ist) etwa das Quadrat des Fehlers |xk − x∗|im vorigen Schritt. Das ist eine viel schnellere Abnahme und bedeutet, daß sich in der Nähe der Lösung dieAnzahl der bereits richtig ermittelten Dezimalstellen pro Schritt etwa verdoppelt.Man beachte, daß dieser Wert α eine theoretische Orientierung ist und im Einzelfall manchmal wenig aus-sagt. Es wird nur festgestellt, daß die Näherungswerte xk sich irgendwann einmal so oder so verhalten. Wanndies eintritt bleibt offen. Es kann also sein, daß ein linear konvergentes Verfahren nach vier Schritten dengewünschten Wert mit akzeptabler Genauigkeit liefert, während ein quadratisch konvergentes erst einmalsechs tastende Schritte in ziemlicher Entfernung macht und dann aber loslegt!

4.1.2 IntervallhalbierungDie Funktion f(x) sei auf [a, b] stetig und es gelte f(a) · f(b) < 0.Sie besitzt also mindestens eine Nullstelle zwischen a und b,2 es liegt eine Einschließung (mindestens) einerNullstelle vor.Wir setzen a0 = a und b0 = b sowie x0 = (a + b)/2 - der Mittelpunkt des Intervalls. Nun wird y0 = f(x0)berechnet.Falls y0 · f(a0) < 0 ist, so wird a1 = a0 und b1 = x0 gesetzt, ansonsten a1 = x0 und b1 = b0. Sei nunx1 = (a1 + b1)/2. Es wird f(x1) berechnet und mit f(a0) verglichen,

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

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

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

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

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

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

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

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

| | |u u u| | |u u u| | |u u u

| | |u u u............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

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

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

f(x)

worauf man a1 oder b1 verschiebt.2Welche Zahl von Nullstellen ist noch möglich?

29

Page 30: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Dieser Prozeß wird fortgesetzt, bis an und bn nahe genug beieinander liegen. Dann kann man z. B. xn alsNäherung zu der (zu einer...) Nullstelle akzeptieren.3Hat man das Genauigkeitsziel bn − an < ε, so sind wegen bn − an = (b− a) · 2−n also

n >1

ln 2· ln b− a

ε

Schritte zu machen und n+ 1 Funktionswerte zu berechnen.

Vorteile dieses Verfahrens:1. Man braucht ausschließlich Funktionswerte. - Das Verfahren läßt sich also auch dann anwenden, wenndiese Funktionswerte nicht berechnet werden, sondern nur als Meßresultate anfallen, nach denen man eineEingangsgröße so einstellen will, daß eine gewisse Ausgangsgröße erreicht wird.2. Das Verfahren ist extrem einfach zu programmieren, man kann dabei kaum Fehler machen.3. Wegen seiner Einfachheit ist das Verfahren von extremer Robustheit und nicht hereinzulegen, es sei denn,man setzt ihm eine unstetige Funktion ohne Nullstelle vor, z. B, 1/x zwischen -1 und 1. Aber das ist unfair.44. Man behält die ganze Rechnung über die Einschließung der Nullstelle bei.5. Man hat automatisch eine Genauigkeitsaussage. Es gilt x∗ = (an+ bn)/2± (bn−an)/2 oder an ≤ x∗ ≤ bn.Nachteile:1. Man braucht eine Einschließung. Die Nullstelle von f(x) =

√x oder von f(x) = x2 kann man damit nicht

ermitteln.2. Das Verfahren ist nicht sehr effektiv und braucht ziemlich viele Funktionswertberechnungen. - Wenn eineFunktionswertberechnung durch ein zweiwöchiges Experiment mit beträchtlichen Kosten realisiert wird sollteman sich tunlichst etwas suchen, das weniger derartige Aktionen benötigt.3. Wenn es mehrere Nullstellen in (a, b) gibt, so ist schwer vorherzusagen, zu welcher von ihnen man mitdieser Methode gelangt.Das Verfahren empfiehlt sich, wenn man schnell eine oder einige wenige Nullstellen berechnen will. Als innereProzedur in einem Programm, die unzählige Male aufgerufen wird, ist es nicht geeignet.Zu sonstigen Einsatzzwecken vgl. den Kommentar zur Regula falsi.

4.1.3 Regula falsiDie Grundidee dieses Verfahrens, die - abgewandelt - auch für das später behandelte Newton-Verfahrenzutrifft, ist die folgende:

Man sucht die Nullstelle der Funktion f(x). Diese Aufgabe ist in irgendeinem Sinn schwierig bis unlösbar. Indieser Notsituation ersetzt man deshalb f(x) durch eine ähnliche, aber einfache Funktion f0(x) und bestimmtohne große Mühe deren Nullstelle x0.Da die Funktion f0(x) der eigentlich betrachteten Funktion f(x) in irgendeinem Sinne ähnlich sein solltewird ihre Nullstelle x0 in der Nähe (wiederum in irgendeinem Sinne) der wahren Nullstelle x∗ liegen.Der Preis (der Aufwand) für die Ermittlung des wahren Wertes war einem zu hoch. Auf diese Weise bekommtman billig ein Resultat, aber es ist ungenau, also von minderer Qualität.Will man etwas Besseres, ohne auf einen Schlag mehr zu bezahlen, so muß man sich auf Ratenzahlungeinlassen.Hier könnte man, dank der Kenntnis von x0 mit weiterer Information zum Problem versehen, eine neue,f(x) noch ähnlichere Funktion f1(x) konstruieren und deren Nullstelle x1 bestimmen, die evtl. eine bessereNäherung zu x∗ darstellt als x0.Und diesen Schritt kann man dann nochmals wiederholen usw.. Es entsteht also eine Folge x0, x1, x2, . . .von Werten, die (hoffentlich) gegen x∗ konvergiert.

Das konkrete Vorgehen im Falle der Regula falsi, auch Sekantenverfahren genannt, ist nun das folgende (eswird vorausgesetzt, daß wir nicht aus dem Definitionsbereich von f(x) herausgeraten):

Es seien a0 und b0 6= a0 zwei Startwerte, beide in der Nähe von x∗. ’In der Nähe’ bedeutet, daß dieFunktionskurve in dem Bereich, der x∗, a0 und b0 enthält, halbwegs gerade verlaufen soll.Durch die Wertepaare (a0, f(a0)) und (b0, f(b0)) wird nun eine lineare Funktion f0(x) gelegt:

f0(x) = f(a0) +f(b0)− f(a0)

b0 − a0(x− a0) .

3Was passiert, wenn man in irgendeinem Schritt die Nullstelle genau trifft? Muß oder sollte man im Programm auf diesenFall testen?

4Vgl. das Schicksal von Andrew Jackson in: Mark Twain, Der berühmte Springfrosch von Calaveras.

30

Page 31: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Das ist eindeutig möglich, da b0 6= a0 vorausgestzt war. f0(x) ist als lineare Funktion natürlich sehr einfachund da die Gerade die Kurve von f(x) in zwei Punkten schneidet oder zumindest berührt ist auch einegewisse Ähnlichkeit zwischen den beiden Funktionen zu erwarten.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

|

u|

u|

f(x)

f0(x)a0 x0 b0

Der Wert von x0 ist die Lösung einer einfachen Nullstellenaufgabe:

f(a0) +f(b0)− f(a0)

b0 − a0(x0 − a0) = 0 =⇒ x0 = a0 −

b0 − a0

f(b0)− f(a0)f(an) .

Nun wird einer der beiden Werte a0 oder b0 durch x0 ersetzt. Dieser heißt jetzt a1 oder b1. Der andere Wertbleibt erhalten und ergibt b1 bzw. a1. Die lineare Funktion durch dieses Wertepaar sei f1(x) usw..Es resultiert das Bildungsgesetz für das k-te Element der Folge xk:

xk = ak−1 −bk−1 − ak−1

f(bk−1)− f(ak−1)f(ak−1) .

Diese Formel soll noch in zwei unwesentlichen Modifikationen angegeben werden, von denen die erste einleichteres Merken ermöglicht und die zweite eine Interpretation: Mit den Differenzen ∆yk−1 = f(bk−1) −f(ak−1 und ∆xk−1 = bk−1 − ak−1 wird

xk = ak−1 −∆xk−1

∆yk−1f(ak−1) = ak−1 −

f(ak−1)∆yk−1

∆xk−1 .

Falls man eine Einschließung der Nullstelle hatte, also f(bk−1) und f(ak−1) unterschiedliches Vorzeichenbesaßen, so ist der Faktor f(ak−1)/∆yk−1 betragsmäßig kleiner als 1. Der Abstand ∆xk−1 zwischen bk−1

und ak−1 wird also nicht ausgeschöpft und der Wert xk liegt dazwischen.Umgekehrt, haben bk−1 und ak−1 dasselbe Vorzeichen, so wird der Faktor betragsmäßig größer als 1 und xkmuß dann außerhalb dieses Bereiches liegen.Die Regula falsi ist superlinear konvergent. Ihre Konvergenzordnung ist, wie man mit Hilfe der TaylorschenFormel berechnen kann, α = (1 +

√5)/2 = 1.618 . . .. Sie ist folglich unvergleichlich effektiver als das Verfah-

ren der Intervallhalbierung. Ebenso wie dieses benötigt sie nur Funktionswerte für ihre Arbeit.5

Diese Effektivität hat ihren Preis und der drückt sich in einer Reihe von Problemen und Achillesfersen aus.Dieses Verfahren kann scheitern, und das auch dann, wenn das gestellte Problem lösbar ist.Löst man die Gleichung f(x) = 0 ’von Hand’, so kann nicht viel passieren. Man überlege sich aber, wie mandie verschiedenen Probleme in einem Programm abfangen kann, also einen Computer befähigt, die Situationzu erkennen und den richtigen Ausweg einzuschlagen.6

1. Welchen der beiden alten Werte ak−1 und bk−1 sollte durch den neuberechneten Wert xk ersetzen?Zumeist ist es sinnvoll, den mit dem betragsmäßig größeren Funktionswert zu verwerfen, bei z. B. bei|f(ak−1) ≥ |f(bk−1)| den Wert ak−1. Allerdings verliert man damit evtl. eine Einschließung (s. 4.).2. Die Rechnung bricht vorzeitig ab, wenn f(ak) = f(bk) ist. Die Gerade der Hilfsfunktion verläuft dannhorizontal und außerhalb der x-Achse, hat also mit ihr keinen Schnittpunkt xk.In dem Fall muß man einen der beiden Werte ak oder bk ändern. - Sinnvoll ist es aber, dies gründlich zutun, denn sonst gerät man zum Fall 3.Werte zu ändern ist bisweilen leichter gesagt als getan. Wenn man nicht aufpaßt, so landet man außerhalbdes Wertebereichs D(f). Damit diese Landung nicht auch noch außerhalb des Programms - d. h. im Opera-tionssystem - erfolgt sollte man z. B. bei f(x) = x+

√x− 7 die Funktion so programmieren, daß bei x < 0

5Sicher kommt man als Nutzer der Intervallhalbierung früher oder später ganz von allein auf die Idee einer Verbesserung:Wenn f(1) = 0.0445 und f(3) = −72.915 ist, so ist es wenig sinnvoll, mit x = 2 weiter zu probieren - höchstwahrscheinlich liegtdie Nullstelle ganz nahe bei 1. Wie nahe? - Die lineare Interpolation gibt einen Hinweis.

6Als die ersten Flugzeuge mit Autopiloten ausgerüstet wurden erschien in einer Zeitschrift eine Karrikatur: Am Steuerknüppelsitzt ein Blechroboter, dahinter in einem Glaskasten ein Pilot in Dienstuniform. Daneben ist ein Schild: ’Bei Problemen Scheibeeinschlagen und mich ans Steuer lassen!’

31

Page 32: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

kein Absturz durch die Wurzel ausgelöst wird, sondern z. B. der Ausdruck x− 7 ausgerechnet wird.Die dadurch entstandene neue Funktion ist auf der gesamten reellen Achse definiert, stetig und hat nur eineeinzige Nullstelle - die gesuchte. (Wichtig ist eigentlich nur, daß sie keine neuen Nullstellen hat).3. In der Numerischen Mathematik muß nicht der schlimmste Fall der Theorie eintreten. Oft reicht es aus,wenn man nur in dessen Nähe kommt.Bei f(ak) 6= f(bk) ist die Formel formal anwendbar, doch können die beiden Funktionswerte relativ nahebeieinander liegen (relativ zu ihrem Wert) und dann geht die Gerade mit geringer Neigung durch zwei ziem-lich weit von der Achse entfernte Punkte. Ihr Schnittpunkt xk mit der Achse liegt also recht weit entfernt.Schlimmstenfalls kann man jetzt den Traum von der Nullstelle begraben:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...

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

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

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

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

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

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

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

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

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

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

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

f(x)

| |

f0(x)

|a0 b0 x0

Das Beispiel soll eine Funktion zeigen, die rechts von x0 auf einen positiven Wert hinausläuft, also keineNullstelle bis +∞ mehr besitzt, auch nicht als Grenzwert.Es ist geometrisch offensichtlich, daß die formal gebildete Folge xk hier gegen Unendlich geht und noch dazusehr schnell.Praktisch bewirkt das einen Überlauf in der Rechnung.Es ist also notwendig, nach der Berechnung der xk nachzusehen, ob der Wert weit weggeschleudert wurde(von ak und bk im Sinne ihres Abstandes). Wenn ja, sollte man ihn ggfs. verwerfen und nur einen kleinenSchritt in seine Richtung machen (ähnlich dem gedämpften Newton-Verfahren, s. d.).4. Es ist meist günstig oder zumindest beruhigend, wenn man eine Einschließung hat: f(a0) · f(b0) < 0,denn dann kann man sicher sein, dazwischen (mindestens) eine Nullstelle zu haben. Es liegt nahe, dieseEinschließung zu bewahren, also f(x0) zu berechnen und von a0 und b0 denjenigen Wert zu bewahren, derdas entgegengesetzte Vorzeichen hat. Leider verlangsamt das bisweilen die Konvergenz sehr stark.Ein drastisches Beispiel ist die - ansonsten triviale - Funktion f(x) = x30 − 2. Sie hat eine Nullstelle etwasoberhalb von 1, sei a0 = 1 und b0 = 10. Das ist eine Einschließung, die Regula falsi muß konvergieren undsie tut es theoretisch auch.Aber nicht praktisch. Berechnen wir x0:

x0 = 1− 10− 1(1030 − 2)− (130 − 2)

· (130 − 2) = 1 +9

1030 − 1.

Man macht also einen Schritt von etwa 0.9 · 10−29 in die richtige Richtung. Die Nullstelle ist x∗ = 30√

2 =1.02337 . . .. Der Einfachheit halber angenommen, die weiteren Schritte des Verfahrens wären von derselbenLänge, so würde man rund 2.6 · 1027 Schritte brauchen. - Bei einer Million Schritte pro Sekunde wären dafürzirka 8 · 1019 Jahre erforderlich, etwa dreißig Millionen mal das Alter des Universums.Eine genauere Betrachtung wirkt allerdings ernüchternd - diese Schätzung war viel zu optimistisch, denn inWirklichkeit dauert es ewig und selbst dann ist man nicht fertig.In der Tat, es ist x0 = 1+0.9 ·10−29 und wenn man nicht mit einer dezimal dreißigstelligen Mantisse rechnet- was kaum vorkommt - so wird dieser Wert zu exakt 1 gerundet. Folglich ist x0 = a0 und man hat nicht nureinen sehr kleinen Schritt gemacht, sondern überhaupt keinen!Erkenntnis: Es sind triviale Situationen denkbar, in denen die Regula falsi die Nullstelle finden müßte, esaber nicht tut.

Fast alle numerischen Verfahren lassen sich austricksen. Das Finden dieser Achillesfersen ist wichtig, um dieVerfahren in der Anwendung sicher zu machen. Zu den Ausnahmen aus dieser Regel gehört die im vorigenPunkt betrachtete Methode der Intervallhalbierung.

32

Page 33: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Ein Mensch wird bei Handrechnung nicht den Unfug machen, die obige Aufgabe in dieser Weise zu rechnen.Was kann man einem Computer mit auf den Weg geben?Angenommen, man hat eine im Prinzip gutartige Aufgabe - wie f(x) = x30− 2 = 0 - und eine Einschließungder Nullstelle bei Beginn der Rechnung.Zuerst werden f(a0) und f(b0) berechnet. Liegen diese beiden Werte um Zehnerpotenzen auseinander,7 somacht man einen Schritt mit der Intervallhalbierung, danach wird dieser Test wiederholt.Im geschilderten dramatischen Beispiel ist f(1) = −1 und f(10) = 1030 − 1. (in Wirklichkeit steht in derMaschine natürlich nur 1030 und auch das nur, wenn sie wirklich dezimal rechnen würde. - Ein realer, imDualsystem arbeitender Computer kann allerdings auch 1030 nicht exakt darstellen, zumindest nicht bei denüblichen Mantissenlängen.)Die Intervallhalbierung bringt uns auf das Paar 1 und 5.5, zum letzten Argument gehört der Funktionswert1.625 · 1022.Es wird also nochmals halbiert, wir erhalten 3.25 und f(3.25) = 2.272 · 1015. Eine erneute Halbierung liefert2.125 mit f(2.125) = 6.619 · 109, die Fortsetzung führt zu 1.5625 und f(1.5625) = 652 538.5 . . .. Nach zweiweiteren Halbierungsschritten kann man getrost die Regula falsi starten.Man sieht also, daß man in der Praxis oft nicht mit einem, in Reinkultur genutzten, Verfahren hinkommt,vielmehr sind Hybride mit anderen Methoden notwendig.Und die primitiven Verfahren haben eine Daseinsberechtigung, da sie auch im schwierigen Gelände arbeiten.Werden Hochleistungsrassen überzüchtet, so verlieren sie Widerstandskraft. Es ist üblich, zur Stabilisationder Rasse von Zeit zu Zeit wieder Wildlinge einzukreuzen, deren Erhalt im Genfond unbedingt erforderlichist.

4. Bisweilen kann die Funktion f(x) nur relativ ungenau berechnet werden. Beispielsweise könnte es sichum eine recht langsam konvergierende Fourierreihe handeln, die man an irgendeiner Stelle abbricht, wobeiman einen ziemlich großen Fehler in Kauf nimmt.Dann ist die Regula falsi problematisch in dem folgenden Sinne:Im Nenner steht die Differenz f(bk) − f(ak), hier sind beide Werte um irgendwelche Fehler εk und δk ver-fälscht, so daß dort in Wirklichkeit (f(bk) + εk)− (f(ak) + δk) = (f(bk)− f(ak)) + (εk − δk) steht.Man nähert sich der Nullstelle. Die erste Differenz soll also klein werden (betragsmäßig), die zweite muß einegewisse Schranke nicht unterschreiten.Irgenwann wird also der nächste Wert wesentlich durch die Rundungs- und sonstigen Fehler bestimmt unddas ist sicher nicht gut.Als Ausweg bietet sich an, in jedem Schritt den Quotienten Qk = (bk − ak)/(f(bk) − f(ak)) explizit zuberechnen. Er müste sich im Laufe der Rechnung halbwegs stabilisieren. Wird er aber irgendwann wiederunruhig, so verzichtet man auf die neuen Werte und nimmt den letzten ordentlichen für alle zukünftigenSchritte.Im Falle einer nur genähert berechenbaren Funktion f(x) kann natürlich auch die Nullstelle nur genähertberechnet werden. Das Verfahren soll also nur bis zu einer gewissen Genauigkeit getrieben werden.Übrigens ist diese Vorgehensweise auch dann anwendbar, wenn man keine Lust hat, diesen Quotienten stetsaufs Neue zu berechnen - irgenwann hört man auf und arbeitet mit dem letzten Wert weiter. - So entsteht dievereinfachte Regula falsi. Sie ist nur noch linear konvergent, aber praktisch kaum schlechter als die Rechnungnach der ursprünglichen Vorschrift.Beispiel: Es soll

√2 als Lösung der Gleichung f(x) = x2 − 2 = 0 berechnet werden.

Sei a0 = 1 und b0 = 2. Die Rechnung nach der klassischen Variante der Regula falsi ist in der folgendenTabelle angegeben, wobei immer die letzten beiden Näherungswerte xk−2 und xk−1 als ak und bk benutztwurden. Aus Platzgründen sind nur die xk mit allen benutzten Kommastellen angegeben:

k ak bk f(ak) f(bk) bk − ak f(bk)− f(ak) Qk xk

0 1.000000 2.000000 -1.000000 2.000000 1.000000 3.000000 0.333333 1.3333333333331 1.000000 1.333333 -1.000000 -0.222222 0.333333 0.777778 0.428571 1.4285714285712 1.428571 1.333333 0.040816 -0.222222 -0.095238 -0.263039 0.362069 1.4137931034483 1.413793 1.428571 -0.001189 0.040816 0.014778 0.042005 0.351820 1.4142114384754 1.414211 1.413793 -0.000006 -0.001189 -0.000418 -0.001183 0.353606 1.4142135626895 1.414214 1.414211 0.000000 -0.000006 -0.000002 -0.000006 0.353554 1.4142135623736 1.414214 1.414214 -0.000000 0.000000 0.000000 0.000000 0.353553 1.414213562373

7Sei A = f(a0) und B = f(b0), so kann das durch die folgenden beiden Tests geschehen:if A ∗B = 0 then haben wir eine Nullstelle...;if abs(A/B) + abs(B/A) > 20 then ...

33

Page 34: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Der letzte Schritt diente nur dazu, das Resultat zu bestätigen.Man erkennt die Stabilisierung der Werte Qk.Was erhält man nun, wenn man bk auf b2 und Q2 fixiert und damit weiterrechnet? Angenehm ist dabei, daßman nun nur noch einen Wert xk betrachten muß statt der zwei Werte ak und bk.

k ak bk f(ak) f(bk) bk − ak f(bk)− f(ak) Qk xk

0 1.000000 2.000000 -1.000000 2.000000 1.000000 3.000000 0.333333 1.3333333333331 1.000000 1.333333 -1.000000 -0.222222 0.333333 0.777778 0.428571 1.4285714285712 1.428571 1.333333 0.040816 -0.222222 -0.095238 -0.263039 0.362069 1.4137931034483 1.413793 - -0.001189 - - - - 1.4142236254054 1.414224 - 0.000028 - - - - 1.4142133199615 1.414213 - -0.000001 - - - - 1.4142135682126 1.414214 - 0.000000 - - - - 1.4142135622327 1.414214 - 0.000000 - - - - 1.4142135623768 1.414214 - 0.000000 - - - - 1.414213562373

Zum Erreichen derselben Genauigkeit waren jetzt zwei Schritte mehr erforderlich.Diese Vorgehensweise kann man allerdings auch interpretieren als Newton-Verfahren, kombiniert mit nume-rischer Differentation, s. d..

Man könnte auf die Idee kommen, das Verfahren zu verbessern, indem man den Grundgedanken noch einmalaufgreift: Die Funktion f(x) der Nullstellenaufgabe wird durch eine einfachere Funktion ersetzt.Die gewählte lineare Funktion ϕ(x) ist eine solche einfache Funktion; einfach in dem Sinne, daß man ihreNullstelle problemlos berechnen kann. - Die Nullstelle einer quadratischen Funktion ist aber auch leicht zufinden und damit entsteht das folgende Verfahren: Mit Hilfe von drei Wertepaaren (eine quadratische Funk-tion hat drei Koeffizienten) bestimmt man eine solche Funktion ϕ(x) und nimmt deren Nullstelle x0 als ersteNäherung usw..Die Rechenvorschrift soll nicht hergeleitet werden. Man vergleiche mit dem Punkt ’Interpolation’.Man gewinnt so eine Methode, die wesentlich effektiver ist als die Regula falsi, allerdings ist jeder ihrerSchritte aufwendiger als bei dieser, und man hat noch ein Problem: Man muß unter den beiden Nullstellendes Hilfsproblems die richtige aussuchen. Und was macht man, wenn die quadratische Gleichung keine reellenLösungen hat?Dieses Verfahren ist m. E. sinnvoll, wenn man eine gute Aufgabe hat: einfache Nullstelle, keine weiterenLösungen in unmittelbarer Nähe, glatte Funktion, ... und obendrein über recht genaue Informationen zurLage der Nullstelle verfügt. Dann kann man so ggfs. durch einen einzigen Schritt eine ausreichend guteNäherungslösung gewinnen. Und die Ersparnis an Rechenzeit soll durch durch einen vielfachen Einsatz imRahmen des behandelten Problems gerechtfertigt sein.

Beispiel: Es soll ein Anfangswertproblem F (x, y, y′) = 0, y(x0) = y0 numerisch gelöst werden, d. h. es sollenin gewissen Werten x1, x2, . . . Näherungswerte y1, y2, . . . zu den exakten Werten y(x1), y(x2), . . . ermitteltwerden.Die gängigen Verfahren hierzu (vgl. Kapitel ’Differentialgleichungen’) gehen von expliziten Differentialglei-chungen y′ = f(x, y) aus. Um sie anzuwenden ist also in jedem Schritt die Gleichung F (x, y, y′) = 0 bezüglichy′ zu lösen, x und y können dabei als gegegeben angesehen werden.Beim k-ten Schritt dieser Rechnung hat man gewisse Vorgängerwerte, beispielsweise war y′k−3 = 5.82256,y′k−2 = 5.64562 und y′k−1 = 5.82256. Die Differenzen y′k−3 − y′k−2 = 0.17694 und y′k−2 − y′k−1 = 0.16501nahmen um 0.01193 ab. Diese Abnahme erneut unterstellt würde 0.16501− 0.01193 = 0.15308 ergeben.Man vermutet also y′k−1 − y′k = 0.15308, also y′k = −y′k−1 − 0.15308 = 5.48061− 0.15308 = 5.32753.Das ist nicht der wahre Wert von y′k, aber eine vermutlich sehr ordentliche Startnäherung, von der manausgehen kann, um diesen Wert zu verbessern.Das Beispiel sollte zeigen, daß Aufgaben, in denen man recht gute Vorinformationen besitzt, durchaus vor-kommen. In diesem Falle wird diese Nullstellenaufgabe in jedem Rechendschritt des übergeordneten Ver-fahrens zur Behandlung des Anfangswertproblems gelöst, also sicher viele Male. Somit lohnt sich hier eineffektiver Algorithmus.

34

Page 35: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

4.1.4 Das Newton-VerfahrenDas Newton-Verfahren basiert auf derselben Grundidee wie die Regula falsi: Die schwierige Funktion f(x)wird durch eine Folge einfacher Funktionen ϕk(x) ersetzt, deren Nullstellen xk gegen die Lösung x∗ derGleichung f(x) = 0 konvergieren.Es handelt sich dabei wiederum um lineare Funktionen. Allerdings sind sie nicht durch die Interpolationsbe-dingung ϕ(ak) = f(ak) und ϕ(bk) = f(bk) bestimmt, sondern sie sind jeweils das lineare Taylor-Polynomzu f(x) an der Stelle xk. Dieses wird gleich Null gesetzt und ergibt den nächsten Wert xk+1:

ϕ(x) = f(xk) + f ′(xk) · (x− xk) = 0 =⇒ xk+1 = xk −f(xk)f ′(xk)

.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................||xk

sxk+1

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

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

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

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

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

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

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

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

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

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

x∗

f(x)

ϕ(x)

Der Graph von ϕ(x) ist die Tangente an die Kurve von f(x) in x = xk. Hieraus ist der Name Tangentenver-fahren abgeleitet, der auch für diese Methode benutzt wird.Es gibt zwei wesentliche Unterschiede zur Regula falsi:

- Man hat es jeweils nur mit einem Punkt zu tun.- Neben f(x) braucht man auch den Wert seiner Ableitung f ′(x).

Berechnen wir die Konvergenzordnung α dieses Verfahrens. Dabei wird vorausgesetzt, daß f ′(x∗) 6= 0 ist.Damit ist in genügender Nähe von x∗ - nur dort ist diese Überlegung sinnvoll - auch f ′(xk) 6= 0. Die Funktionund ihre Ableitung werden an der Stelle x = x∗ in Taylor-Ausdrücke entwickelt. Es sei weiterhin voraus-gesetzt, daß die Funktion ’gutartig’ und diese Entwicklung folglich möglich sei. Man beachte, daß f(x∗) = 0ist.

|xk+1−x∗| =∣∣∣∣(xk − f(xk)

f ′(xk)

)− x∗

∣∣∣∣ =

∣∣∣∣∣∣∣(xk − x∗)−f(x∗) + f ′(x∗)(xk − x∗) +

12f ′′(x∗)(xk − x∗)2 + . . .

f ′(x∗) + f ′′(x∗)(xk − x∗) + . . .

∣∣∣∣∣∣∣ =

=

∣∣∣∣∣∣∣∣(xk − x∗) [f ′(x∗) + f ′′(x∗)(xk − x∗) + . . .]−

[f ′(x∗)(xk − x∗) +

12f ′′(x∗)(xk − x∗)2 + . . .

]f ′(x∗) + f ′′(x∗)(xk − x∗) + . . .

∣∣∣∣∣∣∣∣ =

=∣∣∣∣ f ′′(x∗)(xk − x∗)2 + . . .

2 [f ′(x∗) + f ′′(x∗)(xk − x∗) + . . .]

∣∣∣∣ =∣∣∣∣ f ′′(x∗) + . . .

2 [f ′(x∗) + f ′′(x∗)(xk − x∗) + . . .]

∣∣∣∣ (xk − x∗)2 .Der Ausdruck in den Betragsstrichen konvergiert gegen∣∣∣∣ f ′′(x∗)2f ′(x∗)

∣∣∣∣ ,und da die alte Abweichung xk − x∗ als Quadrat dabeisteht ist das Verfahren also quadratisch konvergent.8

Beispiel: Berechnung der Quadratwurzel√a, a > 0.

8Im allgemeinen Fall; bei f ′′(x∗) = 0 ist die Konvergenz noch schneller. Aber in diesem Fall hat die Funktion in der Nullstellekeine Krümmung und läßt sich also sehr gut durch eine lineare Funktion annähern.Falls allerdings andererseits f ′(x∗) = 0 gilt (Fall der mehrfachen Nullstelle), so ist die Konvergenz schlechter als quadratisch.

35

Page 36: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Dieses Verfahren ist die universelle Vorgehensweise, die - mit Modifikationen - zumeist angewandt wird.Es handelt sich um die Suche nach der positiven Lösung der Gleichung f(x) = x2 − a = 0. Die Iterations-vorschrift ist

xk+1 = xk −x2k − a2xk

=12

(xk +

a

xk

).

Die Multiplikation mit 0.5 kann natürlich am schnellsten durch Subtraktion von 1 aus dem Exponenten derGleitkommazahl realisiert werden, falls man Zugriff auf deren Struktur hat.Die Formel kann plausibel interpretiert werden. Sei xk <

√a, dann ist a/xk >

√a und umgekehrt. Der neue

Näherungswert xk+1 ist das arithmetische Mittel von xk und a/xk, liegt also näher an√a als diese.

Die Funktion der Methode soll an der Berechnung von√

2 demonstriert werden; Startwert sei x0 = 1. Dannist

x1 =12

(1 + 2

1

)= 1.5 , x2 =

12

(1.5 + 2

1.5

)= 1.41666 . . . ,

und die weitere Rechnung ist in der folgenden Tabelle dargestellt:

k xk

0 1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000001 1.50000000000000000000000000000000000000000000000000000000000000000000000000000000000002 1.41666666666666666666666666666666666666666666666666666666666666666666666666666666666673 1.41421568627450980392156862745098039215686274509803921568627450980392156862745098039214 1.41421356237468991062629557889013491011655962211574404458490501920005437183538926835905 1.41421356237309504880168962350253024361498192577619742849828949862319582422892362178496 1.41421356237309504880168872420969807856967187537723400156101313311326525563033997853187 1.414213562373095048801688724209698078569671875376948073176679737990732478462107048 1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388504

Die Stellen, die sich nicht mehr ändern, sind fett gedruckt (und der siebente Wert ist aus Platzgründen etwasgekürzt). Man erkennt, daß sich die Anzahl der zutreffenden Kommastellen pro Schritt etwa verdoppelt. Derachte Schritt ist nur noch die Bestätigung des vorigen Wertes.

Das Newton-Verfahren ist das üblicherweise angewandte Verfahren zur Lösung formelmäßig gegebener Glei-chungen. Seine Vorteile sind:1. Einfache rekursive Vorschrift, die aus einem xk seinen Nachfolger xk+1 berechnet.2. Ist man erst einmal in der Nähe der Nullstelle, so konvergiert das Verfahren sehr schnell.Natürlich gibt es auch Probleme und Nachteile:1. Man braucht die Ableitung f ′(x) der Nullstellenfunktion f(x), mithin zunächst einmal einen Formel-ausdruck für f(x). Im Unterschied zur Intervallhalbierung oder der Regula falsi kann man es also bei ex-perimentell ermittelten Funktionswerten nicht anwenden.Viele Formelausdrücke haben die Eigenschaft, beim Differenzieren beträchtlich zu ’quellen’. Dieses großeGebilde f ′(x) muß dann zusätzlich zu f(x) programmieren.Das sollte man ggfs. schon bei der Formulierung von f(x) beachten! Man vergleiche mit dem zweiten Beispielin den Vorbemerkungen 4.1.1., wo das erzeugte Polynom eine wesentlich günstigere Ableitung generiert alsdie primäre rationale Funktion, die sich bei der Anwendung der Universalmethode ergäbe.2. Man kann keine Einschließung von Nullstellen mehr ausnutzen.3. Man braucht einen Startwert. Dessen Beschaffung liegt außerhalb der Theorie des Verfahrens. Kritischist es bisweilen, wenn er automatisch gefunden werden muß. Eine einfache Methode besteht ggfs. darin, ineinem gewissen Abschnitt [a, b], in dem eine Nullstelle liegen muß - wenigstens diese Information brauchtman! - einen Startwert x0 ’auszuwürfeln’. Dazu wählt man x0 = a+(b−a)∗ RANDOM. Der letzte Ausdruckbezeichnet eine mit dem Zufallszahlengenerator erzeugte, in (0,1) gleichverteilte Zufallszahl. Danach startetman das Newton-Verfahren. Wenn es nach ca. 15 Schritten keine Nullstelle liefert oder schon vorher aus demAbschnitt [a, b] herausläuft, so wird es abgebrochen und ein neuer Startwert erwürfelt.Wenn auch das nach vielleicht 100 Versuchen nichts erbrachte sollte sich der Computer (das Programm) un-ter Ausgabe signifikanter Probleminformation an seinen menschlichen Herrn wenden. Vermutlich wird dieserfeststellen, daß es in [a, b] doch keine Nullstelle gibt.4. Es ist nicht garantiert, daß man, von x0 ausgehend, zur nächstliegendsten Nullstelle kommt:

36

Page 37: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

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

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

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

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

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

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

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

............. ............. ............. ............. ............. ...........| |

s

x0

x1

Der Startwert liegt zwischen den beiden linken Nullstellen. Das Verfahren würde aber zu der ganz rechtenkonvergieren.

Einige weitere Bemerkungen:Bei Handrechnung empfiehlt es sich, die Werte zum besseren Vergleich in einer Tabelle anzuordnen.Als Beispiel sei die Gleichung ex = 7 + 5x mit dem Startwert x0 = 3 behandelt. Zunächst wird die Glei-chung in eine Nullstellenaufgabe überführt. Dabei ist es offenbar egal, ob man von ex − 7 − 5x = 0 oder7 + 5x− ex = 0 ausgeht, nehmen wir die erste Form: f(x) = ex − 7− 5x = 0. Es folgt f ′(x) = ex − 5.

k xk f(xk) f ′(xk) f(xk)/f ′(xk)

1 3 -1.914 463 15.085 536 -0.126 9072 3.126 907 0.168 808 17.803 343 0.009 4823 3.117 425 0.001 022 17.588 148 0.000 0584 3.117 367 0.000 000 - -

Bei einer korrekten Rechnung müssen die Funktionswerte - dritte Spalte - und entsprechend die Korrekturen(letzte Spalte) ziemlich schnell gegen Null gehen, zumindest dann, wenn man in der Nähe der Nullstelle ist.Die Werte der ersten Ableitung dagegen werden konstant.Das ist eine nützliche Kontrolle.Darüber hinaus kann man sich bei Betrachtung der Werte die Frage stellen, ob man irgendwann die sich nurnoch wenig ändernden Ableitungswerte tatsächlich in jedem Schritt neu berechnen muß. - Sobald sie eini-germaßen genau sind kann man darauf verzichten. Dies lohnt sich besonders dann, wenn die Berechnung derAbleitung recht aufwendig ist. In der obigen Tabelle hätte man problemlos statt f ′(x3) die letzte Korrekturmit f ′(x2) machen können.Diese Vorgehensweise nennt man das vereinfachte Newton-Verfahren.

Nun zur Rolle der zweiten Ableitung:Betrachten wir die beiden Funktionen ex − 2 und x2 − 1:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

..

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

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

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

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

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

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

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

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

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

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

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

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

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

ex − 2

x2 − 1

ee

euu

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.........

x0 x1x2.....

..

..

.

..

..

.

Die beiden Nullstellen sind als schwarze Kreise markiert.Beide Funktionen haben die wesentliche Eigenschaft, daß ihre zweite Ableitung überall positiv ist: ex > 0und 2 > 0. Geometrisch drückt sich das in dem Umstand aus, daß die Kurven ’nach oben’ gekrümmt sind.

37

Page 38: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Eine auf der gesamten Achse definierte und dort überall zweimal stetig differenzierbare Funktion f(x) mitf ′′(x) > 0 ∀x hat dort entweder keine Nullstelle (x2 + 1), eine einfache oder doppelte Nullstelle (ex − 2 oderx2) oder zwei einfache Nullstellen (x2 − 1).Startet man das Newton-Verfahren mit einem Startwert x0, der größer als die einzige Nullstelle oder aber diegrößere der beiden Nullstellen ist - also ziemlich weit rechts - so wird die erzeugte Folge xk streng monotonabnehmend in diese Nullstelle laufen.Liegt dagegen x0 links der Nullstelle oder etwas links der größeren, so wird x1 oberhalb jener liegen, woraufdie monotone Abnahme einsetzt.Dieser Fall ist an x2 − 1 mit x0 bis x2 angedeutet.Bei dieser Funktion erkennt man auch, daß bei einem Start links der kleineren Nullstelle eine monotonwachsende Folge von xk entsteht und daß man bei x0 etwas oberhalb der kleineren zunächst unter diesekatapultiert wird, usw..Bei ex − 2 geht es spätestens ab x1 nur noch abwärts, egal, wo man startete.Ist die zweite Ableitung auf der gesamten Achse negativ, also wiederum vorzeichenkonstant, so sind die Ver-hältnisse analog. Man veranschauliche sich die Verhältnisse an einer Zeichnung!Üblicherweise hat eine Funktion f(x) in einer gewissen Umgebung der Nullstelle x∗ keine Nullstelle ihrerzweiten Ableitung, also dort Vorzeichenkonstanz, so daß sich ein entsprechendes Verhalten zumindest lokaleinstellt.

Anwendungsbeispiel: Man hat ein Polynom Pn(x) = anxn + . . .+a1x+a0, von dem man weiß, daß es genaun reelle Nullstellen x∗i haben muß (nicht unbedingt verschiedene, aber mehrfache Nullstellen sind immeretwas problematischer). Denken wir sie der Größe nach sortiert: x∗1 ≤ x∗2 ≤ . . . ≤ x∗n.Es gilt die Produktdarstellung dieses Polynoms (die man allerdings noch nicht kennt):

Pn(x) = an ·n∏i=1

(x− x∗i ) .

Die zweite Ableitung ist

P ′′n (x) = an ·n∑k=1

∑l 6=k

∏i 6=k,l

(x− x∗i ) .

Sie hat bei x > x∗n das (konstante) Vorzeichen von an und bei x < x∗1 das von (−1)nan.Schlußfolgerung: Startet man mit einem großen positiven Startwert x0 das Newton-Verfahren, so gelangtman mit fallenden Werten in die größte Nullstelle x∗n.Beginnt man dagegen mit einem betragsgroßen negativen x0, so läuft man wachsend in die kleinste (nichtunbedingt betragskleinste!) Nullstelle x∗1.Unterwegs kann es keinen Ärger der Form f ′(xk) = 0 oder nahe Null geben! (Das gilt natürlich nur, wennalle Nullstellen als reell vorausgesetzt werden können.)

Beispiel: P3(x) = (x+ 1)(x+ 2)(x+ 3) = x3 + 6x2 + 11x+ 6 - drei einfache negative Nullstellen.Gestartet wird mit x0 = 100 (eigentlich unsinnig groß):

k xk P3(xk) P ′3(xk) Korrektur

0 100.000000 1061106.000000 31211.000000 -33.9978211 66.002179 314394.221980 13871.888932 -22.6641252 43.338054 93148.805988 6165.617399 -15.1077823 28.230272 27596.287300 2740.607949 -10.0694044 18.160868 8174.437624 1218.381797 -6.7092585 11.451610 2420.560974 541.837449 -4.4673196 6.984291 716.205015 241.152440 -2.9699267 4.014364 211.540692 107.517732 -1.9674968 2.046868 62.229277 48.131432 -1.2929039 0.753965 18.133002 21.752974 -0.83358710 -0.079622 5.161692 10.063556 -0.51290911 -0.592531 1.380682 4.942904 -0.27932612 -0.871857 0.307651 2.818118 -0.10916913 -0.981026 0.039034 2.114922 -0.01845714 -0.999483 0.001035 2.003103 -0.00051715 -1.000000 0.000001 2.000002 -0.000000

38

Page 39: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Man erkennt, daß das Verfahren anfangs einfach mit großen Schritten zur weit entfernten Nullstelle mar-schiert.

Wenn man die größte Nullstelle gefunden hat, so kann man den Faktor (x− x∗n) aus dem Polynom heraus-dividieren. Das Restpolynom hat immer noch die Eigenschaft, nur reelle Nullstellen zu besitzen und mankann genau diesen Prozeß wiederholen: Man startet rechts der größten Nullstelle des Restpolynoms (oderzumindest nicht links von ihr) und läuft in diese. Dabei braucht man jetzt keinen großen Wert aus der Luftnehmen, sondern kann mit dem soeben gefundenen x∗n beginnen - das muß in jedem Fall gehen.9

Abschließend eine Bemerkung zur Weiterentwicklung des Newton-Verfahrens zu einem kubisch konvergentenVerfahren:Anstelle des linearem Taylor-Polynoms im Punkt xk verwenden wir ein quadratisches und nutzen aus, daßsich quadratische Gleichungen ebenfalls gut lösen lassen:

f(x) = f(xk) + f ′(xk) · (x− xk) +f ′′(xk)

2(x− xk)2 + . . . =⇒

0 = f(xk) + f ′(xk) · (xk+1 − xk) +f ′′(xk)

2(xk+1 − xk)2 = f(xk) + f ′(xk) ·∆xk +

f ′′(xk)2

(∆xk)2

Setzen wir f ′′(xk) 6= 0 voraus und ermitteln wir ∆xk aus dieser Gleichung:

(∆xk)2 +2f ′(xk)f ′′(xk)

∆xk +2f(xk)f ′′(xk)

= 0 =⇒

∆xk = − f′(xk)

f ′′(xk)±

√(f ′(xk)f ′′(xk)

)2

− 2f(xk)f ′′(xk)

= − f′(xk)

f ′′(xk)

[1±

√1− 2f(xk) · f ′′(xk)

(f ′(xk))2

].

Der Bruch unter der letzten Wurzel müßte nahe Null liegen (wegen f(xk)) und dasselbe muß für die Korrektur∆xk gelten. Folglich ist in der eckigen Klammer das Minuszeichen zu nehmen.Für Werte x nahe Null gilt als Näherung aus der Taylor-Formel

√1 + x = 1 +

x

2− x2

8+ . . .

recht genau der quadratische Teil dieser Formel und diesen wenden wir auf die obige Formel an, um dielästige Quadratwurzel zu eliminieren:

∆xk = − f′(xk)

f ′′(xk)

[1−

√1− 2f(xk) · f ′′(xk)

(f ′(xk))2

]≈

≈ − f′(xk)

f ′′(xk)

[1−

(1− f(xk) · f ′′(xk)

(f ′(xk))2− 1

2

2f(xk) · f ′′(xk)

(f ′(xk))2

2) ]

.

Es folgt

xk+1 = xk + ∆xk = xk −f(xk)f ′(xk)

− [f(xk)]2 · f ′′(xk)2[f ′(xk)]3

.

Der erste Term nach xk ist gerade die Newton-Korrektur.Es fällt angenehm auf, daß diese Endformel nicht mehr von der Bedingung f ′′(xk) 6= 0 der HerleitungGebrauch macht. Sie demonstriert sogar sehr schön, daß f ′′(xk) = 0 ein günstiger Fall ist.

Beispiel: Quadratwurzel√a, a > 0, durch Lösung von f(x) = x2 − a:

f(x) = x2 − a, f ′(x) = 2x, f ′′(x) = 2 =⇒ xk+1 = xk −x2k − a2xk

− (x2k − a)2 · a

16x3 =3xk8

+3a4xk− a2

8x3k

.

Diese Formel ist wesentlich komplizierter als die auf Seite 36 angegebene, aber dafür auch deutlich schneller:9Das gilt in der Theorie.

Im Falle einer mehrfachen größten Nullstelle kann es Probleme durch Rundungs- oder Abbruchfehler geben.

39

Page 40: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

k xk

0 1.000000000000000000000000000000000000000000000000000000000001 1.375000000000000000000000000000000000000000000000000000000002 1.414197501878287002253944402704733283245679939894815927873783 1.414213562373094013116251017632713933107292381855915528307624 1.414213562373095048801688724209698078569671875099217546139215 1.41421356237309504880168872420969807856967187537694807317668

Im Unterschied zum Newton-Verfahren verdreifacht sich die Anzahl zutreffender Kommastellen (fett ge-druckt) in der Nähe der Nullstelle pro Schritt (in etwa).Herleitung und Programmierung der Rechenformel ist hier merklich aufwendiger als beim ’einfachen’ Newton-Verfahren, so daß sich diese Formel nur rentiert, wenn es auf höchste Effektivität ankommt.

Abschließend sei auf Beispiel 4 der Beispielsammlung verwiesen, in dem eine einfach aussehende Gleichungmit vielen Nullstellen behandelt wird. Dort ist auch beschrieben, wie man (manchmal) feststellen kann, wieweit es bis zur nächsten Nullstelle mindestens oder höchstens ist.

4.1.5 FixpunktiterationBeispiel: Man berechne den notwendigen Radius eines Ballons.Der Ballon sei kugelförmig, mit Helium gefüllt (Auftrieb 1.1kp/m3), 1m2 der Hülle hat eine Masse von 95g,die Gondel samt Last (750kp) hängt an 36 Seilen, die eine Länge gleich dem dreifachen Ballonradius haben.Die Masse von 1m Seil beträgt 78g.

Der Auftrieb muß gleich dem Gesamtgewicht sein, das ergibt die Gleichung (r in Meter, Gewicht in kp):

4π3· 1.1 · r3 = π · 0.095 · r2 + 36 · 3 · 0.078r + 750 =⇒ 4.61r3 = 0.298r2 + 8.424r + 750 .

Das ist eine kubische Gleichung. Zu ihrer Lösung sei ein ganz anschaulicher Weg gewählt.Vernachlässigen wir zunächst das Gewicht der Hülle und der Tragseile, dann müßte r = 3

√750/4.61 = 5.459

sein.Daraus würde ein zusätzliches Gewicht von Hülle und Seilen von 54.9kp resultieren, das zur Gondel hinzu-kommt. Um es zu tragen müßte der Ballonradius auf r = 3

√(750 + 54.9)/4.61 = 5.589 vergrößert werden.

Das ändert allerdings die Last von Hülle und Seilen, sie wächst entsprechend auf 56.4kg.Das zwingt dazu, den Radius auf r = 3

√(750 + 56.4)/4.61 = 5.593 zu erhöhen.

Die Rechnung kann nun in dieser Weise fortgesetzt werden. Die letzte Korrektur betraf aber nur 4mm undwar sicher praktisch bereits unwesentlich.Rein formal erhält man folgende Werte (stabilisierte Stellen unterstrichen):

k rk k rk

0 0 6 5.5927143152897851 5.459088220196206 7 5.5927143172123982 5.589092406466883 8 5.5927143172646533 5.592615883497953 9 5.5927143172660734 5.592711641908623 10 5.5927143172661125 5.592714244551719 11 5.592714317266113

Diese plausible und praxisnahe Rechenweise soll nun mit einer ordentlichen Theorie unterlegt werden.Was ist eigentlich gemacht worden? Die Gleichung 4.61r3 − 0.298r2 − 8.424r − 750 = 0 läßt sich zwar nachr auflösen, aber diese Formel ist recht umständlich. Statt dessen wurde die Gleichung nur nach dem erstender drei in ihr vorkommenden r-Werte aufgelöst:

4.61r3 − 0.298r2 − 8.424r − 750 = 0 =⇒ r =3

√0.298r2 + 8.424r + 750

4.61.

Für jemand, der in der Schule gelernt hat, daß man eine Bestimmungsgleichung nach der Unbekannten auflö-sen soll und daß dabei selbstverständlich jedes Vorkommen der Unbekannten berücksichtigt werden muß istder Gedanke, nur nach einem Teil dieses Vorkommens aufzulösen, sicher zumindest neu, wenn nicht schlim-mer.Auf den ersten Blick ist eine solche Vorgehensweise tatsächlich sinnlos: Löst man f(x; a) = 0 auf (a steht für

40

Page 41: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

den oder die in der Gleichung enthaltenen Parameter), so resultiert ein Formelausdruck x = ϕ(a), den manausrechenen muß, und dann hat man die Antwort.Gelangt man dagegen nur zu einer Formel der Form x = ϕ(x, a), so ist die Kenntnis der Antwort Vorausset-zung für die Antwort, der Kreis schließt sich und läßt uns im Regen stehen.Falls nun allerdings diese Funktion ϕ(x, a) nur schwach von x abhängt, sich bei Änderung von x also selbstrelativ wenig ändert, so kann man das x grob schätzen und in diese Funktion einsetzen. Damit berechnetsich ein Wert, der zwar vermutlich nicht stimmt, da ein Teil seiner Daten zweifelhaft ist, aber er ist immerhinberechnet und nicht nur geschätzt.Mit diesem x-Wert, der sicher genauer ist als die anfängliche Schätzung, kann nun erneut in ϕ(x, a) einge-gangen werden und man gewinnt einen noch besseren Wert, usw..Das ist die Grundidee der Fixpunktiteration.Zunächst: Ein Wert x∗ ∈ D(ϕ) heißt Fixpunkt der Funktion ϕ(x), wenn ϕ(x∗) = x∗ gilt. - Normalerweiseunterscheidet sich ein Funktionswert y = f(x) vom Argument: y 6= x. Hier tritt der Fall ein, daß die Funktionϕ(x), auf dieses x∗ angewandt, denselben Wert liefert - als hätte sie nichts gemacht. Das x∗ ist also fest (oderfix). Übrigens schneidet die Kurve der Funktion ϕ(x) in jedem Fixpunkt die Gerade y = x.Die Fixpunktiteration beruht auf zwei Begriffen: Selbstabbildung und Kontraktion.Eine auf dem Abschnitt [a, b] definierte Funktion ϕ(x) heißt (dort) Selbstabbildung, wenn jeder ihrer Funk-tionswerte wiederum in [a, b] liegt: ϕ(x) ∈ [a, b] ∀x ∈ [a, b].Eine auf dem Abschnitt [a, b] definierte Funktion ϕ(x) heißt (dort) kontrahierend, wenn eine positive Zahlq < 1 existiert, so daß: |ϕ(x1) − ϕ(x2)| ≤ q|x1 − x2| ∀x1, x2 ∈ [a, b] gilt. Der Abstand zwischen zwei Funk-tionswerten ist also stets kleiner als der zwischen den beiden Argumenten, und zwar mindestens um einenfesten Prozentsatz. Die Forderung ’einfach kleiner’ reicht nicht.10Die letzte Bedingung ist sicher erfüllt, wenn ϕ(x) auf [a, b] eine stetige Ableitung besitzt, deren Betrag niegrößer als q < 1 wird: |f ′(x)| ≤ q < 1 (folgt unmittelbar aus dem Mittelwertsatz).In der x − y-Ebene ist der Bereich a ≤ x ≤ b, a ≤ y ≤ b ein Quadrat. Die Gerade y = x ist eine seinerDiagonalen. Die Bedingung der Selbstabbildung fordert, daß die Kurve der Funktion in diesem Quadratverlaufe. Damit muß sie diese Diagonale mindestens einmal schneiden (linkes Bild):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

......

a b

a

b

e

e

eϕ(x)

y = x

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

......

e

a b

a

b

ϕ(x)

y = x

Jeder Schnittpunkt der Kurve von ϕ(x) mit der Geraden y = x bedeutet ϕ(x) = x, ist also ein Fixpunkt.Im linken Bild besitzt diese Funktion also drei Fixpunkte im Bereich [a, b].Die Forderung der Kontraktion verlangt einen flachen Verlauf der Kurve von ϕ(x) und damit kann dieserFall nicht mehr eintreten: Wenn sich die beiden geschnitten haben, so holt ϕ(x) die Funktion y = x nichtwieder ein. Folglich gibt es dann genau einen Fixpunkt x∗ (rechtes Bild).Zum Finden dieses Fixpunktes kann man folgendermaßen vorgehen:Man wählt einen beliebigen Wert x0 in [a, b] und berechnet seinen Funktionswert ϕ(x0), diesen setzen wirgleich x1 und ermitteln den zugehörigen Wert ϕ(x1).

10Jede auf [a, b] kontrahierende Funktion ist notwendigerweise auf [a, b] stetig, sie muß aber nicht differenzierbar sein.

41

Page 42: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Diese Vorgehensweise läßt sich veranschaulichen, indem man vom Punkt (x0, ϕ(x0)) waagerecht bis zur Dia-gonalen y = x geht. Genau unter der Stelle, wo man auf sie trifft, liegt x1 (falls man über der x-Achse ist,natürlich) und senkrecht über (oder unter) dieser Stelle liegt auf der Kurve von ϕ(x) der Funktionswertϕ(x1).Diesen nennen wir x2 und ermitteln seinen Funktionswert: waagerecht auf y = x, hoch (oder runter) aufϕ(x), usw.:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...........

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.....

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

a b

a

b

ϕ(x)

y = x

x0 x1 x2

hx∗

Es resultiert eine ’Treppe’, die in (x∗, ϕ(x∗) = x∗) läuft.Im Falle einer fallenden Funktion ϕ(x) sieht das Bild etwas anders aus, das Resultat ist aber dasselbe:

42

Page 43: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

...........

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.......

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

....

x0 x1x2a b

a

b

ϕ(x)

y = x

h

Die Iterationsvorschriftxk+1 = ϕ(xk)

mit einer kontrahierenden Selbstabbildung nennt man Fixpunktiteration. Sie konvergiert i. a. mindestenslinear und dabei verringert sich der Abstand von xk zum Fixpunkt x∗ pro Schritt wenigstens um den Faktorq:11

|xk − x∗| = |ϕ(xk−1)− ϕ(x∗)| ≤ q|xk−1 − x∗| .

Ein kleiner Wert von q bedeutet also schnelle Konvergenz.Was passiert, wenn man auf die Eigenschaft der Kontraktion verzichtet?Bei ’steilen’ Funktionen werden die Werte sich vom Fixpunkt entfernen, veranschaulichen Sie sich diesenProzeß durch eine Zeichnung!

Beispiel: ex = x+ 3

11Man kann eine Fehlerabschätzung angeben. Sie stimmt mit der zum Gesamtschrittverfahren (s. S. 67) überein, die eigentlichnur ein Spezialfall ist. Der dortige Wert q ist gerade das hiesige q.

43

Page 44: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Die Gleichung kann man interpretieren als dieFrage nach den Schnittpunkten der links ste-henden Exponentialfunktion und der rechtenlinearen Funktion. Eine Zeichnung ergibt dieExistenz zweier Lösungen dieser Gleichung:x1 < 0 und x2 > 0 (rechts):Diese sollen nun durch Fixpunktiteration er-mittelt werden, dazu löst man diese Gleichungnach jedem der beiden x einzeln auf:

x = ex − 3 bzw. x = ln(x+ 3)

Zu diesen beiden Fixpunktgleichungen gehö-ren die folgenden Funktionsverläufe der rech-ten Seiten:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

|| | | | | |-4 -3 -2 -1 1 2

x1|

x2|

x+ 3 ex

..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

....................................................................

.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..........................................................................................................................................................................................................................................

......................................................................................................................................................................................................................................................................................................................................................................................

| || | | |-3 -2 -1 1

ex − 3

2| ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

....................................................................

.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.........

..........

...........

.....................................................................................................................................................................................................................................................................................

..................................................................................

..........................................................................................................................

.......................................................

| || | | |-3 -2 -1 1

ln(x+ 3)

2|

Im ersten Fall (linke Gleichung, linkes Bild) ist der günstige flache Verlauf bei x1, rechts dagegen bei x2.Startet man in der Nähe des jeweiligen Fixpunktes, so erhält man nacheinander:

k I II III IV V VI VII VIII0 -2 -1 1.5 1.51 1 2 -2.9 -2.931 -2.864665 -2.632121 1.481689 1.526731 1.386294 1.609438 -2.302586 -2.6592612 -2.942998 -2.928074 1.400372 1.603104 1.478485 1.528106 -0.360376 -1.0766383 -2.947293 -2.946500 1.056709 1.968429 1.499285 1.510304 0.970636 0.6540744 -2.947518 -2.947477 -0.123113 4.159418 1.503918 1.506364 1.378926 1.2958435 -2.947530 -2.947528 -2.115836 61.034252 1.504948 1.505491 1.476804 1.4576486 -2.947531 -2.947531 -2.879467 - 1.505176 1.505297 1.498909 1.4946217 -2.947531 -2.947531 -2.943835 - 1.505227 1.505254 1.503835 1.5028818 -2.947531 -2.947531 -2.947337 - 1.505238 1.505244 1.504929 1.5047179 -2.947531 -2.947531 -2.947521 - 1.505241 1.505242 1.505172 1.50512510 -2.947531 -2.947531 -2.947530 - 1.505241 1.505242 1.505226 1.505216

Die linke Gruppe (I bis IV) bezieht sich auf ex−3. Die Rechnung konvergiert, wenn man in -1 oder -2 startet.Sie würde auch bei x0 = −100 konvergieren. Wählt man den Startwert 1.5 ganz in der Nähe des anderenFixpunktes, so irrt die Folge etwas herum und konvergiert schließlich zum kleineren Wert. Vergrößert manaber den Startwert nur ganz unwesentlich auf 1.51, so wachsen die Werte xk erst langsam und dann explo-sionsartig, die Konvergenz entfällt. (Es wäre x6 ≈ e61 = 3.2 · 1026, IV.)Rechts geht es um ln(x + 3). Startet man in 1 oder 2, so konvergiert das Verfahren schön in den Fix-punkt. Beginnt man dagegen nahe des unteren Wertes (VII und VIII), so ist die Folge zunächst etwasratlos, um dann doch gegen den oberen Grenzwert zu gehen. Und das bestenfalls - bei x0 = −2.95 istx1 = ln 0.05 = −2.9957 . . ., x2 = ln 0.0042677 . . . = −5.45667 . . ., und dann bricht der Prozeß ab wegen’Logarithmus aus negativer Zahl’.Jede der beiden Umformungen der Ausgangsgleichung liefert also nur eine der beiden Lösungen als Fixpunkt,obendrein hat so ein Fixpunkt nur ein gewisses Gebiet (eine Umgebung), in der man den Startwert wählenkann.Die jeweilige Funktion ϕ(x) ist im linken Fall flacher als im rechten. Man erkennt, daß die Fälle I - III besser

44

Page 45: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

konvergieren als V - VII.

Die Fixpunktiteration liefert oft einfache und vor allem recht natürliche Rechenvorschriften. Wenn die Kon-vergenzbedingung erfüllt ist, so ist das Verfahren auch ’selbstkorrigierend’, d. h. ein Rechenfehler - sofern ernicht aus dem Konvergenzbereich herausführt - ergibt zwar einen falschen Wert in der Folge, man kann ihnaber als neuen Startwert ansehen und muß dann die Konvergenz erst ab hier zählen. Bei Computerberech-nung kann das sicher nicht vorkommen - das Programm rechnet entweder immer richtig oder (fast) immerfalsch. Aber dort ist es ggfs. günstig, daß dieser Prozeß die Auswirkung der Rundungsfehler automatischunterdrückt.Nachteilig ist, daß man jeden Fall einzeln behandeln muß und etwas Geschick und Erfahrung für die Über-führung der Nullstellenaufgabe in ein Fixpunktproblem benötigt.Die folgende Überlegung ordnet das Newton-Verfahren bei der Fixpunktiteration ein:Die Gleichung 0 = f(x) wird mit a multipliziert, und man addiert auf beiden Seiten x:

x = x+ af(x) = ϕ(x) .

Für die Fixpunktiteration ist es günstig, wenn die Ableitung von ϕ(x) möglichst nahe bei Null liegt. Verlangenwir exakte Übereinstimmung: ϕ′(x) = 1 + af ′(x) = 0 =⇒ a = −1/f ′(x).Wenn wir uns nun - in Abwandlung der Grundidee - für jeden Iterationsschritt auch noch eine neue Funktionϕk(x) leisten, so wäre xk+1 = ϕk(xk) = xk − f(xk)/f ′(xk) gerade die Rekursion des Newton-Verfahrens.

4.1.6 PolynomnullstellenAllgemeine Feststellungen und Abschätzungen

Polynome sind eine spezielle, in der Praxis häufig vorkommende Funktionenklasse.Ihre spezifische Struktur erlaubt eine Reihe detaillierter Aussagen und ihre Werte (und die der Ableitungen)sind leicht zu berechnen.Trotzdem kann die Aufgabe, ihre Nullstellen zu finden, recht schwierig werden.Bekannt ist, daß ein Polynom vom Grade n ≥ 1 genau n Nullstellen besitzt, die aber ggfs. mit ihren Vielfach-heiten gezählt werden müssen und die komplex sein können, selbst wenn das Polynom nur reelle Koeffizientenhat. Im letzten Fall treten sie als konjugiert komplexe Paare auf.Es gibt geschlossene Lösungsformeln für die Fälle n = 1, 2, 3 und 4, die aber meist nur für n ≤ 2 benutztwerden. Selbst bei n = 3 sind Näherungsverfahren meist bereits bequemer.Zunächst einige elementare Aussagen über Polynome und ihre Nullstellen. Aus der Theorie sind subtilereAbschätzungen und Formeln bekannt, die es bisweilen erlauben, recht genaue Informationen über die Eigen-schaften der Nullstellen zu gewinnen, ohne diese im Einzelnen zu berechnen.Betrachtet wird das Polynom Pn(x) = anx

n + an−1xn−1 + . . . a2x

2 + a1x+ a0 mit n > 0 und an 6= 0.

1. Die Polynome Pn(x) und

Pn(x) = xn +an−1

anxn−1 + . . .+

a1

anx+

a0

an=

Pn(x)an

= xn + bn−1xn−1 + . . .+ b1x+ b0

(Pn(x) dividiert durch an) sind i. a. verschiedene Funktionen, haben aber dieselben Nullstellen mit denselbenVielfachheiten.

2. Falls a0 = a1 = . . . = am = 0 gilt (bzw. b0 = b1 = . . . = bm = 0) mit n > m ≥ 0 und am+1 6= 0 (bzw.bm+1 6= 0), so hat Pn(x) die m-fache Nullstelle x∗ = 0.Die verbleibenden, von Null verschiedenen Nullstellen sind im Restpolynom

Pn−m(x) = anxn−m + an−1x

n−m−1 + . . .+ am+2x+ am+1

enthalten.

3. Satz von Vieta (Spezielle Variante):Seien x1, x2, . . . , xn alle Nullstellen von Pn(x) (die mehrfachen entsprechend oft aufgeführt), so ist

an(x1 + x2 + . . .+ xn) = −an−1 bzw. x1 + x2 + . . .+ xn = −bn−1

undan · x1 · x2 · . . . · xn = (−1)na0 bzw. x1 · x2 · . . . · xn = (−1)nb0 .

45

Page 46: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Folglich ist

−bn−1

n=

x1 + x2 + . . .+ xnn

das arithmetische Mittel aller Nullstellen.Durch Einführung der neuen Variablen s = x+ bn−1/n kann man ein äquivalentes Polynom Pn(s) mit ggfs.viel handlicheren Koeffizienten gewinnen.Die Nullstellen von Pn(s) sind rechts und links von s = 0 verteilt (bzw. rechts und links von der imaginärenAchse der s-Ebene).In Pn(s) fehlt der Summand mit sn−1, da der Durchschnitt der neuen Nullstellen gerade Null sein muß.

4. Sei x0 eine (evtl. komplexe) Nullstelle von Pn(x) mit |x0| ≥ 1, dann gilt

anxn0 = −an−1x

n−10 − . . .− a1x0 − a0 ,

also

|anxn0 | = |an| · |x0|n = | − an−1xn−10 − . . .− a1x0 − a0| ≤ |an−1x

n−10 |+ . . .+ |a1x0|+ |a0| =

= |an−1| · |x0|n−1 + . . .+ |a1| · |x0|+ |a0| ≤ |an−1| · |x0|n−1 + . . .+ |a1| · |x0|n−1 + |a0| · |x0|n−1

wegen vorausgesetztem |x0| ≥ 1. Folglich ist nach Division durch den positiven Wert |an| · |x0|n−1

|x0| ≤|an−1|+ . . .+ |a1|+ |a0|

|an|= |bn−1|+ . . .+ |b1|+ |b0| .

Erkenntnis: Für jede Nullstelle |x0| des Polynoms Pn(x) gilt die Abschätzung

|x0| ≤ max

1,|an−1|+ . . .+ |a1|+ |a0|

|an|

.

Beispiel: P3(x) = x3 − 7x− 6 hat die Nullstellen -2, -1 und +3.Es gilt hier

|x0| ≤ max

1,|0|+ | − 7|+ | − 6|

|1|

= max 1, 13 = 13 .

Tatsächlich sind die Beträge aller Nullstellen deutlich kleiner als 13.Diese Abschätzung erlaubt es, sehr einfach einen Kreis um den Nullpunkt der komplexen Ebene anzugeben,in dem alle Nullstellen des Polynoms liegen müssen. Das ist immerhin ein begrenztes Gebiet und damit sinddie Nullstellen schon einigermaßen lokalisiert.Es lohnt sich dabei ggfs., das Polynom in der beschriebenen Weise in den Mittelpunkt seiner Nullstellen zuverschieben (die Variablentransformation s = x+ an−1/(nan) zu machen.

Beispiel: Das Polynom P2(x) = (x − 999)(x − 1001) = x2 − 2000x + 999999 hat laut Abschätzung seineNullstellen in einem großen Kreis mit dem Radius (| − 2000|+ |999 999|)/|1| = 1 001 999.Der Suchtrupp, der sie dort finden soll, muß eine Fläche von π · 1 001 9992 = 3.15 · 1012 abgrasen.Mit s = x + (−2000)/(2 · 1) = x − 1000 wird P2(s) = (s + 1)(s − 1) = s2 − 1 und der zugehörige Kreis hatden Radius 1 sowie die Fläche π. Diese ist um den Faktor 9.96 · 10−13 kleiner als die des ersten Kreises.Man erkennt also: Es muß |s0| ≤ 1 sein oder, in der ursprünglichen Variablen, |x0 + 1000| ≤ 1. - JedeNullstelle dieses Polynoms hat also von x = 1000 (oder von x = 1000 + 0 · j, falls es in der komplexenEbene gewünscht wird) höchstens den Abstand 1. Das ist ein Kreis um diese Stelle und nicht mehr um denNullpunkt der komplexen Ebene.Die Nullstellen sind hier offensichtlich und sie haben gerade diesen Abstand 1. Das zeigt, daß es mindestensein Polynom gibt, wo die von der Abschätzung gebotene Grenze tatsächlich erreicht wird. Demzufolge kannman diese Formel nicht mehr universell verbessern.

5. Sei a0 6= 0, betrachten wir das Polynom

Qn(x) = a0xn + a1x

n−1 + . . .+ an−1x+ an ,

das sich von Pn(x) dadurch unterscheidet, daß es gewissermaßen ’umgekehrt’ aufgeschrieben wurde.Es ist (bei x 6= 0)

Pn(x) = anxn +an−1x

n−1 + . . .+a1x+a0 = xn[an + an−1

1x

+ . . .+ a11

xn−1 + a01xn

]= xn ·Qn

(1x

).

46

Page 47: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Sei nun x0 eine Nullstelle von Pn(x) (wegen a0 6= 0 ist x0 6= 0), so gilt also Qn(1/x0) = 0 und damit istz0 = 1/x0 eine Nullstelle von Qn(x). Diese Aussage gilt auch umgekehrt.

Zurück zum Beispiel des Polynoms P3(x) = x3 − 7x − 6. Hier ist Q3(x) = −6x3 − 7x2 + 1, und dessenNullstellen müssen in einem Kreis der komplexen Ebene mit dem Radius

r = max

1,| − 7|+ |1|| − 6|

= max

1,

86

=

43.

Damit gilt für jede Nullstelle x0 des Ausgangspolynoms P3(x) die Abschätzung |1/x0| ≤ 4/3, also ist |x0| ≥3/4 = 0.75.Mithin erfüllen alle Nullstellen x0 dieses Polynoms die Bedingungen

0.75 ≤ |x0| ≤ 13 .

Den Kreis mit dem Radius 13 kann man also um einen innenliegenden Kreis des Radius 0.75 verkleinern, indem keine Nullstellen liegen können.Es verbleibt ein Gebiet, das einer Unterlegscheibe ähnelt.Bisweilen ist es nützlich, eine Abschätzung für einen Mindestabstand der Nullstellen zur Null zu haben.

Beispiel: Gegeben ist die homogene Differentialgleichung

d3x

dt3+ 0.563s−1 d

2x

dt2− 2.774s−2 dx

dt+ 11.081s−3x = 0

in irgendeiner Variablen x = x(t).Das charakteristische Polynom mit der Variablen λ (Maßeinheit: 1/s) wird

P3(λ) = λ3 + 0.563λ2 + 2.774λ+ 11.081 .

Für seine Nullstellen λ0 gilt analog (an der unteren Grenze muß man hier wegen (1 + 0.563+2.774)/11.081< 1 das Maximum gleich 1 nehmen):

1 ≤ |λ0| ≤ 0.563 + 2.774 + 11.081 = 14.418 .

Ohne weitere Rechnung ist damit klar:

• Wenn die Lösung der Differentialgleichung schwingt, so gilt für die Winkelgeschwindigkeit 1.000s−1 ≤ω ≤ 14.418s−1.

• Wenn die Lösung der Differentialgleichung wächst, so nicht schneller als e14.418t.

• Wenn die Lösung der Differentialgleichung abklingt, so nicht schneller als e−14.418t.

Diese Aussagen sind vielleicht bereits eine gewisse Auskunft zum Verständnis des Prozesses.

6. Das Polynom Pn(x) habe Null als arithmetisches Mittel seiner Nullstellen (ggfs. wurde es so transformiert)oder, was dasselbe bedeutet, der Koeffizient an−1 ist Null.Dann kann die Herleitung der Abschätzung aus 4. modifiziert werden:Sei wiederum |x0| ≥ 1 eine Nullstelle dieses Polynoms, dann gilt

|an| · |x0|n ≤ |an−2| · |x0|n−2 + . . .+ |a1| · |x0|+ |a0| ≤ |an−2| · |x0|n−2 + . . .+ |a1| · |x0|n−2 + |a0|n−2 ,

also wird

|x0| ≤ max

1,

√|an−1|+ . . .+ |a1|+ |a0|

|an|

.

Angewandt auf das Beispiel P3(x) = x3 − 7x− 6 - das der Voraussetzung a2 = 0 genügt - ist

|x0| ≤ max 1,√

13 = 3.61 .

Damit ist der Radius des Kreises drastisch verkleinert: von 13 auf 3.61. Anders ausgedrückt: Seine Fläche -das innere ’Loch’ nicht mitgerechnet - hat sich auf 1/13 verringert.Die betragsgrößte Nullstelle ist 3, dieser Wert liegt noch geringfügig unter der Schranke 3.61.Die innere Grenze kann man hier nicht so einfach umrechnen, da −6x3 − 7x2 + 1 nicht der getroffenenVoraussetzung genügt.

47

Page 48: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Das Horner-Schema

Das Horner-Schema ist eine einfache und sehr effektive Rechenvorschrift für verschiedene mit Polynomenim Zusammenhang stehende Operationen. Es sei nachstehend am Fall n = 3 eines kubischen PolynomsP3(x) = a3x

3 + a2x2 + a1x + a0 demonstriert, um die Übersichtlichkeit zu bewahren. Die Aussagen gelten

aber für Polynome beliebigen Grades:

I a3 a2 a1 a0

II x0 a3x0 a3x20 + a2x0 a3x

30 + a2x

20 + a1x0

III a3 = b2 a3x0 + a2 = b1 a3x20 + a2x0 + a1 = b0 a3x

30 + a2x

20 + a1x0 + a0 = P3(x0)

IV a3x0 2a3x20 + a2x0 -

V a3 2a3x0 + a2 3a3x20 + 2a2x0 + a1 = P ′3(x0) -

In Zeile I stehen alle Koeffizienten des Polynoms in ihrer natürlichen Reihenfolge, d. h. nach fallendenPotenzen geordnet. Fehlt eine Potenz im Polynom, so ist dafür unbedingt eine Spalte mit dem KoeffizientenNull vorzusehen!Die Werte in Zeile III werden - mit dem Argument x0 multipliziert - in die Zeile II übertragen und dabei einFeld nach rechts versetzt. Dann wird der Polynomkoeffizient aus Zeile I mit den Wert in II addiert und gibtdas neue Element in III. Zuletzt steht dort der Polynomwert in x0.Programmiert berechnet sich der Polynomwert y zu

y:=a[n]; for k:=n-1 downto 0 do y:=x∗y+a[k];

Mit Hilfe der Zeilen IV und V berechnet man den Ableitungswert des Polynoms. Die Berechnung ist völliganalog, aber statt auf die Polynomkoeffizienten aus Zeile I wird auf die Werte der Zeile III zurückgegriffen(Das x0 muß also dasselbe sein!). Und man beachte, daß man eine Spalte vorher aufhört!Dividiert man P3(x) durch den Linearfaktor (x− x0), so wird

(a3x3 + a2x

2 + a1x+ a0) : (x−x0) = b2x2 + b1x+ b0 +R = a3x

2 + (a3x0 + a2)x+ (a3x20 + a2x0 + a1) +R ,

wobei R = r/(x− x0) den Rest der Division bezeichnet.Dann ist P3(x) = (x − x0)(b2x2 + b1x + b0) + r und setzt man x = x0, so sieht man, daß r gerade derPolynomwert in x0 ist.Das Horner-Schema liefert also auch die Koeffizienten des Quotientenpolynoms P (x)/(x − x0) (für Poly-nome beliebigen Grades).Ist x0 eine Nullstelle des Polynoms P (x), so geht die Division durch x − x0 ohne Rest auf und man erhältalso im ersten bis vorletzten Wertefeld von III die Koeffizienten des betreffenden Restpolynoms, das dieverbleibenden Nullstellen von P (x) enthält.Fügt man zu IV und V analoge Zeilen VI und VII an (wiederum eine Spalte kürzer), so erhält man 1

2P′′(x0),

usw. - jeweils den Wert der m-ten Ableitung, dividiert durch m!.Polynomwert y und erste Ableitung ys können in einem Programm zusammen berechnet werden:

y:=a[n]; ys:=a[n]; for k:=n-1 downto 1 dobegin y:=x∗y+a[k]; ys:=x∗ys+y; end;

y:=x*y+a[0];

Das Newton-Verfahren für Polynome

Durch Anwendung des Horner-Schemas kann man das Newton-Verfahren sehr effektiv durchführen.Beispiel: P3(x) = x3 − 2x− 31, Startwert: x0 = 3

1 0 -2 -31

x = 3 - 3 9 21

1 3 7 -10

- 3 18 -

1 6 25 -

P3(3) = −10 , P ′3(3) = 25 , x1 = 3− (−10)/25 = 3.4

48

Page 49: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

1 0 -2 -31

x = 3 - 3.4 11.56 32.504

1 3.4 9.56 1.504

- 3.4 23.12 -

1 6.8 32.68 -

P3(x1) = 1.504 , P ′3(x1) = 32.68 ,x2 = x1 − 1.504/32.68 = 3.35397792

1 0 -2 -31

x = 3 - 3.353978 11.249168 31.021506

1 3.353978 9.249168 0.021506

- 3.353978 22.498336 -

1 6.707956 31.747505 -

P3(x2) = 0.021506 , P ′3(x2) = 31.747505 ,x3 = x2 − 0.021506/31.747505 = 3.35330055

1 0 -2 -31

x = 3 - 3.353301 11.244625 31.000005

1 3.353301 9.244625 0.000005

- 3.353301 22.489249 -

1 6.706601 31.733874 -

P3(x2) = 0.000005 , P3(x2)′ = 31.733874 ,x3 = x2 − 0.000005/31.733874 = 3.35330040Eine Fortsetzung der Rechnung ist evtl. nichtmehr nötig.Restpolynom: P2(x) = x2 + 3.3533x+ 9.2446

Wenn die betragsgrößte Nullstelle eines Polynoms reell und positiv ist, so konvergiert das Newton - Verfah-ren sicher zu ihr, wenn man nur x0 größer als diese Nullstelle wählt, also einfach weit genug rechts beginnt.Analog, wenn die betragsgrößte Nullstelle reell und negativ ist, so sollte man x0 kleiner als diese wählenund man gelangt zu ihr. Speziell bedeutet dies, daß bei einem Polynom mit nur reellen Nullstellen diese inwachsender oder fallender Reihenfolge sukzessive ermittelt werden können. (Man vergleiche mit den dortigenAussagen und dem Beispiel auf Seite 38).Das Newton - Verfahren konvergiert auch bei mehrfachen Nullstellen, allerdings langsamer und man mußsorgfältig rechnen, da man sehr kleine Werte durcheinander teilt.Ermittelte Linearfaktoren sollten abdividiert werden, worauf man das Restpolynom auf die verbleibendenNullstellen untersucht. Die dabei unvermeidlichen Rundungsfehler können aber dessen Nullstellen schonspürbar stören, weshalb eine Korrektur der so gewonnenen Nullstellenwerte im Ausgangspolynom anzuratenist.Das Horner-Schema und das Newton-Verfahren lassen sich übrigens mit komplexen Variablen völlig analogrechnen.Beispiel: P3(z) = (4− 2j)z3 + (7 + 6j)z2 − (8 + 3j)z + 5− 9j = 0Gestartet wird mit dem Startwert z0 = 1 + j. Das Horner-Schema ist

4-2j 7+6j -8-3j 5-9j1+j - 6+2j 5+21j -21+15j

4-2j 13-8j -3-18j -16-6j- 6+2j 9+29j -

4-2j 19+10j 6+47j -

Damit wird z1 = z0 − P3(z0)/P ′3(z0) = (1 + j)− (−16− 6j)/(6 + 47j) = 0.917149 + 0.648998j.Die weitere Rechnung ist in der nachstehenden Tabelle dargestellt.Man beachte, daß sich die Rechnung natürlich komplett mit reellen Zahlen ausführen läßt. Man muß nurdie vier komplexen Grundrechenarten in der betreffenden Weise emulieren und pro Koeffizient oder Variableentsprechend zwei Werte vorsehen.Wenn man in einem Programmsystem arbeitet, daß zur unmittelbaren Behandlung komplexer Zahlen fähigist (z. B. FORTRAN), so ist dies allerdings nicht nötig und man kann das Newton-Verfahren in der ur-sprünglichen Form programmieren.

49

Page 50: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

4-2j 7+6j -8-3j 5-9j0.917149+0.648998j - 4.9666+0.7617j 6.5868+13.9678j -8.4142+9.1419j

4-2j 11.9666+6.7617j -1.4132+10.9678j -3.4142+0.1419j- 4.9666+0.7617j 10.6476+17.8897j -

4-2j 16.9332+7.5234j 9.2344+28.8574j -

4-2j 7+6j -8-3j 5-9j0.947030+0.540249j - 4.8686+0.2669j 7.8542+12.3470j -5.1877+8.7731j

4-2j 11.8686+6.2669j -0.1458+9.3470j -0.1877-0.2269j- 4.8686+0.2669j 12.3208+15.2300j -

4-2j 16.7372+6.5339j 12.1750+24.5770j -

4-2j 7+6j -8-3j 5-9j0.957481+0.537787j - 4.9055+0.2362j 8.0455+12.3737j -4.9974+8.9996j

4-2j 11.9055+6.2362j 0.0455+9.3737j 0.0026-0.0004j- 4.9055+0.2362j 12.6154+15.2379j -

4-2j 16.8110+6.4724j 12.6610+24.6116j -

mit dem Resultat z∗ = 0.957452 + 0.537877j.

Das Graeffe-Verfahren

Das ist die übliche Bezeichnung dieser Methode in der deutschsprachigen Literatur. Sie wurde von Dandelin(1826), Lobacevskij (1834) und Graeffe (1837) unabhängig voneinander entwickelt.Dies mag als Beispiel für eine Methode dienen, die nur für Polynome zutrifft, die auf einer ganz anderenGrundidee basiert als das universelle Newton-Verfahren und die obendrein sämtliche Nullstellen auf einmalliefert.Es soll hier nur seine Grundidee für den einfachsten Fall skizziert werden. Dieser besteht darin, daß alleNullstellen betragsmäßig verschieden und damit auch nur einfach sind (im Falle reeller Koeffizienten desPolynoms müssens sie dann obendrein alle reell sein).Gegeben sei das Polynom Pn(x) = xn+an−1x

n−1+. . .+a1x+a0, sei also an = 1, was bei Nullstellenaufgabenkeine Einschränkung der Allgemeinheit darstellt.Wir können die Nullstellen nach der Größe ihrer Beträge ordnen. Sei

|x1| > |x2| > . . . > |xn−1| > |xn| .

Falls nun |x1| sehr viel größer ist als |x2| (und die restlichen), so gilt nach der Formel von Vieta

an−1 = −(x1 + x2 + . . .+ xn) ≈ −x1

d. h. x1 ≈ −an−1 ist (näherungsweise) sofort ablesbar.

Beispiel: x2 + 2783x+ 1.83 = 0Das Produkt der beiden Nullstellen ist 1.83, ihre Summe -2783. Ein Wert muß also betragsmäßig sehr großsein und der andere sehr klein.Es folgt x1 ≈ −27883 und x2 ≈ 1.82/(−2783), exakt ist x1 = −2782.9993 . . ..

Die Idee des Graeffe-Verfahrens besteht nun darin, aus Pn(x) neue Polynome P (1)n (x), P (2)

n (x), . . . des-selben Grades zu erzeugen, deren Nullstellen relativ immer weiter auseinder liegen, andererseits aber leichtmit denen des Ausgangspolynoms in Beziehung gesetzt werden können.Bei irgendeinem P

(m)n (x) ist das Ziel erreicht, daß dessen betragsgrößte Nullstelle so viel größer als alle

anderen ist, daß man sie mit genügender Genauigkeit ablesen kann. Danach werden die weiteren sukzessiveermittelt.Die neuen Polynome P (1)

n (x) usw. haben nun als Nullstellen gerade die Quadrate der Nullstellen des jeweiligenVorgängerpolynoms. Falls z. B. x1 = 2x2 dessen Doppeltes ist, so stehen x2

1 = 4x22 bereits im Verhältnis des

Vierfachen.

Zur Rechenvorschrift:Realisiert wird sie mit dem Polynom in der Summenform: Pn(x) = xn + an−1x

n−1 + . . .+ a1x+ a0. Um zuverstehen, was intern geschieht, werden wir es auch in der Produktform Pn(x) = (x−x1)·(x−x2)·. . .·(x−xn)schreiben, die man natürlich in der Praxis zu diesem Zeitpunkt noch nicht kennt.Ersetzen wir in Pn(x) das Argument x durch −x:

P ∗n(x) = Pn(−x) = (−1)n · (x+ x1) · (x+ x2) · . . . · (x+ xn) =50

Page 51: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

= (−x)n + an−1(−x)n−1 + . . .+ a2(−x)2 + a1(−x) + a0 =

= (−1)n[xn − an−1x

n−1 + . . .+ (−1)n−2a2x2 + (−1)n−1a1x+ a0(−1)n

].

Die beiden Polynome werden miteinander multipliziert:

Pn(x) · P ∗n(x) = (x− x1) · (x− x2) · . . . · (x− xn) · (−1)n · (x+ x1) · (x+ x2) · . . . · (x+ xn) =

= (−1)n · (x2 − x21) · (x2 − x2

2) · . . . · (x2 − x2n) .

Das Produkt enthält nur gerade Potenzen in x bis hin zu 2n; bilden wir aus ihm das Polynom P(1)n (x) des

Grades n, indem wir x2 wieder durch x ersetzen und den für die Nullstellensuche unwesentlichen Faktor(−1)n einfach weglassen:

P (1)n (x) = (x− x2

1) · (x− x22) · . . . · (x− x2

n) .

Es hat offenbar gerade die Nullstellen x2i , mit den Nullstellen xi des Ausgangspolynoms.

Es verbleiben zwei Bemerkungen:Erstens: Dieser Prozeß wird entsprechend oft wiederholt.Zweitens: Die Multiplikation der Polynome geschieht natürlich in der Summenform - man hat ja nichtsanderes zur Verfügung.

Beispiel: P3(x) = x3 − 2x2 − 5x+ 5P ∗3 (x) entsteht, indem man in diesem Polynom bei jedem zweiten Koeffizienten das Vorzeichen ändert:P ∗3 (x) = x3 + 2x2 − 5x− 5Diese beiden Polynome werden multipliziert:

P(1)3 (x2) = P3(x) · P ∗3 (x) = (x3 − 2x2 − 5x+ 5) · (x3 + 2x2 − 5x− 5) = x6 − 14x4 + 45x2 − 25 .

Durch die Substitution x2 := x folgt P (1)3 (x) = x3 − 14x2 + 45x− 25.

Nächster Schritt:

P(2)3 (x2) = P

(1)3 (x) ·P (1)∗

3 (x) = (x3−14x2+45x−25) ·(x3+14x2+45x+25) = x6−286x4+1325x2−625 ,

also P (2)3 (x) = x3 − 286x2 + 1325x− 625.

Die Rechnung kann als formaler Algorithmus geschrieben und damit programmiert werden:

P (k)n (x) = x3 + a

(k)2 x2 + a

(k)1 x+ a

(k)0 ,

P (k+1)n (x2) = P (k)

n (x) · P (k)∗n (x) = (x3 + a

(k)2 x2 + a

(k)1 x+ a

(k)0 ) · (x3 − a(k)

2 x2 + a(k)1 x− a(k)

0 ) =

= x6 +[2a(k)

1 − (a(k)2 )2

]x4 +

[(a(k)

1 )2 − 2a(k)2 a

(k)0

]x− (a(k)

0 )2 .

Damit erzeugt man eine Tabelle von Koeffizienten.Unterstellt man für die betragsgrößte Nullstelle x1 die Beziehung x(k)

1 = −a(k)2 , so folgt wegen x

(k)1 = x2k

1

die Gleichung

|x1| ≈ 2k√|a(k)

2 | .

Dieser Wert wird ebenfalls berechnet und seine Stabilisierung beobachtet.

I II III IV V VI

k a(k)3 a

(k)2 a

(k)1 a

(k)0

2k√|a(k)

2 |

Rechnung - 2 · IV − III2 IV 2 − 2 · III · V −V 2

0 1 2 -5 -5 2.000000001 1 -14 45 -25 3.741657392 1 -106 1325 -625 3.208680443 1 -8586 1623125 -390625 3.102586234 1 -70473146 2627826953125 -152587890625 3.093865855 1 -496120865E+07 690545299E+16 -232830644E+14 3.093763486 1 -246135775E+23 476852810E+41 -542101086E+36 3.093763467 1 -605828197E+54 227388602E+91 -293873588E+81 3.09376346

51

Page 52: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Für praktisch interessierende Genauigkeiten sind also hier etwa fünf Schritte ausreichend.Rechts steht folglich zuletzt der Betrag von x1.

Die Formeln vonVieta lassen sich für alle Koeffizienten aufstellen. Für das Absolutglied und die zweithöchstePotenz sind sie nur besonders einfach.Speziell wird, die starken Größenunterschiede der Nullstellen ausnutzend,

a(7)1 = x

(7)1 x

(7)2 + x

(7)1 x

(7)3 + x

(7)2 x

(7)3 ≈ x

(7)1 x

(7)2

also gilt wegen x(7)1 = 605828197 · 1054 die Beziehung 605828197 · 1054 · |x(7)

2 | = 227388602 · 1091, mithin|x(7)

2 | = 3.7533 · 1036.Der Betrag von x(7)

2 ist nun die 128. Wurzel hieraus, also 1.930 802.Wir haben nicht direkt die Nullstellen erhalten, sondern nur ihre Beträge. Im vorliegenden einfachen Fall dernur reellen Nullstellen muß man nun die gewonnenen Werte mit beiden Vorzeichen ins Ausgangspolynomeinsetzen12 und klären, welcher zu nehmen ist.Hier wird P3(3.0938) = 0.000414 und P3(−3.0938) = −28.287, also ist x1 = 3.09376346.Analog wird x2 = −1.930802 als negativer Wert bestätigt.Nach Vieta gilt x1x2x3 = −a0 = −5, damit resultiert x3 = −5/(−1.930802 · 3.093763) = 0.837038.Die Beträge der beiden bedeutendsten Nullstellen stehen im Verhältnis 1:1.602. Durch die Transformationwurde daraus das Verhältnis 1 : 3.7533·1036 im siebenten Polynom. Das bedeutet aber - grob gesprochen - dieÜbereinstimmung der ersten 36 Stellen von a(7)

2 mit denen von x(7)1 (ohne Berücksichtigung des Vorzeichens).

Das illustriert den Begriff ’eine Nullstelle ist betragsmäßig viel größer als die anderen’.

Allgemein muß dieses Verfahren etwas subtiler durchgeführt werden, um auch die Fälle betragsgleicher (oderfast betragsgleicher), mehrfacher oder komplexer Nullstellen behandeln zu können; vgl. hierzu ggfs. dieLiteratur.

4.2 Gleichungssysteme

4.2.1 VorbemerkungenWir suchen einen Satz von Werten x1, x2, . . . , xn, die m Gleichungen erfüllen sollen, die wir ohne Beschrän-kung der Allgemeinheit in der Nullstellenform schreiben können:

fi(x1, x2, . . . , xn) = 0, j = 1, 2, . . . ,m

Es bietet sich an, die Unbekannten zu einem Vektor x zusammenzufassen, und die Funktionen zu einemVektor f(x). Dies ist zunächst nur eine kompakte Schreibweise.Der typische Fall ist die Übereinstimmung der Anzahl der Unbekannten mit der der Gleichungen, das mußaber nicht so sein. Das ’System’

(x1 − 1)2 + 5(x2 − 7)4 + 3|x3 + 4| = 0

von einer Gleichung mit drei Unbekannten ist (im Reellen!) nichtsdestoweniger eindeutig lösbar.Im gewissen Umfang kann man derartige Systeme geometrisch interpretieren. Prinzipiell besitzt jede ver-nünftige Gleichung fi(x1, x2, . . . , xn) = 0 eine gewisse Lösungsmenge Li und die Lösung des Systems ist derDurchschnitt aller dieser Lösungsmengen.Bei n = 2 ist Lk i. a. eine Kurve in der (x1, x2)-Ebene (die sogenannte Nullkurve) ; evtl. besteht sie ausmehreren getrennten Stücken. Bei zwei Gleichungen hat man also zwei Kurvensätze und die Lösungsmengebesteht aus deren Schnittpunkten.Beispiel: f1(x1, x2) = x2

1 − x2 + a und f2(x1, x2) = x22 − x1 + b

Die Menge L1 = (x1, x2)|f1(x1, x2) = 0 ist - gezeichnet - die Parabel x2 = x21 + a um die x2-Achse;

entsprechend ist L2 eine Parabel um die x1-Achse, ’liegend’ und nach rechts geöffnet. Beide Parabeln habenihre Scheitelpunkte auf der jeweiligen Achse in (0, a) oder (b, 0).Bei a = b > 1/4 besitzt das Gleichungssystem keine Lösung (links) und bei a = b = 1/4 genau eine (rechts):

12In Wirklichkeit reicht hier ein Vorzeichen.

52

Page 53: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................................

..................................................................................................

........................................................................

................................................

.......................................................................................................................................

......................................................................................

.................................................................................................................

..........................................................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

........................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................

x2

x1

...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.................................................................................................................................

.....................................................................................................

...........................................................................

...................................................

....................................................................................................................................

...................................................................................

.............................................................................................................

...........................................................................................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

........................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................

e

x2

x1

Für 1/4 > a = b > −3/4 hat man es mit zwei Lösungen zu tun (links) und bei a = −1, b = −1.129515 sindes genau drei (rechts):

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.......................................................................................................................................

...........................................................................................................

.................................................................................

........................................................

...............................................................................................................................................................

.........................................................................................

....................................................................................................................

..............................................................................................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

........................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................

e

x2

x1

e

.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..................................................................................................................................................

.......................................................................................................................

............................................................................................

...................................................................

..........................................................................................................................................................

...............................................................................

..........................................................................................................

.....................................................................................................................................

............................................................................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

........................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................

ee

e

x2

x1

53

Page 54: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Liegt a = b unter -3/4, so gibt es vier Lösungen die-ses Systems (s. rechts):

Die Struktur der Lösungsmenge ist also im allge-meinen Fall keine simple Frage. Nur bei linearenGleichungssystemen gibt es die ’einfache’ Dreiteilung’keine Lösung - eine Lösung - unendlich viele Lösun-gen’.

Der Begriff ’nichtlineare(s) Gleichung(ssystem)’ isteine negative Definition. Die beschreibt den größtenTeil (was immer das bedeuten mag...) aller Gleichun-gen. Analog kann man die Menge aller Gegenständeunterteilen in ’Bleistift’ und ’kein Bleistift’. Über dieElemente der ersten Menge kann man einige Aussa-gen machen; über die der zweiten eigentlich nur eine- daß sie keine Bleistifte sind. Sie enthält ein rechtbreites Spektrum an Objekten: Ölplattformen, aus-gestopfte Goldhamster im Glaskasten, Tomahawks,Klappstühle, . . . .Man kann also nicht erwarten, daß es eine abgeschlos-sene und detaillierte Theorie der nichtlinearen Glei-chungen gibt, analog zu der der linearen.Lineare Systeme werden im Grundkurs Mathematikbehandelt. Hier sollen nur einige ergänzende Bemer-kungen gemacht werden.

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..........................................................................................................................................................

...............................................................................................................................

....................................................................................................

..........................................................................

...................................................

...................................................................................................................................

...................................................................................

..............................................................................................................

.........................................................................................................................................

......................................................................................................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

........................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................

e

ee

e

x2

x1

Ein weiteres Beispiel zur Lösungsmenge:

Man hat eine gedämpfte Schwingung und weiß, daß es sich um eine reine Kosinusschwingung ohne Phasen-verschiebung handelt. Der Wert bei t = 0 ist bekannt: f(0) = A0.Weiterhin hat man für 0 < t1 < t2 zwei Werte bestimmt: f(t1) = A1 und f(t2) = A2. Aus diesen Angabensoll der Dämpfungskoeffizient λ und die Winkelgeschwindigkeit ω der Funktion f(t) = Ae−λt cosωt bestimmtwerden.Sei A1/A0 = y1 und A2/A0 = y2, so ist also das Gleichungssystem e−λt1 cosωt1 = y1 und e−λt2 cosωt2 = y2bezüglich λ und ω zu lösen.Man kann beide Gleichungen nach λ auflösen und diese Ausdrücke gleichsetzen. Dann bleibt eine Gleichungfür eine Unbekannte. Das ist ein sinnvoller Weg. Eine solche Reduktion des Problems ist fast immer zuempfehlen.Diese Gleichung hat die Gestalt

g(ω) =ln(y1/ cosωt1)

t1− ln(y2/ cosωt2)

t2= 0 .

Um das Beispiel konkret zu machen seien einige Werte gegeben: t1 = 1.1, t2 = 3.4, y1 = 3.38 und y2 = −4.11.(Diese Angaben sind willkürlich, es wurde nichts speziell konstruiert.)Damit erhält man im Bereich 0 < ω < 11 den folgenden Verlauf der Funktion g(ω):

54

Page 55: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

................

................

................

................

................

................

................

................

................

................

................

.................

..................

.................

....................

....................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

.................

...............................................................................................................................................................................................................................................................................................................................................................................................................

...............................................................................................................................................................................................................................................................................................................................................................................................................

.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

...........................................................g(ω)

ω| | | | | | | | | |

2 4

6

8 10

Der Definitionsbereich besteht aus einzelnen Stücken und der Verlauf ist keineswegs trivial. In der Nähe vonω = 1.4 macht die Funktion zuerst Anstalten, nach +∞ zu gehen, um es sich plötzlich anders zu überlegenund die Richtung zu wechseln. Die dort liegende Nullstelle ist etwas unerwartet.Es sei aber nun das System e−1.1λ cos 1.1ω− 3.38 = 0 und e−3.4λ cos 3.4ω+ 4.11 = 0 unreduziert betrachtet.Die Nullkurven der ersten Gleichung sind gestrichelt, die der zweiten ausgezogen:

...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

....

| | | | | |1 2 3 4 5 6 7

|

....................................................1

e

....................................................2

e

....................................................3

e e

λ

ω

e

...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

............. ............. ............. ............. ................................................................................................................................................................................................................ ................................................................................................................................................................................................................ ............. ............. ............. ............. ............. .............

.............................................................................................................................................................................................................................

Die fünf in der vorigen Grafik enthaltenen Lösungen sind eingekreist.In dieser Darstellung ist der Ursprung der Lösungsmenge deutlicher zu erkennen. Die Nullkurven sind jeweilsgetrennte parabelähnliche Äste, die sich periodisch wiederholen, wobei aber die Perioden im Verhältnis 11:34stehen, so daß die Gesamtperiode recht lang wird. Und damit gibt es eine beträchtliche Anzahl von Lösungen,von Periodizitäten ganz abgesehen.Praktisch sind aber sicher nur die kleinen Werte von Interesse. Vermutlich will man das kleinste ω ermitteln.Konkret wäre also die linke Nullstelle von g(ω) bzw. der linke Kreis in der ω − λ-Ebene gesucht.Die zweite - in Richtung wachsendes ω - Nullstelle ist offenbar sehr empfindlich gegenüber kleinen Änderungender Aufgabenparameter, zumindest was ihren λ-Wert betrifft.Die Reduktion des Systems von zwei Gleichungen mit zwei Unbekannten zu einer Gleichung mit einer einzigenUnbekannten vereinfacht die Berechnung der gesuchten Werte, erschwert aber hier das Verständnis desProblems.

55

Page 56: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

4.2.2 Lineare SystemeDas Gauss-Verfahren

Das Gauss-Verfahren ist das universelle Verfahren zum Lösen beliebiger linearer Gleichungssysteme.13Es ist anwendbar bei unter- wie bei überbestimmten Systemen und liefert - im Prinzip! - eine endgültigeAussage über die Lösbarkeit und ggfs. die Lösungsmenge.In der Praxis sollte man realistisch bleiben, denn Wunder kann es nicht vollbringen. Bei den beiden Systemen

x1 + 3x2 = 30.333x1 + x2 = 1

und

x1 + 3x2 = 4

0.333x1 + x2 = 1

kommt es sehr darauf an, wie der Faktor 0.333 interpretiert wird.Nimmt man ihn wörtlich, so ist das linke System eindeutig lösbar und das rechte auch (die Determinanteder Systemmatrix ist dann 1 · 1− 3 · 0.333 = 0.001 6= 0.Sieht man ihn als eine Rundung von 1/3 an, so wäre das linke System mehrdeutig lösbar und das rechteunlösbar (Determinante = 0).Allgemein kann man festhalten, daß ein unlösbares (oder nicht eindeutig lösbares) System von n Gleichun-gen mit n Unbekannten durch eine beliebig kleine Änderung der Matrixelemente oder der rechten Seiten inein eindeutig lösbares überführt werden kann (die Umkehrung dieser Aussage gilt nicht, eindeutig lösbareSysteme bleiben eindeutig lösbar, solange ihre Koeffizienten nicht zu stark geändert werden). Damit wirddie Frage nach der Struktur der Lösungsmenge eigentlich hinfällig in allen Fällen, wo man die Parameternur mit einer gewissen Unsicherheit kennt und wo ein kritischer Fall (keine oder unendlich viele Lösungen)in dieser Parametermenge vorkommen kann.Zur Lösung von n Gleichungen mit n Unbekannten muß man beim Gauss-Verfahren rund n3/3 Multiplika-tionen und Divisionen ausführen. Der Rechenaufwand wächst also mit n recht schnell. Daneben bringt abereine große Zahl von Operationen ggfs. auch merkliche Rundungsfehler mit sich. Das ist ein Gesichtspunkt,der bei Handrechnungen kaum eine Rolle spielt, in einem Computer aber beachtet werden muß.Der wesentliche Teil des Lösungsprozesses ist die Hinrechnung. Dabei wird haupsächlich ein jeweiliges Vielfa-ches der Pivotzeile von gewissen anderen Zeilen abgezogen. Sei i∗ die Nummer der Pivotzeile und j∗ die derPivotspalte, so ergibt sich das modifizierte Element a′ij im Schema aus seinem Vorgänger durch die Formel

a′ij = aij −ai∗j · aij∗ai∗j∗

.

Nehmen wir an, alle Werte sind durch Rundungsfehler u. ä. bereits geringfügig verfälscht, so berechnet manalso einen Wert

(aij + εij)−(ai∗j + εi∗j) · (aij∗ + εij∗)

ai∗j∗ + εi∗j∗≈ aij −

ai∗j · aij∗ai∗j∗

+ εij −ai∗jεij∗ + aij∗εi∗j

ai∗j∗.

Man wird versuchen, den letzten Bruch betragsmäßig möglichst klein zu machen - das ist das Einzige, wasman tun kann - und der Freiheitsgrad besteht in der Wahl der i∗ und j∗, also in der Wahl des Pivotelements.Diese Formel legt nun nahe, dieses betragsmäßig möglichst groß zu machen.Löst man Übungsaufgaben mit ganzzahligen Koeffizienten, so wählt man das Pivotelement ebenfalls mitBedacht, aber nach ganz anderen Gesichtspunkten: Es sollte möglichst ±1 sein, damit man im laufendenSchritt Brüche vermeiden kann, usw.. In einem Computerprogramm spielen diese Bequemlichkeitsüberlegun-gen keinerlei Rolle und ganze Zahlen kann man fast nie erwarten.Die prinzipielle Forderung an ein Pivotelement ist seine Verschiedenheit von Null. Bei numerischer Rechnungweiß man aber, daß ein Wert durch Rundungsfehler von Null verschieden sein kann, aber diese meint (vgl. dasBeispiel mit dem Koeffizienten 0.333 eingangs). Durch diese Zahl dürfte man zwar dividieren, sollte es abertunlichst unterlassen, denn sie ist ein Rundungsfehler, also völlig willkürlich. - Um nun zu verhindern, an einsolches Pivotelement zu geraten, ist es also notwendig, von diesen mehr zu fordern als nur ’verschieden vonNull’ zu sein. Die Wahl des betragsgrößten Elements unter allen in Frage kommenden Kandidaten schließtsolche falschen Freunde meist aus.’Meist’ bedeutet ’nicht immer’. Wenn alle verbleibenden Elemente nahe bei Null liegen, so sind sie vielleichtallesamt Rundungsfehler? Man weiß, daß ein System nicht lösbar ist, wenn in einem Schritt des Gauss-Verfahrens im Matrixteil lauter Nullen stehen und in der rechten Seite ein von Null verschiedener Wert.Aber das ist ist Theorie - praktisch sind diese Nullen weder links noch rechts unbedingt exakt und damit ist

13Was ist von der Cramerschen Regel zu halten?

56

Page 57: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

die Grenze verwischt.Man muß also im Programm ein Kriterium festlegen, wann man diesen Fall als eingetreten ansieht.Die Strategie, unter allen verbliebenen Kandidaten den betragsgrößten zu wählen, nennt man ’totale Pivo-tisierung’. Dann wird im rechts stehenden Bruch der letzten Formel

ai∗jεij∗ + aij∗εi∗jai∗j∗

=ai∗jai∗j∗

εij∗ +aij∗

ai∗j∗εi∗j .

Die beiden Abweichungen εi∗j und εij∗ werden beide mit Faktoren multipliziert, deren Betrag höchstens 1ist, sie werden also keineswegs vergrößert.Das ist die in einem gewissen Sinne beste Variante. Wie alles Gute hat sie ihren Preis. Bevor man denbetreffenden Schritt der Hinrechnung macht muß man also all diese Werte durchsuchen und vergleichen. Dasdauert seine Zeit. Der Vergleich x < y erfolgt meist als Vorzeichentest von x − y. Bei einem n × n-Systemsind also im m-ten Schritt (n −m)2 Werte zu prüfen und insgesamt fallen wiederum rund n3/3 Vergleichean. Das erhöht die Rechenzeit merklich und es hängt von der Situation ab, ob man diesen Preis zahlen kannoder muß.14Oftmals begnügt man sich damit, das Pivotelement nicht unter allen möglichen Kandidaten zu suchen,sondern nur unter den in Frage kommenden Elementen der betreffenden Spalte oder Zeile. Dementsprechendnennt man diese Varianten ’Spaltenpivotisierung’ oder ’Zeilenpivotisierung’. Sie sind i. a. weniger genau alsdie totale Pivotisierung, aber dafür wählen sie unter nur n−m Elementen und sind damit deutlich schneller.Und sie schließen das Hereinfallen auf eine getarnte Null ebenfalls ziemlich sicher aus.Jeder dieser Größenvergleiche ist allerdings sinnlos wie ein unfairer Wettkampf, wenn man nicht für gleicheBedingungen sorgt. Angenommen, man hat einen verzweigten Stromkreis. In einem Knoten gilt I2+I4−I5 = 0und über eine Kontur hat man I1/R1 + I2/R2 + I4/R4 = −9V . Bei R1 = 200Ω, R2 = 400Ω und R4 = 500Ωsind die Zahlenkoeffizienten in der letzten Gleichung 0.005, 0.0025 und 0.002; das Pivotelement wäre beitotaler Pivotisierung eine 1 aus der ersten Gleichung.Mißt man dagegen die Widerstände in kΩ, was an der Aufgabe inhaltlich nichts ändert, so hätte die zweiteGleichung die Koeffizienten 5, 2.5 und 2 und der erste davon wäre das Pivotelement.Eine solche Willkür ist natürlich nicht akzeptabel. Man beachte, daß man jede Gleichung eines Systems mitjedem von Null verschiedenen Wert multiplizieren darf. Das würde die Reihenfolge der Pivotwahl aber totaländern, ohne daß es dafür einen sachlichen Grund gibt (die in den Parametern enthaltenen Fehler werdendabei mitmultipliziert).Hieraus ergibt sich die Notwendigkeit, das System zu skalieren. Das kann auf verschiedene Weise geschehen. Injedem Fall wird jede Gleichung mit einem spezifischen Wert multipliziert, der sich aus den Matrixkoeffizientenergibt (die rechte Seite spielt keine Rolle, wird aber mitmultipliziert):

• Kehrwert der Länge des ZeilenvektorsIn der i-ten Zeile ermittelt man den Wert √√√√ n∑

j=1

a2ij

und dividiert die gesamte Zeile durch diesen. Das System Ax = b geht über in ein äquivalentes SystemA′x = b′, wobei alle Zeilenvektoren a(i)′ von A′ gleichlang (im geometrischen Sinne: |a′(i)| = 1) sind.Alle Matrixelemente (nicht die rechten Seiten!) sind danach betragsmäßig kleiner oder gleich 1.Diese Aktion ist ziemlich aufwendig.

• Kehrwert der Summe der Beträge der Elemente der ZeileMan ermittelt analog

n∑j=1

|aij | ,

analog zum vorigen Fall, aber etwas weniger aufwendig.

• Kehrwert des betragsgrößten Elements der ZeileNach der Division ist dieses - und evtl. noch andere - genau 1 (oder -1), die restlichen sind betragsmäßigkleiner.

14Wenn man Zugriff auf die Struktur der Gleitkommazahlen hat, so kann man den Prozeß beschleunigen, indem man nichtdie kompletten Zahlen vergleicht, sondern nur deren Dualexponenten. Damit bekommt man evtl. ein Pivotelement, das nuretwa die Hälfte des größten (betragsmäßig) ist, aber das ist nicht so schlimm. Der Vergleich der ganzzahligen Exponenten gehtschneller. Allerdings muß man aufpassen: Die Zahl 0 hat in der Regel den Exponenten 0.

57

Page 58: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Korrekterweise müßte man diese Operation nach jedem Schritt mit der verbliebenen Restmatrix machen, aberdas treibt den Aufwand sehr hoch. Ein weiterer Nachteil ist, daß diese Skalierungen allesamt Rundungsfehlererzeugen. Das kann man vermeiden, indem man jede Zeile mit einer exakten Zweierpotenz multipliziert, dieman so wählt, daß die maximalen Werte halbwegs in dieselbe Größenordnung kommen. Dabei werden dieMantissen der Gleitkommazahlen nicht verändert, also keine Rundungsfehler erzeugt. (Diese Multiplikationkann als Addition in den Exponenten ausgeführt werden.)Die genannten Methoden der Matrixskalierung und der Pivotwahl sind keineswegs ausgeklügelt, es gibt tief-sinnigere Strategien. Es soll damit demonstriert werden, daß Löser für lineare Gleichungssysteme nicht gebautwerden sollten, indem man den Basisalgorithmus des Gauss-Verfahrens allzu blauäugig programmiert undes dabei bewenden läßt. Wenn vorhanden sollte man auf seriöse professionelle Software zugreifen.Ein möglicher Kompromiß zwischen Aufwand und Genauigkeit des Resultats besteht darin, daß das Pro-gramm das Problem nur minimal aufbereitet und versucht, es nur mit z. B. Spaltenpivotisierung zu lösen.Dabei achtet es auf mögliche Probleme (sehr klein werdende Pivotelemente ...). Treten sie nicht auf, so istalles in Ordnung und es liefert schnell und effektiv eine akzeptabel gute Lösung. Gibt es aber Schwierigkeiten,so kehrt es zum Ausgangsproblem zurück und rechnet sorgfältiger. Reicht das nicht aus, so wird noch mehrzugeschaltet: Skalierungen, Pivotwahl, höhere Stellenzahl ..., bis das Programm entweder eine brauchbareLösung findet oder feststellt, daß zu diesem System keine angebbar ist.Bei diesem Problem bewährt sich die sogenannte Intervallarithmetik. Ihre Idee besteht darin, für jeden Wertzwei Zahlen anzugeben: eine untere und eine obere Grenze. Das kann bereits mit den Eingabewerten gesche-hen, wenn es sich um Meßfehler mit einer gewissen Fehlerschranke handelt. Sind sie exakt, so sind beideZahlen gleich. Allgemein wird ein Wert also durch ein Intervall repräsentiert, in dem er mit Sicherheit liegt.Addiert man zwei Größen, so werden dabei die beiden oberen Grenzen addiert und entsprechend die beidenunteren. Im ersten Fall wird dabei nur nach oben gerundet, im zweiten nach unten. Bei der Subtraktion wirdvon der oberen Grenze des einen Werts die untere des anderen abgezogen, usw.. Multiplikation und Divisionerfordern Vorzeichenbetrachtungen. Geteilt werden darf nicht, wenn das Nennerintervall die Null enthält.Es gibt spezielle Software, die all diese Operationen automatisch ausführt. Man programmiert nach wie vora:=b+c, intern stehen aber für jede Größe Zahlenpaare und die Addition ist der geschilderte komplexe Vor-gang.Löst man nun ein Gleichungssystem mit Hilfe dieser Intervallarithmetik, so bekommt man eine Reihe ex-akter und sicherer Aussagen von z. B. der Form x1 = [6.11456, 6.12072] - zwei Grenzen, zwischen denendie Lösung liegen muß. Diese Grenzen bestimmen sich aus denen der Eingangsdaten (Matrixkoeffizientenund rechte Seiten) und den in der Rechnung gemachten Rundungsfehlern. - Bei einer Antwort der Formx1 = [2.887415, 19.50023] weiß man, daß von diesem System nichts Gutes zu erwarten ist.Intervallarithmetik läßt sich natürlich auch zur Lösung anderer Probleme einsetzen. Ihr Nachteil ist, daß sieden Aufwand bei der Erfassung der Eingabedaten verdoppelt, den doppelten Speicherplatz für die Datenbenötigt und ein Mehrfaches an Rechenzeit in Anspruch nimmt (verglichen mit der klassischen Rechenweise).Und sie nützt demjenigen Computernutzer nichts, dessen gekaufte Software keine beinhaltet.

Mit Hilfe der sogenannten Nachiteration kann man oft das Resultat bei der Lösung eines linearen Gleichungs-systems noch verbessern:Angenommen, man hat einen Lösungsvektor x des Systems Ax = b gefunden, der aber durch Rundungsfehlerverfälscht ist. Er weicht vom richtigen Lösungsvektor x∗ um einen Vektor ε ab: x = x∗+ ε. Setzt man ihn indas System ein, so erhält man statt der rechten Seite b einen Vektor b+ δ. Nun ist wegen Ax∗ = b

Ax = A(x∗ + ε) = Ax∗ +Aε = b+ δ =⇒ Aε = δ

Wenn man ε kennt, so kann man diesen Vektor von x abziehen und damit x∗ erhalten. - Nun ist allerdingsδ problemlos bestimmbar und ε findet man als Lösung des Systems Aε = δ.Das bedeutet allerdings, ein fast identisches Gleichungssystem ein zweites Mal zu lösen.Natürlich entsehen bei dessen Lösung neue Rundungsfehler. Da aber die neue rechte Seite δ sicher wesentlichkleiner ist als b: |δ| << |b| (ansonsten wäre die Rechnung sinnlos, weil die Rundungsfehler größer ausfallenals die Werte) sind auch die Fehler in ε jetzt viel kleiner als in x und man erhält eine deutliche Verbesserung.Diesen Schritt kann man ggfs. nochmals wiederholen, bis x∗ zufriedenstellend genau bestimmt ist.

58

Page 59: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Überbestimmte Systeme

Wenn mehr Gleichungen als Unbekannte gegeben sind, so kann das Gleichungssystem durchaus lösbar sein15,in den meisten Fällen ist es aber unlösbar. Das muß aber nicht bedeuten, daß dieses System sinnlos ist.Beispiel: An einem Teil mißt man zwei in einer Linie hintereinander liegende Teilstrecken zu 72.6mm und105.3mm, für die Gesamtstrecke erhält man 177.7mm. - Das paßt nicht zusammen. Wenn man keine genaue-ren Messungen mehr machen kann, so steht man vor dem Problem, diese Werte vernünftig zu interpretieren.War keine der drei Messungen besonders verdächtig, so besteht kein Grund, einen der Werte auszuschließen.Die Information kann man so darstellen: Gesucht sind Streckenlängen x1 und x2, die den folgenden dreiGleichungen genügen:

x1 = 72.6 , x2 = 105.3 , x1 + x2 = 177.7 .

Ein möglicher Ausweg besteht darin, den Begriff der Lösung eines Systems abzuschwächen und zu verallge-meinern. Ideal wäre also ein Vektor x, mit dem Ax = b erfüllt würde. Wenn das nicht zu erreichen ist, sosetzen wir beliebige Vektoren x ein und erhalten statt b einen Vektor u(x) : Ax = u(x) . Der Begriff derverallgemeinerten Lösung geht nun von der Idee aus, dasjenige xv unter allen x auszuwählen, für das die zu-gehörige rechte Seite u dem vorgegebenen b möglichst nahe kommt. Dazu benutzen wir die Abstandsfunktion%(x, y) = |x− y|, die sich als die Länge der Differenz zweier Vektoren ergibt:

xv : %(Axv, b) = |Axv − b| ≤ |Ax− b| = %(Ax, b) ∀x .

Auf das obige Beispiel angewandt: Gesucht werden Werte x1, x2 derart, daß der Ausdruck√(x1 − 72.6)2 + (x2 − 105.3)2 + (x1 + x2 − 177.7)2

möglichst klein wird. Bestenfalls wird er Null. Im konkreten Fall schafft er das aber nie, da dazu alle dreiQuadrate Null werden müßten, für die vorliegenden Werte geht das aber für höchstens zwei von ihnen unddafür muß nicht einmal die Summe ihren kleinsten Wert annehmen.Es ist einleuchtend und kann auch direkt bewiesen werden, daß eine solche verallgemeinerte Lösung stetsexistiert. Sie muß nicht eindeutig bestimmt sein. Mit ihr befindet man sich auch nicht im Widerspruch zurLösung im bisherigen Sinne. Wenn eine Lösung x existiert, die die Gleichung exakt erfüllt: Ax = b, so ist siegleichzeitig eine verallgemeinerte Lösung, denn die zu ihr gehörende rechte Seite ist b selbst und das hat zub den nicht mehr zu unterbietenden Abstand Null.Da nun die Existenz kein Problem mehr ist bleibt die Frage, wie dieses xv gefunden werden kann. Ziel istes, diesen Vektor so zu bestimmen, daß die Länge |Axv − b| möglichst gering wird. Das ist äquivalent zuder bequemeren Forderung, daß das Quadrat dieser Länge minimal werden soll. Das Quadrat der Länge desVektors y ergibt sich bekanntlich zu |y|2 = yT y .Nehmen wir für einen Moment an, wir hätten dieses xv schon gefunden, und verwenden wir statt seiner denabweichenden Vektor xλ = xv + λw mit einem reellen Parameter λ und irgendeinem Vektor w. Dieses whalten wir fest und variieren das λ, dann ist das Quadrat des Abstandes von Axλ zu b eine Funktion von λ:

F (λ) = |Axλ − b|2 = (Axλ − b)T (Axλ − b) = ((Axλ)T − bT )(Axλ − b) = (xTλAT − bT )(Axλ − b) =

= xTλATAxλ−xTλAT b− bTAxλ− bT b = (xv +λw)TATA(xv +λw)− (xv +λw)TAT b− bTA(xv +λw)− bT b =

= xTv ATAxv + λxTv A

TAw + λwTATAxv + λ2wTATAw − xTv AT b− λwTAT b− bTAxv − λbTAw − bT b .Hieraus erkennt man, daß F (λ) in Wirklichkeit ein quadratisches Polynom in λ ist. Wir sortieren seineKoeffizienten, wobei wir uns aber mit dem Absolutglied keine Mühe machen und es einfach mit c bezeichnen:

F (λ) = (wTATAw)λ2 + [xTv ATAw + wTATAxv − wTAT b− bTAw]λ+ c .

Besonders interessiert uns der Faktor vor dem linearen Term. Eine Zahl entspricht einer 1 × 1 - Matrixund dieses Objekt ändert sich nicht beim Transponieren. Für dimensionsmäßig geeignete, aber ansonstenbeliebige Vektoren x, y und Matrizen B gilt

xTBy = (xTBy)T = yTBTx .

Damit wird nun

xTv ATAw + wTATAxv − wTAT b− bTAw = 2[wTATAxv − wTAT b] = 2wT (ATAxv −AT b) ,

15Typisches Beispiel: Stromstärkeberechnung in einem verzweigten Stromkreis. Nutzt man alle Konturen und Knoten, soerhält man leicht wesentlich mehr Gleichungen als Unbekannte. Trotzdem ist dieses System eindeutig lösbar.

59

Page 60: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

und die Forderung, daß xλ bei λ = 0 den optimalen Vektor xv ergeben soll, bringt mit sich, daß diequadratische Funktion F (λ) bei λ = 0 ein Minimum haben soll. Das Minimum bedeutet bei einer quadra-tischen Funktion bekanntlich den Scheitelpunkt und wenn dessen Abszisse Null sein soll, so verlangt diesdas Fehlen des linearen Terms. Mithin ist xv die verallgemeinerte Lösung, wenn wT (ATAxv − AT b) = 0gilt. Der Vektor w war beliebig, diese Bedingung muß also für jeden Vektor w erfüllt sein. Demzufolge sollATAxv − AT b zu allen Vektoren w orthogonal sein und der einzige Vektor, der ein solches Kunststückfertigbringt, ist der Nullvektor: ATAxv −AT b = Θ .Stellt man diese Gleichung um, so gelangt man zur sogenannten Gaussschen Normalgleichung

ATAxv = AT b .

Bei a : m × n, m > n, ist ATA : n × n eine quadratische Matrix und AT b ist ein genau n-dimensionalerVektor. Es resultiert also ein System von n Gleichungen mit n Unbekannten.

Beispiel: Kehren wir zurück zum obigen Exempel. In Matrixschreibweise hat man das System

Ax =

1 00 11 1

( x1

x2

)=

72.6105.3177.7

= b =⇒

ATAxv =(

1 0 11 0 1

) 1 00 11 1

( xv,1xv,2

)=(

1 0 10 1 1

) 72.6105.3177.7

= AT b =⇒

(2 11 2

)(xv,1xv,2

)=(

250.3283.0

).

Dieses letzte System wird gelöst:

2 1 250.31 2 283.01 0.5 125.150 1.5 157.850 1 105.233

Mit der Rückrechnung erhält man noch xv,1 = 72.533 . Nach dem Runden auf eine der ursprünglichen Meß-genauigkeit angepaßten Exaktheit wird xv,1 = 72.5 und xv,2 = 105.2. Die Methode hat also etwas zwischenden drei Messungen vermittelt.Die Berechnung der Matrix ATA kann effektiv durchgeführt werden, wenn man berücksichtigt, daß(ATA)T = AT (AT )T = ATA gilt. Diese Matrix ist also symmetrisch und es reicht demzufolge aus, dieElemente auf der Hauptdiagonale und beispielsweise darüber zu berechnen, die restlichen ergeben sich danndurch die Symmetrie.Die Matrix ATA ist nicht nur symmetrisch, sondern auch i. a. positiv definit (allgemein: nichtnegativ definit).Das bedeutet, daß für jeden Vektor x passender Größe das Skalarprodukt xTATAx nichtnegativ ist. FürGleichungssysteme mit derartigen Matrizen gibt es günstigere Lösungsverfahren als das universelle Gauss-Verfahren, das weder diese Eigenschaft16 noch die Symmetrie ausnutzt. Professionelle Software sollte daraufzurückgreifen.

Eine Besonderheit der verallgemeinerten Lösung sei erwähnt: Bei einem klassischen Gleichungssystem ändertsich Lösungsverhalten und Lösung nicht, wenn man Gleichungen mit von Null verschiedenen Faktoren mul-tipliziert. Hier dagegen hat dies eine Wirkung: Multiplizieren wir probehalber im als Beispiel betrachtetenSystem die erste Gleichung mit 10, so wird

10x1 = 726 , x2 = 105.3 , x1 + x2 = 177.7 .

Die Rechnung ist

Ax =

10 00 11 1

( x1

x2

)=

726105.3177.7

= b =⇒

16Der Begriff der Definitheit ist nur für symmetrische (allgemeiner: hermitesche) Matrizen sinnvoll.

60

Page 61: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

ATAxv =(

10 0 11 0 1

) 10 00 11 1

( xv,1xv,2

)=(

10 0 10 1 1

) 726105.3177.7

= AT b =⇒

(101 11 2

)(xv,1xv,2

)=(

7437.7283.0

)=⇒ x1 = 72.5990, x2 = 105.2005, x1 + x2 = 177.7995 .

Der Wert von x1 wird damit wesentlich nach der ersten Messung eingestellt, die anderen beiden Werte wer-den wesentlich schwächer berücksichtigt. Die erste Gleichung ist durch diesen Faktor 10 stärker gewichtetworden als die anderen beiden. Die Quadrate der Abweichungen in den drei Gleichungen liegen wieder invergleichbaren Größenordnungen, die Ausgangsgleichung (1) wird dann aber recht genau erfüllt.Durch solche Wichtungsfaktoren kann man Meßwerte verschiedener Bedeutung gegeneinander abwägen. Hatman z. B. zwei Meßreihen für gewisse Werte gewonnen, wobei die Messungen der zweiten Reihe nach einemprinzipiell weniger genauen Verfahren erfolgten, weswegen man die Resultate hauptsächlich aus den Wertender ersten Reihe berechnen will und die der zweiten nur geringer beachten möchte, so kann man die entspre-chenden identischen Gleichungen aufstellen und die ersten mit Faktoren > 1 multiplizieren (oder die zweitenmit positiven Faktoren kleiner als 1). (Ein Faktor Null würde eine Gleichung überhaupt aus dem Systemwerfen.)Soll eine Gleichung praktisch exakt erfüllt werden, so übernehme man sie mit einem großen Wichtungsfaktorin das System.Schlußfolgerung: Bei Systemen von Gleichungen verschiedener Herkunft (vgl. das Beispiel zum verzweigtenStromkreis auf Seite 57) muß unbedingt sinnvoll skaliert werden.

Was ist zu machen, wenn das System einige Gleichungen enthält, die im Unterschied zu den restlichen nichtnur näherungsweise, sondern exakt erfüllt werden müssen und wenn man nicht den Kompromiß mit derbetonten Wichtung dieser Gleichungen wählen will?Diese p Gleichungen des Systems Ax = b werden als erste geschrieben. (Die Reihenfolge der Gleichungen imSystem ist im Prinzip bedeutungslos.)Aus den oberen p Zeilen der Matrix A : m× n wählt man p Spalten aus, die eine reguläre Matrix P bildenund tauscht diese ggfs. nach vorn (was nur eine unwesentliche Änderung der Reihenfolge der Unbekanntenbedeutet).Nun nennen wir die zugehörigen ersten p Unbekannten y1 bis yp und die restlichen z1 bis zn−p.Die ersten p Komponenten des Vektors b der rechten Seite mögen den Vektor c bilden, die verbleibendenm− p den Vektor d.

Beispiel:

2x1 − 2x2 + x3 + 3x4 + x5 = 5 , 2x1 − 2x2 + 5x4 − 7x6 = 3 ,

2x1 − x2 − x3 + 3x4 + x5 = 8 , x1 + 2x2 − 6x3 − x4 + 5x5 = −1 ,

6x1 − 3x4 + 4x5 = 0 , x1 − 7x2 − 3x3 = 11 .

Die beiden eingerahmten Gleichungen mögen exakt gelten, der Rest möglichst gut.Die ersten beiden Spalten der ersten beiden Zeilen Systemmatrix ergeben die Determinante∣∣∣∣ 2 −2

2 −2

∣∣∣∣ = 0 ,

die zugehörige Matrix ist folglich singulär und ungeeignet. Nehmen wir statt dessen die erste und dritteSpalte ∣∣∣∣ 2 1

2 0

∣∣∣∣ = −2 6= 0 .

Die dritte Spalte wird deshalb mit der zweiten getauscht. In Matrixschreibweise resultiert das System (manbeachte den Tausch im Vektor x !)

2 1 −2 3 12 0 −2 5 −72 −1 −1 3 11 −6 2 −1 56 0 0 −3 41 −3 −7 0 0

x1

x3

x2

x4

x5

=

538−10−11

.

61

Page 62: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

.....................................

..................................

.................

Die (neue) Matrix A wird entlang den punktierten Linien in vier Blöcke p,Q,R und S aufgespalten. Esentsteht eine Blockmatrix, also eine Matrix, deren vier Elemente wiederum Matrizen sind:

A =(P QR S

)mit

P =(

2 12 0

), Q =

(−2 3 1−2 5 −7

), R =

2 −11 −66 01 −3

, S =

−1 3 1

2 −1 50 −3 4−7 0 0

.

Sei nun y = (x1, x3)T und z = (x2, x4, x5)T , ferner c = (5, 3)T und d = (8,−1, 0,−11)T .Dann gilt exakt Py +Qz = c. Hieraus folgt y in Abhängigkeit von z:

Py = c−Qz =⇒ P−1Py = P−1(c−Qz) =⇒ y = P−1c− P−1Qz .

Dabei wurde ausgenutzt, daß P regulär ist.Diese Beziehung wird in die restlichen Gleichungen eingesetzt, die nur noch möglichst gut erfüllt werdensollen (und können):

Ry + Sz = d =⇒ R(P−1c− P−1Qz) + Sz = d =⇒ Sz −RP−1Qz = d−RP−1c .

Für das resultierende überbestimmte lineare Gleichungssystem (S − RP−1Q)z = d − RP−1c wird dieGausssche Normalgleichung aufgestellt

(S −RP−1Q)T (S −RP−1Q)z = (S −RP−1Q)T (d−RP−1c)

und gelöst.Im vorliegenden Beispiel sind das vier Gleichungen für die drei Unbekannten des Vektors z, also x2, x4

und x5 in den ursprünglichen Größen. Diese können also damit berechnet werden und aus der eindeutigenDarstellung y = P−1c− P−1Qz bestimmen sich dann x1 und x3 so, daß die ersten beiden Gleichungen desAusgangssystems exakt erfüllt werden.Anmerkung: Die verallgemeinerte Lösung des Systems Ax = b wurde aus der Forderung bestimmt, daß die’Länge’ des Vektors |Ax− b| möglichst klein werde. (Genauer: deren Quadrat.)

|Ax− b|2 =m∑i=1

n∑j=1

aijxj

− bi2

= F (x1, x2, . . . , xn)

Die Statistik lehrt, daß bei normalverteilten Abweichungen der Eingangswerte von ihrem Idealwert auf dieseWeise mit der verallgemeinerten Lösung die in einem gewissen Sinne vernünftigste Lösung ermittelt wird(ganz grob gesprochen). Es ist allgemein üblich, Meßwerte u. ä. als mit normalverteilten Fehlern behafteteGrößen anzusehen. Das geschieht oft genug aus dem einfachen Grund, daß man nichts Genaues über dietatsächliche Fehlerverteilung weiß und mit vertretbarem Aufwand in Erfahrung bringen kann und deshalbdie Normalverteilung postuliert. Man muß das ja nicht dazusagen und tatsächlich wird es einem auch zumeistwiderspruchslos abgenommen.Obendrein hat diese Wahl noch einen praktischen Vorteil, der in der Regel unerwähnt bleibt. Dieser Ausdruckist die Zielfunktion einer Optimierungsaufgabe und ihr Extremum kann ermittelt werden, indem man sie nachden Unbekannten xk differenziert und die Ableitungen gleich Null setzt:

∂F

∂xk(x1, x2, . . . , xn) = 0 , k = 1, 2, . . . , n .

Es resultieren die Gaußschen Normalgleichungen. Das ist ein anderer Weg ihrer Herleitung.Nun können allerdings auch andere Forderung an den Vektor z = Ax − b gestellt werden, um ihn in ir-gendeinem Sinne klein zu machen. Beispielsweise könnte man fordern, daß seine betragsgrößte Komponentemöglichst nahe bei Null liegen soll. Die anderen Komponenten tun das dann auch. - Die vorige Forderungging, arg vereinfacht gesprochen, in die Richtung, daß der Mittelwert der |zi| möglichst klein werde. Das istvernünftig, aber manchmal ist die andere Forderung wichtiger. Wenn man einen Lkw mit einer Kiste (Höhe

62

Page 63: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

insgesamt 4,40m) auf die Reise schickt, so hilft es wenig zu wissen, daß die lichte Höhe unter den Brückenauf seiner Strecke im Mittel 4,60m beträgt.Eine andere Bewertungsmöglichkeit ist die mit der Summe der Abweichungsbeträge: |z1| + |z2| + ... + |zn|.Dabei werden die Beiträge aller Abweichungen in gleicher Weise berücksichtigt. Bei der Bewertung mit derSumme der Quadrate haben die betragsgrößeren Werte zi einen besonders großen Einfluß auf das Resultatund für die Kennziffer max1≤k≤n (|zk|) spielt nur der (die) betragsgrößte(n) Wert(e) eine Rolle. Es kann sein,daß die zwei neu definierten Kriterien der konkreten Situation besser entsprechen als das mit der Summe derQuadrate. Allerdings ist die Rechnung mit ihnen sehr viel schwieriger. Man kann die entstandene Zielfunktionnicht mehr differenzieren und die Ableitungen gleich Null setzen. Die Gaußschen Normalgleichungen werdenalso üblicherweise gewählt, denn sie sind a) (zumeist) statistisch vernünftig und b) einfach zu rechnen.

Schwach besetzte Systeme... So bestehen wir selbst zu mehr als die Hälfte unseres Körpergewichts aus Wasser, und es gibt z. B.Meeresalgen oder Quallen, die mehr als 96% Wasser enthalten. Es ist gewiß überaus bemerkenswert,daß solche Organismen nicht nur ihre Form erhalten können, sondern dazu noch sich bewegen,schwimmen, fressen, lieben können - und das alles mit 96% Wasser im Leibe!

Wolfgang Ostwald, Die Welt der vernachlässigten Dimensionen

Stellen wir uns ein umfangreiches elektrisches Netz vor, auf dessen Maschen die Ströme berechnet werdensollen. Es seien n Unbekannte Ij gesucht, wobei n ein recht großer Wert ist. Jede Kontur bestehe aus maximalsechs Maschen und in keinen Knoten kommen mehr als fünf Leitungen zusammen.Das Netz wird durch ein lineares Gleichungssystem modelliert. Dabei tauchen aber in jeder Gleichung nurmaximal fünf bzw. sechs Unbekannte auf. Die restlichen gehen mit den Vorfaktoren Null ein.Reduziert man das System auf n wesentliche Gleichungen, so hat seine Matrix also n2 Elemente. Auf Grunddieser Spezifik sind darin aber nur 5n . . . 6n Elemente von Null verschieden. Bei n = 100 sind das etwa 5.5%und die Matrix besteht zu etwa 94.5% aus Wasser ... pardon, Nullen.Ein noch drastischeres Beispiel: Es wird ein räumliches Feld betrachtet. Der Einfachheit halber sei dasVolumen, in dem es vorliegt, würfelförmig und die Feldgröße skalar (z. B. ein Druck, eine Temperatur odereine Dichte). Der Würfel, dessen Kanten parallel zu den Koordinatenachsen seien, eine Ecke im Ursprung,wird in jede Richtung in n gleichlange Abschnitte der Länge h geteilt. Es entstehen die Punkte xi = ih, yj =jh und zk = kh.Für die Feldgröße u(x, y, z) gelte z. B. die partielle Differentialgleichung ∆u = 0 mit dem Laplace-Operator∆u = uxx + uyy + uzz - der Summe der zweiten partiellen Ableitungen. Auf der Oberfläche des Würfels seidie Funktion vorgegeben.Für die Punkte (xi, yj , zj) wird ein Näherungswert uijk zum Funktionswert u(xi, yj , zj) gesucht. Auf derOberfläche des Würfels wird der gegebene Wert verwendet. In jedem ’inneren’ Punkt wird die Summe derzweiten partiellen Ableitungen durch ihre Näherung ersetzt:

ui+1,jk − 2uijk + ui−1,jk

h2 +ui,j+1,k − 2uijk + ui,j−1,k

h2 +uij,k+1 − 2uijk + uij,k−1

h2 = 0 .

Es gibt in jeder Richtung n− 1 innere Punkte. Insgesamt entstehen also (n− 1)3 derartige lineare Gleichun-gen. Das ist ein sinnvolles System, das tatsächlich zur Berechnung dieses Feldes genutzt werden kann. Diemeisten Gleichungen sind homogen, aber nicht alle, denn in den oberflächennahen Schichten gehen Werteein, die auf dieser liegen, also bekannt sind. Berechnet werden nur die (n− 1)3 inneren Werte.Jede Gleichung enthält maximal sieben Unbekannte. Eine, zwei oder drei davon können auf der Oberflächeliegen, so daß sich diese Zahl entsprechend verringert.Angenommen, man hat mit n = 101 unterteilt - was keine unreal große Zahl ist - so hat man also 106

Gleichungen mit ebenso vielen Unbekannten. Nehmen wir eine Zahl mit 6 Byte an, so braucht man zurDarstellung des (inneren) Feldes etwa 6 Megabyte.Versucht man nun, das System in der üblichen Weise zu behandeln: 1.) Berechnen und Abspeichern derMatrix und der rechten Seite, 2.) Lösen mit dem Gauss-Verfahren, ... so benötigt man zur Speicherung derkompletten Matrix 1012 Zahlen oder rund 6 Terabyte.In jeder Matrixzeile gibt es maximal 7 von Null verschiede Zahlen. Speichert man nur diese, so spart manmindestens 99.999993% des Speicherplatzes und kommt mit etwa 42 Megabyte aus.Solche Matrizen, die nur relativ wenige von Null verschiedene Elemente enthalten, nennt man ’schwach be-setzt’ (engl.:’sparse matrices’), die Systeme analog ebenfalls ’schwach besetzt’. Sie enthalten typischerweisehunderte bis Millionen Unbekannte. Eine Abspeicherung der kompletten Matrix wäre uneffektiv bis unmög-lich.

63

Page 64: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Je nach Herkunft des Systems gibt es für solche Gleichungssysteme spezielle Lösungsverfahren. Die Feld-berechnung kann z. B. durch ein geeignetes Iterationsverfahren (vgl. nächsten Punkt) erfolgen, wobei dasGleichungssystem nicht einmal explizit aufgestellt werden muß. Auf diese ausgeklügelten Methoden kannhier nicht näher eingegangen werden. Es sollte nur das Problem dargelegt werden.Will man ein solches schwach besetztes System mit einem universellen Lösungsverfahren behandeln (was,wie gesagt, in den meisten Fällen unsachgemäß ist), so muß man dieses wenigstens geeignet programmieren.Die simpelste Variante besteht nun darin, die von Null verschiedenen Elemente der Matrix und alle rechtenSeiten in zwei fortlaufenden linearen Feldern (Vektoren) zu speichern - den Wert in einem und seinen Spal-tenindex im zweiten.Wenn die ersten zwei Gleichungen eines Systems mit n = 266 Unbekannten die Form

2x1 − 7x16 + 3x71 + x148 = 0 , 6x1 + 3x2 − 4x9 + x207 = −7

haben, so kann man dies also komprimieren zu

2 -7 3 1 0 6 3 -4 1 -7 ...1 16 71 148 267 1 2 9 207 267 ... ,

wobei die rechten Seiten den Spaltenindex n+ 1 = 267 erhalten haben. Das ist natürlich, denn sie werden inden Formeln der Hinrechnung wie die Matrixemente behandelt, nur als Pivotelemente dürfen sie nicht dienen.Das Auftreten einer Spaltennummer 267 ist gleichzeitig das Zeichen, daß dahinter die nächste Matrixzeilebeginnt. Rechte Seiten werden immer gespeichert, auch wenn sie Null sind.Wird im Rahmen der Hinrechnung die erste Zeile dreimal von der zweiten subtrahiert, so entsteht dieGleichung

3x2 − 4x9 + 21x16 − 9x71 − 3x148 + x207 = −7 oder. . . 3 −4 21 −9 −3 +1 −7 . . .. . . 2 9 16 71 148 207 267 . . .

.

Damit kann man das Gauss-Verfahren wie gehabt ablaufen lassen. Die Programmierung unterscheidet sichallerdings beträchtlich.Die beiden Ausgangszeilen hatten je vier Elemente pro Zeile, die neue hat sechs. Dies ist eine unschöneErscheinung. Dieses sogenannte ’fill in’ muß nach Möglichkeit vermieden werden, da dadurch die Anzahl derNicht-Null-Elemente in der Restmatrix geradezu explosionsartig wächst. Das geschieht hauptsächlich durchsorgfältige Pivotwahl, wobei jetzt noch weitere Gesichtspunkte beachtet werden müssen. Ohne zusätzlicheTheorie ist dabei wenig zu erreichen.

Iterative Lösungsverfahren

... Dafür forderte S. Woolf 60 Prozent vom Reingewinn. Die Company wußte recht gut, daßdas Syndikat ”hard up” war und bot 30 Prozent. S. Woolf aber schwor, daß er sich eherlebendig einmauern lasse, als auf die Schamlosigkeit einzugehen. Er wandte sich sofort andie ”American Smelters”, und die Pittsburg Co. kam zurück und bot 40 Prozent.Woolf ging auf 50 Prozent herab und drohte, daß das Syndikat in Zukunft überhaupt keineHandvoll Erz mehr fördern werde;... Endlich einigte man sich um 46 1

3Prozent. Um das

letzte Drittel kämpfte S. Woolf wie ein Massaikrieger...

B. Kellermann, Der Tunnel

Für Systeme speziellen Typs können Verfahren, deren Idee wesentlich von der des Gauss - Verfahrens ab-weicht, einfacher oder effektiver sein. Dazu gehören iterative Verfahren.Dabei kann man aber nicht hoffen, ein universelles Verfahren zu erhalten. Eine mögliche Anwendungssitua-tion ergibt sich im folgenden Fall:Angenommen, der Ausdruck in jeder Gleichung des linearen Systems von n Gleichungen mit n Unbekanntenhängt stark von einer Variablen ab und kaum von den anderen (jede Gleichung von einer anderen Varia-blen). Da man die Gleichungen beliebig numerieren kann, so gehen wir davon aus, daß die k- te Gleichungdie Unbekannte xk als wesentliche Einflußgröße enthält. ”Wesentlicher Einfluß” bedeutet in erster Linie, daßdiese Unbekannte einen von Null verschiedenen Koeffizienten aufweist - sonst wäre sie völlig bedeutungslos.Nehmen wir weiter an, daß man aus der Problemkenntnis die ungefähr zu erwartenden Resultate näherungs-weise schätzen kann. Diese Zahlen ergeben den sogenannten Startvektor x(0) = (x(0)

1 , x(0)2 , . . . , x

(0)n )T . Die

erste Gleichung können wir - da a11 nach Voraussetzung von Null verschieden ist - nach x1 auflösen:

x1 =1a11

(b1 − a12x2 − a13x3 − . . . a1nxn) .

64

Page 65: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Nun wird ausgenutzt, daß der Einfluß von x2, x3, . . . , xn gering ist. Wenn man also statt der vorläufigunbekannten Werte für die rechts stehenden n − 1 Unbekannten ihre Schätzwerte aus dem Startvektoreinsetzt, so erhält man aus obiger Beziehung ein x1, das der Wahrheit vielleicht näherkommt, als das nurvermutete x(0)

1 . Nennen wir den so berechneten Wert x(1)1 und heben wir ihn auf. Analog löst man die zweite

Gleichung nach x2 auf:

x2 =1a22

(b2 − a21x1 − a23x3 − . . . a2nxn) .

Unter Verwendung der Werte aus dem Startvektor, also von x(0)1 , x

(0)3 , x

(0)4 , . . . , x

(0)n , wird x

(0)2 zu x

(1)2 ver-

bessert und so geht es weiter mit allen Unbekannten. Das Verfahren wird an einem Beispiel erläutert:Gleichungssystem:

9x1 − x2 + 2x3 = 13 , x1 − 8x2 − x3 = −18 , 2x1 + x2 + 12x3 = 40 .

Das System ist so konstruiert, daß es die Lösungen x1 = 1, x2 = 2 und x3 = 3 hat. Das ”vergessen” wirwieder und schätzen alle Lösungen mit x(0)

k = 1 , k = 1, 2, 3,. Hieraus folgt

x(1)1 =

19

(13 + x(0)2 − 2x(0)

3 ) =19

(13 + 1− 2) =129

= 1.3333 ,

x(1)2 =

1−8

(−18− x(0)1 + x

(0)3 ) =

1−8

(−18− 1 + 1) =−18−8

= 2.2500 ,

x(1)3 =

112

(40− 2x(0)1 − x

(0)2 ) =

112

(40− 2 · 1− 1) =3712

= 3.0833 .

Wiederholung der Rechnung zeichnet das Iterationsverfahren aus. Mit den soeben berechneten Zahlen wirdalles erneut durchgerechnet, um die Näherungswerte weiter zu verbessern:

x(2)1 =

19

(13 + x(1)2 − 2x(1)

3 ) =19

(13 + 2.2500− 2 · 3.0833) =9.0834

9= 1.0093 .

In derselben Weise wie oben folgt x(2)2 = 2.0313 und x

(2)3 = 2.9236. Weiterhin werde nur noch die erste

Unbekannte in ihrer Entwicklung betrachtet:

x(3)1 = 1.0204 , x

(4)1 = 1.0021 , x

(5)1 = 1.0013 , x

(6)1 = 1.0002 , x

(7)1 = 1.0001 , x

(8)1 = 1.0000 ,

und im Rahmen einer vierstelligen Rechnung ändert sich diese Zahl nicht mehr. Wir akzeptieren sie also alsLösung und dürfen uns nun auch wieder daran erinnern, daß dies ja tatsächlich zutrifft.1. Bemerkung: Die Vorteile der Methode dürften offenbar sein: Die Idee und die nötigen Formeln sind leichtzu begreifen und zu merken und die Rechenvorschrift erfordert etwas Fleiß und macht sonst keine Schwie-rigkeiten. Heutzutage rechnet man so etwas kaum per Hand und dieser Algorithmus ist wesentlich einfacherzu programmieren als das Gauss - Verfahren.2. Bemerkung: Was soeben beschrieben wurde ist nur eines der möglichen Iterationsverfahren. Vielfalt erfor-dert sprachliche Separation und so soll diese Methode den Namen Gesamtschrittverfahren tragen, denn manberechnet in einem Schritt die Gesamtheit der Unbekannten neu, bevor man den nächsten Zyklus startet.Eine naheliegenden Idee läßt eine bessere Variante des Verfahrens vermuten: Warum soll man eigentlich denneuberechneten Wert x(1)

1 bis zur nächsten Runde brachliegen lassen? Statt dessen dürfte es günstig sein,diese Zahl gleich bei der Ermittlung von x(1)

2 zu benutzen:

x(2)2 =

1a22

(b2 − a21x(1)1 − a23x

(0)3 − . . . a2nx

(0)n ) .

Ebenso wird auch weiterhin verfahren. Jedes Resultat jeder einzelnen Rechnung wird sofort weiter benutzt.Diese Variante trägt den Namen Einzelschrittverfahren. Sie ist in der Regel tatsächlich besser, d.h. mankommt mit weniger Rechschritten als im Gesamtschrittverfahren in dieselbe Nähe der exakten Lösung. Aufdas vorige Beispiel angewandt erhält man mit dieser Methode nacheinander die Werte:

x(1)1 = 1.3333 , x

(2)1 = 1.0502 , x

(3)1 = 1.0040 , x

(4)6 = 1.0004 ,

und die folgenden Werte stimmen auf vier Stellen genau mit der exakten Lösung überein. Allerdings gibt esBeispiele, in denen das Gesamtschrittverfahren günstiger ist, das sind jedoch Ausnahmen. Heutzutage sind

65

Page 66: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

beide Verfahren kaum gebräuchlich. Professionelle Software arbeitet nach ausgeklügelteren Methoden, diesich nicht so kurz darstellen lassen.3. Bemerkung: Kann man über die Anwendbarkeit des Verfahrens etwas konkreteres aussagen als der verwa-schene Begriff ”wesentliche Einflußgröße”? Das geht wirklich. Eine verbindliche Bedingung ist zwar formu-lierbar,17 aber schwer zu überprüfen. Die nachstehende Eigenschaft ist hinreichend. Das mag genügen.Wir nennen die quadratische Matrix A eine Matrix mit dominierender Hauptdiagonale, wenn der absolu-te Betrag des Hauptdiagonalelements in jeder Zeile größer ist als die Summe der absoluten Beträge derrestlichen Matrixelemente in dieser Zeile:

|akk| >∑l 6=k

|akl| ∀k = 1, 2, . . . , n .

Wenn nun die Matrix A des linearen Gleichungssystems Ax = b eine dominierende Hauptdiagonale besitzt,so kann dieses System sowohl mit dem Gesamt- als auch mit dem Einzelschrittverfahren gelöst werden, undzwar unabhängig von der konkreten rechten Seite b und von der Wahl des Startvektors x(0).Hieraus folgt nebenbei, daß die Determinante einer Matrix mit dominierender Hauptdiagonale nicht Null seinkann. Eine solche Matrix ist also regulär, sie besitzt eine Inverse. Übrigens hat ihre Determinante dasselbeVorzeichen wie das Produkt aller Hauptdiagonalelemente.Aus dem Gesagten ergibt sich außerdem, daß ein einzelner Rechenfehler bei der Anwendung der genanntenMethoden keinen Einfluß auf das Endresultat hat, er wird sich automatisch wieder herauskorrigieren. Ebensohaben die Verfahren die Eigenschaft, die Störung durch die beim Rechnen unvermeidlichen Rundungsfehlerfortlaufend zu unterdrücken.Als Anwendungsbeispiel vergleiche man mit dem System auf S. 98.4. Bemerkung: Die Anzahl der zur Erreichung einer gewissen Genauigkeit ε notwendigen Rechenschrittehängt von den folgenden drei Faktoren ab:a) von der geforderten Genauigkeit selbst,b) von der Güte des Startvektors x(0) - er ist zwar im Prinzip beliebig, aber je näher bei der Lösung manstartet, desto weniger braucht man zu verbessern, undc) bei Matrizen A mit dominierender Hauptdiagonale von der Größe

q = max1≤i≤n

1|aii|

∑j 6=i

|aij | < 1

die im günstigen Fall nahe bei Null liegt und im ungünstigen nur wenig kleiner als Eins ist. Das Beispiel amAnfang dieses Punktes war ein solcher günstiger Fall. Dort war

q = max(

1 + 29

,1 + 1

8,

2 + 112

)= max(0.3333, 0.2500, 0.2500) = 0.3333 .

Man kann, grob gesprochen, davon ausgehen, daß sich nach einigen Schritten die Abweichung der jeweiligenKomponente von ihrem exakten Wert pro Schritt auf wenigstens das q-fache der im vorigen Schritt verringert.Im angegebenen Beispiel dürfte sich der Fehler also in jeden Schritt mindestens auf ein Drittel des vorigenreduzieren. Zwei Schritte erbringen damit in etwa eine weitere Kommastelle. Meist ist die Verbesserung sogarschneller als dieses q, es gibt aber eine gewisse Orientierung und ist leicht zu berechnen.Dieser Umstand resultiert (beim Gesamtschrittverfahren) aus der folgenden Überlegung:Die Matrix A habe eine dominierende Hauptdiagonale. Die k-te Gleichung wird nach xk aufgelöst und dasergibt die Iterationsvorschrift:

n∑l=1

aklxl = bk =⇒ xk =

bk −∑l 6=k

aklxl

akk=⇒ x

(i+1)k =

bk −∑l 6=k

aklx(i)l

akk.

Für die gleichen Komponenten zweier aufeinanderfolgender Iterierter gilt dann die Abschätzung

|x(i+1)k − x(i)

k | =

∣∣∣∣∣∣∣∣bk −

∑l 6=k

aklx(i)l

akk−

bk −∑l 6=k

aklx(i−1)l

akk

∣∣∣∣∣∣∣∣ =

∣∣∣∣∣∣∣∣∑l 6=k

akl(x(i−1)l − x(i)

l )

akk

∣∣∣∣∣∣∣∣ ≤17Der Betrag des betragsgrößten Eigenwerts der Matrix D−1A−I muß kleiner als 1 sein; dabei ist A die - hier notwenigerweise

quadratische - Matrix des Systems, D eine Diagonalmatrix mit derselben Hauptdiagonale wie A und I die Einheitsmatrix.

66

Page 67: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

∑l 6=k

|akl| · |x(i−1)l − x(i)

l |

|akk|≤

∑l 6=k

|akl| ·max1≤j≤n|x(i−1)j − x(i)

j |

|akk|=

=

max1≤j≤n|x(i−1)j − x(i)

j | ·∑l 6=k

|akl|

|akk|= q ·max1≤j≤n|x(i−1)

j − x(i)j | .

Das k auf der linken Seite ist ein beliebiger Wert zwischen 1 und n, also gilt diese Abschätzung für alle Paareund folglich auch für das mit der größten Differenz:

max1≤j≤n|x(i+1)j − x(i)

j | = q ·max1≤j≤n|x(i)j − x

(i−1)j | .

Der maximale Betrag zweier gleicher Komponenten zweier aufeinanderfolgender Iterierter ist folglich minde-stens um den Faktor q < 1 kleiner als der maximale Betrag der vorangegangenen Iterierten.Hieraus folgt offenbar sofort die allgemeinere Abschätzung über p Schritte:

max1≤j≤n|x(i+1+p)j − x(i+p)

j | = qp ·max1≤j≤n|x(i)j − x

(i−1)j | .

Hieraus kann man leicht eine Abschätzung gewinnenen, wie weit man noch von der gesuchten Lösung entferntist. Zu diesem Zweck betrachten wir die Differenz zwischen einer Komponente der i-ten Iterierten und dermaximalen der i+m-ten:

|x(i+m)k − x(i)

k | = |(x(i+m)k − x(i+m−1)

k ) + (x(i+m−1)k − x(i+m−2)

k ) + . . .+ (x(i+2)k − x(i+1)

k ) + (x(i+1)k − x(i)

k )| ≤

≤ |x(i+m)k − x(i+m−1)

k |+ |x(i+m−1)k − x(i+m−2)

k |+ . . .+ |x(i+2)k − x(i+1)

k |+ |x(i+1)k − x(i)

k | ≤

≤ (qm−1 + qm−2 + . . .+ q2 + q) ·max1≤j≤n|x(i)j − x

(i−1)j | =

1− qm

1− q· q ·max1≤j≤n|x(i)

j − x(i−1)j | .

Die Abschätzung gilt für alle Werte m, sie bleibt also erhalten, wenn man m gegen Unendlich gehen läßt.Dann konvergiert x(i+m)

k gegen die entsprechende Komponente x∗k der exakten Lösung:18

limm→∞

|x(i+m)k −x(i)

k | = |x∗k−x(i)k | ≤ lim

m→∞

1− qm

1− q·q·max1≤j≤n|x(i)

j −x(i−1)j | =

q

1− q·max1≤j≤n|x(i)

j −x(i−1)j | .

Mit ∣∣∣x∗k − x(i)k

∣∣∣ ≤ q

1− q· max1≤j≤n

∣∣∣x(i)j − x

(i−1)j

∣∣∣ .hat man eine Fehlerabschätzung für das Ganzschrittverfahren.

Angewandt auf das betrachtete Beispiel:Es war x(1) = (1.3333, 2.2500, 3.0833)T und x(2) = (1.0093, 2.0313, 2.9236)T , damit erhält man die Diffe-renzen x(2) − x(1) = (1.3333− 1.0093, 2.2500− 2.0313, 3.0833− 2.9236)T = (0.3240, 0.2187, 0.1597)T .Der Maximalwert ist 0.3240 und das Verhältnis q = 0.3333.Es folgt die Abschätzung ∣∣∣x∗k − x(2)

k

∣∣∣ ≤ 0.33331− 0.3333

· 0.3240 = 0.1620 .

Speziell ist bei k = 1 die Ungleichung |x∗1−x(2)1 | ≤ 0.1620 erfüllt, also gilt −0.1620 ≤ x∗1−x

(2)1 = x∗1−1.0093 ≤

0.1620 oder 0.8473 ≤ x∗1 ≤ 1.1713.Damit hat man bereits in diesem Stadium der Arbeit ein sicheres Intervall, in dem die erste Komponenteder Lösung liegen muß.Vergleicht man im nächsten Schritt nicht x(2) mit x(1), sondern x(3) mit x(2), so wird der Bereich bereitswesentlich kleiner (wenigstens um den Faktor q = 0.3333).Man weiß also stets, wie weit man - höchstens! - von der Lösung entfernt ist, auch ohne diese zu kennen.Zumindest läßt sich diese Abschätzung des Abstandes ohne nennenswerten Aufwand gewinnen.

Fehlerabschätzungen dieser Art nennt man ’a posteriori’,19 da sie eine Aussage im Verlaufe oder nach dererfolgten Rechnung ermöglichen. Um sie zu treffen müssen also zumindest gewisse Resultate vorliegen.

18Die Folge x(i+m)k

ist lt. Abschätzung eine Fundamental- oder Cauchy-Folge, also konvergent. (Ein bißchen Theorie...)19a posteriori - im nachhinein, nachher , a priori - von vornherein

67

Page 68: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Im Unterschied dazu können Fehlerabschätzungen ’a priori’ bereits vor der Rechnung getroffen werden.Sucht man z. B. mit Hilfe der Methode der Intervallhalbierung auf [0.35, 0.38] eine Nullstelle der Funktionf(x), so weiß man, daß man nach 8 Schritten höchstens 2−8 · (0.38− 0.35) = 0.000 117 2 von ihr entfernt ist.Für diese Aussage mußte keinerlei Funktionswert f(x) berechnet werden, ja, es wurde nicht einmal festgelegt,wie diese Funktion eigentlich aussieht.20

5. Bemerkung: Diese Verfahren konvergieren linear und demzufolge kann man zur Verbesserung der Konver-genz das Aitkensche ∆2-Verfahren anwenden. Dies ist speziell dann sinnvoll, wenn der Konvergenzfaktor qnahe bei 1 liegt und demzufolge sehr viele Iterationen nötig sind, um eine akzeptable Genauigkeit zu errei-chen.Bei q = 0.99 bewirken 100 Iterationsschritte eine Verbesserung um den Faktor

0.99100 =(

1 +−1100

)100

≈ e−1 =1

2.718 . . .< 0.4 ,

und damit sind also fast 40% des Fehlers noch vorhanden. (Der genaue Wert: 36.6%)Die Anwendung des Aitkenschen ∆2-Verfahrens geschieht zweckmäßigerweise etwa in der folgenden Weise:Man wartet einige iterierte Vektoren x(k) ab, bis sich das Verfahren auf einen geregelten Verlauf eingestellthat. Dann speichert man einen Vektor x(k) ab. Laut Theorie wäre der Grenzwert aus drei aufeinanderfol-genden Vektoren zu schätzen, praktisch hat man aber oft das Problem, daß sich diese Werte nur minimalunterscheiden, so daß in ihrer Differenz die Rundungsfehler bereits eine wesentliche Rolle spielen. Aber wennman aus einer geometrischen Folge nur jedes m-te Glied herausnimmt, so entsteht wiederum eine geometri-sche Folge mit dem Stufungsfaktor qm, der nun deutlicher von 1 abweicht als q. Also speichert man x(k),x(k+m) und xk+2m mit m=10 oder 20 oder 100 ... und dann schätzt man den Grenzwert in seiner i-tenKomponente zu

xi = x(m)i − (x(k+m)

i − x(m)i )2

x(k+2m)i − 2x(k+m)

i + x(k)i

.

Mit diesem Vektor wird nun wieder das Iterationsverfahren gestartet, um ihn weiter zu verbessern. DasAitkensche ∆2-Verfahren ermöglicht es einem also, eine große Zahl von Iterationsschritten einzusparen undeinen Sprung von relativ schlechten Werten viel näher an die Lösung heran zu machen.Nach einer angemessenen Zahl von Iterationsschritten wird wieder mit dem Aitkenschen ∆2-Verfahrenverbessert und das so oft, bis man mit der Lösung zufrieden ist.Wie ist das m zu wählen? Problemabhängig; nimmt man es zu klein, so schätzt die Methode schlecht, da dieRundungsfehler zu stark eingehen. Bei einem großen Wert von m muß man viele Iterationsschritte machen,bevor man eine - dann allerdings vermutlich fundierte - Schätzung machen kann.6. Bemerkung: Die Grundidee des geschilderten Iterationsverfahrens läßt sich beträchtlich erweitern, dennvon dem Umstand, daß es sich um ein lineares Gleichungssystem handeln soll, wurde im Grundkonzept nichtwesentlich Gebrauch gemacht.Stellen wir uns vor, die i-te Gleichung des Systems könnte in der Form

fi(xi) + Fi(x1, x2, . . . , xn) = 0

geschrieben werden, wobei1.) die Gleichung fi(x1) = ai nach xi aufgelöst werden kann und2.) Fi(x1, x2, . . . , xn) (das durchaus auch xi enthalten kann) ändere sich mit seinen Variablen nur wenig,zumindest wenn sie in der Nähe der Lösung liegen.Dann ist die folgende Vorgehensweise denkbar: Man beschafft sich irgendwie Näherungswerte zur Lösungund berechnet ai = Fi(x1, x2, . . . , xn) aus diesen Schätzwerten. Danach werden die Gleichungen fi(xi) = aigelöst und damit werden die vermuteten Werte korrigiert. Dieses Verfahren wird wiederholt, bis sich dieermittelten Werte stabilisiert haben.Beispiel: Durch zwei parallelgeschalteten Widerstände R1 und R2 fließt insgesamt der Strom I = 4.36A.Durch den Stromfluß erwärmen sie sich und dadurch wachse ihr Widerstandswert. An Widerständen diesesTyps wurde das folgende Strom - Widerstandswert - Verhalten gemessen:

R1(I) = 2.55 + 0.0142I , R2(I) = 5.03 + 0.0094I

20Eulenspiegel wird gefragt, wie weit es bis zum nächsten Ort sei. Er schickt den Fragenden ohne Antwort weg.Als dieser ein Stück entfernt ist ruft er ihm nach: ’In diesem Tempo zwei Stunden.’ - Das war a-posteriori.

68

Page 69: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

(R in Ω, I in A). Für die beiden Teilströme gilt dann

I1 = I − I2 = I − R1

R2I1 =⇒ I1 =

(1 +

R1

R2

)−1

I =R2I

R1 +R1

und analog I2 = R1IR1+R2

. Dabei muß man aber beachten, daß diese Widerstände wiederum von den siedurchfließenden Strömen abhängen, so daß zahlenmäßig folgt:

I1 =(5.03 + 0.0094I1) · 4.36A

(5.03 + 0.0094I1) + (2.55 + 0.0142I2)=

(5.03 + 0.0094I1) · 4.36A7.58 + 0.0094I1 + 0.0142I2

undI2 =

(2.55 + 0.0142I1) · 4.36A7.58 + 0.0094I1 + 0.0142I2

Diese letzte Beziehung kann in eine quadratische Gleichung bezüglich I2 umgewandelt werden. Nach derAuflösung läßt sich damit I2 aus der vorigen eliminieren. Übrig bleibt eine Gleichung für eine Unbekannte,I1. Aber dieser Weg ist recht mühsam. Wesentlich günstiger ist die Anwendung der obigen Überlegung:Die Widerstände verhalten sich, grob gesprochen, wie 2.55:5.03 oder, gerundet, wie 1:2. Teilen wir die 4.36Ades Gesamtstroms in drei Teile, so können wir I1 ≈ 3A und I2 ≈ 1.5A schätzen. Damit konkretisieren wirdie rechten Seiten der beiden Gleichungen und berechnen die beiden Ströme etwas exakter:

I1 =(5.03 + 0.0094 · 3) · 4.36A

7.58 + 0.0094 · 3 + 0.0142 · 1.5=

5.0587.63

4.36A = 2.89A

I2 =(2.55 + 0.0142 · 1.5) · 4.36A

7.63= 1.48A

Mit diesen sicher schon recht genauen Werten modifiziert sich die erste Rechnung zu

I1 =(5.03 + 0.0094 · 2.89) · 4.36A

7.58 + 0.0094 · 2.89 + 0.0142 · 1.48=

5.0577.63

4.36A = 2.89A

Im Rahmen der gewählten dreistelligen Genauigkeit ändert sich der Wert also nicht mehr. Weitere Iterati-onsschritte sind mithin überflüssig, sie reproduzieren nur die schon ermittelten Werte.Die Rechnung basierte wesentlich auf dem Sachverhalt, daß die Widerstandswerte nur schwach von den Strö-men abhingen und es war wichtig, daß man hier aus der Problemstellung heraus Startwerte für die Iteration(3A und 1.5A) schätzen konnte.Das geschilderte Verfahren ist erfreulich einfach in der Handhabung und bisweilen recht wirkungsvoll. Lei-der ist es aber oftmals schwierig, ein bestehendes Gleichungssystem in die zur Anwendung dieser Methodenotwendige Form

fi(xi) + Fi(x1, x2, . . . , xn) = 0

zu überführen. Mit etwas Geschick und Verständnis für die reale Sachlage, z. B. für die physikalischenZusammenhänge, kann man bisweilen eine dem Problem angepaßte Form gewinnen. Das vorstehende Beispielwar ein solcher Idealfall. Aber für die elegante Lösung spezieller Probleme gibt es kein universelles Verfahren.

Es handelte sich, wie man sicher erkannte, um die Darstellung der mehrdimensionalen Variante der Fixpunkt-iteration. Diese ist mit Erfolg anwendbar. Im nachfolgenden Punkt soll aber nicht speziell darauf eingegangenwerden, so daß hier nur diese Feststellung gemacht sei.

4.2.3 Nichtlineare Systeme

4.2.4 Das Newton-VerfahrenGegeben sei ein System von n nichtlinearen Gleichungen mit n Unbekannten: f(x) = Θ, dabei bezeichnet Θden Nullvektor.Die Idee des Newton-Verfahrens wird aus der eindimensionalen Variante eigentlich unverändert übernommen.Man kann es aber auch so interpretieren:Da es für nichtlineare Systeme keine allgemeine Theorie und Lösungsformel gibt (geben kann!) ersetzen wir

69

Page 70: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

das System durch ein ähnliches lineares - dort ist alles klar! Dazu verwenden wir den Begriff der Ableitung,die sich in diesem Fall als Matrix darstellt:

f ′(x) =

f1,1 f1,2 . . . f1,nf2,1 f2,2 . . . f2,n...

.... . .

...fn,1 fn,2 . . . fn,n

, fi,j =∂fi∂xj

.

Sei x(0) ein Startwert in der Nähe der (einer) Lösung x∗ des Systems. Es gilt nach der allgemeinen Definitionder Ableitung

f(x∗) = f(x(0)) + f ′(x(0)) · (x∗ − x(0)) + h(x∗, x(0)) ,

wobei h ein kleines Restglied ist, dessen Betrag schneller gegen Null geht als der der Differenz x∗ − x(0):

limx(0)→x∗

|h(x∗, x(0))||x∗ − x(0)|

= 0 .

Auf der linken Seite der obigen Gleichung steht der Nullvektor. Läßt man auf der rechten Seite die Funktionh(x∗, x(0)) weg (d. h. vernachlässigt man sie ob ihrer Kleinheit), so gilt die Gleichung für x∗ nicht mehrexakt. Sie wird wieder richtig, wenn man mit ihrer Hilfe nicht mehr x∗ ausrechnen will, sondern nur nocheinen Vektor x(1):

Θ = f(x(0)) + f ′(x(0)) · (x(1) − x(0)) .

Sinnvoll ist es, den Vektor x(1) als Modifikation des Vektors x(0) zu schreiben: x(1) = x(0) +∆x(1), dann wirdx(1) − x(0) = ∆x(1) und dieses ∆x(1) bestimmt sich als Lösung des linearen Gleichungssystems

f ′(x(0))∆x(1) = −f(x(0)) .

Die Matrix f ′(x(0)) und die rechte Seite −f(x(0)) sind bekannt bzw. berechenbar. Damit kann dieses Systemaufgestellt und dann ggfs. gelöst werden. Mit dem Lösungsvektor ermittelt man x(1) und nun kann dieserProzeß wiederholt werden:Aus f ′(x(1))∆x(2) = −f(x(1)) bestimmt man die Verbesserung ∆x(2) von x(1) zu x(2), usw..In manchen Büchern wird dieses lineare Gleichungssystem mit der inversen Koeffizientenmatrix multipliziertund in der Form

∆x(1) = −[f ′(x(0))]−1f(x(0)) bzw. x(1) = x(0) − [f ′(x(0))]−1f(x(0))

geschrieben. Das ist korrekt, aber nicht konstruktiv - pro Schritt ist nur ein lineares Gleichungssystem zulösen und es ist uneffektiv, zu diesem Zweck die inverse Matrix zu berechnen. Das ist also nur als formaleSchreibweise zu verstehen. Immerhin hat die zweite der beiden Formeln Ähnlichkeit mit dem eindimensio-nalen Newton-Verfahren und ist dessen direkte Verallgemeinerung:

x1 = x0 −f(x0)f ′(x0)

.

Beispiel: Es sind drei Wertepaare (xi, yi) gegeben: daraus sollen die Parameter a, b und c der Funktiony = a sin(bx+ c) so bestimmt werden, daß sie den Bedingungen yi = a sin(bxi + c) für alle drei Paare erfüllt.Hieraus erhält man die drei Gleichungen fi(a, b, c) = a sin(bxi + c) − yi = 0; mit der Matrix der partiellenAbleitungen nach a, b und c entsprechend resultiert das lineare Gleichungssystem sin(bx1 + c) ax1 cos(bx1 + c) a cos(bx1 + c)

sin(bx2 + c) ax2 cos(bx2 + c) a cos(bx2 + c)sin(bx3 + c) ax3 cos(bx3 + c) a cos(bx3 + c)

∆a0

∆b0∆c0

=

y1 − a sin(bx1 + c)y2 − a sin(bx2 + c)y3 − a sin(bx3 + c)

.

Die Wertepaare seien (0.4305,-0.566855), (1.5630,4.908822) und (1.7340,5.274870). Sie sind entstanden durchVorgabe der Koeffzienten a = 5.4935, b = 1.0672 und c = −0.5628.Zuerst wird mit Startwerten begonnen, die nahe bei dieser Lösung liegen: a = 5, b = 1 und c = −0.5; manerhält die folgenden Resultate:

k ak bk ck ∆ak+1 ∆bk+1 ∆ck+1 ak+1 bk+1 ck+1

0 5.000000 1.000000 -0.500000 0.477377 0.077536 -0.070766 5.477377 1.077536 -0.5707661 5.477377 1.077536 -0.570766 0.015678 -0.010274 0.007942 5.493055 1.067262 -0.5628242 5.493055 1.067262 -0.562824 0.000445 -0.000062 0.000024 5.493500 1.067200 -0.5628003 5.493500 1.067200 -0.562800 0.000000 0.000000 0.000000 5.493500 1.067200 -0.562800

70

Page 71: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Wie man sieht hat man faktisch nach drei Schritten das Resultat gefunden. Die Korrekturen nehmen rapideab, denn auch im mehrdimensionalen Fall konvergiert das Verfahren quadratisch.Diese günstige Situation ist allerdings nur dem hervorragenden Startvektor geschuldet. Was passiert, wenner nicht so gut ist?Probehalber wird b0 von 1 auf 1.8 erhöht, der Rest bleibt gleich

k ak bk ck ∆ak+1 ∆bk+1 ∆ck+1 ak+1 bk+1 ck+1

0 5.000000 1.800000 -0.500000 -1.977324 -0.445867 -0.096351 3.022676 1.354133 -0.5963511 3.022676 1.354133 -0.596351 1.981904 -0.369606 -0.006253 5.004580 0.984527 -0.6026042 5.004580 0.984527 -0.602604 0.336614 0.112140 0.029470 5.341194 1.096666 -0.5731343 5.341194 1.096666 -0.573134 0.145959 -0.029168 0.010018 5.487152 1.067498 -0.5631164 5.487152 1.067498 -0.563116 0.006348 -0.000298 0.000316 5.493500 1.067200 -0.5628005 5.493500 1.067200 -0.562800 0.000000 0.000000 -0.000000 5.493500 1.067200 -0.562800

Die Rechnung braucht ein paar Schritte mehr und sie macht anfangs einen ziemlichen Schlenker.Nur wird b0 auf 2 vergrößert, ohne a0 und b0 zu verändern:

k ak bk ck ∆ak+1 ∆bk+1 ∆ck+1 ak+1 bk+1 ck+1

0 5.000000 2.000000 -0.500000 -3.03833 -0.56231 -0.02723 1.96167 1.43769 -0.527231 1.961674 1.437693 -0.527233 2.63155 -0.66446 -0.21944 4.59323 0.77323 -0.746672 4.593226 0.773231 -0.746670 -5.67479 1.36796 -0.82710 -1.08156 2.14119 -1.573773 -1.081561 2.141193 -1.573770 5.71528 3.80797 -4.25036 4.63372 5.94917 -5.824134 4.633721 5.949167 -5.824132 -9.09605 -0.70085 0.30745 -4.46233 5.24832 -5.516695 -4.462334 5.248318 -5.516686 4.99214 1.15525 -0.63902 0.52981 6.40357 -6.155706 0.529807 6.403568 -6.155705 -6.32990 -0.90064 -1.38746 -5.80009 5.50293 -7.543167 -5.800093 5.502928 -7.543163 12.00906 -1.93762 3.20462 6.20897 3.56531 -4.338548 6.208970 3.565311 -4.338541 -0.83562 0.11304 -0.25600 5.37335 3.67836 -4.594549 5.373355 3.678356 -4.594543 0.01540 0.01414 -0.03139 5.38876 3.69249 -4.6259310 5.388757 3.692491 -4.625935 0.00016 -0.00005 0.00013 5.38892 3.69245 -4.6258111 5.388916 3.692446 -4.625807 0.00000 0.00000 -0.00000 5.38892 3.69245 -4.62581

Jetzt irrt das Verfahren im dreidimensionalen Raum umher, bis es schließlich mehr oder weniger zufällig inden ’Einzugsbereich’ einer Lösung kommt und dort konvergiert. Allerdings ist diese Lösung deutlich anders.Die erhaltene Funktion hat das nachstehende Aussehen (die ’wahre’ Funktion ist gestrichelt):

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.................................................................................................................................................................................................................................................................................................................................................................................................................

.......................................................................................................................................................

............. ............. .......................... ............. ..........

... ............. .......................... ............. .......

...... ............. .......................... ............. .......

...... ............. .......................... ............. .........

.... ............. .......................... ............. .............

............. ............. .......................... ............. ............. ......

....... ............. ............. ............. ............. ............. ............. ............. ............. ............. ....

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

.....................................

............

............ ............

e

e e

Man braucht also einen halbwegs guten Startvektor, wenn man Wert auf eine bestimmte Lösung legt. Leiderwird das Finden des Startvektors mit wachsender Zahl der Unbekannten immer schwieriger und leider mußer oft gerade dann recht genau bestimmt werden, da dann der Einzugsbereich der Lösung recht klein ist. Eingewisser Ausweg wird im nächsten Punkt dargestellt.

Eine Modifikation sei noch erwähnt: Das vereinfachte Newton-Verfahren. Es basiert auf der Beobachtung,daß sich die Matrix des Gleichungssystems kaum ändert, wenn man nahe an der Lösung x∗ ist und dieVektoren x(k) nur noch minimal modifiziert. Deshalb verzichtet man dann darauf, sie neu zu berechnen undermittelt nur die jeweilige rechte Seite des Gleichungssystems.

Viele Funktionen haben die Eigenschaft, beim Differenzieren beträchtlich zu ’quellen’ - der resultierende For-melausdruck wird wesentlich größer als der ursprüngliche. Wenn die Unbekannten nicht irgendwie einheitlich

71

Page 72: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

in die Funktionen des Gleichungssystems eingehen, also beispielsweise durch Laufanweisungen verarbeitetwerden, so muß jede der n rechten Seiten einzeln programmiert werden und jeder der n2 Ableitungen auch.Das ist sehr mühsam und beinhaltet viele Fehlerquellen (wobei man Fehler in der Matrix in der Regel daranerkennt, daß das Verfahren nicht konvergiert). In diesem Falle bietet es sich an, die Werte der partiellenAbleitungen numerisch zu berechnen oder zumindest zu überprüfen (vgl. mit der numerischen Berechnungdes Gradienten von f(x1, x2, . . . , xn) in 5.1., S. 80).

4.2.5 Das gedämpfte Newton-Verfahren und EinbettungDas Newton-Verfahren braucht einen Startvektor in ausreichender Lösungsnähe. Dieser ist oftmals schwer zufinden. Eine Konvergenz des Verfahrens ist ggfs. erst nach einigen mehr oder weniger aufwendigen Schrittenfestzustellen. Nun soll zuerst ein Kriterium formuliert werden, mit dem man feststellen kann, ob ein einzelnerSchritt einen Fortschritt darstellt.Betrachten wir z. B. den Übergang von x(0) zu x(1). Im Idealfall wäre x(1) bereits die exakte Lösung x∗.Das würde sich darin äußern, daß es das System genau erfüllt: f(x(1)) = Θ. Da dieser Idealfall kaum eintritthat man es mit einem vom Nullvektor verschiedenen Vektor f(x(1)) zu tun, dem Residuum.21 Je kleinerdieser Vektor ist, desto besser dürfte x(1) sein. Zur Bewertung ist es notwendig, eine einzige Kennziffer zubesitzen und da bietet sich die Länge (der Betrag) dieses Vektors an. Je kleiner er ist, desto besser ist x(1).Im besten Fall ist der Wert Null. Aus Bequemlichkeitsgründen nimmt man nicht den Betrag selbst, sondernsein Quadrat.Verglichen wird nun mit der betreffenden Kennziffer der vorigen Iterierten. Hier würde man also |f(x(1))|2mit |f(x(0))|2 vergleichen. Ist dieser Wert kleiner geworden, so kann man x(1) akzeptieren.Und was, wenn nicht? Man will nach wie vor aus x(0) in ein gewisses x(1) kommen. Das Newton-Verfahren hatdies - im Sinne des formulierten Kriteriums - nicht geleistet. Die Korrektur ∆x(1), die zu x(0) hinzugeschlagenwurde und damit x(1) ergab, war falsch, da sie einen schlechteren Vektor lieferte als es der Startvektor war.Es erweist sich aber, daß es ein Schritt in die richtige Richtung war, nur eben zu weit.Wenn λ die Menge der reellen Zahlen durchläuft repräsentiert x(0) +λ∆x(1) eine ’Gerade’ im Rn. Bei λ = 1ergab sich bisher gerade x(1).Entlang dieser Geraden wird die Bewertungsfunktion b(λ) = |f(x(0) + λ∆x(1))|2 betrachtet. Es ist b(0) =|f(x(0))|2 der Bezugswert, den es zu unterbieten gilt.Unter ziemlich allgemeinen Voraussetzungen kann man zeigen, daß b′(0) < 0 gilt. Die Bewertungsfunktionfällt also, wenn λ aus Null ins Positive wächst, zumindest eine Zeitlang.Betrachten wir diese Funktion im Bereich 0 ≤ λ ≤1. Es sind zwei Fälle möglich: entweder sie fällt diegesamte Strecke (A) oder sie steigt wieder an undwird möglicherweise größer als im Punkt λ = 0 (B).Im letzten Fall gibt es (mindestens) ein Minimum derFunktion b(λ) in einer Stelle λ∗ < 1, die man durchAbtasten - zweckmäßigerweise mit der Methode desGoldenen Schnittes - finden kann.Die Idee ist nun, nicht bis λ = 1, sondern nur bisλ = λ∗ zu gehen.

...........................................................................................................................................................................................................................................................................................

...........................................................................................

.......................................................................................................

...........................................

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ....

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

.............................................

A

B

b(λ)

λ|

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .b(0)

1λ∗

.........

Damit folgt die Berechnungsvorschrift:

f ′(x(0))∆x(1) = f(x(0)) , x(1) = x(0) + λ∗∆x(1) .

Diese Vorgehensweise nennt man gedämpftes Newton-Verfahren, da es in seiner Geschwindigkeit des Vorge-hens jetzt gebremst wird. Das ist aber kein Verlust, da es dadurch am Über-das-Ziel-hinausschießen gehindertwird und so in jedem Schritt das Bestmögliche unternimmt.Wenn man konsequent das Minimum von b(λ) auf dem Abschnitt [0, 1] sucht, so wird der Fall (A) mit λ∗ = 1nicht ausgeschlossen. Typischerweise ist es so, daß das gedämpfte Newton-Verfahren nach einigen gebremstenSchritten in die Nähe einer Lösung gerät und dann dieser Dämpfung nicht mehr bedarf. Dann regelt sich λ∗von allein auf den Wert 1 hoch und man hat das klassische hocheffektive Newton-Verfahren.Im Eindimensionalen gewährleistet die Formel x1 = x0−f(x0)/f(x1), daß man von x0 immer in die Richtunggeht, in die der Betrag von f(x) fällt. Wenn es eine Nullstelle gibt und wenn x1 auf der anderen Seite dieserNullstelle liegt, so würde das gedämpfte Newton-Verfahren sie sofort finden.

21resideo (lat.) - übrig bleiben

72

Page 73: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Diese Modifikation des Newton-Verfahrens ist nicht sonderlich teuer. Der aufwendigste Teil jedes Schrittes istdas Berechnen der Matrix der partiellen Ableitungen und das Lösen des Gleichungssystems. Das wird abernicht häufiger gemacht als vorher. Für die Minimumsuche sind nur die Funktionen fi in einigen Punktenauszuwerten, man muß also kaum neue Formeln programmieren.Übrigens muß man das λ∗ nicht einmal sehr genau finden, denn der Boden dieser Senke hat eine gewisseBreite und man muß den tiefsten Punkt nur ungefähr erwischen - es wird sowieso weiter verbessert.Nun soll der letzte Fall des vorigen Beispiels mit dem gedämpften Newton-Verfahren nachgerechnet werden.Der besseren Anschaulickeit wegen wird keine Optimierung gemacht, sondern es wird eine Auswertung inZehntelschritten bzgl. λ vorgenommen und einfach mit der besten Variante (mit einem Sternchen gekenn-zeichnet) weitergerechnet.

Man erkennt:- Man gelangt zur vorgegebenen Lösung.- Zwei gedämpfte Schritte haben dafür gereicht.- Ab dem dritten Schritt stellte sich λ∗ = 1 ein.- Auch anfangs war b(1) < b(0); Dämpfung ist also stets günstig!

Man muß natürlich beachten, daß diese Dämpfungsstrategie kein Allheilmittel ist. Alles, was sie kann, istden Bereich der geeigneten Startvektoren deutlich zu vergrößern.

k λ ak + λ∆ak+1 bk + λ∆bk+1 ck + λ∆ck+1 b(λ)0 0.0 5.00000000000 2.00000000000 -0.50000000000 30.87268257460

0.1 4.69616740598 1.94376932386 -0.50272327574 25.464975503500.2 4.39233481197 1.88753864771 -0.50544655147 21.426705644940.3 4.08850221795 1.83130797157 -0.50816982721 18.541914661880.4 3.78466962394 1.77507729542 -0.51089310295 16.639049803680.5 3.48083702992 1.71884661928 -0.51361637868 15.59224892441

∗ 0.6 3.17700443590 1.66261594313 -0.51633965442 15.318566407640.7 2.87317184189 1.60638526699 -0.51906293016 15.771654094280.8 2.56933924787 1.55015459084 -0.52178620589 16.932617254430.9 2.26550665386 1.49392391470 -0.52450948163 18.798921082871.0 1.96167405984 1.43769323855 -0.52723275737 21.37232026784

73

Page 74: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

k λ ak + λ∆ak+1 bk + λ∆bk+1 ck + λ∆ck+1 b(λ)1 0.0 3.17700443590 1.66261594313 -0.51633965442 15.31856640764

0.1 3.22895036622 1.60375268560 -0.53271695120 12.523293458500.2 3.28089629655 1.54488942807 -0.54909424797 10.243259216240.3 3.33284222687 1.48602617053 -0.56547154475 8.440257924630.4 3.38478815719 1.42716291300 -0.58184884152 7.073007192770.5 3.43673408751 1.36829965547 -0.59822613830 6.103057884970.6 3.48868001783 1.30943639794 -0.61460343507 5.50058091838

∗ 0.7 3.54062594815 1.25057314041 -0.63098073185 5.249621094590.8 3.59257187847 1.19170988287 -0.64735802862 5.352421143410.9 3.64451780879 1.13284662534 -0.66373532540 5.832457743701.0 3.69646373912 1.07398336781 -0.68011262217 6.73589430377

2 0.0 3.54062594815 1.25057314041 -0.63098073185 5.249621094590.1 3.71815153693 1.22742410373 -0.62314981616 4.265807987050.2 3.89567712570 1.20427506706 -0.61531890048 3.409954773500.3 4.07320271447 1.18112603039 -0.60748798479 2.675012508320.4 4.25072830325 1.15797699372 -0.59965706911 2.053150475350.5 4.42825389202 1.13482795705 -0.59182615343 1.535878962050.6 4.60577948080 1.11167892037 -0.58399523774 1.114180382800.7 4.78330506957 1.08852988370 -0.57616432206 0.778647839730.8 4.96083065834 1.06538084703 -0.56833340638 0.519630146250.9 5.13835624712 1.04223181036 -0.56050249069 0.32738228108

∗ 1.0 5.31588183589 1.01908277368 -0.55267157501 0.192220189273 1.0 5.46962762667 1.07267984740 -0.56531292112 0.000198786194 1.0 5.49329839981 1.06721244435 -0.56280851399 0.000000053595 1.0 5.49349999924 1.06719999969 -0.56279999977 0.000000000006 1.0 5.49350000000 1.06720000000 -0.56280000000 0.00000000000

Eine weitere Möglichkeit, das Problem des Startvektors x(0) zu entschärfen, besteht darin, das gestellte Pro-blem f(x) = Θ in eine Familie von Aufgaben einzubetten, die durch einen Parameter λ beschrieben wird.Die betrachtete Aufgabe entspricht z. B. λ = 1.Wichtig ist, daß in dieser Familie ein Problem f0(x) = Θ enthalten ist, dessen Lösung man kennt. Es gehörezu λ = 0.Also:

Aufgabenfamilie F (x(λ), λ) = Θ , F (x, 0) = f0(x) , F (x, 1) = f(x) .

Die Lösung von F (x, λ) = Θ bei λ nahe Null wird sich nicht sehr von der bekannten Lösung x(λ = 0)unterscheiden. Also ist x(0) ein guter Startvektor für die Behandlung von z. B. F (x, 0.1) = Θ.Diese Aufgabe kann dann mit dem Newton-Verfahren gelöst werden. Ihre Lösung x(0.1) wird nicht selbstgebraucht, vielmehr dient sie als Startvektor für die Aufgabe F (x, 0.2) = Θ, usw..Zuletzt löst man F (x, 1) = f(x) = Θ.

Beispiel: Die Aufgabe zur Bestimmung der Parameter a, b und c einer Schwingung y(x) = a sin(bx+ c) ausdrei Wertepaaren (xi, yi) (vgl. S. 70).Die (vorgegebene) Lösung war a = 5.4935, b = 1.0672 und c = −0.5628.Bauen wir eine Startaufgabe f0(a, b, c) = Θ mit der Lösung a = b = 1, c = 0, also einfach der Funktiony(0)(x) = sinx im Hintergrund. Sei entsprechend y(0)

i = 1 · sin(1 · xi + 0) = sinxi.Es resultiert das System der drei von λ abhängigen Gleichungen

a(λ) sin[b(λ)xi + c(λ)] = (1− λ)y(0)i + λyi , i = 1, 2, 3 .

Man erkennt aus der Konstruktion der rechten Seite: Bei λ = 0 ist es die Aufgabe mit der bekannten Lösunga = b = 1, c = 0, und bei λ = 1 die eigentlich gestellte.Das Newton-Verfahren braucht für keine der zehn Teilaufgaben - wenn man λ in Schritten von 0.1 laufenläßt - mehr als 5 Iterationen. Den jeweils berechneten Wertesatz als neue Startwerte genommen ergibt sichdie nachstehende Tabelle:

74

Page 75: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

λ a(λ) b(λ) c(λ)

0 1 1 00.1 1.415644414 1.020888221 -0.2122686090.2 1.854364021 1.033836012 -0.3258815720.3 2.302068023 1.042654239 -0.3958110280.4 2.754049371 1.049048943 -0.4430269690.5 3.208361460 1.053899373 -0.4770089260.6 3.664070218 1.057705051 -0.5026248120.7 4.120676676 1.060770905 -0.5226214220.8 4.577891924 1.063293663 -0.5386635580.9 5.035537876 1.065405953 -0.5518181651.0 5.493499136 1.067200452 -0.562800299

Obwohl weit entfernt von der Lösung begonnen wurde gelangt man sehr schön in diese - allerdings mitdeutlich mehr Rechenaufwand: über das Newton-Verfahren ist eine Schleife gelegt, in der das λ läuft.22

Einbettung ist allerdings ebenfalls kein Allheilmittel, es kann auch hierbei Probleme geben.So muß es keine zusammenhängende Trajektorie x(λ) von λ = 0 zu λ = 1 geben und dann gerät man anirgendein Ende.

Betrachten wir die Aufgabe, die kleinste Nullstelle des Polynoms x3 − 11x2 + 36x− 38 zu finden.Durch scharfes Draufsehen kommt man zu der Erkenntnis, daß x3− 11x2 + 36x− 36 = (x− 2)(x− 3)(x− 6)ist und man betrachtet die Aufgabenfamilie P3(x, λ) = x3 − 11x2 + 36x − 36 − 2λ. Starten kann man beix(0) = 2.Welches Problem man sich einhandelt erkennt man am nachstehenden Bild: Zu λ = 0 gehört die ausgezogeneKurve und zu λ = 1 die gestrichelte:

......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

...........

.......... .......... .......... .......... ..........

..................................................................................................................................................................................................................................................................................................................

...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.................................................................................................................................................................................................................................................................................................

.......................................................................................................... ............. ............

. ............. .......................... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

............. ............. .............

.................................................................................................................

Mit wachsenden λ verschiebt sich die Kurve nach unten und plötzlich ist die betrachtete Nullstelle (aus demReellen) verschwunden!

Aber selbst wenn sich die Lösungsmenge zusammenhängend von λ = 0 zu λ = 1 erstreckt ist noch nichtklar, daß man mit der Schrittweite ∆λ = 0.1 von einem Ende zum anderen kommt. Das muß ggfs. genaueruntersucht werden.Startet man im betrachteten Beispiel der phasenverschobenen Schwingung nicht mit a = b = 1, c = 0,sondern mit dem noch etwas schlechteren Satz a = 1, b = 0.3, c = 0, so gelangt man bei ∆λ = 0.1 zu einerder vielen sonstigen Lösungen des Systems: a = 30.141637193, b = 16.773524131, c = −0.952576906.Nimmt man statt dessen ∆λ = 0.05, so hat man am Schluß (nach 20 Schritten): a = 7.053788071, b =8.930701765, c = −0.622625923.Bei 50 Schritten entsteht ziemlicher Unfug (betragsgroße Werte) und erst bei 500 Unterteilungen landet manin derjenigen Lösung, die die ganze Zeit gemeint war.

Eine naheliegende Verbesserung sei noch betrachtet. Damit kann gleichzeit ein weiteres Mal die Verknüpfungnumerischer Verfahren demonstriert werden. Hier benutzen wir die Idee der Extrapolation.Gehen wir aus von der obigen Tabelle. Angenommen, der erste Schritt ist erfolgt:

λ a(λ) b(λ) c(λ)

0 1 1 00.1 1.415644414 1.020888221 -0.212268609

22In Wirklichkeit läuft ein integer-Wert. Wie eingangs gesagt sollte man reelle Zahlen nicht als Laufvariable nehmen.

75

Page 76: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Anstatt mit den drei Werten der letzten Zeile bei λ = 0.2 zu starten kann man sich Folgendes sagen: Vonλ = 0 zu λ = 0.1 haben sich die Werte geändert, und bis λ = 0.2 werden sie sich wiederum ändern.λ ändert sich jedesmal um denselben Wert, also dürften sich auch a, b und c etwa um denselben Wert ändern.Wenn das so ist, so könnte man versuchen, aus den beiden Werten den neu zu erwarteten Wert zu schätzen.Es war z. B. a(0) = 1 vorgegeben und a(0.1) = 1.415644414 berechnet. Unterstellt, dieser Trend hält an, sowäre a(0.2)− 1.415644414 ≈ 1.415644414− 1, also a(0.2) ≈ 1.8312.Verwenden wir die übliche Differenzenschreibweise und stellen wir die Werte in Einheiten der vierten Nach-kommastelle dar (eine genauere Rechnung nützt bei dieser Prognose wenig). Die Differenz wird in halberHöhe zwischen die Werte geschrieben, aus denen sie gebildet wird, und zwar wird immer der obere Wertvom unteren abgezogen:

a ∆a b ∆b c ∆c

10000 10000 04156 209 -2123

14156 10209 -21234156 209 -2123

18312 10418 -424618543 10338 -3259

-231 80 -987

Es wird also die Annahme getroffen, die Differenz bleibe gleich. Dieser hypothetische Wert wird kursiv unterdie berechnete Differenz geschrieben. Diese zum unteren der beiden Werte, aus denen die Differenz gebildetwird, addiert ergibt den - ebenfalls kursiv notierten - Vorhersagewert; für a(0.2) also 18312 oder, mit Be-rücksichtigung der wahren Dezimalstellen, 1.8312.Diese Werte werden nun mit dem Newton-Verfahren verbessert. Das Resultat ist fettgedruckt. Unter ihmsteht - klein - die Differenz zur Prognose. Sie ist stets kleiner als die Hälfte der Änderung zum Vorgänger.Die Vorhersage war also nützlich.Nach Kenntnis von drei Werten läßt sich die Prognose noch verbessern: Man bildet die Differenz des erstenund die des zweiten Paares. Diese unterscheiden sich wiederum. Der Unterschied ist die zweite Differenz.Man trifft die Annahme, daß diese konstant bleiben möge. Damit kann man schätzen, wie groß die Differenzzwischen dem dritten und dem vierten Wert wird und damit den vierten Wert annähern. Die entsprechendeTabelle wird, die zweiten Differenzen zwischen die ersten geschrieben und die geschätzten Werte kursiv,nachgebesserte fett und Abweichung klein:

a ∆1a ∆2a b ∆1b ∆2b c ∆1c ∆2c

10000 10000 04156 209 -2123

14156 232 10209 -80 -2123 9874388 129 -1136

18544 232 10338 -80 -3259 9874620 49 -149

23164 10387 -340823021 10427 -3958

-143 40 -550

Die Fehler der Vorhersagen haben sich diesmal merklich verringert.Sind vier aufeinanderfolgende Werte berechnet, so kann man noch die dritten Differenzen einbeziehen, diesich durch Subtraktion der zweiten voneinander ergeben:

a ∆1a ∆2a ∆3a b ∆1b ∆2b ∆3b c ∆1c ∆2c ∆3c

10000 10000 04156 209 -2123

14156 232 10209 -80 -2123 9874388 -143 129 0 -1136 -550

18544 89 10338 -80 -3259 4374477 -143 89 0 -699 -550

23021 -54 10427 -80 -3958 -1134423 9 -812

27444 10436 -447027540 10490 -4430

-96 54 -40

Das mag reichen. Für den Start des nächsten Newton-Verfahrens hätte man also Startwerte, die auf etwazwei Nachkommastellen oder rund 1 Promille richtig sind - zwei Iterationsschritte dürften ausreichen.Bei der weiteren Rechnung lohnt es sich nicht unbedingt, noch weitere Differenzen zu betrachten,23 vielmehr

23Vgl. mit den Aussagen zur Interpolation, S. 95.Man beachte: es wurde wesentlich ausgenutzt, daß sich die λ-Werte alle mit derselben Schrittweite ändern. (Ihre Größe spieltedabei in dieser Rechnung nicht einmal eine Rolle. Eine Gerade bleibt eine Gerade und eine Parabel bleibt eine Parabel, egal, inwelchem Maßstab man sie zeichnet.)Die Werte, die in die Extrapolation eingehen, sind mit hoher - theoretisch: beliebiger - Genauigkeit berechenbar, es sind keineMeßwerte, die unvermeidlich Fehler enthalten. Somit wäre eine Extrapolation relativ hohen Grades vertretbar.

76

Page 77: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

sollte man nach dem nächsten Schritt die Tabelle aus den letzten berchneten Funktionswerten gleitend neuaufstellen. Es werden also die Werte zu λ = 0 weggelassen und nur mit denen zu 0.1 bis 0.4 operiert, usw..

Im vorliegenden gutartigen Beispiel hätte sich der Aufwand einer solchen sorgfältigen Extrapolation nichtgelohnt - sie war so nützlich wie die Stromlinienform an einer Dampfwalze. Aber sie rentiert sich, wenn manein sehr effektives Programm braucht, das oftmals aufgerufen wird (der erwähnte Echtzeit-Steuerrechner...).Darüber hinaus sollte ein weiteres Mal demonstriert werden, wie diese Rechnung abläuft.Es gibt Programmiersprachen, in denen man dreieckige Felder vereinbaren kann. Hier ist ein Anwendungsfall:die Differenzentabelle. Natürlich geht auch eine rechteckige Matrix, aber da verschwendet man Speicherplatz.

4.2.6 Aufgaben1. Gegeben sei f(x) = x2 − a. Sei x0 > 0.

a) Sei a > 0, überlegen Sie sich geometrisch, wieso bei x0 6=√a stets x1 > x2 > x3 > x4 > . . . >

√a

gilt!b) Begründen Sie, warum man zur Bestimmung der Quadratwurzel aus a > 0 stets mit x0 = 1 startenkann!c) Was passiert im Falle a = 0?d) Wie verhält sich das Verfahren bei a < 0? Testen Sie den Fall a = −4 mit verschiedenen Starwerten!

2. Erstellen Sie eine auf dem Newton-Verfahren basierende Iterationsvorschrift zur Berechnung von n√x, x >

0! Berechnen Sie damit 3√

10 !

3. Angenommen, man hat ein Programmsystem, in dem man auf die Mantisse und den Exponenten derGleitkommazahlen separat zugreifen kann. Die Mantisse sei (bei x 6= 0) mit 1 ≤ |M | < 2 normiert. Inden Bytes sind Verschiebeoperationen und sonstige Assemblerbefehle ausführbar.Erstellen Sie - in Worten! - ein Programm zur Berechnung von

√x mit Hilfe des Newton-Verfahrens!

Ziel soll es sein, möglichst wenige arithmetische Operationen auszuführen.Zum Gewinnen eines Startwertes kann die Taylor-Formel benutzt werden:

√1 + x = 1 +

x

2− x2

8+ . . . .

Gewünscht ist eine relative Genauigkeit des Resultats von mindestens 5 · 10−8!

4. Wenden Sie das Newton-Verfahren auf die Gleichung f(x) = 0 mit f(x) = 1/x und x0 = 1 an! ErklärenSie das Resultat!

5. Mit einer dezimal n-stelligen Mantisse soll die Funktion f(x) = sinx berechnet werden, und das aufm < n Nachkommastellen genau. Die Berechnung erfolge mit Hilfe der Potenzreihenentwicklung dieserFunktion.Mindestvoraussetzung für das Erreichen der gewünschten Genauigkeit ist, daß jeder Summand aufdie entsprechende Zahl von Nachkommastellen genau ist. Dazu darf er (betragsmäßig) nicht zu großwerden.Sei x eine ungerade ganze Zahl, geben Sie den betragsgrößten Summanden in der Potenzreihe an!Wie lautet sein genäherter Wert, wenn man die Stirlingsche Formel k! ≈

√2kπ · kk · e−k benutzt?

Berechnen Sie damit für n = 8, m = 5 und andere Kombinationen eine ungefähre Grenze g > 0,innerhalb der (|x| ≤ g) die Berechnung von sinx mit der Potenzreihenentwicklung möglich wäre!Hinweis: Benutzen Sie eine Fixpunktiteration!

6. Der Widerstand eines gewissen Bauteils ist abhängig von der Stärke des hindurchfließenden Stroms.Der Hersteller gibt die folgende Funktion für die Kennlinie an (R in Ω, I ≥ 0 in A):

R(I) = 42.4− 2.8 · arctan1.35

0.44 + I.

Bestimmen Sie mit Hilfe einer Fixpunktiteration den bei U = 185V durch dieses Bauteil fließendenStrom!

7. Gesucht ist die positive Nullstelle von f(x) = x4 − x3 − 8x2 − 3x − 296304. Man überlegt sich leicht,daß sie etwas oberhalb von 20 liegt.Experimentieren Sie mit einem kleinen Programm, das, von x0 = 20 ausgehend, neue xk = ϕ(xk−1)

77

Page 78: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

berechnet, wobei die Funktion ϕ(x) entsteht, indem man die Funktion nach einem der vorkommendenx auflöst! In welchen Fällen tritt Konvergenz auf?Man kann aus dem Polynom auch eine biquadratische Funktion herausziehen, oder man betrachtetf(x)− (x− 0.25)4. Funktionieren die resultierenden Iterationsvorschriften? Sind sie vielleicht besser?

8. Ein homogener Würfel mit der Kantenlänge a aus einem zu untersuchenden Material soll befestigtwerden. Dazu dient eine um drei Flächen gelegte ’Bauchbinde’ aus einem Metallband, das an denbeiden Enden an der Wand befestigt wird. Das Material des Würfels hat eine Dichte von 1.056g ·cm−3,1cm des Bandes hat eine Masse von 2.385g. Die Gesamtmasse von Würfel und Band soll 83.55kgbetragen.Berechnen Sie mit Hilfe einer Fixpunktiteration die Kantenlänge a des Würfels! Geben Sie Startwertund Zwischenresultate an!

78

Page 79: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 5

Optimierung

5.1 Problemstellung’Spieglein, Spieglein an der Wand,Wer ist die Schönste im ganzen Land?’’Frau Königin, Ihr seid die Schönste hier,aber Sneewittchen über den Bergen,bei den sieben Zwergenist noch tausendmal schöner als ihr.1

Brüder Grimm

Die Optimierung wird in diesem Rahmen nur allgemein behandelt. Zum speziellen Thema ’Lineare Optimierung’wird nichts gesagt. Aufgaben der Linearen Optimierung können im Rahmen einer geschlossenen Theorie prinzipiellgelöst werden. Mit dem Simplexverfahren existiert dafür ein universeller und effektiver Algorithmus. Die Situationist ähnlich zu der für lineare Gleichungssysteme, die man mit dem Gauss-Verfahren abschließend behandeln kann.Ein solches detailliertes Eingehen würde allerdings den Rahmen des Kurses sprengen.

Es geht künftig darum, die Stelle(n) x∗ ∈ Rn zu finden, in denen eine skalare Funktion f(x1, x2, . . . , xn) - die Zielfunk-tion - ihr Minimum (oder Maximum) annimmt.2 Für die Theorie ist es unwesentlich, ob es sich um ein Minimum oderMaximum handelt - die Funktion −f(x) hat ihr Maximum gerade dort, wo f(x) das Minimum hat, und umgekehrt.Es reicht also z. B. aus, ein Programm zur Minimumsuche zu besitzen - bei einem Maximumproblem braucht mandann nur das Vorzeichen der Zielfunktion zu ändern. Künftig ist deshalb nur vom Minimum die Rede, ohne daß diesdie Allgemeinheit einschränkt.Prinzipiell werden lokale Extrema gesucht.Es soll also für ein gewisses ε > 0 gelten: f(x) ≥ f(x∗) ∀x : |x− x∗| < ε.Ein globales Minimum zu finden ist eine zusätzliche Aufgabe, die durch spezielle, meist sehr problembezogene Über-legungen behandelt werden muß. Die Frage ist auch, ob ein solches globales Minimum überhaupt existiert. - DieFunktion f(x) = x+ sin 2x hat unendlich viele lokale Minima und Maxima, aber keinerlei globales.Es sind weiterhin die Fälle zu unterscheiden, ob der Extremwert auf dem gesamten Raum Rn gesucht wird oder nurauf einem gewissen Bereich. Im letzteren Fall spricht man von Optimierung unter Nebenbedingungen. Dieser Bereichist üblicherweise durch Bedingungen in Form von Ungleichungen gegeben.3 Es gibt also zusätzlich zur Zielfunktionnoch eine gewisse Anzahl m von Funktionen ϕk(x), die (üblicherweise) nichtnegative Werte annehmen müssen, da-mit das betreffende x überhaupt in Betracht kommt: ϕk(x) ≥ 0, k = 1, 2, . . . ,m. Die Menge aller x, die all diesenUngleichungen genügen und unter denen der Extremwert x∗ bestimmt wird heißt zulässiger Bereich. Falls sich dieNebenbedingungen ϕk(x) ≥ 0, k = 1, 2, . . . ,m, widersprechen (z. B. x ≤ 2 und x ≥ 10, also 2−x ≥ 0 und x−10 ≥ 0),so ist dieser zulässige Bereich leer und die Aufgabe damit unlösbar.Typisch für Aufgaben mit Nebenbedingungen ist der Umstand, daß der Extrempunkt auf dem Rand des zulässigenBereiches liegen kann.Suchen wir das Minimum der Funktion f(x) = x für x ≥ 0 und 1−x ≥ 0, so wird dies in x∗ = 0 angenommen. Es ist

1Die Monarchin repräsentiert folglich ein lokales Extremum, Sneewittchen hingegen ein globales. (Vorausgesetzt, die Formu-lierung ’im ganzen Land’ ist die korrekte Festlegung eines zulässigen Bereiches.) Es erstaunt aber, daß der Spiegel in der Lageist, so eine komplexe und diffizile Erscheinung wie Schönheit, speziell weibliche, quantitativ zu erfassen. Es kann sich dabei nurum eine echte Maßzahl handeln und nicht um eine Ordnungszahl, denn es wird ein Quotient gebildet. (Wenn der Erste 10secfür 100m braucht und der Zweite 11sec, so kann man ihre Zeiten ins Verhältnis setzen, nicht aber ihre Plätze.) - Verdächtig istallerdings der Wert 103 ob seiner ’Glattheit’ - vermutlich wurde hier nicht sehr objektiv oder genau gemessen.

2Gesucht ist ausdrücklich diese Stelle - der Wert, den die Funktion dort annimmt, ist zweitrangig und kaum zu beeinflussen.Beim Skat kann man mit einem gegebenen Blatt eine optimale Strategie spielen. Ob es für den Sieg reicht oder wieviel mangewinnt ist bei der Wahl dieser Strategie unwichtig - man muß nur versuchen, möglichst viele Punkte o.ä. zu machen.

3Durch Einführung sogenannter Schlupfvariablen kann man diese Ungleichungen prinzipiell in die Gleichungsform überführen.

79

Page 80: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

aber f ′(x) = 1 6= 0 ∀x. Die Ableitung der Zielfunktion ist auf der gesamten reellen Achse von Null verschieden. DieZielfunktion hat dort keinen Extremwert, wohl aber auf dem eingeschränkten Abschnitt [0, 1], und zwar an dessenRand.Die gängige Technik der Extremwertsuche (Ableitung(en) suchen und gleich Null setzen) ist also nur für Extremwerteim Innern des zulässigen Bereichs brauchbar oder für Extremwertsuche ohne Nebenbedingungen (wobei der zulässigeBereich automatisch mit dem gesamten Raum übereinstimmt oder zumindest mit dem Definitionsbereich der Ziel-funktion).

In den nächsten drei Punkten werden Methoden zur Extremwertsuche ohne Nebenbedingungen betrachtet. Natürlichkann man dabei auch das klassische Verfahren einbeziehen, das darin besteht, daß man den Vektor der partiellenAbleitungen ∂f/∂xk gleich Null setzt. Das ergibt ein System von n (i. a. nichtlinearen) Gleichungen mit den n Un-bekannten x1 bis xn. Das kann z. B. mit dem mehrdimensionalen Newton-Verfahren gelöst werden.Man muß dazu allerdings zweite partielle Ableitungen ∂2f/∂xk∂xl berechnen und das kann sehr aufwendig werden,selbst wenn man bedenkt, daß diese Matrix symmetrisch ist. Nutzt man die Verfahren zur numerischen Berechnungder ersten oder zweiten Ableitung, so genügt es, nur die Funktion f(x1, . . . , xn) zu programmieren. Näherungsweiseist dann:

∂f

∂xk=

1

2hk[f(x1, . . . , xk−1, xk + hk, xk+1, . . . , xn)− f(x1, . . . , xk−1, xk − hk, xk+1, . . . , xn)] ,

∂2f

∂x2k

=1

h2k

[f(x1, . . . , xk−1, xk + hk, xk+1, . . . , xn)− 2f(x1, . . . , xk−1, xk, xk+1, . . . , xn)+

+f(x1, . . . , xk−1, xk − hk, xk+1, . . . , xn)] ,

∂2f

∂xk∂xl=

1

4hkhl[f(x1, . . . , xk−1, xk + hk, xk+1, , . . . , xl−1, xl + hl, xl+1, . . . , xn)−

−f(x1, . . . , xk−1, xk − hk, xk+1, , . . . , xl−1, xl + hl, xl+1, . . . , xn)−−f(x1, . . . , xk−1, xk + hk, xk+1, , . . . , xl−1, xl − hl, xl+1, . . . , xn)+

+f(x1, . . . , xk−1, xk − hk, xk+1, , . . . , xl−1, xl − hl, xl+1, . . . , xn)] .

Man bedenke, daß man i. a. zu jeder Variablen xk eine eigene Schrittweite hk wählen muß!

Man kann die Aufgabe zur Lösung eines Gleichungssystems auf eine Minimumaufgabe zurückführen:Das System g1(x) = 0, . . . , gn(x) = 0 ist äquivalent zu der Frage, ob die Zielfunktion γ(x) = |g(x)|2 = g2

1(x) + . . .+g2n(x) ein Minimum mit dem Wert Null besitzt. - Allgemeiner kann man noch Wichtungsfaktoren ak > 0 einführen:

γ(x1, . . . , xn) =

n∑k=1

akg2k(x1, . . . , xn) −→ min !

Bisweilen ist es sinnvoll, sich mit einem groben Verfahren zur Extremwertsuche in die Nähe eines solchen Minimumszu begeben und die gewonnene Stelle dann als Startpunkt für ein mehrdimensionales Newton-Verfahren zu nutzen.

Der Aufwand bei der Lösung einer Optimierungsaufgabe steigt mit der Dimension des Problems schnell an. Ein-dimensionale Optimierung ist relativ einfach; mit der Methode vom Goldenen Schnitt hat man auch ein effektivesAbtastverfahren zur Bestimmung der Extremstelle.Man kann sich die Aufgabe vorstellen, in einem trüben See ein Kabel (geradeaus) zu verlegen. Vorher wäre es viel-leicht sinnvoll, die maximale Tiefe entlang dieser Strecke zu ermitteln. Man würde also - falls bessere Mittel fehlen -mit einem Boot diese Strecke abfahren und mit einer Stange oder einem Lot die Tiefe messen. Das kann praktischnur in gewissen Abständen geschehen, so daß es theoretisch vorkommen könnte, daß man ein enges und tiefes Lochübersieht. Bei Kenntnis der Zielfunktion weiß man aber vielleicht, daß diese gutartig ist und nicht zu derartigenAusreißversuchen neigt. (Wenn der Seegrund aus Sand besteht kann es in ihm auch keine steilen Löcher geben.) Manbeachte die allgemeine Philosophie: Eine Funktionswertberechnung stellt einen gewissen Aufwand dar (die Stangeoder das Lot absenken ...) und diese Operation möchte man möglichst wenig ausführen, andererseits ein halbwegssicheres Resultat erreichen.Zweidimensionale Optimierung kann man vergleichen mit der Aufgabe, die tiefste Stelle dieses Sees zu finden - eineoffenbar viel aufwendigere Zielstellung. Der zulässige Bereich ist dabei übrigens gerade das Gebiet des Sees.Dreidimensionale Optimierung: Man sucht in einem Raum die Stelle besten Empfangs eines Senders, usw..

Die geschilderten Beispiele sind durchweg Probleme der stetigen Optimierung. Auf ’Diskrete Optimierung’ wird hiernicht näher eingegangen. Letzere befaßt sich mit der Frage nach einer optimalen Auswahl einer Variante aus einer inder Regel sehr großen - aber endlichen - Anzahl von Möglichkeiten. Wenn man an n Steckplätze einer Leiterplatten verschiedene Bauteile plazieren kann, so ist jede derartige Anordnung in irgendeiner Weise zu bewerten (Montage-aufwand, Länge der Verbindungen, Kreuzungen, ...) und es gibt eine (oder mehrere) günstigste Variante(n) in einerMenge von n! Möglichkeiten.Hierbei gibt es keine stetigen Abhängigkeiten und keine Möglichkeit, die Differentialrechnung einzusetzen. Die Me-thoden unterscheiden sich beträchtlich von denen der stetigen Optimierung.

80

Page 81: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

5.2 Koordinatenweiser AbstiegDas Problem sei ohne Nebenbedingungen (Restriktionen). Trotzdem kann man zumeist einen gewissen Bereich ange-ben, in dem die Variablen xk vernünftigerweise liegen sollten: ak ≤ xk ≤ bk. Man wählt nun eine Variable aus, z. B.x1. Für den Aufwand ist es nicht egal, mit welcher Variablen man anfängt und n reale physikalische oder geometri-sche usw. Größen kann man beliebig numerieren - diese Auswahl muß im Einzelfall also durchaus mit einiger Sorgfalterfolgen.Nun weist man den restlichen Variablen x2 bis xn irgendwelche sinnvollen Werte x0

k zu und variiert x1 mit dem Ziel,die jetzt nur noch von dieser einen Variablen abhängige Funktion f(x1, x

(0)2 , . . . , x

(0)n ) zu minimieren. Das kann mit

dem Verfahren vom Goldenen Schnitt geschehen und führt im Erfolgsfalle zu einem Wert x(1)1 .

Dieser wird fixiert und jetzt versuchen wir x2 analog zu verbessern, indem wir die eindimensionale Funktion f(x(1)1 , x2, x

(0)3 , . . . , x

(0)n )

minimieren.Den gefundenen Wert nennen wir x(1)

2 und fahren mit f(x(1)1 , x

(1)2 , x3, x

(0)4 , . . . , x

(0)n ) fort, usw.

Nach einem solchen Durchlauf hat man das Minimum noch nicht gefunden, denn jede Variable wurde optimiert, ohnedaß die restlichen den Bestzustand repräsentierten. Aber der Funktionswert hat sich insgesamt sicher verringert. Nunwird diese Aktion wiederholt: x(1)

2 , . . . , x(1)n hält man fest und verbessert x1 zu x(2)

1 usw..Möglicherweise (...oft) kommt man so in ein Minimum, zumindest in ein lokales. Wenn es kein Minimum gibt, weil esirgendwohin dauernd bergab geht (beschränkt oder unbeschränkt), so wird man dies vielleicht irgendwann merken.

Beispiel: Gesucht sind Dämpungskoeffizient λ, Winkelgeschwindigkeit ω und Phasenverschiebung α der gedämpftenSchwingung ψ(t;λ, ω, α) = e−λt · sin(ωt+α) aus den Angaben ψ(0.6) = 0.43, ψ(1.1) = −0.48 und ψ(1.6) = 0.08 (alleAngaben exakt).Es muß e−0.6λ ≥ 0.43, also λ ≤ 1.41 gelten. Die anderen zwei Bedingungen ergeben λ ≤ 0.667 und λ ≤ 1.58. Dieschärfste der drei Bedingungen muß zutreffen: λ ≤ 0.667.

Wählen wir ω = α = 1 und versuchen wir λ anzupassen. Ausgegangen wird von der Zielfunktion

f(λ, ω, α) =(e−0.6λ sin(0.6ω + α)− 0.43

)2+(e−1.1λ sin(1.1ω + α) + 0.48

)2+(e−1.6λ sin(1.6ω + α)− 0.08

)2.

Sie ist nichtnegativ und kann bestenfalls den Wert Null annehmen - genau so eine Stelle ist gesucht.Bei ω = α = 1 ist der bestmögliche Wert λ = 0.666998, also der obere Rand des gegebenen Intervalls. Die Zielfunktionwird 0.867069.Die Anpassung von ω senkt diesen Wert auf 0.095552 und eine Variation von α ergibt 0.077684. Damit ist der ersteZyklus abgeschlossen.Der nächste Zyklus reduziert die Zielfunktion zu 0.051053. In der dritten Runde ändert sich auch λ. - Die Rechnungist in der nachstehenden Tabelle dargestellt:

k λ ω α f(λ, ω, α) k λ ω α f(λ, ω, α)

1 0.666998 1 1 0.867069 6 0.590544 3.658363 6.670346 0.0130011 0.666998 3.118797 1 0.095552 6 0.590544 3.726209 6.670346 0.0105451 0.666998 3.118797 7.102741 0.077684 6 0.590544 3.726209 6.610254 0.0086162 0.666998 3.118797 7.102741 0.077684 7 0.592340 3.726209 6.610254 0.0086152 0.666998 3.303886 7.102741 0.062768 7 0.592340 3.780448 6.610254 0.0070692 0.666998 3.303886 6.956113 0.051053 7 0.592340 3.780448 6.561096 0.0058143 0.644365 3.303886 6.956113 0.050880 8 0.596352 3.780448 6.561096 0.0058083 0.644365 3.453277 6.956113 0.040228 8 0.596352 3.824607 6.561096 0.0048043 0.644365 3.453277 6.837875 0.032577 8 0.596352 3.824607 6.520547 0.0039754 0.610506 3.453277 6.837875 0.032183 9 0.601173 3.824607 6.520547 0.0039664 0.610506 3.570579 6.837875 0.025060 9 0.601173 3.860974 6.520547 0.0033004 0.610506 3.570579 6.744574 0.020238 9 0.601173 3.860974 6.486906 0.0027445 0.594264 3.570579 6.744574 0.020145 35 0.642369 4.049006 6.311650 0.0000015 0.594264 3.658363 6.744574 0.016027 35 0.642369 4.049488 6.311650 0.0000015 0.594264 3.658363 6.670346 0.013006 35 0.642369 4.049488 6.311205 0.000000

Von dem ermittelten Wert für α kann getrost 2π = 6.28 . . . abgezogen werden; davon abgesehen ist der Satz derWertepaare gut getroffen und die erhaltene Kurve wirkt überzeugend.Die gewonnene Funktion hat den folgenden Verlauf (die gegebenen Wertepaare als Kreuze dargestellt):

81

Page 82: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

.........................................................................................................................................................................................................................................................................

................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

........................................................................................................................................................................................................................................................

...........................................................................

.......................................................................................................................................

.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

.......................................................................

........................................

ψ(t)

t

................

................

........

| | |

.............................

0.5 1

1.5

........................................

................

.....................................................

In der nachstehenden Abbildung ist diese Vorgehensweise im zweidimensionalen Fall demonstriert. Das - globale! -Minimum ist im Koordinatenursprung. Die Fläche der Funktion ist ein elliptisches Paraboloid:

f(x1, x2) = a2(y − x)2 + (y + x)2 ,

ihr Verlauf wird durch Höhenlinien darge-stellt. Diese haben typischerweise in derNähe des Minimums einen großes Abstandund werden in den steil ansteigenden Flan-ken enger. Für a = 3 ergibt sich dasrechtstehende Bild. Der koordinatenweiseAbstieg ist als ’Treppe’ eingezeichnet, diePunkte x(k) sind die Stellen, in denen dieWinkel dieser ’Treppe’ liegen:

Wie man sieht arbeitet sich das Verfahrenrecht gut in Richtung des Minimums vor-an. Dies ist aber auch deutlich dem gutar-tigen Problem geschuldet. Wenn man denWert von a groß macht, so ergibt sich eineähnliche Fläche, aber sie ist jetzt ein rechtenges Tal mit steil ansteigenden seitlichenHängen, dessen Boden einen vergleichswei-se sanften Bogen macht. Und dieser Talbo-den ist entlang der Geraden x2 = x1 ge-richtet.

x2

x1

...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................

............................................................................................................................ ....................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

............................................................................................................................................................................................. ........

...............................................................................................................................................................................................

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

............................................................................................................................................................................................................. ..........

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................................................................

.......................................................................................................................................................................................................................... ................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

...................................................................

............................................................................................................................................................................................................................................................ ..........

...................................................................................................................................................................................................................................................................

.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................................................................................................................................................................................................................................. ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

......................................................................

............................................................................................................................................................................................................................................................................................................................ ...................................................................................................................................................................................................................................................................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..............................................................

.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

...............................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................

Im Vergleich zum vorigen Bild ist hier nurjede zweite Höhenlinie eingezeichnet. DerParameter a hat den Wert 10.

Diesmal sind die Stufen der ’Treppe’ we-sentlich kleiner und das Verfahren kommtnur mühsam voran. Sein Problem ist, daßes schräg zum Tal läuft und dabei nachDurchqueren der engen Talsohle immersofort an den gegenüberliegenden Hangkommt.

Eine weitere Vergrößerung von a würde dasTal noch enger machen und den Fortschrittdes Verfahrens noch weiter bremsen.

Sorgt man dafür, daß das Tal überhauptkeine flache Sohle mehr hat, sondern läßtman die Hänge keilförmig zusammenlau-fen, so bleibt das Verfahren

x2

x1

..............................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................. .......

...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

......................................................................................................................................................................................................... ....

.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

...............................

..........................................................................................................................................................................................................................

schließlich weit außerhalb des Extrempunktes einfach stehen - ohne den geringsten weiteren Fortschritt. Ein Beispiel

82

Page 83: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

dafür wäre die Funktionf(x1, x2) = a2|x1 − x2|+ x2

1 .

Durch Wahl von großen Werten von a kann man den koordinatenweisen Abstieg in beliebiger Entfernung vom Ur-sprung - wo nach wie vor das Minimum liegt - und bei beliebig großen Funktionswerten zum Halten bringen.Bei differenzierbaren Funktionen kann dieser Fall nicht eintreten, aber solche engen Täler sind gerade bei größererAnzahl von Variablen eher die Regel. Diese plausible Methode ist deshalb oft recht uneffektiv und in Fällen, in denendie Funktionswerte aufwendig berechnet werden müssen, nicht zu empfehlen.

5.3 GradientenverfahrenDie Funktion f(x1, x2, . . . , xn) sei in allen Variablen partiell differenzierbar. Der Vektor ihrer partiellen Ableitungenheißt bekanntlich Gradient:

∇f(x) = grad(f)(x) =(∂f

∂x1(x),

∂f

∂x2(x), . . . ,

∂f

∂xn(x))T

.

Sei x∗ eine nicht-stationäre Stelle der Funktion f(x), d. h. ihr Gradient ist dort nicht der Nullvektor. Es sei g einEinheitsvektor in Richtung des Gradienten und ∆x ein beliebiger Vektor der - sehr kleinen - Länge ε. Man kann ihneindeutig darstellen als Linearkombination von g und einem zu g orthogonalen Einheitsvektor r:

g =1

|∇f(x∗)|∇f(x∗) , ∆x = ε1g + ε2r , ε =

√(ε1g + ε2v)T (ε1g + ε2v) =

√ε21 + ε22 .

Die Änderung ∆y, die f(x) erfährt, wenn man sich aus x∗ in x∗ + ∆x begibt, ist dank der vorausgesetzten Kleinheitdes Vektors ∆x in guter Näherung

∆y = (∇f(x∗))T∆x = |∇f(x∗)|(gT∆x) = |∇f(x∗)|(gT [ε1g + ε2v]) = ε1|∇f(x∗)| .

Betrachten wir das letzte Produkt. Am Faktor |∇f(x∗)| kann man nichts ändern, nach Voraussetzung ist er positiv.Auf Grund der Beziehung ε21 + ε22 = ε2 liegt ε1 zwischen −ε und +ε.Im Falle ε1 = ε tritt somit die maximale positive Änderung ∆y ein und bei ε1 = −ε die stärkste Abnahme diesesWertes.4

Der Gradient ist folglich stets die Richtung des stärksten Anstiegs und mit -1 multipliziert ergibt er die Richtung desstärksten Abfalls.Wenn man also das Minimum der Funktion f(x) sucht, so bietet es sich an, aus einem Startpunkt x(0) heraus entgegendie Richtung des Gradienten zu laufen. Es geht zunächst immer bergab, es sei denn, man war in einem stationärenPunkt (z. B. in einem Extremwert). Man geht solange in diese Richtung, bis das Gelände (die Funktion) wiederansteigt. Der tiefste Punkt des Weges sei x(1). Dort berechnet man einen neuen Gradienten und macht sich entgegendessen Richtung erneut auf den Weg, usw..5

Faktisch ermittelt man also jeweils das Minimum t∗ der Funktion gk(t) des skalaren Arguments t > 0:

g(t) = f(x(k) − t · ∇f(x(k))) , x(k+1) = x(k) − t∇(x(k)) :

Es geht immer abwärts, und zwar aus dem jeweiligen Startpunkt heraus stets in die Richtung der stärksten Abnahme.Es ist zu erwarten, daß dieses Verfahren effektiver ist als das des koordinatenweisen Abstiegs, wo man nur in die rechtwillkürlichen und nicht an das Problem gebundenen Richtungen der Koordinatenachsen sucht.Wenn man den neuen Punkt x(k+1) im Minimum von g(t) sucht, so ist das eine Stelle, wo die Gerade x(k)−t ·∇f(x(k))eine Tangente an einer Höhenlinie ist. Der Gradient steht stets senkrecht auf der Höhenlinie, demzufolge ist jede neueRichtung orthogonal zur vorigen.Zur Demonstration wird jetzt eine Art Sombrero gebastelt: (x2

1 + x22 − 1)2.

Diese Funktion ist nichtnegativ. Auf dem Kreis x21 + x2

2 = 1 ist sie Null, innen hat sie eine Ausbeulung nach obenund außerhalb dieses Kreises geht die Krempe wiederum nach oben.Diese Funktion wird mit a2 multipliziert, was sie ggfs. in die Höhe zieht, und ein wenig angekippt, indem x1 addiertwird. Der kleinste Wert liegt dann auf der x1-Achse, mehr oder weniger unterhalb von -1. Die resultierende Zielfunktion

f(x1, x2) = a2(x21 + x2

2 − 1)2 + x1

ist gerade in x2 : f(x1,−x2) = f(x1, x2). Es reicht also aus, das Verfahren bei x2 > 0 zu betrachten.

4Diese Beziehung gilt für endliche Werte von ε nur genähert. Durch den Grenzübergang ε→ 0 ergibt sie sich korrekt.5Ist Ihnen die Ähnlickeit dieser Vorgehensweise mit dem gedämpften Newton-Verfahren aufgefallen?

83

Page 84: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

............................

................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

...............................

........................x2

x1

............................................................................................................................................................................................................................................................................................................................................................................................

a = 3

|

............................

.........................................................................................................................................................................................................................................

...................................................................................................................................................................

a = 30 a = 300

Der Startpunkt war in allen drei Fällen derselbe: x1 = −0.3, x2 = 1.5. Der erste Schritt ist in allen Fällen rechtgründlich - man steigt ein ganzes Stück die Krempe des Sombreros hinab. Der Kreis x2 + y2 = 1 ist jeweils punktiertangegegeben, bei a2 = 3 auch die Lage des Minimums auf der x1-Achse (in den anderen Fällen ist es sehr nahe amKreis).Bei a2 = 3 ist das ’Tal’ recht breit. Das Gradientenverfahren kommt ganz gut voran, obwohl es nicht etwa einfach dieTalsohle entlanglaufen würde wie ausgeschüttetes Wasser. Man erkennt - im Rahmen der Güte des Zeichenprogramms- die rechten Winkel der Schritte, die hier auch nicht mehr parallel zu den Koordinatenachsen verlaufen.Bei a2 = 30 ist das Tal enger und bei a2 = 300 sehr eng. Das Verfahren neigt dazu, nur noch von einer Seite des Talszur gegenüberliegenden zu wechseln, ohne sich in Richtung der leicht abfallenden Talsohle voranzuarbeiten. Damitkommt man nicht mehr von der Stelle.6

Auch diese Situation ist leider typisch für das Gradientenverfahren. In der beschriebenen einfachen Form ist es nurbegrenzt zu gebrauchen.

Es gibt Weiterentwicklungen. So kann man aus einigen vorigen x(k) eine günstige Richtung schätzen, in die manwesentlich vorankommt.Fakt bleibt allerdings, daß simple und anschauliche Algorithmen leider meist nicht zu praktikablen Methoden führen- die realen Optimierungsaufgaben sind meist zu widerspenstig.

5.4 Heuristische SucheArchimedes’ Ausruf ’Heureka!’ verlieh einer Reihe von Methoden den Namen, die sich, vereinfacht gesagt, dadurchauszeichnen, daß ihr Funktionieren naheliegend und plausibel ist, sich aber nicht immer scharf begründen läßt. Untergewissen formulierbaren Bedingungen konvergiert das Gradientenverfahren immer zum Extrempunkt, möglicherweiseaber unerträglich langsam. Ein heuristisches Verfahren kann in einem eigentlich lösbaren Fall versagen, wird aber inder Regel nicht schlecht funktionieren und es ist oft effektiver als eine streng begründbare Methode. Obendrein ist esoftmals einfacher zu verstehen und zu programmieren.

Nehmen wir eine eindimensionale Minimumsuche. Wir werfen eine Strecke der Länge h irgendwo in den in Fragekommenden Bereich: a0 und b0 = a0 + h.In den beiden Enden wird der Funktionswert berechnet. Falls nun f(a0) > f(b0) ist, so wird a1 = b1 gesetzt undb1 = b0 +h = a1 +h und bei f(a0) < f(b0) wird a1 = a0−h und b1 = a0. Einfach ausgedrückt: Das Ende der Strecke,an dem der größere Wert der Funktion registriert wird, wird über das andere Ende geklappt.Dieser Prozeß wird wiederholt. Damit ’kullert’ oder ’purzelt’ die Strecke in Richtung Minimum.Wenn sie dies erreicht und durchschritten hat, so kippt sie im nächsten Schritt wieder zurück. Das Programm mußalso prüfen, ob die Strecke wieder in eine Lage kommt, in der sie schon war. Tritt dies ein, so verkürzt man die Strecke(z. B. auf die Hälfte) und behält das Ende mit dem kleineren Funktionswert bei. Damit wird erneut gestartet, usw..Man hört auf, wenn eine ausreichend kurze Strecke hin und her kippt. In diesem Bereich muß das Minimum liegen.Falls die beiden Funktionswerte gleich sind, so wird die Strecke mit Hilfe einer Zufallszahl ein wenig verschoben.Hat man den Wert h sehr klein gewählt - gemessen an den Maßstäben der Zielfunktion - so sind anfangs sehr vieleSchritte notwendig, um überhaupt in die Nähe des Minimums zu kommen. Man kann das Problem mildern, indemman pro Schritt h etwas vergrößert, z. B. um den Faktor 1.3.Mit dieser Darstellung soll das Prinzip eines heuristischen Verfahrens erläutert werden. Verglichen mit der Methodevom Goldenen Schnitt ist es uneffektiv. Allerdings kommt es ebenfalls nur mit Funktionswertberechnungen aus undbenötigt keine Ableitungen. Und man muß keinen Suchbereich eingrenzen.Nun soll diese Methode für den mehrdimensionalen Fall verallgemeinert werden. Wenden wir sie zunächst in derEbene an.Um in zwei Richtungen zu suchen braucht man drei Punkte. Sie seien als gleichseitiges Dreieck mit der Seitenlängeh angeordnet. Ein solches wird also in das interessierende Gebiet geworfen (gezielt oder mit Hilfe des Zufallszahlen-generators) und in den drei Eckpunkten werden die Funktionswerte berechnet. Einer der drei Werte ist der größte,

6Vgl. das Schicksal von Daniel Webster in: Mark Twain, Der berühmte Springfrosch von Calaveras.

84

Page 85: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

ansonsten wird das Dreieck leicht verschoben. Nun wird diese Ecke an der gegenüberliegenden Dreieckseite gespiegelt.Man kann es sich auch so vorstellen, daß das Dreieck um diese Seite geklappt wird.Danach wird der neue Wert berechnet und wiederum eine Ecke gespiegelt, usw.. Das Dreieck ’kullert’ in Richtungzum Minimum.Wenn ein Minimum existiert, so geht das solange, bis es in eine Lage gerät, in der es schon war. Nun wird es verklei-nert, usw., analog zur Strecke.Im dreidimensionalen Raum braucht man vier Testpunkte, die man im gleichen Abstand voneinander anordnet. Esergibt sich ein gleichseitiges Tetraeder.Die Ecke mit dem größten Funktionswert wird an der gegenüberliegenden Fläche gespiegelt, usw..Diese geometrischen Gebilde heißen Simplize,7 sie stellen die einfachsten Objekte in der jeweiligen Dimension n dar:bei n = 1 die Strecke, bei n = 2 das Dreieck, bei n = 3 das Tetraeder. Jedes wird durch n + 1 Simplize der nächst-niederen Dimension begrenzt: die Strecke durch zwei Punkte, das Dreieck durch drei Strecken, das Tetraeder durchvier Dreiecke. Verbindet man - im vierdimensionalen Raum! - fünf Tetraeder miteinander, so entsteht ein vierdimen-sionales Simplex. So einfach ist das.

Um das Verfahren zu realisieren braucht man nur eine Vorschrift zur Bildung eines ersten Simplex’ und eine zurSpiegelung eines Eckpunktes.Der Bau eines Simplexes erfolgt Eckpunkt für Eckpunkt rekursiv. Ein erster Eckpunkt x(1) wird einfach durch Wahlseiner n Koordinaten festgelegt (z. B. zufällig mit x(1)

k = ak + (bk − ak) · Random, wodurch die Wahl gleichverteiltin einem n-dimensionalen achsenparallelen Quader mit den beiden gegenüberliegenden Ecken a und b erfolgt). Dannwird die Richtung zum zweiten Punkt x(2) gewählt, indem man zunächst einen Vektor y(2) 6= Θ wählt (oder ’auswür-felt’).Die ’Kantenlänge’ des Simplexes - d. h. der Abstand seiner Ecken - sei festgelegt als h > 0. Man setzt

x(2) = x(1) +h

|y(2)|y(2) .

Nun wird ein Vektor y(3) 6= Θ senkrecht zu y(2) gewählt, also irgendeine nichtriviale Lösung der homogenen Gleichung

y(2)1 y

(3)1 + y

(2)2 y

(3)2 + y

(2)3 y

(3)3 + . . .+ y(2)

n y(3)n = 0

bezüglich y(3)k bei gegebenen y(2)

k ; dieser wird, mit einer Zahl λ3 multipliziert, an den Mittelpunkt der Verbindungs-geraden von x(1) nach x(2) - also an den Schwerpunkt dieser beiden Punkte - angetragen:

x(3) =1

2(x(1) + x(2)) + λ3y

(3) .

Der Parameter λ3 ist nun so zu bestimmen, daß der Abstand von x(3) zu x(1) gerade h beträgt (der zu x(2) stimmtdann offenbar auch): ∣∣∣1

2(x(1) + x(2)) + λ3y

(3) − x(1)∣∣∣ = h .

Das ist eine quadratische Gleichung in λ3. Jede ihrer beiden Lösungen ist geeignet.Der Richtungsvektor y(4) 6= Θ sei senkrecht zu y(2) und y(3), er wird als irgendeine nichttriviale Lösung des Systemshomogener Gleichungen

y(2)1 y

(4)1 + y

(2)2 y

(4)2 + y

(2)3 y

(4)3 + . . .+ y(2)

n y(4)n = 0 , y

(3)1 y

(4)1 + y

(3)2 y

(4)2 + y

(3)3 y

(4)3 + . . .+ y(3)

n y(4)n = 0

bestimmt. Man trägt ihn, mit λ4 multipliziert, an den Schwerpunkt der ersten drei Ecken an:

x(4) =1

3(x(1) + x(2) + x(3)) + λ4y

(4)

und fordert den Abstand h der entstehenden Ecke x(4) zu z. B. x(1):∣∣∣13

(x(1) + x(2) + x(3)) + λ4y(4) − x(1)

∣∣∣ = h ,

usw..Damit wird also ein Simplex gebildet. Im geschilderten Bereich - d. h. bis zur vierten Ecke - kann man sich denAblauf, der zu einem Tetraeder führt - mit den Zwischenstationen Strecke und Dreieck - unmittelbar geometrischvorstellen.Nun zur Spiegelung eines Eckpunktes an der gegenüberliegenden ’Fläche’. Der Einfachheit halber sei es x(1), dergespiegelt werden soll. Man bestimmt also den Schwerpunkt x(s) jener Fläche:

x(s) =1

n− 1

n∑k=2

x(k) ,

7Das ist der Plural; im Singular: Simplex. (vgl. ’Matrix’)

85

Page 86: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

(im allgemeinen Fall ist dies die Summe aller Eckpunkte mit Ausnahme des zu spiegelnden) und gewinnt die Spiegelungx(1) über die Formel

x(1) = x(s) − (x(1) − x(s)) = 2x(s) − x(1) .

Leider hat auch dieses Verfahren mit engen Tälern seine Schwierigkeiten.

Insgesamt erweist es sich, daß simpel konzipierte Optimierungsverfahren nur bei recht einfachen (niedrige Dimension,d. h. geringe Anzahl von zu optimierenden Parametern) und gutartigen Problemen zufriedenstellend arbeiten. An-sonsten sind Modifikationen notwendig, die das Problem umformulieren oder der Methode anpassen. So kann manz. B. durch eine Variablentransformation (Drehung und Streckung) Täler weiten, so daß aus der Via Mala eine ArtGudbrandsdal wird. Die Parameter dieser Transformation - die in jedem Schritt oder alle paar Schritte ausgeführtwerden muß - zu berechnen ist allerdings nicht einfach und auch mit Aufwand verbunden.Insgesamt sollte man bei größeren Optimierungsproblemen ggfs. rechtzeitig auf gute mathematische Software orien-tieren und nur wenig in eigene Programmierversuche investieren. Zumindest ist ein eingehendes Literaturstudium zuempfehlen.

5.5 Optimierung mit NebenbedingungenZusätzlich zur Zielfunktion f(x) gibt es jetzt noch m Nebenbedingungen. Der Einfacheit halber seien sie in der Formgl(x) ≥ 0, l = 1, 2, . . . ,m, angegeben. Jede Nebenbedingung definiert eine TeilmengeMl des n-dimensionalen Raumes,auf der sie erfüllt ist. Der zulässige Bereich Z ist der Durchschnitt aller Mengen Ml:

Z =

m⋂l=1

Ml .

Der Extremwert kann nun einerseits im Innern von Z angenommen werden - dann sind die Nebenbedingungen eigent-lich bedeutungslos - oder aber am Rande von Z. Für den ersten Fall sind die Verfahren der Extremwertsuche ohneNebenbedingungen geeignet. Für den zweiten gibt es eine Reihe spezieller Methoden. Hier soll nur eine Variante dis-kutiert werden, die es erlaubt, die Nebenbedingungen in die Zielfunktion zu übernehmen und ansonsten abzuschaffen.Das sind die sogenannten Straf- oder Barriereverfahren. Bei den ersteren räumt man dem Verfahren prinzipiell dieMöglichkeit ein, den zulässigen Bereich zu verlassen, bestraft es aber dafür. Die anderen hindern das Verfahren amVerlassen, indem sie bereits die Annäherung an den Rand von Z bestrafen.Sei - wiederum der Einfachheit halber - jede Funktion gl stetig und höchstens auf dem Rand von Z gleich Null, abernicht im Innern. Dort ist sie demzufolge positiv. Gesucht wird wiederum ein Minimum.Diskutieren wir zunächst ein Barriereverfahren: Man gibt eine Folge εk > 0, εk > εk+1 −→ 0, vor und betrachtet(z. B.!) auf dem Innern von Z eine Zielfunktion der Form

Fk(x) = f(x) +

m∑l=1

εkgl(x)

.

Deren Minimum sei nun gesucht und mit x∗(k) bezeichnet.Nehmen wir die Zielfunktion einer einzigen Variablen x: f(x) = x. Ihr Minimum werde auf der Menge Z = [0, 1]gesucht, die durch die Nebenbedingung g(x) = x(1 − x) ≥ 0 definiert ist. Offenbar wird das Minimum in x = 0angenommen.Gehen wir zu

Fk(x) = x+εk

x(1− x)

über. Diese Funktion hat für ε1 = 1 und ε2 = 0.1 das folgende Aussehen:

..............................................................................................................................................................................................................................................................................................................................................................

...................................................................................................................................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................F (x)

x............. ............. ............. ............. ............. ............. .......................... ............. ............. ............. ............. ............. .............

............. ............. ............. ....................................................................................................................................................................................................................

|

ε1 = 1........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

...........................................................................................

...........................................................................................................................................................................................................................................................................................................

|.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................F (x)

x............. ............. ............. ............. ............. ............. .......................... ............. ............. ............. ............. ............. .............

............. ............. ............. ....................................................................................................................................................................................................................

ε2 = 0.1

86

Page 87: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Die jeweiligen Minima sind auf der x-Achse markiert, die ursprüngliche Zielfunktion ist gestrichelt.Mit Abnahme der Werte von εk werden die Funktionen Fk(x) der Zielfunktion f(x) im Innern des Abschnitts immerähnlicher. Demzufolge werden ihre Minima xk vermutlich in Richtung des (oder eines) Minimums x∗ von f(x) gehen.Die in f(x) hinzugefügte Summe, die mit ihr zusammen Fk(x) ergibt, sorgt dafür, daß die neue Zielfunktion Fk(x) inder Nähe des Randes stark ansteigt. Bei der Minimumsuche vermeidet man es also automatisch, dem Rand zu nahezu kommen. Dieses Anwachsen bildet in der Nähe der Randes eine Barriere, daher der Name.Der Übergang von ’fast’ f(x) in diesen Barrierebereich wird mit kleiner werdenden ε immer abrupter. Das kannproblematisch werden. Deshalb lohnt es sich, mit einem relativ großen Wert von ε zu beginnen und es schrittweise zuverkleinern. Man kann dann anfangs vergleichsweise grob arbeiten, denn diese Funktionen Fk(x) sind glatt. Späterist man bereits nahe am gesuchten Minimum x∗ und deshalb benutzt man dort sowieso nur kleine Schritte.Ein Strafverfahren könnte beispielsweise so aussehen:Außerhalb des zulässigen Bereiches Z ist überall wenigstens eine der Nebenbedingungen negativ. Nehmen wir derEinfachheit halber an, sie werde mit wachsendem Abstand zum (von ihr definierten) Rand immer negativer, so daßdieser Wert ein gewisses Abstandsmaß ist. Sei ferner M > f(x) ∀x ∈ Z ein Wert, der größer als jeder Wert derZielfunktion im zulässigen Bereich ist.Dann definiert man eine neue Zielfunktion, die jetzt auf dem ganzen Raum Rn benutzt werden kann:8

F (x) =

f(x), x ∈ Z

M −mingj(x) : j = 1, 2, . . . ,m, x /∈ Z .

Der abgezogene Wert wird mit der Entfernung von Z immer größer (positiv!).Nun kann man also ein Optimierungsverfahren9 zur Minimumsuche starten und es ohne Beschränkung arbeiten lassen.Gerät es dabei aus dem zulässigen Bereich heraus, so wird es dort mit einem so großen Funktionswert bestraft, daßes sich sofort reumütig nach Z zurücktrollt. Letztlich muß es das Minimum dort finden.

8Sollte eine Nebenbedingung im betrachteten Punkt außerhalb von Z nicht definiert sein, so läßt man sie dort einfach in derBetrachtung weg.

9Nicht das Gradientenverfahren, denn F (x) ist unstetig! Will man dieses anwenden, so ist die Straffunktion sorgfältiger zukonstruieren.

87

Page 88: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 6

Approximation von Funktionen

6.1 ProblemstellungenIn diesem Kapitel werden im wesentlichen zwei Problemstellungen betrachtet, die miteinander verwandt sind:1. Gegeben ist eine Funktion f(x), gesucht ist eine einfachere Funktion ψ(x), die diese auf einem gewissen Intervallannähert, oder2. gegeben ist eine Tabelle von Funktionswerten (xk, yk), k = 1, 2, . . . ,m, gesucht ist eine Funktion ψ(x), die diesemöglichst gut reproduziert: yk ≈ ψ(xk).In der Regel gibt man den Typ der Funktion ψ(x) vor. Sie enthält aber noch gewisse Parameter a1, a2, . . . , an, diegeeignet bestimmt werden müssen. Ihre Ermittlung ist die eigentliche Aufgabe.Bei der Auswahl des Funktionstyps muß man sich von der Spezifik der Aufgabe leiten lassen. Hat man eine halbwegsglatte Funktion im Bereich 0 ≤ x ≤ 3 anzunähern, so kann man versuchen, dafür ein Polynom zu verwenden.Braucht man dagegen eine Näherung zu einer auf der gesamten reellen Achse definierten ungeraden Funktion, die imPositiven ein einzelnes Maximum hat und dann wieder gegen Null strebt, ohne die Achse zu schneiden, so kann manvielleicht

ψ(x; a1, a2) =a1x

1 + a2x2

benutzen, weil sie ähnliche Eigenschaften aufweist.Ist die zu approximierende Funktion iher Natur nach periodisch, so bieten sich Summen von Winkelfunktionen an,usw..Häufig wird die folgende Vorgehensweise angewandt: Man gibt n Funktionen ϕk(x) vor und stellt ψ(x) als derenLinearkombination

ψ(x) =

n∑k=1

akϕk(x)

mit zu bestimmenden Koeffizienten ak dar. Damit wird die Approximationsaufgabe linear (zumindest in einem ge-wissen Sinne).Beispiel: n = 4, ϕk(x) = xk−1; damit wird ψ(x) einfach ein kubisches Polynom: ψ(x) = a1 + a2x+ a3x

2 + a4x3.

Die Techniken der Annäherung unterscheiden sich nach der Art, wie die approximierende Funktion ψ(x) an die Aus-gangsfunktion f(x) angekoppelt wird:1. mögliche Forderung:f(x) und ψ(x) sollen in einer Stelle x0 dieselben Funktionswerte und dieselben Ableitungswerte - bis hin zur n−1-ten- besitzen.Wenn ψ(x) ein Polynom ist, so ergibt dies die Formel von Taylor.Diese bedeutet allerdings meist nur in einer gewissen Umgebung von x0 eine gute Näherung.Man erkennt aber den Sinn der Vorgehensweise: Das Taylor-Polynom zu ex in x0 = 0 kann man aufstellen, ohnemit dem Taschenrechner Werte dieser Funktion auszurechnen. Man kommt also mit einem speziellen Wert aus undkann daraus eine Berechnungsvorschrift für alle Werte (zumindest eines gewissen Bereiches) konstruieren.

2. mögliche Forderung:Die Funktionen f(x) und ψ(x) stimmen in n ausgewählten Punkten xk exakt überein: f(xx) = ψ(xk).Dies führt zur Interpolation.Beispiel: Man hat nur einen ganz simplen Taschenrechner mit Wurzelfunktion. Benötigt wird eine Darstellung derSinusfunktion im Bereich von −90o bis 90o.Man macht den Ansatz ψ(x) = a1x + a2x

3 + a3x5 + a4x

7. Er ergibt eine ungerade Funktion (mit Nullstelle inx = 0, wie es sich für ungerade Funktionen gehört). Die vier Koeffizienten bestimmt man aus den Forderungenψ(30) = 0.5, ψ(45) =

√2/3, ψ(60) =

√3/2 und ψ(90) = 1. Das ergibt ein lineares Gleichungssystem, wie später

ausgeführt wird. (Diese Vorgehensweise ist nicht günstig, das soll nur ein Beispiel sein.)

88

Page 89: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

3. mögliche Forderung:Die maximale absolute Abweichung |ψ(x)− f(x)| auf einem Abschnitt a ≤ x ≤ b sei minimal.Diese Bedingung ergibt die sogenannte gleichmäßige Approximation.4. mögliche Forderung: Das folgende Integral sei minimal:∫ b

a

[ψ(x)− f(x)]2 dx

Es resultiert die mittelquadratische Approximation.

In der Praxis können noch Modifikationen auftreten. Beispielsweise wird im entsprechenden Punkt demonstriert, wiesich die gleichmäßige Approximation zu ex auf [0,1] finden läßt. Diese stimmt zwar gut mit ex überein, weicht abermeist doch ein wenig ab. Will man diese Funktion in einem ’Taschenrechner’ o. ä. nutzen, so wird kaum jemand merken,wenn e0.644317 geringfügig abweicht. Aber e0 = 0.99999998176 fällt unschön auf. Man braucht also Näherungsformeln,die gewisse exponierte Werte korrekt berechnen und ansonsten ausreichend genau sind.1

Bei der Anpassung einer Funktion an eine Tabelle kann man die Forderungen 3 und 4 analog übernehmen.

6.2 Berechnung von GrundfunktionenIn diesem Punkt sollen einige Bemerkungen zur Berechnung der Funktionen gemacht werden, die man üblicherweiseauf dem Taschenrechner findet. Es handelt sich teilweise nur um sehr einfache Algorithmen, die man schnell pro-grammieren kann, deren Qualität aber auch die von Billigprodukten ist. Immerhin ist ihr Studium geeignet, für dieSpezifik der Berechnung von Funktionen zu sensibilisieren und eine gewisse Immunität gegen typische Fehler einesvöllig laienhaften Herangehens zu erzeugen.Die Darstellung soll auch die Erkenntnis vermitteln, daß es sich lohnt, die Eigenschaften der jeweiligen Funktion(Additionstheoreme, ...) auszunutzen. Einfache Berechnungsvorschriften basieren auf Potenzreihendarstellungen, dieim Falle der Grundfunktionen leicht zu programmieren sind. Die Konvergenzgeschwindigkeit einer Potenzreihe hängtaber entscheidend von x ab - dieser Wert sollte möglichst nahe bei Null sein. Durch geeignete Umformungen kannman dies in der Regel erreichen.Zu detaillierteren - und vor allem ggfs. effektiveren - Methoden, auch zur Berechnung der sogenannten Höheren oderSpeziellen Funktionen, vergleiche man

- M. Abramowitz, I. A. Stegun Handbook of mathematical functions, Dover Publications, Inc.- Spravoqna Matematiqeska Biblioteka: Matematiqeski$i analizL. A. Lsternik, O. A. Qervonenkis, A. P. npol~ski$i:Vyqislenie lementarnyh funkci$i, FIZMATGIZ, Moskva, 1963

- Y. L. Luke, Mathematical functions and their approximations, Academic Press, Inc.1. Quadratwurzel√a wird als Lösung der Polynomgleichung f(x) = x2 − a = 0 mit dem Newton - Verfahren ermittelt; s. d. und

vergleiche mit der zugehörigen Übungsaufgabe.Für die n-te Wurzel wird dieses Verfahren entsprechend modifiziert; analog.

2. Exponentialfunktion

1. Idee: Man stellt x = m + z dar. Dabei ist m die Rundung von x auf die nächstliegende ganze Zahl und es gilt|z| ≤ 0.5.Dann wird

ex = em+ z = em · ez .Der erste Faktor kann durch eine mäßige Anzahl von Multiplikationen ermittelt werden.2

Es geht also nur um die Berechnung von ez mit |z| ≤ 0.5. Das kann mit Hilfe der Potenzreihe geschehen. Das Restgliedder Taylor-Formel beim Abbruch bei zn ist hier eξ · zn+1/(n + 1)!, dabei liegt ξ zwischen 0 und z. Man kann dasRestglied also stets betragsmäßig mit e0.5 ·0.5n+1/(n+1)! abschätzen. Diese Werte sind in der nachstehenden Tabelledargestellt:

n e/(n+ 1)! n e/(n+ 1)! n e/(n+ 1)! n e/(n+ 1)!

1 2.06E-01 6 2.56E-06 11 8.40E-13 16 7354E-202 3.43E-02 7 1.60E-07 12 3.23E-14 17 9.82E-223 4.29E-03 8 8.87E-09 13 1.15E-15 18 2.59E-234 4.29E-04 9 4.44E-10 14 3.85E-17 19 6.46E-255 3.58E-05 10 2.02E-11 15 1.20E-18 20 1.54E-26

1Zu ähnlicher Vorgehensweise in der Dorfarchitektur vgl. G. A. Potemkin.2Etwa 1.5 lnm Multiplikationen; man vergleiche mit der betreffenden Übungsaufgabe zum effektiven Berechnen von xn!

89

Page 90: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Diese Konvergenz ist beeindruckend schnell. In Wirklichkeit ist die Situation noch besser, denn das Restglied kannman immer durch den Betrag des letzten Summanden, multipliziert mit e0.5|z|/(n+ 1), abschätzen:∣∣∣∣eξ · zn+1

(n+ 1)!

∣∣∣∣ ≤ e|z| ·∣∣∣ z

n+ 1

∣∣∣ · ∣∣∣∣znn!

∣∣∣∣ ≤ e0.5 ·∣∣∣ z

n+ 1

∣∣∣ · ∣∣∣∣znn!

∣∣∣∣ .Falls |z| deutlich kleiner als 0.5 ist konvergiert dieser Ausdruck noch schneller.Verlangen wir eine relative Genauigkeit δ und beziehen wir sie auf den kritischsten Fall e−0.5, so sind wir auf dersicheren Seite, wenn wir für den Betrag des Restgliedes fordern, er möge kleiner als e · δ sein.Es resultiert das folgende Programm zur Ermittlung von ez. Der berechnete Wert steht letztlich in s:

s:=1; p:=z; k:=1;1: s:=s+p; k:=k+1; p:=z∗p/k;

if 2.72∗abs(p) > delta then goto 1;s:=s+p;

Dabei wurde e durch den (etwas) größeren Wert 2.72 ersetzt.Die Summanden (in p) werden rekursiv errechnet! Damit sind pro Schritt nur vier Operationen erforderlich. Bei einemδ = 10−10 sind lt. Tabelle maximal 10 Schritte nötig, das wären damit 40 Operationen.Die letzte Anweisung ist eigentlich überflüssig, aber es widerstebt doch etwas, den berechneten Wert nicht zu ver-wenden.

Achtung! Das obenstehende Programm sollte nicht zur Berechnung von ex im allgemeinen Fall (d. h. bei |x| > 0.5)eingesetzt werden!Bei x > 0 rechnet es zwar immer richtig, braucht aber bei größeren Werten von x ziemlich viele Operationen.Ist x << 0 (z. B. x ≈ −20), so entstehen aber durch Auslöschung völlig unsinnige Werte: negative oder solche größer1. - Wenn man sich schon auf dieses Programm versteift, so sollte man damit immer e|x| berechnen und anschließendbei x < 0 davon einfach den Kehrwert bilden.2. Idee: Man formt um:

ex = e2n · 2−nx =

(e2−nx

)2n

.

Den Wert von n wählt man so, daß 2−n|x| klein ist - zumindest unter 1. Dann ermittelt man den Wert der Exponen-tialfunktion in der Klammer wie beschrieben, um anschließend durch n-faches Quadrieren ex zu gewinnen.Die Methode ist recht effektiv, hat aber einen Nachteil: I. a. ermittelt man diesen internen Wert mit einem gewissenrelativen Fehler δ0, der bei jedem Quadrieren etwa verdoppelt wird. Der relative Fehler des Resultats ist damit etwa2nδ0 und das kann unakzeptabel viel sein.Diese Idee ist anwendbar, wenn |x| - und damit n - nicht allzugroß ist und wenn man den Wert von ex nicht sehrgenau braucht.

3. Natürlicher Logarithmus:

Aus diesem erhält man ggfs. mühelos den dekadischen oder binären Logarithmus.Man kann ihn aus der soeben gewonnenen Funktion ex gewinnen: y = lnx ist Lösung der Nullstellenaufgabe ey−x = 0.Es sei aber auch die direkte Berechnung betrachtet.Wenn man Zugriff auf die Gleitkommastruktur von x hat, so kann man die Beziehung

lnx = ln (M · 2n) = lnM + n · ln 2 = lnM + 0.693 . . . · n

ausnutzen und braucht also nur lnM mit 1 ≤ M < 2 zu ermitteln.3 Dafür ist die Potenzreihe geeignet, die fürM = 1 + z mit 0 ≤ z < 1 stets konvergiert:

lnM = ln(1 + z) =

∞∑k=1

(−1)k+1 zk

k,

allerdings erfolgt diese Konvergenz für z-Werte nahe 1 unakzeptabel langsam.Nun ist 1 ≤

√M <

√2 = 1 + 0.414 . . . und damit wird,

√M = 1 + w gesetzt:

lnM = 2 ln√M = 2 ln(1 + w) = 2

∞∑k=1

(−1)k+1wk

k.

In dieser Reihe ist jeder Summand (betragsmäßig) bereits weniger als 42% seines Vorgängers und damit konvergiertsie schon halbwegs erträglich. Allerdings wird die Reihe mit 2 multipliziert, wodurch ihr Abbruchfehler verdoppeltwird.Die Umformung

lnM = ln

(√2M√

2

)= ln(

√2z) = ln

√2 + ln z = 0.34657 . . .+ ln z

3Was kann man tun, wenn man nicht an die Einzelteile der Gleitkommazahl herankommt?

90

Page 91: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

erreicht denselben Zweck:√

2/2 = 0.7071067 . . . ≤ z <√

2 = 1.41421 . . ., aber die Multiplikation mit 2 entfällt undden Summanden ln

√2 kann man sehr genau ausrechnen und ins Programm hineinschreiben.

Die Berechnung von lnM kann also so erfolgen:

z:=0.7071067∗M-1; p:=z; s:=z; k:=2;1: p:=z∗p; s:=s+p/k; k:=k+1;

if abs(p) > delta then goto 1;Eine etwas aufwendigere Variante, die dafür sehr viel schneller rechnet:Man bildet k = [10M ] − 10; die Klammer bedeutet den ganzzahligen Teil. Sei z. B. M = 1.57723562 . . ., dann istk = [15.7723562]− 10 = 15− 10 = 5.Einem im Programm als Festdaten eingebauten Feld a[k] = ln(1 + 0.1k) entnimmt man den Wert a[5] = ln 1.5 =0.405465 . . . und berechnet

lnM = ln(

1.5M

1.5

)= ln 1.5 + ln

1.57723562

1.5= 0.405465 . . .+ ln 1.051490 . . . =

= 0.405465 . . .+ ln(1 + 0.051490 . . .) .

Die Potenzreihe ist hier also auf einen Wert 0.05149... anzuwenden. Die Summanden verringern sich damit pro Schrittauf rund ein Zwanzigstel des vorigen. Im schlimmsten Fall (M=1.09999...) sinken sie auf weniger als ein Zehntel. Dasbringt natürlich mehr als die 42% in der vorigen Variante.Die letzte Vorgehensweise - haben Sie’s gemerkt? - orientierte sich am Dezimalsystem, die Gewohnheit hatte zuge-schlagen. Das geht natürlich, aber man muß es nicht so machen. Genausogut könnte man k = [16M ]− 16 bilden; zudiesem Zweck reicht es - im Falle der im Kapitel 2 als Beispiel geschilderten Gleitkommaarithmetik - aus, die Bitsvom 3. bis zum 6. aus dem ersten Byte herauszulösen. Das geht durch ein AND mit einer Maske, danach wird rotiert- alles sehr schnelle Assemblerbefehle.Weitere Verbesserungen sind denkbar.4

4. Winkelfunktionen:

Es reicht aus, den Sinus und Cosinus berechnen zu können, der Tangens (und der Cotangens) ist ihr Quotient undauch die selten gebrauchten Sekansfunktionen ergeben sich aus diesen beiden.Wegen sin(x+ π/2) = cosx genügt es, wenn man den Sinus berechnen kann. (Das ist nicht unbedingt die günstigsteVorgehensweise.)Bevor man die Potenzreihe anwendet erfolgt unbedingt die Reduktion des Arguments zu einem möglichst kleinenWert. Nutzt man die Prozedur z. B. zum Auswerten einer Fourierreihe, so kann in sin kx ein sehr großes Argumentstehen - es darf mithin keineswegs davon ausgegangen werden, daß beim Aufruf |x| ≤ 2π gilt.Man dividiert nun x durch 2π und rundet diesen Quotienten auf die nächstliegende ganze Zahl n:x = 2nπ+ x1. Dann ist sinx = sin(2nπ+ x1) = sinx1 mit −π ≤ x ≤ π. Damit ist man schon in einem festen Bereichdes Arguments, das im schlimmsten Fall betragsmäßig nur wenig über 3 liegen kann.Sei nun = v|x1|, wobei v = ±1 das Vorzeichen enthält. Da der Sinus eine ungerade Funktion ist gilt sinx1 = v · sinx2.Weiter sei

x3 =

x2 , x2 ≤ π/2

π − x2 , x2 > π/2,

und es gilt sinx2 = sinx3.Damit sind wir im Bereich von 0 bis π/2 = 1.570796 . . . ...; man könnte nun zur Not die Potenzreihe starten.Allerdings ist bekanntlich sin 3α = 3 sinα − 4 sin3 α, also gilt auch sinx3 = 3 sin(x3/3) − 4 sin3(x3/3). Setzt manx4 = x3/3 und berechnet man nur den Sinus dieses Wertes, so wird das Argument maximal 0.5236.Jedenfalls kann sin z nun so ermittelt werden (delta bedeutet hier natürlich einen absoluten Fehler):

q:=-z∗z; p:=z; s:=z; k:=2;1: p:=q∗p/(k*(k+1)); s:=s+p; k:=k+2;

if abs(p) > delta then goto 1;Der Wert des Arguments z muß hier nicht so klein gemacht werden wie beim Logarithmus, da die Konvergenz derReihe hier nicht allein auf der Kleinheit von z basiert - es kommt noch wohltuend die Fakultät im Nenner hinzu.

5. Arkusfunktionen

Es genügt, den Arkustangens berechnen zu können, Arkussinus und -cosinus lassen sich darauf zurückführen:

arcsinx =

π/2 , x = 1,

arctan x√1− x2

, |x| < 1,

−π/2 , x = −1.

, arccosx =π

2− arcsinx .

Die Potenzreihe für den Arkustangens

arctanx =

∞∑k=0

(−1)kx2k+1

2k + 1

4C. F. Gauss: ’Es liegt eine Art von Poesie im Berechnen von Logarithmentafeln.’

91

Page 92: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

konvergiert für |x| ≤ 1; wegen des langsam wachsenden Nenners ist sie aber nur für x-Werte brauchbar, die betrags-mäßig deutlich unter 1 liegen.Im Falle x > 1 kann man mit der Beziehung

arctanx =π

2− arctan

1

x

ein Argument unter 1 gewinnen. Bei x < −1 nutze man die Ungeradheit dieser Funktion.Liegt |x| nahe bei 1, so sollte man die dann besser konvergierende Reihe

arctanx =x

1 + x2

[1 +

2

3· x2

1 + x2+

2 · 43 · 5 ·

(x2

1 + x2

)2

+2 · 4 · 63 · 5 · 7 ·

(x2

1 + x2

)3

+ . . .

]verwenden oder man greift auf eine Reihe in Cebyshev-Polynomen (vgl. Punkt ’Approximation im Quadratmittel’,S. 104) zurück:

arctanx =π

4+ 2

∞∑k=0

(−1)k(√

2− 1)2k+1

2k + 1· T2k+1

(x− 1

x+ 1

), 0 ≤ x .

Sie steht in einem der genannten Bücher, aber dort sind sowieso effektivere Algorithmen dargestellt.

6.3 Interpolation

6.3.1 Algebraische PolynomeIm klassischen Sinn bedeutet Interpolation das Berechnen von Zwischenwerten (’zwischen den Polen = Punkten’) inTabellen.Allgemein versteht man darunter das Anpassen einer Funktion an eine Tabelle in der Weise, daß eine perfekteÜbereinstimmung der Funktionswerte mit den Tabellenwerten erzielt wird.Ist die anzupassende Funktion ein algebraisches Polynom, so spricht man von algebraischer Interpolation. Um diesesoll es im Weiteren gehen.Ein Polynom n-ten Grades hat allgemein n + 1 Koeffizienten oder Parameter, unabhängig davon, in welcher Formman es schreibt. Es werden also auch n+ 1 Angaben (Wertepaare) nötig sein, um es zu bestimmen.Umgekehrt, wenn man eine Tabelle mit 8 Wertepaaren erfüllen will, so ist dafür folglich ein Polynom 7. Gradesnotwendig.Diesen Grad muß man nicht ausschöpfen. Wenn die Punkte der Tabelle schön auf einer Geraden liegen, so werden dieKoeffizienten vor x2 bis x7 exakt Null, aber im Ansatz braucht man sie oder aber man läßt nach Feststellung diesesFaktes 5 Wertepaare weg.Wir gehen also aus von einer Tabelle von Werten:

x x0 x1 x2 ... xn−1 xn

y y0 y1 y2 ... yn−1 yn

Es ist praktisch, die Wertepaare ebenso wie die Polynomkoeffizienten von 0 bis n zu numerieren.Es wird naturgemäß vorausgesetzt, daß die Abszissen xk (die Stützstellen oder Knoten genannt werden) paarweiseverschieden voneinander sind: xk 6= xj für k 6= j. Bisweilen ist es bequem, sie als der Größe nach geordnet zu denken.Unter der Voraussetzung der Verschiedenheit der xk existiert stets ein solches Interpolationspolynom und es isteindeutig bestimmt. Man könnte seine Koeffizienten ak aus einem linearen Gleichungssystem der folgenden Artbestimmen:

anxn0 + an−1x

n−10 + . . .+ a2x

20 + a1x0 + a0 = y0

anxn1 + an−1x

n−11 + . . .+ a2x

21 + a1x1 + a0 = y1

anxn2 + an−1x

n−12 + . . .+ a2x

22 + a1x2 + a0 = y2

· · ·anx

nn + an−1x

n−1n + . . .+ a2x

2n + a1xn + a0 = yn

=⇒

xn0 xn−1

0 · · · x20 x0 1

xn1 xn−11 · · · x2

1 x1 1xn2 xn−1

2 · · · x22 x2 1

......

. . ....

......

xnn xn−1n · · · x2

n xn 1

anan−1

...a1

a0

=

y0y1y2...yn

.

Die Systemmatrix V heißt Vandermondesche Matrix. Ihre Determinante ist formelmäßig angebbar:

det(V ) =

n∏i=1

i−1∏j=0

(xi − xj)

Sie ist unter der gemachten Voraussetzung unbedingt von Null verschieden, das System mithin eindeutig lösbar.Aber dieser Fakt kann bequemer direkt aus den Eigenschaften der Polynome geschlußfolgert werden:Seien alle yk = 0. Das Gleichungssystem wird damit homogen und besitzt zumindest eine triviale Lösung.Angenommen, es besäße noch eine nichtriviale Lösung, so existiert also ein nicht identisch verschwindendes Polynom,

92

Page 93: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

dessen Grad höchstens n beträgt, das in n + 1 verschiedenen Stellen x0 bis xn Null wird. Das ist aber unmöglich,es sei denn, das Polynom ist überall Null. Dann sind aber seine Koeffizienten alle Null. Das homogene System hatalso nur die triviale Lösung. Ein Gleichungssystem mit quadratischer Matrix, das im homogenen Fall nur die trivialeLösung hat, ist aber stets eindeutig lösbar.Nochmals zur Eindeutigkeit: Wenn es zwei Polynome vom Grade ≤ n gäbe, die beide die gegebene Tabelle realisierten,so wäre ihre Differenz ebenfalls ein Polynom vom Grade ≤ n und dieses würde in n+ 1 Stellen zu Null - folglich mußes identisch verschwinden und zwischen den beiden Polynomen gibt es mithin keine Differenz.

Mit dem dargestellten Gleichungssystem kann man im Prinzip rechnen, es ist aber aufwendig und bisweilen sehr emp-findlich gegen Rundungsfehler. Eine auf Newton zurückgehende Modifikation vereinfacht die Rechnung wesentlich:Man setzt das gesuchte Polynom in der folgenden Form an:

Pn(x) =

n∑i=0

ai

i−1∏j=0

(x− xj) = a0 + a1(x− x0) + a2(x− x0)(x− x1) + . . .+ an(x− x0)(x− x1) . . . (x− xn−1) .

Damit kann man ein analoges Gleichungssystem aufstellen. Es hat als Systemmatrix aber eine untere Dreiecksmatrixund demzufolge kann man die Lösung umgehend angeben.Offenbar ist bei diesem Ansatz Pn(x0) = a0 und damit folgt a0 = y0.Weiterhin ist

Pn(x1) = a0 + a(x1 − x0) = y0 + a1(x1 − x0) = y1 =⇒ a1 =y1 − y0x1 − x0

.

Das ist übrigens der Anstiegsfaktor aus der 2-Punkte-Form der Geradengleichung.Weiterhin ergibt Pn(x2) = a0 +a1(x2−x1)+a2(x2−x0)(x2−x1) = y2 sofort a2, denn a0 und a1 sind bereits bekannt,usw..Man kann recht bequeme rekursive Rechenvorschriften zur Bestimmung dieser Koeffizienten aufstellen (Stichwort:’Differenzentabelle’; vgl. Beispiel 1, die Berechnung von (k + 1)2(k2 + 1), S. 95 oder im Punkt ’Einbettung’, S. 75),aber das soll hier nicht ausgeführt werden. Bei Bedarf kann man diese den Formelsammlungen entnehmen.

Eine andere Schreibweise geht auf Lagrange zurück. Sie wurde früher kaum praktisch verwandt und war theore-tischen Untersuchungen vorbehalten. Der Grund dafür war der Umstand, daß sie ein Polynom liefert, das zu seinerAuswertung deutlich mehr Operationen benötigt als das in der Form von Newton.Es werden n + 1 sogenannte Einflußfunktionen lk(x) definiert. Das sind Polynome n-ten Grades, die in allen Stütz-stellen xj zu Null werden mit Ausnahme des jeweiligen Punktes xk - dort sei ihr Wert gleich Eins.Ein solches Polynom kann leicht in der Produktform angegeben werden:

lk(x) =∏j 6=k

x− xjxk − xj

=(x− x0)(x− x1) . . . (x− xk−1)(x− xk+1) . . . (x− xn)

(xk − x0)(xk − x1) . . . (xk − xl−1)(xk − xl+1) . . . (xk − xn).

Für den Fall n = 10, xk = k, k = 0, 1, 2, . . . , 10 sind nachstehend die Polynome l0(x), l1(x), l2(x) und l6(x)angegeben:

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.........................................................................................................................................................................................................................................................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.....................................................................................................................................................................................

..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.....

l0(x)

l1(x)/2

l2(x)/4

u

u

uu l6(x)/8

Die Stelle, an der sie Eins werden, ist durch einen schwarzen Kreis markiert. Die Stützstellen liegen in den senkrechtengestrichelten Linien. Dort werden die lk(x) immer Null (mit Ausnahme des jeweiligen Punktes).Man beachte, daß diese vier Funktionen nicht im gleichen Maßstab dargestellt sind!

93

Page 94: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Das gesuchte Interpolationspolynom wird mit diesen Funktionen lk(x) einfach

Pn(x) =

n∑k=0

yk · lk(x) .

Diese Formel gewährleistet die Erfüllung der Bedingung Pn(xk) = yk.

Es resultiert ein sehr einfaches Programm, das anwendbar ist, wenn es nicht auf höchste Effektivität bei der Auswer-tung dieses Polynoms ankommt. Der Funktionswert sei f:

f:=0; for k:=0 to n do begin p:=y[k];for j:=0 to n do if j <> k then p:=p∗(x-x[j])/(x[k]-x[j]);f:=f+p; end;

Wenn die Tabelle der Werte (xk, yk) einer exakten und stetigen Funktion f(x) entstammt, so möchte man annehmen,daß eine Erhöhung der Anzahl der Stützstellen - zumindest im Bereich der Tabelle - dazu führt, daß das Polynomder Funktion immer näher kommt; mathematisch ausgedrückt: limn→∞ Pn(x) = f(x).Es war für die Mathematiker eine Überraschung, als man feststellen mußte, daß dem nicht so ist. Ein drastischesBeispiel stammt von Runge (1901) und bezieht sich auf die eigentlich sehr brave Funktion f(x) = 1/(1+25x2). Diesewird für −1 ≤ x ≤ 1 mit gleichabständigen (oder äquidistanten) Stützstellen xk = 2k/n − 1 interpoliert. Bei n = 10ergibt sich das folgende Bild:

−1.0 −0.8 −0.6 −0.4 −0.2 0.0 0.2 0.4 0.6 0.8 1.0

−1.0 −0.8 −0.6 −0.4 −0.2 0.0 0.2 0.4 0.6 0.8 1.0

−0.5

0.0

0.5

1.0

1.5

2.0

−0.5

0.0

0.5

1.0

1.5

2.0

..................

.................

.................

................

................

................

................

................

...............

................

................

................

................

.................

.................

...................

..................

................

...............

...............

...............

................

................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

........................................................................................................................................................................................................................................................

...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. ............. ............. ............. ............. ............. ............. ............. .............

............. ............. .......................... .............

............. ............. ........................................................................................... ............. ............. ................................................................. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............u uu uu uu u

u uu

Die elf Interpolationsstellen - also das exakte Übereinstimmen von f(x) und Pn(x) - sind als schwarze Kreise markiert.Im Inneren liegen Funktion und Polynom einigermaßen ähnlich. Während aber erstere für x→ ±∞ gegen Null undzum Rand des endlichen Intervalls hin abklingt geht setzt das Polynom zu wilden Ausschlägen an.Für größere Werte von n wird die Situation noch dramatischer. Man kann zeigen, daß für |x| < 0.7266 . . . tatsächlichlimn→∞ Pn(x) = f(x) ist, während außerhalb dieses Bereichs das Polynom mit wachsendem n unbegrenzt wächst(und noch dazu recht schnell).Für die Praxis ist noch kritischer, daß ein Interpolationspolynom höheren Grades recht empfindlich auf Veränderun-gen der Tabellenwerte yk reagieren kann. Es lohnt sich also nicht, durch eine Tabelle von 21 mit Meßfehlern behaftetenWerten ein Polynom 20. Grades legen zu wollen.Besonders ungünstig ist der sehr naheliegende Fall gleichabständiger Stützstellen. Mathematischen Tabellenwerkenentnommene Funktionswerte haben in der Regel diese Eigenschaft, auch Meßwerte werden oft in gleichen Zeitabstän-den usw. erhoben. Kann man die Wahl der n Stützstellen auf dem Abschnitt [a, b] beeinflussen, so sollte man diePunkte (das sind die Nullstellen des auf den betrachteten Abschnitt bezogenen Cebyshew - Polynoms entsprechendenGrades; vgl. S. 104; ihr Nutzen resultiert u. a. aus der dort erwähnten Extremaleigenschaft dieser Polynome)

xk =a+ b

2+b− a

2cos

(n+ 1− k)π

n+ 2

wählen. Diese liegen am Rande des Abschnitts dichter als in der Mitte und sind aus einer Reihe von Gründengünstig. Die bereits betrachtete Funktion f(x) = 1/(1 + 25x2) z. B. ergibt jetzt bei n = 10 das folgende Bild:

94

Page 95: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

−1.0 −0.8 −0.6 −0.4 −0.2 0.0 0.2 0.4 0.6 0.8 1.0

−1.0 −0.8 −0.6 −0.4 −0.2 0.0 0.2 0.4 0.6 0.8 1.0

−0.05

0.20

0.45

0.70

0.95

1.20

−0.05

0.20

0.45

0.70

0.95

1.20

........................

.................

....................................................................................................................................................................................................................................................

.........................................................

..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................................................................................................................................................................................................................................................................................................

............. ............. ............. ............. ............. ............. ............. .......................... ............. .............

............. .......................... ............. .................................................................................................................................. ..................................................................................................................... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ...

Der Verlauf des Polynoms ist wesentlich vernünftiger als im Falle gleichabständiger Stützstellen. Bei wachsendenGrad n des Interpolationspolynoms wird die Genauigkeit immer besser.Im letzten Beispiel sind die Polynomwerte am Rand negativ. Dort befindet man sich jenseits des ersten bzw. letztenKnotens, also außerhalb der Tabelle. Dann spricht man von Extrapolation; dieser Prozeß ist üblicherweise problema-tisch.5

Zur praktischen Ausführung der Extrapolation im Falle gleichabständiger Stützstellen vergleiche man die Vorhersageder Startwerte für das Newton-Verfahren, S. 75, oder im Beispiel 1, 133.

Allgemein kann man folgende Faustregel für das praktische Rechnen formulieren:

Bei ungenauen Tabellenwerten interpoliere man mit zwei oder drei Wertepaaren (linear oder quadra-tisch), bei genauen mit maximal fünf oder sechs.

6.3.2 Kubische Splinefunktionenspline [etym. doubtful] n. A flexiple strip of wood or rubber used in laying down large

curves in mechanical drawing; Mach. a key fitting into a slot in a shaft and wheel tomake them revolve together; the slot itself.

The Concise English Dictionary

Betrachten wir ein Polynom 11. Grades, das in den Punkten -5,-4,-3,-2,-1 und 1,2,3,4,5 zu Null wird und in x = 0den Wert 1 hat. Sein - eindeutig bestimmter - Verlauf ist der folgende:

−5 −4 −3 −2 −1 0 1 2 3 4 5

−5 −4 −3 −2 −1 0 1 2 3 4 5

−3

−2

−1

01234567

−3

−2

−1

01234567

................

................

................

................

................

................

................

................

................

................

.................

................

................

...............................................................................................................................................................................................................................................................................................................................................................................................................

.................................................................

.....................................................................................................................................................................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Von der Funktion ist gegeben: 1 in der Mitte des betrachteten Intervalls von 0 bis 10 und nach außen zu in allen

5Es wird langsam wärmer: Vorgestern waren es mittags 14oC, heute sind es 18oC - vermutlich war es gestern zum Mittagetwa 16oC. (Interpolation)Gestern um die Mittagsstunde waren es 14oC, heute sind es 16oC - wieviel werden es morgen sein? (Extrapolation)Wenn die Extrapolation so einfach und genau wäre wie die Interpolation, so wäre die Vorhersage der Börsenkurse ein Kinderspiel.

95

Page 96: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

ganzzahligen Abszissen 0 - man möchte erwarten, daß die Funktion zum Rand hin abnimmt. Aber gerade das trittnicht ein, statt dessen bricht sie in ziemlich wilde Schwingungen aus.Es ist typisch für die Polynominterpolation höheren Grades, daß Änderungen in der Tabelle den Funktionsverlauf inweiter entfernteren Bereichen wesentlich beeinflussen und diese Erscheinung ist im allgemeinen keineswegs erwünscht.Ein Algorithmus, der Störungen irgendwie lokalisiert und an der Ausbreitung hindert, wäre sicher erstrebenswerter.Es waren ursprünglich Ingenieure, die dafür eine Funktionsform ersannen, und erst später haben Mathematiker diesenGedanken aufgegriffen und zu einer enormen Theorie ausgebaut. Weiterhin wird die ursprüngliche Variante dargelegt,da sie in der Praxis immer noch eine dominierende Rolle spielt: die kubischen Interpolationssplines.Unter einem Spline versteht man beim technischen Zeichnen eine dünne biegsame Leiste, mit deren Hilfe man Kurvendurch gegebene Punkte zeichnete, indem man sie biegt und mit Nadeln nahe zu diesen Punkten befestigt.Beim elastischen Biegen lädt man eine solche Leiste mit einer gewissen potentiellen Energie. Es ist klar, daß sie imRahmen ihrer Befestigung diejenige Form annimmt, bei der ihre Gesamtenergie am kleinsten ist.Brint man eine solche Leiste in ein Koordinatensystem und bezeichnet man ihre Kontur mit y(x), so lehrt die Elasti-zitätstheorie, daß die vierte Ableitung dieser Funktion dort, wo sie existiert (d. h. außerhalb der Befestigungspunkte= Nadeln) identisch zu Null wird.Diese Funktionen sind also zwischen den vorgegebenen Punkten kubische Polynome.In diesen Punkten selbst haben sie keine dritte Ableitung, aber sie sind natürlich stetig und besitzen sogar eine stetigezweite Ableitung (’Krümmung’) - die Leiste soll nicht brechen. Natürlich ist dann auch die erste Ableitung stetig.Kubischen Interpolationssplines sind also stückweise definierte Funktionen, deren Wert an den Grenzen dieser Stückevorgebenen sind und die dort, wo diese zusammenstoßen, zweimal stetig differenzierbar sind.An den beiden äußersten Nadeln ist die Leiste (die Funktion) zu Ende. Von außen wird kein Biegemoment ausgeübtund die Leiste läuft deshalb gerade (aber nicht unbedingt horizontal) aus. Deswegen ist die übliche Forderung an denEnden noch das Verschwinden der zweiten Ableitung.Angenommen, man hat n Intervalle. Auf jedem wird ein kubisches Polynom definiert, das vier Koeffizienten hat.Insgesamt braucht man damit 4n Werte. An den n− 1 Kontaktstellen der Bereiche hat man Werte vorgegeben, undan den beiden Enden, dies sind n+ 1 Bedingungen.Weiterhin sind an diesen Kontaktgrenzen die Funktionswerte von links und von rechts gleich, die ersten Ableitungenund die zweiten - das sind weitere 3(n− 1) Forderungen oder Gleichungen, zusammen damit 4n− 2.Mit den beiden Festlegungen, daß die zweite Ableitung rechts und links zu Null werden soll, hat man 4n Bedingungenund damit stimmt die Zahl der Gleichungen und die der Parameter überein.Als Beispiel sei eine Tabelle mit vier Wertepaaren (xk, yk), k = 0, 1, 2, 3, betrachtet. Die xk seien in wachsenderReihenfolge numeriert.Damit sind drei Abschnitte gegeben. Der nachfolgende Ansatz ist völlig unsachlich, er soll nur zeigen, daß es imPrinzip geht:Von x0 bis x1 wird eine Funktion a1x

3 + b1x2 + c1x+ d1 betrachtet, sie stimme in x0 und x1 mit der Tabelle überein:

a1x30 + b1x

20 + c1x0 + d1 = y0 , a1x

31 + b1x

21 + c1x1 + d1 = y1 .

Zwischen x1 und x2 wird das kubische Polynom a2x3 + b2x

2 + c2x + d2 benutzt. Es nimmt in x2 den Wert y2 an:a2x

32 + b2x

22 + c2x2 +d2 = y2. Weiterhin haben die beiden Polynome in x1 dieselben Werte sowie dieselben ersten und

zweiten Ableitungen:a1x

31 + b1x

21 + c1x1 + d1 = a2x

31 + b2x

21 + c2x1 + d2 ,

3a1x21 + 2b1x1 + c1 = 3a2x

21 + 2b2x1 + c2 , 6a1x1 + 2b1 = 6a2x1 + b2 .

Zwischen x2 und x3 arbeitet man mit einem Polynom a3x3 + b3x

2 + c3x + d3. Insgesamt erhält man - in Matrix-schreibweise - das folgende lineare System von zwölf Gleichungen mit zwölf Unbekannten.Die erste und letzte Zeile beziehen sich auf das Verschwinden der zweiten Ableitung in den Randpunkten, die zweite,sechste, zehnte und elfte enthalten die Interpolationsbedingungen, die dritte und siebente die Stetigkeit in den beideninneren Kontaktpunkten, die vierte und achte die Stetigkeit der ersten Ableitung und die fünfte sowie neunte dieStetigkeit der zweiten Ableitung.

6x0 2 0 0 0 0 0 0 0 0 0 0x3

0 x20 x0 1 0 0 0 0 0 0 0 0

x31 x2

1 x1 1 −x31 −x2

1 −x1 −1 0 0 0 03x2

1 2x1 1 0 −3x21 −2x1 −1 0 0 0 0 0

6x1 2 0 0 −6x1 −2 −0 0 0 0 0 00 0 0 0 x3

1 x21 x1 1 0 0 0 0

0 0 0 0 x32 x2

2 x2 1 −x32 −x2

2 −x2 −10 0 0 0 3x2

2 2x2 1 0 −3x22 −2x2 −1 0

0 0 0 0 6x2 2 0 0 −6x2 −2 0 00 0 0 0 0 0 0 0 x3

2 x22 x2 1

0 0 0 0 0 0 0 0 x33 x2

3 x3 10 0 0 0 0 0 0 0 6x3 2 0 0

a1

b1c1d1

a2

b2c2d2

a3

b3c3d3

=

0y0000y1000y2y30

96

Page 97: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Die Forderung, daß S′′n(x0) = S′′n(xn) = 0 sei, ist gängig, aber nicht zwingend. Bei Bedarf kann man statt ihrer andereForderungen formulieren. Oft ist es sinnvoll, die Funktion als periodisch anzunehmen und x0 und xn als Anfang undEnde einer Periode anzusehen. Dann wird natürlich y0 = yn (ein Sprung an dieser wie an anderer Stelle ist mit densehr glatten Splinefunktionen schlecht zu modellieren, dann sollte man lieber die Funktion unterbrechen). Man verliertBedingungen. Es wird aber nun sinnvoll, Stetigkeit bis zur zweiten Ableitung zu fordern: Sn(x0) = Sn(xn), S′n(x0) =S′n(xn), S′′n(x0) = S′′n(xn).Damit ist das System erneut abgeschlossen.

Nun soll eine praktikable Berechnungsvorschrift hergeleitet werden; es sei eingeräumt, daß dies nicht die einzigemögliche Darstellung ist.Der Einfachheit halber wird angenommen, daß die Stützstellen xi gleichabständig liegen - dieser Fall ist hier, andersals bei der Polynominterpolation, unbedenklich. Sei also xk = a+ kh, h = (b− a)/n.Wenn Sn(x) zwischen xk und xk+1 - künftig deshalb mit Sn,k bezeichnet - ein kubisches Polynom ist, so ist seinezweite Ableitung S′′n,k(x) dort linear (und auf dem gesamten Abschnitt stetig). Die Werte Mk = S′′n,k(xk) nennt manMomente des Splines, da sie mit den mechanischen Momenten in Beziehung stehen. Sie stellen nützliche Hilfswertedar.Es gilt für xk ≤ x ≤ xk+1:

S′′n,k(x) = Mk + (Mk+1 −Mk)x− xkh

= Mkxk+1 − x

h+Mk+1

x− xkh

.

Aus dieser Darstellung gewinnt man Sn,k(x) durch zweimalige Integration:

S′n,k(x) = S′n,k(xk) +

∫ x

xk

S′′n,k(t) dt = S′n,k(xk)−Mk(xk+1 − t)2

2h+Mk+1

(t− xk)2

2h

∣∣∣∣xxk

=

= S′n,k(xk)−Mk(xk+1 − x)2

2h+Mkh

2+Mk+1

(x− xk)2

2h.

Sn,k(x) = Sn,k(xk) +

∫ x

xk

S′n,k(t) dt = Sn,k(xk) +[S′n,k(xk) +

Mkh

2

]t+Mk

(xk+1 − t)3

6h+Mk+1

(t− xk)3

6h

∣∣∣∣xxk

=

= Sn,k(xk) +[S′n,k(xk) +

Mkh

2

](x− xk) +Mk

(xk+1 − x)3

6h+Mk+1

(x− xk)3

6h− Mkh

2

6.

Betrachten wir die Stelle xk, sie ist linke Grenze für Sn,k(x) und rechtes Ende von Sn,k−1(x). Der auf den Momentenbasierende Ansatz gewährleistet die Stetigkeit der zweiten Ableitung in xk. Der Wert der ersten Ableitung in diesemPunkt, mit Hilfe von Sn,k−1(x) berechnet, ist

S′n,k(xk) = S′n,k−1(xk−1) +h(Mk−1 +Mk)

2,

und der analog ermittelte Funktionswert wird

Sn,k−1(xk) = Sn,k(xk) = yk = yk−1 +[S′n,k−1(xk−1) +

hMk−1

2

]h+

h2(Mk −Mk−1)

6.

Genauso wird Sn,k(xk+1) = yk+1 berechnet:

Sn,k(xk+1) = yk +[S′n,k(xk) +

hMk

2

]h+

h2(Mk+1 −Mk)

6. (∗)

Damit hat man drei Gleichungen, bei denen man mit Hilfe von zwei von ihnen die Werte S′n,k(xk) und S′n,k−1(xk−1)aus der dritten eliminieren kann. Ziehen wir die vorletzte Gleichung von der letzten ab:

yk+1 − yk = (yk − yk−1) +

[S′n,k(xk)− S′n,k−1(xk−1) +

h(Mk −Mk−1)

2

]h+

h2(Mk+1 − 2Mk +Mk−1)

6.

Nun wird ersetzt:S′n,k(xk)− S′n,k−1(xk−1) =

h(Mk−1 +Mk)

2,

also bleibt

yk+1 − yk = (yk − yk−1) +

[h(Mk−1 +Mk)

2+h(Mk −Mk−1)

2

]h+

h2(Mk+1 − 2Mk +Mk−1)

6,

und letztlich resultiert die lineare Gleichung

Mk−1 + 4Mk +Mk+1 =6

h2(yk−1 − 2yk + yk+1) , k = 1, 2, . . . , n− 1 .

97

Page 98: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Die Bedingung S′′n,k(xk) = 0 für k = 0 und k = n schließt dieses System ab: M0 = Mn = 0. Diese beiden Werte kannman damit sofort aus dem Vektor der Momente eliminieren. Mn Matrixschreibweise erhält man so das System

4 1 0 . . . 0 0 01 4 1 . . . 0 0 00 1 4 . . . 0 0 0...

......

. . ....

......

0 0 0 . . . 1 4 10 0 0 . . . 0 1 4

M1

M2

M3

...Mn−2

Mn−1

=6

h2

y0 − 2y1 + y2y1 − 2y2 + y3y2 − 2y3 + y4

...yn−3 − 2yn−2 + yn−1

yn−2 − 2yn−1 + yn

=

p1

p2

p3

...pn−2

pn−1

.

Die Matrix dieses Gleichungssystems hat eine dominierende Hauptdiagonale. Die anderen Elemente einer Zeile erge-ben in der Summe maximal 2, also die Hälfte des Hauptdiagonalelements. Man kann das System folglich auch iterativlösen. Das hat hier den Vorteil, daß die Matrix weder aufgestellt noch gespeichert werden muß.Ein Programm zur Lösung des Systems kommt mit einem Hilfsvektor p aus, der zur Beschleunigung der Rechnungeinmal belegt wird. Unterstellt man, daß Mk ≈Mk+1 gilt, so ist Mk ≈ pk/6. Dies ergibt eine plausible Anfangsbele-gung:

M : array [0..n] of real;y : array [0..n] of real;p : array [1..n-1] of real;h:=(b-a)/n;M[0]:=0; M[n]:=0; for k:=1 to n-1 do p[k]:=6∗(y[k-1]-2∗y[k]+y[k+1])/(h∗h);for k:=1 to n-1 do M[k]:=p[k]/6;

1: max:=0; for k:=1 to n-1 do beginz:=0.25*(p[k]-M[k-1]-M[k+1]);if abs(z-M[k]) > max then max:=abs(z-M[k]); end;

if max > eps then goto 1;

Aus (∗) berechnet sich nun S′n,k(xk) und damit kann - bei bekannten Momenten Mk - die Darstellung von Sn,k(x)endgültig angegeben werden:

Sn,k(x) = yk +[yk+1 − yk

h− h

6(Mk+1 −Mk)

](x− xk) +Mk

(xk+1 − x)3

6h+Mk+1

(x− xk)3

6h− Mkh

2

6.

Für die eingangs betrachtete Interpolationsaufgabe: eine Funktion zu finden, die in x = 0 den Wert 1 annimmt undin x = ±1, ±2, ±3, ±4, ±5 den Wert Null, ergibt sich nun bei Verwendung von Splines das folgende Resultat:

−5 −4 −3 −2 −1 0 1 2 3 4 5

−5 −4 −3 −2 −1 0 1 2 3 4 5

−0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

−0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.......................................................................

..................................................................................................................................................................................................................................................................................................

Die ’Störung’ in x = 0 bleibt tatsächlich lokal und baut sich mit wachsender Entfernung von dieser Stelle ab - eingänzlich anderes Verhalten als bei Polynomen. Das hat u. a. den angenehmen Effekt, daß ein ungenauer Wert in einerTabelle die Funktion nicht komplett oder im großen Abstand von dieser Stelle verdirbt, sondern nur in einer gewissenUmgebung, und obendrein wird sie dort nie falscher als der Wert selbst.Die relativ leichte Berechenbarkeit, ihre hervorragende Glattheit und diese Lokaliserung von Ungenauigkeiten ma-chen Splines zu vorzüglichen Werkzeugen bei der Umwandlung von Tabellen in Funktionen. Darüber hinaus habensie zahlreiche andere Anwendungen.Die Formeln für periodische Splines, für solche mit anderen Randbedingungen oder für den Fall nicht-äquidistanterStützstellen entnehme man der Literatur, ebenso die für andere oder allgemeinere Splinefunktionen.

98

Page 99: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

6.4 Gleichmäßige ApproximationGegeben sei ein Abschnitt [a, b] und eine auf ihm stetige Funktion f(x). Gesucht ist ein Polynom6 Pn(x) gegebenenGrades n, das dieser Funktion möglichst gut entspricht. Man beachte, daß es nicht nur von der Funktion f(x), sondernauch vom Abschnitt [a, b] abhängt.Kennziffer dieses Entsprechens sei die maximale betragsmäßige Differenz der Funktionswerte:

d = maxa≤x≤b|Pn(x)− f(x)| .

Diese soll nun durch die Wahl geeigneter Polynomkoeffizienten möglichst klein gemacht werden.Diese Aufgabe ist numerisch etwas aufwendig, sie besitzt aber eine eindeutig bestimmte Lösung, das sogenanntePolynom bester gleichmäßiger Approximation. Zu seiner Charakterisierung geht man von dem folgenden Satz aus:Cebyshevscher Alternantensatz: Pn(x) ist genau dann das Polynom bester gleichmäßiger Approximation zu f(x) aufdem Abschnitt [a, b], wenn eine streng monoton wachsende Folge von n+2 Punkten xk mit a ≤ x0 < x1 < x2 < . . . <xn < xn+1 ≤ b existiert, so daß für die Werte δk = Pn(xk) − f(xk) die folgenden Bedingungen gelten: |δk| = d ∀kund δk · δk+1 < 0.

(Der triviale Fall, daß f(x) selbst ein Polynom vom Grade ≤ n ist, sei hier ausgeklammert.)Die einzelnen Abweichungen δk sind also betragsmäßig gleich (und gleich dem Maximum) und wechseln jedesmal dasVorzeichen, daher der Name Alternantensatz.

Betrachten wir die Wirkung dieses Satze an einem Beispiel. Sei f(x) = ex auf [0, 1].

Fall n = 0: Diese Funktion soll möglichst gut durch eine Konstante a0

dargestellt werden.Man überlegt sich leicht, daß a0 gerade das arithmetische Mittel deskleinsten und des größten Funktionswertes ist, hier also a0 = (1 + e)/2.Tatsächlich, dann ist der absolute Fehler nach beiden Seiten gleich undfolglich am kleinsten. Verschiebt man ao z. B. nach unten, so wird dieobere Abweichung größer und damit der Gesamtfehler.

0.0 0.2 0.4 0.6 0.8 1.00

1

2

3

....................................................................................................................................................................................................................................................................................................................................................................

.......................................................................................................................

..............................................................................................

.............................................................................

.....................................................................

......................................

.............

.............

....................................................

Fall n = 1: Diese Funktion soll nun möglichst gut durch eine lineareFunktion a0 + ax dargestellt werden.Diese Funktion kann nicht komplett über oder unter ex verlaufen, viel-mehr müssen sich die beiden Kurven im betrachteten Abschnitt zweimalschneiden. Die maximalen Abweichungen müssen dann in x0 = 0 undx2 = 1 angenommen werden, wo ex über der linearen Funktion liegtund in einem inneren Punkt x1, wo sie darunter liegt.Der Anstiegskoeffizient a1 ist damit (e1 − e0)/1 = e − 1 = 1.718 . . .und da die Abweichung in x1 maximal ist wird dort die Ableitung derDifferenz ex − (a0 + a1x) zu Null, d.h. ex1 − a1 = 0.Es folgt x1 = ln a1 = ln(e − 1) = 0.541 . . .. Die Abweichungen sindin x0 und x1 betragsmäßig gleich, aber von verschiedenen Vorzeichen:e0 − (a0 + a1 · 0) = a0 + a1x1 − ex1 .

0.0 0.2 0.4 0.6 0.8 1.00

1

2

3

................................................................................................................................................................................................................................................................................................................................................................................................................................................

.................................................................................

.....................................................................

........................................................................................................................................................................................................................................................................................................

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

Man erhält a0 = [e−(e−1)·ln(e−1)]/2 = 0.894 . . .. Die maximale absolute Abweichung ist nicht mehr (e−1)/2 = 0.859wie bei n = 0, sondern nur noch 1− a0 = 0.106.Vergleichen wir dieses Polynom PG1 (x) = 0.894 + 1.718x der besten gleichmäßigen Approximation einmal mit demlinearen Taylor-Polynom PT1 (x) = 1+x. Die Verläufe der Abweichung PG1 (x)−ex bzw. PT1 (x)−ex sind nachstehenddargestellt (der erste ausgezogen, der zweite gestrichelt):

6Andere Näherungsfunktionen als Polynome sind möglich, darauf soll hier nicht eingegangen werden.

99

Page 100: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

0.0 0.2 0.4 0.6 0.8 1.0−0.8

−0.6

−0.4

−0.2

0.0

0.2

............................................................................................................................

............................................................................................................................................................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ...

Das Taylor-Polynom ist in der Nähe der Entwicklungsstelle x0 = 0 sehr gut und wird dann immer schlechter, PG1dagegen ist gleichmäßig halbwegs gut.Das Polynom bester gleichmäßiger Approximation beliebigen Grades zu f(x) in einem sehr kleinen Abschnitt [a, b]um die Stelle x0 herum ist praktisch mit dem Taylor-Polynom in diesem Punkt identisch (sofern letzteres existiert).Setzen wir nun das Beispiel f(x) = ex auf [0, 1] fort:Wählt man n = 2, so wird das Polynom a0 +a1x+a2x

2. Es ist wiederum x0 = und x3 = 1. Das ist eine Besonderheitdieses Beispiels, im allgemeinen Fall sind die beiden äußeren Alternantenpunkte nicht unbedingt mit den Abschnitts-grenzen identisch.Weiter gibt es zwei Punkte x1 und x2 mit 0 < x1 < x2 < 1, für die die drei Gleichungen gelten:

e0−(a0 +a1 ·0+a2 ·02) = −[ex1−(a0 +a1 ·x1 +a2 ·x21)] , ex1−(a0 +a1 ·x1 +a2 ·x2

1) = −[ex2−(a0 +a1 ·x2 +a2 ·x22)] ,

ex2 − (a0 + a1 · x2 + a2 · x22) = e1 − (a0 + a1 · 1 + a2 · 12)] ,

und da die Abweichungen in x1 und x2 maximal werden gilt obendrein

ex1 − (a1 + 2a2x1) = 0 und ex2 − (a1 + 2a2x2) = 0 .

Das sind fünf Gleichungen zur Ermittlung von x1 und x2 sowie - hauptsächlich - a0 bis a2.Man gelangt zu dem Polynom 1.008756 + 0.854743x + 0.846027x2. Seine maximale Abweichung auf dem Abschnitt[0, 1] ist - wie man am Absolutglied unschwer erkennt - gerade 0.008756. Sie hat sich gegenüber n = 1 wiederumdrastisch verringert.Die Abweichungskurve 1.008756 + 0.854743x+ 0.846027x2 hat den folgenden Verlauf:

0.0 0.2 0.4 0.6 0.8 1.0−0.01

0.00

0.01.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

......................................................................

..........................................................................................................................................................................................................................................................................................................................................................................................................

.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............

.............

.............

.............

.............

.............

......

....................................................................................

.............

.............

.............

.............

.............

.............

......

....................................................................................

Die vier Alternantenpunkte sind eingezeichnet.

Die Ermittlung von Polynomen bester gleichmäßiger Approximation ist i. a. aufwendig, das angegebene Beispiel istvergleichsweise einfach.Nachteilig wäre hier, das diese Polynome in x = 0 Werte ungleich 1 liefern. Das ist aber eher ein ästhetisches Problemals ein substantielles.Ansonsten sind die Polynome bester gleichmäßiger Approximation in gewisser Weise das Optimum des Machbaren.Das Taylor-Polynom zu ex hat auf [0, 1] seine größte Abweichung in x = 1. Bei n = 2 beträgt sie e−(1+1/1!+1/2!) =e − 2.5 = 0.218 . . . oder etwa das 25-fache der des angegebenen Polynoms. Dessen Fehler wird erst vom Taylor-Polynom fünfter (!) Ordnung erreicht und unterboten.

100

Page 101: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Für die effektive Berechnung elementarer Funktionen sind Polynome bester gleichmäßiger Approximation also sehrzu empfehlen und günstiger als die Potenzreihen, die im Kapitel ’Berechnung von Grundfunktionen’ benutzt wurden.Man entnehme ggfs. ihre Koeffizienten den dort aufgeführten Büchern.Zu jeder auf [a, b] definierten und dort stetigen Funktion f(x) gibt es genau ein Polynom bester gleichmäßigerApproximation vom Grade ≤ n. Mit der Zunahme von n kann die maximale Abweichung nur abnehmen.7 Man kannsie beliebig klein machen, wenn man den Grad des Polynoms nur entsprechend groß wählt.Das geht um so schneller - bzgl. des Polynomgrades - je glatter die Funktion f(x) auf [a, b] ist, d. h. um so mehrstetige Ableitungen sie besitzt.

6.5 Approximation im QuadratmittelHier wird wiederum mit globaler Information auf einem Abschnitt gearbeitet, im Gegensatz zu der nur punktuellenInformation der Taylor-Formel. Allerdings wird nicht so scharf auf die größte Abweichung geachtet, sondern es wirdeine gewisse mittlere Abweichung möglichst klein gemacht.Das Kriterium zur Auswahl von ψ(x) ist∫ b

a

[ψ(x)− f(x)]2 dx −→ min !

Dabei kann man noch eine Wichtung einbauen, indem man gewisse Bereiche des Abschnitts [a, b] betont oder in ihrerBedeutung reduziert. Das geschieht mit Hilfe einer Gewichts- oder Belegungsfunktion %(x). Sie ist fast überall auf[a, b] definiert (d. h. mit Ausnahme evtl. einiger Punkte), nichtnegativ und fast überall von Null verschieden. IhrIntegral über [a, b] sei endlich: ∫ b

a

%(x) dx < +∞ .

Die verallgemeinerte Zielstellung ist nun∫ b

a

%(x) [ψ(x)− f(x)]2 dx −→ min !

Dort, wo %(x) groß ist, wird folglich eine besonders gute Übereinstimmung von f(x) und ψ(x) angestrebt.In der ursprünglichen Aufgabe war einfach %(x) ≡ 1.Für die weiteren Berechnungen wird ein bequemes Symbol eingeführt: Für beliebige, auf [a, b] fast überall definierteFunktionen setzt man8

(f, g) =

∫ b

a

%(x) · f(x) · g(x) dx .

Diese Operation ordnet also zwei Funktionen als Resultat eine Zahl zu.Sie hat die folgenden grundlegenden Eigenschaften:

a) (f, g) =

∫ b

a

%(x) · f(x) · g(x) dx =

∫ b

a

%(x) · g(x) · f(x) dx = (g, f) ,

b)∫ b

a

%(x) · λf(x) · g(x) dx = λ

∫ b

a

%(x) · f(x) · g(x) dx =

∫ b

a

%(x) · f(x) · λg(x) dx ,

also (λf, g) = λ(f, g) = (f, λg) ,

c) (f1 + f2, g) =

∫ b

a

%(x) · [f1(x) + f2(x)] · g(x) dx =

=

∫ b

a

%(x) · f1(x) · g(x) dx+

∫ b

a

%(x) · f2(x) · g(x) dx = (f1, g) + (f2, g) ,

d) (f, f) =

∫ b

a

%(x) · f2(x) dx ≥ 0 ,

(f, f) = 0 ist gleichbedeutend damit, daß f(x) fast überall auf [a, b] gleich Null ist.

All diese Eigenschaften treten in völlig analoger Form auch beim Skalarprodukt von Vektoren auf und zwar sowohl

7Das bestapproximierende Polynom zu sinx auf dem symmetrischen Abschnitt [−π/2, π/2] muß ebenfalls eine ungeradeFunktion sein. Im Falle n = 1 hat es also die Gestalt a1x. Die Erhöhung des zulässigen Grades auf 2 bringt nichts, denn einSummand a2x2 wäre bei a2 6= 0 gerade und würde nur stören. Das beste quadratische Polynom ist also in Wirklichkeit auchnur linear.

8Künftig wird immer vorausgesetzt. daß die aufgeschriebenen Integrale existieren. Sie können uneigentliche Integrale überunbeschränkte Funktionen sein, müssen dann aber konvergieren.

101

Page 102: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

im geometrischen Fall des zwei- oder dreidimensionalen Raumes als auch beim allgemeinen Sakalarprodukt zweiern-dimensionaler Vektoren x und y in der Form xT y. Deshalb nennt man (f, g) das Skalarprodukt der Funktionen f(x)und g(x) (auf [a, b] und mit dem Gewicht %(x)).Ebenso wie man durch

√~x · ~x den Betrag |~x| eines Vektors definiert kann man

√(f, f) als wesentliche Kennziffer der

Funktion f(x) ansehen, die etwas über ihre Größe aussagt. Sie wird Norm von f(x) genannt. (Genauer: L2-Norm(El-zwei-Norm) oder, ganz genau: L2

%(a, b)-Norm), man schreibt

||f || =√

(f, f) =

(∫ b

a

%(x) · f2(x) dx

)1/2

.

Es gelten die analogen Gesetze wie beim Betrag des Vektors:

||f || ≥ 0, ||f || = 0⇐⇒ f(x) ≡ 0, ||λf || = |λ| · ||f ||, ||f + g|| ≤ ||f ||+ ||g|| .

Den Abstand zweier Funktionen f(x) und g(x) kann als ||f − g|| gemessen werden.Nun zurück zu der formulierten Approximationsaufgabe. Die Funktion ψ(x) soll also aus einer gewissen Funktionen-menge so gewählt werden, daß sie f(x) möglichst nahe kommt. Es sei also ||ψ − f || minimal.Da dieser Ausdruck nichtnegativ ist reicht es hin, sein Quadrat minimal zu machen.Es sei wieder die lineare Aufgabe betrachtet: ψ ist die Linearkombination gegebener Basisfunktionen ϕk und derenKoeffizienten ak sollen optimal gewählt werden:

||ψ − f ||2 = (ψ − f, ψ − f) =

(n∑k=1

akϕk − f,n∑k=1

akϕk − f

)=

=

(n∑k=1

akϕk,

n∑k=1

akϕk

)− 2

(n∑k=1

akϕk, f

)+ (f, f) =

n∑k=1

n∑l=1

(akϕk, alϕl)− 2

n∑k=1

ak(ϕk, f) + (f, f) =

=

n∑k=1

n∑l=1

akal(ϕk, ϕl)− 2

n∑k=1

ak(ϕk, f) + (f, f) = D(a1, a2, . . . , an) .

Dieser Ausdruck soll durch Wahl der ak minimal gemacht werden, also müssen seine partiellen Ableitungen nach aiverschwinden:

∂D

∂ai= 2

n∑k=1

ak(ϕk, ϕi)− 2(ϕi, f) = 0 , i = 1, 2, . . . , n,

es folgt das folgende System linearer Gleichungen in den ak:(ϕ1, ϕ1) (ϕ1, ϕ2) (ϕ1, ϕ3) . . . (ϕ1, ϕn)(ϕ2, ϕ1) (ϕ2, ϕ2) (ϕ2, ϕ3) . . . (ϕ2, ϕn)

......

.... . .

...(ϕn, ϕ1) (ϕn, ϕ2) (ϕn, ϕ3) . . . (ϕn, ϕn)

a1

a2

...an

=

(ϕ1, f)(ϕ2, f)

...(ϕn, f)

.

Die Matrix dieses Systems ist symmetrisch.Die Rechnung läßt sich außerordentlich vereinfachen, wenn man die Basisfunktionen ϕk paarweise orthogonal wählt.Das bedeutet hier wie bei Vektoren, daß ihr Skalarprodukt zu Null wird:

(ϕk, ϕl) = 0 bei k 6= l .

Da selbstverständlich ϕk(x) 6≡ 0 gelten soll - welchen Sinn kann es haben, die Null zur Basisfunktion zu machen?- ist (ϕk, ϕk) 6= 0 (und positiv). Die Matrix des vorstehenden Systems wird damit zur Diagonalmatrix mit sämtlichvon Null verschiedenen Elementen auf der Hauptdiagonalen. Dieses System ist sofort lösbar, es folgt

ak =(ϕk, f)

(ϕk, ϕk)=⇒ ψ(x) =

n∑k=1

(ϕk, f)

(ϕk, ϕk)ϕk(x) .

Anmerkungen:1. Jeden von Null verschiedenen Vektor kann man zum Einheitsvektor machen, indem man ihn mit dem Kehrwertseines Betrages multipliziert.Analog kann man die Basisfunktionen ϕk(x) normieren, indem man sie mit dem Kehrwert ihrer Norm multipliziert;nennen wir das Resultat ϕk(x):

ϕk(x) =1

||ϕk||ϕk(x) .

Dann ist(ϕk, f)

(ϕk, ϕk)ϕk(x) =

1

||ϕk||2(ϕk, f)ϕk(x) =

1

||ϕk||· 1

||ϕk||(ϕk, f)ϕk(x) =

102

Page 103: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

= (1

||ϕk||ϕk, f)

1

||ϕk||ϕk(x) = (ϕk, f)ϕk(x) .

Operiert man mit einem Satz orthonormaler Basisfunktionen ϕk(x), d. h. (ϕk, ϕl) = 0 bei k 6= l und (ϕk, ϕk) = 1, sovereinfacht sich die Formel noch weiter:

ψ(x) =

n∑k=1

(ϕk, f)ϕk(x) .

2. Man beachte, daß (im Falle orthogonaler Basisfunktionen) der Wert von ak nur von f(x) und ϕk(x) bestimmtwird, nicht aber von n und der Wahl der anderen Funktionen, solange sie nur orthogonal sind.3. Angenommen, man hat ein unendliches System orthogonaler Basisfunktionen (d. h. jedes Paar ist orthogonal) undsei f(x) als unendliche Linearkombination (d. h. als Reihe) dieser Funktionen darstellbar:

f(x) =

∞∑k=1

bkϕk(x) ,

so kann man beide Seiten dieser Gleichung skalar mit ϕi multiplizieren. Beide Skalarprodukte müssen gleich sein:

(f, ϕi) =

(∞∑k=1

bkϕk, ϕi

)=

∞∑k=1

(bkϕk, ϕi) =

∞∑k=1

bk(ϕk, ϕi) = bi(ϕi, ϕi) .

Die Koeffizienten bk sind folglich eindeutig bestimmt und ergeben sich nach der obigen Formel.Man nennt sie die Fourierkoeffizienten der Funktion f(x) in den Basisfunktionen ϕk(x) auf [a, b] (und ggfs. mit derGewichtsfunktion %(x)). Die Reihe selbst heißt dann Fourierreihe. Die gesuchte Näherungsfunktion ψ(x) ist nichtsanderes als die n-te Teilsumme dieser Fourierreihe.Im engeren Sinne sind die Fourierkoeffizienten bezogen auf das bekannte orthogonale Funktionensystem

ϕk(x) =

cos kπxb− a , k ≥ 0, k gerade,

sin(k + 1)πx2(b− a)

, k ≥ 1, k ungerade,

ausgeschrieben wird es bei a = 0 und b = T zu1, cos

2πx

T, sin

2πx

T, cos

4πx

T, sin

4πx

T, cos

6πx

T, sin

6πx

T, . . .

.

Ein großer Vorteil der klassischen Fourreihe ist die Periodizität der resultierenden Funktion. Sie ist aber eigentlich einNebeneffekt. Man kann ex auf [0, 1] in eine Fourierreihe zerlegen und diese stimmt dann (außer in x = 0 und x = 1)dort mit ex überein. Braucht man die Zerlegung nur auf diesem Abschnitt, so ist die Periodizität unwesentlich.Für verschieden Zwecke wurde eine Vielzahl anderer orthogonaler Funktionensysteme entwickelt. Wichtig sind u. a.die orthogonalen Polynome. Das sind unendliche Folgen von Polynomen ϕk(x), die gerade den Grad k haben und diepaarweise orthogonal sind.Sie können rekursiv konstruiert werden. Betrachten wir als Beispiel den Fall %(x) ≡ 1 und [a, b] = [−1, 1].Es wird ganz einfach ϕ0(x) = 1 gesetzt. Das ist ein Polynom nullten Grades.Das Intervall ist symmetrisch zum Nullpunkt. Das Integral über eine ungerade Funktion von -1 bis 1 ist automatischgleich Null.Wählt man deshalb für gerade k gerade Funktionen, also Polynome der Form a0 + a2x

2 + a4x4 + . . .+ akx

k und fürungerade k entsprechend Polynome der Gestalt a1x+ a3x

3 + . . .+ akxk, so ist das Produkt von je einer Funktion der

einen mit einer der anderen Klasse eine ungerade Funktion. Jedes Polynom mit geradem k ist damit orthogonal zujedem mit ungeradem k.Mit ϕ1(x) = x ist also bereits (ϕ1, ϕ0) = 0 gewährleistet.Für ϕ2(x) = a0 + a2x

2 muß man nur noch (ϕ2, ϕ0) = 0 erreichen, denn (ϕ1, ϕ2) = 0 gilt bereits.

(ϕ2, ϕ0) =

∫ 1

−1

1 · (a0 + a2x2) dx = 2a0 +

2a2

3= 0 ,

man kann a2 = 3 wählen und erhält dann wegen a0 = −1 das Polynom ϕ2(x) = 3x2 − 1.Weiter wird ϕ3(x) = a1x+ a3x

3. Die Orthogonalität zu ϕ1 verlangt

(ϕ3, ϕ1) =

∫ 1

−1

x · (a1x+ a3x3) dx =

2a1

3+

2a3

5= 0 ,

folglich wird ϕ3(x) = 5x3 − 3x.Künftig lohnt es sich, einfach zu einer Linearkombination der in Frage kommenden bisherigen Polynome die neuePotenz hinzuzunehmen, also den (provisorischen) Ansatz ϕ4(x) = x4 + a2ϕ2(x) + a0ϕ0 zu machen.

103

Page 104: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Dann folgt aus (ϕ4, ϕ2) = (x4, ϕ2) + a2(ϕ2, ϕ2) = 0 sofort a2 (das Skalarprodukt (ϕ2, ϕ0) ist Null und braucht nichtberechnet zu werden) und analog ergibt (ϕ4, ϕ0) = (x4, ϕ0) +a0(ϕ0, ϕ0) umgehend a0. - Das erhaltene Polynom kannman noch mit einer geeigneten Konstanten multiplizieren, um ganzzahlige Koeffizienten zu erhalten.Für ϕ5(x) macht man dann den Ansatz x5 + a3ϕ3(x) + a1ϕ1(x), usw..

Für derartige Polynome gibt es eine Vielzahl von Anwendungen. Für bestimmte %(x) sind sie Lösungen wichtigerDifferentialgleichungen. Jedes orthogonale Polynom ϕn(x) hat genau n einfache reelle Nullstellen zwischen a und b.Es existiert stets eine Rekursion zwischen drei aufeinanderfolgenden Polynomen ϕn+1, ϕn und ϕn−1, damit sind siewesentlich einfacher berechenbar als mit dem beschriebenen Verfahren.

Der Abschnitt [a, b] läßt sich durch die Transformation x = a+ (b− a) · (s+ 1)/2 in [−1, 1] überführen, umgekehrt istdann s = 2(x−a)/(b−a)−1. Sei %(x) auf (a, b) gegeben, dann kann man auf [−1, 1] mit %∗(s) = %(a+(b−a)·(s+1)/2 )eine Folge orthogonaler Polynome ϕ∗n erzeugen. Damit reicht es aus, die orthogonalen Polynome auf [−1, 1] zu defi-nieren.

Als besonders bedeutsam erwiesen sich die Funktionen %(x) = 1 und %(x) = 1/√

1− x2. Die entstehenden Polynomewerden Legendre - Polynome bzw. Cebyshew - Polynome (erster Art) 9 genannt. Einige Eigenschaften sind in dernachstehenden Tabelle zusammengefaßt. Die Koeffizienten vor den Polynomen resultieren aus gewissen Bequemlich-keitsüberlegungen.Für gerade n sind diese Polynome gerade Funktionen, für ungerade entsprechend ungerade.Für die Cebyshew - Polynome gilt die kompakte Darstellung

Tn(x) = cos(n · arccosx) .

Das Polynom 2−(n−1) · Tn(x) = 1 · xn + . . . hat auf [−1, 1] die Extremwerte ±2−(n−1). Jedes andere Polynom n-tenGrades, das mit 1 · xn beginnt, nimmt auf diesem Abschnitt größere Funktionswerte an.

Eigenschaft Legendre - Polynome Pn(x) Cebyshew - Polynome Tn(x)

%(x) %(x) = 1 %(x) =1√

1− x2

Erste sechsPolynome

P0(x) = 1 , P1(x) = x ,

P2(x) =1

2(3x2 − 1) , P3(x) =

1

2(5x3 − 3x) ,

P4(x) =1

8(35x4 − 30x2 + 3) ,

P5(x) =1

8(63x5 − 70x3 + 15x) ,

T0(x) = 1 , T1(x) = x ,

T2(x) = 2x2 − 1 , T3(x) = 4x3 − 3x ,

T4(x) = 8x4 − 8x2 + 1 ,

T5(x) = 16x5 − 20x3 + 5x ,

Rekursion Pn+1(x) =2n+ 1

n+ 1xPn(x)− n

n+ 1Pn−1(x) Tn+1(x) = 2xTn(x)− Tn−1(x)

1/(ϕn, ϕn) n+1

2

2

πbei n > 0 und

1

πbei n = 0

9Adrien Marie Legendre, 1752 - 1833, bedeutender französischer MathematikerPafnuti Lwowitsch Cebyshew oder Tschebyscheff (P. L. Qebyxev), 1821 - 1894, bedeutender russischer Mathema-tiker

104

Page 105: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

ϕ2(x): ......................................................................................

ϕ3(x): . . . . . . .

ϕ4(x): ........... ........... ........... ........... .

ϕ5(x): ...................... ...................... .

Links: Pn(x)

Rechts: Tn(x)

−1.0 −0.5 0.0 0.5 1.0

−1.0 −0.5 0.0 0.5 1.0

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

........................... . ................. . ..

............................................................................................................................................................................................. ...........

........................................................................................ .............................................................................................................. ...........

....................................................................................................................................................

..................

....

................

......

................

......

................

...................................................................................................................................................................................... ..

...................................................................................... ......................

.................................................................. ...............

............................................................................................................................................

−1.0 −0.5 0.0 0.5 1.0

−1.0 −0.5 0.0 0.5 1.0

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00

−1.00

−0.75

−0.50

−0.25

0.00

0.25

0.50

0.75

1.00.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................................... . .................................... . .

...........................................................................................................................................................................................................................................................................

...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................

....................................................................................................................................................................................................................

...................

...

.................

.....

................

......

...............

.......

...............

.......

................

......

.................

.....

.............

................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ......................

...................................................................................................................................................................................................... ............................................................................................................................................................................................................................

In den Tabellenwerken findet man eine Vielzahl weiterer Formeln und Beziehungen für und mit diesen Funktionen.

Beispiel: Annäherung an ex auf [0, 1], %(x) ≡ 1:Durch die Transformation x = 0.5 + 0.5s wird s ∈ [−1, 1] erreicht. Es wird

a0 =

∫ 1

−1

1 · e0.5+0.5s ds∫ 1

−1

12 ds

= e− 1 = 1.718 . . . .

Weiter ist

a1 =

∫ 1

−1

s · e0.5+0.5s ds∫ 1

−1

s2 ds

= 9− 3e = 0.84515 . . .

und

a2 =

∫ 1

−1

1

2(3s2 − 1) · e0.5+0.5s ds∫ 1

−1

[1

2(3s2 − 1)

]2ds

= 35e− 95 = 0.13986 . . . .

Wegen x = 2s− 1 ist damit ψ0(x) = 1.718, ψ1(x) = 1.71828 + 0.84515(2x− 1) und ψ2(x) = 1.71828 + 0.84515(2x−1) + 0.13986

2[3(2x− 1)2 − 1].

Die Polynome können natürlich ausmultipliziert und zusammengefaßt werden, in dieser Form ist aber noch gut zusehen, daß jede weitere Funktion den bisherigen Teil behält und nur einen neuen Summanden bekommt.Die Abweichungen ψn(x)− ex sind in den nachstehenden Bildern dargestellt:

0.00 0.25 0.50 0.75 1.00−1.0

−0.5

0.0

0.5

1.0...........................................................................................................................................................................................................................................................................................................................................................................................

0.00 0.25 0.50 0.75 1.00−0.2

−0.1

0.0

0.1

0.2

..................................................................................................................................................................................................................................................................................................................................................................................................................................................

0.00 0.25 0.50 0.75 1.00−0.02

0.00

0.02

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Wie man sieht nehmen die Abweichunegn rapide ab. Die erhaltenen Polynome sind, was den maximalen absolutenFehler betrifft, hier nur unwesentlich schlechter als die besten gleichmäßigen.

105

Page 106: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

6.6 Anpassung an TabellenDie typische Problemstellung ist die folgende: Gegeben seien gewisse Meßwerte (xi, yi), i = 1, 2, ...,m und eineFunktion y = f(x; a1, a2, ..., an) mit unbekannten Parametern aj , j = 1, 2, ..., n. Ziel ist es, diese Parameter so zubestimmen, daß die dadurch konkret festgelegte Funktion y = f(x) den gemessenen Wertepaaren möglichst gutentspricht. Hierzu sollen nachfolgend einige Möglichkeiten betrachtet werden:Fall A: Es mögen genausoviele Koeffizienten wie Meßwerte, also n = m, gesucht sein, so kann man fordern, daß einfachf(xi) = yi ∀i gilt. Grafisch: Die Funktionskurve soll die Meßpunkte exakt passieren. Diese exakte Übereinstimmungnennt man Interpolationsbedingung, die resultierende Interpolationspolynom und den Gesamtprozeß Interpolation (s.d.).Fall B: Wenn jedes Wertepaar mit Meßfehlern behaftet ist, so ist anzunehmen, daß ihre Gesamtheit mehr vernünftigeInformation enthält als die Reduktion auf so viele Messungen, wie man von der gewünschten Parameterzahl herbraucht. Aus diesen Gründen ist es oftmals angebracht, die Anzahl der Basisfunktionen (den Grad des Polynoms...)wesentlich kleiner zu wählen als die Anzahl der Meßdaten. Dann kann man zwar die Interpolationsbedingung nochaufschreiben, aber sie wird nicht mehr in allen Punkten erfüllt. (In der Regel wird sie dann meist in keinem Punktmehr exakt erfüllt.)Diese Bedingungen stellen damit nur noch ein angestrebtes Ideal dar, weshalb man dieses System auch das derIdealgleichungen nennt. Das lineare Gleichungssystem ist überbestimmt und im klassischen Sinne i. a. nicht lösbar,man muß zu den Normalgleichungen übergehen, indem man es mit der transponierten Systemmatrix multipliziert.

Die entstehende Funktion wird eine Ausgleichsfunktion genannt. Ihre Funktionskurve passiert die ’Punktwolke’ undversucht, ihr in der Gesamheit möglichst gut zu entsprechen.Beispiel 1: Gesucht ist eine konstante Funktion f(x) = a, die die Meßwerte 5, 3, 15, 11 einer eigentlich konstantenGröße repräsentieren soll.Die vier Idealgleichungen sind a = 5, a = 3, a = 15, a = 11Die (einzige) Normalgleichung resultiert aus 1

111

a0 =

531511

=⇒ (1, 1, 1, 1)

1111

a0 = (1, 1, 1, 1)

531511

=⇒ 4a0 = 34 .

Das Resultat ista0 =

5 + 3 + 15 + 11

4= 8.5 ,

und das ist einfach das arithmetische Mittel aller Meßwerte. (Die xi haben hier keine Rolle gespielt.)

Beispiel 2: Lineare Regression oder linearer TrendBei Betrachtung der vier Wertepaare (1, 5), (2, 3), (3, 15) und (5, 11) hat man den vagen Eindruck eines - wenn auchinkonsequenten - Wachstums. Um das auszudrücken bedarf es wenigstens einer linearen Funktion: y = a0 +a1x. Manerhält daraus das folgende System von Idealgleichungen:

a0 + 1a1 = 5a0 + 2a1 = 3a0 + 3a1 = 15a0 + 5a1 = 11

=⇒

1 11 21 31 5

( a0

a1

)=

531511

=⇒

(1 1 1 11 2 3 5

) 1 11 21 31 5

( a0

a1

)=

(1 1 1 11 2 3 5

) 531511

=⇒(

4 1111 39

)(a0

a1

)=

(34111

).

Bei einem quadratischen System mit nur zwei Unbekannten ist die Cramersche Regel noch effektiv. Hier erhält man

a0 =

∣∣∣∣ 34 11111 39

∣∣∣∣∣∣∣∣ 4 1111 39

∣∣∣∣ =34 · 39− 11 · 111

4 · 39− 112=

105

35= 3

a1 =

∣∣∣∣ 4 3411 111

∣∣∣∣∣∣∣∣ 4 1111 39

∣∣∣∣ =4 · 111− 11 · 34

4 · 39− 112=

70

35= 2

Es resultiert mithin das lineare Ausgleichspolynom y = 2x+ 3.

106

Page 107: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

i 1 2 3 4xi 1 2 3 5yi 5 3 15 11

2xi + 3 5 7 9 13(2xi + 3)− yi 0 -4 6 -2

Die Gerade geht durch die ’Punktwolke’, wobei Punkte sowohl ober- als auch unterhalb von ihr liegen. Das istzu erwarten. Wären alle Punkte z. B. oberhalb der Geraden, so wäre eine etwas angehobene Gerade offensichtlichbesser.10

Die Matrix des Systems der Normalgleichungen ist symmetrisch. Im allgemeinen Fall führt die Suche nach denKoeffizienten aj der Ausgleichsfunktion ψ(x) = a1ϕ1(x) + a2ϕ2(x) + ... + anϕn(x) zu dem System Ba = r. DieElemente der quadratischen Matrix B und der rechten Seite r ergeben sich zu

bij =

m∑k=1

ϕi(xk)ϕj(xk) , ri =

m∑k=1

yk · ϕi(xk) i, j = 1, 2, ..., n− 1, n .

6.7 Nichtlineare AnpassungHier sollen nur einige Beispiele betrachtet werden, die zeigen, wie man gewisse nichtlineare Anpassungen in lineareAufgaben transformieren kann.Dabei ändert man aber die Maßstäbe und gewinnt nicht die beste Lösung im Sinne der Ausgangsaufgabe; das ist derPreis für die bequeme Rechnung.Gegeben seien also gewisse Meßwerte (xi, yi), i = 1, 2, ...,m.

Beispiel 1: Anpassung von axb:

Idealgleichung: axbi = yi =⇒ ln a+ b lnxi = ln yiMan sucht b und die neue Unbekannte ln a; aus letzterer erhält man a.(Dieser Ansatz ist nur sinnvoll bei xi > 0 und yi > 0.)

Aufgabe: Der Wertesatz sei (1.3, 5.91), (1.9, 17.44) und (2.8, 51.80). Die in lineare Gleichungen transformiertenIdealgleichungen sind dann (mit c = ln a):

c+ 0.26236 b = 1.77665 , c+ 0.64185 b = 2.85877 , c+ 1.02962 b = 3.94739

Hieraus ergeben sich die beiden Normalgleichungen (ab hier formal gerechnet und mit übertriebener Genauigkeitangeben)

3 c+ 1.933 838 b = 8.582 802 , 1.933 838 c+ 1.540 928 b = 6.365 348

mit den Lösungen b = 2.829 155, c = 1.037 226, also a = ec = 2.821 378.Mit diesen Werten erhält man in den drei linearen Gleichungen Abweichungen von 0.00285, -0.00564 und 0.00279.Sie streuen nach beiden Seiten. In den ursprünglichen Idealgleichungen sind die Abweichungen damit 0.0169, -0.0980und 0.1446.Bei einer Minimierung der primären Quadratsummen hätte man

F (a, b) =(a · 1.3b − 5.91

)2+(a · 1.9b − 17.44

)2+(a · 2.8b − 51.80

)2partiell nach a und b differenzieren müssen und das entstehende nichtlineare Gleichungssystem lösen. Dabei kannman die ermittelten Werte von a und b als Startwerte nutzen. Man erhält diesmal die Lösungen a = 2.856 394 undb = 2.814 610. Hierzu gehören die Abweichungen 0.0676, -0.0459 und 0.0076.Ausgerechnet im kleinsten Funktionswert hat man die größte Abweichung, also einen dramatischen relativen Fehler.Tatsächlich sind die relativen Fehler in den drei Stellen 1.14%, 0.263% und 0.0147%. Da sich die y-Werte drastischunterscheiden wäre es hier vermutlich angebracht, nicht die Summen der Quadrate der absoluten Fehler zu minimieren,sondern die der relativen Fehler. Das ergibt die Zielfunktion

G(a, b) =

(a · 1.3b

5.91− 1

)2

+

(a · 1.9b

17.44− 1

)2

+

(a · 2.8b

51.80− 1

)2

,

die nach dem Differenzieren wieder ein nichtlineares Gleichungssystem liefert. Dieses hat jetzt die Lösungen a =2.821 310 und b = 2.829 156. Die Abweichungen sind nun der Reihe nach 0.0167, -0.0984 und 0.1434 - beim kleinstenWert am kleinsten und beim größten am größten. Die relativen Fehler sind mit 0.28%, -0.56% und 0.28% ziemlichausgeglichen. Die Werte für a und b sind jetzt recht nahe bei denen aus der linearisierten Variante.Alle drei Lösungspaare sind in irgendeinem Sinne vernünftige Näherungslösungen des Anpassungsproblems. Man sieht

10In meinem Übungsmaterial zur Ausgleichsrechnung ist ein Beispiel, wo der Fall ’Alle Punkte auf einer Seite der Geraden’eintritt. - Soviel zum ’offensichtlich’.

107

Page 108: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

also, daß es zu einer Aufgabe oftmals nicht die Näherungslösung gibt. Was das ist hängt von den Anforderungen andas Problem ab. 1.4 ist eine Näherung an

√2 und bisweilen mag sie ausreichen.

1676 bestimmte der dänische Astronom Olaf Römer als erster die Lichtgeschwindigkeit zu 214 450km/s. Gräßlichungenau? Nichtsdestotrotz: Das ist ein Näherungswert. Immerhin kannte man jetzt wenigstens die Größenordnungdieses Wertes und wußte, daß er endlich war.

Beispiel 2: Anpassung von aebx:

Idealgleichung: aebxi = yi =⇒ ln a+ bxi = ln yiMan sucht b und die neue Unbekannte ln a; aus letzterer erhält man a.

Beispiel 3: Anpassung von√a+ bx:

Idealgleichung:√a+ bxi = yi =⇒ a+ bxi = y2

i

Beispiel 4: Anpassung von A sin(ωx+ α), ω sei gegeben:

Idealgleichung: A sin(ωxi + α) = yi =⇒ A cosα · sinωxi +A sinα · cosωxi = ln yiMan sucht die neuen Unbekannte B = A cosα und C = A sinα; aus diesen erhält man A =

√B2 + C2 und

tanα = C/B.

Beispiel 5: Anpassung von (ax+ b)/(1 + cx):

Idealgleichung: (axi + b)/(1 + cxi) = yi =⇒ axi + b− cxiyi = yiNach Multiplikation jeder Idealgleichung mit dem Nenner gewinnt man eine neue lineare Gleichung.Es wäre übrigens Unsinn, den Ansatz (ax+ b)/(cx+ d) zu machen, da dies keine eindeutige Bestimmung der Koeffi-zienten erlaubt - man kann alle vier mit derselben, von Null verschiedenen Zahl multiplizieren.

Beispiel 6: Anpassung von aebx + cedx mit unbekannten Werten a, b, c und d:

Diese Aufgabe ist leider nicht in einfacher und praktikabler Weise zu linearisieren, da man diese Summe nicht glied-weise logarithmieren kann.

Beispiel 7: Anpassung von A sin(ωx+ α), dabei seien A,ω und α gesucht:

Im allgemeinen Fall wiederum nicht linearisierbar.

Der Praktiker muß sich klar werden, welche Ansatzfunktion er für ψ(x) wählt.Es kann sein, er hat für sein Problem eine Differentialgleichung aufgestellt, diese gelöst und bestimmt nun aus Meß-werten die Koeffizienten, die zu der realen Situation gehören. Dann sollte er wohl versuchen, die gefundene Funktionin dieser Form zu verwenden.Hat er dagegen kein konkretes mathematisches Modell, sondern wählt die Funktion ψ(x) aus einer Klasse von geeignetaussehenden Kandidaten, so hat man Freiheiten und sollte bedenken, daß Unachtsamkeit bei dieser Wahl einem ineinem späteren Stadium viele Probleme einbringen kann.Beispiel: Um einen Raumpunkt herum haben sich vier verschiedene positive Ladungen placiert, die entfernteste imAbstand R von jenem Punkt. Ihre Lage und jeweilige Stärke ist unbekannt. Man kennt nur R und weiß, daß es viersind.Eine Gerade aus diesem Punkt sei die in ihm beginnende positive x-Achse, auf ihr bewegt sich eine negative Ladungim Bereich [2R,+∞). Die auf sie wirkende Anziehungskraft hat man in 10 verschiedenen Punkten gemessen. Man willhieraus eine Näherungsfunktion f(x) für diese Kraft gewinnen, um mit ihr später die aufzuwendende oder gewinnbareEnergie für die Bewegung der Ladung aus einem beliebigen Punkt A > 2R in B > 2R näherungsweise berechnen zukönnen.Diese Arbeit ist das Kraftintegral über die Strecke:

W =

∫ b

a

f(x) dx .

Offensichtlich gilt limx→∞ f(x) = 0. Damit fallen Polynome als Ansatzfunktionen weg.Als naheliegende Kandidaten verbleiben rationale Funktionen oder abklingende Exponentialfunktionen und das mitdem Hintergedanken, daß diese sich prinzipiell geschlossen integrieren lassen. Damit ist bereits an einen späterenArbeitsschritt gedacht!Ist man sehr weit von den vier Ladungen entfernt (x >> R), so wirken sie fast wie eine Ladung und dann nimmtbekanntlich die Anziehungskraft wie x−2 ab. Schlußfolgerung hieraus: Exponentialfunktionen entfallen, es bleibenrationale. Wenn deren Nennerpolynom einen um 2 größeren Grad als das Zählerpolynom hat, so ist dieses Verhaltenschon abgebildet.Jetzt geht es nur noch darum, das Verhalten der Kraft in der Nähe der Ladungsgruppe anzunähern. Dazu sehe man,was die Ansätze

a0

x2 + b1x+ b0,

a1x+ a0

x3 + b2x+ b1x+ b0,

a2x2 + a1x+ a0

x4 + b3x3 + b2x+ b1x+ b0, . . .

jeweils mit der Meßwerttabelle leisten und bei wieviel Koeffizienten man eine akzeptable Näherung gewinnt.Dann sollte man prüfen, ob das erhaltene Nennerpolynom eine reelle Nullstelle x∗ ≥ 2R hat. Wenn ja, so ist f(x)unbrauchbar, denn dann wäre bei A ≤ x∗ ≤ b das obigen Integral nicht definiert und das ist physikalischer Unsinn.

108

Page 109: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Natürlich kann man auch ein ebenes Koordinatensystem einführen (die Drehung einer Ladung um diese Achse hatkeinen Einfluß auf diese Kraft) und für die i-te Ladung im Punkt (xi, yi) eine entlang der Achse wirkende Kraft

fi(x) =(xi − x)Fi√(xi − x)2 + y2

i

betrachten. Das ergibt 12 zu bestimmende Werte xi, yi und Fi, wofür 10 Meßwerte nicht ausreichen. Entweder manmacht noch zwei Messungen oder man bedenkt das vorher. Allerdings ist das nichtlineare Gleichungssystem mit den12 Punkten xj und den gemessenen Kräften fj

4∑i=1

(xi − xj)Fi√(xi − x)2 + y2

i

= fj , j = 1, 2, . . . , 12,

sicher nicht einfach zu behandeln. Das begreift man schon durch ein einfaches Gedankenexperiment: Wenn zwei dervier Ladungen mit der Intensität F ∗1 und F ∗2 so eng benachbart sind, daß sie wie eine Ladung erscheinen, so wirddie Rechnung die Orte mit einiger Genauigkeit finden, aber zwei ziemlich willkürliche Intensitäten F1 und F2 mitlediglich F1 + F2 ≈ F ∗1 + F ∗2 , wobei F2 z. B. negativ sein könnte. Man bedenke, daß die Meßwerte bestimmt gewisseFehler enthalten.Die Arbeit würde sich aus dem Integral auch dann vermutlich wieder halbwegs genau ergeben, aber insgesamt istdieser Weg recht problematisch. Es lohnt sich sicher nicht, hier mit der formal exakten Darstellung der Kraft zuoperieren, auch wenn sich deren Formel diesmal aufschreiben läßt.

6.8 Aufgaben1. Es seien xk gewisse gegebene Zahlenwerte; man kann der Einfachheit halber annehmen, daß sie in wachsender

Reihenfolge sortiert sind, also xk ≤ xk+1 gilt. Bestimmen Sie Zahlen a, b und c derart, daß die folgendenAusdrücke jeweils minimal werden:

n∑k=1

(xk − a)2 ,

n∑k=1

|xk − b| , maxk=1...n|xk − c|

2. Es sei die Funktion f(x) =√

1 + x auf dem Abschnitt [−1, 1] betrachtet.Ermitteln Sie zu ihr die Polynome bester gleichmäßiger Approximation des Grades 0 und 1!Ermitteln Sie zu ihr die Polynome bester Approximation im Quadratmittel des Grades 0, 1 und 2!Stellen Sie die jeweiligen Abweichungen zwischen Funktion und Approximierender grafisch dar!

3. Ein Sensor liefert zu gleichabständigen Zeitpunkten tk = t0 + kτ einen Meßwert x(tk) zu einem ablaufendenProzeß; der Prozeßrechner gewinnt nach der Erhebung von x(tk) unverzüglich eine Prognose x(tk+1) für x(tk+1),um ggfs. steuernd einzugreifen. Diese Prognose soll durch eine Interpolation über die n letzten gemessenenWertemit Hilfe der Formel

x(tk+1) = A0x(tk) +A1x(tk−1) +A2x(tk−2) + . . .+An−2x(tk−n+2) +An−1x(tk−n+1)

erfolgen.Im Falle n = 2 ist A0 = 2 und A1 = −1.a) Ermitteln Sie die Koeffizienten Aj für n = 3, 4 und 5! (Hinweis: Benutzen Sie die Interpolationsformel nachLagrange!)b) Angenommen, statt des echten Prozeßwertes x(tk) wird ein durch einen Meßfehler vefälschter Wert x∗(tk) =x(tk)± ε mit einer bekannten universellen Fehlerschranke ε ermittelt.Welcher maximaler möglicher Fehler resultiert daraus für den Prognosewert x(tk+1)?

4. Lassen Sie sich von einem Programm die Interpolationspolynome zu der Funktion y = f(x) = ex auf demAbschnitt [−1, 1] mit gleichabständigen Stützstellen xk = (2k/n)− 1 zeichnen! Was geschieht, wenn man denWert in x = 0 (und nur diesen) von 1 auf 1.01 verfälscht?

109

Page 110: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 7

Differentialgleichungen

7.1 ProblemstellungEs gibt eine Vielzahl von Methoden zur exakten - d. h. formelmäßigen - Lösung von gewöhnlichen Differentialglei-chungen (künftig ’DGl’ abgekürzt) und es gibt eine Vielzahl von DGl, die sich nicht analytisch lösen lassen. Hier sindNäherungsverfahren gefragt.Die allgemeine Lösung einer DGl n-ter Ordnung enthält i. a. genau n Parameter. In dieser Form kann sie von einemNäherungsverfahren, das nur Zahlenwerte als Resultat liefert, schwerlich gelöst werden. Es werden also nur spezielleLösungen berechnet.Diese werden durch die Angabe von Anfangswerten oder Randwerten festglegt.1 Anfangswerte sind Vorgaben für diegesuchte spezielle Lösung y(x) an einer Stelle x0. Üblicherweise ist das der Funktionswert, der Wert der 1., 2., ... ,n− 1-ten Ableitung in x0: y(x0) = y0, y

′(x0) = y′0, . . . , y(n−1)(x0) = y

(n−1)0 .

Das sind genau n Angaben zur Bestimmung der n unbekannten Parameter.Die Anfangsbedingungen können hiervon auch abweichen. Bei einer Dgl. zweiter Ordnung können auch Vorga-ben für y(x0) und y′′(x0) getroffen werden oder - mit gegebenen Werten A, B und C - gelten die Gleichungeny′(x0) = Ay(x0) +B und y′′(x0) + Cy(x0) = 0, usw..

Demgegenüber werden bei Randwertproblemen Angaben in verschiedenen Punkten gemacht; oft sind es zwei. Typischist z. B. die Vorgabe des Lösungswertes in diesen beiden Punkten:

y′′ = f(x, y, y′) , y(x0) = y0 , y(x1) = y1 .

Randwertprobleme können mehr oder weniger leicht und erfolgreich auf Anfangswertprobleme zurückgeführt werden.Daneben gibt es eine Vielzahl von Methoden zu ihrer unmittelbaren Behandlung. Darauf soll in diesem Rahmen nichteingegangen werden. Man vergleiche das abschließende Beispiel in 3.3., S. 26, und das gesamte Beispiel 3, S. 137.

Differentialgleichungen n-ter Ordnung können in ein System von Gleichungen 1. Ordnung umgewandelt werden, indemman für y′, . . . , yn−1 neue unbekannte Funktionen einführt, z. B.:

y′′′ = f(x, y, y′, y′′) =⇒

y1(x) = y(x)y2(x) = y′(x)y3(x) = y′′(x)

=⇒

y′1 = y2y′2 = y3y′3 = f(x, y1, y2, y3)

Im betrachteten Beispiel ist die DGl explizit, also nach der höchsten Ableitung aufgelöst. Das ist oft, aber nicht immerder Fall. Künftig soll nur diese Variante betrachtet werden. Ist die DGl implizit, z. B. 1. Ordnung: F (x, y, y′) =0, so muß ggfs. für gegebene Werte von x und y aus dieser der jeweils zugehörige Wert von y′ mit Hilfe einesNäherungsverfahrens zum Lösen von Gleichungen bestimmt werden.

Es wird also das folgende Anfangswertproblem2 betrachtet:

y′1 = f1(x, y1, y2, . . . , yn)y′2 = f2(x, y1, y2, . . . , yn)

. . .y′n = fn(x, y1, y2, . . . , yn)

,

y1(x0) = y1,0y2(x0) = y2,0

. . .yn(x0) = yn,0

.

1Es sind weitere Vorgaben möglich. Z. B. kann für das Integral∫ b

a

y(x) dx

über die Lösungsfunktion y(x) ein Wert vorgeschrieben werden, u. a..2Ein Anfangswertproblem besteht aus der DGl einerseits und den Anfangsbedingungen andererseits.

110

Page 111: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Die Funktionen yi(x) werden zu einem n-dimensionalen Funktionenvektor y(x) = (y1(x), y2(x), . . . , yn(x))T zusam-mengefaßt, analog die Anfangsbedingungen zu y0 = (y1,0, y2,0, . . . , yn,0)T und die Funktionen fi:

f(x, y) =

f1(x, y)f2(x, y). . .

fn(x, y)

=

f1(x, y1, y2, . . . , yn)f2(x, y1, y2, . . . , yn)

. . .fn(x, y1, y2, . . . , yn)

.

Damit lautet das Anfangswertproblem in kompakter Schreibweise

y′ = f(x, y) , y(x0) = y0 .

Äußerlich unterscheiden sich damit Systeme nicht von skalaren Gleichungen, also von einer einzigen DGl 1. Ordnungfür eine gesuchte Funktion. Alle weiteren Rechnungen sind auch für einzelne Gleichungen und für Systeme weitgehendidentisch, so daß künftig nur wie mit einer skalaren Gleichung gerechnet wird.

7.2 Vorbetrachtung: Taylor-Polynom zur LösungsfunktionZunächst wird eine Hilfsformel hergeleitet:In der Funktion f(x, y) werden die beiden Variablen um kleine Werte geändert. Es folgt

∆f ≈ ∂f

∂x·∆x+

∂f

∂y·∆y = fx ·∆x+ fy ·∆y .

Wenn nun seinerseits y = y(x) von x abhängt, so ist die Änderung von y ein Resultat der Änderung von x undgegeben durch ∆y ≈ y′(x) ·∆x. Damit wird

∆f ≈ fx ·∆x+ fy · y′ ·∆x =⇒ ∆f

∆x≈ fx + fy · y′

=⇒∆x −→ 0

d

dxf(x, y(x)) =

∂f

∂x+∂f

∂y· y′(x) .

Diese Hilfsformel ist eine spezielle Variante der Kettenregel.

Gegeben sei das Anfangswertproblem y′ = f(x, y), y(x0) = y0. Es soll ein Taylor-Polynom zur Lösungsfunktion,entwickelt an der Stelle x0, aufgestellt werden.Bekanntlich gilt

Pn(x) = y(x0) + y′(x0) · (x− x0) +y′(x0)

2· (x− x0)2 +

y′′(x0)

3!· (x− x0)3 + . . .+

y(n)(x0)

2· (x− x0)n .

Dieses Polynom ist eine Näherung an y(x) in einer gewissen Umgebung von x0.Um es aufzustellen braucht man die Werte der Funktion y(x) und ihrer Ableitungen an der Stelle x0.Der Funktionswert ist nun gerade der Anfangswert y0.Den Wert der ersten Ableitung erhält man aus der DGl und dem Anfangswert: y′(x0) = f(x0, y(x0)) = f(x0, y0).Differenziert man beide Seiten der DGl nach x, so erhält man die zweite Ableitung von y:

d

dxy′ = y′′ =

d

dxf(x, y) = fx + fy · y′ =⇒ y′′(x0) = fx(x0, y0) + fy(x0, y0) · y′(x0) .

Nochmaliges Differenzieren erbringt die dritte Ableitung, usw.:

d

dxy′′ = y′′′ =

d

dx[fx + fy · y′] = (fxx + fxy · y′) + (fyx · y′ + fyy · (y′)2 + fy · y′′) .

Wegen fxy = fyx kann man den letzten Ausdruck etwas zusammenfassen.

Faktisch ist die Rechnung einfacher. Als Beispiel wird das folgende Problem betrachtet:

y′ =2− x+ cosπy

1 + 2x+ y2, y(0) = 1 .

Es gilt y′(0) = (2− 0 + cosπ)/(1 + 2 · 0 + 12) = 1/2.Nun wird die DGl differenziert, wobei man beachtet, daß y von x abhängt!

y′′ =(−1− π sinπy · y′) · (1 + 2x+ y2)− (2− x+ cosπy) · (2 + 2y · y′)

(1 + 2x+ y2)2

Der Wert im Anfangspunkt ist damit

y′′(0) =(−1) · 2− (2− 1) · (2 + 2 · 1 · (1/2))

22=−2− 3

4= −5

4.

111

Page 112: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Weiter wirdy′′′ =

Z

(1 + 2x+ y2)4

mit dem Zähler

Z = [(−π2 cosπy · y′2 − π sinπy · y′′) · (1 + 2x+ y2) + (−1− π sinπy · y′)(2 + 2yy′)−

−(−1− π sinπy · y′) · (2 + 2y · y′)− (2− x+ cosπy) · 2(y′2 + y · y′′)] · (1 + 2x+ y2)2−−[(−1− π sinπy · y′) · (1 + 2x+ y2)− (2− x+ cosπy) · (2 + 2y · y′)] · 2(1 + 2x+ y2)(2 + 2yy′) .

Setzt man hier x = 0 und die bekannten oder bereits berechneten Werte für y(0), y′(0) und y′′(0), so wird

y′′′(0) =34 + π2

8.

Das Verfahren kann beliebig fortgesetzt werden. Es empfiehlt sich der Einsatz eines Programmes zur Rechnung mitComputeralgebra. Dieses erzeugt mühelos z. B. den folgenden Ausdruck:

P5(x) = 1 +x

2− 5

8x2 +

34 + π2

48x3 − 385 + 25π2

384x4 +

(599

384+

3π2

20+

π4

1280

)x5 + . . . .

Die nachstehende Ableitung zeigt den Verlauf der Taylor-Polynome des Grades 0, 1, 2 und 3, der wahre Verlauf vony(x) ist gestrichelt:

0.00 0.25 0.50 0.75 1.00 1.250.0

0.5

1.0

1.5

2.0

P0(x)

P1(x)

P2(x)

P3(x)

...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

....................................................................................................................................................................................................................

....................................................................................................................................................................................................................

....................................................................................................................................................................................................................

....................................................................................................................................................................................................................

...................

..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................................................................................................................................................................................

.........................................................................................................................................................................................

................................................................................................................

...................................................................................

.....................................................................

....................

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ......

....... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

Wie man sieht stimmt - im Rahmen der Zeichnung - P3(x) etwa bis 0.3 mit y(s) recht gut überein, die Polynomeniederen Grades entsprechend weniger.

Wie kann man nun auf diese Weise y(x) - zumindest genähert - in einer gewissen Entfernung von x0 berechnen? Derdirekte Wert eines Taylor-Polynoms (zumindest eines moderaten Grades) wäre zu ungenau.Man wählt einen nicht allzuweit von x0 entfernten Wert x1 = x0 + h. Die Schrittweite h sei so klein, daß der Werty1 = Pn(x1) als gute Näherung zu y(x1) gelten kann.Dann formuliert man das neue Anfangswertproblem y′ = f(x, y), y(x1) = y1.Wenn y1 exakt gleich y(x1) wäre, so wäre die Lösung dieser Aufgabe mit der der ursprünglichen identisch. Wegender i. a. vorhandenen Abweichung berechnet man jetzt aber eine neue Funktion, die allerdings nicht sehr weit nebender eigentlichen liegen dürfte.Zu diesem neuen Anfangswertproblem wird das Taylor-Poynom in x = x1 aufgestellt. Es ist bis in eine Stelle x2

brauchbar. Mit dem dort berechneten Wert ermittelt man eine Näherung y2 ≈ y(x2), usw..

Anwendung auf das vorige Beispiel; sei n = 2 und h = 0.2.Wegen x0 = 0 wird x1 = x0 + h = 0 + 0.2 = 0.2 und y1 = 1 + 0.2/2− 5 · 0.22/8 = 1.075.Die Koeffizienten des neuen Taylor-Polynoms sind

y′1 = f(x1, y1) = f(0.2, 1.075) =2− 0.2 + cos 1.075π

1 + 2 · 0.2 + 1.0752= 0.32385

undy′′1 =

df

dx(0.2, 1.075) = −0.64003 ,

es resultiert das neue Polynom

P(1)2 (x) = 1.075 + 0.32385(x− 0.2)− 0.64003

2(x− 0.2)2 .

112

Page 113: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Mit P (1)2 (0.4) erhält man einen Näherungswert zu y(0.4), dem wahren Wert der exakten Lösung an der Stelle x2 =

x1 + h = 0.2 + 0.2 = 0.4.

Die Rechnung kann fortgesetzt werden. Man erhält die folgenden, als Kreuze eingezeichneten Punkte (xi, yi):

0.00 0.25 0.50 0.75 1.00 1.25 1.501.00

1.05

1.10

1.15

1.20

1.25

.................................................................

.................................................................

.................................................................

................................................................. .............................

................

................

.... .................................................................

.................................................................

.........................................................................................................................................................................................................................................................................................................................................................

..................................................................

...........................................................................

.........................................................................................

......................................................................................................................

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

........................................................................................... ............. .......

...... .......................... ............. ......

....... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .......................................

Das ursprüngliche Polynom P2(x), an der Stelle x0 entwickelt, ist gestrichelt eingezeichnet. Man erkennt, daß es denWert y1 liefert, um gleich danach unbrauchbar zu werden.

Die Punkte (xi, yi) liegen nicht auf der exakten Lösung, aber immerhin in ihrer Nähe.

Ein weiteres Beispiel: Schwingung eines mathematischen Pendels

Dieses Beispiel ist realitätsbezogen und es demonstriert die Möglichkeit der Behandlung einer DGl 2. Ordnung.Übrigens wird sie dabei nicht in ein System transformiert.Sei also ein Pendel der Länge l gegeben, das in einem Schwerefeld mit der Beschleunigung g reibungsfrei schwingt.Bekanntlich genügt seine zeitabhängige Auslenkung ϕ(t) gegen die Senkrechte der nichtlinearen3 DGl

ϕ = −gl

sinϕ .

Die DGl 2. Ordnung braucht zwei Anfangsbedinungen. Nehmen wir an, das Pendel hing bei t = 0 in Ruhe (ϕ(0) = 0)und bekam einen Schubs, der ihm die Winkelgeschwindigkeit ω0 = ϕ(0) vermittelte.Gehen wir aus vom Erdschwerefeld (g = 9.81m/s2) und geben wir dem Pendel die Länge 1m. Der Winkel ϕ wird imBogenmaß gemessen, die Zeit in Sekunden. Im Falle kleiner Ausschläge beträgt die Dauer einer vollen Schwingung

T = 2π

√l

g= 2.00603s .

Das Aufstellen des Taylor-Poynoms ist hier recht einfach. Es werde ein Polynom 4. Grades verwandt:

ϕ(2) = −9.81 sinϕ , ϕ(3) = −9.81 cosϕ · ϕ(1) , ϕ(4) = −9.81[cosϕ · ϕ(2) − sinϕ · (ϕ(1))2

].

Es ist also wiederum möglich, die einzelnen Ableitungswerte rekursiv zu berechnen:

ϕ(2)(0) = −9.81 sin 0 = 0 , ϕ(3)(0) = −9.81ω0 cos 0 = −9.81ω0 ,

ϕ(4)(0) = −9.81[−ω2

0 · sin 0 + 0 · cos 0]

= 0 .

Sei beispielsweise die Anfangsgeschwindigkeit v0 = 1m/s, also ω = v0/l = 1s−1, so ergibt sich mit der Schrittweiteτ = 0.1s (der für Zeitschritte an Stelle von h üblichen Bezeichnung):

ϕ(0.1) ≈ ϕ1 = 0 + 1 · 0.1 +0

2· 0.12 − 9.81 · 1

3!· 0.13 +

0

4· 0.14 = 0.09984 .

Man beachte: Bei gleichmäßiger Rotation hätte das Pendel den Winkel ω0 ·τ = 0.1 überstreichen müssen. Tatsächlichhat es etwas weniger zurückgelegt. Das stimmt mit dem physikalischen Verständnis überein, nach dem das Pendel

3Im Unterricht wird hieraus gern eine lineare DGl gewonnen, indem man sich auf kleine Auslenkungen beschränkt undsinϕ ≈ ϕ setzt. Dann resultiert die bekannte harmonische Schwingung ϕ(t) = A sin(ωt+ α) mit ω =

√g/l.

Diese nichtlineare DGl kann nicht in elementaren Funktionen gelöst werden.

113

Page 114: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

beim Ausschwingen langsamer werden muß.Die weitere Rechnung ist in der folgenden Tabelle dargestellt, es ist jeweils

ϕi+1 = ϕi + ϕi · τ +ϕi2· τ2 +

ϕ(3)i

3!· τ3 +

ϕ(4)i

4!· τ4 .

Für den nächsten Schritt sind wiederum zwei Anfangswerte nötig, man braucht dort also auch den Wert der Winkel-geschwindigkeit, der sich analog aus dem Taylor-Polynom für ϕ(t) berechnet:4

ϕi+1 = ϕi + ϕi · τ +ϕ

(3)i

2· τ2 +

ϕ(4)i

3!· τ3 .

k ti ϕi ϕi ϕi ϕ(3)i ϕ

(4)i Eges/m

0 0.000 0.000000 1.000000 0.000000 -9.810000 0.000000 0.5000001 0.1 0.098365 0.950950 -0.963405 -9.283725 10.276534 0.4995742 0.2 0.187139 0.809904 -1.825132 -7.806437 18.789129 0.4992483 0.3 0.257780 0.591490 -2.500912 -5.610789 24.598269 0.4990704 0.4 0.303592 0.317444 -2.932700 -2.971716 27.749641 0.4990095 0.5 0.320293 0.013941 -3.088631 -0.129803 28.759129 0.4990046 0.6 0.306343 -0.290778 -2.958436 2.719729 27.921210 0.4990017 0.7 0.263042 -0.568370 -2.550789 5.383921 24.986549 0.4989538 0.8 0.194453 -0.792365 -1.895582 7.626601 19.435327 0.4988049 0.9 0.107090 -0.940551 -1.048550 9.173943 11.154936 0.498516

10 1.0 0.009368 -0.997677 -0.091900 9.786779 0.992969 0.49811011 1.1 -0.089224 -0.957767 0.874125 9.358323 -9.342904 0.497681

Die Tabelle erfaßt etwas mehr als eine Halbschwingung. Der Ausschlag (3. Spalte) wächst zunächst bis auf etwa0.3203 (in dieser Tabelle), wobei die Winkelgeschwindigkeit (4. Spalte) abnimmt. Beim Maximalausschlag ist dierücktreibende Beschleunigung (5. Spalte) am größten. - Die Halbschwingung dauert etwas länger als eine Sekunde.Das paßt zum Überschlag der Schwingungsdauer.Wie genau sind die Werte? - Die physikalische Überlegung liefert hier gewisse Kriterien, die man bei der Bewertungeines numerischen Ergebnisses durchaus nutzen sollte.Die Schwingung war als reibungsfrei vorausgesetzt, also ist die Geschwindigkeit beim nächsten Nulldurchgang exaktdieselbe wie beim Start, nur mit entgegengesetzten Vorzeichen.Nun ist der Moment des Nulldurchgangs nicht genau getroffen. Er liegt in der Nähe des Moments t = 1.0s, undzwar danach. Die Geschwindigkeit müßte dort noch kleiner sein als im Durchgang; das trifft zu. Rechnen wir etwasgenauer.Zunächst werden die Differenzen zwischen den drei Winkelwerten um den Nulldurchgang herum bewertet (in Einheitender letzten Kommastelle, das ist bequemer):

t ϕ ∆

0.9 107 090

97 7221.0 9 368

98 5921.1 -89 224

Die Differenzen sind fast gleich, die ϕi liegen also (hier!) fast auf einer Geraden. Damit ist lineare Interpolationgerechtfertigt, um den Moment des Nulldurchgangs zu ermitteln:

t∗ = 1.0 +9368

9368− (−89224)· 0.1 = 1.0095 .

Die Geschwindigkeitskurve durchläuft ein Minimum. Es kommt auf ihre Krümmung an und deshalb ist dort lineareInterpolation unzweckmäßig. Legen wir also ein quadratisches Polynom durch die drei Werte der Geschwindigkeit.Zur Bequemlichkeit wird auf das Minuszeichen verzichtet und wieder in Einheiten der letzten Stelle gerechnet.Ansatz: ϕ(t) = A+B(t− 0.9) + C(t− 0.9)(t− 1.0). Aus ϕ(0.9) = 940551 = A folgt sofort der erste Parameter.Weiter ergibt ϕ(1.0) = 940551 + B · 0.1 = 997677 den Wert B = 571260, und aus ϕ(1.1) = 940551 + 571260 · 0.2 +C · 0.2 · 0.1 = 957767 folgt C = −4851800.Setzt man nun den ermittelten Wert t∗ = 1.0095s ein, so resultiert 940 551 + 571 260 · (1.0031 − 0.9) − 4 851 800 ·(1.0031 − 0.9) · (1.0031 − 1.0) = 998057. (Kommastellen wurden weggerundet). - Vorzeichen und Größenordnungwiederhergestellt erhält man damit für die Geschwindigkeit im Nulldurchgang -0.998057.Es wurde also wirklich etwas zuwenig Geschwindigkeit gefunden, und zwar 0.2%.

4An dieser Stelle kommt doch das System von 2 Gleichungen 1. Ordnung ins Spiel!

114

Page 115: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Ein ständig gültiges Kriterium: Die Gesamtenergie

Eges = Ekin + Epot =ml2ϕ2

2+mg(1− cosϕ)l

muß wegen der fehlenden Reibung dauernd konstant sein und dieser Wert kann mühelos mitberechnet werden (letzteSpalte). Er nimmt tatsächlich nur unwesentlich ab. In der Zeit bis 1s (erste Halbschwingung) gehen knapp 0.5% derEnergie ’rechnerisch’ verloren.

Wie läßt sich die Genauigkeit verbessern?Die Schrittweite τ (bzw. h, im allgemeinen Fall) muß verringert werden. Dann wird der erste Wert genauer und damitsind die Voraussetzungen für den zweiten verbessert, usw..Allerdings muß man dann, um ein bestimmtes Argument zu erreichen, entsprechend mehr Schritte machen. Das hatdrei Nachteile: 1.) höherer Aufwand, 2.) man macht zwar kleinere Fehler pro Schritt, aber öfter, und 3.) man machtmehr Rundungsfehler, da man mehr rechnet.Trotzdem zahlt sich eine Verkeinerung der Schrittweite in puncto Genauigkeit in gewissen Grenzen aus. Im Vergleichzur eingangs betrachteten Tabelle soll nun τ dreimal jeweils halbiert werden:

τ i ti ϕi ϕi ϕi ϕ(3)i ϕ

(4)i Eges/m

0.1 0 0.000 0.000000 1.000000 0.000000 -9.810000 0.000000 0.500000... ... ... ... ... ... ... ... ...

9 0.9 0.107090 -0.940551 -1.048550 9.173943 11.154936 0.49851610 1.0 0.009368 -0.997677 -0.091900 9.786779 0.992969 0.49811011 1.1 -0.089224 -0.957767 0.874125 9.358323 -9.342904 0.497681

τ i ti ϕi ϕi ϕi ϕ(3)i ϕ

(4)i Eges/m

0.05 20 1.000 0.009504 -0.999317 -0.093236 9.802859 1.007713 0.49976021 1.050 -0.040374 -0.991704 0.395957 9.720692 -4.270591 0.49973322 1.100 -0.089262 -0.959845 0.874502 9.378588 -9.350394 0.499707

0.025 40 1.000 0.009515 -0.999526 -0.093337 9.804904 1.008843 0.49997041 1.025 -0.015477 -0.998793 0.151825 9.796982 -1.640681 0.49996842 1.050 -0.040374 -0.991940 0.395962 9.722998 -4.270823 0.499967

0.0125 80 1.0000 0.009515 -0.999552 -0.093345 9.805161 1.008939 0.49999681 1.0125 -0.002983 -0.999952 0.029263 9.809490 -0.316334 0.49999682 1.0250 -0.015477 -0.998820 0.151823 9.797255 -1.640669 0.499996

Bei τ = 0.0125s zeichnet sich in der Gesamtenergie im Rahmen der Ausgabegenauigkeit kaum noch eine Abweichungab. Die Geschwindigkeit ist nur unwesentlich kleiner, wobei man noch bedenken muß, daß sie ja nicht im Nulldurch-gang angezeigt wird.

Für v0 = 1m/s, 5m/s, 7m/s wird nun das zugehörige ω0 berechnet und damit jeweils die betreffende Bewegungsimuliert:

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1−0.1

0.0

0.1

0.2

0.3

0.4

....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

ϕ

t

v0 = 1m/s

........................................................................................................................................................................................................

...............................................................

.......................................................................

...........................................................................................

.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Der Maximalwert entspricht einem Ausschlag von 18.4o. Das ist mehr als das, was man gemeinhin unter einem ’klei-nen Ausschlag’ versteht, aber das Bild ähnelt doch sehr einer harmonischen Schwingung.

115

Page 116: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3−0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1.8

2.0

............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

ϕ

t

v0 = 5m/s

..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.......................................................................................

.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Rein vom Bild her scheint sich nicht viel geändert zu haben, aber die Schwingungsdauer ist länger geworden. Beikleinen Ausschlägen hing sie nicht von der Schwingungsweite ab!

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.80

1

2

3

4

..................................................

ϕ

t

v0 = 6.3m/s

.........................................................................................................................................................................................................................................................................................................................................

......................................................................

...............................................................................................

............................................................................................................................................................

.............................................................................................................................................................................................................................................

.........................................................................................................................................................

.............................................................................................

...........

Das Pendel macht Überschläge und rotiert - ein Zustand, der sich mit dem linearen Modell überhaupt nicht beschrei-ben läßt.

Ein Fall aus einer Höhe von s = 2m (der obersten Lage des Pendels) erbringt eine Fallgeschwindigkeit von√

2gs =6.2641839m/s.

Startet man mit dieser Geschwindigkeit, so müßte das Pendel in der aufrechten Lage stehenbleiben. Statt dessen wirdnachstehend die Rechnung mit der geringfügig größeren Anfangsgeschwindigkeit von 6.2642m/s durchgeführt, undzwar mit drei verschiedenen Zeitschrittweiten:

116

Page 117: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

0 1 2 3 40

1

2

3

4

..............................................................................................................

ϕ

t

v0 = 6.2642m/s τ = 0.01

τ = 0.02

τ = 0.05

......................................................................................................................................................................................................................................................................................................................................................................

..................................................................................................................

.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

...................................

......................................................................................................................................................................... ............. .......

...... .......................... ............. .............

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .......

......................... . .

. . .. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......................

Die Rechnung zeigt, daß das Ergebnis sehr stark von der Schrittweite abhängt. Wählt man diese zu groß, so wirdeine Schwingung vorgegaukelt, während es sich in Wirklichkeit um eine Rotation handelt.Solche Zustände eines Systems nennt man chaotisch. Sie zeichnen sich dadurch aus, daß sich mehr oder wenigergenau ein labiles Gleichgewicht einstellt, aus dem heraus das System in schwer vorhersagbarer Weise nach der einenoder anderen Seite kippen kann (und es können wesentlich mehr Richtungen möglich sein). An solchen Stellen werdenModelle ungenau und Prognosen unmöglich.Das bekannteste Beispiel ist das Wetter, dessen Vorhersage über lange Zeiträume sehr unsicher ist.

7.3 Runge - Kutta - VerfahrenNun zu einem praktikablen Verfahren, das im Prinzip weitgehend die im vorigen Punkt beschriebene Taylor-Entwicklung realisiert, es aber dem Nutzer erspart, die aufwendigen Ableitungen zu berechnen. Statt dessen kommtes einzig mit der Berechnung der Funktion f(x, y) aus, diese allerdings i. a. mehrfach.Die klassischen Formeln dieser Theorie wurden zuerst von Runge,5 später von Heun und Kutta um das Jahr 1900herum entwickelt.Es wird wiederum - bei gegebenen Anfangswerten (x0, y0) - jeweils ein neues Wertepaar (xi+1, yi+1) aus seinem Vor-gängerpaar (xi, yi) berechnet. Deshalb nennt man diese Methode auch Einschrittverfahren.6

1. Das Eulersche Polygonzugverfahren (vorwärts):

Das ist das einfachste denkbare Verfahren. Für praktische Zwecke ist es meist zu ungenau. Mit seiner Hilfe könnentheoretische Untersuchungen an DGl vorgenommen werden, weiterhin ist es ein guter Einstieg in die Denkweise dieserMethoden.Es basiert auf der Verwendung der linearen Taylor-Polynome, also auf der simplen Formel

y(xi+1) ≈ yi+1 = yi + y′i · h = yi + h · f(xi, yi) , xi+1 = xi + h .

Pro Schritt ist nur eine einzige Auswertung der Funktion f(x, y) (diese Zahl ist das übliche Maß des Rechenaufwan-des) durchzuführen.Welche Genauigkeit des Resultats ist zu erwarten?Der Fehler pro Schritt ist - kleine Werte von h vorausgesetzt - etwa gleich dem ersten weggelassenen Term und derwiederum ist etwa proportional h2.Um einen gewissen Wert x∗ zu erreichen muß man eine Anzahl von h-Schritten machen, die proportional 1/h ist.Multipliziert man den Fehler pro Schritt mit der Anzahl der Schritte, so ergibt sich eine Proportionalität des Ge-samtfehlers zu h (etwa!).Diese grobe Überlegung kann korrekter durchgeführt werden; statt dessen soll die Wirkung der Methode an einerganz einfachen linearen Gleichung demonstriert werden:

y′ = y , y(0) = 1 =⇒ y(x) = ex .

Berechnet werden soll ein Näherungswert zu y(1) = e = 2.71828 . . ..

Bei h = 1 ist man in einem Schritt an der betreffenden Stelle: y(1) ≈ y1 = y0 + h · f(x0, y0) = 1 + 1 · 1 = 2.Geometrisch gesehen wird an der Stelle (xi, yi) die Tangente an diejenige Lösungskurve der DGl gelegt, die durch

5Von ihm war bereits bei der Interpolation im Zusammenhang mit der Funktion f(x) = 1/(1 + 25x2) die Rede.6Im Unterschied zu den von der Idee her wesentlich verschiedenen Mehrschrittverfahren, bei denen (xi+1, yi+1) aus mehreren

Vorgängerwerten berechnet wird.

117

Page 118: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

diesen Punkt geht und diese wird dann das Stück der Länge h (auf der x-Achse) verfolgt (ausgezogene Linie):

0.00 0.25 0.50 0.75 1.001.00

1.25

1.50

1.75

2.00

2.25

2.50

2.75

..............................................................................................

..............................................................................................

..............................................................................................

..............................................................................................

..............................................................................................

..............................................................................................

..............................................................................................

..............................................................................................

..............................................................................................

..............................................................................................

..............................................................................................

........................

............. .......................... .............

............. .......................... .............

............. .......................... .............

............. .......................... .............

............. .......................... .............

............. .......................... .........

.... .......................... .........

.... .......................... .........

.... .......................... .........

.... .......................... .........

.... .......................... .........

.... .......................... .........

.... ..........................

. . . .. . . .

. . . .. . . .

. . . .. . . .

. . . .. . . .

. . . .. . . .

. . . .. . .

. . .. . .

. . .. . .

. . .. . .

. . .. . .

. . .. . .

. . .. . .

. . .. . .

. .

c

cc

cc

c

cex

h = 1

h = 1/2

h = 1/4

...........................................................................................

.....................................................................................

...............................................................................

...........................................................................

.......................................................................

....................................................................

.................................................................

..............................................................

............................................................

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Der Näherungswert 2 zu 2.71828... ist nicht gerade sehr gut. Das ist der groben Vorgehensweise geschuldet, die davonausgeht, daß der Anstieg y′(0) = 1 von x = 0 bis x = 1 festgeschrieben wird, während sich die Funktionskurve inWirklichkeit krümmt.Durch eine Unterteilung bei x = 0.5 gibt man dem Verfahren die Möglichkeit, den Anstieg zwischenzeitlich zukorrigieren:

y1 = y0 + h · f(x0, y0) = y0 + h · y0 = 1 + 0.5 · 1 = 1.5 .

y2 = y1 + h · f(x1, y1) = y1 + h · y1 = 1.5 + 0.5 · 1.5 = 2.25 .

Das ist kein umwerfender Erfolg, aber es geht in die richtige Richtung (gestrichelter Verlauf).Mit h = 1/4 wird das Resultat noch ein wenig besser:

y1 = y0 + h · f(x0, y0) = y0 + h · y0 = 1 + 0.25 · 1 = 1.25 .

y2 = y1 + h · f(x1, y1) = y1 + h · y1 = 1.25 + 0.25 · 1.25 = 1.5625 .

y3 = y2 + h · f(x2, y2) = y2 + h · y2 = 1.5625 + 0.25 · 1.5625 = 1.9531 .

y4 = y3 + h · f(x3, y3) = y3 + h · y3 = 1.9531 + 0.25 · 1.9531 = 2.4414 .

Die gewonnenen Punkte sind punktiert verbunden.Man erhält i. a. als Bild eine stückweise lineare Funktion, da man jeweils ein Stück der Tangentengerade verwendet.Daher rührt der Name Polygonzugverfahren.7

Mit genauerer Rechnung erhält man

n h = 1/n yn yn − e n · (yn − e)

1 1 2.000 000 -0.718 282 -0.718 2810 0.1 2.593 742 -0.124 539 -1.245 39

100 0.01 2.704 814 -0.013 468 -1.346 791000 0.001 2.716 924 -0.001 358 -1.357 90

7Das ist die einfachste Methode, aus einer Reihe von Meßpunkten eine Kurve zu machen: man verbindet die Punkte durchGeraden. Bekanntes Beispiel ist die klassische Fieberkurve über dem Krankenhausbett. Das ist übrigens eine sehr vernünftigeMethode, da sie dem Arzt - der im Rahmen einer Visite eine beträchtliche Menge an Patientendaten in Echtzeit verarbeiten muß- eine schnelle Orientierung erlaubt. Die Frage der Resultatrepräsentation ist eher eine periphere Fragestellung der numerischenMathematik, aber ihre Bedeutung sollte man nicht unterschätzen.Am Rande bemerkt: Eine solche Kurve ist eine lineare Splinefunktion. Im Unterschied zu den kubischen sind hier auf jedemTeilabschnitt nur lineare Polynome definiert, die in den Stützstellen die vorgegebenen Werte annehmen. Man hat jetzt wenigerFreiheitsgrade, so daß nur noch die Stetigkeit der resultierenden Funktion gefordert werden kann.Offensichtlich lokalisieren sich auch hier Störungen und das noch ausgeprägter als im kubischen Fall: Die Änderung einesFunktionswertes betrifft nur die beiden unmittelbar angrenzenden Abschnitte. Und die Funktion unter- und überschreitet niedie Tabellenwerte.

118

Page 119: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Wie man an der letzten Tabellenspalte sieht ist der Fehler tatsächlich in etwa proportional zu 1/n = h. Der Propor-tionalitätsfaktor ist rund -1.36.In diesem Beispiel ist stets yi+1 = yi + h · yi = (1 + h)yi, also bilden die yi eine geometrische Folge mit dem Faktor1 + h und es ist yn = (1 + h)ny0 = (1 + h)n = (1 + 1

n)n.

Der letzte Ausdruck konvergiert bekanntlich bei n→∞ gegen e.Etwas genauer gerechnet erhält man mit den bekannten Potenzreihendarstellungen

ex = 1 + x+x2

2!+ . . . , ln(1 + x) = x− x2

2+x3

3+ . . .

für den Fehler

yn − e =(

1 +1

n

)n− e = exp

[n ln

(1 +

1

n

)]− e = exp

[n(

1

n− 1

2n2+ . . .

)]− e =

= exp[1− 1

2n+ . . .

]− e = e

[exp(− 1

2n+ . . .

)− 1]

= e[(

1− 1

2n+ . . .

)− 1]

= − e

2n+ . . . = − 1.359 . . .

n+ . . . .

Dieses Ergebnis paßt sehr gut zu den Resultaten.

Man erkennt also: Eine Halbierung des Fehlers muß mit (ungefähr) der Verdoppelung des Aufwandes erkauft werden.

Diese Relation ist i. a. undiskutabel schlecht. Für bessere Methoden muß etwas mehr geistige Arbeit investiert werden.Man vergleiche mit dem im Abschnitt ’Allgemeines’ Gesagten.

2. Heunsches Verfahren:

Das Problem beim Eulerschen Polygonzug war der Umstand, daß der Anstieg der Funktion nur zu Beginn jedesTeilintervalles ermittelt und dann für dieses festgehalten wurde.Wenn man schon mit einer linearen Funktion operieren will, so wäre es vernünftiger, nicht den Anstieg y′ am (linken)Rand des Intervalls von xi bis xi+1 zu nehmen, sondern den in der Mitte. Ein anderer sinnvoller Wert wäre dasarithmetische Mittel zwischen dem Anstieg links und dem im rechten Rand, das ergäbe die Formel

yi+1 = yi +f(xi, yi) + f(xi+1, yi+1)

2· h .

Diese Formel hat einen entscheidenden Nachteil: In ihr steht der gesuchte Wert yi+1 auch auf der rechten Seite.Man kann sie als Berechnungsvorschrift auffassen. Dann muß man aber die Unbekannte yi+1 z. B. mit dem Newton-Verfahren aus dieser Gleichung berechnen. Dieser Aufwand lohnt sich zumeist nicht.(Man kann yi+1 auch ganz einfach über eine Fixpunktiteration bestimmen. Die Ableitung von

ϕ(y) = yi +h

2[f(xi, yi) + f(xi+1, y)] ist ϕ′(y) =

h

2

∂f

∂y(xi+1, y) ,

und es ist garantiert |ϕ′(y)| ≤ q < 1, wenn nur h klein genug gewählt wird. Damit ist Kontraktion gewährleistet,Selbstabbildung liegt auch vor.)Reduzieren wir die Ansprüche ein wenig und begnügen wir uns auf der rechten Seite nicht mit dem echten Wert yi+1,sondern mit einem Ersatz. Zu diesem Zweck wird yi+1 mit Hilfe der Euler-Formel geschätzt:

yi+1 = yi + h · f(xi, yi)

und dann ein besserer Wert yi+1 berechnet:

yi+1 = yi +f(xi, yi) + f(xi+1, yi+1)

2· h .

Diese beiden Formeln beschreiben das Heunsche Verfahren.

Wenden wir es auf das schon betrachtete Beispiel y′ = y, y(0) = 1 an.Bei h = 1 wird y1 = 1 + 1 · 1 (Euler-Schritt) und damit erhält man y1 = 1 + 1 · (1 + 2)/2 = 2.5.Das ist eine Genauigkeit, die beim einfacheren Euler-Verfahren nicht einmal mit vier Schritten erreicht wurde. Dorthatte sich der Wert 2.44 ergeben!8

Bei h = 1/2 läuft die Rechnung so ab:y1 = 1 + 0.5 · 1 = 1.5, y1 = 1 + 0.5 · (1 + 1.5)/2 = 1.625,y2 = 1.625 + 0.5 · 1.625 = 2.4375, y2 = 1.625 + 0.5 · (1.626 + 2.4375)/2 = 2.6406.Das wurde vorher nicht einmal mit 10 Schritten erreicht.Tabelliert ergibt sich das folgende Bild:

8Man könnte nun auf die Idee kommen, den grob geschätzten Wert yi+1 durch das soeben berechnete yi+1 zu ersetzen undden letzten Schritt noch einmal zu wiederholen. Das bringt jedoch nur unwesentliche Verbesserungen und keine höhere h-Potenzim Fehlerterm.

119

Page 120: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

n h = 1/n yn yn − e n2 · (yn − e)

1 1 2.500000000 -0.218281828 -0.218282 1/2 2.640625000 -0.077656828 -0.310634 1/4 2.694855690 -0.023426138 -0.374828 1/8 2.711841239 -0.006440590 -0.4122016 1/16 2.716593522 -0.001688306 -0.4322132 1/32 2.717849674 -0.000432154 -0.4425364 1/64 2.718172512 -0.000109317 -0.44776

128 1/128 2.718254338 -0.000027490 -0.45040256 1/256 2.718274936 -0.000006893 -0.45172512 1/512 2.718280103 -0.000001726 -0.452381024 1/1024 2.718281397 -0.000000432 -0.452722048 1/2048 2.718281720 -0.000000108 -0.45288

Aus der letzten Spalte erkennt man, daß der Gesamtfehler jetzt etwa proportional zu h2 bzw. zu n−2 ist.Betrachten wir den Fehler pro Schritt, typischerweise im ersten. Zu diesem Zweck wird die Funktion f(x, y) an derStelle x = x0 und y = y0 in einen Taylor-Ausdruck in beiden Variablen entwickelt:

f(x, y) = f(x0, y0) + fx(x0, y0)(x− x0) + fy(x0, y0)(y − y0)+

+1

2!

[fxx(x0, y0)(x− x0)2 + 2fxy(x0, y0)(x− x0)(y − y0) + fyy(x0, y0)(y − y0)2)

]+ . . . .

Damit wird

y1 = y0 +h

2[f(x0, y0) + f(x1, y1)] = y0 +

h

2[f(x0, y0) + f(x0 + h, y0 + hf(x0, y0))] =

= y0 +h

2

[f(x0, y0) +

(f(x0, y0) + fx(x0, y0)h+ fy(x0, y0) · hf(x0, y0) +

h2

2fxx(x0, y0)+

+fxy(x0, y0) · h2f(x0, y0) +h2

2f2(x0, y0) + . . .

)]=

= y0 + h · f(x0, y0) +h2

2[fx(x0, y0) + fy(x0, y0) · f(x0, y0)] + . . . =

= y0 + h · y′(x0) +h2

2

[fx(x0, y0) + fy(x0, y0) · y′(x0)

]+ . . . = y0 + h · y′(x0) +

h2

2· dfdx

(x0, y0) + . . . =

= y0 + h · y′(x0) +h2

2· y′′(x0) + . . . .

Man erkennt, daß die Darstellung von y1 bis zum Term mit h2 mit der Taylor-Formel für y(x1) = y(x0 + h)übereinstimmt. Eine Abweichung tritt erst im nächsten Summanden auf und der ist proportional zu h3.Bis zu einem gewissen x∗ macht man proportional h−1 Schritte und das läßt einen Gesamtfehler der Ordnung h2

erwarten.Diese Aussage kann man mathematisch exakt formulieren und beweisen, darauf sei hier verzichtet. Die dafür nötigenVoraussetzungen werden in der Praxis selten überprüft.

Resultat: Beim Heunschen Verfahren bewirkt eine Halbierung der Schrittweite eine Verdoppelung des Aufwandes,aber eine (ungefähre) Viertelung des Fehlers.

Damit ist es wesentlich effektiver als das eingangs dargestellte Polygonzugverfahren. Allerdings benötigt es pro Schrittzwei Auswertungen von f(x, y) statt einer.9

Das Heunsche Verfahren ist immer noch relativ grob, aber bereits praktisch verwendbar, wenn man sich schnellund mäßig genau einen Eindruck von der Lösung eines Anfangswertproblems verschaffen will. Es ist sehr einfach zuprogrammieren.

3. Die klassische Runge-Kutta-Formel

Allgemein gilt: Je genauer ein Verfahren, desto öfter muß man pro Schritt f(x, y) berechnen. Das sorgt irgendwannfür einigen Programmieraufwand.

9Bisweilen wird die Meinung geäußert, bei Schrittweiten von h > 1 wäre die Methode von Euler vorzuziehen, da dann hweniger ist als h2.Man akzeptiere die Regel aber so, wie sie formuliert wird: Bei Halbierung ... das kann bedeuten, h = 1000 wird zu h = 500halbiert, usw.Die absolute Größe der Schrittweite ist unwesentlich, sie muß nur klein im Sinne des betrachteten Problems sein. 0.1 Stunde istmehr als 10 Millisekunden, obwohl der erste Wert kleiner als 1 ist und der zweite größer. Modelliert man die Kontinentaldrift,so kann die Zeitschrittweite vielleicht 1 000 Jahre betragen und das ist hier als kleiner Wert anzusehen. Im Hochfrequenzbereichist die Situation ganz anders.

120

Page 121: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Ein recht guter Kompromiß zwischen Genauigkeit und Preis wurde bei der klassischenRunge-Kutta-Formel erreicht,die sich deshalb seit rund 100 Jahren in der Praxis einiger Beliebtheit erfreut. Bei ihr werden in jedem Schritt vierHilfswerte k1 bis k4 berechnet. Aus diesen Hilfswerten ergibt sich letztlich der neue Wert yi+1:

k1 = h · f(xi, yi) , k2 = h · f(xi + h/2, yi + k1/2) ,

k3 = h · f(xi + h/2, yi + k2/2) , k4 = h · f(xi + h, yi + k3) ,

yi+1 = yi +k1 + 2k2 + 2k3 + k4

6.

Wenden wir diese Formel auf das betrachete Beispiel y′ = y, y(0) = 1 an; sei wieder h = 1:

k1 = 1 · 1 = 1 , k2 = 1 · (1 + 1/2) = 1.5 , k3 = 1 · (1 + 1.5/2) = 1.75 , k4 = 1 · (1 + 1.75) = 2.75 ,

y1 = 1 +1 + 2 · 1.5 + 2 · 1.75 + 2.75

6= 2.708 333 .

Das ist eine Abweichung von nur 0.366% !Als Tabelle resultiert

n h = 1/n yn yn − e n4 · (yn − n)

1 1 2.70833333333 -0.00994849513 -0.009952 1/2 2.71734619141 -0.00093563705 -0.014974 1/4 2.71820993920 -0.00007188926 -0.018408 1/8 2.71827684442 -0.00000498404 -0.02041

16 1/16 2.71828150034 -0.00000032812 -0.0215032 1/32 2.71828180741 -0.00000002105 -0.0220764 1/64 2.71828182713 -0.00000000133 -0.02236128 1/128 2.71828182838 -0.00000000008 -0.02251256 1/256 2.71828182845 -0.00000000001 -0.02259

Der Gesamtfehler ist jetzt proportional zu h4, er verringert sich also bei Halbierung etwa auf ein Sechzehntel.Die Überprüfung dieses Faktes erfordert eine Taylor-Zerlegung bis zur vierten Potenz einschließlich. Das sind 15Summanden mit insgesamt 14 partiellen Ableitungen. Diese Rechnung ist sehr schreibintensiv und erfordert dieDefinition spezieller abkürzender Regeln zu ihrer Bewältigung.Beim Vergleich der drei letzten Tabellen sieht man, daß nicht nur Ordnung der Fehlerabnahme besser wird. Darüberhinaus wird auch der Proportionalitätsfaktor betragsmäßig mit der Verbesserung der Methode immer kleiner. Dieletzte Fußnote muß man auch unter diesem Aspekt sehen.

Die allgemeine Gestalt der Runge-Kutta-Methoden:

Zu diesen gehören auch die Eulersche Polygonzugmethode und das Heunsche Verfahren. Diese sind Runge-Kutta-Methoden erster oder zweiter Ordnung, was sich auf die h-Potenz der Darstellung ihres Gesamtfehlers bezieht.

In der allgemeinen Form haben Runge-Kutta-Methoden die Gestalt

yi+1 = yi + h

s∑j=1

bjkj , kj = f

(xi + cjh, yi +

s∑l=1

ajlkl

), j = 1, 2, . . . , s, .

Sie sind damit beschrieben durch die Wahl von s, der Anzahl der Funktionswertberechnungen f(x, y) pro Schritt unddie Parameter ajl, bj und cj . Diese kann man in eine Tabelle anordnen:

c1 a11 a12 a13 . . . a1s

c2 a21 a22 a23 . . . a2s

......

......

. . ....

cs as1 as2 as3 . . . assb1 b2 b3 . . . bs

Euler: yi+1 = y1 + h · f(xi, yi) : s = 1, b1 = 1, c1 = 0, a11 = 0 .Heun: yi+1 = yi + 0.5h · f(x0, y0) + 0.5h · f(x0 + h, yi + hf(x0, y0))Hier ist offenbar s = 2, b1 = b2 = 0.5, k1 = h · f(x0, y0), k2 = h · f(x0 + h, yi + k1), also c1 = 0, c2 = 1, a11 = a12 =a22 = 0 und a21 = 1.Zur klassischen Runge-Kutta-Formel gehört die Tabelle

0 0 0 0 01/2 1/2 0 0 01/2 0 1/2 0 01 0 0 1 0

1/6 2/6 2/6 1/6

121

Page 122: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Wenn bei der Berechnung eines kj nie ein späterer Wert km mit m ≥ j (der in diesem Moment ja noch nicht bekanntist) benutzt wird, so nennt man das Verfahren explizit, ansonsten implizit.Die drei dargestellten Verfahren waren alle explizit.Ist der noch unbekannte Wert km nur der just zu berechnende, also j = m, so heißt die Methode semiimplizit.Bei impliziten oder semiimpliziten Varianten muß man also in jedem Schritt eine (i. a. nichtlineare) Gleichung oderein nichtlineares Gleichungssystem lösen.10 Bei expliziten Methoden sind nur ajl mit l < j von Null verschieden, alsonur Elemente unter der Hauptdiagonale der von den ajl gebildeten Matrix.Im Falle eines semiimpliziten Verfahrens dürfen Elemente auf der Hauptdiagonale ungleich Null sein, aber nichtdarüber.

Betrachten wir als Beispiel die möglichen expliziten Verfahren mit s = 2:

yi+1 = yi + b1k1 + b2k2 , k1 = hf(xi + c1h, yi) , k2 = hf(xi + c2h, yi + a21k1)

Schreiben wir die Taylor-Zerlegung für yi+1 auf, wobei gleich ausgenutzt wird, daß die Methode explizit sein soll.Es wird also bei der Berechnung von k1 nur yi verwendet und bei der Ermittlung von k2 nur yi und k1.Das Ergebnis wird nach h-Potenzen sortiert. Dabei begnügen wir uns mit h0, h1 und h2; in der Herleitung werdendie dritten Potenzen mit angegeben, um anzudeuten, wie eine genauere Rechnung ablaufen würde:

yi+1 = yi + b1k1 + b2k2 = yi + b1hf(xi + c1h, yi) + b2hf(xi + c2h, yi + a21hf(xi + c1h, yi)) =

= yi + b1h

[f(xi, yi) + c1h · fx(xi, yi) +

c21h2

2· fxx(xi, yi) + . . .

]+

+b2h

[f(xi, yi) + c2hfx(xi, yi) + a21k1 · fy(xi, yi) +

c22h2

2fxx(xi, yi) + c2h · a21k1 · fxy(xi, yi)+

+a221k

21

2fyy(xi, yi) + . . .

]=

= yi + b1h

[f(xi, yi) + c1h · fx(xi, yi) +

c21h2

2· fxx(xi, yi) + . . .

]+

+b2h

[f(xi, yi) + c2hfx(xi, yi) + a21h

(f(xi, yi) + c1h · fx(xi, yi) +

c21h2

2· fxx(xi, yi) + . . .

)· fy(xi, yi)+

+c22h

2

2fxx(xi, yi) + c2h · a21h

(f(xi, yi) + c1h · fx(xi, yi) +

c21h2

2· fxx(xi, yi) + . . .

)· fxy(xi, yi)+

+a221h

2

2fyy(xi, yi)

(f(xi, yi) + c1h · fx(xi, yi) +

c21h2

2· fxx(xi, yi) + . . .

)2

+ . . .

]=

= yi + h(b1 + b2)f(xi, yi) + h2 [b1c1 · fx(xi, yi) + b2c2 · fx(xi, yi) + b2a21 · f(xi, yi) · fy(xi, yi)] + . . . .

Diese Entwicklung soll übereinstimmen mit der Taylor-Formel für y(xi+1) = y(xi + h):

y(xi + h) = yi + h · y′i +h2

2y′′i + . . . .

Es ist y′i = f(xi, yi) und y′′i = fx(xi, yi) + fy(xi, yi) · yi.Der Vergleich der beiden Formeln ergibt sofort - entsprechend der zu fordernden Übereinstimmung der Werte (b1 +b2)f(xi, yi) und y′i für h1 die Bedingung b1 + b2 = 1.Bei h2 muß

b1c1 · fx(xi, yi) + b2c2 · fx(xi, yi) + b2a21 · f(xi, yi) · fy(xi, yi) =1

2y′′i =

1

2(fx(xi, yi) + fy(xi, yi) · y′i)

sein. Das erfordert b1c1 + b2c2 = 1/2 und b2a21 = 1/2. Man erhält letztlich drei Gleichungen

b1 + b2 = 1 , b1c1 + b2c2 =1

2, b2a21 =

1

2

für die fünf Parameter b1, b2, c1, c2 und a21. Da sind noch zwei Freiheitsgrade, über die man verfügen kann.Beispielsweise kann man nun noch den Term mit h3 betrachten und versuchen, ihn in einem gewissen Sinne möglichst

10Das ist wieder ein Beispiel für die Verschachtelung numerischer Verfahren.Angenommen, es ist ein nichtlineares Gleichungssystem, das mit dem Newton-Verfahren gelöst wird. Im Anbetracht der kleinenSchrittweite h werden die zu berechnenden Wert kj denen in den vorigen Schritten ähneln. Wenn man diese also gespeicherthat, so kann man ein Interpolationspolynom durch einige letzte Werte legen und einen Startvektor (k

(0)1 , k

(0)2 , . . . , k

(0)s ) durch

Extrapolation ermitteln. Mit Hilfe der Differenzenapproximation wird die Matrix der partiellen Ableitungen berechnet. Daslineare Gleichungssystem wird gelöst. Die Lösung wird bewertet und das Newton-Verfahren ggfs. z. B. mit dem Verfahren vomGoldenen Schnitt gedämpft.

122

Page 123: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

nahe an y′′′i /3! zu bringen (ganz identisch kann man ihn mit diesen zwei freien Parametern nicht machen). Hier seider Weg der Einfachheit gewählt: Es möge k1 in xi berechnet werden und k2 in xi+1, damit ist c1 = 0 und c1 = 1.Das System wird zu

b1 + b2 = 1 , b2 =1

2, b2a21 =

1

2

mit der Lösung b1 = b2 = 1/2 und a21 = 1. Das ist gerade das Heunsche Verfahren, s.o..In Anbetracht dieser Herleitung kommt vermutlich Sympathie für die plausible Überlegung auf, nach der dieHeunscheFormel konstruiert wurde. Allerdings zeigt dieser Weg, wie im Prinzip Runge-Kutta-Formeln mit beliebigen Wertenfür s generiert werden können. Man braucht aber sehr bald ausgeklügelte Computeralgebra.

7.4 SchrittweitensteuerungWenn ein Archäologe ein wichtiges Objekt in etwa sechs Meter Tiefe vermutet, so wird er vielleicht vier Meter Erdreichmit dem Bagger abtragen, dann anderthalb Meter mit der Schaufel, um anschließend mit dem Spachtel und zuletztmit dem Pinsel zu operieren.Es wäre Unfug, alles mit dem Bagger oder alles mit dem Pinsel zu machen.Auf unsere Verhältnisse angewandt: Es ist nicht zwingend, ein Anfangswertproblem mit konstanter Schrittweite h füralle Schritte zu berechnen.Überhaupt: Wie kann man die Schrittweite h vernünftig wählen? Ist sie zu groß, so wird das Resultat ungenau. Setztman sie dagegen zu klein an, so sind zu viele Rechenschritte zu machen und man verliert - ggfs. sehr wertvolle - Zeit.(Man denke an den schon mehrmals erwähnten Steuerrechner im Echtzeitbetrieb!) Und wählt man h viel zu klein,so wird die Rechnung so umfangreich, daß man irgenwann mehr Rundungsfehler als substantielle Information hat.Weiter muß beachtet werden, daß der schönste Hinweis zur Wahl der Schrittweite nichts nützt, wenn er sich nichtprogrammieren läßt.Es gibt ausgeklügelte Strategien zur Schrittweitenwahl. Hier sollen nur einige Basisideen skizziert werden.

Die folgende Variante ist primitiv, aber bereits recht wirksam:Angenommen, man will y(x) von x0 bis x∗ > x0 tabellieren und der Gesamtfehler soll (absolut) nicht größer als ε > 0werden.Gehen wir der Einfachheit halber vom Heunschen Verfahren aus. Dort ist der Fehler pro Schritt etwa proportionalzu h3.Wir wählen irgendein geeignet erscheinendes h > 0 und berechen einen Näherungswert y(1)

1 . Danach wird h halbiertund man wiederholt die letzte Rechnung mit zwei Schritten, wodurch man in denselben x- Wert gelangt. Man bekommty(2)2 und vergleicht diesen Wert mit y(1)

1 .Es gilt (mit dem ursprünglichen h) genähert y(1)

1 ≈ y(x0 + h) + Ah3 und y(2)2 ≈ y(x0 + h) + 2A(h/2)3, also A ≈

4(y(1)1 − y(2)

2 )/3h3.Damit kann man die Fehler der Rechnungen schätzen, sie betragen etwa 4(y

(1)1 − y(2)

2 )/3 oder (y(1)1 − y(2)

2 )/3.Will man den Gesamtfehler gleichmäßig auf die Länge von x0 bis x∗ verteilen, so darf man sich auf dem Abschnittder Länge h höchstens den Anteil ε · h/(x∗ − x0) leisten. Mit dieser Größe werden die obigen Werte verglichen.Sind sie (betragsmäßig) größer, so muß h verkleinert werden. Man kann es erneut halbieren und probieren usw. oderman rechnet

4

3|y(1)

1 − y(2)2 | · h

3 =ε · h

x∗ − x0=⇒ h =

√3ε

4(x∗ − x0) · |y(1)1 − y(2)

2 |.

Zur Sicherheit kann man den letzten Wert noch ein wenig verringern.Liegt dagegen der geschätzte Fehler deutlich unter der zulässigen Toleranz, so wird h vergrößert.

123

Page 124: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Beispiel: Im Moment t = 0 wird der Schalter S geschlos-sen. Der bis dahin leere Kondensator C = 50µF wirdüber den Widerstand R1 = 10kΩ mit der SpannungU0 = 200V geladen.

Bei einer Spannung von 160V zündet die Glimmlampe.Der Widerstand R2 dieses Zweiges, der bis dahin Unend-lich war, fällt auf 100Ω.

Bei 140V verlöscht die Glimmlampe wieder.

Gesucht ist die zeitabhängige Ladung Q(t) des Konden-sators bis zum Moment des zweiten Zündens der Glimm-lampe.

..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.........................................................................................................................................................................................................................................................................................................................................................

................

...........

................

................

................

................

........

.................................................................................................

................

................

................

................

................

................

.

....................................................................................................................................................................................................................................................................................................................................................................................

...........................................

........................................... .........................................................

.............................................................................................................................................................................................................................................................................................................r

R1

R2

CU0

S

Nach dem Schließen des Schalters gilt für die Ladung Q(t) das Anfangswertproblem

Q =U0

R1− Q

R1C, Q(0) = 0 .

Bei Q(t)/C = Uz = 160V zündet die Glimmlampe und die DGl modifiziert sich zu

Q =U0

R2− R1 +R2

R1R2 · CQ

Man beachte folgende Besonderheiten:

• Beide Dgl sehen aus wie lineare; in Wirklichkeit ist es aber nur eine DGl mit unstetigen Koeffizienten undrechter Seite.

• Welcher Fall eintritt hängt von der Kondensatorspannung und damit von Q(t) ab. Die Gleichung ist folglichnichtlinear, obwohl das nicht explizit zu erkennen ist.

• Ob die Glimmlampe bei z. B. 150V leitet oder sperrt hängt nicht in erster Linie von dieser Spannung ab,sondern von ihrer Vorgeschichte, also davon, von welcher Seite man sich diesen 150V nähert. - Das ähnelt derHysteresiskurve.

• Man könnte das erste Anfangswertproblem lösen, bis 160V erreicht sind und die dann vorliegende Ladung alsAnfangswert für ein zweites Problem mit der zweiten DGl nehmen. Problematisch ist, daß man diesen Zeitpunktnicht kennt.11 Er ergibt sich erst im Laufe der Rechnung.Es ist für den Menschen bequemer, sich nicht darum zu kümmern und die Arbeit - d. h. das Erkennen desUmschaltmoments und die dort notwendige Änderung der Schrittweite - an das Programm zur Lösung der DGlzu delegieren.

Im ersten Fall wird die Veränderung beschrieben durch eine Exponentialfunktion e−λt mit

λ =1

R1C=

1

104Ω · 50 · 10−6As · V −1=

1

0.5s.

Die primäre Ladung des Kondensators erfolgt also im Verlaufe einiger Sekunden. Die Differenz zum Endzustandhalbiert sich alle ln 2 · 0.5s = 0.35s.Die Entladung über die Glimmlampe zeichnet sich durch einen Zeitfaktor aus, der aus dem berechneten durch Mul-tiplikation mit (R1 +R2)/R1 = 101 hervorgeht. Sie ist also wesentlich schneller.Damit ist schon klar, daß man nicht jeden der beiden Prozeßteile mit derselben Zeitschrittweite τ rechnen kann - ein’kleiner Zeitabschnitt’ ist in jedem Fall etwas ganz anderes.Der Spannungsverlauf am Kondensator ist der im folgenden Bild dargestellte. Dabei ist zu beachten, daß der Abfallbei den Sägezähnen nicht wirklich senkrecht verläuft. Das ist nur dem Maßstab geschuldet.

11Es wird hier natürlich konsequent ignoriert, daß sich diese DGl leicht geschlossen lösen lassen.

124

Page 125: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.00

20

40

60

80

100

120

140

160

UL

UZ

........................................................................................................................................................................................................................................................................................................................................................................................................................................

.................................................................

........................................................................

................................................................................

...........................................................................................

............................................................................................................

.....................................................................................................................................................................................................

...................................................................................................................

............................................................................................................................................................................. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .......

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .......

Das Runge-Kutta-Verfahren arbeitet nur mit lokaler Information zwischen xi und xi+1. In einem Programm kannman noch ggfs. gespeicherte frühere Werte für die Betrachtung nutzen, zukünftige sind aber unbekannt.

Das Lösungsverfahren für das Anfangswertproblem verhält sich wie ein Kraftfahrer (dem man allerdings nicht nach-eifern sollte), der im dichten Nebel unterwegs ist und nur den Mittelstreifen unmittelbar vor sich sieht. Damit esnicht so dramatisch wird: Nehmen wir an, er macht die Fahrt am Fahrtrainer, d. h. vor einem Bildschirm.

Das Rechenverfahren:

Es startet mit einer moderaten Schrittweite.

Die Kurve der Lösung ist glatt und nur wenig gekrümmt.Der Fehler ist klein.

Es kann also die Schrittweite vergrößern und tut diesauch.

Plötzlich ändert die Lösung stark ihr Verhalten.

Der Fehler, der mit der bisherigen Schrittweite resultiert,wird unvertretbar groß.

Das Programm kehrt zum letzten korrekten Wert zurück,halbiert die Schrittweite und startet erneut in den Pro-blembereich.

Nach einigen Schritten - zu großer Fehler.

Es wird wiederum zurückgegangen - vielleicht nicht so-weit wie beim erstenmal - und nach erneuter Halbierungder Schrittweite der nachste Versuch gestartet.

Diesmal klappt’s. Nach einigen Schritten ’beruhigt’ sichdie Lösung und wird wieder glatt.

Die Schrittweite kann wieder vergrößert werden...

Der Kraftfahrer:

Er startet mit einer moderaten Geschwindigkeit.

Die Straße ist glatt und nur wenig gekrümmt. Es gibtkeine Probleme.

Er kann also die Geschwindigkeit vergrößern und tut diesauch.

Plötzlich macht die Straße eine Biegung.

Die von den Straßenrändern vorgegebene Toleranz wirddeutlich überschritten.

Der Fahrer spult den Film bis vor die Kurve zurück undversucht, sie mit halbierter Geschwindigkeit zu durchfah-ren.

Etwas später, aber wieder im Straßengraben.

Es wird wiederum zurückgegangen - vielleicht nicht so-weit wie beim erstenmal - und nach erneuter Halbierungder Geschwindigkeit der nachste Versuch gestartet.

Diesmal klappt’s. Nach der Kurve wird die Straße wiederhalbwegs gerade und scheint es auch bleiben zu wollen.

Er kann wieder Gas geben...

Anfangswertprobleme mit einer solchen Spezifik: ’Langsame Veränderung und dann plötzliches Kippen’ - sind in Na-turwissenschaft und Technik keine Seltenheit. Mechanische Beispiele kann sich jeder selbst vorstellen: In der Chemiegibt es Reaktionen, bei denen ein entstehender Stoff ab einer bestimmten Konzentration seine eigene Bildung ka-talytisch beschleunigt und daß bei langsamer Vermehrung der Menge eines Uranisotops im Behälter auf einmal eindramatischer Prozeß einsetzen kann ist auch bekannt.

Eine zweite Idee zur lokalen Fehleranalyse und Schrittweitensteuerung besteht in der Verwendung sogenannter ein-gebetteter Runge-Kutta-Verfahren.Erinnern wir uns an die Methode von Heun: Dort wurde ein neuer Funktionswert am Ende des laufenden Schrittes,d. h. in xi+1, mit Hilfe der Euler-Formel geschätzt: yi+1 = yi + h · f(xi, yi).Das ist ein gröberer12 Wert als das letztlich berechnete yi+1, aber beide müssen, da sie Näherungswerte zum selbenWert y(xi+1) sind, nahe beieinander liegen.

12Das heißt: Dieser Wert ist in der Regel ungenauer als der mit dem exakteren Verfahren von Heun berechnete. Im konkretenFall muß er nicht schlechter sein, er kann sogar besser ausfallen. - Wenn die Kurve der Funktion y(x) eine Biegung machtund die Tangente durch (x0, y0) im Punkt (x∗, y(x∗)) schneidet, so würde ein Euler-Schritt mit der möglicherweise großenSchrittweite h = x∗ − x0 nichtsdestoweniger den exakten Wert ergeben! Aber das ist Zufall.

125

Page 126: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Durch ihren Vergleich kann man nun eine Aussage über die Güte der beiden Näherungswerte gewinnen.Der Begriff ’eingebettet’ bezieht sich auf den Umstand, daß der eine Wert bei der Rechnung quasi nebenbei anfälltund nicht mühsam berechnet werden muß. Insbesondere sind keine zusätzliche Auswertungen der Funktion f(x, y)notwendig.

Die folgende explizite Runge-Kutta-Formel ist ein Verfahren mit dem Gesamtfehler ∼ h2:

0 0 0 01/2 1/2 0 01/2 0 1/2 0

0 0 1

=⇒

k1 = hf(xi, yi), k2 = hf(xi + h/2, yi + k1/2), k3 = hf(xi + h/2, yi + k2/2),yi+1 = yi + k3

Angewandt auf das Testproblem y′ = y, y(0) = 1 ergibt sich:

n h = 1/n yn yn − e n2 · (yn − n)

1 1 2.750000 0.031718 0.03171 1/2 2.743164 0.024882 0.09954 1/4 2.727870 0.009589 0.15348 1/8 2.721207 0.002925 0.1872

16 1/16 2.719087 0.000805 0.206132 1/32 2.718493 0.000211 0.216164 1/64 2.718336 0.000054 0.2213128 1/128 2.718295 0.000014 0.2239

Diese Methode ist aber eingebettet in die klassische Runge-Kutta-Formel vierter Ordnung:

0 0 0 0 01/2 1/2 0 0 01/2 0 1/2 0 01 0 0 1 0

1/6 2/6 2/6 1/6

=⇒

k1 = hf(xi, yi), k2 = hf(xi + h/2, yi + k1/2),k3 = hf(xi + h/2, yi + k2/2), k4 = hf(xi + h, yi + k3),yi+1 = yi + (k1 + 2k2 + 2k3 + k4)/6

,

d. h. wenn man dieses Verfahren rechnet, so kann man sich mühelos einen zweiten Näherungswert zu y(xi+1) in derForm yi+1 = yi + k3 beschaffen - dazu bedarf es nur dieser einen Addition! Dieser ist mit yi+1 zu vergleichen.Weitere Einzelheiten entnehme man der Literatur.Gute professionelle Software enthält in der Regel Programme mit automatischer Schrittweitensteuerung. Vom Nutzerwird nur eine Aussage über den zulässigen Gesamtfehler erwartet.

Eine praktische Bemerkung noch: Angenommen, man will die Lösung y(x) für 0 ≤ x ≤ 1 mit der Schrittweite0.01 als Tabelle ausgedruckt bekommen, so muß der Modul zur Schrittweitenbestimmung außer auf den Fehler auchdarauf achten, daß er im nächsten Tabellenwert ’aufsetzt’. Er kann also, wenn er in x = 0.38834 war, nicht mit derSchrittweite h = 0.00217 zu 0.39051 weiterrechnen, sondern muß h = 0.00166 wählen, um in 0.39000 zu landen.

7.5 Spezielle Verfahren für spezielle ProblemeDer Plural ist etwas irreführend. Es wird nur ein spezielles numerisches Problem betrachtet. Das reicht aber hoffentlichhin, um den Umstand zu motivieren, daß universelle Verfahren, wie sie eingangs geschildert wurden, nicht der Weisheitletzter Schluß sein können.

Betrachten wir als Beispiel die Entladung eines Kondensators C = 50µF über einen Widerstand R = 10kΩ13 beiAnwesenheit einer kleinen Induktivität L = 0.1H.Die Differentialgleichung für den Strom ist

Ld2i

dt2+R

di

dt+

1

Ci = 0 .

Im Moment t = 0 wird ein Schalter geschlossen. Der Strom war dabei i(0) = 0. Er beginnt nun aus dem mit 200Vgeladenen Kondensator zu fließen. Nahe t = 0 liegen also praktisch 200V an, von denen aber die Sebstinduktions-spannung Ldi

dtabzuziehen ist. Würde die Kondensatorspannung von 200V bestehen bleiben, so würde letztlich ein

Strom I∗ = 200V/10kΩ = 20mA fließen. Durch die Induktivität stellt er sich gemäß i∗(t) = 20mA · [1− exp(−Rt/L)]ein.Für den sich entladenden Kondensator sind die Verhältnisse im Anfangsmoment dieselben, damit ist di/dt = di∗/dt =20mA ·R/L = 20mA · 104Ω/0.1H = 2 000A/s.

13Aus Kostengründen wurden die Teile des letzten Beispiels recycelt.

126

Page 127: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Machen wir aus der DGl 2. Ordnung ein System 1. Ordnung,14 sei di/dt = p, so wird wegen

d2i

dt2= −R

L· didt− i

LC

alsodidt

= p , i(0) = 0

dpdt

= −PLp− i

LC= −105 (p+ 2i) , p(0) = 2 · 106

Die Wahl des Anfangswertes von p zeigt an, daß i in mA gemessen werden soll. Der Wert müßte unter 20mA bleiben.Die Zeit wird in Sekunden gemessen.

Nehmen wir eine Hundertstelsekunde als Zeitschrittweite τ und machen wir einen Schritt mit dem Euler-Verfahren:

i1 = i0 + τ · p0 = 0 + 0.01 · 2 · 106 = 2 · 104 = 20Ampere !!!

p1 = p0 − 105(p0 + 2i0) = 2 · 106 − 2 · 1011 ≈ −2 · 1011

Das Ergebnis ist totaler Unfug: Die Stromstärke ist - für die gegebenen Verhältnisse - riesig und nimmt rasant ab.(Da sie aber viel zu gewaltig ist bedeutet letzteres ’einen Schritt in die richtige Richtung’.)Offenbar war wohl die Schrittweite zu groß, verringern wir sie auf ein Zehntel der benutzten, und dann nochmals, .... Jedenfalls erhält man für die ersten drei Schritte die folgende Tabelle:

τ i1 i2 i3 p1 p2 p3

0.001 2000.000 -196000.031 19405604.000 -198000016 19601602560 -19405195182080.000 1 200.000 -1600.000 14599.603 -18000000 161996016 -14579321600.000 01 20.000 20.000 20.000 -0 -40 -400.000 001 2.000 3.800 5.420 1800000 1620000 1457999

Bei τ = 10−6s werden die Werte vernünftig15 - die Stromstärke wächst und wird dabei flacher. Ihre Ableitung nimmtdementsprechend ab, bleibt aber positiv. Damit könnte man rechnen.Das wird aber aufwendig - der interessante Teil des Prozesses geht über einige Sekunden, und pro Sekunde muß manbei τ = 10−6 gerade eine Million Schritte machen.Vielleicht sind es später weniger? Der Prozeß klingt ab und wird immer glatter, da kann man doch die Schrittweitehochfahren?Leider nicht, die Ursache für den Fehler liegt hier in einem anderen Effekt.Nun war das Euler-Verfahren als recht grob vorgestellt worden, was ergibt die Methode von Heun? - Die betreffendeTabelle wird (zwei Werte aus Platzgründen weggelassen)

τ i1 i2 i3 p1 p2 p3

0.001 -98000.016 -480376544 -2354230591488 9801801728 48036696817664 ...0.0001 -800.000 -33598.402 -1378273.875 81998000 3361772288 ...0.00001 10.000 15.000 17.500 999980 499970 2499650.000001 1.900 3.619 5.176 1810000 1638049 1482434

Das Ergebnis ist dasselbe und auch die klassische Runge-Kutta-Formel würde erst bei τ < 10−5s einen vernünftigenVerlauf ergeben.

Um die Ursache zu verstehen betrachten wir einmal die allgemeine Lösung der DGl y′′ + 105y′ + 2 · 105y = 0. Dascharakteristische Polynom hat zwei negative reelle Nullstellen, die um Größenordnungen auseinanderliegen: λ1 liegtbei -2 und λ2 bei −105. Die Zeit in Sekunden gemessen ist damit allgemein

i(t) = C1e−2t + C2e

−105t .

Der erste Summand beschreibt das Zusammenspiel von Kondensator und Widerstand und damit einen relativ lang-samen Prozeß, der dafür sorgt, daß man in der Größenordnung von Sekunden denken muß. Der zweite bringt dierecht unbedeutende Induktion ins Spiel, die hier nur außerordentlich kurzlebig und bereits nach einer ZehntausendstelSekunde praktisch abgeklungen ist (e−10 = 0.0000454).’Thou are the man!’ - wie in der Erzählung von E. A. Poe greift diese Leiche aus ihrem Sarg heraus in das Geschickder Lebenden ein, allerdings nicht nur einmal, sondern bei der DGl dauernd.Am besten läßt sich die Sache beim Euler-Verfahren begreifen: Die Werte im i-ten Schritt sind die Anfangswertefür den nächsten. Mit ihnen beginnt die Überlagerung von einem sehr schnellen Abklingen (gestrichelt) und einem

14Wie schon eingangs gesagt sind alle diese Lösungsverfahren für einzelne DGl und für Systeme von DGl identisch!15Eigentlich werden sie bereits mehr oder weniger vernünftig, sobald τ < 10−5 wird. Bei der gewählten Unterteilung der

Schrittweiten ist das aber erst bei 10−6 der Fall.

127

Page 128: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

langsamen Prozeß (punktiert), die Summe ist die ausgezogene Kurve:....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

......................................................................................

τ∗

c.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

........................................................................................................ ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ..........

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Beim Euler-Verfahren geht man die Tangente an der Kurve in t = ti entlang und diese orientiert sich an derschnellen Komponente. Deswegen muß man die Schrittweite kleiner als τ∗ wählen, um wenigstens den unsinnigenVorzeichenwechsel zu vermeiden. Mit solch kleinen Schrittweiten kommt man aber in der langsamen Komponentenicht voran.16

DGl mit abklingenden Lösungen, deren Zeitkonstanten sich um einige Größenordnungen unterscheiden, nennt mansteife DGl.Zu ihnen gelangt man immer dann, wenn wesentlich verschieden schnelle Abklingprozesse miteinander kombiniertsind, z. B. bei mehrstufigen chemischen Reaktionen A −→ B −→ C, bei denen eine Reaktion viel schneller ist als dieandere, bei Problemen der Thermodynamik u. v. a. m..Diesen DGl ist im Rahmen der Numerik eine umfangreiche Literatur gewidmet.

Was kann man nun praktisch machen?Kehren wir zurück zum Euler-Verfahren: Wie wäre es, wenn wir die Tangente nicht in dem steilen Anfangsstückanlegen, sondern im flachen Endteil?Tatsächlich, formal muß man die Tangente nicht unbedingt links anlegen. Das ist natürlich, denn wenn man sie rechtsanlegt, so geschieht das in dem Punkt (xi+1, yi+1), dessen y-Koordinate man ja gerade sucht.Die resultierende Formel wäre dann yi+1 = yi + h · f(xi+1, yi+1) und solche Formel nennt man bekanntlich implizit.Eine eingehendere theoretische Untersuchung ergibt, daß bei steifen DGl alle expliziten Verfahren (darunter auchsolche, die nicht auf den Ansatz der Runge-Kutta-Formeln basieren) Probleme haben und nur mit undiskutabelkleinen Schrittweiten funktionieren.Probieren wir die genannte Formel yi+1 = yi + h · f(xi+1, yi+1), man nennt sie das Eulersche Polygonzugverfah-ren (rückwärts): Es wird hier (den diskretisierten Strom mit einem großen Buchstaben bezeichnet, um ihn vomDiskretisationsindex zu unterscheiden):

didt

= p

dpdt

= −105(p+ 2i)

=⇒

Ii+1 = Ii + τpi+1

pi+1 = pi − 105τ · (pi+1 + 2Ii+1)

Das ist ein - im vorliegenden Fall glücklicherweise lineares!17 - Gleichungssystem für Ii+1 und pi+1. Man erhält

Ii+1 =pi − 2 · 105τIi

2 · 105τ2 + 105τ + 1, pi+1 =

(1 + 105τ)Ii + τpi

2 · 105τ2 + 105τ + 1.

Mit der vorhin völlig undiskutablen Schrittweite τ = 0.01s ergeben sich die folgenden ersten Werte:

16In diesem Bild sind e−t und e−20t miteinander kombiniert, damit man noch etwas erkennt. Im betrachteten elektrischenBeispiel wäre diese Tangente praktisch senkrecht, und damit ergibt sich ein außerordentlich kleines τ∗.

17Offenbar ergeben (implizite) Runge-Kutta-Verfahren, auf lineare DGl angewandt, immer lineare Gleichungssysteme. -Das Schema, das ein Runge-Kutta-Verfahren definiert, enthält bereits eine Matrix ajl; diese kann mit der Matrix der DGlverknüpft werden ... jedenfalls wird das alles eine dankbare Anwendung der Matrizenrechnung.

128

Page 129: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

i 1 2 3 4

Ii 19.589 19.224 18.847 18.847

pi 1958.864 -36.453 -37.693 -36.956

Diese Werte sehen vernünftig aus. Die nachstehende Grafik zeigt den Verlauf der Näherungsfunktion zu i(t) (als Poly-gonzug) bis t = 0.03s für τ = 0.01 (obige Tabelle, punktiert), τ = 0.001 (gestrichelt) und τ = 0.0001 (durchgezogen):

0.00 0.01 0.02 0.030

4

8

12

16

20

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

.................

................

................

...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

.............

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

...................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Wie man sieht wird die Anfangsphase - der Aufbau des Stromes bis zu seinem Maximalwert knapp unter 20mA -in keinem Fall korrekt dargestellt. Sie dauert weniger als 0.0001s und kann damit auch unmöglich wiedergegebenwerden, aber der Verlauf ist doch jedesmal qualitativ und bald auch quantitativ völlig richtig.

Nachstehend ist dieser Anfangsverlauf dargestellt, der etwa 0.00005s dauert (Zeitachse in ms):

0.00 0.05 0.10 0.15 0.20 0.250

4

8

12

16

20

.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Implizite Verfahren haben also auch eine Daseinsberechtigung. Überhaupt erlauben sie in vielen Fällen wesentlichgrößere Schrittweiten als explizite und werden deshalb bei DGl, für die keine komplizierten Gleichungen oder Glei-chungssysteme resultieren, gern genommen.Die gute Eigenschaft, mit steifen DGl fertig zu werden, haben bereits viele semiimplizite Verfahren (wie z. B.das Eulersche Polygonzugverfahren, rückwärts). Da sie auch relativ einfache Gleichungssysteme liefern werden sie

129

Page 130: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

bevorzugt benutzt.

7.6 Aufgaben1. Berechnen Sie zu dem Anfangswertproblem y′ = y, y(0) = 1 den Wert yn nach dem Heunschen Verfahren, der

sich mit h = 1/n ergibt, und seine genäherte Abweichung vom exakten Wert e02.718 . . ., die die Form A/n2

hat. Ermitteln Sie diesen Wert A!

2. Das DGl-System y′1 = −y1, y′2 = −2y2, y1(0) = 1, y2(0) = 100 wird mit einer Schranke ε > 0 für denGesamtfehler durch ein Näherungsverfahren gelöst.a) Kann man hier diese Schranke für alle x > 0 verwenden?b) Es interessiert eigentlich dasjenige x∗, für das y1(x∗) = y2(x∗) ist. Was ist über seine Genauigkeit zu sagen?

130

Page 131: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 8

Beispiele

8.1 Beispiel 1: Numerische Auswertung einer Fourier-ReiheMan schreibe ein effektives Programm, das für 0 ≤ x ≤ π die Fourier-Reihe

∞∑k=0

cos(2k + 1)x

k2 + 1

auswertet.

Wenn man schnell fertig werden will und beschließt, eine Genauigkeitsschranke von 10−6 zu akzeptieren, so könnteman es mit dem folgenden Programm versuchen, das nach der Rechnung den Wert der Reihe in s enthalten soll:

s:=0; k:=0;1: k:=k+1; s:=s+cos((2*k+1)*x)/(k*k+1);

if abs(cos((2*k+1)*x)/(k*k+1)) > 10−6 then goto 1;

Aber: Dieses Programm ist erstens falsch und obendrein schlecht.Der Fehler ist nicht ganz trivial, denn bei Testrechnungen wird dieses Programm zumeist recht gute Werte liefern (z.B. ergibt es bei x = 0 den Wert 0.719 829 76... statt des richtigen Wertes 0.720 329 75..., d. h. nur 0.000 499 99...oder 0.07% zuwenig). Er würde (evtl.) auffallen, wenn man sich die Funktion mit diesem Programm als eine Folgevon Punkten zeichnen ließe - einige Punkte tanzen deutlich aus der Reihe.Ein solcher Wert, wo diese Programmvariante versagen würde, wäre z. B. π/6. Dann ist nämlich

∞∑k=0

cos(2k + 1)π

6k2 + 1

= cosπ

6+

cosπ

22

+cos

65

+ . . . =

√3

2+ 0−

√3

10+ . . . .

Der zweite Summand ist exakt Null und der würde im vorstehenden Programm die Summation beenden, obwohl mannoch keineswegs nahe am Resultat wäre. Die Abbruchbedingung ist also fatal falsch.Bei der numerischen Summation von Reihen ist es i. a. nicht zulässig, die Kleinheit eines Summanden als Abbruch-bedingung zu verwenden. 1

Das Ende der Summation muß also durch eine korrekte Restgliedbetrachtung festgelegt werden anstelle dieser intui-

1Das gilt sogar dann, wenn die Summanden monoton abnehmen, denn selbst dann ist deren Kleinheit keine Garantie füreinen kleinen absoluten Fehler. Betrachten wir als Beispiel die geometrische Reihe bei 0 < q < 1. Ihre n-te Partialsumme weichtvon ihrem Wert 1/(1− q) um

S − Sn =

(∞∑k=0

qk

)−

(n∑k=0

qk

)=

∞∑k=n+1

qk = qn+1

∞∑k=0

qk =qn+1

1− q

ab. Bricht man die Summation ab, wenn der Summand qn < ε wird, so beträgt der Fehler also etwas weniger alsq

1− qε ,

und bei q nahe 1 wird dieser Wert groß, selbst bei kleinem ε. Sei ε fest und q = 1 − ε/a, dann ist der Fehler also etwa a - einbeliebiger Wert, der sehr groß sein kann.

131

Page 132: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

tiven Schranke. - Die nachfolgende Abschätzung ist sicher, aber etwas pessimistisch:

|Rn| =

∣∣∣∣∣∞∑

k=n+1

cos(2k + 1)x

k2 + 1

∣∣∣∣∣ ≤∞∑

k=n+1

| cos(2k + 1)x|k2 + 1

≤∞∑

k=n+1

1

k2 + 1≤

∞∑k=n+1

∫ k

k−1

dx

x2 + 1

Dabei wurde ausgenutzt, daß für k − 1 ≤ x ≤ k die Ungleichung x2 + 1 ≤ k2 + 1 gilt, also 1/(x2 + 1) ≥ 1/(k2 + 1),und damit

1

k2 + 1=

∫ k

k−1

dx

k2 + 1<

∫ k

k−1

dx

x2 + 1,

und nun werden die aneinander anschließenden Integrale zusammengefaßt:

|Rn| ≤∫ ∞n

dx

x2 + 1=

π

2− arctann = arctan

1

n<

1

n.

Wünscht man sich für den absoluten Fehler der Funktionsberechnung eine Schranke von z. B. 10−6, so ist man aufder sicheren Seite, wenn man n > 106 wählt, denn nach der vorstehenden Abschätzung ist dann |Rn| < 1/106 = 10−6.Das bedeutet die Verwendung von mindestens einer Million Summanden - ein beträchtlicher Aufwand, der vertretbarist, wenn man nur einige wenige Funktionswerte berechnen will, aber für einen Routineeinsatz des Programms nichtin Frage kommt. Man muß also durch mathematische Aufbereitung des Problems eine effektivere Berechnungsvor-schrift gewinnen. Im vorliegenden Fall kann man die Reihe in eine geschlossen summierbare Reihe und eine schnellerkonvergente Restreihe zerlegen, wobei nur die zweite numerisch berechnet werden muß. Grundlage ist der Gedanke,daß ein Weglassen der ’1’ im Nenner die Summanden bei großen Werten von k nur unwesentlich ändert, die Reiheaber in eine bekannte Funktion verwandelt.Einer Formelsammlung entnimmt man die für 0 ≤ x ≤ π gültige Darstellung2

x =π

2− 4

π

(cosx+

cos 3x

32+

cos 5x

52+

cos 7x

72+ . . .

)=

π

2− π

4

∞∑k=0

cos(2k + 1)x

(2k + 1)2,

also∞∑k=0

cos(2k + 1)x

(2k + 1)2=

π

4

2− x),

und damit wird∞∑k=0

cos(2k + 1)x

k2 + 1= 4

∞∑k=0

cos(2k + 1)x

(2k + 1)2+

∞∑k=0

(cos(2k + 1)x

k2 + 1− 4 cos(2k + 1)x

(2k + 1)2

)=

= π(π

2− x)

+

∞∑k=0

(2k + 1)2 − 4(k2 + 1)

(2k + 1)2(k2 + 1)cos(2k + 1)x = 1.934 802− 3.141 159x+

∞∑k=1

(4k − 3) cos(2k + 1)x

(2k + 1)2(k2 + 1).

Bricht man den letzten Term bei k = n ab, so ist der Fehler∣∣∣∣∣∞∑

k=n+1

(4k − 3) cos(2k + 1)x

(2k + 1)2(k2 + 1)

∣∣∣∣∣ ≤∞∑

k=n+1

4k − 3

(2k + 1)2(k2 + 1)<

∞∑k=n+1

1

k3<

∫ ∞n

dx

x3=

1

2n2.

Das ist viel günstiger. Mit derselben Fehlerschranke 10−6 erhält man nun n ≥√

0.5 · 106 = 707, also weniger als einTausendstel der Anzahl von Summanden, die man vorher hätte auswerten müssen. - Die zusätzlich anfallende lineareFunktion enthält einen wesentlichen Teil der ursprünglichen Reihe, sie stellt keinerlei Problem dar.Mit subtileren theoretischen Überlegungen kann man die Anzahl der benötigten Summanden weiter verringern. Daraufsei hier verzichtet. Statt dessen soll noch ein wenig über eine effektive Programmierung nachgedacht werden.Die Berechnung der Kosinuswerte bedeutet einen gewissen Aufwand, den man mit zehn bis fünfzig Rechenoperationenabschätzen kann. Man kann aber bedenken, daß diese Funktion in gleichabständigen Argumenten ausgewertet wird,die jeweils um 2x zunehmen. Aus dem Additionstheorem für die Kosinusfunktion folgt dann

cos(2k + 3)x = cos[(2k + 1)x+ 2x] = cos(2k + 1)x · cos 2x− sin(2k + 1)x · sin 2x ,

cos(2k − 1)x = cos[(2k + 1)x− 2x] = cos(2k + 1)x · cos 2x+ sin(2k + 1)x · sin 2x ,

und Addition beider Gleichungen ergibt

cos(2k + 3)x+ cos(2k − 1)x = 2 cos(2k + 1)x · cos 2x .

2Der rechts stehende Ausdruck ist auf [−π, π] die Funktion |x| - das muß ggfs. beachtet werden!

132

Page 133: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Mit dem in k konstanten Faktor A = 2 cos 2x resultiert die einfache Rekursion zur Berechnung des nächsten Wertescos(2k + 3)x:

cos(2k + 3)x = A cos(2k + 1)x− cos(2k − 1)x .

Damit reduziert sich der Aufwand auf eine einzige Multiplikation und eine Subtraktion.In manchen Computern bzw. Programmsystemen werden Additionen wesentlich schneller ausgeführt als Multiplika-tionen. Das kann man bei der Berechnung des Nenners bedenken. Es ist mit ak = (2k + 1)2(k2 + 1)

bk = ak+1 − ak = (2k + 3)2(k2 + 2k + 2)− (k + 1)2(k2 + 1) = 16k3 + 36k2 + 38k + 17

Weiter wirdck = bk+1 − bk = 48k2 + 120k + 90

unddk = ck+1 − ck = 96k + 168 sowie dk+1 = dk + 96 .

Damit kann man die Nenner ak durch wenige Additionen rekursiv berechnen:

dk+1 = dk + 96 , ck+1 = ck + dk , bk+1 = bk + ck , ak+1 = ak + bk .

Praktisch ist diese aufwendige Rechnung nicht nötig. Man berechnet ak für einige Werte von k und schreibt sieuntereinander. Danach zieht man vom jeweils unteren von zwei Werten den darüberstehenden ab. Das Resultat, diesogenannte 1. Differenz ∆(1), wird zur Zuordnung zwischen diese Zeilen geschrieben. Bei diesen wird wiederum derjeweils obere Wert eines Paares vom unteren subtrahiert. Diese 2. Differenz ∆(2) schreibt man wiederum auf Lückeund so geht es weiter:

k ak ∆(1) ∆(2) ∆(3) ∆(4) ∆(5)

0 117

1 18107

90168

2 125365

258264

960

3 490887

522360

960

4 13771769

882456

960

5 31463107

1338552

96

6 62534997

1890

7 11250

Die vierten Differenzen erweisen sich als konstant und die fünften sind demzufolge gleich Null. Will man diese Tabellenun fortsetzen, so macht man dies zweckmäßigerweise von rechts nach links. In der Spalte mit ∆(4) wird eine 96eingetragen, dann ist ∆(3) = 552 + 96 = 648, weiter ∆(2) = 1890 + 648 = 2538, ∆(1) = 4997 + 2538 = 7535 und damita8 = 11250 + 7535 = 18785 - ein nur mit Additionen berechneter Wert.

Als letzte Bemerkung zum eingangs angegebenen Programm wäre noch zu sagen, daß es ein überflüssiger Aufwandist, den Summanden zweimal zu berechnen - einmal zum Summieren und einmal für den (allerdings falschen) Ge-nauigkeitstest. Wenn schon, so sollte man ihn nur einmal ermitteln und in einer Variablen speichern. Das Programmwird es einem mit Halbierung der Rechenzeit danken.

Nach diesen Vorarbeiten kann man das folgende Programm formulieren, das zwar deutlich länger ist, aber unver-gleichlich effektiver und obendrein richtig:

A:=2*cos(2*x); c0=cos(x); c1=cos(3*x); c2:=A*c1-c0;

w:=490; d1:=365; d2:=258; d3:=168; z:=9;

s:=c0/18+c1/25+z*c2/w;

for k:=4 to 707 dobegin c0:=c1; c1:=c2; c2:=A*c1-c0;

d3:=d3+96; d2:=d2+d3; d1:=d1+d2; w:=w+d1; z=z+4;

s:=s+k*c2/w;

end; s:=1.934802-3.141159*x+s;

Sollte diese Fourier-Reihe von großer Bedeutung sein, so kann an dieses Programm durch weiteres Nachdenken

133

Page 134: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

noch beträchtlich verbessern; dazu gibt es an anderer Stelle einige weitere Bemerkungen. Hier mag es reichen. Esging darum zu demonstrieren, welche mathematische Aufbereitungen möglich und ggfs. notwendig sind.

Daneben sind folgende Methoden von eigenständigen praktischen Wert dargestellt worden:

• Restgliedabschätzung für einen gewissen Typ von Reihen, speziell Fourier-Reihen,

• Konvergenzbeschleunigung bei Fourier-Reihen durch Heraustrennen bekannter Reihen mit Verbleib einerschneller konvergenten Restreihe,

• effektive rekursive Berechnung von cosxk für gleichabständige Werte xk (geht analog für sinxk),

• effektive rekursive Berechnung von Polynomwerten für gleichabständige Werte xk.

Zum letzten Punkt: Pn(x) bezeichne ein Polynom n-ten Grades. Man berechne also eine Wertetabelle mit einergenügenden Anzahl von xk und bilde die ersten, zweiten, ... , n-ten Differenzen, letztere sind konstant. Nun kann dieTabelle durch einfache Additionen in der beschriebenen Weise fortgesetzt werden.

8.2 Beispiel 2: Ladungsdichte auf einem RingEin Ring mit kreisförmigen Querschnitt vom Radius Rq um einen Kreis des Radius Rc > Rq aus leitfähigen Materialwird mit der Ladung Q versehen. Die Ladungsträger (z. B. Elektronen) verteilen sich auf seiner Oberfläche. Manberechne die Dichte ihrer Verteilung.

................

...........................................................................................

.......................................................

...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................................................................z

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

................

....

|Rc Rc +RqRc −Rq

r, x....................................................................................................................

..........................................................................................................

...............................................................................................................................................

............................................................................................................................................................................................................................................................................... y

ψ ϕ

Rq

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

.............

....................................................

................................................................................................................................................................................................... ............. ............. ..............................................................................

Die Berechnung soll nur ein grobes Bild für einen ersten Eindruck ergeben. Es wird also eine ganz primitive Model-lierung angewandt und das resultierende Programm soll einfach sein, ohne daß eine effektive Arbeit in dieser Phaseangestrebt wird.Diese primitive Modellierung benutzt unmittelbar die physikalische Vorstellung.Die Dichte der Verteilung hängt offenbar nicht davon ab, ob es sich um positive oder negative Ladungen handelt,sprechen wir also einfach von ’Elektronen’, ohne diese im Wortsinn zu meinen.Die Ladungen sitzen nur auf der Oberfläche, da das Material leitfähig sein soll. Die Dichte ist also eine Flächendichte.Das Problem ist rotationssymmetrisch bezüglich der z-Achse. Es genügt folglich, einen einzigen Querschnitt zu be-trachten. Die gesuchte Funktion ist damit auf den Umfang zu beziehen, als Argument kann der Winkel ϕ angesehenwerden. Nennen wir diese Dichte q(ϕ).Das Problem ist damit schon eindimensional - eine beträchtliche Erleichterung und eine drastische Verringerung derParameterzahl. Abgesehen davon ist dadurch gewährleistet, daß sich das Resultat als Kurve darstellen läßt und keine3D-Grafik gebraucht wird.Weiterhin ist offensichtlich, daß hier Symmetrie bezüglich der x − y-Ebene vorliegt. Man braucht diese Verteilungalso nur auf dem halben Umfang zu berechnen, z. B. für 0 ≤ ϕ ≤ π.Für die angekündigte simple Modellierung wird der Ring in n gleiche Teile geteilt, so wie man einen Wurstring inScheiben schneidet, die außen dicker sind als innen. Jede derartige ’Scheibe’ wird nun wieder - wie eine Torte - in 2mSektoren geschnitten.Die Mittelfläche einer ’Scheibe’ sei durch den Winkel ψi = 2πi/n gekennzeichnet; 0 ≤ i ≤ n− 1. Die Verteilung wirdauf der Oberfläche der 0. Scheibe berechnet.Die Mittelpunkte der Sektorenoberflächen gehören zu den Winkeln ψj = πj/m, 0 ≤ j ≤ 2m.Mit dem Rad eines Fahrrades verglichen wäre also j = 0 oder j = 2m die Mitte der Lauffläche. bei j = m sitzt dasVentil.Die Oberfläche des Rings wird damit in gekrümmte ’Rechtecke’ aufgeteilt. Wir denken uns nun die gesamte Ladungeines solchen Vierecks in seinem Zentrum konzentriert und wir verbinden diese Zentren mit Drähten, die Ladungenzwar leiten können, aber nicht aufbewahren. Der Ring selbst wird nun nicht mehr gebraucht. Statt seiner haben wireine Anzahl von Punkten (diesen Zentren) im Raum, die ihn halbwegs darstellen.Nun versehen wir all diese Zentren mit derselben Zahl N von Elektronen, und betrachten wir irgendeinen der Um-fangspunkte der 0. Scheibe.

134

Page 135: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Auf die N Elektronen in ihm wirken die Abstoßungskräfte aus allen anderen Knotenpunkten. Diese versuchen dieElektronen nach außen zu drücken, aber dorthin führt kein Draht.Wegen der Rotationssymmetrie haben die Elektronen keinen Anlaß, auf die 1. oder n− 1-te Scheibe zu wechseln.Sie können nur entlang des Umfangs wandern und das werden sie tun, wenn die auf diesen Knoten wirkende Kraftnicht senkrecht zur Oberfläche ist.Die ’ganz simple Modellierung’ besteht nun darin, für alle m Punkte auf der oberen Hälfte der 0. Scheibe die jeweilswirkende Kraft zu berechnen, ihre Orientierung zur Oberflächennormalen zu ermitteln und dann in die resultierendeRichtung ein Elektron abzugeben.Es wäre vermutlich sinnvoll, die Anzahl der abzugebenden Elektronen nicht nur von der Richtung, sondern auch vondem Betrag dieses Vektors abhängen zu lassen, aber das erfordert schon etwas Überlegung. Dies sei einem besserenModell vorbehalten.Nachdem alle Punkte des halben Umfangs durchlaufen und Elektronen hin oder her geschoben wurden wird dieserDurchlauf wiederholt und dann nochmals und nochmals ... . (Auf der gegenüberliegenden Hälfte wird nicht gerechnet,die dortigen Ladungen ergeben sich einfach durch Spiegelung, sie werden also gleichzeitig mit ermittelt.)Irgenwann wird sich dieser Prozeß in dem Sinne stabilisieren, daß die Verteilung in jedem Durchlauf geringfügigum einen festen Zustand schwankt, daß also beispielsweise ein jetzt abgegebenes Elektron in der nächsten Rundezurückgeholt wird, usw..Diese Vorgehensweise orientiert sich am physikalischen Verständnis: Es müßte so gehen, da damit die Energie derLadungsverteilung halbwegs minimiert wird - derselbe Prozeß, der sich auch in der Realität abspielen würde.Nachdem solcherart der Weg geklärt ist können die benötigten Formeln aufgestellt werden.Wenn im Punkt P1 die Ladung Q1 und in P2 entsprechend Q2 positioniert sind, so wirkt auf Q1 eine Kraft ~F inRichtung des Vektors ~P2P1 mit dem Betrag (c ist eine gewisse positive Konstante) |~F | = cQ1Q2/|P1P2|2.Der gesamte Kraftvektor ist nun der Einheitsvektor der Kraft, multipliziert mit seinem Betrag:

~F =cQ1Q2

|P1P2|2· 1

|P1P2|~P2P1 =

cQ1Q2

|P1P2|3~P2P1 .

Nun konkret: Sei P0j einer der Punkte auf dem Umfang der 0. Scheibe; 0 ≤ j ≤ m. Die Gesamtkraft ~F0j , die auf ihnwirkt, ist die Summe der Kräfte aus allen anderen Knotenpunkten Pkl aller Scheiben (0 ≤ k ≤ n−1, 0 ≤ l ≤ 2m−1):

~F0j =

n−1∑k=0

2m−1∑l=0

∗cQjQk

|P0jPkl|3~P0jPkl ,

wobei das Sternchen bedeutet, daß der Punkt P0j bei der Summenbildung ausgelassen wird.Den konstanten positiven Faktor cQj kann man aus der Summe herausziehen; und da nur die Richtung dieses Vektorsinteressiert kann man ihn weglassen.Es wird also in der x−z-Ebene der verbleibende Vektor ~vj berechnet und mit dem Radiusvektor (x, 0, z)T−(Rc, 0, 0)T

verglichen. Je nachdem, nach welcher Seite er von diesem abweicht wird ein Elektron übergeben.Man braucht die Koordinaten der Punkte Pkl. In Zylinderkoordinaten ist

zkl = Rq sin2πl

2m, rkl = Rc +Rq cos

2πl

2m, ψkl = ψkl .

Um die Abstände zu ermitteln ist der Übergang in kartesische Koordinaten sinnvoll:

xkl =[Rc +Rq cos

2πl

2m

]cos

2πk

n, xkl =

[Rc +Rq cos

2πl

2m

]sin

2πk

n, zkl = Rq sin

2πl

2m.

Da es offensichtlich nur auf das Verhältnis von Rc und Rq ankommt kann man Rq = 1 setzen und Rc als Maßzahldieses Radius, gemessen in der Einheit Rq, ansehen.Für den inneren und den äußeren Radius des Ringes müssen noch spezielle Festlegungen getroffen werden, da dortwegen der festgelegten Symmetrie nie eine von der Horizontalen abweichende Richtung ermittelt wird. Man könntedaran denken, im Falle einer Differenz von mehr als zwei Elektronen zu den beiden Nachbarn je eines nach jeder Seiteabzugeben oder aufzunehmen.Die resultierenden Werte qj sind nun allerdings noch nicht die gesuchte Ladungsdichte, sondern nur die ’Elektro-nenzahl’ im jeweiligen Knotenpunkt. Der steht für ein gewisses Rechteck und das ist im Außenbereich größer alszur ’Nabe’ hin. Näherungsweise kann man diese Änderung berücksichtigen, indem man die Werte qj noch durch diezugehörigen Radien rj teilt. Die sich hieraus ergebende Tabelle stellt - bis auf einen beliebigen Normierungsfaktor -eine Näherung für die Ladungsdichte q(ϕ) dar.Das Verfahren ist grob und rechenintensiv, aber es liefert ziemlich schnell eine gewisse Lösung. Und es basiert aufdirekter Modellierung durch diskrete Zustände.Der übliche Weg wäre ein gewisser Kreis: Man würde alles auf kleinen Flächenstücken betrachten, die Bilanz auf-stellen, deren Abmessungen dann gegen Null gehen lassen und diverse Integrale erhalten. Wenn es nicht gelingt,eine geschlossene Lösung zu finden - was einige analytische Kenntnisse erfordert - so kann man diese Integrale durchNäherungsformeln diskretisieren und man landet bei ähnlichen Formeln wie den benutzten.

135

Page 136: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Dieser ’Umweg’ über das stetige Modell - das sich in den letzten 300 Jahren eingebürgert hat - wurde hier vermieden.Freilich, wenn man die Integrale korrekt aufschreibt, so könnte man mit geringer Mühe Näherungsformeln gewinnen,die wesentlich genauer wären als die entwickelten und die in einem winzigen Bruchteil der Rechenzeit ordentlicheErgebnisse lieferten - aber ein wenig länger würden diese Vorarbeiten schon dauern.Zur Realisierung der Rechnung wurde das folgende, für n = m = 15 ausgelegte Programm genutzt:

for i:=0 to m do q[i]:=100; nr:=0; pi:=3.1415927;1: for j:=1 to m-1 do begin

fx:=0; fz:=0; x0:=rc+cos(pi*j/m); z0:=sin(pi*j/m);for k:=0 to n-1 do for l:=0 to m+m-1 do beginif (k=0) and (l=j) then goto 2;r:=rc+cos(pi*l/m); z1:=sin(pi*l/m);x1:=r*cos(2*pi*k/n); y1:=r*sin(2*pi*k/n);d:=(x1-x0)*(x1-x0)+y1*y1+(z1-z0)*(z1-z0);if l <= m then qq:=q[l] else qq:=q[m+m-l];d:=d*sqrt(d); fx:=fx+qq*(x0-x1)/d; fz:=fz+qq*(z0-z1)/d;

2: end;x1:=-z0; z1:=x0-rc; q[j]:=q[j]-1;if x1*fx+z1*fz > 0 then q[j+1]:=q[j+1]+1 else q[j-1]:=q[j-1]+1;if (x1*fx+z1*fz > 0) and (j=m-1) then q[j+1]:=q[j+1]+1;if (x1*fx+z1*fz < 0) and (j=1) then q[j-1]:=q[j-1]+1;

end;if q[0] > q[1]+1 then begin q[0]:=q[0]-2; q[1]:=q[1]+1; end;if q[m] > q[m-1]+1 then begin q[m]:=q[m]-2; q[m-1]:=q[m-1]+1; end;if q[0] < q[0]-1 then begin q[0]:=q[0]+2; q[1]:=q[1]-1; end;if q[m] < q[m-1]-1 then begin q[m]:=q[m]+2; q[m-1]:=q[m-1]-1; end;nr:=nr+1; if nr < 300 then goto 1;

Die Rechenergebnisse für den Fall Rc = 10 sind in der nachstehenden Tabelle zusammengefaßt. Links steht dieNummer des Durchlaufs - der bereits stattgefunden hat - und rechts die Summe aller Ladungen. Die Werte 1 bis 14werden dabei doppelt genommen. Diese Summe dient nur der Kontrolle. Sie muß konstant sein und ist es auch.Man beachte, daß die qj auf dem Ring von außen (q0) nach innen q15 laufen.

N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15∑

ql0 100 101 100 100 100 100 100 100 100 100 100 100 100 100 99 100 30001 102 101 100 100 100 100 100 100 100 100 100 100 100 100 99 98 30002 102 101 101 100 100 100 100 100 100 100 100 100 100 100 98 98 30003 102 102 101 100 100 100 100 100 100 100 100 100 100 100 97 98 30004 102 102 102 100 100 100 100 100 100 100 100 100 100 100 97 96 30005 102 103 102 100 100 100 100 100 100 100 100 100 100 99 97 96 30006 102 103 102 101 100 100 100 100 100 100 100 100 100 98 97 96 30007 104 103 102 101 100 100 100 100 100 100 100 100 100 97 97 96 30008 104 103 103 101 100 100 100 100 100 100 100 100 100 97 96 96 30009 104 103 103 101 101 100 100 100 100 100 100 100 99 97 96 96 3000

10 104 103 104 101 101 100 100 100 100 100 100 100 99 97 95 96 3000...

......

......

......

......

......

......

......

......

...295 108 109 107 107 105 104 103 102 99 98 96 94 93 92 91 92 3000296 108 108 107 107 106 105 102 102 99 97 96 95 93 92 91 92 3000297 108 108 108 107 105 105 102 101 100 98 96 95 93 92 91 90 3000298 108 109 107 107 105 104 103 102 99 98 96 94 93 92 91 92 3000299 108 108 107 107 106 105 102 102 99 97 96 95 93 92 91 92 3000300 108 108 108 107 105 105 102 101 100 98 96 95 93 92 91 90 3000

Die resultierende Verteilung aus diesen Werten ist, wenn sie durch den Radius des jeweiligen Punktes geteilt unddamit normiert werden:

136

Page 137: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

...............................................................................................................................................................................................

.......................................................................................................

....................................................................................................................................................

.................................................................................................................................................................................................................................................................................

....................................................................................................

...............................................................................................................................................................................................................................................................................................

...............................................................

..........................0.95

..........................0.96

..........................0.97

..........................0.98

..........................0.99

..........................1.00

................

................

...

45o...................................

90o...................................

135o...................................

180o

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ...............................................................................................................................................ϕ

q(ϕ)

Man beachte, daß ϕ = 0o den Punkten auf der Außenseite entspricht, während der rechte Teil der Kurve den innerenBereich des Ringes beschreibt.Die Werte sind offenbar sehr grob. Um sie zu verbessern hätte man mehr als 100 ’Elektronen’ in mehr Punktepositionieren müssen. Das hätte die Rechnung aber stark verlangsamt.Man erkennt allerdings, daß sich auf der Innenseite des Rings mehr Elektronen versammeln als auf der Außenseite.Ist das plausibel? Hätte man das erwartet? Beachten Sie die Fußnote auf Seite 7!

Zielstellungen dieses Beispiels:

• Grobe Modellierung auf der Basis einer physikalischen Vorstellung,

• Keine Rücksicht auf Rechenzeit und Effektivität,

• Keine besonders hohen Genauigkeitsforderungen,

• Trotzdem eine gewisse und unerwartete Erkenntnis.

8.3 Beispiel 3: Stationäre Temperaturverteilung - ein Randwert-problem

Gegeben ist eine Schicht eines homogenen Materials der Dicke L. Zeitlich stationär herrsche auf der linken Oberfläche(x = 0) dieser Schicht überall die gegebene Temperatur T (0) = Tl, rechts bestimmt sich die Temperatur aus einerÜbergangsbedingung: −λ · T ′(L) = α(T (L)− Tu).Hierbei bezeichnet λ die Wärmeleitzahl, α die Wärmeübergangszahl und Tu die - ebenfalls stationäre - rechte Um-gebungstemperatur.Für die stationäre Temperatur T (x) gilt die Differentialgleichung

(λ(T ) · T ′)′ = 0 ,

diese bringt zum Ausdruck, daß die Wärmeleitzahl von der Temperatur abhängt. (Wenn das nicht der Fall ist, so gilteinfach T ′′ = 0 und hieraus resultiert ein linearer stationärer Temperaturverlauf.) Sei λ(T ) eine lineare Funktion derTemperatur: λ(T ) = λ0 + µT , T in Grad Celsius.Es soll dieser stationäre Temperaturverlauf ermittelt werden:

.....................................................................................

............................................................................................

.....................................................................................................

.................................................................................................................

....................................................................................................................................

..........................................................................................................................................................................

...............................................................................................................................................................................................

...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

....................................................

.............................

x

Tl

T (x) .............................Tu

L...................................................................................................................................................................................

T (L)

A) Lösung des Problems durch Differenzenapproximation der Ableitung:

Der Abschnitt [0, L] wird in n gleiche Teile der Länge h = L/n geteilt: xk = kh, x0 = 0, xn = L. Es sei Tk der

137

Page 138: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Näherungswert zu T (xk), der berechnet wird. Für alle inneren Punkte wird die Differentialgleichung diskretisiert,dabei bezeichnet xk±1/2 = xk ± h/2 einen fiktiven Punkt (vgl. S. 25):

0 = (λ(T ) · T ′)′∣∣x=xk

=1

h

[λ(Tk+1/2) · T ′k+1/2 − λ(Tk−1/2) · T ′k−1/2

]=

=1

h

[λ0 + µ

Tk+1 + Tk2

]· Tk+1 − Tk

h−[λ0 + µ

Tk + Tk−1

2

]· Tk − Tk−1

h

, k = 1, 2, . . . , n− 1 .

Diese Gleichung wird natürlich mit 2h2 multipliziert.Im linken Randpunkt x0 = 0 ist T0 = Tl bekannt und rechts (xn = L) wird mit der einseitigen Ableitung diskretisiert:

−λ(T (L)) · T ′(L) = α(T (L)− Tu) =⇒ −λ0 + µTn2h

(3Tn − 4Tn−1 + Tn−2) = α(Tn − Tu) .

Man erhält also insgesamt n+ 1 Gleichungen für die n+ 1 Unbekannten T0 bis Tn. (Die Gleichung in x0 ist trivial.)Die n− 1 aus der Differentialgleichung herrührenden Gleichungen sind allerdings nichtlinear wegen der Abhängigkeitvon λ von T .Zur Lösung des Systems wird die Fixpunktiteration angewandt. Sie basiert hier auf der naheliegenden Überlegung,daß sich λ vermutlich nur wenig ändert. (Die Werte von Tl und Tu sollen nicht sehr weit differieren, so daß die in Fragekommenden Temperaturen in einem nicht allzugroßen Bereich liegen mögen.) Man schätzt also den Temperaturver-lauf mit Werten T (0)

k (hier wird einfach zwischen Tl und Tu linear interpoliert) und berechnet daraus die λ-Werte desGleichungssystems. Sind diese ermittelt und festgelegt, so verbleibt ein lineares System, dessen Lösung keine Mühemacht. Die Resultate T (1)

k sind natürlich etwas verfälscht, da die Wärmeleitzahlen nur auf geschätzten Temperaturenbasierten, aber sie sind sicher viel genauer als diese Schätzung. Nun kann man mit Hilfe dieser besseren Werte dievon λ(T

(1)k ) in den einzelnen Punkten korrekter ausrechnen und ein besseres lineares Gleichungssystem aufstellen.

Dieser Prozeß wird wiederholt, bis sich die Werte nicht mehr ändern.Man berechnet also einen Satz neuer Näherungswerte T(m+1)

k aus dem folgenden linearen System (der besseren Über-sicht wegen sind diese Unbekannte fettgedruckt, während die bekannten vorigen Näherungswerte T (m)

k in normalerSchrift erscheinen):

Tm+10 = Tl[

2λ0 + µ(T(m)k−1 + T

(m)k )

]T(m+1)k−1 −

[4λ0 + µ(T

(m)k−1 + 2T

(m)k + T

(m)k+1)

]T(m+1)k +

+[2λ0 + µ(T

(m)k+1 + T

(m)k )

]T(m+1)k+1 = 0 , k = 1, 2, . . . , n− 1

−λ0 + µT (m)n

2hT(m+1)n−2 + 4

λ0 + µT (m)n

2hT(m+1)n−1 −

[3λ0 + µT (m)

n

2h+ α

]T(m+1)n = −αTu .

Die Matrix dieses Gleichungssystems ist schwach besetzt. Sie hat Bandstruktur entlang der Hauptdiagonale (wobeidie letzte Zeile etwas aus der Reihe tanzt). Von diesen Effekt abgesehen nennt man die Matrix auch tridiagonal.Bezeichnet man die Nicht-Null-Elemente mit einem Sternchen und die Nullen mit einem Punkt, so hätte im Falln = 7 die Matrix die Gestalt

∗ · · · · · · ·∗ ∗ ∗ · · · · ·· ∗ ∗ ∗ · · · ·· · ∗ ∗ ∗ · · ·· · · ∗ ∗ ∗ · ·· · · · ∗ ∗ ∗ ·· · · · · ∗ ∗ ∗· · · · · ∗ ∗ ∗

und es ist sicher wenig sinnvoll, dieses System mit der universellen Variante des Gauss-Verfahrens zu lösen, vielmehrkann man diese Methode für den vorliegenden Fall vereinfachen.Nennen wir die Koeffizienten der n− 1 Gleichungen, die bei der Diskretisierung der Differentialgleichung entstandensind, ak, bk und ck: akTk−1 + bkTk + ckTk+1 = 0. Durch die Hinrechnung verschwinden die Koeffizienten unterder Hauptdiagonalen. (Man kann sich durch eine theoretische Überlegung überzeugen, daß hier das Pivotelementimmer auf der Hauptdiagonalen genommen werden kann.) Nach dieser Transformation bleiben Gleichungen der FormpkTk + qkTk+1 = rk und die neuen Koeffizienten pk, qk und rk können rekursiv berechnet werden.In der ersten Zeile (k = 0) ist p0 = 1, q0 = 0 und r0 = Tl. Das a1-fache dieser Zeile wird von der zweiten subtrahiert,damit wird p1 = b1, q1 = c1 und r1 = −a1r0. Im nächsten Schritt wird das a2/p1-fache der zweiten Zeile von derdritten subtrahiert:

p2 = b2 − a2q1/p1 , q2 = c2 , r2 = −a2r1/p1 .

So geht es Zeile um Zeile weiter. Neben der vorletzten Zeile muß aber auch noch die letzte transformiert werden, diedie abweichende Gestalt dnTn−2 + anTn−1 + bnTn = fn hat. Diese Umrechnung verläuft so:

pn−2Tn−2 + qn−2Tn−1 = rn−2 pn−2Tn−2 + qn−2Tn−1 = rn−2

an−1Tn−2 + bn−1Tn−1 + cn−1Tn = 0 =⇒ pn−1Tn−1 + qn−1Tn = rn−1 =⇒dnTn−2 + anTn−1 + bnTn = fn a∗nTn−1 + b∗nTn = f∗n

138

Page 139: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

pn−2Tn−2 + qn−2Tn−1 = rn−2

=⇒ pn−1Tn−1 + qn−1Tn = rn−1

pnTn = rn

Damit ist die Hinrechnung beendet und es kann die einfache Rückrechnung erfolgen. Es ist Tn = rn/pn, und dannwird Tk = (rk − qkTk+1)/pk.Insgesamt kann die Rechnung durch das folgende Programm ausgeführt werden, dabei wurde auf eine klare StrukturWert gelegt und die Programmierung an die Herleitung angelehnt. Diese Variante vergeudet Speicherplatz. Es istnicht nötig, so viele Felder zu vereinbaren und zu belegen. Bei einer ordentlichen Programmierung kann eine spei-cherökonomische Version erstellt werden. Darauf sei hier im Interesse der Anschaulichkeit verzichtet. Die Belegungvon p[0] usw. hätte man aus dem Zyklus herausziehen sollen.Allerdings wird mit nur zwei Sätzen T0 und T1 von Temperaturen gearbeitet (einer hätte auch gereicht) und derneuberechnete wird jeweils in den alten umgespeichert. Dabei erfolgt ein Vergleich und wenn sich wenigstens ein Wertum mehr als ein gewisses ε geändert hat, so wird die Rechnung mit dem neuen Temperatursatz wiederholt.

h:=L/n; Initialisierung der Temperatur:

for k:=0 to n do T0[k]:=Tl+k*(Tu-Tl)/n; Belegung des Gleichungssystems: 1: p[0]:=1; q[0]:=0; r[0]:=Tl;

for k:=1 to n-1 do begina[k]:=2*lambda0+my*(T0[k-1]+T0[k]);b[k]:=-4*lambda0-my*(T0[k-1]+2*T0[k]+T0[k+1]);c[k]:=2*lambda0+my*(T0[k]+T0[k+1]); end;

dn:=-0.5*(lambda0+my*T0[n])/h; a[n]:=-4*dn; b[n]:=3*dn-alpha; fn:=-alpha*Tu; Hinrechnung:

for k:=1 to n-1 do beginp[k]:=b[k]-a[k]*q[k-1]/p[k-1]; q[k]:=c[k]; r[k]:=-a[k]*r[k-1]/p[k-1]; end;

a[n]:=a[n]-dn*q[n-2]/p[n-2]; fn:=fn-dn*r[n-2]/p[n-2];p[n]:=b[n]-a[n]*q[n-1]/p[n-1]; r[n]:=fn-a[n]*r[n-1]/p[n-1];

Rückrechnung: T1[n]:=r[n]/p[n];for k:=n-1 downto 0 do T1[k]:=(r[k]-q[k]*T1[k+1])/p[k];

Umspeichern und maximale Abweichung ermitteln: max:=0;for k:=1 to n do begin

if abs(T1[k]-T0[k]) > max then max:=abs(T1[k]-T0[k]);T0[k]:=T1[k]; end;

Rechnung ggfs. wiederholen: if max > epsilon then goto 1;

Damit soll ein konkreter Fall gerechnet werden; nehmen wir Tl = 10oC, Tu = 80oC, L = 10mm, λ0 = 2.5kJ ·m−1 ·h−1 · K−1 (etwa Eisen) und α = 4000W · m−2 · K−1. Für µ wird ein Wert genommen, der λ bei 100oC um 20%vergrößert. Es wäre dies µ = 0.005kJ ·m−1 · h−1 ·K−1 ·o C−1.Die Werte entstammen in dieser Form einem Tabellenwerk. Ein Computerprogramm kann nicht mit Maßeinheitenrechen, also ist es Sache des Programmierers, die Formeln aufzubereiten. In der Regel fährt man am besten, wenn manfür die gesamte Rechnung einheitliche Einheiten festlegt. Wählen wir als Längeneinheit Millimeter und passen wir denRest an. Es ist 1kJ=1Wh/3.6, damit wird λ0 = (2.5/3.6) · 10−3W ·mm−1 ·K−1 = 6.944 · 10−4W ·mm−1 ·K−1, µ =1.389 · 10−6W ·mm−1 ·K−1 ·o C−1 und α = 4 · 10−3 ·W ·mm−2 ·K−1.

Die Werte von T (m)k sind für n = 8 - ein ziemlich kleiner Wert, aber hier geht es um das m - nachstehend tabelliert.

Man erkennt, daß die Werte für m = 3 im Rahmen der Ausgabegenauigkeit später nicht mehr geändert werden.(Zehntausendstel Kelvin liegen sicher weit jenseits jeder praktischen Genauigkeitsforderung.) Die Fixpunktiterationkonvergiert also sehr schnell.

m 0 1 2 3 4 5 5 7 80 10.0000 18.7500 27.5000 36.2500 45.0000 53.7500 62.5000 71.2500 80.00001 10.0000 19.0867 28.0214 36.8092 45.4547 53.9625 62.3369 70.5821 78.70192 10.0000 19.0854 28.0145 36.7949 45.4339 53.9381 62.3137 70.5665 78.70173 10.0000 19.0852 28.0141 36.7945 45.4336 53.9380 62.3138 70.5666 78.70174 10.0000 19.0852 28.0141 36.7945 45.4336 53.9380 62.3138 70.5666 78.7017

Nun zur Diskretisierungsgenauigkeit, also zu dem Fehler, der durch das Ersetzen der Differentialgleichung durch dasalgebraische System von diskreten Variablen hervorgerufen wird. Er ist etwa proportional zu h2 ∼ n−2. Um ihnpraktisch zu analysieren wird das Beispiel mit n = 8, 16, 32, . . . gerechnet und es werden die Werte ausgegeben, diesich auf dieselben Stellen beziehen. Bei n = 16 ist das jeder zweite, bei n = 4 jeder vierte usw.. Die Numerierung

139

Page 140: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

im Tabellenkopf bezieht sich auf n = 8. Die Werte sind die von m = 5, so daß die Fixpunktiteration also schonabgeschlossen ist:

n 1 2 3 4 5 5 7 84 - 28.014363 - 45.434080 - 62.314417 - 78.7025758 19.085216 28.014132 36.794546 45.433632 53.938000 62.313764 70.566588 78.701731

16 19.085189 28.014077 36.794466 45.433527 53.937871 62.313612 70.566412 78.70153332 19.085182 28.014064 36.794447 45.433501 53.937840 62.313575 70.566370 78.70148564 19.085180 28.014061 36.794442 45.433495 53.937832 62.313566 70.566359 78.701473128 19.085180 28.014060 36.794441 45.433493 53.937830 62.313563 70.566357 78.701470

Die Werte für n = 128 können wohl als praktisch exakt angesehen werden. Für übliche Anwendungen reichen bereitswesentlich gröbere Diskretisierungen (z. B. n = 8; damit ist diese Rechnung schon fast taschenrechnertauglich). Manbeachte, daß man bei n = 128 eine ziemlich detaillierte Tabelle erhält, die eine ordentliche Kurve zeichnen läßt.In der nächsten Tabelle stehen die Differenzen der Werte für das jeweilige n zu dem zugehörigen Wert für n = 128,also in der obigen Tabelle aus jeder Zeile die letzte abgezogen:

n 1 2 3 4 5 5 7 84 - 0.000303 - 0.000587 - 0.000854 - 0.0011058 0.000036 0.000071 0.000105 0.000138 0.000170 0.000201 0.000231 0.00026116 0.000009 0.000017 0.000025 0.000033 0.000041 0.000048 0.000056 0.00006332 0.000002 0.000004 0.000006 0.000008 0.000010 0.000011 0.000013 0.00001564 0.000000 0.000001 0.000001 0.000002 0.000002 0.000002 0.000003 0.000003

n wird von Schritt zu Schritt verdoppelt. Die Abweichungen müßten sich also analog jeweils auf etwa ein Viertel dervorigen reduzieren. - Man überzeuge sich, daß dies tatsächlich recht genau eintritt.

Abschließend eine Bemerkung zur Verifizierung der Resultate: Die Physik läßt fordern

• limα→∞ T (L) = Tu - idealer thermischer Kontakt am rechten Rand, analog wie links;

• limα→0 T (L) = Tl - thermisch isolierende Oberfläche, dann ist T (x) = Tl =konstant;

• limλ→0 T (L) = Tu - Fall einer Schaumstoffisolierung;

• µ = 0 ⇒ T (x) = ax+ Tl mit −λ · a = α(aL+ Tl − Tu).

Daran kann man das Programm testen, indem man für α und λ sehr kleine oder sehr große Werte einsetzt und prüft,ob sich dieses Verhalten abzeichnet.3

B) Jetzt wird der Fall betrachtet, daß ein Wechselstrom daß Material durchfließe, und zwar senkrecht zur x-Achse.Dieses wird damit erwärmt. Die Randbedingungen mögen unverändert bleiben.Die Amplitude des Wechselstroms sei zeitlich konstant und die Frequenz so hoch, daß man davon ausgehen kann,daß die thermische Trägheit des Materials ein Mitschwingen der Temperatur praktisch verhindert. Diese kann alsoals zeitlich stationär angesehen werden und man kann mit der effektiven Stromstärke rechnen.Der Wechselstrom fließt hauptsächlich in den oberflächennahen Schichten. Seine Verteilung kann natürlich berechnetwerden, das sei aber hier nicht das Ziel. Nehmen wir der Einfachheit halber an, es sei eine quadratische Funktion, diein der Mitte der Schicht auf Null fällt:

Ieff = A(2x− L)2 .

Die Leistung - und damit Wärmequelldichte - ist proportional zum Quadrat der Stromstärke und man erhält dieDifferentialgleichung

(λ(T ) · T ′)′ = −B(2x− L)4 , B > 0 .

An der Diskretisation der rechten Randbedingung ändert sich nichts und links bleibt natürlich alles wie bisher. Fürdie inneren Punkte folgt aus der Differentialgleichung

−B(2xk − d)4 = (λ(T ) · T ′)′∣∣x=xk

=1

h

[λ(Tk+1/2) · T ′k+1/2 − λ(Tk−1/2) · T ′k−1/2

]=

=1

h

[λ0 + µ

Tk+1 + Tk2

]· Tk+1 − Tk

h−[λ0 + µ

Tk + Tk−1

2

]· Tk − Tk−1

h

, k = 1, 2, . . . , n− 1 .

Der einzige Unterschied zum vorigen System ist also, daß diese Gleichungen inhomogen werden.Ansonsten erfolgt die Rechnung völlig analog (Fixpunktiteration, Ausnutzen der Bandstruktur, ...).Für B = 10−6 sind nachstehend die für verschiedene n resultierende Werte angegeben:

3Was sagt eigentlich das physikalische Verständnis zum vorgegebenen Beispiel - muß T (x) immer flacher oder immer steilerwachsen? Anders ausgedrückt: ist T (x) konvex oder konkav?

140

Page 141: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

n 1 2 3 4 5 5 7 84 - 38.874080 - 56.255830 - 73.110655 - 79.8629998 35.868746 47.697312 56.755671 65.513597 74.137944 82.483775 88.326285 82.00516016 37.751599 50.293801 59.575210 68.429813 77.143827 85.460871 90.837142 83.08003532 38.245395 50.985316 60.339089 69.231447 77.978397 86.296072 91.561918 83.45225264 38.371687 51.163576 60.537776 69.441681 78.198748 86.518265 91.758105 83.562143128 38.403628 51.208851 60.588480 69.495575 78.255456 86.575701 91.809304 83.592077256 38.411661 51.220262 60.601291 69.509225 78.269848 86.590314 91.822395 83.599897

Die Abweichungen, auf die (nicht so exakten) Werte für n = 256 bezogen:

n 1 2 3 4 5 5 7 84 - -0.462419 - 5.035569 - 12.509364 - 10.3537748 -2.542915 -3.522950 -3.845620 -3.995628 -4.131904 -4.106538 -3.496109 -1.59473616 -0.660062 -0.926460 -1.026081 -1.079412 -1.126021 -1.129443 -0.985253 -0.51986132 -0.166267 -0.234946 -0.262202 -0.277779 -0.291451 -0.294242 -0.260476 -0.14764464 -0.039975 -0.056685 -0.063515 -0.067544 -0.071100 -0.072049 -0.064290 -0.037753128 -0.008033 -0.011411 -0.012811 -0.013650 -0.014393 -0.014613 -0.013091 -0.007819

Die Werte für n = 4 liegen jetzt deutlich neben der Realität. Der zu x = L liegt unter Tu, während er in Wirklichkeitdarüber liegen muß.Die Fehler verringern sich nach wie vor etwa um den Faktor 1/4, sie sind aber wesentlich größer. Um eine vergleichbareGenauigkeit zu erhalten müßte man n sehr groß machen.Der Verlauf der resultierenden Temperatur ist zunächst nachstehend dargestellt. Die punktierte Kurve beschreibt dieWärmequelldichte c(2x−L)4 (in irgendeinem Maßstab). Wie man sieht führt die Wärmezufuhr im Außenbereich zueiner Erwärmung der Mitte:

0

20

40

60

80

100

10

............................................................................................................................................................................................................................................................................................................................................................................

....................................................................

.......................................................................

..........................................................................

..........................................................................

..........................................................................

............................................................................

............................................................................

...............................................................................

.....................................................................................

.......................................................................................................................................................................................................................................................

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .............

............. ............. .......................... ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

........................ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .

. . .. .. .. .. .......................

Was ist die Ursache für diese Vergrößerung des Fehlers?Im Proportionalitätsfaktor c des Fehlerterms ch2 ist ein Wert der vierten Ableitung der Lösung enthalten In derAufgabe A) war die Lösung fast eine lineare Funktion und damit war der Betrag der vierten Ableitung klein. Jetztist die Funktionskurve deutlich gekrümmt und dieser Faktor beträchtlich gewachsen.Dieses Problem wird noch durch die starke Ortsabhängigkeit der rechten Seite - und damit der Lösungsfunktion - derDifferntialgleichung verschärft. Um eine akzeptable Genauigkeit zu erhalten ist eine kleine Schrittweite h, also einegroße Anzahl n von Punkten notwendig. Diese Notwendigkeit einer feinen Schrittweit besteht aber nur in zwei engenBereichen - im breiten inneren Streifen könnte man h viel gröber lassen.Um den Rechenaufwand zu senken kann man nun eine gewisse Schichtdicke l einführen und den x-Bereich von 0 bis

141

Page 142: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

l betrachten, weiter den von l bis L− l und zuletzt den von L− l bis L. In den beiden äußeren Gebieten rechnet manmit einem feinen h, in der Mitte mit groben Schritten. Man muß nur die Übergänge durch diese - vom Standpunktder Physik willkürlichen - Grenzen modellieren. Das geschieht durch die Feststellung, daß in x = l und in x = L− ldie Funktion T (x) und ihre erste Ableitung stetig sein soll. In der diskretisierten Variante bedeutet dies, daß dieAbleitung, nach links genommen, dieselbe sein muß wie die nach rechts genommene.Betrachten wir x = l, sei l = xM . Links ist die Schrittweite hM = l/M , rechts ist hZ = (L− 2l)/N und es soll gelten

1

2hM(3TM − 4TM−1 + TM−2) =

1

2hZ(−3TM + 4TM+1 − TM+2) .

Die Gesamtzahl der Unbekannten ist n = 2M +N .Die Rechnung ändert sich nicht wesentlich. Die Tridiagonalität der Matrix ist jetzt aber in drei Zeilen gestört stattin einer. Man muß also dreimal eine Sonderbehandlung durchführen.Der Preis für ein recheneffektives Programm ist ein größerer Aufwand bei seiner Erstellung und eine etwa dreifacheLänge, denn man ist jetzt gezwungen, für jedes der drei Teilstücke extra zu programmieren.Kann man diese künstliche - und mithin gekünstelte - Unterteilung vermeiden und bei einem einheitlichen Programmbleiben?Natürlich, es gibt noch andere Wege. Beispielsweise kann man mit Differenzenapproximationen für die Ableitungarbeiten, die verschiedene Schrittweiten erlauben. Die Unterteilungspunkte haben damit nicht mehr den gleichenAbstand und man kann sie in den problematischen Randbereichen dichter legen und im Innern weiter auseinander.Und der Preis? - Operiert man weiterhin mit jeweils drei Punkten bei der Annäherung der Differentialgleichung,so hat der Fehler jetzt nicht mehr die Größenordnung vom Quadrat der Schrittweite, sondern nur noch ihrer erstenPotenz - er verringert sich also nur noch langsam und um ein akzeptables Resultat zu erhalten braucht man wiederumviele Punkte, gerade das, was man vermeiden wollte.Will man bei der alten Ordnung der Genauigkeit bleinen, so muß man bei veränderlicher Schrittweite vier oder fünfPunkte zur Darstellung von (λT ′)′ heranziehen. Damit wird das Programm wieder einheitlich und ohne künstlicheÜbergänge, aber die Tridiagonalität der Systemmatrix ist zum Teufel und bei der Hinrechnung muß man nicht eineZeile mit der nächsten verknüpfen, sondern mit den zwei nächsten. Obendrein ist pro Schritt mehr zu rechnen. (Undzu allem Überfluß erfordern noch die zweite und die vorletzte Zeile eine spezielle Behandlung.)Kurzum, man kann eine Sorte Ärger - oder Aufwand - nur vermeiden, indem man an seiner Stelle anderen wählt.Jedes Problem hat eine gewisse Schwierigkeit, die einen bestimmten minimalen Aufwand erfordert. Darunter ist keineLösung zu haben. In welcher Währung man den Preis zahlt ist egal - die Betrachtung zeigt, es gibt verschiedeneWege und jeder hat andere Unbequemlichkeiten. Man kann übrigens weitgehend auf die Numerik verzichten unddurch klassische Mathematik das Problem aufbereiten - das ist aber auch Arbeit und sie dauert ihre Zeit.

C) Die letzte Bemerkung soll aufgegriffen und diskutiert werden.Offensichtlich kann die Differentialgleichung ganz einfach geschlossen gelöst werden. Im homogenen Fall (kein Strom-fluß) folgt aus (λT ′)′ = 0 einfach die Konstanz des Klammerausdrucks: λT ′ = C1.Nun ist

λT ′ = (λ0 + µT )T ′ =d

dx

(λ0T (x) + µ

T 2(x)

2

)= C1 =⇒ λ0T (x) + µ

T 2(x)

2= C1x+ C2 .

Aus T (0) = Tl folgt

λ0Tl + µT 2l

2= C2 ,

und am rechten Rand ist− [λ0T (L) + µT (L)] · T ′(L) = α(T (L)− Tu) . (∗)

Aus der quadratischen Gleichung

µ

2T 2(x) + λ0T (x)−

[C1x+ λ0Tl +

µ

2T 2l

]= 0

erhält man eine Darstellung für T (x), die allerdings noch den Parameter C1 enthält:

T (x) = −λ0

µ±

√λ2

0

µ2+

2

µ

[C1x+ λ0Tl +

µ

2T 2l

],

und bei x = 0 ist T (0) = Tl nur dann, wenn man vor der Wurzel das Pluszeichen verwendet.Dieser Ausdruck ist nun - nebst seiner x-Ableitung - in (∗) einzusetzen, daraus bestimmt sich C1. Das geht allerdingsnicht als geschlossene Formel, vielmehr muß man an dieser Stelle wieder auf ein numerisches Verfahren zurückgreifen.Im inhomogenen Fall (Stromfluß) ist die Rechnung noch komplizierter.Der ’exakte’ Lösungsweg ist also nicht bis zum Ziel durchzuhalten.Es gibt zwei ’extreme’ Vorgehensweisen bei der mathematischen Behandlung eines Problems: Man versucht es durchtiefsinnige Methoden geschlossen, also formelmäßig zu lösen, oder man nimmt es ’im Rohzustand’ und ’erschlägt’ es

142

Page 143: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

mit einem Computer, d. h. man bekommt eine Zahlenlösung, ohne viel über das Problem nachgedacht zu haben.Der erste der beiden Wege genießt mehr Ansehen. Tatsächlich fördert er das Problemverständnis und bringt mehrNutzen. In der Realität werden aber diese beiden extremen Varianten selten benutzt, vielmehr liegen die Wege meistirgenwo dazwischen: Man bereitet das Problem bis zu einem gewissen Punkt auf und löst es dann numerisch.Dieser Punkt wird durch verschiedene Faktoren bestimmt:

• Welche Art von Resultat wird benötigt?

• Wie weit kommt man mit den eigenen oder sonstigen erreichbaren mathematischen Kenntnissen?

• Welche Software (und ggfs. Hardware) hat man zur Verfügung?

• Wieviel Zeit hat man für die gesamte Aktion?

Die sachgemäße - und nicht halbwegs zufällige - Wahl dieses Punktes erfordert etwas Erfahrung und Überblick.Dieses Beispiel sollte folgende Erkenntnisse vermitteln:

• Diskretisierung eines Randwertproblems unter Verwendung von Punkten xk±1/2 zwischen diesen Stellen xk,

• Überführung eines (ganz speziellen!) Systems quadratischer Gleichungen in lineare, mit Anwendung der Fix-punktiteration,

• effektives Lösen tridiagonaler Gleichungssysteme,

• Ausweg bei einzelnen Störungen der Tridiagonalität,

• Möglichkeit der lokalen Verfeinerung der Schrittweite h durch künstliche Unterteilung des Problems,

• physikalisch untermauerte Methoden der Ergebnisprüfung,

• Möglichkeiten, die mathematischen Parameter (hier: Unterteilungszahl n und Anzahl der Iterationsschritte m)experimentell zu bestimmen, durch Vergleich mit anderen, ebenso berechneten Werten,

• es gibt immer einen komplizierteren Weg, aber nicht immer einen einfacheren und

• wenn man am Start ein langes und vielversprechendes Stück des analytischen Weges vor sich sieht, so bedeutetdas nicht, daß er bis zum Ziel führt.

Noch eine Bemerkung zu C). Dort hat man ein typisches Problem.So ein Marathonlauf ist eine echte Schinderei. Mit Auto oder Motorrad wäre die Strecke viel schneller und vor allemleichter zu schaffen.Natürlich ist das unsportlich und kommt deshalb nicht in Betracht, aber die Lösung eines solchen Randwertproblemsist kein Sportereignis und fairplay ist nicht gefordert, es soll vielmehr nur effektiv und richtig sein.Der Beschluß, aufs Auto zu verzichten, wurde an einer Stelle gefaßt, wo man nicht ahnte, daß man sich damitin Zukunft Probleme einhandeln würde: Vermutlich hatte man selbst oder jemand anderes, dessen Resultate manverwendete, die Funktion λ(T ) gemessen und beschlossen, die Resultate durch eine lineare Funktion λ(T ) = λ0 +µT darzustellen. Das ging im vorliegenden Fall ganz gut und ist überhaupt so üblich - wo’s geht legt man eineAusgleichsgerade.Diese Vorgehensweise hat viel für sich, aber hier ist sie die Ursache von noch recht weit in der Zukunft liegendenProblemen, evtl. auch anderer Leute.Angenommen, die Meßresultate lassen sich auch durch eine geeignet angepaßte Funktion λ(T ) = eβT+γ darstellen,dann wird die Rechnung viel einfacher.Und was ist, wenn kein λ(T ) = eβT+γ ordentlich zu den Meßwerten paßt? Nun, die Schar von Funktionen ist großund vielleicht findet man noch etwas Passendes, das λ(T ) mit akzeptabler Genauigkeit ergibt und sich zu etwasBrauchbaren integrieren läßt.Es ist sehr wichtig, in sich die Fähigkeit zu entwickeln, im Dickicht des Problems innezuhalten und sich zu fragen:Wo habe ich mir diese Schwierigkeit eingehandelt und hätte ich damals etwas anderes nehmen oder machen können?Im Unterschied zum wahren Leben kann man hier zumeist nochmal zurück und die Entscheidung korrigieren.4

4In einer gewissen technischen Disziplin haben sich Autoren redlich mit dem Integral∫e−x

adx

herumgeplagt. Dabei ist a ein - mühsam und nicht allzu genau gemessener! - Wert, von dem man weiß, daß er zwischen 0.66und 0.70 liegt, üblicherweise wählt man a = 0.68.Das ist in der Regel in Ordnung. Hier zwingt einen diese harmlose Festlegung zu der Substitution y = x0.68 mit dy = 0.68 ·x−0.32dx: ∫

ex0.68

dx =1

0.68

∫y0.32/0.68 · e−y dy .

Es ist 32/68=8/17=0.470588... ein krummerWert. Das vorstehende Integral ist nicht geschlossen berechenbar und wenn man eineWeile in dicken Büchern sucht wird man feststellen, daß seine Stammfunktion die sogenannte ’unvollständige Gammafunktion’ist.Damit hat die Krankheit zwar einen Namen, aber zur Therapie ist nichts gesagt. Diese Feststellung hilft nicht viel weiter. Manwird jene Funktion nicht tabelliert finden.

143

Page 144: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

8.4 Beispiel 4: NullstellensucheGesucht sind die dreißig kleinsten positiven Nullstellen der Funktion

f(x) =√

2 sinx+ sin√

3x .

Lösung:

Die Kurve der Funktion f(x) hat im Bereich 0 ≤ x ≤ 60 (der 21 Nullstellen enthält) den folgenden (etwas grobgezeichneten) Verlauf.Wie man sieht wirkt die Kurve etwas chaotische. Die Funktion f(x) ist nichtperiodisch, da

√3 irrational ist, also mit

1 in keinem rationalen Verhältnis steht. Es ist mithin nicht einfach möglich, aus berechneten Nullstellen die nächstenvorherzusagen.Knapp unter x = 50 ist offenbar eine relativ problematische Stelle.

0 10 20 30 40 50 60

0 10 20 30 40 50 60

−2.5

−2.0

−1.5

−1.0

−0.5

0.0

0.5

1.0

1.5

2.0

2.5

−2.5

−2.0

−1.5

−1.0

−0.5

0.0

0.5

1.0

1.5

2.0

2.5

................

................

................

................

................

................

................

................

.................

................

................

................

................

.........................................................................................................................................................................................................................................................................................................................................................................

..............................................................................................................................................

...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................................................................................................................................................................................................................................................................

..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

........................................................................................................................................

.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

................

................

.................

................

................

................

................

................

.................

................

................

................

................

........................................................................................................................

...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.....................................................................................................................................................................

................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Man könnte die Funktion rechenintensiv mit einer sehr kleinen Schrittweite abtasten, aber es ist trotzdem schwierig zugarantieren, daß man dabei kein Paar eng benachbarter Nullstellen übersieht. Statt dessen ist es vielleicht günstiger,zu jeder Stelle x0 einen Bereich anzugeben, in dem garantiert keine Nullstelle liegt.Zunächst ein Fakt: Offenbar ist |f ′′(x)| = | −

√2 sinx− 3 sin

√3x| ≤

√2 + 3 = 2C mit C = 2.20711.

Nach der Formel vonTaylor gilt für diese überall beliebig oft differenzierbare Funktion f(x) mit ξ = ξ(x, x0) ∈ (x0, x)die Abschätzung

f(x) = f(x0) + f ′(x0) · (x− x0) +f ′′(ξ)

2(x− x0)2 ≤ f(x0) + f ′(x0) · (x− x0) + C(x− x0)2 = ϕo(x) .

Analog ist

f(x) = f(x0) + f ′(x0) · (x− x0) +f ′′(ξ)

2(x− x0)2 ≥ f(x0) + f ′(x0) · (x− x0)− C(x− x0)2 = ϕu(x) .

Im nachstehenden Bild ist die Situation um x0 = 2 herum dargestellt. f(x) ist die ausgezogene Kurve, ϕo(x) diegestrichelte - sie verläuft immer oberhalb von f(x) und hat im vorliegenden Fall keine Nullstelle. Demgegenüber liegtϕu(x) unter f(x) und sie wird in beiden Richtungen vor f(x) zu Null:

Etwas Kompromißbereitschaft hilft weiter: Versteift man sich nicht auf die 0.68, sondern ist man bereit, zu 2/3=0.6666... zukonvertieren, so wird nach einfacher Rechnung∫

ex−2/3

dx = −1.5x1/3 · e−x2/3

+ 0.75√π · erf

(x1/3

)+ c

mit der wohlbekannten und ausführlich tabellierten Fehlerfunktion erf(x).

144

Page 145: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

1 2 3

1 2 3

−4

−3

−2

−1

0

1

2

3

4

−4

−3

−2

−1

0

1

2

3

4

..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. ............. .............

.......... . . . .. . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .....

Sei nun f(x0) 6= 0, so haben in einem bestimmten Bereich um x0 herum weder ϕu(x) noch ϕo(x) eine Nullstelle unddann hat auch f(x) in diesem Bereich keine Nullstelle.Praktisch bedeutet dies: Man ermittle alle reelle Nullstellen von ϕu(x) und ϕo(x). Es sind mindestens zwei undwenigstens eine liegt oberhalb von x0. Sei x1 > x0 die kleinste derartige Nullstelle, dann hat f(x) zwischen x0 undx1 keine Nullstelle, und man kann die Nullstellensuche oberhalb von x1 in genau derselben Weise fortsetzen.Dieses Verfahren leistet mehr als nur die Verhinderung des ’Überspringens’ einer Nullstelle. Wenn letztlich ein x1 nahebei einer Nullstelle x∗ gefunden wurde, dann ist der nächste Schritt klein, das quadratische Glied in ϕ - in jedem! -also zu vernachlässigen und ϕu und ϕo haben fast dieselbe Nullstelle. Die Formel zur Bestimmung der nächstgrößerenunteren Grenze zu x∗ wird also praktisch zu einem Newton-Verfahren für x∗.Es bleibt noch zu klären, was man zu tun hat, nachdem eine Nullstelle gefunden wurde, denn die obige Überlegungbasierte auf der Voraussetzung f(x0) 6= 0. Sei jetzt also x0 = x∗, dann wird ϕo(x) = f ′(x0) · (x− x0) +C(x− x0)2 =(f ′(x0)+C(x−x0)) · (x−x0). Analog ist ϕu(x) = (f ′(x0)−C(x−x0)) · (x−x0), jedenfalls wird x1 = x0 + |f ′(x0)/C|.Das nachstehende PASCAL - Programm realisiert diese Prozedur:

program Nullstellensuche;

label 1, 2;var x,y,ys,c,h1,h2,h3,h4,h,s,w2,w3,xa : real;

k,l : integer; f : text;r : array [1..10,1..6] of real;

begin x:=0;k:=0; w2:=sqrt(2); w3:=sqrt(3); c:=0.5*w2+1.5; xa:=0; k:=0;assign(f,’nullst.dat’); rewrite(f);

1: ys:=w2*cos(x)+w3*cos(w3*x); x:=x+abs(ys/c);2: y:=w2*sin(x)+sin(w3*x); ys:=w2*cos(x)+w3*cos(w3*x);

s:=sqr(ys)-4*c*y;if s<0 then begin h3:=-1; h4:=-1; end else

begin h3:=-0.5*(ys+sqrt(s))/c; h4:=-0.5*(ys-sqrt(s))/c; end;s:=sqr(ys)+4*c*y;if s<0 then begin h1:=-1; h2:=-1; end else

begin h1:=0.5*(ys+sqrt(s))/c; h2:=0.5*(ys-sqrt(s))/c; end;if h1>0 then h:=h1 else h:=999;if (h2>0) and (h2<h) then h:=h2;if (h3>0) and (h3<h) then h:=h3;if (h4>0) and (h4<h) then h:=h4;x:=x+h; if h>1.0E-06 then goto 2;inc(k); if k<11 then begin r[k,1]:=x; r[k,2]:=x-xa; end;if (k>10) and (k<21) then begin r[k-10,3]:=x; r[k-10,4]:=x-xa; end;if k>20 then begin r[k-20,5]:=x; r[k-20,6]:=x-xa; end;xa:=x; if k<30 then goto 1;

145

Page 146: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

for l:=1 to 10 dowriteln(f,l:3,r[l,1]:11:6,r[l,2]:9:6,l+10:3,r[l,3]:11:6,r[l,4]:9:6,

l+20:3,r[l,5]:11:6,r[l,6]:9:6); close(f);end.

Die nachstehende Tabelle enthält die ersten dreißig Nullstellen und die jeweilig Differenz zur vorigen Nullstelle. Manerkennt, daß diese Werte reichlich chaotisch streuen:

k xk xk − xk−1 k xk xk − xk−1 k xk xk − xk−1

1 2.455277 2.455277 11 34.505049 2.443838 21 66.574942 4.356544

2 6.804264 4.348987 12 36.975601 2.470552 22 69.010164 2.435222

3 9.229494 2.425229 13 41.313451 4.337850 23 71.501528 2.491364

4 11.781084 2.551590 14 43.735149 2.421698 24 78.241156 6.739627

5 16.044052 4.262968 15 46.353962 2.618813 25 81.046549 2.805394

6 18.462818 2.418766 16 47.319809 0.965847 26 82.459911 1.413362

7 22.764071 4.301253 17 50.550380 3.230572 27 85.056284 2.596373

8 25.275898 2.511827 18 52.970372 2.419991 28 87.478787 2.422503

9 27.706226 2.430328 19 57.295999 4.325627 29 91.820191 4.341404

10 32.061211 4.354986 20 62.218398 4.922399 30 94.286194 2.466003

Die nächste Tabelle gibt zwei weit auseinanderliegende Nullstellen und zwei eng benachbarte unter den ersten 250an:

k xk xk − xk−1

47 147.254655 -

48 156.499190 9.244535

172 561.756588 -

173 561.897873 0.141285

Anmerkung:

Die vorstehende Tabelle ist - bezogen auf ihren Anspruch - falsch. Sie enthält nicht alle Nullstellen! Die korrigierteVariante sieht so aus:

k xk xk − xk−1 k xk xk − xk−1 k xk xk − xk−1

1 2.455277 2.455277 11 34.505049 2.443838 21 59.781103 2.485105

2 6.804264 4.348987 12 36.975601 2.470552 22 62.218398 2.437295

3 9.229494 2.425229 13 41.313451 4.337850 23 66.574942 4.356544

4 11.781084 2.551590 14 43.735149 2.421698 24 69.010164 2.435222

5 16.044052 4.262968 15 46.353962 2.618813 25 71.501528 2.491364

6 18.462818 2.418766 16 47.319809 0.965847 26 75.821615 4.320087

7 22.764071 4.301253 17 47.830456 0.510647 27 78.241156 2.419541

8 25.275898 2.511827 18 50.550380 2.719924 28 81.046549 2.805394

9 27.706226 2.430328 19 52.970372 2.419991 29 81.308166 0.261616

10 32.061211 4.354986 20 57.295999 4.325627 30 82.459911 1.151745

Die Nullstellen x17, x21, x26 und x29 aus dieser Tabelle fehlen in der ersten.Grund für den Fehler war die Nichtbeachtung der Rundungseffekte. In der Theorie stimmte alles, praktisch kommt esaber in einigen Fällen vor, daß die ausgerechnete Veränderung h, um die x vergrößert wird, einerseits noch größer alsdie Schranke ist, bei der x als Nullstelle akzeptiert wird, andererseits aber wegen Rundungsfehler geringfügig zu großwird. Im Resultat liegt das errechnete x sehr genau in der Nullstelle, aber ein kleines bißchen oberhalb dieser. Damitist die Nullstelle faktisch ermittelt, sie wird aber wegen des im letzten Schritt zu großen h nicht als solche akzeptiertund es wird der nächste h-Schritt eingeleitet. Der führt aber zur nächsten Nullstelle und damit ist eine übersehen.Auswege:1. Man könnte mit doppelter Genauigkeit rechnen und die Fehlerschranke ε für die Akzeptanz der Nullstelle beibe-halten. Damit würde vermutlich das theoretisch unmögliche und nur durch Rundungsfehler verursachte Überspringender Nullstelle vermieden. Man landet dann vor der Nullstelle und macht noch einen Schritt, der ein sehr kleines hliefert, so daß die Nullstelle akzeptiert wird.2. Man kann die berechnete Schrittweite h anschließend noch etwas kürzen, z. B. indem man zu x nur 0.9h addiert.Dies ist die simpelste Variante. Sie vergrößert die Rechenzeit ein wenig. Mathematisch gesprochen: das Verfahren

146

Page 147: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

wird dadurch nur noch linear konvergent.3. In jedem Schritt berechnet man sowieso den Funktionswert y = f(x). Das läßt sich ausnutzen, um das Überspringeneiner Nullstelle zu registrieren. Man merkt sich den alten Funktionswert ya zum vorigen x. Wenn der neue Wert yein anderes Vorzeichen hat (y · ya < 0), so ist das neue x eine Nullstelle. Die Bedingung h < ε wird also um dieseBedingung ergänzt. Es resultiert das folgende Programm:

program Nullstellensuche;

label 1, 2, 3;var x,y,ys,c,h1,h2,h3,h4,h,s,w2,w3,xa,ya : real;.....

assign(f,’nullst.dat’); rewrite(f); ya:=0;1: ys:=w2*cos(x)+w3*cos(w3*x); x:=x+abs(ys/c);2: y:=w2*sin(x)+sin(w3*x); ys:=w2*cos(x)+w3*cos(w3*x);

if y*ya < 0 then goto 3;.....

x:=x+h; ya:=y; if h>1.0E-06 then goto 2;3: ya:=0; inc(k); if k<11 then begin r[k,1]:=x; r[k,2]:=x-xa; end;.....

Zu Beginn und nach jeder gefundenen Nullstelle wird ya = 0 gesetzt, so daß die Bedingung y · ya < 0 im nächstenSchritt nicht erfüllt ist, ansonsten würde das nächste berechnete x gleich wieder als Nullstelle angesehen, obwohl eskeine ist.

Der eingetretene Fehler war nicht geplant, aber lehrreich. Er zeigt sehr drastisch, wie Dreckeffekte den theoretischrichtigen Ablauf torpedieren können. Man beachte, daß dieser Fehler unter 30 Werten nur viermal auftrat und erstmalsbeim siebzehnten! Ein Testen des Programms durch peinliche Kontrolle der ersten zehn Werte hätte die Illusion einerkorrekten Arbeit vermittelt.

Ergänzung:

In der Diskussion dieser Aufgabe tauchte die Frage auf, wie sich das Programm im Falle mehrfacher Nullstellenverhält.Es soll zunächst die Frage nach der Existenz mehrfacher Nullstellen behandelt werden. Sei also x eine - zumindest -doppelte Nullstelle von f(x), dann gilt

f(x) =√

2 sinx+ sin√

3x = 0 und f ′(x) =√

2 cosx+√

3 cos√

3x = 0 .

Der zweite Summand wird auf die andere Seite gebracht und die entstandenen Gleichungen werden quadriert:

2 sin2 x = sin2√

3x und 2 cos2 x = 3 cos2√

3x .

Dieses Gleichungspaar wird addiert:

2 = 1 + 2 cos2√

3x =⇒ cos√

3x = ±√

2

2.

Dann gilt aber - mit einem Koeffizienten ν = ±1 auch

sin√

3x = ±ν√

2

2,

also√

2 sinx± ν√

2

2= 0 und

√2 cosx±

√2

2= 0 .

Diese beiden Gleichungen werden durch√

2 geteilt, der zweite Summand kommt nach rechts und man dividiert siedurcheinander. Es folgt

tanx = ν .

Folglich gelten die beiden Bedingungen:

tanx = ν =⇒ x =π

4+ kπ und cos

√3x = ±

√2

2=⇒

√3x =

π

4+ lπ .

Damit erhält man endgültig

√3 =

√3x

x=

π

4+ lπ

π

4+ kπ

=1 + 4l

1 + 4k,

147

Page 148: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

und diese Gleichung ist falsch, denn√

3 ist irrational. Also war die Rechnung von Anfang an unmöglich, folglich gibtes bei dieser Funktion keine doppelten oder mehrfachen Nullstellen.1. Anmerkung: Damit ist allerdings nichts ausgesagt über die Existenz von Extremwerten sehr nahe an der x-Achse,also von ’beinahe - doppelten’ Nullstellen.2. Anmerkung: Diese Rechnung ist zutiefst akademisch und nur sinnvoll, wenn man die Faktoren

√2 und

√3 wirklich

im Wortsinne nimmt. Ist man hingegen bereit, sie durch Näherungswerte - z. B. auf zwölf Kommastellen genau - zuersetzen, so wird diese Betrachtung hinfällig.3. Anmerkung: Billigen wir dieser Rechnung einen Sinn zu, so ergibt sich, daß ein abstrakter Fakt wie die Irrationa-lität von

√3 plötzlich von praktischen Nutzen ist.

Die Überlegungen ergeben, daß das dargestellte Programm bei Extremwerten sehr nahe an der Achse - also z. B.näher als der Rundungsfehler der Berechnung von f(x) - völlig hilflos wird. Ein denkbarer Ausweg wäre ein noch vielintelligenteres Programm, das kritische Stellen erkennt und in der Nähe solcher Probleme seine Rechengenauigkeit -d. h. die Stellenzahl seiner Arithmetik - selbständig erhöht, bis es die Situation mit Sicherheit ’begreift’, also genauerals die Rundungsfehler analysiert.Man bedenke auch, daß die Werte x, in denen f(x) vom Programm berechnet wird, diskret liegen, also nicht beliebigdicht ausfallen. Und diese Dichte nimmt mit wachsendem x ab. Setzen wir z. B. sechstellige dezimale Gleitkomma-zahlen voraus, so kommt nach 0.111 111 als nächster Wert eben 0.111 112 im Abstand von 0.000 001, dagegen folgtauf 111.111 sofort 111.112 im Abstand 0.001. Die halbwegs exakte Berechnung der Nullstellen von f(x) für großeWerte von x ist folglich in vielerlei Hinsicht problematisch.

148

Page 149: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 9

Literatur

Die betrachteten Verfahren sind - teilweise ergänzt und mit Variationen - in den gängigen Formelsammlungen mehroder weniger ausführlich beschrieben. Das einfache Nachschlagen der Formeln ist also sicher nicht das Problem.Ein altes, aber in vielerlei Hinsicht immer noch unübertroffenes Werk istR. W. Hamming: Numerical Methods for Scientists and Engineers, McGraw-Hill Book Company, Inc.,dessen Vorteile darauf beruhen, daß es von einem Mathematiker mit enormer Erfahrung sowohl im Rechnen als auchin der Kommunikation mit Praktikern geschrieben wurde. Neben nützlichen Kommentaren enthält es auch eine Reihewertvoller Tricks und Kniffe.

Die weiteren Bücher sind Angebote; die Reihenfolge bedeutet keinerlei Wertung. Man suche sich ggfs. dasjenigeheraus, in dem die interessierende Frage am besten abgehandelt ist:

• H. Schwetlick, H. Kretzschmar, Numerische Verfahren für Naturwissenschaftler und Ingenieure, Fach-buchverlag Leipzig

• J. Werner, Numerische Mathematik 1 + 2, Vieweg-Studium, Bd. 32, 33: Aufbaukurs Mathematik

• R. Mohr, Numerische Methoden in der Technik, Vieweg

• R. Plato, Numerische Mathematik kompakt, Vieweg

• G. Opfer, Numerische Mathematik für Anfänger, Vieweg

Zum Thema ’Berechnung elementarer und höherer Funktionen’ sei nochmals verwiesen auf- M. Abramowitz, I. A. Stegun Handbook of mathematical functions, Dover Publications, Inc.- Spravoqna Matematiqeska Biblioteka: Matematiqeski$i analizL. A. Lsternik, O. A. Qervonenkis, A. P. npol~ski$i:Vyqislenie lementarnyh funkci$i, FIZMATGIZ, Moskva, 1963

- Y. L. Luke, Mathematical functions and their approximations, Academic Press, Inc.

149

Page 150: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Kapitel 10

Bemerkungen zu den Fußnoten

Seite 11: Zumeist ja, aber beim Übergang von einer Basispotenz zur nächsten oder vorigen ist der Abstand verschie-den. So geht es beim beschriebenen Meßgerät ... 0.999 ... 1.00 ... 1.01 - der linke Abstand ist 0.001, der rechte 0.01.Seite 11: Dieser Wert ist intern exakt. 5.370000000E-02 und 5.370000000E+02 sehen nur im Dezimalsystem ähnlichaus!Seite 19: Naheliegenderweise nehme man dann drei Abschnitte mit den beiden Maxima im Innern, sofern sie ne-beneinander liegen. - Das Programm kann also nicht ganz primitiv geschrieben werden, vielmehr ist dieser Falleinzubauen.Es könnten jedoch auch m nebeneinanderliegende Werte gleich sein, m ≤ 11. (Bei m = 11 ist die Funktion abervermutlich konstant und die Maximumsuche witzlos.) Man muß also ein ziemlich verwickeltes Programm erstellen,wenn man es sicher machen will und nicht möchte, daß es in einer solchen Situation ratlos stehen bleibt.Eine solche Gleichheit ist in einem sinnvollen Problem unwahrscheinlich? Nach dem Murphyschen Gesetz wird eineUnannehmlichkeit, die eintreten kann, auch tatsächlich eintreten. Und vermutlich geschieht es genau dann, wenn dasResultat gerade besonders wichtig ist.Wenn es zwischen den beiden oder m gleichen Maximalwerten einen kleineren gibt (oder mehrere kleine bis hin zumehrfach getrennten Maxima, mein Gott, was alles möglich ist!), so kann man eine solche Spitze herausnehmen undnur sie weiter betrachten. Das Verfahren sucht sowieso prinzipiell nur ein lokales Maximum. Alternativ: Man analy-siert alle herausragenden Bereiche.Ängstliche Pessimisten oder sehr gründliche Menschen haben beim Programmieren dieses in seiner Idee sehr schlich-ten Verfahrens also eine Weile zu tun.Die folgende Modifikation der Idee umgeht all diese Probleme. Im Falle mehrerer lokaler Maxima liefert sie aber miterhöhter Wahrscheinlichkeit das linke oder eines der linken.Man startet mit der Schrittweite h = (b − a)/10 in x0 = a und vergleicht nacheinander die Funktionswerteyi = f(xi) = f(a+ ih) und yi+1 = f(xi+1). Falls yi+1 nicht größer ist als yi, so geht man zurück zu xi−1 (nicht nurzu xi, denn das könnte ja schon etwas hinter dem Maximum liegen), teilt h durch 10 und startet erneut. Das wirdwiederholt, bis h klein genug ist.Wenn man das allerdings so primitiv programmiert, wie es hier beschrieben ist, so erlebt man schon bei der Suchedes Maximums von f(x) = 1−

√x auf [0, 1] eine böse Überaschung.

Seite 20: Unterstellt, es werden immer zwei Intervalle mit dem gefundenen Maximum in der Mitte bewahrt, so redu-ziert sich das Gesamtintervall pro Schritt auf die Hälfte und es sind jeweils zwei neue Funktionswerte zu berechnen,denn der in der Mitte ist ja bereits bekannt.Formal aufgeschlüsselt ergibt das

√1/2 = 0.707 107 und das ist etwas besser.

Seite 29: In der Vorlesung sagte ich an dieser Stelle gern im oberflächlichen Tonfall: ’... hat mindestens eine Null-stelle, es können aber auch zwei, drei, vier usw. sein.’Wenn ein Student einwandte, daß zwei Nullstellen nicht möglich wären, so bekam er ein (verdientes) Lob fürs Mit-denken und wurde mit dem Beispiel f(x) = sinx · cos2 x auf [−1, 2] konfrontiert.- Aber die rechte Nullstelle ist doch eigentlich eine doppelte, also sind es mithin in Wirklichkeit drei!- Jaaa ... dann nehmen wir halt f(x) = sinx | cosx|.Und die auf [−1, 1] stetige Funktion

f(x) =

|x| · sin 1

x, x 6= 0 ,

0 , x = 0 .

ist zwar nur ein akademisches Beispiel, aber sie hat dort eine unendliche Anzahl von Nullstellen.Zuletzt: Bei f(x) = x [sinx+ | sinx|] ist auf [−4, 1] ist die Frage nach der Anzahl der Nullstellen überhaupt sinnlos.Also nochmals: Vorsicht! Die Welt ist komplizierter, als man zumeist vermutet.Seite 30: Man muß nicht auf diesen Fall testen. Bei der Prüfung yn · f(a0) < 0 (den rechten Faktor sollte man

150

Page 151: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

beibehalten) wird sich das Intervall dann trotzdem auf diese Nullstelle zusammenziehen.Aber man macht dann überflüssige Funktionswertberechnungen? - Falls diese nicht extrem aufwendig sind, so lohntsich ein spezieller Programmzweig nicht. Der Test yn = 0 kostet auch Rechenzeit und ist sicher nur äußerst seltenerfüllt.Seite 56: Auf keinem Fall!Die Berechnung einer Determinante mit mehr als 3 Reihen ist nach der Leibnizscher Formel oder dem allgemeinenEntwicklungsatz extrem uneffektiv. Man macht in beiden Fällen bei n Reihen in der Größenordnung von n! Opera-tionen. Es ist 10! ≈ 3.6 · 106. Eine in puncto Aufwand praktikable Berechnung kann im Rahmen des Gauß-Verfahrenserfolgen. Dies erfordert rund 103/3 Operationen, hier also rund 350.Für das komplette Lösen des linearen Systems braucht man aber n+ 1 Determinanten, während das Gauß-Verfahrenfür das System selbst diese Rechnung nur einmal macht.Im Falle von unendlich vielen Lösungen liefert das Gauß-Verfahren ein Angebot zur Einführung von Parametern, dieCramersche Regel ergibt nur einen Ausdruck der Form 0/0 (oder durch Rundungsfehler verdorbene Nullen).Zuletzt: Sie ist nur für Systeme mit quadratischer Matrix geeignet.Anmerkung: ’Das Gauss-Verfahren ist das universelle Verfahren zum Lösen beliebiger linearer Gleichungssysteme.’ -Wer ein Gartengrundstück erwirbt und sich für die anfallenden Arbeiten ein Schweizer Offizierstaschenmesser kauftwird bald merken, daß dies ein schlechter Ersatz für diverse Spezialwerkzeuge ist. So gibt es analog für lineareGleichungssysteme eine Vielzahl von Lösungsverfahren, die bei Matrizen mit besonderen Eigenschaften wesentlichgünstiger abschneiden - weniger Operationen machen, nicht so viele Rundungsfehler erzeugen ... .Seite 90: Beispielsweise dies: Man schreibt die festen Werte von a =

√0.5 und b =

√2 ins Programm. Nach der

Eingangskontrolle x > 0 wird x mit b verglichen. Ist es größer, so wird es in einer Laufanweisung insgesamt m maldurch 2 geteilt1, bis t = 2−m x < b gilt. Bei x < a wird analog mit 2 multipliziert bis 2m x > a wird. Dann hat man(mit dem fest eingespeicherten Wert ln 2) das Resultat lnx = ∓m ln 2 + ln t. Wie man den letzteren Wert behandeltist beschrieben.Diese Umrechnung macht evtl. viele Schritte? - Nun, vermutlich beziehen sich die meisten Aufrufe des Logarithmusauf moderate Zahlen und da wird die Schleife nicht so oft durchlaufen. Bei z. B. großen Zehnerpotenzen 10N mußman etwa N/ lg 2 ≈ 3.3N mal durch 2 teilen.Mit etwas Nachdenken kann man noch bessere Varianten finden.

1Bei früheren Computern dauerte eine Division wesentlich länger als eine Multiplikation. Da wäre niemand auf die Ideegekommen, durch 2 zu teilen, vielmehr hätte man mit 0.5 multipliziert.Ein derartiges Zeitverhalten könnte auch heute noch bei der einen oder anderen Arithmetikimplantation vorkommen.

151

Page 152: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

SachwortverzeichnisAitkensches ∆2-Verfahren 17, 29, 68Anfangswertproblem 110Äquidistante Stützstellen 94Arithmetisches Mittel 106Arkusfunktionen , Berechnung der 91Ausgleichsfunktion 106Auslöschung 14Bandstruktur 138Barriereverfahren 86Belegungsfunktion 101Bereich, zulässiger 79Blockmatrix 62Chaos 117Differentialgleichung- explizite 110, 122, 128- implizite 110, 128, 129- mit Differenzenverfahren 26, 137, 63- semiimplizite 122, 122, 129- steife 128

Differenz, erste (zweite) 17, 133Differenzenformeln- einseitige, 1. Ableitung 23- zentrale, 1. Ableitung 22- 2. Ableitung 25

Differenzengleichung 26Dominierende Hauptdiagonale 66Einbettung 74Einschließung 29, 32Einschrittverfahren 117Einzelschrittverfahren 65Erste Differenz 17Eulersches Polygonzugverfahren, vorwärts 117- rückwärts 128

Explizite Differentialgleichung 110Exponent 10Exponentialfunktion , Berechnung der 89Extrapolation 95, 75Extremum, lokales 79Fehlerabschätzung- Gesamtschrittverfahren 67- a priori, a posteriori 67

Fiktive Punkte 25, 138Fixpunkt 41Fixpunktiteration 41, 43, 138- für Systeme 68

Fourierkoeffizienten 103-reihe 103, 131

Gausssche Normalgleichung 60Gauss-Verfahren 56Gesamtschrittverfahren 65- Fehlerabschätzung 67

Gewichtsfunktion 101Gitterpunkt 26Gleichabständige Stützstellen 94Gleichung, quadratische 15Gleitkommazahl 10

Goldnener Schnitt 20- Verfahren vom 21

Gültige Ziffern 14Hauptdiagonale, dominierende 66, 98Heunsches Verfahren 119Heuristische Methode 84Horner-Schema 48Idealgleichungen 106Implizite Differentialgleichung 110Interpolation 92, 114- nach Newton 93- nach Lagrange 93

Intervallarithmetik 58Intervallhalbierung 29Iterationsverfahren 28- linear konvergentes 29- quadratisch konvergentes 29- superlinear konvergentes 29, 31

Knoten 92Kontraktion 41Konvergenzordnung 29Kubisch konvergentes Verfahren 39Linear konvergentes Verfahren 29Lineare Regression 106Linearer Trend 106Lorarithmus , Berechnung des 90Lokales Extremum 79Lösung, verallgemeinerte 59Mantisse 10Maschenpunkt 26Maschinengenauigkeit 11Matrix- Block- 62- mit Bandstruktur 138- schwach besetzt 26, 63, 138- sparse 26, 63- tridiagonal 138

Mittel, arithmetisches 106Moment 97Nachiteration 58Nebenbedingung 79, 86Newton-Verfahren 35- für Systeme 69- vereinfachtes 37, 71

Normalgleichung, Gausssche 60Nullkurve 52, 55Nullstellenaufgabe 28Optimierung- diskrete 80- stetige 80

Orthogonale Funktionen, - Polynome 102, 103Pivotwahl 56- in tridiagonalen Systemen 27, 138- totale 57- Spaltenpivotisierung 57- Zeilenpivotisierung 57

Polygonzugverfahren, Eulersches, vorwärts 117- rückwärts 128

152

Page 153: Prof. Dr. W. Rosenheinrich - web.eah-jena.deweb.eah-jena.de/~rsh/lehre/buecher/nub.pdf · 1.2 HinweisezurProgrammierung Angenommen,einIngenieurhatimRahmeneinerEntwicklungoderUntersuchungeinemehroderweniger

Punkte, fiktive 25Quadratische Gleichung 15Quadratisch konvergentes Verfahren 29, 35Randwertproblem 110Regression, lineare 106Regula falsi 30- vereinfachte 33

Restgliedbetrachtung 131Runge-Kutta-Formel, klassisch 120- allgemein 121- eingebettete 125

Schlupfvariablen 79Schrittweitensteuerung 123Sekantenverfahren 30- vereinfachtes 33

Selbstabbildung 41Simplex 85Skalarprodukt von Funktionen 102Skalierung eines Systems 57Spline, -funktion 96, 118Startwert 28, 36Strafverfahren 87Stützstelle 92- äquidistante, gleichabständige 94

Superlinear konvergentes Verfahren 29Tangentenverfahren 35Trend, linearer 106Winkelfunktionen , Berechnung der 91Vandermonde 92Verallgemeinerte Lösung 59Vieta, Satz von - 45, 52Vorzeichen 10Ziffern, gültige 14Zulässiger Bereich 79

153