Lerninhalte finden
Features
Entdecke
© StudySmarter 2024, all rights reserved.
Rundungsfehler und deren AuswirkungenRundungsfehler entstehen, wenn Zahlen bei der Darstellung oder Berechnung gerundet werden, da Computer nur eine begrenzte Anzahl von Dezimalstellen darstellen können.
float
und double
in Programmiersprachen).(a) Rundungsfehler und Fließkomma-Arithmetik:Erläutere, weshalb Rundungsfehler bei der Fließkomma-Arithmetik auftreten. Nutze hierfür die Begriffe Mantisse und Exponent sowie die darstellbare Genauigkeit. Rechne ein Beispiel durch, bei dem die Addition einer sehr kleinen Zahl zu einer großen Zahl zu einem Verlust signifikanter Stellen führt. Rechne das Beispiel mit einer Darstellung in begrenzter Genauigkeit (z.B. 3 Dezimalstellen) vor.
Lösung:
(a) Rundungsfehler und Fließkomma-Arithmetik:Rundungsfehler treten bei der Fließkomma-Arithmetik auf, da Computer nur eine begrenzte Anzahl von Dezimalstellen verwenden können, um Zahlen darzustellen. Fließkommazahlen werden in der Regel mit einer festen Anzahl von Bits gespeichert, die in zwei Hauptteile unterteilt sind: die Mantisse und den Exponenten.Die Mantisse bestimmt die Genauigkeit der Zahl, indem sie die wesentlichen Ziffern der Zahl speichert. Der Exponent gibt an, um wie viele Stellen die Mantisse verschoben werden muss (ähnlich wie bei der wissenschaftlichen Notation), um die tatsächliche Zahl zu erhalten.Die darstellbare Genauigkeit wird durch die Anzahl der Bits bestimmt, die für die Mantisse und den Exponenten verwendet werden. Bei begrenzter Genauigkeit können sehr kleine Zahlen, die zu großen Zahlen addiert werden, zu einem Verlust signifikanter Stellen führen. Dies liegt daran, dass die Genauigkeit der Mantisse durch den Exponenten verschoben wird und kleine Zahlen unterhalb dieser Genauigkeit abgeschnitten (gerundet) werden.Beispiel:Betrachten wir eine Darstellung mit begrenzter Genauigkeit von 3 Dezimalstellen.
(c) Fehleranalyse an einem Algorithmus:Wähle einen numerischen Algorithmus aus, bei dem die Kumulation von Rundungsfehlern eine signifikante Rolle spielt, und führe eine detaillierte Fehleranalyse durch. Diskutiere mögliche Methoden zur Fehlerreduzierung und zeige durch ein Beispiel, wie die Wahl eines geeigneten Algorithmus die Ungenauigkeiten minimieren kann.
Lösung:
(c) Fehleranalyse an einem Algorithmus:Ein numerischer Algorithmus, bei dem die Kumulation von Rundungsfehlern eine signifikante Rolle spielt, ist das Verfahren der numerischen Integration, insbesondere das Trapezverfahren. Dieses Verfahren wird verwendet, um näherungsweise den Wert eines bestimmten Integrals zu berechnen. Rundungsfehler können bei der Summation von sehr kleinen Werten auftreten, die sich über viele Iterationen kumulieren.Fehleranalyse:Betrachten wir das Trapezverfahren zur numerischen Integration einer Funktion \(f(x)\) über das Intervall \[a, b\] unterteilt in \(n\) gleich große Teilintervalle. Der Integrationsprozess ist wie folgt definiert:\[I \approx \frac{h}{2} \left[ f(a) + 2 \sum_{i=1}^{n-1} f(a+ih) + f(b) \right]\]Hierbei ist \(h = \frac{b-a}{n}\) die Breite der Teilintervalle.Da wir die Funktion an unterschiedlichen Punkten auswerten und die Ergebnisse aufsummieren, führt jeder Evaluations- und Summationsschritt zu Rundungsfehlern. Besonders bei einer großen Anzahl von Teilintervallen (großes \(n\)) können diese Fehler sich stark kumulieren.Beispiel:Numerische Integration von \(f(x) = e^x\) über das Intervall \[0, 1\] mit dem Trapezverfahren und \(n = 4\):1. Bestimmung der Breite der Teilintervalle:\[ h = \frac{1-0}{4} = 0.25 \]2. Evaluation der Funktion an den erforderlichen Punkten:\[ f(0) = 1 \]\[ f(0.25) = e^{0.25} \approx 1.284 \]\[ f(0.5) = e^{0.5} \approx 1.649 \]\[ f(0.75) = e^{0.75} \approx 2.117 \]\[ f(1) = e^{1} \approx 2.718 \]3. Anwendung der Summenformel gemäß Trapezregel:\[I \approx \frac{0.25}{2} \left[ f(0) + 2(f(0.25) + f(0.5) + f(0.75)) + f(1) \right]\]\[I \approx \frac{0.25}{2} \left[ 1 + 2(1.284 + 1.649 + 2.117) + 2.718 \right]\]\[I \approx \frac{0.125}{14.418}\]\[I \approx 1.78975\]Der exakte Wert des Integrals ist:\[\int_{0}^{1} e^x \mathrm{d}x \approx 1.71828\]Wir sehen, dass der numerische Wert eine Abweichung aufgrund kumulierter Rundungsfehler enthält.Methoden zur Fehlerreduzierung:1. Romberg-Integration:Diese Methode verwendet adaptive Schrittweitenkontrolle und höhere Ordnungen der Fehlerkorrektur, um die Genauigkeit der numerischen Integration zu erhöhen.2. Simpsonsche Regel:Diese Methode verwendet Parabeln statt linearer Approximation und kann daher präzisere Ergebnisse liefern.Beispiel für höhere Präzision durch Simpsonsche Regel:Betrachten wir erneut die Integration von \(f(x) = e^x\) über \[0, 1\] mit \ n = 4\ Teilintervalle:\[I \approx \frac{h}{3} \left[ f(0) + 4f(0.25) + 2f(0.5) + 4f(0.75) + f(1) \right]\]\[h = 0.25\]\[I \approx \frac{0.25}{3} \left[ 1 + 4(1.284) + 2(1.649) + 4(2.117) + 2.718 \right]\]\[I \approx 1.71886\]Im Vergleich zur Trapezregel (1.78975) bietet die Simpsonsche Regel eine wesentlich bessere Näherung an den exakten Wert 1.71828.Zusammenfassung:Numerische Integration kann anfällig für Rundungsfehler sein, die sich kumulieren. Methoden wie die Romberg-Integration und die Simpsonsche Regel können helfen, diese Fehler zu minimieren und präzisere Ergebnisse zu liefern.
Least-Squares-Approximation: Gegeben sei eine Datenmenge \((x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)\). Die Methode der kleinsten Quadrate wird verwendet, um ein lineares Modell \(y = mx + c\) an die gegebenen Datenpunkte anzupassen. Dies wird durch Minimierung der Summe der Quadrate der Abstände zwischen den Datenpunkten und dem Modell erreicht. Der Fehlerquadratsumme \(S(\boldsymbol{x}) = \boldsymbol{r}(\boldsymbol{x})^T \boldsymbol{r}(\boldsymbol{x})\) kann über die Normalengleichung \(\boldsymbol{A}^T \boldsymbol{A} \boldsymbol{x} = \boldsymbol{A}^T \boldsymbol{b}\) oder durch eine QR-Zerlegung (\boldsymbol{A} = \boldsymbol{Q} \boldsymbol{R}\) gelöst werden, wobei \boldsymbol{x} = (m, c)\ die zu bestimmenden Parameter sind.
In diesem Übungsblatt wirst Du numerische Methoden zur Lösung von gewöhnlichen Differentialgleichungen (ODEs) untersuchen. Du wirst das Euler-Verfahren und das Runge-Kutta-Verfahren verwenden, um eine Differentialgleichung numerisch zu lösen. Beachte dabei Stabilität, Genauigkeit und Fehlerabschätzung der Methoden. Gegeben sei die folgende Differentialgleichung: \[ y' = t y + t^3 \], mit dem Anfangswert \( y(0) = 1 \). Lösen
(a) Verwende das Euler-Verfahren mit einer Schrittweite von \( h = 0.1 \), um die numerische Lösung für die Differentialgleichung \( y' = t y + t^3 \) auf dem Intervall \([0, 1]\) zu berechnen. Bestimme die Werte von \( y_n \) für \( t_n = 0, 0.1, 0.2, ... 1.0 \).
Lösung:
In diesem Unterabschnitt werden wir das Euler-Verfahren mit einer Schrittweite von \(h = 0.1\) verwenden, um die numerische Lösung der Differentialgleichung \(y' = t y + t^3\) auf dem Intervall \([0, 1]\) zu berechnen. Wir müssen die Werte von \(y_n\) für \(t_n = 0, 0.1, 0.2, ... 1.0\) bestimmen.
y_{n+1} = y_n + h f(t_n, y_n), wobei f(t, y) = t y + t^3.
Berechnungen:
Zusammengefasst sind die berechneten Werte:
(b) Berechne die numerische Lösung der Differentialgleichung \( y' = t y + t^3 \) auf dem Intervall \([0, 1]\) mittels des Runge-Kutta-Verfahrens 4. Ordnung mit einer Schrittweite von \( h = 0.1 \). Bestimme die Werte von \( y_n \) für \( t_n = 0, 0.1, 0.2, ... 1.0 \).
Lösung:
In diesem Abschnitt werden wir die numerische Lösung der Differentialgleichung \(y' = t y + t^3\) auf dem Intervall \([0, 1]\) unter Verwendung des Runge-Kutta-Verfahrens 4. Ordnung mit einer Schrittweite von \(h = 0.1\) berechnen. Wir müssen die Werte von \(y_n\) für \(t_n = 0, 0.1, 0.2, \dots, 1.0\) bestimmen.
Das Runge-Kutta-Verfahren 4. Ordnung verwendet die folgenden Zwischenschritte:
Die Funktion \(f(t, y) = t y + t^3\).
Beginnen wir nun mit den Berechnungen:
Für die weiteren Werte führen wir die obigen Berechnungen schrittweise durch:
Die Berechnungen werden ebenso für die verbleibenden Punkte fortgesetzt:
Die Berechnungen werden ebenso für die verbleibenden Punkte fortgesetzt:
Zusammengefasst sind die berechneten Werte:
(c) Vergleiche die Ergebnisse aus den Teilen (a) und (b) und analysiere die Stabilität und Genauigkeit der beiden Methoden. Bestimme den absoluten Fehler für beide Methoden an den Punkten \( t_n = 0.5 \) und \( t_n = 1.0 \), indem Du die exakte Lösung der Differentialgleichung mit den entsprechenden numerischen Lösungen vergleichst.
Lösung:
In diesem Abschnitt werden wir die Ergebnisse aus den Teilen (a) und (b) vergleichen und die Stabilität sowie Genauigkeit der beiden Methoden analysieren. Wir bestimmen den absoluten Fehler für beide Methoden an den Punkten \(t_n = 0.5\) und \(t_n = 1.0\), indem wir die exakte Lösung der Differentialgleichung mit den entsprechenden numerischen Lösungen vergleichen.
Die exakte Lösung der Differentialgleichung \( y' = t y + t^3 \) mit dem Anfangswert \( y(0) = 1 \) zu finden, ist nicht trivial. Mit einer analytischen Lösung solltest Du folgendes erhalten:
Allerdings können wir einen Näherungswert erreichen, um unsere Rechnungen durchzuführen.
Ergebnisse aus Teil (a) - Euler-Verfahren:
Ergebnisse aus Teil (b) - Runge-Kutta-Verfahren 4. Ordnung:
Nehme die Näherungen der exakten Lösung für \(t = 0.5\) und \(t = 1.0\). Zum Zweck dieser Analyse verwenden wir die exakte Werte als:
Absolute Fehlerberechnung:
Für das Euler-Verfahren:
Für das Runge-Kutta-Verfahren 4. Ordnung:
Analyse und Vergleich:
Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.
Kostenloses Konto erstellenDu hast bereits ein Konto? Anmelden