3 Numerisches Rechnen

Ähnliche Dokumente
Computer-orientierte Mathematik

1. Rechnerzahlen, Kondition, Stabilität

Rundungsfehler-Problematik bei Gleitpunktzahlen

1. Rechnerarithmetik und. Rundungsfehler

Numerische Verfahren und Grundlagen der Analysis

Einführung in die Informatik I

1 Grundlagen der Numerik

Darstellung rationaler und reeller Zahlen Vorlesung vom

Numerik für Ingenieure I Wintersemester 2008

Numerische Lineare Algebra

Einführung in die Computerorientierte Mathematik

Unter den endlich vielen Maschinenzahlen gibt es zwangsläufig eine größte und eine kleinste:

Numerische Mathematik

Numerik für Informatiker, Elektrotechniker und Naturfreunde von Michael Lehn

Einführung in die Informatik I

Computerarithmetik ( )

Numerische Mathematik I: Grundlagen

Grundlagen Kondition Demo. Numerisches Rechnen. (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

Mathematische Werkzeuge für Computergrafik 2016/17. Gleitkommzahlen

Computergrundlagen Zahlensysteme

6.2 Kodierung von Zahlen

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination. Lehrstuhl für Angewandte Mathematik Wintersemester 2009/

Zahlen und elementares Rechnen

1 Fehleranalyse, Kondition, Stabilität

Schleifeninvarianten. Dezimal zu Binär

Informatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Analysis für Informatiker

31 Polynomringe Motivation Definition: Polynomringe

8 Dezimalzahlen und Fehlerfortpflanzung

2.5 Primitive Datentypen

II. Grundlagen der Programmierung

Kapitel 5: Darstellung von Daten im Rechner

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

KAPITEL 2. Fehleranalyse: Kondition, Rundungsfehler, Stabilität. Datenfehler. Dahmen-Reusken Kapitel 2 1

Rechnergrundlagen SS Vorlesung

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Funktionen einer Variablen

Polynome und ihre Nullstellen

Kapitel III Ringe und Körper

Grundstrukturen: Speicherorganisation und Zahlenmengen

Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form

5 Numerische Mathematik

Mathematik I Herbstsemester 2014

Zahlen 25 = = 0.08

WS 2009/10. Diskrete Strukturen

2 Zahlen und Zahlensysteme

Dipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme

Zahlen und elementares Rechnen (Teil 1)

Kapitel 2. Zahlensysteme, Darstellung von Informationen

U. Rausch, 2010 Potenzrechnung 1

, 2015S Übungstermin: Mi.,

Technische Informatik I

1 Zahlenmengen und einige mathematische Symbole

Zahlensysteme und Kodes. Prof. Metzler

Numerisches Programmieren, Übungen

5 Stellenwertsysteme. Berechne q :=, und setze r := a q b. = 2.25, also q = 2.25 = 2 und = 3. Im Beispiel ergibt sich a b

Die Taylorreihe einer Funktion

Rückblick. Zahlendarstellung zu einer beliebigen Basis b. Umwandlung zwischen Zahlendarstellung (214) 5 = (278) 10 =(?) 8

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

T n (1) = 1 T n (cos π n )= 1. deg T n q n 1.

Einführung in die numerische Mathematik

Kapitel 1: Schaltfunktionen und ihre Darstellung

2 Polynome und rationale Funktionen

2.5. Gleitkommaarithmetik

Multiplikation langer Zahlen

Reihen, Einleitung. 1-E1 Ma 2 Lubov Vassilevskaya

2 Die Körper-Axiome. I. Axiome der Addition (A.1) Assoziativgesetz. Für alle x, y, z R gilt (x + y)+z = x +(y + z).

2 Rechnen auf einem Computer

Der Satz von Taylor. Kapitel 7

3.4 Kondition eines Problems

2 ZAHLEN UND VARIABLE

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

9.2 Invertierbare Matrizen

BB/CS- SS00 Rechner im Überblick 1/1. Ein Stellenwertsystem (Zahlensystem) ist ein Tripel S = (b, Z, δ) mit den folgenden Eigenschaften:

Mathematik für Informatik 3

Rechnergrundlagen SS Vorlesung

Vorlesung Programmieren

Numerisches Programmieren

Grundlagen: Algorithmen und Datenstrukturen

8 Interpolation. 8.1 Problemstellung. Gegeben: Diskrete Werte einer Funktion f : R R an n + 1 Stützstellen. x 0 < x 1 <... < x n.

Numerische Verfahren und Grundlagen der Analysis

Fehler in numerischen Rechnungen

(x x j ) R m [x] (3) x x j x k x j. R m [x]. (4)

5. Nichtdezimale Zahlensysteme

5 Interpolation und Approximation

Determinanten. I. Permutationen

1.4 Gruppen, Ringe, Körper

Effizienz von Algorithmen

Transkript:

E Luik: Numerisches Rechnen 65 3 Numerisches Rechnen 31 Zahlen und ihre Darstellung Grundlage der Analysis bilden die reellen Zahlen Wir sind heute daran gewöhnt, eine reelle Zahl im Dezimalsystem als (unendlichen) Dezimalbruch darzustellen Grundsätzlich kann jedoch als Basis statt der Zahl 10 jede natürliche Zahl g 2 gewählt werden Sei g 2 eine natürliche Zahl und x 0 eine reelle Zahl Dann gibt es eine Darstellung der Gestalt x = σ g N x ν g ν (6) mit σ { 1,+1} (Vorzeichen), N Z (Exponent) und x ν {0,1,2,,g 1} (Ziffern) Man nennt g die Basis des Zahlensystems Diese Darstellung ist eindeutig, wenn man zusätzlich noch verlangt, dass x 1 0 gilt und dass es zu jedem n N ein ν n gibt mit x ν g 1 Wir sprechen dann von der normalisierten Darstellung und schreiben (6) kürzer in der Form x = σ0x 1 x 2 x 3 g N (7) Ohne diese Zusatzvoraussetzung hätte im Zehnersystem (dh g = 10) die reelle Zahl 1 die Darstellungen 1 = 01000 10 1, 1 = 09999 10 0, 1 = 00100 10 2 Häufig verwendete Basen sind: Name des Sytems Basis g Ziffern Dualsystem 2 0,1 Dezimalsystem 10 0,1,2,3,4,5,6,7,8,9 Hexadezimalsystem 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Beispiel: Die reelle Zahl x = 111875 hat folgende normalisierte Darstellungen dezimal: 0111875 10 2 dual: 010110011 2 4 hexadezimal: 0B3 16 1 In Computern wird nicht das Dezimalsystem, sondern das Dualsystem verwendet Dargestellt werden können dann nur die Null und die Zahlen der Form x = σ 2 N t x ν 2 ν, x ν {0,1}, x 1 = 1 (8)

66 mit einem festen t N und N N N +, N,N + Z Dabei hängen t, N und N + von der konkreten Rechenanlage bzw von den verwendeten Programmpaketen ab Diese Zahlen heißen Maschinenzahlen Die Zahl m := t x ν 2 ν heißt die Mantisse von x und t die Mantissenlänge Daneben bezeichnen wir σ als Vorzeichen und N als Exponent der Zahl x Man nennt Zahlen in der Dartellung (8) auch Gleitkommazahlen Matlab verwendet für die Darstellung von reellen Zahlen 64 Bit (= 8 Byte); diese teilen sich auf in Vorzeichen 1 Bit Exponent 11 Bit Mantisse 52 Bit 32 Operationen mit Gleitkommazahlen Die Menge M der Maschinenzahlen (bei festem t, N, N + ) ist natürlich endlich Man spricht hier auch von einem diskreten Raum Eine reelle Zahl x muss in der Regel durch eine Maschinenzahl x ersetzt (approximiert) werden Diesen Prozess nennt man Runden; es entsteht ein Fehler Dabei unterscheiden wir zwei Fehlerarten: Definition: Es sei x R und x eine Näherung für x (i) x x heißt absoluter Fehler (ii) Für x 0 heißt x x x der relative Fehler Wir definieren folgende Rundungsvorschrift: Sei g 2 gerade (nur diese Fälle sind von praktischer Bedeutung), t N (fest vorgegebene Mantissenlänge) und x R\{0} mit Dann setzt man rd(x) := x = σ g N x ν g ν (N N N + ) σ g N t x ν g ν, falls x t+1 < g 2 ( σ g N t ) x ν g ν +g t, falls x t+1 g 2 (abrunden), (aufrunden) rd(x) heißt der auf t Stellen gerundete Wert von x (Beachte: rd hängt auch von t ab; korrekter wäre deshalb rd t (x) Wir verzichten darauf, da wir stets mit einer fest vorgegebenen Mantissenlänge arbeiten) Satz: (ob, vgl Hämmerlin-Hoffmann) (i) Für den absoluten Fehler gilt: rd(x) x 05g N t (ii) Für den relativen Fehler gilt: rd(x) x x 05g t+1

E Luik: Numerisches Rechnen 67 Definition: Die Zahl τ := 05g t+1 heißt die relative Rechengenauigkeit der t-stelligen Gleitkomma-Arithmetik Setzt man ε := rd(x) x, so gilt x rd(x) = x(1+ε) mit ε τ In Matlab ist die relative Rechengenauigkeit τ = 2 52 Diesen Wert erhält man durch Eingabe von eps Verknüpfung von Gleitkommazahlen Es bezeichne nun eine der Rechenoperationen +,,,/ Die Verknüpfung zweier Maschinenzahlen x und y durch eine dieser Operationen ist ia keine Maschinenzahl mehr; es muss gerundet werden Das Ergebnis ist also Beispiel: Sei g := 10, t := 3 rd(x y) = (x y)(1+ε) mit ε τ x = 0123 10 6, y = 0456 10 2, x+y = 01230456 10 6, rd(x+y) = 0123 10 6 Sind nun x und y keine Maschinenzahlen, so müssen diese zunächst in Maschinenzahlen umgewandelt werden, bevor die Verknüpfung ausgeführt wird: rd(x) = x(1+ε 1 ) mit ε 1 τ, rd(y) = y(1+ε 2 ) mit ε 2 τ In einem ersten Schritt untersuchen wir nun, wie sich Rundungsfehler bei der Addition auswirken Wird zusätzlich unterstellt, dass die Addition der gerundeten Zahlen auf dem Rechner exakt ausgeführt wird, so erhält man und somit für den relativen Fehler rd(x)+rd(y) = x+xε 1 + y +yε 2 rd(x)+rd(y) (x+y) x+y = x x+y ε 1 + y x+y ε 2 =: δ Bei exakter Rechnung bewirken die relativen Fehler ε 1 bzw ε 2 bei den Eingangsdaten x und y im Ergebnis einen relativen Fehler δ Diesen Fehler bezeichnet man auch als Fortpflanzungsfehler Falls x und y dasselbe Vorzeichen haben, so folgt sofort δ ε 1 + ε 2 2τ Problematisch ist dagegen die Situation x y Dann kann der relative Fehler bei der Addition sehr groß werden (trotz kleiner Fehler ε 1 und ε 2 ) Fazit: Die Subtraktion zweier ungefähr gleich großer Zahlen ist numerisch instabil: kleine Fehler in den Summanden können zu einem großen Fehler im Ergebnis führen

68 Nun betrachten wir die Situation, dass nach der Rechenoperation des Ergebnis zu einer Maschinenzahl gerundet werden muss Dann erhält man rd(rd(x) rd(y)) = (rd(x) rd(y))(1+ε 3 ) mit ε 3 τ = (x(1+ε 1 ) y(1+ε 2 ))(1+ε 3 ) = x y + F Verwendet man zb die Addition als Verknüpfung, so ergibt sich für den absoluten Fehler die Abschätzung (Beweis als Übung) F x (τ +τ(1+τ)) + y (τ +τ(1+τ)) = ( x + y )(τ 2 +2τ) Die Untersuchung des Rundungsfehlers bei der Auswertung arithmetischer Ausdrücke nennt man Rundungsfehleranalyse Sie wird bei größeren Ausdrücken sehr kompliziert 33 Algorithmen Eine Reihe (unendliche Summe) kann man im Computer nicht exakt berechnen, sondern muss zuerst durch eine endliche Summe ersetzt werden Desweiteren ist dem Rechner auch mitzuteilen, in welcher Reihenfolge die Summe ausgewertet werden soll Dies führt uns auf den Begriff des Algorithmus Definition: Ein Algorithmus ist eine Vorschrift, die aus einer Menge eindeutiger Regeln besteht Diese spezifizieren eine endliche Aufeinanderfolge von Operationen, so dass deren Ausführung die Lösung eines Problems aus einer bestimmten Problemklasse liefert Ein Algorithmus ist also durch die folgenden 3 Punkte gekennzeichnet: Bestimmtheit: Jeder Rechenschritt ist eindeutig festgelegt Jede mögliche Situation wird erfasst, und es muss genau spezifiziert werden, welcher Rechenschritt auszuführen ist Endlichkeit: Der Rechenvorgang wird nach endlich vielen Schritten beendet Allgemeingültigkeit: Die Rechenvorschrift soll auf eine ganze Problemklasse anwendbar sein, wobei die Lösung der verschiedenen Probleme der Klasse lediglich eine Änderung der Eingabe erfordert Komplexität von Algorithmen Zur Lösung desselben Problems kann es verschiedene Algorithmen geben Ein mögliches Vergleichskriterium ist dann der Rechenaufwand Mit diesem Themenkreis beschäftigt sich die Komplexitätstheorie Definition: Sei A ein Algorithmus zur Lösung eines Problems mit n N Eingabedaten Die Abbildung T A : N N, die jeder Anzahl von Eingabedaten die Anzahl der Grundoperationen beim Ablauf des Algorithmus zuordnet, heißt Komplexität von A Die Komplexität gibt den Rechenaufwand an Da eine Punktoperation (, /) wesentlich mehr Aufwand erfordert als eine Strichoperation (+, ), werden bei Komplexitätsbetrachtungen häufig auch nur die Punktoperationen berücksichtigt

E Luik: Numerisches Rechnen 69 Zur Beschreibung des Verhaltens der Komplexitätsfunktion verwendet man meistens das Landau-Symbol O Definition: Es seien f,g : D R R zwei Funktionen mit g(x) 0 für alle x D f heißt von der Ordnung groß O von g für x x 0, wenn es eine Konstante C > 0 und ein δ > 0 gibt, so dass für alle x U δ (x 0 ) mit x x 0 die Ungleichung f(x) g(x) C gilt Man verwendet dafür die Schreibweise f(x) = O(g(x)) für x x 0 Beispiel: Sei f : N N, f(n) := 1 n(n+3) Dann gilt 2 (dh g(n) := n 2 ), denn f(n) n 2 = Hier kann man also C = 1 wählen f(n) = O(n 2 ) für n 1 2 n2 + 3n 2 = 1 n 2 2 + 3 2n 1 für alle n 3 Eigenschaften des Landau-Symbols 1 f(x) = K O(g(x)) für ein K R f(x) = O(g(x)) 2 f(x) = O(g(x)) und g(x) = O(h(x)) f(x) = O(h(x)) 3 f 1 (x) = O(g 1 (x)) und f 2 (x) = O(g 2 (x)) f 1 (x) f 2 (x) = O(g 1 (x) g 2 (x)) Beispiel zur Berechnung der Komplexität: Gegeben sei ein Polynom vom Grad n: p(t) := n a i t i (9) i=0 und ξ R Man bestimme den Funktionswert p(ξ) Der naive Algorithmus zur Polynomauswertung lautet: Eingabe: n N, (a 0,a 1,,a n ) R n+1, ξ R Rechenvorschrift: p := a 0 Für i = 1,,n: b := a i Für j = 1,,i: b := b ξ {Ende der j-schleife} p := p+b {Ende der i-schleife} Ausgabe: p

70 Man berechnet also a 0 +a 1 ξ +a 2 ξ ξ +a 3 ξ ξ ξ + Dieser Algorithmus hat bei Zählung von Additionen und Multiplikationen die Komplexität T A (n) = 1 2 n(n+3) = O(n2 ) (für n ) (nämlich n Additionen und Multiplikationen) n i = 1 2 n(n+1) i=1 34 Das Hornerschema Wir geben nun einen Algorithmus mit kleinerer Komplexität an (zur Berechnung eines Funktionswertes eines Polynoms) Gegeben sei wieder die Situation aus (9): Setze a (1) n := a (0) n Für i = 1,,n: a (1) n i := a(0) n i +a(1) p(t) = n+1 i ξ n a i t i = i=0 n i=0 a (0) i t i Behauptung: Hier gilt p(ξ) = a (1) 0 (Beweis als Übungsaufgabe) Der Rechenaufwand beträgt in diesem Fall n Multiplikationen und n Additionen: T A (n) = 2n = O(n) (für n ) Für die Handrechnung benutzt man folgendes Schema (Hornerschema): a (0) n a (0) n 1 a (0) n 2 a (0) 1 a (0) 0 +a (1) n ξ +a (1) n 1ξ +a (1) 2 ξ +a (1) 1 ξ a (1) n a (1) n 1 a (1) n 2 a (1) 1 a (1) 0 = p(ξ) Beispiel: Es sei p(t) := t 5 5t 3 +4t+1 und ξ := 2 1 0 5 0 4 1 2 4 2 4 0 1 2 1 2 0 1 = p(2)

E Luik: Numerisches Rechnen 71 Wir können nun das Hornerschema mehrfach anwenden und erhalten dann a (0) n a (0) n 1 a (0) n 2 a (0) 1 a (0) 0 +a (1) n ξ +a (1) n 1ξ +a (1) 2 ξ +a (1) 1 ξ a (1) n a (1) n 1 a (1) n 2 a (1) 1 a (1) 0 = p(ξ) +a (2) n ξ +a (2) n 1ξ +a (2) 2 ξ a (2) n a (2) n 1 a (2) n 2 a (2) 1 = p (ξ) a (n 1) n a (n 1) n 1 a (n 1) n 2 +a (n) n ξ a (n) n a (n+1) n a (n) n 1 Dieses Tableau wird als vollständiges Hornerschema bezeichnet Es gilt die Beziehung (Beweis als Übungsaufgabe) a (ν+1) ν = p(ν) (ξ) ν! (ν = 0,,n) Anmerkung: Mit dem vollständigen Hornerschema können wir von einem Polynom die Taylor-Entwicklung um den Punkt ξ berechnen, ohne die Ableitungen explizit zu bestimmen Beispiel: Bestimmen Sie die Taylor-Entwicklung von um den Punkt x 0 = 1 p(x) = 3x 4 +2x 10 Hier erhalten wir das folgende vollständige Hornerschema

72 3 0 0 2 10 3 3 3 1 3 3 3 1 9 = p( 1) 3 6 9 3 6 9 10 = p ( 1) 3 9 3 9 18 3 = p(2) ( 1) 2! 3 12 = p(3) ( 1) 3! 3 = p(4) ( 1) 4! Damit ergibt sich die Taylor-Entwicklung p(x) = 3(x+1) 4 12(x+1) 3 +18(x+1) 2 10(x+1) 9 Literatur: Hämmerlin; Hoffmann: Numerische Mathematik, 4 Auflage, Springer 1994