Sie sind auf Seite 1von 56

Fließkommadivision

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 1


Agenda

1 Newton-Verfahren

2 Division

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 2


Agenda

1 Newton-Verfahren

2 Division

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 3


Nullstellen

Aufgabe: Gegeben eine Funktion

𝑋𝑋 ⊂ ℝ → 𝑌𝑌 ⊂ ℝ
𝑓𝑓: � .
𝑥𝑥 ↦ 𝑦𝑦

Gesucht: Menge aller Nullstellen, d.h.


𝑥𝑥𝑖𝑖 ∈ 𝑋𝑋 𝑓𝑓 𝑥𝑥𝑖𝑖 = 0 .

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 4


Nullstellen

Beispiel: Gegeben die Funktion

1
𝑓𝑓 𝑥𝑥 = 𝑥𝑥 + 1
2

Gesucht: Nullstelle

1
𝑥𝑥 + 1 = 0
2

Lösung:
𝑥𝑥0 = −2

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 5


Nullstellen

Definition: Eine lineare Funktion ist eine


Funktion
𝑙𝑙 𝑥𝑥 = 𝑚𝑚𝑚𝑚 + 𝑡𝑡
Δ𝑦𝑦
mit
Δ𝑥𝑥
Δ𝑦𝑦
 Steigung 𝑚𝑚 = 𝑡𝑡
Δ𝑥𝑥

 Abschnitt auf der y Achse 𝑡𝑡

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 6


Nullstellen

Definition: Eine lineare Funktion ist eine


Funktion
𝑙𝑙 𝑥𝑥 = 𝑚𝑚𝑚𝑚 + 𝑡𝑡
1
Δ𝑦𝑦 =
mit 2
Δ𝑥𝑥 = 1
1
Δ𝑦𝑦 1 𝑡𝑡 = 1
 Steigung 𝑚𝑚 = = 2
=
Δ𝑥𝑥 1 2

 Abschnitt auf der y Achse 𝑡𝑡 = 1

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 7


Nullstellen

Korollar: Eine lineare Funktion 𝑙𝑙 𝑥𝑥 = 𝑚𝑚𝑚𝑚 + 𝑡𝑡 hat eine Nullstelle

𝑡𝑡
𝑥𝑥0 = −
𝑚𝑚

Beweis: Übung

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 8


Nullstellen
𝑦𝑦
Beispiel: Gegeben die Funktion
4 2 2 2
𝑓𝑓 𝑥𝑥 = 𝑥𝑥 − ⋅ 𝑥𝑥−

5 �5 �5 𝑥𝑥1 =
1
=:𝑎𝑎 =:𝑏𝑏 =:𝑐𝑐 2
𝑓𝑓 𝑥𝑥1 =0
Gesucht: Nullstelle 𝑓𝑓 𝑥𝑥 = 0
𝑓𝑓(𝑥𝑥)
Lösung:
−𝑏𝑏 ± 𝑏𝑏 2 − 4𝑎𝑎𝑎𝑎
𝑥𝑥0,1 =
2𝑎𝑎 𝑥𝑥

1 𝑥𝑥0 = −1
𝑥𝑥0 = −1, 𝑥𝑥1 = 𝑓𝑓 𝑥𝑥0 = 0
2
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 9
Nullstellen

Beispiel: Gegeben die Funktion Problem:


4 2 2 3 Wir können bisher nur Fließkommazahlen
𝑓𝑓 𝑥𝑥 = 𝑥𝑥 + 𝑥𝑥−

5 �5 �5
=:𝑎𝑎 =:𝑏𝑏 =:𝑐𝑐 addieren

Gesucht: Nullstelle 𝑓𝑓 𝑥𝑥 = 0 subtrahieren

Lösung: multiplizieren
−𝑏𝑏 ± 𝑏𝑏 2 − 4𝑎𝑎𝑎𝑎
𝑥𝑥0,1 = Aber nicht
2𝑎𝑎
 dividieren

 Wurzel bilden

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 10


Nullstellen

Numerische Lösung

 Lösung ist genau, bis auf einen Fehler

 Kein Problem, bei Fließkommazahlen: Sind auch nur genau bis auf einen Fehler

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 11


Nullstellen – Newton Verfahren – Beispiel – Initialisierung
𝑦𝑦
Newton Verfahren:
𝑓𝑓 𝑥𝑥�0 =2
 Funktion 𝑓𝑓 𝑥𝑥
4 2 2 2
𝑓𝑓 𝑥𝑥 = ⋅ 𝑥𝑥 + 𝑥𝑥 −
5 5 5
 Schätzwert für eine Nullstelle 𝑥𝑥�0 𝑓𝑓(𝑥𝑥)

𝑥𝑥�0 = −2

 Fehler 𝑓𝑓 𝑥𝑥�0 𝑥𝑥

𝑓𝑓 𝑥𝑥�0 =2 𝑥𝑥�0 = −2

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 12


Nullstellen – Newton Verfahren – Beispiel – 1. Iteration
𝑦𝑦
Verbesserung der Nullstelle: 𝑙𝑙0 (𝑥𝑥)

1. Funktion 𝑓𝑓 𝑥𝑥 durch lineare Funktion 𝑙𝑙0 𝑥𝑥


approximieren (d.h. annähern), sodass gilt:
1. 𝑙𝑙0 𝑥𝑥�0 = 𝑓𝑓 𝑥𝑥�0
2. 𝑙𝑙0′ 𝑥𝑥�0 = 𝑓𝑓 ′ 𝑥𝑥�0 𝑓𝑓(𝑥𝑥)

Nullstelle 𝑙𝑙0 𝑥𝑥 kann leicht bestimmt werden!


