Einführung in die Numerik
(Cindy Bönhardt)
Wichtigste Grundprobleme:
Fixpunktprobleme,
Lösung von Gleichungen / Gleichungssystemen, Interpolation, Quadratur,
Eigenwerte, Approximation, Auswertung von Integralen...
Zur Lösung eines konkreten Problems kann man oft zwischen mehreren Verfahren
wählen.
Hintergründe der Verfahren:
Im Gegensatz zur Analysis und
linearen Algebra, wo mathematische Probleme exakt behandelt werden, versucht
die Numerik, Zahlenwerte als Näherungslösungen zu finden.
Beispiel ( a , b reelle Zahlen, a nicht Null ) :
A * x = b
x = b / a
Die Numerik versucht, effiziente Verfahren mit akzeptablen Aufwand zu finden, mit Beachten des Einflusses des Rundungsfehlers. Das Verfahren muss robust gegen Ungenauigkeiten sein, die sich in Rechnungen dramatisch verstärken können, z.B.:
Diese
Situation nennt man „schlecht konditioniert".
Bessere Konditionierung durch simple Manipulation:
Es muss ein Verfahren gefunden werden, das gut konditioniert ist, um den Einfluss von Fehlern gering zu halten.
Fehleranalyse:
Man unterscheidet:
- Fehler in den Eingabedaten der Rechnung (Messwerte)
- Rundungsfehler
- Abbrechfehler: Viele Methoden liefern selbst bei rundungsfehlerfreier Rechnung die gewünschte Lösung in endlich vielen Schritten zwar beliebig genau, aber nie exakt. Deshalb muss man nach endlich vielen Schritten abbrechen:
Rechenhilfen:
- Analogrechner:
Rechenschieber, Planimeter,
elektronische Analogrechner
Zahlen werden durch physikalische Größen (Länge eines Stabes / Größe einer
Spannung) ersetzt, das mathematische Problem durch ein physikalisches ersetzt,
dessen Lösung in einem Experiment gemessen wird und so indirekt die Lösung
ergibt (=> Genauigkeit begrenzt)
- Tischrechenmaschinen / elektronische Digitalrechner:
Größere Genauigkeit erreicht man durch die Gleitpunktdarstellung der Zahlen. Man muss sich merken, an der wievielten Stelle nach der l. Ziffer der Darstellung der Punkt liegt. Die Lage des Punktes wird durch einen Exponenten angegeben:
x= a* 10 b , mit
| a | < l; b aus IN
also: 30,421 wird dargestellt als 0.30421 * 102
Exponent b und Mantisse a geben Lage des Dezimalpunktes an. In halblogarithmischer Schreibweise:
0,30421 10 2
In jeder Rechenanlage steht aber nur eine endliche feste Anzahl von Dezimalstellen für die Darstellung der Mantisse / des Exponenten zur Verfügung •=> Menge aller Zahlen, die in der Maschine exakt dargestellt werden können, heißt A und ist eine endliche Teilmenge von IR.; ihre Elemente heißen Maschinenzahlen
Wie kann man ein x aus IR, das nicht in A enthalten ist, durch eine Maschinenzahl rd(x) aus A approximieren?
Approximationsproblem:
Gesucht ist rd(x) mit: | x - rd(x)
| <= | x-g | , für alle g
aus A
So ein rd(x) erhält man durch Rundung:
rd(3,14159 10 0) =0,3142 10 l
rd( 0,142842 10 2) = 0,1428 10
2
Maschinengenauigkeit:
Geg.:
Maschine mit t - Dezimalstellen
Ges.: rd(x)
Dezimaldarstellung von | a | sei:
Dann bildet man:
d.h. man erhöht a um l, falls die
(t+1)-te Ziffer a >= 5 ist, und man schneidet nach der t- ten Ziffer ab.
Schließlich setzt man
Relativer Fehler von rd(x):
Algorithmus:
Wir wissen: a+b+c = (a+b)+c = a+(b+c)
Dies kann aber bei der
Gleitpunktdarstellung zu unterschiedlichen Resultaten führen. Deshalb ist es
aus numerischen Gründen wichtig, genau zwischen verschiedenen mathematischen
äquivalenten Formulierungen einer Rechenmethode zu unterscheiden: Als
Algorithmus bezeichnet man eine der Reihenfolge nach eindeutig festgelegte
Sequenz von endlich vielen „elementaren Operationen“, die vorschreibt, wie aus
gewissen Eingabedaten die Lösung eines Problems berechnet werden soll.
Ein Algorithmus ist eine eindeutige Rechenvorschrift zur Berechnung von realen
Funktionen, denn das Problem besteht darin, aus gewissen Zahlen x1,
..., xn endlich viele
Resultatdaten y1, ..., yn zu berechnen.
Unterschiedliche Resultate erhält man wegen der Fortpflanzung des
Rundungsfehlers. Dies ist das wichtigste Kriterium für die Beurteilung der
„Güte" eines Algorithmus.
Interpolation:
Gegeben ist eine Funktion
,
die von n + l Parametern (auch:
Basisvektoren) a0, ..., an abhängt. Ein
Interpolationsproblem für liegt dann vor, wenn die Parameter a0,
..., an so bestimmt werden sollen, dass für n + l gegebene Paare von
reellen oder komplexen Zahlen ( xi , fi.); i = 0, ..., n
; xi ungleich xk für i ungleich k, gilt:
Die Paare ( xi , fi.)
werden als Stützpunkte bezeichnet. Ein lineares
Interpolationsproblem liegt vor, wenn linear von den Parametern abhängt:
Dazu gehört das Problem der Interpolation durch Polynome:
und der trigonometrischen Interpolation:
Früher wurde Polynominterpolation
verwendet, um Formeln für die numerische Integration von Funktionen abzuleiten.
Nun benutzt man sie zur Gewinnung von Algorithmen, um die Konvergenz gewisser
Folgen zu beschleunigen. Trigonometrische Interpolation dient der numerischen
Fourieranalyse von Messreihen. „Spline-Interpolation“ gehört auch zu den
linearen Interpolationsproblemen, bei der Funktionen benutzt werden, die
1. 2mal stetig differenzierbar sind für x aus [x0 ; xn ]
2. in jedem Teilintervall [xi
; xi+1 ] mit einem Polynom 3. Grades übereinstimmen
Dabei ist vorausgesetzt, dass die Interpolationsabszissen xi , i =
0,....n reelle Zahlen sind mit x0 < x1 <
... < xn . Sie wird verwendet zur zeichnerischen
Darstellung von Kurven, die „möglichst glatt“ durch vorgegebene Punkte ( xi
, fi.) gehen sollen. Zu
nichtlinearen Interpolationsproblemen gehören die Interpolation durch rationale
Funktionen:
und durch Expotentialsummen:
Rationale Interpolation verwendet man für konvergenzbeschleunigende Algorithmen. Die Expotentialsummen - Interpolation ist wichtig für die Analyse von Zerfallsreihen in der Physik und der Chemie.
Beispiel
für Polynominterpolation:
Interpolationsformel von Lagrange:
Diese Formel zeigt, dass P linear
von den Stützwerten fi. abhängt. Für praktische Rechnungen weniger
geeignet, falls n größere Zahlen annimmt.
Beispiel: n = 2
Geg.:
Ges.: P(2)
Lösung:
P(2) = l * L0 (2) + 3 * L1
(2) + 2 * L2 (2) = l * (-1/3) +3*1+2*1/3 = 10/3
Numerische Integration:
Unter numerischer Integration
versteht man die approximative Auswertung von Integralen, besonders
vom Typ:
Wobei im zweiten Fall R ein mehrdimensionaler Bereich und entsprechend x ein Vektor und dx Abkürzung für dx1 , dx2., ... ist.
Integration braucht man, weil auch bei einfachen Funktionen das Integral nicht zu berechnen ist, da man die Stammfunktion nicht aufsuchen kann, z.B. f(x) = l / ( xex ) oder f(x) = sin (x/ sqrt(x)) Oft ist auch f in geschlossener Form nicht bekannt, weil f durch Messungen ermittelt wurde, z. B. wenn man die Durchflussmenge M pro Zeiteinheit eines Flusses an einer bestimmten Stelle ermitteln will, so wird der Flussquerschnitt Q mit Hilfe von Messungen ermittelt.
Allgemein erhält man für alle natürlichen Zahlen n zur näherungsweisen Berechnung von Integrationsformeln der Art
die sogenannten Newton-Cotes-Formeln. Die „Gewichte" ai , i = 0,1,...n liegen tabelliert vor. Es sind rationale Zahlen mit der Eigenschaft
Dabei bleibt aber ein Approximationsfehler erhalten.
Approximation:
Problem: f(x) = x5 + x3 – 10-20 = 0
Die Lösung muss 0 < x* << l erfüllen, so dass man x5 gegenüber x3 vernachlässigen kann.
Angenäherte Gleichung: x3 = 10-20
Erste grobe Abschätzung: x*=10-20 / 3 = 2,5* 10-7
Genauerer Weg: Newton - Verfahren
Konstruktion einer konvergenten Zahlenfolge, deren
Grenzwert die Lösung ist.
Voraussetzungen:
f: IR -> IR stetig
differenzierbar
x* Lösung für f(x) = 0
f(x*) ungleich 0
Dann existiert eine Umgebung U(x*) von x*, so dass die rekursiv definierte Folge
(iteratives
Verfahren)
für jeden Startwert x aus U(x*) gegen die Lösung
x* geht.
Wahl für Beispiel von oben, in der Nähe der Lösung, also etwa x = 0,3
=>
x0 = 0,3
x1 = 0,2052
x10 = 5,496*
10
x40 = 2,154*
10
Die einzige Frage ist, wann
man aufhört zu iterieren, und wie groß der verbleibende Fehler | x - x* | ist.