numerik – interaktiv - fbe · numerik – interaktiv thomas risse institut f¨ur informatik und...

54
Numerik – interaktiv Thomas Risse Institut f¨ ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt, diverse grundlegende numerische Algo- rithmen interaktiv zu untersuchen. So bestimmt dieses Dokument die Berechnungsgenauigkeit, erm¨ oglicht einfachste 2D und 3D Vektorrechnung, l¨ ost Systeme linearer Glei- chungen, invertiert Matrizen, listet einige numerische Konstanten, bie- tet die M¨ oglichkeit, beliebige aus elementaren Funktionen zusammen- gesetzte Funktionen auszuwerten, stellt diese elementaren Funktio- nen zusammen mit ihren Umkehr-Funktionen vor, f¨ uhrt CORDIC- Algorithmen ein, erlaubt, Nullstellen, Minima und Integrale solcher beliebigen Funktionen zu approximieren sowie gew¨ ohnliche Differen- tialgleichungen erster Ordnung numerisch zu l¨ osen. 1

Upload: dangbao

Post on 03-Jun-2019

251 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

Numerik – interaktiv

Thomas RisseInstitut fur Informatik und Automation

Hochschule Bremen

5. Dezember 2007

Zusammenfassung

Dieses Dokument erlaubt, diverse grundlegende numerische Algo-rithmen interaktiv zu untersuchen.So bestimmt dieses Dokument die Berechnungsgenauigkeit, ermoglichteinfachste 2D und 3D Vektorrechnung, lost Systeme linearer Glei-chungen, invertiert Matrizen, listet einige numerische Konstanten, bie-tet die Moglichkeit, beliebige aus elementaren Funktionen zusammen-gesetzte Funktionen auszuwerten, stellt diese elementaren Funktio-nen zusammen mit ihren Umkehr-Funktionen vor, fuhrt CORDIC-Algorithmen ein, erlaubt, Nullstellen, Minima und Integrale solcherbeliebigen Funktionen zu approximieren sowie gewohnliche Differen-tialgleichungen erster Ordnung numerisch zu losen.

1

Page 2: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

1 Vorbemerkung

Dieses Dokument soll helfen, Einsichten in Arbeitsweise und Leistung ei-niger grundlegender numerischer Algorithmen zu vermitteln, indem es dieGelegenheit bietet, jeder Algorithmus direkt auszufuhren, Abhangigkeit vonStartwerten zu untersuchen, Komplexitat von verschiedenen Algorithmen mitderselben Zielsetzung zu vergleichen usw.

1.1 Konventionen und Gebrauch

Im Folgenden grundsatzlich:

click = , um eine Operation auszufuhren oder eine Funktion auszuwerten;

click Operation , um Argumente und Ergebnis zu loschen,

Eingaben in -Felder

Ausgaben in oder -Felder

Das layout zielt darauf ab, alle fur einen Algorithmus relevanten Informa-tionen – Bildschirm-fullend, also Fenster-Breite (Strg-2) im Acrobat Readeroder Seiten-Breite (Strg-3) im Acrobat Writer – auf einer Seite darzustellen.

2

Page 3: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

1.2 Rechengenauigkeit

Die relative Rechengenauigkeit1 ν wird durch

epsilon=1.0;

while (1.0+epsilon>1.0) epsilon/=2;

nu=2*epsilon;

bestimmt. Fur JavaScript gilt: JS precision ν =

Ub. Genauigkeit von JavaScript Berechnungen ausgedruckt in Anzahl vonDezimal-Ziffern?

1.3 Gleitpunkt-Arithmetik

Aufgrund der beschrankten Genauigkeit gelten bestimmte Gesetze der Arith-metik im Rechner nicht! etwa das der Assoziativitat (a+ b)+ c = a+(b+ c)

a =

b =

c =

(a + b) + c =

a + (b + c) =reset Add

Ub. Berechne den relativen Fehler!

1 Im Gegensatz zu JavaScript oder Java-applets konnen Computer-Algebra-Pakete wieetwa Mathematica, Maple oder MuPad mit beliebig vorzugebender Genauigkeit rechnen.

3

Page 4: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

1.4 Gleitpunkt-Arithmetik mit gegebener Prazision

JavaScript-Berechnungen sind ziemlich genau. Um die Effekte der beschrank-ten Genauigkeit demonstrieren zu konnen, kann nun die Anzahl der Dezimal-Ziffern fur die Darstellung von Gleitpunkt-Zahlen vorgegeben werden.

Argumente und Ergebnisse dargestellt mit JavaScript-Genauigkeit

a = b = c =

a + b = (a + b) + c =

b + c = a + (b + c) =

p = # Dezimal-Ziffern = test random reset Add

Argumente und Ergebnisse dargestellt mit p Dezimal-Ziffern

a = b = c =

(a + b) = (a + b) + c =

(b + c) = a + (b + c) =

Ub. Darstellung der eingegebenen Zahlen? relativer Fehler fur verschiedenep ?

4

Page 5: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

2 Vektor-Rechnung

2.1 Operationen auf Vektoren der Ebene

2.1.1 skalare Vielfache c~a von Vektoren ~a der Ebene

·( )

=( )

2.1.2 Addition ~a +~b von Vektoren der Ebene( )+

( )=

( )

2.1.3 Skalar-Produkt ~a ·~b von Vektoren der Ebene( )·

( )=

Ub.: Welchen Winkel 6 (~a,~b) schließen die Vektoren ~a =√

22

(1, 1) und ~b =

(√

3− 2, 1) ein? Verwende Abschnitt 5.

2.1.4 Lange oder Betrag |~a| von Vektoren der Ebene

reset∣∣∣∣∣( )∣∣∣∣∣ =

Ub.: Normalisiere Vektoren wie ~a =√

22

(1, 1) oder ~b = (√

3−2, 1). VerwendeAbschnitt 5.

5

Page 6: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

2.2 Operationen auf Vektoren im Raum

2.2.1 skalare Vielfache c~a von Vektoren ~a im Raum

·

=

2.2.2 Addition ~a +~b von Vektoren im Raum +

=

2.2.3 Skalar-Produkt ~a ·~b von Vektoren im Raum ·

=

2.2.4 Lange oder Betrag |~a| von Vektoren im Raum

reset

∣∣∣∣∣∣∣∣

∣∣∣∣∣∣∣∣ =

2.2.5 Vektor-Produkt ~a×~b von Vektoren im Raum ×

=

Ub.: Verifiziere: ~ex, ~ey und ~ez sind orthonormiert.

Ub.: Konstruiere ’Einheitswurfel’ mit Ecken in ~0 und√

33

(1, 1, 1).

6

Page 7: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

3 lineare Gleichungssysteme

Lineare Gleichungssysteme sind durch Ax = b gegeben. Zur Demonstrationwerden nur 3 × 3-Koeffizienten-Matrizen A verwendet, also LGSe mit dreiGleichungen in drei Unbekannten. Verglichen werden das Gauß’sche Elimina-tionsverfahren ohne und mit Pivotisierung und das Gauß-Seidel-Verfahren.

7

Page 8: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

3.1 Gauß’sches Eliminationsverfahren