𝑥𝑥
2. Nullstelle 𝑥𝑥�1 von 𝑙𝑙0 (𝑥𝑥) bestimmen 𝑥𝑥�1
𝑥𝑥�0 = −2
 Hoffnung:

Fehler ist besser, d.h. 𝑓𝑓 𝑥𝑥�1 < 𝑓𝑓 𝑥𝑥�0


07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 13
Nullstellen – Newton Verfahren – Beispiel – 1. Iteration
𝑦𝑦
Bestimmen der linearen Funktion 𝑙𝑙0 𝑥𝑥
𝑙𝑙0 (𝑥𝑥)
4 2 2 𝑙𝑙0 𝑥𝑥�0 = 𝑓𝑓 𝑥𝑥�0
1. 𝑓𝑓 𝑥𝑥 = 5 𝑥𝑥 2 + 5 𝑥𝑥 − 5 3 1

⇒ 𝑓𝑓 𝑥𝑥�0 = 𝑓𝑓 −2 = 2 4 𝑙𝑙0′ 𝑥𝑥�0 = 𝑓𝑓 ′ 𝑥𝑥�0 2


8 2
2. 𝑓𝑓 ′ 𝑥𝑥 = 5 𝑥𝑥 + 5
14
⇒ 𝑓𝑓 ′ 𝑥𝑥�0 = 𝑓𝑓 ′ −2 = − 𝑓𝑓(𝑥𝑥)
5
3. 𝑙𝑙0 𝑥𝑥 = 𝑚𝑚0 𝑥𝑥 + 𝑡𝑡0
⇒ 𝑙𝑙0 𝑥𝑥�0 = 𝑙𝑙0 −2 = −2𝑚𝑚0 + 𝑡𝑡0 𝑥𝑥
3 −2𝑚𝑚0 + 𝑡𝑡0 = 2 1
4. 𝑙𝑙0 ′ 𝑥𝑥 = 𝑚𝑚0
𝑥𝑥�0 = −2
⇒ 𝑙𝑙0′ 𝑥𝑥�0 = 𝑙𝑙0′ −2 = 𝑚𝑚0 14
4 𝑚𝑚0 = − 2
5
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 14
Nullstellen – Newton Verfahren – Beispiel – 1. Iteration
𝑦𝑦
Bestimmen der linearen Funktion 𝑙𝑙0 𝑥𝑥 = 𝑚𝑚0 𝑥𝑥 + 𝑡𝑡0
𝑙𝑙0 (𝑥𝑥)
Aus: 4
14
𝑚𝑚0 = −
5
Mit :
3
14 𝑓𝑓(𝑥𝑥)
−2𝑚𝑚0 + 𝑡𝑡0 = 2 ⇔ −2 − + 𝑡𝑡0 = 2
� 5
𝑚𝑚0
18
⇔ 𝑡𝑡0 = − 𝑥𝑥
5 3 −2𝑚𝑚0 + 𝑡𝑡0 = 2
14 18
𝑙𝑙0 𝑥𝑥 = − 𝑥𝑥 − 𝑥𝑥�0 = −2
5 5 14
4 𝑚𝑚0 = −
5
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 15
Nullstellen – Newton Verfahren – Beispiel – 1. Iteration
𝑦𝑦
𝑙𝑙0 𝑥𝑥 nähert an der Stelle die Funktion
𝑙𝑙0 (𝑥𝑥)
14 18
𝑙𝑙0 𝑥𝑥 = − 𝑥𝑥 −
5 5
Nullstelle von 𝑙𝑙0 𝑥𝑥 bestimmen:
14 18
− 𝑥𝑥 − =0
5 5
18 9 𝑓𝑓(𝑥𝑥)
⇒ 𝑥𝑥�1 = − = − ≈ −1,29
14 7
𝑥𝑥�1 ist eine bessere Approximation der Nullstelle
𝑥𝑥
Neuer Fehler
4 2 2 3 20 𝑥𝑥�0 = −2
𝑓𝑓 𝑥𝑥�1 = 𝑥𝑥�1 + 𝑥𝑥�1 − = ≈ 0,41
5 5 5 49
9
𝑥𝑥�1 = −
7
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 16
Nullstellen – Newton Verfahren – Beispiel – 1. Iteration
𝑦𝑦
 Schätzwert für eine Nullstelle 𝑥𝑥�1

9 𝑓𝑓 𝑥𝑥�0 =2
𝑥𝑥�1 = −
7

 Fehler 𝑓𝑓 𝑥𝑥�1
𝑓𝑓(𝑥𝑥)
𝑓𝑓 𝑥𝑥�1 ≈ 0,41
𝑓𝑓 𝑥𝑥�1 ≈ 0,41
Verbesserung, denn:
𝑥𝑥

𝑓𝑓 𝑥𝑥�1 < 𝑓𝑓 𝑥𝑥�0 𝑥𝑥�0 = −2


≈0,41 2
9
 Aber, 𝑓𝑓 𝑥𝑥�1 >0 𝑥𝑥�1 = −
7
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 17
Nullstellen – Newton Verfahren – Beispiel – 2. Iteration
𝑦𝑦
Verbesserung der Nullstelle: 𝑙𝑙1 (𝑥𝑥)

1. Funktion 𝑓𝑓 𝑥𝑥 durch lineare Funktion 𝑙𝑙1 𝑥𝑥


approximieren (d.h. annähern), sodass gilt:
1. 𝑙𝑙1 𝑥𝑥�1 = 𝑓𝑓 𝑥𝑥�1
2. 𝑙𝑙1′ 𝑥𝑥�1 = 𝑓𝑓 ′ 𝑥𝑥�1 𝑓𝑓(𝑥𝑥)

