Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler 1. Einführung Die numerische Mathematik, kurz Numerik genannt, beschäftigt sich als Teilgebiet der Mathematik mit der Konstruktion und Analyse von Algorithmen für technisch-naturwissenschaftliche Probleme. aus: Wikipedia Schon in der Antike wurden Probleme behandelt, die nur näherungsweise gelöst werden konnten, wie die Abschätzung der Kreiszahl π mit Hilfe der Kantenlänge von ein- und umschriebene Vielecke durch Archimedes (287 – 212 v. Chr.). 1. Einführung 1 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Viele numerische Verfahren wurden entwickelt, um theoretische Ansätze praktisch nutzen zu können, z. B. der von Johann Carl Friedrich Gauß (17771855) entwickelte Algorithmus zur Lösung linearer Gleichungssysteme oder die Gauß‘schen Quadraturformeln (numerische Integrationsverfahren) . Bis in die Neuzeit war die Anwendung dieser Verfahren ein mühsames Geschäft und nur Spezialisten vorbehalten, z. B. das Lösen von Gleichungen mit mehreren Hundert Unbekannten nur mit Hilfe von Papier und Bleistift oder später mit Unterstützung einfacher mechanischer Rechenmaschinen. Im Zeitalter der Computer-Technik haben jedoch numerische Verfahren dramatisch an Bedeutung gewonnen. Heutzutage sind numerische Verfahren, in jedem technischen oder wissenschaftlichen Bereich präsent, beispielsweise • • • • Crashsimulationen Strömungs- und Temperaturfeldberechnung Wetter- und Klimamodelle Operation Research usw. 1. Einführung 2 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Andere Themen der Numerik sind das Suchen numerischer Lösungen von • • • • • gewöhnlichen und partiellen Differentialgleichungen, Integralgleichungen, Approximationsproblemen für Funktionen, Kurven und Flächen Eigenwert- und Verzweigungsproblemen sowie Lineare und nichtlineare Optimierungsaufgaben Trotz dieser unterschiedlichen Anwendungsgebiete treten in der Numerik immer wieder ähnliche mathematische und algorithmische Probleme auf: • Berechnung von Nullstellen, • Lösung linearer Gleichungssysteme, • Polynominterpolation und Regression • Trigonometrische Approximation (Fourieranalyse) Die Vorlesung befasst sich vor allem diesen elementaren Bausteinen der Numerik, deren Ursprünge meist noch in der Vor-Computer-Zeit liegen. 1. Einführung 3 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler 1.1 Fehleranalyse Zur numerischen Lösung eines Problems der Praxis gehört unbedingt auch eine Information über den dabei gemachten Fehler, um das Resultat richtig einschätzen zu können. Der Gesamtfehler setzt sich zusammen aus den “Modellfehlern”: • Idealisierungsfehler: Zur Beschreibung eines physikalischen Sachverhalts wird ein mathematisches Modell gebildet. Bei der mathematischen Formulierung müssen Vereinfachungen (z.B. Linearisierungen) vorgenommen werden. • Datenfehler: Die Daten eines mathematischen Modells (z.B. Koeffizienten einer Differentialgleichung) sind aufgrund ungenauer Kenntnis von Materialeigenschaften notwendig mit Fehlern behaftet. Modellfehler sind zwar grundsätzlich vermeidbar, stellen aber in der Praxis meist die größten Unsicherheiten dar. Man versucht, den Einfluss von Modellfehlern durch Grenzwertbetrachtungen oder Szenarien abzuschätzen. 1. Einführung 4 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler und den “Numerischen Fehlern“: • Diskretisierungsfehler: Kontinuierliche Prozesse werden durch endliche ersetzt • Abbruchfehler: Unendliche Algorithmen werden nach endlich vielen Schritten abgebrochen • Rundungsfehler: Auf der Rechenanlage müssen alle Rechnungen auf einem endlichen Zahlbereich durchgeführt werden Numerische Fehler sind unvermeidbar, da nur mit endlicher Genauigkeit und einer endlichen Anzahl von Schritten gerechnet werden kann. Die numerische Lösung eines mathematischen Modells stellt somit nur mehr oder weniger gute Näherung der Wirklichkeit dar. Die Genauigkeit eines Modells wird durch alle Fehlerquellen beeinflusst. Eine numerische Lösung sollte daher nach Möglichkeit mit einer Fehlerabschätzung versehen sein. 1. Einführung 5 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler 1.2 Fehlergrößen Ein numerisches Verfahren liefert i. allg. anstelle der gesuchten Lösung x eine Näherung x . Der Differenzbetrag ∆ = x−x ≤ ρ wird als absoluter Fehler mit der Fehlerschranke ρ bezeichnet. Der absolute Fehler sagt wenig über die Güte der Berechnung aus, z. B. mag ein Fehler von ±100 km beim Messen der Entfernung Erde-Mond als “klein” angesehen werden, während derselbe Fehler bezogen auf die Entfernung HeidelbergParis sicherlich als “groß” anzusehen ist. Eine bessere Aussagekraft besitzt der relative Fehler δ= x−x ≤ε x mit der relativen Fehlerschranke ε. Der relative Fehler ist dimensionslos. 1. Einführung 6 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler 1.3 Darstellung von Zahlen Jede Zahl z∈IR kann bezüglich einer Basis b∈IN durch eine Folge von Ziffern dargestellt werden z = ± (an b n + an −1b n −1 + ... + a1b1 + a0b 0 + m1b −1 + m2b −2 + ...) mit den Koeffizienten ak, mk ∈{0, 1, ... , bn-1). Unter Verwendung von Summenzeichen lässt sich kürzer schreiben ∞ n k z = ± ∑ ak b + ∑ mk b − k k =1 k =0 Wird zwischen a0 und m1 ein Komma gesetzt, ist der Exponent der Basis durch seine Position im Klammerausdruck festgelegt. Somit lässt sich jede Zahl auch unter Weglassung der Basis eindeutig angeben: z = ± an an −1 ... a1a0 , m1m2 ... wobei n+1 die Anzahl der Vorkommastellen ak wiedergibt und mk die Nachkommastellen sind. 1. Einführung 7 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Als Basis b eines Zahlensystems kann jede beliebige natürliche Zahl verwendet werden. Die heute am meisten verwendeten Zahlensysteme sind • Binärsystem (b=2) • Oktalsystem (b=8) • Dezimalsystem (b=10) • Hexadezimalsystem (b=16) Beispiel: Zahlensysteme 2 1 0 Dezimalsystem: z = 824 = 8 ⋅10 + 2 ⋅10 + 4 ⋅10 z = 13,108 = 1 ⋅101 + 3 ⋅100 + 1⋅10 −1 + 0 ⋅10 −2 + 8 ⋅10 −3 Binärsystem: z = 1101 = 1 ⋅ 23 + 1⋅ 2 2 + 0 ⋅ 21 + 1⋅ 20 = 1 ⋅ 8 + 1 ⋅ 4 + 0 ⋅ 2 + 1 ⋅1 = 13 Hexadezimalsystem: 1. Einführung (dezimal) z = 5 A9 F = 5 ⋅163 + A ⋅16 2 + 9 ⋅161 + F ⋅16 0 = 5 ⋅ 4096 + 10 ⋅ 256 + 9 ⋅16 + 15 ⋅1 = 23199 (dezimal) 8 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Einer Zahl mit endlich vielen Vorkomma- und Nachkommastellen wird als Festkommazahl bezeichnet. z = ±(an an −1 ... a1a0 , m1m2 ... mr ) Sie hat den Nachteil, dass der Bereich darstellbarer Zahlen eingeschränkt ist. Jede Festkommazahl kann jedoch durch Multiplikation der Basis b mit einem geeigneten Exponenten e auf beliebige Zahlenbereiche skaliert werden. z = ± ( an an −1 ... a1a0 , m1m2 ... mr ) ⋅ b ± e Wird der Exponent e so gewählt, dass für eine beliebige Zahl die Vorkommastellen verschwinden, erhält man die normierte Gleitkommadarstellung z = ±(0, m1m2 ... mr ) ⋅ b ± e = ± m ⋅ b ± e mit der Mantisse m∈IR und dem Exponenten e∈IN. Hierbei ist r die Anzahl der tragenden Ziffern. Für z ≠ 0 ist die Darstellung durch die Normierungsvorschrift m ≠ 0 eindeutig bestimmt, für z = 0 wird m = 0 gesetzt. 1. Einführung 9 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Auf dem Rechner stehen für die Darstellung von reellen Zahlen nur endlich viele Stellen zur Verfügung: • r Ziffern + 1 Vorzeichen für die Mantisse • s Ziffern + 1 Vorzeichen für den Exponenten. Die Speicherung einer solchen Zahl erfolgt dann in der Form z := ±(m1m2 ... mr ) ± (es −1es − 2 ... e0 ) Aus technischen Gründen verwenden moderne Rechner eine Zahldarstellung mit den Basen b = 2 (Dualsystem) oder b = 16 (Hexadezimalsystem) oder Mischungen davon. Die in der obigen Form auf einem Rechner dargestellten (rationalen) Zahlen werden “Maschinenzahlen” genannt Bemerkung: Beim sog. “IEEE-Format” (üblich auf UNIX-Workstations) werden zur Darstellung von doppelt genauen Zahlen (REAL*8 in FORTRAN) 64 Bits (=8 Bytes) verwendet. Dabei stehen 1 Bit für das Vorzeichen, 52 Bits für die Mantisse und 11 Bits für den Exponenten zur Verfügung. Damit lässt sich folgender Zahlenbereich abbilden: −21024(≈ −1,8·10308) .... −2-1022(≈ −2,2·10-308), 0, 21022(≈ 2,2·10-308) .... 2-1024(≈ 1,8·10308) 1. Einführung 10 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler 1.4 Runden von Zahlen Da nur mit endlicher Genauigkeit gerechnet werden kann, sind in der Regel die Ergebnisse von Rechenoperationen auf die zu Verfügung stehenden Stellen zu runden. Besitzt eine Zahl z = ± ( an an −1 ... a1a0 , m1m2 ... mr mr +1 ...) ⋅ b ± e mehr als r Nachkommastellen, so wird die Näherung mit r Nachkommastellen durch Rundung mathematisch korrekt zugeordnet, wenn z= ± (an an −1 ... a1a0 , m1m2 ... mr ) ⋅ b ± e [ für mr +1 < b / 2 ] ± ( an an −1 ... a1a0 , m1m2 ... mr ) + b − r ⋅ b ± e für mr +1 ≥ b / 2 mit der Basis b gilt. Ist mr+1 = b/2 und alle folgenden Ziffern mr+2 ... = 0, wird so gerundet, dass mr gerade ist (statistisch korrekte Rundung). 1. Einführung 11 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Beispiel: Rundung auf 2 Nachkommastellen z = 8,16273 z = 8,16 z = 1,2750 z = 1,28 0 z = 11,258762 = 11,258762 ⋅10 z = (11,25 + 10 −2 ) ⋅10 0 = 11,25 + 10 −2 = 11,23 z = 68,1450 z = 68,14 Für den relative Rundungsfehler gilt 1 z − z 1 1− r − b1− r ≤ δ = ≤ b 2 z 2 Die Schranke wird auch als relative Darstellungsgenauigkeit bezeichnet. Sie hängt nur von der Anzahl r der tragenden Stellen und der Basis b ab. Bemerkung: Beim IEEE-Format mit r = 52 Bit Mantisse und b = 2 ergibt sich daraus die relative Computergenauigkeit δ≤ 1. Einführung 1 1− r 1 1−52 b = 2 ≈ 2,2 ⋅10 −16 2 2 12 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler 1.5 Kondition Die Kondition eines numerischen Problems gibt an, wie empfindlich die Lösung von der Genauigkeit der Eingabedaten abhängt, d. h. wie sich eine Störung ε auf das Ergebnis x auswirkt. Die Bestimmung des sog. Fortpflanzungsfehlers ist Gegenstand der Fehleranalysis und für komplexe Modelle oftmals aufwändig oder gar nicht möglich. Im folgenden werden daher die Fortpflanzungsfehler nur für die Grundrechenarten vereinfacht hergeleitet. Sind die reellen Zahlen z1 und z2 mit den Fehlern ∆z1 und ∆z2 behaftet, so gilt z1 = z1 + ∆z1 = z1 ⋅ (1 + ε 1 ) z 2 = z 2 + ∆z 2 = z 2 ⋅ (1 + ε 2 ) Daraus folgt für das fehlerbehaftete Ergebnis x = f ( z1 , z 2 ) = x + ∆x = x ⋅ (1 + ε ) 1. Einführung 13 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Multiplikation: ≈0 x = x ⋅ (1 + ε ) = z1 ⋅ z 2 = z1 (1 + ε 1 ) ⋅ z 2 (1 + ε 2 ) = ( z1 ⋅ z 2 )(1 + ε 1 + ε 2 + ε 1 ⋅ ε 2 ) Durch Koeffizientenvergleich folgt die Abschätzung für den Gesamtfehler ε ≤ ε1 + ε 2 Die Multiplikation ist gut konditioniert, da der Gesamtfehler maximal durch die Summe der Einzelfehler begrenzt wird. =x Division: x = x ⋅ (1 + ε ) = =1+ε z1 z (1 + ε 1 ) z1 1 + ε 1 = 1 = ⋅ z2 z 2 (1 + ε 2 ) z 2 1 + ε 2 Daraus folgt 1 + ε1 1 + ε1 − 1 − ε 2 ε1 − ε 2 ε= −1 = = ≈ ε1 − ε 2 1+ ε 2 1+ ε 2 (1 + ε 2 ) und somit ebenfalls ε ≤ ε1 + ε 2 1. Einführung ≈1 14 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Addition/Subtraktion: z (1 + ε 1 ) z 2 (1 + ε 2 ) x = x ⋅ (1 + ε ) = z1 ± z 2 = z1 (1 + ε 1 ) ± z 2 (1 + ε 2 ) = ( z1 ± z 2 ) ⋅ 1 ± z1 ± z 2 z1 ± z 2 Koeffizientenvergleich: z (1 + ε 1 ) z 2 (1 + ε 2 ) z ±z z ⋅ε z ⋅ε 1+ ε = 1 ± = 1 1 + 2 2 + 1 2 z1 ± z 2 z1 ± z 2 z1 ± z 2 z1 ± z 2 z1 ± z 2 z1 z2 =1 ⇒ε = ⋅ ε1 + ⋅ ε 2 = R1 ⋅ ε 1 + R2 ⋅ ε 2 z1 ± z 2 z1 ± z 2 Der Gesamtfehler ε wird nur dann durch die Summe der Einzelfehler ε1 und ε2 begrenzt, wenn die Verstärkungsfaktoren |R1| ≤ 1 und |R2| ≤ 1 sind. Strebt hingegen der Nenner z1+ z2 bzw. z1– z2 . gegen Null, wächst der Gesamtfehler über alle Maßen. Dies ist immer dann der Fall, wenn Differenzen ähnlich großer Zahlen auftreten (Auslöschung), die Operation ist dann schlecht konditioniert. Algorithmen sollten so konzipiert sein, dass Auslöschungen möglichst vermieden werden. 1. Einführung 15 Umwelt-Campus Birkenfeld der Fachhochschule Trier Numerische Mathematik Prof. Dr.-Ing. T. Preußler Beispiel: Differenz ähnlich großer Zahlen bei Rundung auf 2 Stellen z1 = 11,258762 z 2 = 11,244250 z1 = 11,26 z 2 = 11,24 x = z1 − z 2 = 11,258762 − 11,244250 = 0,014512 x = z1 − z 2 = 11,26 − 11,24 = 0,02 Relative Fehler: ε1 = z1 − z1 11,26 − 11,258762 = = 1,1 ⋅10 − 4 z1 11,261 ε2 = z 2 − z 2 11,24 − 11,24425 = = −3,8 ⋅10 − 4 z2 11,24 ε= x − x 0,014512 − 0,02 = −3,8 ⋅10 −1 = 0,014512 x Der Gesamtfehler ist um den Faktor 1000 größer als der größte Einzelfehler! 1. Einführung 16