Koeffizienten-Matrix A und Vektor b der rechten Seite spezifizieren:

A=

Ax=A

x1

x2

x3

=A

=

=b

reset tests random save A and b det(A) =

x1 eliminieren dann x2 eliminieren

x3 bestimmen x2 bestimmen x1 bestimmen

Mit originaler Koeffizienten-Matrix A, Losungsvektor x und originalem Vek-tor b der rechten Seite berechne Residuum r = b−Ax Residuum

x

=

= r mit ||r||2 =

Ub.: Genauigkeit? Losungsbedingungen? unterbestimmte Systeme linearerGleichungen?

8

Page 9: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

3.2 Gauß’sches Eliminationsverfahrenmit Pivotisierung

Details zur partiellen und vollstandigen Pivotisierung siehe z.B.www.weblearn.hs-bremen.de/risse/MAI/docs/heath.pdf

Koeffizienten-Matrix A und Vektor b der rechten Seite spezifizieren:

A=

Ax=A

x1

x2

x3

=A

=

=b

reset test random save A and b det(A) = solve

Mit originaler Koeffizienten-Matrix A, Losungsvektor x und originalem Vek-tor b der rechten Seite berechne Residuum r = b−Ax Residuum

x

=

= r mit ||r||2 =

Ub.: Was passiert, wenn die Matrix schlecht konditioniert ist? vgl.www.weblearn.hs-bremen.de/risse/MAI/docs/heath.pdf

9

Page 10: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

3.3 Stifel’sches Verfahren – LGS & Matrix Inversion

Das Stifel’sche Austauschverfahren lost quadratische Systeme linearer Glei-chungen Ax = b, indem jede Gleichung nach einer Unbekannten aufgelostund die Unbekannte in allen anderen Gleichungen durch den sich ergeben-den Ausdruck ersetzt wird. Dabei werden also Unbekannte gegen Konstanten(der rechten Seite) ausgetauscht. Das Verfahren lost Ax = b, indem dieKoeffizienten-Matrix A invertiert wird, so daß sich x = A−1b ergibt.

Austausche werden im folgenden Schema durchgefuhrt. Die sogenannte Kel-ler-Zeile speichert Zwischenergebnisse zur Wiederverwendung.

x1 x2 . . . xj . . . xn

b1 a11 a12 . . . a1j . . . a1n

......

bi ai1 ai2 . . . aij . . . ain

......

bn−1 an−1,1 an−1,2 . . . an−1,j . . . an−1,n

bn an1 an2 . . . anj . . . ann

Keller —

bi wird gegen xj durch die folgende Prozedur ausgetauscht:

vorbereiten pivot = aij; for (k 6= j) Keller[k] = −aik/pivot;

austauschen aij = 1/pivot; for (k 6= i) akj /= pivot;

for (k 6= j) akj=tmp[k];

for (u 6= i) for (v 6= j) auv += auj*tmp[v];

Ub.: Verifiziere die Invarianz von Spalten-Vektor (linke Seite des Schemas)= Matrix mal transponierter Zeilen-Vektor (oben im Schema).

10

Page 11: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

reset test random save A

Keller

mit det(A) =1. click: Keller fullen2. click: Rest setzen3. click: Pivot-Spalte setzen4. click: Pivot-Zeile setzen

1�61

1�62

1�63

2�61

2�62

2�63

3�61

3�62

3�63

verifiziereAA−1 = I

AA−1 =

Ub.: Genauigkeit? Auswirkungen verschiedener Reihenfolgen der Austausch-schritte?

11

Page 12: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

3.4 Gauß-Seidel-Verfahren

Vorausgesetzt, alle Hauptdiagonal-Elemente der Koeffizienten-Matrix sindvon Null verschieden, d.h. aii 6= 0 fur i = 1, . . . , n, so laßt sich Ax = b nachden Unbekannten der Hauptdiagonalen auflosen, fur n = 3 also

x1 = 1a11

(b1 − a12x2 − a13x3)

x2 = 1a22

(b2 − a21x1 − a23x3)

x3 = 1a33

(b3 − a31x1 − a32x2)

und per

x(k+1)1 = 1

a11

(b1 − a12x

(k)2 − a13x

(k)3

)x

(k+1)2 = 1

a22

(b2 − a21x

(k+1)1 − a23x

(k)3

)x

(k+1)3 = 1

a33

(b3 − a31x

(k+1)1 − a32x

(k+1)2

)dazu nutzen, ausgehend von einem Start-Vektor x(0) schrittweise x(k) einzu-setzen und unter Verwendung bereits verbesserter Komponenten weiter zuverbessern und so x(k) in x(k+1) zu uberfuhren.

Das Verfahren konvergiert, wenn etwa (gegebenenfalls nach Umordnung) dieHauptdiagonalelemente jeweils die ubrigen Elemente der zugehorigen Zeiledominieren, d.h. wenn |ai,i| >

∑nj=1,j 6=i |ai,j| fur i = 1, . . . , n gilt.

12

Page 13: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

Koeffizienten-Matrix A und Vektor b der rechten Seite spezifizieren:

A=

Ax(k+1) =

= b

Start-Vektor x(0) =

, det(A) =

reset test random A random b random x(0) Konvergenz?

k =

x(k) =

k + 1 =

x(k+1) =

x(k)1 → x

(k+1)1 x

(k)2 → x

(k+1)2 x

(k)3 → x

(k+1)3 oder zusammen k → k + 1

Ub.: Abhangigkeit vom Start-Vektor? Konvergenzgeschwindigkeit?

Ub.: Vergleich direktes (Gauß) mit iterativem (Gauß-Seidel) Verfahren?

13

Page 14: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

4 einige Konstanten

e =

ln 2 =

ld e=log2 e=

√1/2 =

π =

ln 10 =

lg e=log10 e=

√2 =

get constants

Ub.: Vergleiche die ’eingebauten’ Konstanten mit berechneten Werten ge-eigneter Funktionen im Abschnitt 5.

14

Page 15: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

5 Berechnung von Funktionswerten

Ausgewertet werden beliebige, aus abs, chi, pow, sqrt, exp, ln, sin, cos,tan, cot, arcsin, arccos, arctan, arccot, sinh, cosh, tanh, coth, arsinh,arcosh, artanh, arcoth, factorial, gamma, loggamma und den Konstan-ten e und pi (genauso geschrieben) zusammengesetzte Funktionen in dereinen unabhangigen Variablen x. Dabei ist die charakteristische Funktion

chi(x,a,b) durch χ[a,b](x) =