Nullstelle 𝑙𝑙1 𝑥𝑥 kann leicht bestimmt werden! 𝑓𝑓 𝑥𝑥�1 ≈ 0,41

𝑥𝑥
2. Nullstelle 𝑥𝑥�2 von 𝑙𝑙1 (𝑥𝑥) bestimmen
𝑥𝑥�2
 Hoffnung: Fehler ist besser, d.h. 𝑓𝑓 𝑥𝑥�2 <
9
𝑓𝑓 𝑥𝑥�1 𝑥𝑥�1 = −
7
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 18
Nullstellen – Newton Verfahren – Beispiel – 2. Iteration
𝑦𝑦
Gegeben: 𝑙𝑙1 (𝑥𝑥)

4 2 2 2
 𝑓𝑓 𝑥𝑥 = 𝑥𝑥 + 𝑥𝑥 −
5 5 5

9
 𝑥𝑥�1 = −
7
𝑓𝑓(𝑥𝑥)
Frage: Wie lautet 𝑙𝑙1 𝑥𝑥 = 𝑚𝑚1 𝑥𝑥 + 𝑡𝑡1 ?

Antwort: 𝑥𝑥
58 422
𝑙𝑙1 𝑥𝑥 = − 𝑥𝑥 −
�35 245 𝑥𝑥�2
𝑚𝑚1 𝑡𝑡1
9
𝑥𝑥�1 = −
7
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 19
Nullstellen – Newton Verfahren – Beispiel – 2. Iteration
𝑦𝑦
Gegeben: 𝑙𝑙1 (𝑥𝑥)
58 422
𝑙𝑙1 𝑥𝑥 = − 𝑥𝑥 −
�35 245
𝑚𝑚1 𝑡𝑡2

Bestimme 𝑙𝑙1 𝑥𝑥�2 = 0


𝑓𝑓(𝑥𝑥)
211
𝑥𝑥�2 = − ≈ −1,04
203
Wie lautet der Fehler? 𝑥𝑥
2000
𝑓𝑓 𝑥𝑥�2 = ≈ 0,049
41209 𝑥𝑥�2

211
𝑥𝑥�2 = −
203
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 20
Nullstellen – Newton Verfahren – Beispiel – 3. Iteration
𝑦𝑦
211
 𝑥𝑥�2 = − ≈ 1,04 ist schon ziemlich
203

genau
 Die exakte Nullstelle ist bei 𝑥𝑥0 = −1

 Aber es geht noch besser 𝑓𝑓(𝑥𝑥)

 Wer vergrößern mal den Ausschnitt um


vom Graphen um 𝑥𝑥�2 𝑥𝑥

211
𝑥𝑥�2 = −
203

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 21


Nullstellen – Newton Verfahren – Beispiel – 3. Iteration

Verbesserung der Nullstelle: 𝑦𝑦


𝑓𝑓(𝑥𝑥)
1. Funktion 𝑓𝑓 𝑥𝑥 durch lineare Funktion 𝑙𝑙2 𝑥𝑥
approximieren (d.h. annähern), sodass gilt:
1. 𝑙𝑙2 𝑥𝑥�2 = 𝑓𝑓 𝑥𝑥�2
2. 𝑙𝑙2′ 𝑥𝑥�2 = 𝑓𝑓 ′ 𝑥𝑥�2 𝑥𝑥

Nullstelle 𝑙𝑙2 𝑥𝑥 kann leicht bestimmt werden!

2. Nullstelle 𝑥𝑥�3 von 𝑙𝑙2 (𝑥𝑥) bestimmen


211 𝑙𝑙2 (𝑥𝑥)
 Hoffnung: Fehler ist besser, d.h. 𝑓𝑓 𝑥𝑥�3 < 𝑥𝑥�2 = −
203
𝑓𝑓 𝑥𝑥�3
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 22
Nullstellen – Newton Verfahren – Beispiel – 3. Iteration

Gegeben: 𝑦𝑦
𝑓𝑓(𝑥𝑥)
4 2 2 2
 𝑓𝑓 𝑥𝑥 = 𝑥𝑥 + 𝑥𝑥 −
5 5 5

211
 𝑥𝑥�2 = −
203
𝑥𝑥
Frage: Wie lautet 𝑙𝑙2 𝑥𝑥 = 𝑚𝑚2 𝑥𝑥 + 𝑡𝑡2 ?

Antwort:
1282 260502
𝑙𝑙2 𝑥𝑥 = − 𝑥𝑥 − 211 𝑙𝑙2 (𝑥𝑥)
1015 206045 𝑥𝑥�2 = −
𝑚𝑚2 𝑡𝑡2 203

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 23


Nullstellen – Newton Verfahren – Beispiel – 3. Iteration

Gegeben: 𝑦𝑦
1282 260502 𝑓𝑓(𝑥𝑥)
𝑙𝑙2 𝑥𝑥 = − 𝑥𝑥 −
1015 206045
𝑚𝑚2 𝑡𝑡2

Bestimme 𝑙𝑙2 𝑥𝑥�3 = 0


130251 𝑥𝑥
𝑥𝑥�3 = − ≈ −1,001
130123
Wie lautet der Fehler?
20000000
𝑓𝑓 𝑥𝑥�3 = ≈ 0,0012
16931995129 130251 𝑙𝑙2 (𝑥𝑥)
𝑥𝑥�3 = −
130123

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 24


Nullstellen – Newton Verfahren – Beispiel – 3. Iteration

