Laboratorijske vaje Numeriˇ cne metode
4. Vaja. Sistemi enaˇ cb
B. Jurˇ ciˇ c Zlobec
Numeriˇ cne metode FE, Ljubljana, 15. november 2013
Newtonova metoda v kompleksnem
Imaginarna enota v octave se skriva za imenoma i in j.
Ce zapiˇsemo v ukazno vrstico sistema ˇ octave iˆ2 dobimo odgovor -1, enako velja za konstanto j.
Kompleksno ˇstevilo z = 2 + 3 i zapiˇsemo z=2+3*i.
S pomoˇ cjo Newtonove metode izraˇ cunaj vse tri korene bi- nomske enaˇ cbe z 3 − 1 = 0.
Postopek je enak kot v realnem primeru.
Kakˇsne zaˇ cetne pribliˇ zke moramo vzeti, da bo Newtonova iteracija konvergirala k posameznemu korenu enaˇ cbe?
Borut Jurˇciˇc Zlobec Laboratorijske vaje Numericne metode
Octave
f=inline(’z.ˆ3-1’,’z’);
df=inline(’3*z.ˆ2’,’z’);
z=[-3,2,i,exp(-pi*i/3)];
for k=1:100, z=z-f(z)./df(z);
if abs(f(z))<10ˆ(-5), break,
end end;
z
z =
1.00000 + 0.00000i 1.00000 + 0.00000i
-0.50000 + 0.86603i -0.50000 + 0.86603i
Graviˇ cni prikaz
Borut Jurˇciˇc Zlobec Laboratorijske vaje Numericne metode
Reˇsevanje sistemov linearnih enaˇ cb
Ce je ˇ A obrnljiva matrika reda n × n, n ∈ N in b vektor stolpec reda n × 1,
potem reˇsitev enaˇ cbe A x = b zapiˇsemo v obliki x = A −1 b.
Levo deljenje
V octave to zapiˇsemo kot x=A\b.
Naredimo preizkus A*x-b.
Primer
S pomoˇ cjo levega deljenja reˇsi sistem enaˇ cb:
2x + 4y + 2z = 12 3x − 2y + z = 3
−2x + 4y − 2z = −5
Borut Jurˇciˇc Zlobec Laboratorijske vaje Numericne metode
Octave
A=[2,4,2;3,-2,1;-2,4,-2]
b=[12;3;-5]
x=A\b norm(A*x-b)
A = 2 4 2 3 -2 1 -2 4 -2 x = 0.25000
0.87500
4.00000
ans = 0
Newtonova metoda za sisteme nelinearnih enaˇ cb
f (x, y) = 0, g (x, y) = 0.
"
x n+1
y n+1
#
=
"
x n
y n
#
−
−
" ∂f
∂x (x n , y n ) ∂y ∂f (x n , y n )
∂g
∂x (x n , y n ) ∂g ∂y (x n , y n )
# −1 "
f (x n , y n ) g (x n , y n )
#
Borut Jurˇciˇc Zlobec Laboratorijske vaje Numericne metode
Reˇsi sistem enaˇ cb s pomoˇ cjo Newtonove metode
x 2 + y 2 = 4, y = 1
3 (x − 1) 2 − 1 2 . Izberi zaˇ cetna pribliˇ zka: (−1, 0) za levo
in (2, 0) za desno toˇ cko.
Iteracijo zakljuˇ ciˇs, ko pade neskonˇ cna norma razlike dveh za-
porednih pribliˇ zkov pod δ = 10 −8 .
Newton v 2D
f = @(x,y) [xˆ2+yˆ2-4;1/3*(x-1)ˆ2-1/2-y];
df= @(x,y) [2*x,2*y;2/3*(x-1),-1]’;
x0=[-1;0]; delta=1e-8;
for i=1:100
x1=x0-df(x0(1),x0(2))\f(x0(1),x0(2));
if abs(x1-x0)<delta, break,
end;
x0=x1;
printf(’x=%0.8f, y=%0.8f\n’,x1);
end;
Borut Jurˇciˇc Zlobec Laboratorijske vaje Numericne metode
Izpis
x0=-1.00000000, y0=0.00000000 x1=-2.50000000, y1=2.83333333 x2=-1.70274390, y2=1.72306911 x3=-1.43249027, y3=1.44799062 x4=-1.40349916, y4=1.42532257 x5=-1.40320722, y5=1.42513495 x6=-1.40320719, y6=1.42513493
x0=2.00000000, y0=-0.00000000
x1=2.00000000, y1=-0.16666667
x2=1.99264706, y2=-0.17156863
x3=1.99262792, y3=-0.17156327
Grafiˇ cni prikaz
-2 -1 1 2
-0.5 0.5 1.0 1.5 2.0 2.5
Borut Jurˇciˇc Zlobec Laboratorijske vaje Numericne metode