{1 x ∈ [a, b]0 sonst

mit a < b definiert. Auch fur

das Argument x selbst sind beliebige konstante Ausdrucke in den obigenFunktionen und Konstanten zugelassen.

f(x) =

i.e. f(x) =

f( )= test

Ub.: Berechne sin(x) und cos(x) etwa fur x = 30o, 45o, 60o, . . . mithilfe ge-eigneter Funktionen sin und cos.

Ub.: Bestimme arctan(x) fur x = 1,√

3, . . . in Grad.

Ub.: Werte Funktionen wie arsinh(x) oder arcosh(x) fur x = 0, 1, . . . aus.

Ub.: Was passiert mit sin(x)x

fur 0 < x� 1, wenn limx→0sin(x)

xzu bestimmen

ist.

Ub.: Vergleiche gamma(n) und factorial(n-1).

15

Page 16: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

6 elementare Funktionen mit Inversen

6.1 Exponentialfunktion und Logarithmus

6.1.1 Exponentialfunktion

exp( ) =

=ln( )Graph

6.1.2 Logarithmus

ln( ) =

=exp( )Graph

Ub.: Berechne eln c fur c > 0 und ln ed fur beliebige reelle d.

16

Page 17: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

6.2 trigonometrische Funktionenmit ihren Umkehr-Funktionen

6.2.1 Sinus und Arcus-Sinus

sin(arcus degree ) =

= arcsin( )Graph

6.2.2 Cosinus und Arcus-Cosinus

cos(arcus degree )=

= arccos( )Graph

6.2.3 Tangens und Arcus-Tangens

tan(arcus degree )=

= arctan( )Graph

6.2.4 Cotangens und Arcus-Cotangens

cot(arcus degree )=

= arccot( )Graph

Ub.: Werte fur 0, π/6, π/4, π/3 und π/2, Periodizizat, Symmetrie

Ub.: sin x ≈ x, cos x ≈ 1, tan x ≈ x fur |x| � 1,

17

Page 18: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

6.3 hyperbolische Funktionenmit ihren Umkehr-Funktionen

6.3.1 Sinus hyperbolicus

sinh( ) =

=arsinh( )Graph

6.3.2 Cosinus hyperbolicus

cosh( ) =

=arcosh( )Graph

6.3.3 Tangens hyperbolicus

tanh( ) =

=artanh( )Graph

6.3.4 Cotangens hyperbolicus

coth( ) =

=arcoth( )Graph

Ub.: Welche Asymptoten haben tanh und coth? Welche Problematik ergibtsich fur artanh(tanh(x)) bzw. fur arcoth(coth(x)) ?

18

Page 19: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

Ub.: Die Implementierung von sinh, cosh, tanh und coth ist ’straight for-ward’. Recherchiere: Wie sind aber deren Inverse arsinh, arcosh, artanh undarcoth zu implementieren, wenn allein ln und sqrt zur Verfugung stehen?

19

Page 20: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7 CORDIC – Auswertung elementarer Funk-

tionen in hardware

CORDIC steht fur ¨COordinate Rotation DIgital Computer¨. CORDIC-Algorithmen berechnen bestimmte elementare Funktionen unter fast aus-schließlicher Verwendung von schnellen Operationen, namlich Additionen(adds) und Multiplikationen mit Zweier-Potenzen (shifts).CORDIC-Algorithmen sind daher fur Implementierungen in (Fest-Punkt)hardware ausgezeichnet geeignet.

Die Rotation von Vektoren der (komplexen) Ebene um den Winkel ϕ mitdem Ursprung als Fixpunkt ist gegeben durch(

x′

y′

)=

(cos ϕ − sin ϕsin ϕ cos ϕ

)(xy

)=

(x cos ϕ− y sin ϕx sin ϕ + y cos ϕ

)= cos ϕ

(x− y tan ϕy + x tan ϕ

)

Insbesondere fur ϕ = ± arctan(2−i) und damit fur tan ϕ = ±2−i gilt(x′

y′

)= cos ϕ

(x∓ 2−i yy ± 2−i x

)=

1√1 + 2−2i

(x∓ 2−i yy ± 2−i x

)

Bis auf Multiplikation mit 1√1+2−2i ist die Rotation um arctan 2−i also allein

mit adds und shifts zu berechnen. Hintereinanderausfuhrung liefert(xn+1

yn+1

)=

1√1 + 2−2i

(xi ∓ 2−i yi

yi ± 2−i xi

)=

1√1 + 2−2i

(1 ∓2−i

±2−i 1

)(xi

yi

)

= 1√1+2−2i

(1 −δi2−i

δi2−i 1

)1√

1+2−2(i−1)

(1 −δi−12−(i−1)

δi−12−(i−1) 1

)

· · · 1√1+2−2

(1 −δ12−1

δ12−1 1

)1√1+20

(1 −δo20

δo20 1

)(xo

yo

)

=∏n

i=01√

1+2−2i

n∏i=0

(1 −δi2−i

δi2−i 1

)(xo

yo

)= gn

n∏i=0

(1 −δi2

−i

δi2−i 1

)(xo

yo

)

wobei δi = ±1 die Richtung der i-ten Rotation vorgibt und fur den gain g∞des Algorithmus gilt

g∞ =∞∏i=0

1√1 + 2−2i

= limn→∞

gn = limn→∞

n∏i=0

1√1 + 2−2i

≈ 1.6467602581210654

Ub.: Formuliere den obigen Algorithmus unter alleiniger Verwendung derAdditionstheoreme von Sinus und Cosinus.

20

Page 21: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7.1 trigonometrische Funktionen(circular m = 1, rotating)

Die Vektoren ~zi =

(xi

yi

)mit zo = ~ex approximieren den Vektor g

(cos ϕsin ϕ

),

wenn die Rotation um ϕ durch eine Folge von Rotationen um ± arctan 2−i

approximiert wird. Der folgende Algorithmus approximiert sin ϕ und cos ϕfur ϕ im Bogenmaß mit |ϕ| < π

2. Dabei ist arctan(k) etwa durch eine look

up table zu realisieren.

// return ( cos(phi), sin(phi))g=1.6467602581210654; k=1; // k= 2−i

x=1; y=0; // ~ex = (x,y)do {

kk=k; if (phi<0) kk=-k;

tmpx=x-kk*y; tmpy=y+kk*x;

x=tmpx; y=tmpy; phi-=arctan(kk); k/=2;

} while (abs(phi)>epsilon);

return (x/g,y/g); // return (cos ϕ, sin ϕ)

Ub.: Entwirf die look up table fur atan(kk) !

Ub.: Welcher systematische Fehler ist hinzunehmen, sollen nicht weitereMultiplikationen (außer den beiden Divisionen durch g am Schluß) notwendigwerden?

21

Page 22: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

Math.sin, Math.cos und Math.tan, die von JavaScript zur Verfugung ge-stellten Bibliotheksfunktionen, dienen als Referenzen (in grun). ’Symbolische’ϕ ∈ [−π

2, π

2] ≈ [−1.57, 1.57] wie z.B. pi/5, 0.5 oder arcsin(0.5) eingeben!

ε = get ϕ and evaluate library functions

symbolic ϕ = z = ϕ =

n =

0←zn = ϕn =

(xn

yn

)=

( )gainn = test step cont resetgain∞ = compute gain∞

xn/gain∞ = yn/gain∞ =

Math.cos(ϕ) = Math.sin(ϕ) =

yn/xn = xn/yn =

Math.tan(ϕ) = 1/Math.tan(ϕ) =

Ub.: Welche Genauigkeit erzielt jeder Schritt des CORDIC-Algorithmus’?

Ub.: Was passiert, wenn diese Version des CORDIC-Algorithmus’ auf Ar-gumente wie π

4angewandt wird? Welches sind die anderen kritischen Argu-