130251 𝑦𝑦
 𝑥𝑥�2 = − ≈ −1,001 ist schon
130123 𝑓𝑓(𝑥𝑥)
ziemlich genau

 Die exakte Nullstelle ist bei 𝑥𝑥0 = −1

Wenn unser Fließkommaformat nur 𝑥𝑥

zwei Nachkommstellen unterstützt, das


𝑥𝑥�3 ≈ 1,001
ok.

𝑙𝑙2 (𝑥𝑥)

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 25


Nullstellen – Newton Verfahren – Beispiel – Genauigkeit

𝒊𝒊 𝟎𝟎 𝟏𝟏 𝟐𝟐 𝟑𝟑
𝑥𝑥�𝑖𝑖 −2 −1,29 −1,04 −1,001
𝑓𝑓 𝑥𝑥�𝑖𝑖 2 0,41 0,049 0,0012

Pro Iteration, ungefähr Verdopplung der Genauigkeit


07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 26
Nullstellen – Newton Verfahren – Verallgemeinerung
𝑦𝑦
In jedem Schritt: Annäherung 𝑓𝑓 𝑥𝑥 von 𝑙𝑙𝑖𝑖 (𝑥𝑥)
durch 𝑙𝑙𝑖𝑖 (𝑥𝑥), sodass
𝑓𝑓 𝑥𝑥�𝑖𝑖 = 𝑙𝑙𝑖𝑖 𝑥𝑥�𝑖𝑖
𝑓𝑓(𝑥𝑥)
𝑓𝑓′ 𝑥𝑥�𝑖𝑖 = 𝑙𝑙𝑖𝑖 ′ 𝑥𝑥�𝑖𝑖

Da 𝑙𝑙𝑖𝑖 𝑥𝑥 = 𝑚𝑚𝑖𝑖 𝑥𝑥 + 𝑡𝑡𝑖𝑖 ,


𝑙𝑙𝑖𝑖 ′ 𝑥𝑥 = 𝑚𝑚𝑖𝑖
𝑥𝑥
Also 𝑥𝑥�𝑖𝑖

𝑓𝑓 𝑥𝑥𝑖𝑖 = 𝑚𝑚𝑖𝑖 𝑥𝑥�𝑖𝑖 + 𝑡𝑡𝑖𝑖


𝑓𝑓′ 𝑥𝑥𝑖𝑖 = 𝑚𝑚𝑖𝑖
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 27
Nullstellen – Newton Verfahren – Verallgemeinerung
𝑦𝑦
𝑓𝑓 𝑥𝑥�𝑖𝑖 = 𝑚𝑚𝑖𝑖 𝑥𝑥�𝑖𝑖 + 𝑡𝑡𝑖𝑖 (1) 𝑙𝑙𝑖𝑖 (𝑥𝑥)
𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 = 𝑚𝑚𝑖𝑖 (2)

(2) In (1): 𝑓𝑓(𝑥𝑥)

𝑓𝑓 𝑥𝑥�𝑖𝑖 = 𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥�𝑖𝑖 + 𝑡𝑡𝑖𝑖

Somit
𝑡𝑡𝑖𝑖 = 𝑓𝑓 𝑥𝑥�𝑖𝑖 − 𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥𝑖𝑖 (3)
𝑥𝑥
𝑥𝑥�𝑖𝑖
(3) in 𝑙𝑙𝑖𝑖 𝑥𝑥 = 𝑚𝑚𝑖𝑖 𝑥𝑥 + 𝑡𝑡𝑖𝑖

𝑙𝑙𝑖𝑖 𝑥𝑥 = 𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥 + 𝑓𝑓 𝑥𝑥�𝑖𝑖 − 𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥�𝑖𝑖


𝑚𝑚𝑖𝑖 𝑡𝑡𝑖𝑖
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 28
Nullstellen – Newton Verfahren – Verallgemeinerung
𝑦𝑦

𝑙𝑙𝑖𝑖 (𝑥𝑥)
𝑙𝑙𝑖𝑖 𝑥𝑥 = 𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥 + 𝑓𝑓 𝑥𝑥�𝑖𝑖 − 𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥�𝑖𝑖
𝑚𝑚𝑖𝑖 𝑡𝑡𝑖𝑖

Nullstelle 𝑥𝑥�𝑖𝑖+1 von 𝑙𝑙𝑖𝑖 𝑥𝑥�𝑖𝑖+1 = 0 𝑓𝑓(𝑥𝑥)


𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥�𝑖𝑖+1 + 𝑓𝑓 𝑥𝑥�𝑖𝑖 − 𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥�𝑖𝑖 = 0

𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥�𝑖𝑖+1 = 𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖 𝑥𝑥�𝑖𝑖 − 𝑓𝑓 𝑥𝑥�𝑖𝑖


𝑥𝑥
𝑥𝑥�𝑖𝑖
𝑓𝑓 𝑥𝑥�𝑖𝑖
𝑥𝑥�𝑖𝑖+1 = 𝑥𝑥�𝑖𝑖 − ′
𝑓𝑓 𝑥𝑥�𝑖𝑖

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 29


Nullstellen – Newton Verfahren – Verallgemeinerung

Algorithmus: Newton-Verfahren

 Eingabe 𝑓𝑓 𝑥𝑥 , Startwert 𝑥𝑥�0 ,


Genauigkeit 𝜀𝜀

 Setze 𝑖𝑖 ← 0

 Solange 𝑓𝑓 𝑥𝑥�𝑖𝑖 ≥ 𝜀𝜀,


𝑓𝑓 𝑥𝑥�𝑖𝑖
 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 −
𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖

 Setze 𝑖𝑖 ← 𝑖𝑖 + 1

 Ausgabe: 𝑥𝑥�𝑖𝑖
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 30
Nullstellen – Newton Verfahren – Verallgemeinerung –
Beispiel
Beispiel:

4 2 2 2
 𝑓𝑓 𝑥𝑥 = 𝑥𝑥 + 𝑥𝑥 − ,
5 5 5

8 2
 𝑓𝑓 ′ 𝑥𝑥 = 𝑥𝑥 + ,
5 5

 𝑥𝑥�0 = 1,

4
 𝑓𝑓 𝑥𝑥�0 = ≥ 𝜀𝜀 = 0,01
5

4
𝑓𝑓 𝑥𝑥0 5 3
 𝑥𝑥�1 = 𝑥𝑥�0 − ′ =1− =
𝑓𝑓 𝑥𝑥0 2 5

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 31


Nullstellen – Newton Verfahren – Verallgemeinerung –
Beispiel
Beispiel:

4 2 2 2
 𝑓𝑓 𝑥𝑥 = 𝑥𝑥 + 𝑥𝑥 − ,
5 5 5

8 2
 𝑓𝑓 ′ 𝑥𝑥 = 𝑥𝑥 + ,
5 5

3
 𝑥𝑥�1 = ,
5

16
 𝑓𝑓 𝑥𝑥�1 = ≈ 0,128 ≥ 𝜀𝜀 = 0,01
125
16
𝑓𝑓 𝑥𝑥1 3 125 43
 𝑥𝑥�2 = 𝑥𝑥�1 − = − 34 = ≈ 0,506
𝑓𝑓 ′ 𝑥𝑥1 5 85
25
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 32
Nullstellen – Newton Verfahren – Verallgemeinerung –
Beispiel
Beispiel:

4 2 2 2
 𝑓𝑓 𝑥𝑥 = 𝑥𝑥 + 𝑥𝑥 − ,
5 5 5

8 2
 𝑓𝑓 ′ 𝑥𝑥 = 𝑥𝑥 + ,
5 5

43
 𝑥𝑥�2 = ,
85

256
 𝑓𝑓 𝑥𝑥�2 = ≈ 0,0071 < 𝜀𝜀 = 0,01
36125

43
 Ausgabe: 𝑥𝑥�2 = ≈ 0,506
85
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 33
Nullstellen – Newton Verfahren – Verallgemeinerung –
Probleme
Algorithmus: Newton-Verfahren Problem bei schlechtem Startwert:

 Eingabe 𝑓𝑓 𝑥𝑥 , Startwert 𝑥𝑥�0 ,  Konvergenz zu einer ungewünschten


Genauigkeit 𝜀𝜀 Nullstelle

 Setze 𝑖𝑖 ← 0  Divergenz, d.h. 𝑥𝑥�𝑖𝑖 → ±∞

 Solange 𝑓𝑓 𝑥𝑥�𝑖𝑖 ≥ 𝜀𝜀,  Zyklen, d.h. 𝑥𝑥𝑖𝑖 = 𝑥𝑥𝑖𝑖+𝑘𝑘 ⇒ Keine


𝑓𝑓 𝑥𝑥� Nullstelle
 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 − ′ �𝑖𝑖
𝑓𝑓 𝑥𝑥𝑖𝑖

 Setze 𝑖𝑖 ← 𝑖𝑖 + 1

 Ausgabe: 𝑥𝑥�𝑖𝑖
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 34
Nullstellen – Newton Verfahren – Verallgemeinerung –
Probleme
Algorithmus: Newton-Verfahren Problem, falls 𝑓𝑓 ′ 𝑥𝑥 = 0

 Eingabe 𝑓𝑓 𝑥𝑥 , Startwert 𝑥𝑥�0 ,  Division durch 0,


Genauigkeit 𝜀𝜀  Keine Verbesserung der Nullstelle
 Setze 𝑖𝑖 ← 0 Problem, falls 𝑓𝑓 ′ 𝑥𝑥 nicht existiert
 Solange 𝑓𝑓 𝑥𝑥�𝑖𝑖 ≥ 𝜀𝜀,
𝑓𝑓 𝑥𝑥�𝑖𝑖
 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 −
𝑓𝑓 ′ 𝑥𝑥�𝑖𝑖

 Setze 𝑖𝑖 ← 𝑖𝑖 + 1

 Ausgabe: 𝑥𝑥�𝑖𝑖
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 35
Nullstellen – Newton Verfahren – Verallgemeinerung –
Konvergenz
 Konvergenzgeschwindigkeit: Wie viele Iterationen braucht man bis zur Nullstelle?
 Nullstelle 𝑥𝑥0
 Approximation 𝑥𝑥�𝑖𝑖
 Abstand zur echten Nullstelle: 𝜀𝜀𝑖𝑖 = |𝑥𝑥�𝑖𝑖 − 𝑥𝑥0 | < 1

 Quadratisch Konvergenzgeschwindigkeit bei einfachen Nullstellen


 In jede Iteration quadriert sich der Fehler: 𝜀𝜀𝑖𝑖+1 = 𝐾𝐾 ⋅ 𝜀𝜀𝑖𝑖2
 Verdopplung der Anzahl der richtigen Stellen pro Iteration
 Falls Konvergenz, dann schnell

 Lineare Konvergenzgeschwindigkeit bei mehrfachten Nullstelle: 𝜀𝜀𝑖𝑖+1 = 𝐾𝐾 ⋅ 𝜀𝜀𝑖𝑖

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 36


Nullstellen – Newton Verfahren – Zusammenfassung

