Allgemein
x 0 π6 π4 π3 π2 π 3π2 2π
sin 0 12 √1 2
√ 3
2 1 0 -1 0
cos 1
√3 2
√1 2
1
2 0 -1 0 1
tan 0
√3
3 1 √
3 ∞ 0 −∞ 0
Grundbegriffe der Numerik
Gleitpunktzahlen und Maschinenzahlen
m
btbe=±0.a1a2· · ·at·be mit ai∈ {0, . . . , b−1}
Hierbei ist
• s∈ {−1,1}das Vorzeichen
• b∈Ndie Basis
• t∈Ndie Genaugigkeit bzw. Anzahl signifikanter Stellen
• e∈Nder Exponent
• m∈Ndie Mantisse
• a16= 0 (
”normalisiert“)
Bsp.:−2 =−0.1000000·22(b= 2, t= 7) # Maschinenzahlen
= 2·(b−1)·bt−1·a+ 1(hier: a=#Exponenten) (ohne±∞
und NaN.)
Maschinengenauigkeit
b,t=b−(t−1)(d.h.@Maschinenzahl zwischen 1 und 1 +b,t) Bsp.: MATLAB:2,53= 2−(53−1)≈2·10−16
Runden: F¨urx= 2.387 giltf l10,3= 2.39 = +0.239·101 Wie viele Maschinenzahlen gibt es inM2,4,−3,3? Berechnen
Sie eps,xminundxmax. Es gibt 2·23·
#e z}|{
7 + 1 = 113 Maschi- nenzahlen.xmin= +1000,m −11 =e 1
16,xmax = +1111,11 = 15
16·23=152,eps( ˆ=2,4) = 2−3=18
Kondition(Fehler bei Eingabe)
κabs(x) =|f0(x)| κrel(x) =|f|f(x)|0(x)|
x
• gut konditioniert f¨urκrel≤100
• schlecht konditioniert f¨urκrel≥106
Groß
O-Notation|f(x)| ≤c· |g(x)| ∀x > x0∧c >0
Stabilit¨ at(Rechenfehler)
|f(x)˜ −f(x)|= absoluter Fehler
|f˜(x)−f(x)|
|f(x)| = relativer Fehler
Polynomauswertung bei f(a): f(x) = anxn+an−1xn−1+
· · ·+a1x+a0
• naiv:
functiony=peval(a0, a1, . . . , an, a) y=a0;
f or k= 1 :n y=y+ak·ak; end
• Hornerschema functiony=horner(a0, a1, . . . , an, a) y=an;
f or k=n−1 :−1 : 0 y=y·a+ak·ak; end
LR-Zerlegung
A·x=b⇔x=A−1·bist numerisch instabil→LR-Zerlegung L¨osen mitA=L·R:
1. Gauß auf A anwenden:
A=
−1 2 3
−2 7 4
1 4 −2
II.−2I. III.+I.
⇔
−1 2 3
+2( ˆ=−2−1) 3 −2
−1 6 1
III.−2II.
⇔
−1 2 3
2 3 −2
−1 2 5
2.⇒L=
1 0 0
2 1 0
−1 2 1
undR=
−1 2 3
0 3 −2
0 0 5
3. L¨ose
•L·y=bdurch Vorw¨artseinsetzen⇒y, dann
•R·x=ydurch R¨uckw¨artseinsetzen⇒x
Pivotisierung Tausche so, dass man durch die betragsm¨aßig gr¨oßte Zahl teilen muss. Es gilt: P−1=P
Bsp.:
0 3 3
−1 3 4
−2 1 5
⇒
−1 3 4
0 3 3
−2 1 5
mit P =
0 1 0
1 0 0
0 0 1
L¨oseP Ax=P bbzw.LR=P b
QR-Zerlegung mit A
m×n, m > n
AusgleichsproblemAx=bmit|Ax−b|=min
⇒ QR-Zerlegung mit QRx = b ⇔ QTQRx = QTb mit fboxQ−1=QT
Vorgehen:
1.v1=a1+sgn(a11)|a|e1 2.Q1=Hv1=En− 2
vT vvvT
3.Hv1A
| {z } R
=
∗ · · · ∗ ..
.
A ˜
0
4. Beginne von vorne mit ˜A, wobeia2 = 0
˜ a
⇒erhalte alle Q
5.QnQn−1·...·Q1·A= QT
|{z}
hier bekommt man Q
·A=R
6. ˜R=R ohne Nullzeilen 7.QnQn−1·...·Q1·b=
d1 d2
⇒d1 8. ˜Rx=d1⇒x
Bsp.:A=
3 0 0
4 0 5
0 3 −2
0 4 4
undb=
5 0 1
−2
1.v1=
3 4 0 0
+sgn(3)|a|e1=
3 4 0 0
+
5 0 0 0
+
8 4 0 0
2.Q1=Em− 2
vT vvvt=E4−401
64 32 0 0
32 16 0 0
0 0 0 0
0 0 0 0
3. ...
Fixpunktiteration
z.B.f(x) = cos(x)−x⇔Φ(x) = cos(x) Gegeben:Φ ,Startwertx0=s
⇒xk+1= Φ(xk) k= 0,1, ...
Φ stetige Abb. und Folge (Xk)kkonvergiert f¨urx0⇒Grenz- wert von (Xk) ist Fixpunkt von Φ(x) =x
Beweis:x= lim
k→∞xk+1= lim k→∞Φ(xk) = Φ( lim
k→∞xk) = Φ(x)
Ein Iterationsverfahren Φ :X→X mit FP x heißt
• global konvergent, falls∀x0∈X: (Xk)→x
• lokal konvergent, falls∀x0 ∈ U : (Xk)→ x, wobei U Umgebung von x ist
• Kontraktion, falls∃L ∈ [0,1) mit ||Φ(x)−Φ(y)|| ≤ L||x−y||, L=Lipschitzkonstante, f¨urL <1 giltstrikte Kontraktion
Konvergenzs¨atze:
• Globaler Konvergenzsatz:Gilt f¨urf:D→Rn, wenn 1.D⊆Rnabgeschlossen
2.f(D)⊆D
3. (strikte) Kontraktion mitL <1
⇒ ∃einen eindeutigen FP und es gilt:
– ||xk−x|| ≤1−φφk ||x1−x0||
A-priori-Fehlerabsch¨atzung
# ben¨otigter Iterationen mit Genauigkeit: k ≥ ln (1−φ)
||x1−x0||
lnφ
– ||xk−x|| ≤1−φφ ||xk−xk−1||
A-posteriori-Fehlerabsch¨atzung
• Lokaler Konvergenzsatz:X ⊆Rd offen, stetig diff- bar,x FP von Φ mit||Jφ(x)
| {z}
||<1→ J acobimatrix
lokal konvergent
• Lokaler,normunabh¨angiger Konvergenzsatz: X ⊆ Rdoffen, stetig diffbar,x FP vonφmitρ(Jφ(x))<1→ lokal konvergent, wobei
ρ(Matrix) ist betragsm¨aßig gr¨oßter EW von Matrix (Spektralradius)
Iterative Verfahren f¨ ur LGS
Gegeben:Ax=b
Formuliere das LGS als ein Fixpunktproblem:
A=M−N , mit A,M,N∈Rn×nmit invertierbarem M, so ist das L¨osen vonAx= bgleichwertig zur Fixpunktbestim- mung φ(x) =xφ(x) =M−1b+M−1N x
wobeix0=s, xk+1=φ(xk) und f¨urρ(M−1N)<1 konver- giert.
⇒Verschiedene Verfahren f¨ur verschiedene Wahlen von M und N:
Jacobi-Verfahren
A= M z}|{
D − N z }| { (L+R) =
D −R
D D
−L D
mit Startvektor x0
xk+1=D−1b+D−1(L+R)xk= c z }|{ D−1b+
T z }| { D−1(D−A)xk Vorgehen: xk+1=T xk+c
Konvergenz, falls Astrikt diagonal dominant.
Bsp.:A=
5 −2 1
1 3 0
−3 −5 9
I.:|5|>|−2|+|1|,∀Zeilen
Gauß-Seidl-Verfahren
A= M z }| { (D−L)−
N z}|{
R
Explizit:xk+1= (D−L)−1b+ (D−L)−1Rxk Konvergiert f¨ur
• strikt diagonal dominates A
• positiv definites A (alle EW>0 oder Hauptminoren po- sitiv)
Vorgehen:A= 15 2
1 −4
, b=
−1
−9
, x0= 0
0
1.T= 0 −215 1
4 0
! , c=
−1 159 4
!
2.x11= (0 −215) x10
x20
+−115 =−115
x21= (14 0) x11
x20
+94=6730
⇒x1=
−1 1567 30
!
3.x21= (0 −215)
−1 1567 30
!
+−115 =−82225
x22= (14 0)
−82 22567 30
!
+94=1943900 ...
SOR-Verfahren
xk+1= (En−ωD−1L)−1((1−ω)En+ωD−1R)xk+ω(En−ωD−1L)−1)D−1b Konvergenz f¨ur:
• 0< ω <2
• A positiv definit Optimalesω
• ρ(M−1N)<1 und
• alle EWλ1, ..., λn vonM−1N reell und im Intervall (−∞,1)
⇒ωoptf¨ur relaxiertes Verfahren
φω(x) = (ωM−1N+ (1−ω)En)x+ωM−1b ist:
• ωopt=2−λ2
1−λn -f¨ur Jacobi
• ωopt= 2 1+
q 1−λ2
n
-f¨ur Gauß-Seidl
• ω= 1⇒man erh¨alt wieder Gauß-Seidl
• 1< ω <2 nennt manUberrelaxierung¨
Christian Obermaier und Tim Huber
Bemerkung:
F¨urA∈Rn×nbraucht jede Iteration der drei VerfahrenO(n) Operationen
Nichtlineare Gleichungssysteme
Bisektionsverfahren
Seif : [a0, b0]→Rstetig mitf(a0)f(b0)<0, so erhalte die Nullstellex?folgendermaßen:
1.xk=12(ak+bk)undf(xk) 2. Setze
•ak+1=akundbk+1=xk, fallsf(ak)f(xk)<0
•ak+1=xkundbk+1=bk, fallsf(xk)f(bk)<0 3. Abbruch der Iteration, fallsbk−ak<
Weiterhin gilt:
|xk−x?| ≤bk−ak≤ 1 2k|b0−a0|
• ⇒Globale Konvergenz(d.h.|xk−x?| →0 mitk→ ∞ f¨ur beliebiges Anfangsintervall)
• ⇒maximal lineare Konvergenz, da der Fehler|xk−x?| maximal linear f¨allt.
Newton-Verfahren
EindimensionalIstf:I→Rstetig diffbar undx?∈Imit f(x?) = 0 undf0(x?)6= 0,
so existiert eine Umgebung U vonx?, so dass die Iteration x0∈Uundxk+1=xk− f(xk)
f0(xk), k= 0,1, ...
f¨ur jedesx0∈Uquadratischgegenx?konvergiert.
Istf2-mal stetig diffbar in U vonx?, so gilt:
xk+1−x?=12f 00(ξk)
f0(xk)(xk−x?)2f¨urξk∈U
Mehrdimensional
Istf:X⊆Rn, Xoffen und konvex, 2-mal stetig diffbar mit nichtsingul¨arer JacobimatrixJf(x)∀x∈X, so konvergiert die Iteration
xk+1=xk−(Jf(xk))−1f(xk) =:φ(xk) lokal quadratisch gegen eine Nullstelle vonf.
Bem.: Beimvereinfachten Newton-Verfahren wirdJf f¨ur mehrere Schritte verwendet.
Abbruch des Newtonverfahren Abbruch, wenn
• x?hinreichend genug approximiert ist oder
• die Iteration voraussichtlich nicht konvergiert
L¨ osbarkeit und Kondition des Nullstellenproblems
Lokale Eindeutigkeit
Ist f : x → Rn stetig diffbar mit regul¨arer Jacobimatrix Jf(x?) f¨urx?∈Xmitf(x?) = 0, so istx?lokal eindeutig, d.h.es gibt eine Umgebung U vonx?, so dassx?der einzige Punkt mitf(x?) = 0 in U ist.
Kondition
Ist f : x → Rn stetig diffbar mit regul¨arer Jacobimatrix Jf(x?) f¨ur x?∈ Xund zuδf∈ Rn istx?(δf) die L¨osung vonf(x) +δ(f) = 0.
⇒κabs=||Jf−1(x?)||
Numerik gew¨ ohnlicher DGLs
Einschrittverfahren
N¨aherungsl¨osungen xk f¨ur exakte L¨osung x(tk) des AWP
˙
x=f(t, x) mitx(t0) =x0
an den Stellentk=t0+k·hmitk= 0,1, . . . , nundh=t−tn0 f¨ur einn∈N.
explizites Euler-Verfahren:
xk+1=xk+h·f(tk, xk), k= 0,1,2, . . . Mittelpunktsregel:
xk+1=xk+h·f(tk+tk+1
2 ,xk+xk+12 ), k= 0,1,2, . . .im- plizites Euler-Verfahren:
xk+1=xk+h·f(tk+1, xk+1), k= 0,1,2, . . .
Optimierung
Gradientenverfahren
Geg.:C1-Funktionf:Rd→Rund Startvektorx0∈Rd
• Bestimme Abstiegsrichtung:vk=−∇f(xk)
• Schrittweitef(xk+hkvk)< f(xk) mit Armijo:γ∈(0,1);hk∈ {1,12,14,18, . . .} f(xk+hkvk)≤f(xk) +hkγ∇f(xk)Tvk
• xk+1=xk+hkvk Konvergenz
• f(xk+1)< f(xk)∀k
• alle H¨aufungspunkte von (xk)ksind station¨are Punkte vonf
Holomorphe Funktionen
Komplexe Funktionen Gebiete
• zu jedemz∈G ∃ >0 mitB(a)⊆G
• G zusammenh¨angend (Streckenzug zw. zwei Elementen von G existiert)
Wichtige Formeln eiz= cos(z) +isin(z) ez·ew=ez+w cos(−z) = cos(z) cos(z) =eiz+e2−iz
cos(z+w) = cos(z) cos(w)−sin(z) sin(w) cos(z) = 0⇔z= (k+ 0.5)π, k∈Z cos(z+ 2π) = cos(z)
cos(z) = cos(x) cosh(y)−isin(x) sinh(y) cos2(z) + sin2(z) = 1
cosh(z) =12(ez+e−z) cosh(it) = cos(t) sin(−z) =−sin(z) sin(z) =eiz−e2i−iz
sin(z+w) = sin(z) cos(w) + sin(w) cos(z) sin(z) = 0⇔z=kπ, k∈Z
sin(z+ 2π) = sin(z)
sin(z) = sin(x) cosh(y) +icos(x) sinh(y) sin(z+π2) = cos(z)
sinh(z) =12(ez−e−z) sinh(it) =isin(t)
Kriterium f¨ur Holomorphie
Gegeben: Reelifizierte Funktionf(x, y) =u(x, y) +i·v(x, y) f(x, y) holomorph, wenn u(x, y) und v(x, y) stetig part. diffbar und Cauchy-Riemann’sche DGLen erf¨ullt:
ux(x, y) =vy(x, y) unduy(x, y) =−vx(x, y)
Harmonische Funktionen
geg.:u(x, y); ges.:v(x, y) Pr¨ufe:uxx=−uyy v(x, y) =R
uxdymit Konstanteg(x) vx=−uy⇒gx(x) integrieregx(x)
Wichtige Algorithmen
Bruch als Bin¨arzahl a= 1
11; fori= 1 : 30;
ifa≥1 a=a−1;
x(i) = 1;
elsex(i) = 0;
end a= 2∗a;
end
Newton optimiert function [x,xvec]=
newtonopt(f,Df,Hf,x,TOL) weiter = 1;
xvec=[x];
while weiter deltax= Hf(x)\Df(x);
x=x-deltax;
xvec=[xvec x];
weiter = norm(deltax) > TOL;
end Housholdermatrix bestimmen function [Q,R,A] = householder(A) [m, n] =size(A);
Dimensionspruefung der Matrix A ifn > m
disp(’Matrix A muss mehr Zeilen als Spalten besitzen’) return
endAusgabe Initialisieren Q = eye(size(A));
V = zeros(size(A));
R = zeros(n);
for k = 1:n
Spiegelungsvektor v konstruieren x = A(k:m,k);
tmp = sign(x(1))*norm(x);
v = x;
v(1) = v(1) + tmp;
v = v/norm(v);
Spiegelung durchfuehren
A(k:end,k:end) = A(k:end,k:end) - 2*v*(v’*A(k:end,k:end));
Spiegelvektoren merken V(k:end,k) = v;
end Die Matrix Q berechnen. for k = n:-1:1 v = V(k:end,k);
Q(k:end,:) = Q(k:end,:) - 2*v*(v’*Q(k:end,:)); endR ist ja gerade der rechte obere Teil von AR = triu(A);
Jacobiverfahren
SOR-Verfahren
function [x,relerr,niter] = SOR (A,b,x0,w,tol,maxiter) relerr = inf;
niter = 1;
L=-tril(A,-1);
R=-triu(A,1);
D=diag(diag(A));
M = 1/w*D-L;
N = (1/w -1)*D+R;
while relerrqeqtol & niter < maxiter, x=M (b+N*x0);
relerr = norm( x-x0,inf )/norm( x,inf );
x0 = x;
niter = niter+1;
end
Bisektionsverfahren
function [tm,n]=bisection (f,t0,t1,TOL) f0=feval(f,t0);
f1=feval(f,t1);
n=0;
if (f0==0), tm=t0; return; end if (f1==0), tm=t1; return; end if (f0*f1>0)
error(’f hat bei t0 und t1 das gleiche Vorzeichen!’);
end while (1) tm=t0+0.5*(t1-t0);
if (t1-t0<TOL), break;end fm=feval(f,tm);
if (fm==0), break;end
if (f0*fm>0), t0=tm;f0=fm;else t1=tm;f1=fm;end n=n+1;
endend
Newtonverfahren
function [ x,xvec,deltax ] = newtonverf( f,Df,x,TOL) weiter = 1;
xvec=[];
while weiter deltax= Df(x)\f(x);
lS= Df(x)\f(x-deltax);
lS: linke Seite des natuerlichen Monotonietests x=x-deltax;
xvec=[xvec x];
weiter = norm(deltax) > TOL & norm(lS) < norm (deltax);
end
Ein-/Mehrschrittverfahren(Runge-Kutta) function aufgabe
h = 0.1;
x0 = 0;
y0 = 0.5;
x1 = 1.8;
Schrittweite Start an Stelle x0 = 0 Anfangswert y0 an Stelle x0 Stop an Stelle x1 = 1.8 u euler = y0;
u rk = y0;
for x=linspace(x0, x1-h, (x1-x0)/h)
u euler = u euler + h*f(x, u euler);Explizites Euler-Verfahren Klass. Runge-Kutta Verfahren
k1 = f(x, u rk);
k2 = f(x+h/2, u rk+h/2*k1);
k3 = f(x+h/2, u rk+h/2*k2);
k4 = f(x+h, u rk+h*k3);
u rk = u rk + h*(k1/6+k2/3+k3/3+k4/6);
endformat long
u exakt = x1 + 1/(2-x1) Ausgabe der Ergebnisse u euler
fehler euler = abs(u euler-u exakt) u rk
fehler rk = abs(u rk-u exakt) end
function f = f(x, y) f = 1 + (y-x)ˆ2;
end
Gradientenverfahren
function [x,xvec]=gradientenverf(f,Df,x,gamma,TOL) weiter = 1;
xvec=[x];
while weiter fx=f(x);
Dfx=Df(x);
h=1;
while (f(x-h*Dfx) > fx-gamma*h*Dfx’*Dfx) h=h/2;
end x=x-h*Dfx;
xvec=[xvec x];
weiter = norm(h*Dfx) > TOL;
end
Christian Obermaier und Tim Huber