mente?

7.1.1 Polar- in Cartesische Koordinaten transformieren

Mit der gleichzeitigen Berechnung von Sinus und Cosinus konnen zu einemVektor in Polar-Koordinaten (r, ϕ) auch die zugehorigen Cartesischen Koor-dinaten (x, y) = r(cos ϕ, sin ϕ) bestimmt werden, indem der Cartesische Vek-tor (r, 0) um den Winkel ϕ in den Ziel-Vektor r(cos ϕ, sin ϕ) gedreht wird.

22

Page 23: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7.2 inverse trigonometrische Funktionen(circular m = 1, vectoring)

Um etwa ϕ = arcsin(arg) zu berechnen, wird der Einheitsvektor ~ex einer Fol-ge von Rotationen unterworfen, bis die y-Koordinate des gedrehten Vektorsmit arg ubereinstimmt. Dann kann arccos(arg) bestimmt werden aus

arccos(arg) = π2− arcsin(arg)

x

y

1

arg

arcsin(arg)

arcc

os(a

rg)

23

Page 24: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

Math.asin, Math.acos und Math.atan sind von JavaScript zur Verfugunggestellte Bibliotheksfunktionen. Zulassige Argumente a von Arcus Sinus undArcus Cosinus liegen in [−1, 1], z.B. a =sin(0.5) oder a =sqrt(3)/2.

ε = get arg and evaluate library functionssymbolic a = a =

test step cont resetgain∞ = compute gain∞

n = zn =

gainn = Math.asin(a) =xn = π

2− zn =

a← yn = π2−Math.asin(a) =

n = zn =

gainn = Math.atan(a) =xn = π

2− zn =

0← yn = π2−Math.atan(a) =

7.2.1 Cartesische in Polar-Koordinaten transformieren

Aus Cartesischen Koordinaten (x, y) sind die Polar-Koordinaten (r, ϕ) mitr =√

x2 + y2 und ϕ = arctan yx

zu bestimmen: beides wird vom CORDIC-Algorithmus zur Berechnung des Arcus Tangens geliefert, der den Start-Vektor (x, y) in den Cartesischen Vektor (r, 0) dreht. Da dabei die Langeerhalten bleibt, gilt r =

√x2 + y2. Der Drehwinkel selbst ist ja ϕ = arctan y

x.

24

Page 25: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7.3 hyperbolische Funktionen(hyperbolic m = −1, rotating)

Die Rotation der (komplexen) Ebene basiert auf den Additionstheoremenvon Sinus und Cosinus. Fur die hyperbolischen Funktionen sinh und coshgelten die folgenden (entsprechenden) Additionstheoreme

cosh(x± y) = cosh(x) cosh(y)± sinh(x) sinh(y)

sinh(x± y) = sinh(x) cosh(y)± cosh(x) sinh(y)

Diese geben Anlaß, cosh a und sinh a fur gegebenes Argument a durch eineFolge von ’hyperbolischen’ Rotationen zu berechnen(

cosh(x± y)sinh(x± y)

)=

(cosh y ± sinh y± sinh y cosh y

)(cosh xsinh x

)= cosh y

(1 ± tanh y

± tanh y 1

)(cosh xsinh x

)

Fur geeignete y = artanh 2−i bzw. tanh y = 2−i konnen diese Rotationen (bisauf die Skalierung am Ende) ausschließlich mit shifts und adds ausgefuhrtwerden.(

cosh(x± y)sinh(x± y)

)= cosh artanh 2−i

(1 ±2−i

±2−i 1

)(cosh xsinh x

)

=1√

1− 2−2i

(1 ±2−i

±2−i 1

)(cosh xsinh x

)

wobei wegen 1cosh y

=

√cosh2 y−sinh2 y

cosh2 y=√

1− tanh2 y fur y = ± artanh 2−i

gerade cosh(± artanh 2−i) = 1√1−2−2i gilt.

Um zugleich cosh a und sinh a zu berechnen, muß a nur als Summe a =∑di artanh 2−i geeigneter ’Drehwinkel’ ± artanh 2−i und ’Drehrichtungen’

di ∈ {1,−1} dargestellt werden. Ausgehend von cosh 0 = 1 und sinh 0 = 0ergeben sich dann cosh a und sinh a als Folge solcher ’Rotationen’(

cosh asinh a

)←

n∏i=0

1√1− 2−2i

(1 di2

−i

di2−i 1

)(10

)= gn

n∏i=0

(1 di2

−i

di2−i 1

)(10

)

Fur den gain g∞ des Algorithmus gilt

g∞ =∞∏i=0

1√1− 2−2i

= limn→∞

gn = limn→∞

n∏i=0

1√1− 2−2i

25

Page 26: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

g=0.6; k=1; // k= 2−i

x=1; y=0; // ~ex = (x,y)do {

kk=k; if (phi<0) kk=-k;

tmpx=x+kk*y; tmpy=y+kk*x;

x=tmpx; y=tmpy; arg-=artanh(kk); k/=2;

} while (abs(arg)>epsilon);

return (x/g,y/g); // return (cosh(arg), sinh(arg))

Ub.: Entwirf die look up table fur artanh(kk) !

Ub.: Welcher systematische Fehler ist hinzunehmen, sollen nicht weitereMultiplikationen (außer den beiden Divisionen durch g am Schluß) notwendigwerden?

26

Page 27: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

Die lokal verfugbaren Funktionen cosh, sinh, tanh und coth sowie dieJavaScript-Bibliotheksfunktion Math.exp dienen als Referenz (in grun).

ε = get a and evaluate library functionssymbolic a = z = a =

n =

0← zn = an =

(xn

yn

)=

( )gainn = test step cont reset

gain∞ = compute gain∞

xn∗gain∞ = yn∗gain∞ =

cosh(a) = sinh(a) =

yn/xn = xn/yn =

tanh(a) = coth(a) =

(xn+yn)gain∞= ε1 + 2∑∞

i=2 εi ≈Math.exp(a) = artanh ( ) =

Ub.: Welche Argumente im obigen Algorithmus sind zulassig?

Ub.: Wie ist mit unzulassigen Argumenten zu verfahren? Stellen Sie dazuein beliebiges Argument x ∈ IR als Summe eines zulassigen Argumentesz mit |z| ≤ 1 und einem Vielfachen von ln 2 dar und verwenden Sie dieAdditionstheoreme. Mit x = z + m ln 2 gilt dann

cosh x = cosh(z + m ln) = cosh z cosh(m ln 2) + sinh z sinh(m ln 2)

sinh x = sinh(z + m ln) = sinh z cosh(m ln 2) + cosh z sinh(m ln 2)

wobei cosh(m ln 2) = 12(2m + 2−m) und sinh(m ln 2) = 1

2(2m − 2−m).

7.3.1 Exponential-Funktion und andere hyperbolische Funktio-nen (hyperbolic m = −1, rotating)

Wie bei den trigonometrischen Funktionen konnen wegen

tanh x = sinh xcosh x

and coth x = cosh xsinh x

and exp x = sinh x + cosh x

die hyperbolischen Funktionen tanh und coth sowie die Exponential-Funktionleicht mit CORDIC-Algorithmen ausgewertet werden.