Schnelles Verfahren zur Bestimmung von Nullstellen

 Man braucht Kenntnis der Funktion

 Man braucht Kenntnis über die gesuchte Nullstelle

 Ableitung muss in der Nähe der Nullstelle


 existieren
 nicht null werden

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 37


Agenda

1 Newton-Verfahren

2 Division

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 38


Division

Division:
𝑎𝑎
div 𝑎𝑎, 𝑏𝑏 =
𝑏𝑏
umschreiben:
1
div 𝑎𝑎, 𝑏𝑏 = 𝑎𝑎 ⋅ = 𝑎𝑎 ⋅ inv(𝑏𝑏)
𝑏𝑏
mit
1
inv 𝑏𝑏 =
𝑏𝑏
 Somit: Multiplikatives inverses Element inv 𝑏𝑏 berechnen

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 39


Division

 Betrachte:

1
𝑓𝑓𝑏𝑏 𝑥𝑥 = − 𝑏𝑏 = 𝑥𝑥 −1 − 𝑏𝑏
𝑥𝑥

 Frage: Bestimme die Nullstelle 𝑥𝑥0 von 𝑓𝑓𝑏𝑏 𝑥𝑥 ?

1
 Antwort: 𝑥𝑥0 = = 𝑏𝑏 −1 = inv 𝑏𝑏
𝑏𝑏

1
 Idee: Benutze Newton Iteration auf der Funktion 𝑓𝑓𝑏𝑏 𝑥𝑥 um zu bestimmen
𝑏𝑏

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 40


Division – Newton-Iteration

Algorithmus: Newton-Verfahren 𝑓𝑓𝑏𝑏 𝑥𝑥 = 𝑥𝑥 −1 − 𝑏𝑏

 Eingabe 𝑓𝑓𝑏𝑏 𝑥𝑥 , Startwert 𝑥𝑥�0 , Berechne 𝑓𝑓𝑏𝑏′ 𝑥𝑥 :


Genauigkeit 𝜀𝜀 𝑓𝑓𝑏𝑏′ 𝑥𝑥 = −𝑥𝑥 −2

 Setze 𝑖𝑖 ← 0 Berechne 𝑥𝑥�𝑖𝑖+1 :

 Solange 𝑓𝑓𝑏𝑏 𝑥𝑥�𝑖𝑖 ≥ 𝜀𝜀, 𝑓𝑓 𝑥𝑥�𝑖𝑖


𝑥𝑥�𝑖𝑖+1 = 𝑥𝑥�𝑖𝑖 − ′
𝑓𝑓 𝑥𝑥�𝑖𝑖
𝑓𝑓𝑏𝑏 𝑥𝑥�𝑖𝑖
 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 − 𝑥𝑥� −1 − 𝑏𝑏 2
𝑓𝑓𝑏𝑏′ 𝑥𝑥�𝑖𝑖 = 𝑥𝑥�𝑖𝑖 − = 2 𝑥𝑥
� − 𝑥𝑥

−2 𝑖𝑖 𝑖𝑖 𝑏𝑏
−𝑥𝑥�
 Setze 𝑖𝑖 ← 𝑖𝑖 + 1

 Ausgabe: 𝑥𝑥�𝑖𝑖 = 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏


07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 41
Division – Newton-Iteration

1 1
Algorithmus: Bestimmen von Beispiel berechnen: 𝑏𝑏 = 4
𝑏𝑏 4

 Startwert 𝑥𝑥�0 , Genauigkeit 𝜀𝜀  𝑥𝑥�0 = 0,1

 Setze 𝑖𝑖 ← 0  𝑥𝑥�1 = 𝑥𝑥�0 2 − 4 ⋅ 𝑥𝑥�0 = 0,16

 Solange 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ≥ 𝜀𝜀,  𝑥𝑥�2 = 𝑥𝑥�1 2 − 4 ⋅ 𝑥𝑥�1 = 0,2176

 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏  𝑥𝑥�3 = 𝑥𝑥�2 2 − 4 ⋅ 𝑥𝑥�2 = 0,24580096


 Setze 𝑖𝑖 ← 𝑖𝑖 + 1
 𝑥𝑥�4 = 𝑥𝑥�3 2 − 4 ⋅ 𝑥𝑥�3 = 0,2499294723
 Ausgabe: 𝑥𝑥�𝑖𝑖
Alles ok

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 42


Division – Newton-Iteration

1 1
Algorithmus: Bestimmen von Beispiel berechnen: 𝑏𝑏 = 4
𝑏𝑏 4

 Startwert 𝑥𝑥�0 , Genauigkeit 𝜀𝜀  𝑥𝑥�0 = 0,5

 Setze 𝑖𝑖 ← 0  𝑥𝑥�1 = 𝑥𝑥�0 2 − 4 ⋅ 𝑥𝑥�0 = 0

 Solange 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ≥ 𝜀𝜀,  𝑥𝑥�2 = 𝑥𝑥�1 2 − 4 ⋅ 𝑥𝑥�1 = 0

 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏  𝑥𝑥�3 = 𝑥𝑥�2 2 − 4 ⋅ 𝑥𝑥�2 = 0


 Setze 𝑖𝑖 ← 𝑖𝑖 + 1
 𝑥𝑥�4 = 𝑥𝑥�3 2 − 4 ⋅ 𝑥𝑥�3 = 0
 Ausgabe: 𝑥𝑥�𝑖𝑖
 Konvergenz gegen keine Nullstelle

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 43


Division – Newton-Iteration

