Verlust der Bedeutung

Der Verlust der Bedeutung ist eine unerwünschte Wirkung in Berechnungen mit der Fließkommaarithmetik. Es kommt vor, wenn eine Operation auf zwei Zahlen Verhältnisfehler wesentlich mehr vergrößert, als es absoluten Fehler, zum Beispiel im Abziehen zwei großer und fast gleicher Anzahlen (bekannt als katastrophale Annullierung) vergrößert. Die Wirkung besteht darin, dass die Anzahl von genauen (bedeutenden) Ziffern im Ergebnis unannehmbar vermindert wird. Weisen, diese Wirkung zu vermeiden, werden in der numerischen Analyse studiert.

Das Phänomen kann mit Dezimalzahlen demonstriert werden.

Das folgende Beispiel demonstriert Verlust der Bedeutung für einen dezimalen Schwimmpunkt-Datentyp mit 10 positiven Ziffern:

Denken Sie die Dezimalzahl

0.1234567891234567890

Eine Schwimmpunkt-Darstellung dieser Zahl auf einer Maschine, die 10 Schwimmpunkt-Ziffern behält, würde sein

0.1234567891

der ziemlich nah ist — ist der Unterschied im Vergleich mit jeder der zwei Zahlen sehr klein.

Führen Sie jetzt die Berechnung durch

0.1234567891234567890  0.1234567890

Die Antwort, die zu 10 Ziffern genau ist, ist

0.0000000001234567890

Jedoch, auf der 10-stelligen Schwimmpunkt-Maschine, gibt die Berechnung nach

0.1234567891  0.1234567890 = 0.0000000001

Wohingegen die ursprünglichen Zahlen in allen ersten (bedeutendsten) 10 Ziffern genau sind, ist ihr Schwimmpunkt-Unterschied nur in seiner ersten Nichtnullziffer genau. Das beläuft sich auf den Verlust der Bedeutung.

Workarounds

Es ist möglich, Berechnung mit einer genauen Bruchdarstellung von rationalen Zahlen zu tun und alle positiven Ziffern zu behalten, aber das ist häufig untersagend langsamer als Fließkommaarithmetik. Außerdem verschiebt es gewöhnlich nur das Problem: Und wenn die Daten zu nur 10 Ziffern genau sind? Dieselbe Wirkung wird vorkommen.

Einer der wichtigsten Teile der numerischen Analyse soll vermeiden oder Verlust der Bedeutung in Berechnungen minimieren. Wenn das zu Grunde liegende Problem gut aufgestellt wird, sollte es einen stabilen Algorithmus geben, um es zu lösen. Die Kunst ist in der Entdeckung eines stabilen Algorithmus.

Verlust von bedeutenden Bit

Lassen Sie x und y positive normalisierte Schwimmpunkt-Zahlen sein.

In der Subtraktion x  y, r bedeutende Bit werden wo verloren

::

für einige positive ganze Zahlen p und q.

Instabilität der quadratischen Gleichung

Denken Sie zum Beispiel die ehrwürdige quadratische Gleichung.

Für die polynomische Gleichung,

die quadratische Gleichung gibt die zwei Lösungen als

:

Der Fall wird dienen, um das Problem zu illustrieren:

:

Wir haben

:

In der echten Arithmetik sind die Wurzeln

::

In der 10-stelligen Fließkommaarithmetik,

::

Bemerken Sie, dass die Lösung des größeren Umfangs zu zehn Ziffern genau ist, aber die erste Nichtnullziffer der Lösung des kleineren Umfangs ist falsch.

Wegen der Subtraktion, die in der quadratischen Gleichung vorkommt, setzt sie keinen stabilen Algorithmus ein, um die zwei Wurzeln zu berechnen.

Ein besserer Algorithmus

Ein besserer Algorithmus, um quadratische Gleichungen zu lösen, basiert auf zwei Beobachtungen: Diese eine Lösung ist immer genau, wenn der andere nicht ist, und dass gegeben eine Lösung des quadratischen, der andere leicht ist zu finden.

Wenn

:

& x_1 && = \frac {-b + \sqrt {b^2 - 4ac}} {2a} \qquad & \text {(1)} \\

\end {alignat} </Mathematik>

und:

& x_2 && = \frac {2c} {-b + \sqrt {b^2 - 4ac}} \qquad & \text {(2)} \\

\end {alignat} </Mathematik>

dann haben wir die Identität (eine von Vi%C3%A8te%27s Formeln für ein zweites Grad-Polynom)

:.

Die obengenannten Formeln (1) und (2) arbeiten vollkommen für eine quadratische Gleichung, deren Koeffizient 'b' negativ ist (b

& x_1 && = \frac {-b - \sqrt {b^2 - 4ac}} {2a} \qquad & \text {(3)} \\

\end {alignat} </Mathematik>und:

& x_2 && = \frac {2c} {-b - \sqrt {b^2 - 4ac}} \qquad & \text {(4)} \\

\end {alignat} </Mathematik>

In den obengenannten Formeln (3) und (4), wenn 'b' positiv ist, wandelt die Formel ihn zum negativen Wert um, weil - (+b)-b gleich ist. Jetzt, laut der Formeln '-b' wird durch die Quadratwurzel dessen abgezogen (b*b - 4ac) so grundsätzlich ist es eine Hinzufügungsoperation. In unserem Beispiel ist Koeffizient 'b' der quadratischen Gleichung positiv. Folglich müssen wir den zweiten Satz von Formeln d. h. Formel (3) und (4) verwenden.

Der Algorithmus ist wie folgt. Verwenden Sie die quadratische Formel, um die Lösung des größeren Umfangs zu finden, der unter dem Verlust der Präzision nicht leidet. Dann verwenden Sie diese Identität, um die andere Wurzel zu berechnen. Da keine Subtraktion beteiligt wird, kommt kein Verlust der Präzision vor.

Diesen Algorithmus auf unser Problem, und mit der 10-stelligen Fließkommaarithmetik anwendend, ist die Lösung des größeren Umfangs wie zuvor Die andere Lösung ist dann

:

der genau ist. Jedoch, dort bleibt eine weitere mögliche Quelle der Annullierung, wenn man rechnet, und tatsächlich kann das zu bis zu Hälfte von bedeutenden Zahlen führen, die verlieren werden: Dafür zu korrigieren, verlangt, um in der verlängerten Präzision zweimal der Präzision des Endresultats geschätzt zu werden (sieh quadratische Gleichung für Details).


Moskauer Theatergeisel-Krise / Hochland (Ratsgebiet)
Impressum & Datenschutz