27

Page 28: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7.4 Inverse hyperbolische Funktionen(hyperbolic m = −1, vectoring)

CORDIC-Algorithmen berechnen die inversen hyperbolischen Funktionenanalog den trigonometrischen Funktionen und ihrer Inversen.

Die lokal verfugbare Funktion artanh und die JavaScript-BibliotheksfunktionMath.sqrt dienen als Referenz (in grun).

ε = get a and evaluate library functionssymbolic y1 = y1 =

symbolic x1 = x1 =

n =

y1/x1 =

(x∞0

)←(

xn

yn

)=

( )gainn = test step cont resetgain∞ = compute gain∞

zn = xn∗gain∞ =

artanh( y1

x1) =

√x2

1 − y21 =

Wegen arcoth(x) = artanh( 1x) sowie

arsinh(x) = artanh( x√x2+1

) und arcosh(x) = artanh(√

x2−1x

)

berechnet der CORDIC-Algorithmus fur artanh ebenso die anderen inversenhyperbolischen Funktionen.

Ub.: Welche Argumente sind im obigen Algorithmus nicht zulassig? Wie istmit diesen unzulassigen Argumenten zu verfahren?

7.4.1 Logarithmus und Quadrat-Wurzel(hyperbolic m = −1, vectoring)

Wegen tanh ln√

x = eln√

x−e− ln√

x

eln√

x+e− ln√

x =√

x−1/√

x√x+1/

√x

= x−1x+1

und ln x = 2 artanh x−1x+1

gibt es auch einen CORDIC-Algorithmus zur Berechnung des Logarithmus.

Um√

r =√

(r + 14)2 − (r − 1

4)2 zu berechnen, sei xo = r + 1

4, yo = r− 1

4und

28

Page 29: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

α = artanhr− 1

4

r+ 14

= artanh yo

xoso daß

xo cosh α− yo sinh α = xo cosh artanhyo

xo

− yo sinh artanhyo

xo

= xo1√

1− y2o

x2o

− yo

yo

xo√1− y2

o

x2o

=x2

o√x2

o − y2o

− y2o√

x2o − y2

o

=√

x2o − y2

o

29

Page 30: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7.5 Multiplikation (linear m = 0, rotating)

Es gibt eine CORDIC-Version der (Fest- oder Gleitkomma) Multiplikation.

ε = xo = zo =

n =

0←zn =

(xn

yn

)=

( )→(

xo

xo zo

)xo zo = test step cont reset

Ub.: Wie ist mit dem beschrankten Argument-Bereich umzugehen?

7.6 Division (linear m = 0, vectoring)

Es gibt eine CORDIC-Version der (Fest- oder Gleitkomma) Division.

ε = yo = xo =

n =

zn =

(xn

yn

)=

( )→(xo

0

)yo/xo = test step cont reset

Ub.: Wie mit dem beschrankten Argument-Bereich umgehen?

30

Page 31: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7.7 CORDIC-Algorithmen vereinigt

CORDIC-Algorithmen der beiden Typen drehend (rotating) und vektorie-rend (vectoring) in den drei Modi linear (m = 0), zirkular (m = 1) undhyperbolisch (m = −1) lassen sich in einheitlicher Weise darstellen und da-her auch gemeinsam effizient implementieren. Sei Tk dabei die Matrix

Tm=0k =

(1 0

δk 2−k 1

)Tm=1

k =

(1 −δk 2−k

δk 2−k 1

)Tm=−1

k =

(1 −δk 2−k

δk 2−k 1

)

Die folgende Tabelle gibt dann die Details wieder.

rotating zn → 0 vectoring yn → 0zk+1 = zk − δkεk yk+1 = yk?δkεk

mode m δk = sgn zk δk = − sgn yk

m = 0εk = 2−k

g = 1

Multiplikation xo zo∏nk=0 Tk

(xo

0

)→(

xo

xo zo

) Division, zo = 0∏nk=0 Tk

(xo

yo

)→(xo

0

)wobei zk → yo/xo

m = 1εk = arctan 2−k

g =∏n

k=0 cos εk

trigonometrisch∏nk=0 Tk

(g0

)→(

cos zo

sin zo

) invers trigonometrisch, zo = 0∏nk=0 Tk

(xo

yo

)→ 1

g

(√x2

o + y2o

0

)wobei zk → arctan yo

xo

m = −1εk = artanh 2−k

g =∏n

k=0 cosh εk

hyperbolisch∏nk=0 Tk

(g0

)→(

cosh zo

sinh zo

) invers hyperbolisch, zo = 0∏nk=0 Tk

(xo

yo

)→ 1

g

(√x2

o − y2o

0

)wobei zk → artanh yo

xo

31

Page 32: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7.8 Konvergenz der CORDIC Algorithmen

Die Konvergenz der CORDIC Algorithmen beruht auf folgendem Satz.

SatzSei eo ≥ e1 ≥ e2 ≥ . . . ≥ en > 0 eine endliche Folge reeller Zahlen mit

ek ≤ en +n∑

j=k+1

ej fur alle 0 ≤ k ≤ n.

Sei r reell mit |r| ≤ ∑nj=0 ej. Sei die Folge sk induktiv definiert durch so = 0

und sk+1 = sk + ek sgn(r−sk) fur k ∈ INo. Dann gilt

|r − sk| ≤ en +n∑

j=k

ej und speziell |r − sn+1| ≤ en. d.h. limk→∞

sk = r

Beweis durch vollstandige Induktion:vorausgesetzt |r − sk| ≤ en +

∑nj=k ej. Um |r − sk+1| ≤ en +

∑nj=k+1 ej zu

zeigen, unterscheide die vier Falle:

r > sk Dann gilt |r − sk| = r − sk ≤ en +∑n

j=k ej und sgn(r − sk) = 1.

r − sk − ek > 0 Dann |r− sk+1| = r− sk − ek ≤ en +∑n

j=k ej − ek =en +

∑nj=k+1 ej.

r − sk − ek < 0 d.h. sk < r < sk + ek oder 0 < r − sk < ek oder−ek < sk − r < 0 so daß |r− sk+1| = |r− sk − ek| = sk − r + ek ≤ek ≤ en +

∑nj=k+1 ej.

r < sk Dann gilt |r − sk| = sk − r ≤ en +∑n

j=k ej und sgn(r − sk) = −1.

r − sk + ek > 0 Dann |r− sk+1| = r− sk + ek ≤ ek ≤ en +∑n

j=k+1 ej.

r − sk + ek < 0 Dann gilt |r − sk+1| = |r − sk + ek| = sk − r − ek ≤en +

∑nj=k ej − ek = en +

∑nj=k+1 ej.

qed

FolgerungDie ek der CORDIC-Algorithmen der drei Modi erfullen die Voraussetzungendes vorstehenden Satzes. Damit sind die CORDIC-Algorithmen konvergent.

Beweis

32

Page 33: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

m = 0 Dann ist ek = 2−k mit eo ≥ e1 ≥ . . . ≥ en > 0 und es folgt ek =2−k ≤ en +

∑nj=k+1 ej, weil fur die rechte Seite en +