1 1
Algorithmus: Bestimmen von Beispiel berechnen: 𝑏𝑏 = 4
𝑏𝑏 4

 Startwert 𝑥𝑥�0 , Genauigkeit 𝜀𝜀  𝑥𝑥�0 = 1

 Setze 𝑖𝑖 ← 0  𝑥𝑥�1 = 𝑥𝑥�0 2 − 4 ⋅ 𝑥𝑥�0 = −2

 Solange 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ≥ 𝜀𝜀,  𝑥𝑥�2 = 𝑥𝑥�1 2 − 4 ⋅ 𝑥𝑥�1 = −20

 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏  𝑥𝑥�3 = 𝑥𝑥�2 2 − 4 ⋅ 𝑥𝑥�2 = −1640


 Setze 𝑖𝑖 ← 𝑖𝑖 + 1
 𝑥𝑥�4 = 𝑥𝑥�3 2 − 4 ⋅ 𝑥𝑥�3 = −10761680
 Ausgabe: 𝑥𝑥�𝑖𝑖
 Divergenz

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 44


Division – Newton-Iteration – Startwert

1  Startwert muss richtig gewählt werden


Algorithmus: Bestimmen von
𝑏𝑏
 Vereinfachung: 𝑏𝑏 > 0
 Startwert 𝑥𝑥�0 , Genauigkeit 𝜀𝜀
 Falls 𝑏𝑏 < 0 muss man das Ergebnis
 Setze 𝑖𝑖 ← 0 am Schluss 𝑥𝑥�𝑖𝑖+1 mit −1
multiplizieren
 Solange 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ≥ 𝜀𝜀,
 Konvergenz gilt dann wenn
 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏
𝑥𝑥�𝑖𝑖+1 > 0
 Setze 𝑖𝑖 ← 𝑖𝑖 + 1
 Also:
 Ausgabe: 𝑥𝑥�𝑖𝑖 𝑥𝑥�𝑖𝑖+1 = 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏 > 0

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 45


Division – Newton-Iteration – Startwert

 Somit muss für den Startwert gelten:


𝑥𝑥�0 2 − 𝑥𝑥�0 𝑏𝑏 > 0

 nach 𝑥𝑥�0 auflösen:

2
0 < 𝑥𝑥�0 <
𝑏𝑏

 Verbal: Der Startwert muss


 Positiv sein
 Kleiner als das doppelte Inverse

 Wie können wir das erreichen?


07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 46
Division – Newton-Iteration – Startwert

2
 Es muss gelten 0 < 𝑥𝑥�0 <
𝑏𝑏

 Lösung: Beschränken von 𝑏𝑏:


1 < 𝑏𝑏 < 2

 Für Konvergenz muss dann gelten

2 2
0 < 𝑥𝑥�0 < min , =1
2 1

 Wenn der Startwert 0 < 𝑥𝑥�0 < 1 dann bekommen wir ein Ergebnis

 Aber nur falls 1 < 𝑏𝑏 < 2


07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 47
Division – Newton-Iteration – Startwert

 Was macht man mit 𝑏𝑏s, für die nicht gilt: 1 < 𝑏𝑏 < 2

 Betrachte Fließkommadarstellung von 𝑏𝑏 = 2𝑒𝑒 ⋅ 𝑚𝑚

 Inverse:

1 1
= 𝑒𝑒
𝑏𝑏 2 ⋅ 𝑚𝑚
1 1
= 𝑒𝑒 ⋅ 0
2 2 ⋅ 𝑚𝑚
 𝑏𝑏 = 20 𝑚𝑚 ist eine Fließkommazahl für die gilt
1 < 20 𝑚𝑚 < 2
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 48
Division – Newton-Iteration – Startwert

1 1
Algorithmus: Bestimmen von Algorithmus: Bestimmen von
𝑏𝑏 𝑐𝑐

 Eingabe: 𝑏𝑏 = 2𝑒𝑒 ⋅ 𝑚𝑚, Genauigkeit 𝜀𝜀  Eingabe: 𝑐𝑐 = −1 𝑠𝑠 2𝑒𝑒 𝑚𝑚, Genauigkeit 𝜀𝜀

 Setze 𝑏𝑏 ← 20 𝑚𝑚

 Startwert 𝑥𝑥�0  Setze Startwert 𝑥𝑥�0 ← (0. . 1)

 Setze 𝑖𝑖 ← 0  Setze 𝑖𝑖 ← 0

 Solange 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ≥ 𝜀𝜀,  Solange 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ≥ 𝜀𝜀,


 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏  Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏
 Setze 𝑖𝑖 ← 𝑖𝑖 + 1  Setze 𝑖𝑖 ← 𝑖𝑖 + 1
𝑠𝑠
 Ausgabe: 𝑥𝑥�𝑖𝑖+1  Ausgabe: −1 ⋅ 2−𝑒𝑒 ⋅ 𝑥𝑥�𝑖𝑖+1

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 49


Division – Newton-Iteration – Startwert

 Startwert zwischen 0,1 garantiert Konvergenz

 Wir bekommen das richtige Ergebnis

 Je näher der Startwert am Ergebnis, um so schneller kommen wir zum Ergebnis

 CPUs schätzen Startwerte per Tabelle oder linearer Funktion

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 50


Division – Newton-Iteration – Abbruchkriterium

𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ≥ 𝜀𝜀

Fall 1: 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 > 0 Fall 2: 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 < 0

𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ⋅ 𝑥𝑥�𝑖𝑖 ≥ 𝜀𝜀 ⋅ 𝑥𝑥�𝑖𝑖 − 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ⋅ 𝑥𝑥�𝑖𝑖 ≥ 𝜀𝜀 ⋅ 𝑥𝑥�𝑖𝑖

1 − 𝑏𝑏𝑥𝑥�𝑖𝑖 < 𝜀𝜀 𝑥𝑥�𝑖𝑖 −1 + 𝑏𝑏𝑥𝑥�𝑖𝑖 < 𝜀𝜀𝑥𝑥�𝑖𝑖

