42
Beispiel : f(x) = 1 - cos(x) für x 0: f(x) ist wieder gut konditioniert bei 0, da Aber bei 0 ist cos(x) nahe bei 1 wieder Auslöschung! 66 0 , 2 ) 2 / 1 ( 1 ) cos( 1 ) sin( 2 2 x x x x x x f f x cond x In MATLAB: 1 - cos(10^(-8)) ergibt 0; und mit cos(10^(-3)) = 0.999999 50000004 verliert man bei der Differenz 6 signifikante Stellen

Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Beispiel: f(x) = 1 - cos(x) für x ≈ 0:

f(x) ist wieder gut konditioniert bei 0, da

Aber bei 0 ist cos(x) nahe bei 1 wieder Auslöschung!

66

0,2)2/1(1)cos(1

)sin(2

2

x

x

x

x

xx

f

fxcond x

In MATLAB: 1 - cos(10^(-8)) ergibt 0;

und mit cos(10^(-3)) = 0.99999950000004

verliert man bei der Differenz 6 signifikante Stellen

Page 2: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

67

Anderer Berechnungsweg:

1 - cos(x) = 2 sin2(x/2)

!6!42

)!6!42

1(1)cos(1642642 xxxxxx

x

oder Reihenentwicklung des Cosinus

1 – cos(x) für x=2π ? |𝑥𝑓′ 𝑥

𝑓 𝑥| = |

𝑥𝑠𝑖𝑛 𝑥

1 − cos 𝑥|

Page 3: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Beispiel: y = a2 – b2 bei |a|=|b|

Anwendung der Epsilontik; seien a,b Maschinenzahlen:

Berechne erst beide Produkte, dann die Differenz.

68

3222

2

122

2

22

2

22

2 22appbay

ba

b

ba

a

ba

b

ba

a

Fehler: Eingabefehler Produktfehler Differenzfehler

Relativer Fehler:

Nun seien auch a und b fehlerhaft: a(1+a), b(1+b)

321 111 app bbaa

32

2

1

2 11)1(1)1( apbpa bbaa

Page 4: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Andere Art der Berechnung: y = ( a – b )( a + b )

69

)1()1()1()1()1()1()1( * baba babaf

)1()21()21( *

22 ba ba

*22

2

22

2 22

ba

ba

b

ba

a

22

2

22

2

ba

a

ba

da

dya

conda

22

2

22

2

ba

b

ba

db

dyb

condb

Konditionszahlen:

,

Problem ist schlecht konditioniert für |a| |b|

Relativer Fehler in erster Näherung:

Page 5: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Vergleich mit erstem Algorithmus:

Das neue Verfahren ist besser, da i.W. nur der

unvermeidbare Fehler (durch Eingabefehler) auftritt!

Grund: Auslöschung in a - b geringer als in a2 – b2 ,

da Fehler in a und b kleiner als in a2 und b2 .

70

Page 6: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Zusammenfassung

Endlichkeit des Computers führt zu endlicher Menge von

Maschinenzahlen.

In jedem Schritt treten Rundungsfehler auf.

Gefährlich sind Operationen, bei denen man signifikante

Stellen verliert, wie z.B.:

- Auslöschung (Differenz fast gleicher, fehlerhafter Zahlen)

- Summe zwischen großer Zahl und sehr kleiner Zahl,

bei der die signifikanten Stellen in der kleinen

Zahl stecken (vgl. wiederholtes Wurzelziehen)

- Allgemein Operationsfolgen mit großen Zwischen-

werten und kleinen Endwerten

(vgl. exp, Teilfunktion schlecht konditioniert).71

Page 7: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Vorsicht! Gesundes Misstrauen!

Algorithmus ist OK, wenn die Größenordnung der

relativen Fehler im Resultat ungefähr gleich der

Größenordnung der Eingabefehler bleibt.

Umformen eines numerisch instabilen Verfahrens durch

- andere Reihenfolge der Berechnung

- Anfang der Taylorentwicklung

- Trigonometrische Formeln

- algebraische Umformung (binomische F.)

- ....

- Ev. double precision rechnen, damit trotz schlechter

Kondition oder Rundungsfehler noch brauchbares

Resultat übrigbleibt.72

Page 8: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Systematische Fehler und große Zahl der Operationen können

zu schlechten Ergebnissen führen!

(Siehe Beispiel Börsenindex)

Ev. Modellfehler gegen Rundungsfehler abwägen:

Feineres Modell Mehr Rechnung Mehr Rundungsfehler!

Man muss die optimale Balance finden!

Beispiel Übungsaufgabe Differenzenquotient.

Gesamtfehler:

73

Grob diskretisiert Optimum fein diskretisiert

Modellfehler Rundungsfehler

Page 9: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Beispiel: Verbesserte Fehleranalyse für den numerisch

instabilen Fall großer Zwischenwerte

Zerlege Problem f(x) in zwei Schritte

y = f(x) = f2(f1(x)) = f2(z)

wobei z = f1(x) großer Zwischenwert und

y = f2(z) kleiner Endwert.

74

Daher ist Teilproblem f2(z) für diese Werte schlecht

konditioniert,

da |z / f2 (z)| groß ist!

Daher ist Gesamtverfahren nicht numerisch stabil für x.

ff1 f2

x z y

Beispiel f(a,b)=a+b. a+b+…+z = f(…f(f(a,b),c),…,z)

Page 10: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

75

Verfahren ist numerisch stabil, wenn für jede Zerlegung

in Teilprobleme f2(f1(x)) = f2(z), z = f1(x) , f2(z) stets

gut konditioniert ist! Keine großen Zwischenwerte!

Konditionszahl Gesamtproblem

Numerisch stabil Berechnungsform

Page 11: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Genauere Analyse der numerischen Stabilität durch Bestim-

mung der Konditionszahlen und Ableitungen aller Teilschritte:

Zerlege Algorithmus in Teilprobleme f(x) = f2(f1(x)) und

berechne alle auftretenden Konditionszahlen cond(f2)!

Meist zu aufwändig oder unmöglich.

76

Epsilontik genügt für uns:

(i) (Ersetze xx(1+ε), x op y (x op y)(1+ε)

(ii) Streiche Terme höherer Ordnung in ε2, ε3, ε4, …

(iii) Bestimme damit den rel. Fehler des Resultats (f – y)/f

in erster Näherung und schätze Beträge ab nach oben

(iv) Diskutiere die einzelnen Terme.

Page 12: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Ziel:

Erkenne aus Formel (Programm), bzw. berechneten (Zwischen)werten,

- ob das Problem gut konditioniert ist, und

- ob das verwendete Verfahren numerisch stabil ist,

- bzw. wie das Verfahren ev. verbessert werden kann.

77

Klausuraufgabe: f(x)=exp(x)-1, g(x)=1-x+x2-x3, h(x)=(1+x2)(1-cos2(x))

Page 13: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

78

Schlecht konditionierte Probleme:

- Wettervorhersage- Aktienentwicklung: Black-Scholes Gleichungen- Chaos-Theorie in dynamischen Gleichungen- …

Sprunghaft, chaotisch, parameterabhängig, selbstbezüglichBlack Swan - Effekt

Vorsicht mit Vorhersagen:“Die einzigen Vorhersagen, die wirklich zutreffen sind die, dieman nachträglich macht.”Vorsicht bei nachträglicher Bewertung von Vorhersagen!Psychologische Effekte.

Page 14: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

9

Neuronale Netze

9

Eingabe

x1

x2

x3

x4

y4

w1

w2

w3

w4

𝑦4 = 𝑤1𝑥1 + 𝑤2𝑥2+𝑤3𝑥3+𝑤4𝑥4 = 𝑤𝑇𝑥

𝑓(𝑥)

𝑦 = 𝑊𝑥 Vektor y,x; Matrix W

W1W2 W3 W4

Page 15: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

10

Anwendung

Mit bekannten Testdaten werden die Gewichte w so justiert,

dass für die Testdaten möglichst die richtigen Ergebnisse geliefert werden.

Eingabe: Bilder

Ausgabe: Panzer ist auf dem Bild ja/nein.

Page 16: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

11

Anwendung

Mit bekannten Testdaten werden die Gewichte w so justiert,

dass für die Testdaten möglichst die richtigen Ergebnisse geliefert werden.

Probleme: - welche Kriterien benutzt das Netz?

- Undurchschaubarkeit

- nur Wahrscheinlichkeiten

- ethische Klassifizierung

Erkennung von Kriminellen.

Handwerkliche Fehler!

80% kriminell?

Page 17: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

12

Anwendung

Probleme: - welche Kriterien benutzt das Netz?

- Undurchschaubarkeit

- nur Wahrscheinlichkeiten

- ethische Klassifizierung

Erkennung von sexueller Neigung.

Handwerkliche Fehler!

Wozu?

Page 18: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

3.1 Dreiecksgleichungssysteme

Beispiel: Unbekannte x1, x2, x3:

13

2.62.6

5.255.2

70710

3

32

321

x

xx

xxx

2.6

5.2

7

2.600

55.20

0710

3

2

1

x

x

x

In Matrixschreibweise:

Page 19: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Wegen der Dreiecksform lässt sich das System leicht von

unten her auflösen:

14

;0,0777710

;1,5.255.25.2

;1;12.6/2.6

121

232

33

xalsoxx

xalsoxx

xalsox

;

1

1

0

3

2

1

x

x

x

Lösungsvektor:

Probe durch Einsetzen!

Page 20: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Allgemein:

wird gelöst mittels Programm 3.1.1.:

15

nnnn

n

n

b

b

b

x

x

x

a

aa

aaa

2

1

2

1

222

11211

ii

n

ij jiji

i

nnnn

a

xabx

nnifür

abx

1

:1,,2,1

;/

Page 21: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Genauso wird das untere Dreieckssystem

von oben her gelöst mit dem Programm:

16

nnnnn b

b

b

x

x

x

aa

aa

a

2

1

2

1

1

2221

11

ii

i

j jiji

ia

xabx

nifür

abx

1

1

1111

:,,3,2

;/

Wichtig: Alle , da sonst System nicht eindeutig lösbar!0iia

0)det( 2211 nnaaaA

Immer lösbar?

Page 22: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

3.2 Einschub: Rechnen mit Matrizen

Matrix

beschreibt Abbildung

x f(x) = Ax = b .

17

mn

nmn

m

aa

aa

A ,

1

111

Matrizen bilden kommutative Gruppe bzgl. +, bzw.

Invertierbare nxn-Matrizen bilden sogar Gruppe bzgl. *(aber nicht kommutativ! AB≠BA)

A–1 * A = I = Einheitsmatrix = Identität = 1

Page 23: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Spezialfall:

18

Rba

b

b

aaban

j

jj

n

n

T

1

1

1

Matrix-Multiplikation: A * B = C

k

r

rjirij bac1

ist Skalarprodukt (Inneres Produkt) der Vektoren a und b

i

Page 24: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

19

mnn

m

m

n

T

baba

baba

bb

a

a

ba

1

111

1

1

nm

ijij

Tmn

jiji

T aaA,

1,,

,

1,,

Spiegelung an der Hauptdiagonalen

Eine invertierbare n x n–Matrix A hat vollen Rang n und det(A) ≠ 0

als Äußeres Produkt von a und b.

A = a bT ist Rang-1-Matrix, d.h. die durch A beschriebene

Abbildung f(x) hat eindimensionalen Bildraum:

f(x) = A x = (a bT ) x = (b T x ) a = r(x)*a

bildet die 2-dim. Ebene auf die Gerade durch den Vektor a ab.

Page 25: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

3.2.1. Beispiele:

Abbildung

20

2

1

2

1*

11

11

2

1)(

y

y

x

xxf

2/1

1

0

1*

11

11

2

1

2/

1

1

1

0*

11

11

2

1

Daher: und

Page 26: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Weitere Beispiele

21

Google Page-Rank Matrix: Tabelle von Webseiten-Verlinkung:

0320

2010

1101

0010

4

3

2

1

4321

w

w

w

w

wwww

21

21

2

1

2

1

dxcx

bxax

x

x

dc

ba

y

y

Matrix beschreibt lineare Abbildung:

Bild filtern: oder eindimensional

010

141

010

8

1

210

1

1

012

1214

1

Page 27: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

3.2.2. Orthonormalbasis:

Vektoren uj , j=1,...,n mit ujTuk = 0 für j ≠ k

ujTuk = 1 für j = k

Dies sind n linear unabhängige Vektoren, also eine

Basis des Rn oder ein Koordinatensystem.

22

Norm: ||x||2 = xTx ist die euklid’sche Länge.

Eigenschaften: ||x|| > 0 für x ≠ 0

||a*x|| = |a|*||x|| für aR

||x+y|| <= ||x|| + ||y||

und

|xT y| <= ||x||*||y|| Gleichheit möglich?

Page 28: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

23

Q ist orthogonale Matrix, wenn stets

||Qx||2 =||x||2 oder xTQTQx = xTx , d.h.

QTQ = I oder Q–1 = QT

Die Spalten (Zeilen) von Q bilden eine Orthonormalbasis!

Dann ist

x = inv(A)*b = A–1 * b

Ein lineares Gleichungssystem hat entweder

eindeutige/keine/unendlich viele Lösungen! Beispiele?

nnxAxAb

,11,

Ein lineares Gleichungssystem Ax = b ist lösbar, falls

Rang(A) = Rang(A | b), d.h.

b ist durch Spalten von A darstellbar.

Denn mit der Lösung x (falls sie existiert) ist b = Ax eine

Linearkombination von Spalten von A:

Page 29: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Exkurs: Eigenwerte und Eigenvektoren

Ein Vektor u heißt Eigenvektor zu Eigenwert λ, wenn gilt:

Richtung u beschreibt Fixgerade der Abbildung y=Ax

24

MatrixnnAuAuu ,:0

Ist A reell symmetrisch, A=AT, so gilt sogar:

Es existieren n paarweise orthogonale Eigenvektoren,

also eine Orthonormal-Basis des |Rn,

u1,…,un , Auj = λj uj , ui ┴ uj für i ≠ j, || uj || = 1

Uuuuu

AuAuuuAAU

n

nnn

nn

1

111

11

AUU TU liefert ideale Basis für A:

Tacoma Narrows/London Millenium Bridge

Page 30: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

3.3 Gauss-Elimination

3.3.1. Beispiel:

25

655

4623

70710

321

321

321

xxx

xxx

xxx

Grundidee: Zurückführung auf den bekannten Fall

eines Dreiecksgleichungssystems.

6

4

7

515

623

0710

3

2

1

x

x

x

In Matrixschreibweise:

Page 31: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

3.3.2. Erlaubte Transformationen:

- Multiplizieren einer Zeile (Gleichung) mit einer Zahl

verschieden von Null.

- Addieren eines Vielfachen einer Zeile zu einer

anderen Zeile (Gleichung).

- Vertauschen von Zeilen (Gleichungen), bzw. Spalten

(Unbekannten) (entspricht Umnummerierung).

26

Operationen sind dabei nicht nur an der Matrix durchzuführen,

sondern ev. auch an der rechten Seite (Vektor b) und dem

Lösungsvektor x!

Benutze diese Regeln, um in der Matrix die Subdiagonal-

Elemente der Reihe nach von oben nach unten, bzw.

von links nach rechts, zu Null zu machen

Dreieckssystem.

Page 32: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Zu Eliminieren: -3

Addiere dazu zur zweiten Zeile die erste, multipliziert mit 3/10.

27

10/3

,

6

4

7

515

623

0710

3

2

1

x

x

x

|

10/5

,

6

1.6

7

515

61.00

0710

3

2

1

x

x

x

Danach soll 5 zu Null werden:

Dritte Zeile - 5/10 * Erste Zeile

Ergibt:

Page 33: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

28

1.0/5.2,

5.2

1.6

7

55.20

61.00

0710

3

2

1

x

x

x

Dieses System kann nun von unten her aufgelöst werden,

wie in Abschnitt 3.1. beschrieben.

,

155

1.6

7

15500

61.00

0710

3

2

1

x

x

xResultat:

Eliminiere 2.5 in letzter Zeile.

Lösung: ( 0 -1 1); was fällt auf?

Page 34: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Benutze also jeweils das Diagonalelement, um die

darunter liegenden Einträge Spalte für Spalte zu

eliminieren, und zwar von a11 , a22 , bis an-1,n-1.

29

|

10/510/3

,

6

4

7

515

61.23

0710

3

2

1

x

x

x

Im Beispiel: Ersetze a22 = 2 durch a22 = 2.1

Problem: Es könnte irgendwann eine Null auf der

Diagonalen auftreten: aii=0 !!!???

Was dann?

Immer lösbar?

Page 35: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

30

.

5.2

1.6

7

55.20

600

0710

3

2

1

x

x

x

1.6

5.2

7

600

55.20

0710

3

2

1

x

x

x

Problem gelöst!

Um Fortfahren zu können, ist eine Vertauschung

notwendig, z.B. vertausche zweite Zeile mit dritter Zeile.

Page 36: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Betrachten wir das ursprüngliche System, so sehen wir,

dass wir zwar ohne Vertauschung durchkommen, aber

der Wert -0.1 auf der Diagonalen a22 führt zu der großen

Zahl 155 in der letzten Zeile.

31

Erinnerung: Zu vermeiden sind große Zwischenwerte!

Daher ist es auch im ursprünglichen System besser, die

Vertauschung von zweiter und dritter Zeile vorzunehmen.

Page 37: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

32

5.2/1.0

1.6

5.2

7

61.00

55.20

0710

3

2

1

x

x

x

Es treten keine großen Zwischenwerte mehr auf.

2.6

5.2

7

2.600

55.20

0710

3

2

1

x

x

x

Dann lautet der letzte Eliminationsschritt

Allgemeines Vorgehen: Pivotsuche

Page 38: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Sieht im k-ten Eliminationsschritt so aus:

33

nnnk

nkkk

kk

n

aa

aa

a

aa

00

00

0

,

1,1

111

Suche in Untermatrix ‚großen’ Eintrag und vertausche

entsprechend Zeilen und Spalten, so dass diese große

Zahl an die Diagonal-Position akk kommt.

Dieses Element heißt Pivotelement.

Page 39: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Gebräuchlichste Variante:

3.3.3. Spaltenpivotsuche:

Durchsuche nur die Spalte von akk bis ank nach

betragsgrößtem Element ajk und vertausche dann

die gefundene Zeile j mit der k-ten Zeile.

Der Zusatzaufwand ist gering, da nur jeweils eine Spalte

durchsucht werden muss, und zwei Zeilen (Gleichungen)

vertauscht werden müssen.

Vertausche also zwei Zeilen in der Matrix und entsprechend

in der rechten Seite b.

34

Page 40: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

Weniger üblich - Zeilenpivotsuche:

Durchsuche die k-te Zeile nach betragsgrößtem Element

und vertausche zwei Spalten (= Umnummerierung in

Vektor x), so dass das betragsgrößte Element der k-ten

Zeile an die Diagonalposition kommt.

Keine Vertauschungen in b nötig!

35

Totalpivotsuche:

Durchsuche die gesamte n-k+1 x n-k+1 – Untermatrix und

vertausche sowohl Spalten, als auch Zeilen, um das betrags-

größte Element an die Diagonalposition zu versetzen.

Aufwändig! Nur sinnvoll, wenn das Gleichungssystem sehr

schlecht konditioniert ist! (Mehr dazu später)

Page 41: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

3.3.4. Umwandlung auf Dreiecksform mit

Spaltenpivotsuche:

Algorithmus der Gauss-Elimination.

1. Teil des Programms: Pivotsuche und –vertauschung

FOR k=1,...,n-1 DO

alpha = |a(k,k)|; j=k;

FOR s=k+1,...,n DO

IF |a(s,k)| > alpha THEN

alpha = |a(s,k)|; j=s;

ENDIF

ENDFOR

# Pivotelement ist a(j,k) und Pivotzeile ist j

FOR i=k,...,n DO

alpha = a(k,i); a(k,i) = a(j,i); a(j,i) = alpha;

ENDFOR

alpha = b(j); b(j) = b(k); b(k) = alpha;36

Page 42: Beispiel: f(x) = 1 - cos(x) für x 0 · Zusammenfassung Endlichkeit des Computers führt zu endlicher Menge von Maschinenzahlen. In jedem Schritt treten Rundungsfehler auf. Gefährlich

2. Teil: Eigentliche Elimination

# Eliminationsschritt

FOR s=k+1,...,n DO

l(s,k) = a(s,k)/a(k,k);

b(s) = b(s) - l(s,k)b(k);

FOR i=k+1,...,n DO

a(s,i) = a(s,i) - l(s,k)a(k,i);

ENDFOR

ENDFOR

ENDFOR

37

Dadurch ist das System auf obere Dreiecksform gebracht,

und kann wie in 3.1 beschrieben einfach von unten her

gelöst werden.