∑nj=k+1 ej = 2−n +∑n

j=k+1 2−j = 2−n+2−(k+1)∑n−k−1i=0 2−i = 2−n+2−(k+1) 1−2−(n−k)

1−2−1 = 2−n+

2−(k+1) 2(1− 2−(n−k)) = 2−n + 2−k(1− 2−(n−k)) = 2−k = ek gilt.

m = 1 Dann ist ek = arctan 2−k mit eo ≥ e1 ≥ . . . ≥ en > 0 wegen derMonotonie des Arcus Tangens. Wegen 2 arctan x = arctan 2 x

1−x2 und

der Monotonie gilt arctan x ≤ 2 arctan x2

= arctan 2 x/21−x2/4

, d.h.

ek ≤ 2 ek+1

und durch wiederholte Anwendung

ek ≤ 2 ek+1 ≤ ek+1 + 2 ek+2 ≤ . . . ≤ en +n∑

j=k+1

ej

m = −1 Dann ek = artanh 2−k = 12ln 1+2−k

1−2−k . Um Konvergenz sicherzustel-len, werden alle hyperbolischen Rotationen außer der ersten dupliziert.Daher ist

ek ≤ en + 2n∑

j=k+1

ej fur k = 1, 2, . . . , n

zu zeigen, namlich durch Induktion in n− k, d.h.

en−k ≤ en + 2n∑

j=n−k+1

ej fur k = 1, 2, . . . , n− 1

Im Fall k = 1 ist en−1 ≤ en + 2 en = 3 en zu zeigen, aquivalent zu

0 ≤ 3 en − en−1 = 12ln((1+2−n

1−2−n )3 1−2−n+1

1+2−n+1

)was aufgrund der Monotonie des Logarithmus aquivalent ist zu

(1 + 2−n)3(1− 2−n+1) ≥ (1− 2−n)

3(1 + 2−n+1)

und damit richtig fur n > 1.Unter der Voraussetzung en−k ≤ en + 2

∑nj=n−k+1 ej ist die Induktions-

behauptung en−k−1 ≤ en + 2∑n

j=n−k ej aquivalent zu en−k−1 ≥ 3 en−k,was schon im Induktionsanfang verifiziert wurde.

qed

33

Page 34: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

8 Bestimmung von Nullstellen

Die numerische Bestimmung von Nullstellen ist immer dann unverzichtbar,wenn beispielsweise zur Extremwert-Bestimmung die Nullstellen der erstenAbleitung nicht analytisch bestimmt werden konnen.

Dies gilt schon fur alle Polynome hoherer Ordnung.

34

Page 35: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

8.1 Nullstellenbestimmung per Intervallhalbierung

Das Feld fur die Funktionswerte ist bewußt ’zu klein’ gewahlt, da bei diesemVerfahren nur deren Vorzeichen interessieren: das Start-Intervall [a, b] mitder Invarianten f(a)f(b) < 0 wird durch m = (a + b)/2 halbiert und durchdas rechte oder linke Teil-Intervall ersetzt, das die Invariante erfullt.

f (x) = get f

i.e. f (x) =

a =b =

f (a) =f (b) =

[a, b]halbieren

n= m= f(m) =

test reset

Ub.: Abbruch-Kriterien? Start-Intervall?

Ub.: Berechne Extrema von Funktionen.

35

Page 36: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

8.2 Nullstellenbestimmung per regula falsi

Das Start-Intervall [a, b] mit der Invarianten f(a)f(b) < 0 wird durch dieNullstelle m = a − f(a) b−a

f(b)−f(a)der Sekanten geteilt und durch das rechte

oder linke Teil-Intervall ersetzt, das die Invariante erfullt.

f (x) = get f

i.e. f (x) =

a =b =

f (a) =f (b) =

regulafalsi

n= m = f(m) =

test reset

Ub.: Abbruch-Kriterien? Vergleich zur Intervall-Halbierung?

Ub.: Berechne Extrema von Funktionen.

36

Page 37: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

8.3 Nullstellenbestimmung per Newton Algorithmus

Es wird unterstellt, daß die Bedingungen fur die Konvergenz des Newton-Verfahrens erfullt sind: die gesuchte Nullstelle wird durch die Nullstelle xn+1 =xn − f(xn)

f ′(xn)der Tangenten in (xn, f(xn)) approximiert.

f (x) = get f

i.e. f (x) =

f ′(x) = get f ′

i.e. f ′(x) =

xn+1 = f(xn+1) = Newton

x1 =

n =

xn+1 − xn =

f(xn) =

testreset

Ub.: Berechne√

2,√

3,√

5, π, π/4 u.a.

Ub.: Berechne Extrema von Funktionen.

Ub.: Abbruch-Kriterien? Vergleich zur regula falsi?

37

Page 38: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

9 Optimierung

Numerische Optimierung bedeutet, Minima einer Funktion f(x) zu bestim-men. Die Maxima von f sind die Minima von −f .

9.1 Optimierung mit dem Goldenen Schnitt

Wie bei der Intervall-Halbierung muß auch hier bekannt sein, daß f in [a, b]genau ein Minimum x∗ besitzt. f ist dann links von x∗ monoton fallend undrechts von x∗ monon wachsend. Wenn f(x1) < f(x2) fur a < x1 < x2 < b,dann x∗ 6∈ (x2, b] und daher x∗ ∈ [a, x2), und wenn f(x1) > f(x2) fur a <x1 < x2 < b, dann x∗ 6∈ [a, x1) und daher x∗ ∈ (x1, b]. So wird die Lange desIntervalls, das x∗ enthalt, stetig verkurzt. Am besten ist es, wenn in jedemSchritt die Funktion nur einmal neu ausgewertet werden muß und wenn diePosition von x1 und x2 relativ zu a and b konstant und invariant ist, namlichx1 = a + (1− τ)(b− a) und x2 = a + τ(b− a) fur τ = (

√5− 1)/2.

f (x) = get f

i.e. f (x) =

a= b= test reset golden section

n=

a = f(a) =

x1 = f(x1) =

x2 = f(x2) =

b = f(b) =

min ≈ a+b2

= f(a+b2

) =

Ub.: Berechne Minima von Funktionen wie f(x) = e−x sin x oder g(x) =(x− 1)n usw.

Ub.: Abbruch-Kriterien?

38

Page 39: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

9.2 Optimization per Newton

Warum nicht einfach die Nullstellen der ersten Ableitung mit dem Newton-Verfahren bestimmen? Naturlich brauchen wir dann erste und zweite Ablei-tung der zu minimierenden Funktion.

f (x) =f ′(x) =f ′′(x) =

getff ′

f ′′

i.e. f(x) =

i.e. f ′(x) =

i.e. f ′′(x) =

xo = test reset Newton

n = x = f(x) =

Ub.: Berechne Minima von Funktionen wie f(x) = e−x sin x oder g(x) =(x− 1)n usw.

Ub.: Abbruch-Kriterien?

Ub.: Wenn man nach den Nullstellen der ewrsten Ableitungen sucht, findetman nicht notwendig Minima. Finde Beispiele fur dieses Phanomen.

39

Page 40: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