|1 − 𝑏𝑏𝑥𝑥�𝑖𝑖 | < 𝜀𝜀 𝑥𝑥�𝑖𝑖 |1 − 𝑏𝑏𝑥𝑥�𝑖𝑖 | < 𝜀𝜀𝑥𝑥�𝑖𝑖

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 51


Division – Newton-Iteration – Abbruchkriterium

1 1
Algorithmus: Bestimmen von Algorithmus: Bestimmen von
𝑐𝑐 𝑐𝑐

 Eingabe: 𝑐𝑐 = 2𝑒𝑒 ⋅ 𝑚𝑚, Genauigkeit 𝜀𝜀  Eingabe: 𝑐𝑐 = −1 𝑠𝑠 2𝑒𝑒 𝑚𝑚, Genauigkeit 𝜀𝜀

 Setze 𝑏𝑏 ← 20 ⋅ 𝑚𝑚  Setze 𝑏𝑏 ← 20 𝑚𝑚

 Setze Startwert 𝑥𝑥�0 ← (0. . 1)  Setze Startwert 𝑥𝑥�0 ← (0. . 1)

 Setze 𝑖𝑖 ← 0  Setze 𝑖𝑖 ← 0

 Solange 𝑥𝑥�𝑖𝑖−1 − 𝑏𝑏 ≥ 𝜀𝜀,  Solange 1 − 𝑏𝑏𝑥𝑥�𝑖𝑖 ≥ 𝜀𝜀 𝑥𝑥�𝑖𝑖 ,


 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏  Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏
 Setze 𝑖𝑖 ← 𝑖𝑖 + 1  Setze 𝑖𝑖 ← 𝑖𝑖 + 1
 Ausgabe: −1 𝑠𝑠 ⋅ 2−𝑒𝑒 ⋅ 𝑥𝑥�𝑖𝑖+1
 Ausgabe: 2−𝑒𝑒 ⋅ 𝑥𝑥�𝑖𝑖+1

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 52


Division – Newton-Iteration – Beispiele

Algorithmus: Bestimmen von


1 Eingabe: 𝑐𝑐 = 3, 𝜀𝜀 = 0,001
𝑐𝑐
0
 Eingabe: 𝑐𝑐 = −1 𝑠𝑠 2𝑒𝑒 𝑚𝑚, Genauigkeit 𝜀𝜀  𝑐𝑐 = 3 = −1 ⋅ 21 ⋅ 1,12 = 21 ⋅ 1,510

 Setze 𝑏𝑏 ← 20 𝑚𝑚  𝑏𝑏 = 𝑚𝑚 = 1,5, 𝑒𝑒 = 1
𝑖𝑖 𝑥𝑥�𝑖𝑖 𝑝𝑝 = |1 − 𝑏𝑏𝑥𝑥�𝑖𝑖 | 𝑞𝑞 = 𝜀𝜀 𝑥𝑥�𝑖𝑖 𝑝𝑝 < 𝑞𝑞
 Setze Startwert 𝑥𝑥�0 ← (0. . 1)
0 0.5 .25 0.5 ⋅ 10−3 Nein
 Setze 𝑖𝑖 ← 0 1 0.625 0.625 ⋅ 10−1 0.625 ⋅ 10−3 Nein
2 0.6640625 0.390625 ⋅ 10−2 0.6640625 ⋅ 10−3 Nein
 Solange 1 − 𝑏𝑏𝑥𝑥�𝑖𝑖 ≥ 𝜀𝜀 𝑥𝑥�𝑖𝑖 ,
3 0.6666564941 0.152588 ⋅ 10−4 0.6666564941 ⋅ 10−3 Ja
 Setze 𝑥𝑥�𝑖𝑖+1 ← 𝑥𝑥�𝑖𝑖 2 − 𝑥𝑥�𝑖𝑖 𝑏𝑏
 Setze 𝑖𝑖 ← 𝑖𝑖 + 1 1
 ≈ 2−𝑒𝑒 ⋅ 𝑥𝑥�3 = 0.6666564941 ⋅ 2−1
𝑐𝑐
 Ausgabe: −1 𝑠𝑠 ⋅ 2−𝑒𝑒 ⋅ 𝑥𝑥�𝑖𝑖+1
= 0.3333282470
07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 53
Division – Newton-Iteration – Realität

 Fließkommadivision ist schneller als Integerdivision


 32-Bit Float: 11 Taktzyklen Latenz
 32-Bit Integer: 26 Taktzyklen Latenz

 Startwerte:
 Je besser der Startwert, um so weniger Iteration
 Prozessoren haben Tabelle, sodass für 32-Bit Float 3 Iterationen ausreichen
 CPU Instruktion für Startwert:
 Entwickler kann Ergebnisgenauigkeit durch Anzahl der Iterationen selber
steuern

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 54


Andere Funktion

1 1
 Inverse Wurzel: : Finde Nullstelle von 𝑓𝑓 𝑥𝑥 = − 𝑎𝑎
𝑎𝑎 𝑥𝑥 2

 Wurzel?

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 55


From Quake III Arena

float q_rsqrt(float number)


{
long i;
float x2, y;
const float threehalfs = 1.5F;

float x2 = number * 0.5F;


float y = number;
int i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
y = * ( float * ) &i;
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed

return y;
}

07Fliesskommadivision.pptx, 1.1, © 2018 – 2024, Prof. Dr.-Ing. Quirin Meyer Rechnerarchitekturen 56

Das könnte Ihnen auch gefallen