11 KiB
Höhere Mathematik
Inhalt
Einführung
Einsatzgebiet
- Annähern komplexer Formeln in endlicher Zeit
- Berechnung von Algorithmen durch Computer
- Algorithmen ohne expliziter Lösungsdarstellung
- Alternative Lösungsvorgänge für höhere Performance
Arten von Lösungen
- Direkte Verfahren - Exakte Lösung nach endlicher Zeit
- Näherungsverfahren - Approximation nach begrenzter Anzahl Rechenschritte
Verbindung zur Informatik
- Effiziente Berechnung numerischer Algorithmen
- Speicherung und Darstellung von Zahlen
- Computergrafik & Bildverarbeitung
- Neuronale Netze
Typische Fragestellungen
- Wie wirkt sich die Beschränkung der Anzahl Bits für Zahlenformate auf Rechenergebnisse und Rechengenauigkeit aus?
- Numerische Lösung von Nullstellenproblemen
- Numerische Integration
Rechnerarithmetik
Maschinenzahl
Maschinenzahlen werden als Zahlen x
in folgender Form dargestellt:
x = m \cdot B^e
x
: Die zu repräsentierende Zahlm
: Die Mantisse (der darstellbare Zahlenwert)B
: Die Basis der zu repräsentierenden Zahle
: Der Exponent (der Stellenwert der Mantissem
)
Beispiel:
1337 = 0.1337 * 10^4
Maschinenzahlen sind normalisiert, wenn
- für die Mantisse
m
0.1 <= |m| < 1.0
zutrifft
Maschinenzahlen werden normalisiert, damit es zu jedem Wert eine eindeutige Darstellung als Maschinenzahl gibt.
Grenzen von Maschinenzahlen
x_{max} = B^{e_{max}} - B^{e_{max}-n} = (1 - B^{-n}) \cdot B^{e_{max}}
x_min = B^{e_{min} - 1}
Datentypen gem. IEEE
float
oder single
: 32 Bit - 1 Bit für Vorzeichen, 23 Bit für Mantisse m
, 8 Bit für Exponent e
double
: 64 Bit - 1 Bit für Vorzeichen, 52 für Mantisse m
, 11 Bit für Exponent e
Rundungsfehler und Maschinengenauigkeit
Absoluter Fehler:
|\tilde{x} - x|
Relativer Fehler:
\frac{|\tilde{x} - x|}{|x|}
Maximaler absoluter Rundungsfehler:
\frac{B}{2} \cdot B^{e - n - 1}
Maschinengenauigkeit oder maximaler relativer Rundungsfehler:
\frac{1}{2} \cdot B^{1 - n}
Fehlerfortpflanzung bei Funktionsauswertung:
Relativ:
\frac{f'(x) \cdot x}{f(x)} \cdot \frac{\tilde{x} - x}{x}
Absolut:
|f'(x)| \cdot |\tilde{x} - x|
B
: Die Basis der Maschinenzahle
: Der Exponent der Maschinenzahl (Standard-Wert:0
)n
: Die Anzahl Stellen der Mantissem
x
: Der darzustellende Wert\tilde{x}
: Die Annäherung/Approximation anx
f
: Auszuwertende Funktion
Konditionszahl
Die Konditionszahl gibt an, wie gross der potenzielle relative Fehler einer numerischen Lösung ist.
Eine niedrige Konditionszahl (K \le 1
) bedeutet einen niedrigen Fehler, eine hohe Konditionszahl ein grosses Fehlerrisiko.
Formel:
Konditionszahl:
K = \frac{|f'(x)| \cdot |x|}{|f(x)|}
Nullstellenprobleme
Problemstellung und Ansatz
Es wird der korrekte Wert x
für eine Aufgabe gesucht.
- Aufgabe ausformulieren:
x = \sqrt{A}
- Aufgabe zu Nullstellenproblem umformulieren (Funktion, die bei gesuchtem
x
immer0
ergibt):f(x) = x^2 - A
- (Algorithmisch) richtiges
x
finden, bei dem die Funktion0
ergibt - Das gefundene
x
ist die Lösung
Note:
Als Ausgangsbedingung für eine numerische Lösung eines Nullstellenproblems können diverse Bedingungen verwendet werden wie etwa:
- Eine bestimmte Anzahl Iterationen
- Abstand zwischen
x_n
undx_{n + 1}
unterschreitet Threshold (approximiertes Resultat)
- Ein niedriger Threshold ergibt ein genaueres Resultat
- Ein Threshold von
0
ergibt das genaue Resultat
Fixpunktiteration
Ein möglicher Ansatz für ein solches Problem ist eine Fixpunktiteration.
Der Vorgang für eine solche ist folgende:
- Die Funktion in die Form
F(x) = x
.
Beispiel fürf(x) = x^2 - A
:
F(x) = \sqrt{A}
- Beliebigen Wert für
x_0
wählen (vorzugsweise Wert in Nähe von erwarteter Lösung) - Fixpunktiteration
x_{n + 1}
berechnen:
x_{n+1} = F(x_n)
Dies wird durchgeführt bis die Ausgangsbedingung erfüllt ist.
Code-Beispiel:
import math
threshold = 10 ** -6
def f(x): # Funktion f in Nullstellenform
return math.cos(x) - x
def F(x): # Funktion f in Fixpunktform
return math.cos(x)
def F_(x): # Die Ableitung F'(x)
return return -math.sin(x)
x = 0.75 # Startwert - angenommene, etwaige Lösung
if F_(x) >= 1:
print("Fehler: Fixpunktiteration divergiert!")
else:
while math.abs(x - F(x)) >= threshold:
x = F(x)
print(f"Approximierte Lösung: {x}")
Konvergenz
Eine Fixpunktiteration is konvergent (also berechenbar), wenn folgendes zutrifft:
|F'(\tilde{x})| < 1
Divergenz
Eine Fixpunktiteration is divergent (also unberechenbar), wenn folgendes zutrifft:
|F'(\tilde{x})| \ge 1
F(x)
: Die FixpunktgleichungF'(x)
: Die Ableitung der Fixpunktgleichungx
: Das genaue Resultat fürx
\tilde{x}
: Das approximierte Resultat fürx
(Fixpunkt)x_n
: Die $n$-te Approximation fürx
Banachscher Fixpunktsatz
Der Fixpunktsatz dient dazu, abzuschätzen, wie gross der Fehler des Ergebnisses einer Fixpunktiteration in etwa ist.
Fixpunktsatz:
|F(x) - F(y)| \le \alpha \cdot |x - y| \text{für alle }x,y \in [a, b]
Alternative Umformung:
\frac{|F(x) - F(y)|}{|x - y|} \le \alpha
Fehlerabschätzung:
a-priori Abschätzung:
|x_n - \tilde{x}| \le \frac{\alpha^n}{1 - \alpha} \cdot |x_1 - x_0|
a-posteriori Abschätzung:
|x_n - \tilde{x}| \le \frac{\alpha}{1 - \alpha} \cdot |x_n - x_{n - 1}|
Konstante \alpha
:
\alpha = \max_{x_0 \in [a, b]}| F'(x_0)|
\alpha \approx |F'(\tilde{x})|
Folgendermassen kann dieser aufgestellt werden:
Note:
In dieser Passage wird sowohla
(der Buchstabe "a") als auch\alpha
(Alpha) verwendet. Diese haben hier eine unterschiedliche Bedeutung.
- Start- und Endpunkt
a
undb
auswählen, welche genau einen Fixpunkt\tilde{x}
beinhalten - Prüfen, ob folgendes Zutrifft: Alle Ergebnisse von
F([a, b])
befinden sich im Intervall[a, b]
- Konstante
\alpha
berechnen (gem. Formel) - Die a-priori und die a-posteriori Abschätzung kann nun beliebig angewendet werden. Hierbei wird für
x_0
der Werta
verwendet.
Newton-Verfahren
Das Newton-Verfahren erreicht die Konvergenz (d.h. das (approximierte) Resultat) um einiges schneller.
Hierfür wird die Funktion f
in der Nullstellenform benötigt (f(x) = \text{[...]} = 0
).
Newton-Verfahren:
x_{n + 1} = x_n - \frac{f(x_n)}{f'(x_n)}
Vereinfachtes Newton-Verfahren:
x_{n + 1} = x_n - \frac{f(x_n)}{f'(x_0)}
Konvergenz-Kontrolle:
\left|\frac{f(x) \cdot f''(x)}{(f'(x))^2}\right| < 1
Das Ergebnis ist wahr, wenn mit dem gewählten x
eine Konvergenz erreicht werden kann.
- Startpunkt
x_0
in der Nähe einer Nullstelle wählen - (Wahlweise vereinfachtes) Newton-Verfahren anwenden bis
x_n
undx_{n + 1}
bis Ausgangsbedingung erreicht wird
Sekantenverfahren
x_{n + 1} = x_n - \frac{x_n - x_{n - 1}}{f(x_n) - f(x_{n - 1})} \cdot f(x_n)
Vorgang:
- Startpunkte
x_0
undx_1
wählen (Punkte, die eine Nullstelle umschliessen) - Iteration durchführen, bis Ausgangsbedingung erfüllt wird
Konvergenz-Ordnung
Ein Verfahren hat eine Konvergenz-Ordnung q \ge 1
, wenn es eine Konstante c > 0
für die für alle n
Iterations-Schritte gilt:
|x_{n + 1} - \tilde{x}| \le c \cdot |x_n - \tilde{x}|^q
c
: Beliebige Konstanteq
: Konvergenz-Ordnung- Für Newton-Verfahren:
q = 2
- Für vereinfachtes Newton-Verfahren:
q = 1
- Für Sekanten-Verfahren:
1 = (1 + \sqrt{5}) : 2 \approx 1.618
- Für Newton-Verfahren:
Fehlerabschätzung
Wenn folgendes zutrifft:
f(x_n - \varepsilon) \cdot f(x_n + \varepsilon) < 0
Schneidet f
zwischen x_n - \varepsilon
und x_n + \varepsilon
die Nullstelle.
Deswegen gilt folgendes:
|x_n - \xi| < \varepsilon
Sprich: Der Fehler ist kleiner als \varepsilon
.
Vorgang:
\varepsilon
suchen, für die oben genannte Bedingung zutrifft- Der maximale Fehler ist
\varepsilon
x_n
: Der approximierte $x$-Wert nach der $n$-ten Iteration\varepsilon
: Der maximale Fehler\xi
: Der Schnittpunkt der Nullstelle
Formelbuchstaben zu Nullstellenproblem
\alpha
: Lipschitz-Konstante[a, b]
: DerF(x)
: Die FixpunktgleichungF'(x)
: Die Ableitung der Fixpunktgleichungx
undy
: Beliebig gewählte Punkte im Interval[a,b]
\tilde{x}
: Das approximierte Resultat fürx
(Fixpunkt)x_n
Die $n$-te Approximation vonx
Formelbuchstaben
\alpha
: Lipschitz-Konstante (siehe Fixpunktsatz)[a,b]
: Das Untersuchungs-Interval für den Banachschen FixpunktsatzB
: Basis der Maschinenzahle
: Exponent der MaschinenzahlK
: Konditionszahlm
: Mantisse (Darstellbarer Bereich der Maschinenzahl)n
: Anzahl möglicher Stellen der Mantissem
q
: Konvergenz-Ordnungx
: Darzustellender Wertx_n
: Die $n$-te Approximation vonx
\tilde{x}
: Approximation/Annäherung anx