10 Integration

Numerische Integration fur∫ ba f(x) dx ist Notnagel immer dann, wenn keine

geschlossene Stammfunktion angegeben werden kann.

Zur Bestimmung der Komplexitat der Verfahren wird die Anzahl der Berech-nungen von Funktionswerten verwendet.

10.1 Integration per Trapez-Regel

Das Integral wird duch die Summe der Flacheninhalte von Trapezen appro-ximiert.

f (x) = get f

i.e. f (x) =

a= b=∫ ba f (x) dx ≈ In =

Trapez

n= #(f(x))= |In − In−1| =

reset

Ub.: Berechne bekannte Integrale wie etwa∫ π0 sin x dx oder

∫ 21 x−2 dx usw.

Ub.: Abbruch-Kriterien? Optimierung durch Verdoppelung statt Inkremen-tierung von n ?

40

Page 41: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

10.2 Integration per Simpson-Regel

Die Funktion wird stuckweise durch Parabeln approximiert. Die Summe derIntegrale dieser Parabeln approximiert dann das gesuchte Integral.

n (geradzahlig) wird jeweils um 2 inkrementiert.

f (x) = get f

i.e. f (x) =

a= b=∫ ba f (x) dx ≈ In =

Simpson

n= #(f(x))= |In − In−1| =

reset

Ub.: Berechne bestimmte Integrale von Polynomen zweiten Grades. Warumist die Approximation hier immer korrekt?

Ub.: Berechne Integrale wie∫ e1

1xdx usw.

Ub.: Vergleich zur Trapez-Regel? Verallgemeinerungen?

41

Page 42: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

11 Gewohnliche Differentialgleichungen

erster Ordnung

Die Verfahren von Euler, Heun, Euler-Cauchy und Runge-Kutta illustrie-ren, wie gewohnliche Differentialgleichungen erster Ordnung numerisch gelostwerden konnen, insbesondere wenn keine geschlossenen Losung bekannt ist.

Dies sei zunachst fur Anfangswert-Probleme erster Ordnung erlautert.

y′ = f(x, y) mit y(xo) = yo

Grundsatzlich sind also die Funktion f(x, y), xo und yo = y(xo) als Anfangs-bedingung sowie die Anzahl n der Schritte einzugeben, um den gesuchtenFunktionswert yn ≈ y(xn) an der (Ziel-) Stelle xn approximieren zu konnen.Dann konnen die Ergebnisse der verschiedenen Verfahren verglichen wer-den. Die Qualitat der Verfahren zeigt sich erst im Vergleich mit der exaktenLosung y(x), falls diese verfugbar ist.Der Test-Button erspart die Eingabe der Differentialgleichung y′ = y mit derAnfangsbedingung y(0) = 1 und der Losung y(x) = ex.

Vorgestellt werden einige klassiche Verfahren zur numerischen Losung vonAnfangswertproblemen, namlich die Verfahren von Euler, Heun und Euler-Cauchy sowie das klassiche Runge-Kutta-Verfahren.

11.1 Euler-Verfahren

Approximation durch die Tangente in der jeweils letzten Stutzstelle liefertdas Euler-Verfahren.

y(xi+1) ≈ yi+1 = yi + h f(xi, yi) mit y(xo) = yo

11.2 Heun-Verfahren

Das Heun Verfahren ist ein Prediktor-Korrektor Verfahren: yn+1 wird ver-mittels der Sekanten durch (xn, yn) berechnet, deren Steigung gerade derMittelwert (Korrektor) der Steigung in xn und der Steigung f(xn+1, yn+1) in

42

Page 43: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

(xn+1, yn+1) (Pradiktor) ist.

y(xi+1) ≈ yi+1 = yi +h

2(f(xi, yi) + f(xi+1, yi + h f(xi, yi))) mit y(xo)=yo

11.3 Euler-Cauchy-Verfahren

Das Euler-Cauchy-Verfahren approximiert die Tangenten-Steigung im Mit-telpunkt xn+1/2 = 1

2(xn + xn+1) von [xn, xn+1],

also y(xn+1/2) ≈ yn+1/2 = yn + h2f(xn, yn).

y(xi+1) ≈ yi+1 = yi + h f(xi+1/2, yi +h

2f(xi, yi))) mit y(xo) = yo

11.4 Runge-Kutta-Verfahren

Das klassische Runge-Kutta Verfahren approximiert die gesuchte Funktiondurch eine Sekante, deren Steigung sich als gewichetete Summe der vier Stei-gungen y′i in xi, y′i+1/2 und ¯y′i+1/2 in xi+1/2 sowie y′i+1 in xi+1 ergibt.

yi+1 = yi + h6(y

′i + 2y′i+1/2 + 2¯y′i+1/2 + y′i+1) wobei

y′i = f(xi, yi) y′i+1/2 = f(xi + h2, yi + h

2y′i)

¯y′i+1/2 = f(xi + h2, yi + h

2y′i+1/2) y′i+1 = f(xi + h, yi + h¯y′i+1/2)

43

Page 44: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

11.5 interaktive Synopse dieser Verfahren

f (x, y) = get f

i.e. f (x, y) =

y(x) = get y

i.e. y(x) =

xo = Euler y =yo = Heun y =xn = Euler-Cauchy y =n = Runge-Kutta y =

exakt y(x) = y( ) =

test ein Schritt repeat reset

Ub.: Experimentiere mit y′ = cos x und y(0) = 0 oder y′ = xy und y(0) = 1o.a.

Ub.: Vergleiche die verschiedenen Verfahren anhand ihrer Komplexitat, d.h.der Anzahl der Funktionsaufrufe von f(x, y).

44

Page 45: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

11.6 Systeme gewohnlicher Differentialgleichungen er-ster Ordnung

Die Verfahren aus den vorangehenden Abschnitten konnen auch zur Losungvon Systemen gewohnlicher Differentialgleichungen erster Ordnung einge-setzt werden. Als default Beispiel dient die Entwicklung von Jager- undBeute-Populationen uber die Zeit.

nzi

45

Page 46: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

A Graphen elementarer Funktionen

A.1 Exponential-Funktion und Logarithmus

exp(x) ln(x)

exp ln

Ub.: Bestimme Langeneinheiten und Eigenschaften der Funktionen.

46

Page 47: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

A.2 Sinus und Cosinus und deren Inverse

sin(x)

cos(x)

sin cos

arcsin(x)

arccos(x)

Ub.: Bestimme Langeneinheiten und Eigenschaften der Funktionen.

47

Page 48: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

A.3 Tangens und Cotangens und deren Inverse

tan(x)

tan(x)

tan(x)

cot(x)

cot(x)

tan cot

arctan(x)

arccot(x)

Ub.: Bestimme Langeneinheiten und Eigenschaften der Funktionen.

48

Page 49: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

A.4 Sinus und Cosinus hyperbolicus und deren Inverse

sinh(x)

cosh(x)

sinh cosh

arsinh(x)

arcosh(x)

Ub.: Bestimme Langeneinheiten und Eigenschaften der Funktionen.

49

Page 50: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

A.5 Tangens hyperbolicus und Cotangens hyperboli-cus und deren Inverse

