Zusammenfassung
Um es vorweg zu nehmen, ungenaue numerische Resultate sind selten; zu selten, sich immer darum kümmern zu müssen, aber nicht selten genug, sie zu ignorieren.
Im folgenden sollen die Grenzen und Möglichkeiten von Gleitkommaarithmetik und von numerischen Verfahren untersucht und Eigenschaften und Fakten verdeutlicht werden, insbesondere anhand einiger Beispiele. Namentlich werden Algorithmen besprochen, die zwar nur Gleitkommaarithmetik nutzen, aber dennoch grundsätzlich nur korrekte Ergebnisse liefern.
Um auch das vorweg zu nehmen, korrekte Ergebnisse nicht-trivialer Probleme können mit Intervallarithmetik berechnet werden, auch wenn jene zuweilen immer noch in einem zweifelhaften Ruf steht. Hierauf wird öfter eingegangen, auch in einem eigenen Abschnitt 15.
Der Artikel wendet sich insbesondere an Mathematiker, die bisher eher peripher mit Numerik zu tun hatten. Ich hoffe auf Nachsicht, daß wenig mehr als mathematisches Abiturwissen durchaus genügt und verweise auf Rump (Acta Numer. 19, 287–449: 2010) für diejenigen, die mehr bzw. andere Mathematik hinzufügen möchten. Allein, ohne die hier explizierten Grundlagen wird man den tieferen Sinn der dort vorgestellten Verfahren kaum gründlich verstehen können.
Notes
Dadurch entfallen Über- und Unterlauf ohne essentielle Probleme auszuklammern.
Hier werden nützliche Dinge des Alltags zum Einheitspreis von 100 Yen (≈80 €-cent) angeboten.
„Intel inside“; bis auf die erwähnten Taschenrechner.
Der Unfall, der in [78] detailliert beschrieben wird, entstand durch ebensolches Unverständnis.
Bei den Simpsons [68] wird ein ähnliches Beispiel für Taschenrechner konstruiert.
Im angelsächsischen Raum diskriminiert man günstigerweise zwischen „precision“ und „accuracy“, der Rechen- und der Ergebnisgenauigkeit.
Man ersetzt in der Eigenzerlegung \(A=XDX^{T}\) einfach \(D\) durch \(D+E\) für diagonales \(E\).
Läßt man Perturbationen \(\|f\|\le \varepsilon \|b\|\) der rechten Seite zu, so kommt wg. \(\|A^{-1}f\|\le \varepsilon \|A^{-1}\|\cdot \|b\|\le \kappa \varepsilon \|x\|\) auf der rechten Seite von (5.3) ein Faktor 2 hinzu.
Besser zerlegt man \(A=QR\) in eine orthogonale Matrix \(Q\) und eine obere Dreiecksmatrix \(R\). Offenbar folgt \(\|Ax-b\|_{2}=\|Rx-Q^{T}b\|_{2}\), wobei die Gleichungen in \(Rx=Q^{T}b\) bequem durch Einsetzen der Reihe nach aufgelöst werden können (genau das macht der \(\backslash \)-Operator).
Mit (5.5) werden beide Nullstellen mit einem relativen Fehler kleiner \(\mathbf {u}\) angenähert.
Früher wurde \(1.01k\mathbf {u}\) benutzt, was zumindest für hinreichend kleines \(\mathbf {u}\) und \(k\) korrekt ist.
Der in [50] gelieferte Beweis ist natürlich korrekt.
Das gilt auch bei beschränktem Exponentenbereich, da es keinen Überlauf geben kann; im Unterlaufbereich ist die Addition und Subtraktion fehlerfrei.
Hierbei wird benutzt, daß \(i+j-1\in \mathbb {F}\) gilt, jedenfalls für praktische Werte von \(n\).
Mir sind schon mehrfach Aussagen des Kalibers „Ich weiß nicht, worum es bei Intervallrechnung genau geht, aber ich halte nichts davon“ begegnet.
Nach Wilkinson [80] dachte Turing bereits 1946 über eine Arithmetik mit Fehlerschranken und eine hierfür geeignete Hardware nach.
Auch „IGA“, Intervall Gauß-Algorithmus genannt.
Kritiker mögen einwenden, daß diese Dichotomie ja leicht zu erreichen ist, indem immer eine Fehlermeldung ausgegeben wird. Allein, das Ziel von Verifikationsmethoden ist, wie gesagt, die Kluft zwischen notwendig und hinreichend so gering wie möglich zu halten.
Für diesen Abschnitt sei Über- oder Unterlauf ausgeschlossen.
In [17] wird allerdings von Fehlern in Mathematica und Maple berichtet: Die Determinante ganzzahliger \(14\times 14\) Matrizen (alle Einträge betragsmäßig kleiner als 1000) wird falsch berechnet. Fehler passieren; das eigentlich Schlimme ist, daß der Fehler, obwohl bekannt, über mehrere Versionen nicht korrigiert wurde.
Tatsächlich schließt nicht \(f(1.79)\), sondern \(f(\text{fl}(1.79))\) ein; das ist für die Schlußfolgerung jedoch ohne Belang.
Die Primzahlen werden hier nur zur einfachen Angabe eines reproduzierbaren Beispiels verwandt.
Die Ausgabe ist so programmiert, daß die angezeigten Intervalle korrekte Einschließungen sind.
Literatur
Andrade, M.V.A., Comba, J.L.D., Stolfi, J.: Affine arithmetic. Presented at INTERVAL’94 (1994)
Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science, EATCS Series. Springer, Berlin (2004)
Bischof, C.H., Carle, A., Corliss, G., Griewank, A.: ADIFOR—Generating Derivative Codes from Fortran Programs. Technical report, Mathematics and Computer Science Devision, Argonne National Laboratory (1991)
Boldo, S.: Pitfalls of a full floating-point proof: example on the formal proof of the Veltkamp/Dekker algorithms. In: Proceedings of Automated Reasoning, IJCAR, Seattle, S. 52–66 (2006)
Bornemann, F.: Numerische lineare Algebra – Eine konzise Einführung mit MATLAB und Julia. Springer, Berlin (2016)
Bornemann, F.: The SIAM 100-digit challenge: a decade later. Jahresber. Dtsch. Mat.-Ver. (im Ersheinen) (2016). doi:10.1365/s13291-016-0137-2
Bornemann, F., Laurie, D., Wagon, S., Waldvogel, J.: The SIAM 100-Digit Challenge—A Study in High-Accuracy Numerical Computing. SIAM, Philadelphia (2004)
Bouissou, O., Goubault, E., Goubault-Larrecq, J., Putot, S.: A generalization of p-boxes to affine arithmetic. Computing 94(2–4), 180–201 (2012)
Breuer, B., McKenna, P.J., Plum, M.: Multiple solutions for a semilinear boundary value problem: a computational multiplicity proof. J. Differ. Equ. 195, 243–269 (2003)
Chandrasekaran, S., Ipsen, I.: Perturbation theory for the solution of systems of linear equations. Technical report YALEU/DCS/RR-866, Yale University, Dept. of Computer Science (October 1991)
Cole, F.N.: On the factoring of large numbers. Bull. Am. Math. Soc. 10, 134–137 (1903)
Conn, A.R., Gould, N.I.M., Lescrenier, M., Toint, Ph.L.: Performance of a multifrontal scheme for partially separable optimization. Technical report 88/4, Dept. of Mathematics, FUNDP (Namur, B) (1988)
Cuyt, A., Verdonk, B., Becuwe, S., Kuterna, P.: A remarkable example of catastrophic cancellation unraveled. Computing 66(3), 309–320 (2001)
Dekker, T.J.: A floating-point technique for extending the available precision. Numer. Math. 18, 224–242 (1971)
Demmel, J.B.: On floating point errors in Cholesky. LAPACK working note 14 CS-89-87, Department of Computer Science, University of Tennessee, Knoxville, TN, USA (1989)
Demmel, J.B., Henry, G., Kahan, W.: XBLAS: a draft proposal to the BLAS technical forum for extra precise BLAS (1997)
Durán, A.J., Pérez, M., Varona, J.L.: Misfortunes of a mathematicians’ trio using computer algebra systems: can we trust? Not. Am. Mat. Soc. 61(10), 1249–1252 (2014)
de Figueiredo, L.H., Stolfi, J.: Affine arithmetic: concepts and applications. Numer. Algorithms 37(1–4), 147–158 (2004)
Foster, L.V.: Gaussian elimination with partial pivoting can fail in practice. SIAM J. Matrix Anal. Appl. 14, 1354–1362 (1994)
Fousse, L., Hanrot, G., Lefèvre, V., Pélissier, P., Zimmermann, P.: MPFR: a multiple-precision binary floating-point library with correct rounding. Research report RR-5753, INRIA (2005). Code and documentation available at http://hal.inria.fr/inria-00000818
Gauß, C.F.: Theoria Motus Corporum Coelestium in Sectionibus Conicis Solem Ambientium (Theorie der Bewegung der Himmelskörper, die in Kegelschnitten die Sonne umlaufen). F. Perthes und I.H. Besser, Hamburg (1809)
Gidas, B., Ni, W., Nirenberg, L.: Symmetry and related problems via the maximum principle. Commun. Math. Phys. 68, 209–243 (1979)
Golub, G.H., Van Loan, Ch.: Matrix Computations, 4. Aufl. Johns Hopkins University Press, Baltimore (2013)
Griewank, A.: A mathematical view of automatic differentiation. In: Acta Numerica, Bd. 12, S. 321–398. Cambridge University Press, Cambridge (2003)
Griewank, A., Juedes, D., Mitev, H., Utke, J., Vogel, O., Walther, A.: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++. ACM Trans. Math. Softw. 22(2), 131–167 (1995)
Hales, T.C.: The Kepler conjecture. Manuscript (1998). http://www.math.lsa.umich.edu/~hales/countdown/
Hales, T.C.: A proof of the Kepler conjecture. Ann. Math. 162, 1063–1183 (2000)
Hales, T.C., Adams, M., Bauer, G., Dang, D.T., Harrison, J., Hoang, T.L., Kaliszyk, C., Magron, V., McLaughlin, S., Nguyen, T.T., Nguyen, T.Q., Nipkow, T., Obua, S., Pleso, J., Rute, J., Solovyev, A., Ta, A.H., Tran, T.N., Trieu, D.T., Urban, J., Vu, K.K., Zumkeller, R.: A formal proof of the Kepler conjecture. Manuscript (2015). http://arxiv.org/abs/1501.02155
Harrison, J.: Hol light: an overview. In: Theorem Proving in Higher Order Logics, LNCS, Bd. 5674, S. 60–66 (2009)
Higham, D.J., Higham, N.J.: Large growth factors in Gaussian elimination with pivoting. SIAM J. Matrix Anal. Appl. 10, 155–164 (1989)
Higham, N.J.: Accuracy and Stability of Numerical Algorithms, 2. Aufl. SIAM Publications, Philadelphia (2002)
Hotelling, H.: Some new methods in matrix calculation. Ann. Math. Stat. 14, 1–34 (1943)
ANSI/IEEE 754-1985: IEEE standard for binary floating-point arithmetic. New York, 1985
ANSI/IEEE 754-2008: IEEE standard for floating-point arithmetic. New York (2008)
Jansson, C., Chaykin, D., Keil, C.: Rigorous error bounds for the optimal value in semidefinite programming. SIAM J. Numer. Anal. 46(1), 180–200 (2007)
Jeannerod, C.-P., Rump, S.M.: Improved error bounds for inner products in floating-point arithmetic. SIAM J. Matrix Anal. Appl. 34(2), 338–344 (2013)
Kaplanski, I.: An Introduction to Differential Algebra, Illinois (1959) [Russian translation]
Kashiwagi, M.: Private communication
Kashiwagi, M.: An algorithm to reduce the number of dummy variables in affine arithmetic. In: SCAN Conference, Novosibirsk (2012)
Kernighan, B.W., Ritchie, D.M.: The C Programming Language. Prentice-Hall Software Series. Prentice Hall, New York (1988)
Knuth, D.E.: The Art of Computer Programming: Seminumerical Algorithms, Bd. 2, 3. Aufl. Addison Wesley, Reading (1998)
Loh, E., Walster, W.: Rump’s example revisited. Reliab. Comput. 8(3), 245–248 (2002)
Lohner, R.: Einschließung der Lösung gewöhnlicher Anfangs- und Randwertaufgaben und Anwendungen. PhD thesis, University of Karlsruhe (1988)
Maple: release 2015, reference manual (2015)
Markoff, J.: Flaw undermines accuracy of pentium chip. New York Times, November 23 (1994)
Mathematica: release 10.4, reference manual (2016)
MATLAB: user’s guide, version 2016a, The MathWorks Inc. (2016)
Moore, R.E.: Interval arithmetic and automatic error analysis in digital computing. Dissertation, Stanford University (1963)
Moore, R.E.: Interval Analysis. Prentice-Hall, Englewood Cliffs, N.J. (1966)
Muller, J.-M., Brisebarre, N., de Dinechin, F., Jeannerod, C.-P., Lefèvre, V., Melquiond, G., Revol, N., Stehlé, D., Torres, S.: Handbook of Floating-Point Arithmetic. Birkhäuser, Boston (2009)
Neumaier, A.: Rundungsfehleranalyse einiger Verfahren zur Summation endlicher Summen. Z. Angew. Math. Mech. 54, 39–51 (1974)
Neumann, J.v., Goldstine, H.H.: Numerical inverting of matrices of high order. Bull. Am. Math. Soc. 53, 1021–1099 (1947)
GNU octave: release 4.0.1, user’s guide (2016). http://www.gnu.org/software/octave/
Ogita, T., Rump, S.M., Oishi, S.: Accurate sum and dot product. SIAM J. Sci. Comput. 26(6), 1955–1988 (2005)
Payne, M., Hanek, R.: Radian reduction for trigonometric functions. SIGNUM Newsl. 18, 19–24 (1983)
Poljak, S., Rohn, J.: Radius of nonsingularity. No. 88-117, Universitas Carolina Pragensis (1988)
Risch, R.H.: The problem of integration in finite terms. Trans. Am. Math. Soc. 139, 167–189 (1969)
Rump, S.M.: Kleine Fehlerschranken bei Matrixproblemen. PhD thesis, Universität Karlsruhe (1980)
Rump, S.M.: INTLAB—INTerval LABoratory. In: Csendes, T. (Hrsg.) Developments in Reliable Computing, S. 77–104. Kluwer Academic, Dordrecht (1999)
Rump, S.M.: Inversion of extremely ill-conditioned matrices in floating-point. Jpn. J. Ind. Appl. Math. 26, 249–277 (2009)
Rump, S.M.: Verification methods: rigorous results using floating-point arithmetic. Acta Numer. 19, 287–449 (2010)
Rump, S.M.: Error estimation of floating-point summation and dot product. BIT Numer. Math. 52(1), 201–220 (2012)
Rump, S.M.: Accurate solution of dense linear systems. Part I. Algorithms in rounding to nearest. J. Comput. Appl. Math. 242, 157–184 (2013)
Rump, S.M., Jeannerod, C.-P.: Improved backward error bounds for Lu and Cholesky factorizations. SIAM J. Matrix Anal. Appl. 35(2), 684–698 (2014)
Sahinidis, N.V., Tawaralani, M.: A polyhedral branch-and-cut approach to global optimization. Math. Program., Ser. B 103, 225–249 (2005)
Schloemilch, O.: Handbuch der Mathematik, Erster Band: Elementarmathematik. Trewendt, Breslau (1881)
Shewchuk, J.R.: Adaptive precision floating-point arithmetic and fast robust geometric predicates. Discrete Comput. Geom. 18(3), 305–363 (1997)
Singh, S.: Homers formel. ZEIT Online 46, 14. November (2013)
Skeel, R.: Iterative refinement implies numerical stability for Gaussian elimination. Math. Comput. 35(151), 817–832 (1980)
Stewart, G.W., Sun, J.: Matrix Perturbation Theory. Academic Press, San Diego (1990)
Stoer, J.: Einführung in die Numerische Mathematik, I. Springer, New York (1999)
Stoer, J., Burlirsch, R.: Einführung in die Numerische Mathematik, II. Springer, New York (2005)
Strubecker, K.: Einführung in die Höhere Mathematik. Oldenbourg Verlag, München (1967)
Sunaga, T.: Geometry of numerals. Master’s thesis, University of Tokyo (February 1956)
Trefethen, L.N.: The SIAM 100-dollar, 100-digit challenge. SIAM Soc. Newsl. 35(6), 2 (2002)
Trefethen, L.N., Schreiber, R.: Average-case stability of Gaussian elimination. SIAM J. Matrix Anal. Appl. 11(3), 335–360 (1990)
Turing, A.M.: Rounding-off errors in matrix processes. Q. J. Mech. Appl. Math. 1, 287–308 (1948)
Patriot missile defense: software problem led to system failure at Dhahran, Saudi Arabia. Report GAO/IMTEC-92-26. Information Management and Technology Division, United States General Accounting Office, Washington, D.C. (February 1992). 16 pp.
Wilkinson, J.H.: Error analysis of floating-point computation. Numer. Math. 2, 319–340 (1960)
Wilkinson, J.H.: Modern error analysis. SIAM Rev. 13, 548–568 (1971)
Wilkinson, J.H.: Some comments from a numerical analyst [1970 Turing Lecture anläßlich der Verleihung des ACM Turing Awards (Ausarbeitung)]. J. ACM 18(2), 137–147 (1971)
Wright, S.J.: A collection of problems for which Gaussian elimination with partial pivoting is unstable. SIAM J. Sci. Comput. 14(1), 231–238 (1993)
XBLAS: a reference implementation for extended and mixed precision BLAS. http://crd.lbl.gov/~xiaoye/XBLAS/
Danksagung
Meinen herzlichen Dank an die Herren Bünger und Hanke-Bourgeois für ihre große Mühe und viele wertvolle Kommentare.
Author information
Authors and Affiliations
Corresponding author
Additional information
Unterstützt durch das JST CREST Projekt, das MEXT Super Global University Projekt und das MEXT Leading University Projekt, Waseda Universität, Tokio, Japan.
Rights and permissions
About this article
Cite this article
Rump, S.M. Gleitkommaarithmetik auf dem Prüfstand. Jahresber. Dtsch. Math. Ver. 118, 179–226 (2016). https://doi.org/10.1365/s13291-016-0138-1
Published:
Issue Date:
DOI: https://doi.org/10.1365/s13291-016-0138-1