tanh(x)

coth(x)

coth(x)

tanh coth

artanh(x)arcoth(x)

arcoth(x)

Ub.: Bestimme Langeneinheiten und Eigenschaften der Funktionen.

50

Page 51: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

Inhaltsverzeichnis

1 Vorbemerkung 2

1.1 Konventionen und Gebrauch . . . . . . . . . . . . . . . . . . . . . 2

1.2 Rechengenauigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Gleitpunkt-Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4 Gleitpunkt-Arithmetik mit gegebener Prazision . . . . . . . . . . . 4

2 Vektor-Rechnung 5

2.1 Operationen auf Vektoren der Ebene . . . . . . . . . . . . . . . . . 5

2.1.1 skalare Vielfache c~a von Vektoren ~a der Ebene . . . . . . . 5

2.1.2 Addition ~a +~b von Vektoren der Ebene . . . . . . . . . . . 5

2.1.3 Skalar-Produkt ~a ·~b von Vektoren der Ebene . . . . . . . . 5

2.1.4 Lange oder Betrag |~a| von Vektoren der Ebene . . . . . . . 5

2.2 Operationen auf Vektoren im Raum . . . . . . . . . . . . . . . . . 6

2.2.1 skalare Vielfache c~a von Vektoren ~a im Raum . . . . . . . . 6

2.2.2 Addition ~a +~b von Vektoren im Raum . . . . . . . . . . . . 6

2.2.3 Skalar-Produkt ~a ·~b von Vektoren im Raum . . . . . . . . . 6

2.2.4 Lange oder Betrag |~a| von Vektoren im Raum . . . . . . . . 6

2.2.5 Vektor-Produkt ~a×~b von Vektoren im Raum . . . . . . . . 6

3 lineare Gleichungssysteme 7

3.1 Gauß’sches Eliminationsverfahren . . . . . . . . . . . . . . . . . . . 8

3.2 Gauß’sches Eliminationsverfahrenmit Pivotisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3 Stifel’sches Verfahren – LGS & Matrix Inversion . . . . . . . . . . 10

3.4 Gauß-Seidel-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . 12

4 einige Konstanten 14

5 Berechnung von Funktionswerten 15

51

Page 52: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

6 elementare Funktionen mit Inversen 16

6.1 Exponentialfunktion und Logarithmus . . . . . . . . . . . . . . . . 16

6.1.1 Exponentialfunktion . . . . . . . . . . . . . . . . . . . . . . 16

6.1.2 Logarithmus . . . . . . . . . . . . . . . . . . . . . . . . . . 16

6.2 trigonometrische Funktionenmit ihren Umkehr-Funktionen . . . . . . . . . . . . . . . . . . . . . 17

6.2.1 Sinus und Arcus-Sinus . . . . . . . . . . . . . . . . . . . . . 17

6.2.2 Cosinus und Arcus-Cosinus . . . . . . . . . . . . . . . . . . 17

6.2.3 Tangens und Arcus-Tangens . . . . . . . . . . . . . . . . . . 17

6.2.4 Cotangens und Arcus-Cotangens . . . . . . . . . . . . . . . 17

6.3 hyperbolische Funktionenmit ihren Umkehr-Funktionen . . . . . . . . . . . . . . . . . . . . . 18

6.3.1 Sinus hyperbolicus . . . . . . . . . . . . . . . . . . . . . . . 18

6.3.2 Cosinus hyperbolicus . . . . . . . . . . . . . . . . . . . . . . 18

6.3.3 Tangens hyperbolicus . . . . . . . . . . . . . . . . . . . . . 18

6.3.4 Cotangens hyperbolicus . . . . . . . . . . . . . . . . . . . . 18

7 CORDIC – Auswertung elementarer Funktionen in hardware 20

7.1 trigonometrische Funktionen(circular m = 1, rotating) . . . . . . . . . . . . . . . . . . . . . . . 21

7.1.1 Polar- in Cartesische Koordinaten transformieren . . . . . . 22

7.2 inverse trigonometrische Funktionen(circular m = 1, vectoring) . . . . . . . . . . . . . . . . . . . . . . . 23

7.2.1 Cartesische in Polar-Koordinaten transformieren . . . . . . 24

7.3 hyperbolische Funktionen(hyperbolic m = −1, rotating) . . . . . . . . . . . . . . . . . . . . . 25

7.3.1 Exponential-Funktion und andere hyperbolische Funktionen(hyperbolic m = −1, rotating) . . . . . . . . . . . . . . . . 27

7.4 Inverse hyperbolische Funktionen(hyperbolic m = −1, vectoring) . . . . . . . . . . . . . . . . . . . . 28

7.4.1 Logarithmus und Quadrat-Wurzel(hyperbolic m = −1, vectoring) . . . . . . . . . . . . . . . . 28

52

Page 53: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

7.5 Multiplikation (linear m = 0, rotating) . . . . . . . . . . . . . . . . 30

7.6 Division (linear m = 0, vectoring) . . . . . . . . . . . . . . . . . . . 30

7.7 CORDIC-Algorithmen vereinigt . . . . . . . . . . . . . . . . . . . . 31

7.8 Konvergenz der CORDIC Algorithmen . . . . . . . . . . . . . . . . 32

8 Bestimmung von Nullstellen 34

8.1 Nullstellenbestimmung per Intervallhalbierung . . . . . . . . . . . . 35

8.2 Nullstellenbestimmung per regula falsi . . . . . . . . . . . . . . . . 36

8.3 Nullstellenbestimmung per Newton Algorithmus . . . . . . . . . . 37

9 Optimierung 38

9.1 Optimierung mit dem Goldenen Schnitt . . . . . . . . . . . . . . . 38

9.2 Optimization per Newton . . . . . . . . . . . . . . . . . . . . . . . 39

10 Integration 40

10.1 Integration per Trapez-Regel . . . . . . . . . . . . . . . . . . . . . 40

10.2 Integration per Simpson-Regel . . . . . . . . . . . . . . . . . . . . 41

11 Gewohnliche Differentialgleichungenerster Ordnung 42

11.1 Euler-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

11.2 Heun-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

11.3 Euler-Cauchy-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . 43

11.4 Runge-Kutta-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . 43

11.5 interaktive Synopse dieser Verfahren . . . . . . . . . . . . . . . . . 44

11.6 Systeme gewohnlicher Differentialgleichungen erster Ordnung . . . 45

A Graphen elementarer Funktionen 46

A.1 Exponential-Funktion und Logarithmus . . . . . . . . . . . . . . . 46

A.2 Sinus und Cosinus und deren Inverse . . . . . . . . . . . . . . . . . 47

A.3 Tangens und Cotangens und deren Inverse . . . . . . . . . . . . . . 48

53

Page 54: Numerik – interaktiv - FBE · Numerik – interaktiv Thomas Risse Institut f¨ur Informatik und Automation Hochschule Bremen 5. Dezember 2007 Zusammenfassung Dieses Dokument erlaubt,

A.4 Sinus und Cosinus hyperbolicus und deren Inverse . . . . . . . . . 49

A.5 Tangens hyperbolicus und Cotangens hyperbolicus und deren Inverse 50

54