,,,
ۻ :
2004
1. ( )
1.1
1.2
1.3 -
1.4
1.5
2.
2.1
2.2
2.3
2.4
2.5
2.6
2.7
3.
4. .
. MatLab Version 5.1. , . X0.
0=F(X*,U*).
U* , *
F(X)=0.
, :
- ;
- .
0 - , . n 0 . , 0 . ( ).
, , , 0 . . *, .
1.1
F(X)=0
m+1=G(m, m-1,,m-p+1),
G - n , ; , .
(=1),
m+1=G(m)
.
:
1. . ,
lim m =* m→∞
- G() . ρ() . , G()
G/ = δG/δ
.
G/ ρ(G/)<1 m+1=G(m) - F G, m+1=G(m) . * = limm m→∞ .
0 .
, ri, i=1,n m- . .
. , 0 *. G/ 0: ρ(G/(0))<1.
2. .
0 . , 0 *, , 0 - . 0 = 0.
3. .
Em = |m-*|
,
||Em+1|| = ||Em ||k , k- ; - .
k=1, . , ≈1, ( ).
k=2, . ||Em ||<1, ||Em||2 ( ).
4. .
m+1=G(m) . , Em, *. Em .
1. , ||F(m)|| ≤ ε . , lim ||F(m)||=0 m→∞.
2. , ||∆m || < ε. ∆m = m+1 Xm. *, ||∆m ||.
fi() .
fi fi
Eim
ε
i* Xim Xi* Xim Xi
ε
. 1.1 . 1.2
. 1.1 , ||F||, i* im . . 1.2 , ||∆m ||, ||Fm ||.
3. , , m,
max{||∆m ||, ||F(m)|| }< ε
, G/ * . .
, . (, t) t[0,1], .. (t)=(, t). (t) t [0,1],
/(t)=( δH/δ)X/(t)+ δH/δt.
H(, t) , . , (t) H(, t)=0, /(t)=0. ,
X/(t)= - ( δH/δ)-1 δH/δt.
t=0, X(0)=X0. 0 1. t=1 F(X)=0 - * , . (,t)= F(X) + (t - 1) F(X0) ,
X(t)=-J-1((t))F(X0),
.
, .
-:
1. ; Xm+1 , Xm, t.
2. hs, S .
3. fi (X,t), i=1,n, hm .
- 1- :
/ =F(, t) ;
Xm+1 = Xm + hm F (Xm, tm)
εα ~ h2. , 1 (0, -1) . . 1.3, 1; .
- 2- 4- , .
- 2- :
Xm+1 = Xm + (hm/2)(K1 + K2),
K1= F(Xm, tm), K2= F(Xm + hmK1, tm + hm).
εα=kh3. . 1.3 ( 2). - .
Xm+1 = Xm + (hm/6) (K1 + 2K2 + 2K3 + K4),
K1= F(Xm, tm), K2= F(Xm + (hm/2)K1, tm + hm/2);
K3= F(Xm + (hm/2) K2, tm + hm/2);
K4= F(Xm + hK3, tm + hm);
εα=kh5. . 1.3 ( 3). - .
1
2
3
. 1.3
Xm+1=Xm J-1(Xm) F(Xm) ,
J (m) = F/X / X=Xm .
.
1. .
ρ(G())= ρ(I (J-1() F())/)<1.
ρ(I J-1(*) F/(*))=0; , , .. . . *, .
2. 0.
, , *. , F() *: , , .
3. .
||Em+1||=Cm ||Em||1+ ,
0<<1. →* →1. , .
4. .
.
1.5
:
1. J = F/X.
:
- . . , . F(X) ;
- - . :
δfi/δxj = (fi(x1, , xj + ∆xj, , xn) - fi(x1, , xj - ∆xj, , xn)) / 2δxj .
, . , ∆xj X*.
2. J-1 . , . , ∆Xm = Xm+1 - Xm. Xm+1=Xm J-1(Xm) F(Xm) :
J(Xm) ∆Xm = -F(Xm).
m- J(Xm) F(Xm) . ∆Xm, J(Xm) ∆Xm = -F(Xm).
Xm+1 = Xm + ∆Xm.
J(Xm) ∆Xm = -F(Xm) , .
2.
, : main.m, rk1.m, rk2, rk4.m, funf.m, dmn.m, dif.m .
main.m, .
: Windows.
, : MatLab (Version 5.1).
. , . .
- funf.m. dif.m , - (rk1.m, rk2, rk4.m), (dmn.m). main.m , , ,
, , . rk1.m, rk2.m, rk4.m, 1-, 2- 4- . dmn.m, , ; , . , , .
subplot(2,1,1);
grid;
title(sprintf(' - 1 '));
ylabel('y(1)'); xlabel('t');
subplot(2,1,2);
plot(tout,yout(:,2));
grid;
ylabel('y(2)'); xlabel('t');
pause;
subplot(111);
title(sprintf( ));
ylabel('x(m)'); xlabel('m');
pause;
plot(m,dx(:,1),m,dx(:,2));
ylabel('dx(m)'); xlabel('m');
pause;
out=[m,x,dx]
disp(' - 2 ');pause;
[tout,yout,x]=rk2('dif',t0,tfinal,y0,h,trace);
subplot(2,1,1);
grid;
title(sprintf(' - 2 '));
ylabel('y(1)'); xlabel('t');
subplot(2,1,2);
plot(tout,yout(:,2));
grid;
ylabel('y(2)'); xlabel('t');
pause;
x0=x';
dx=[0.01;0.01];
[x,dx,m] = dmn('funf',x0,dx,Ed);
subplot(111);
title(sprintf( ));
ylabel('x(m)'); xlabel('m');
pause;
plot(m,dx(:,1),m,dx(:,2));
ylabel('dx(m)'); xlabel('m');
pause;
out=[m,x,dx]
disp(' - 4 ');pause;
[tout,yout,x]=rk4('dif',t0,tfinal,y0,h,trace);
subplot(2,1,1);
grid;
title(sprintf(' - 4 '));
ylabel('y(1)'); xlabel('t');
subplot(2,1,2);
plot(tout,yout(:,2));
grid;
ylabel('y(2)'); xlabel('t');
pause;
x0=x';
dx=[0.01;0.01];
[x,dx,m] = dmn('funf',x0,dx,Ed);
subplot(111);
title(sprintf( ));
ylabel('x(m)'); xlabel('m');
pause;
plot(m,dx(:,1),m,dx(:,2));
ylabel('dx(m)'); xlabel('m');
pause;
out=[m,x,dx]
- 1-, 2- 4- . t = [0; 1]. , , Y, . tout, yout={n x 2}, n ( Ym, m = 0,n), , , , , .
( rk1.m, rk2.m, rk3.m):
function [tout,yout,x] = rk1(dif, t0, tfinal, y0, h, trace)
t=t0;y=y0;
tout=t;
yout=y;
b=0;
if trace
clc, t, h, y
end
while (t<tfinal)
if t+h>tfinal
h=tfinal-t;
end
if trace
clc, t, h, y
end
k1=feval(dif, t, y);
q=h*k1;
y=y+q';
t=t+h;
b=b+1;
tout=[tout; t];
yout=[yout; y];
if trace
home,t, h, y
end;
end; x=y;
disp(' = '); disp(b);
function [tout,yout,x] = rk2(dif, t0, tfinal, y0, h, trace)
t=t0;y=y0;
tout=t;
yout=y;
b=0;
if trace
clc, t, h, y
end
while (t<tfinal)
if t+h>tfinal
h=tfinal-t;
end
if trace
clc, t, h, y
end
k1=feval(dif, t, y);
z=h*k1;
k2 = feval(dif, t+h, y+z');
q=h/2*(k1+k2);
y=y+q';
t=t+h;
b=b+1;
tout=[tout; t];
yout=[yout; y];
if trace
home,t, h, y
end;
end; x=y;
disp('K = '); disp(b);
function [tout,yout,x] = rk4(dif, t0, tfinal, y0, h, trace)
t=t0;y=y0;
tout=t;
yout=y;
b=0;
if trace
clc, t, h, y
end
while (t<tfinal)
if t+h>tfinal
h=tfinal-t;
end
if trace
clc, t, h, y
end
k1=feval(dif, t, y);
z=h*k1;
k2 = feval(dif, t+h, y+z');
z=h*k2/2;
k3 = feval(dif, t+h/2, y+z');
z=h*k3;
k4 = feval(dif, t+h, y+z');
q=h*(k1+2*k2+2*k3+k4)/6;
y=y+q';
t=t+h;
b=b+1;
tout=[tout; t];
yout=[yout; y];
if trace
home,t, h, y
end;
end; x=y;
disp('K = '); disp(b);
funf.m
funf.m:
function [F] = funf(x)
F=[x(1)*x(1)+x(2)*x(2)-4; x(1)*x(2)-1];
, , . . .
( dif.m):
function yp= dif(t,y)
J=[2*y(1) 2*y(2); y(2) y(1)];
J=-inv(J);
a=[0; -1];
b=J*a;
yp=b;
Dmn.m
, . . mout xout, dxout.
( dif.m):
function[xout,dxout,mout]=dmn(funf,x,dx,edop);
xout=x';
dxout=dx';
x1=x;
m=0; it=0;
mout=m;
nv=[1;1];
n=size(x);
while(max(nv)>edop)
f=feval(funf,x);
nf=norm(f);
for j=1:n,
x1(j)=x(j)+dx(j);
f1=feval(funf,x1);
x1(j)=x(j)-dx(j);
f2=feval(funf,x1);
J(:,j)=(f1-f2)/(2*dx(j));
x1(j)=x(j);
end;
dx=-J\f;
ndx=norm(dx);
nv=[nf;ndx];
x=x+dx ;
m=m+1; it=it+1;
xout=[xout;x1'];
dxout=[dxout;dx'];
mout=[mout;m];
end;
disp(' '); disp(it);
2.4
, IBM PC. Pentium1. 32 , , , .
2.5
MatLab , main. , . . .
, 4,3 .
2.6
funf.m, dif.m, , ( dif.m), , , , .
2.7
, -, , , -, , , , .
.
:
x2+y2-4=0
xy 1=0
:
- 1
t =
0
h =
0.1000
y =
2 0
t =
1
h =
1.1102e-016
y =
1.9398 0.5139
=
11
3
:
out =
0 1.9398 0.5139 0.0100 0.0100
1.0000 1.9398 0.5139 -0.0079 0.0037
2.0000 1.9319 0.5176 0.0000 0.0000
3.0000 1.9319 0.5176 0.0000 0.0000
- 2
t =
0
h =
0.1000
y =
2 0
t =
1
h =
1.1102e-016
y =
1.9319 0.5176
K =
11
:
2
:
out =
0 1.9319 0.5176 0.0100 0.0100
1.0000 1.9319 0.5176 0.0000 0.0000
2.0000 1.9319 0.5176 0.0000 0.0000
- 4
t =
0
h =
0.1000
y =
2 0
t =
1
h =
1.1102e-016
y =
1.9291 0.5190
K =
11
:
3
:
out =
0 1.9291 0.5190 0.0100 0.0100
1.0000 1.9291 0.5190 0.0027 -0.0014
2.0000 1.9319 0.5176 0.0000 0.0000
3.0000 1.9319 0.5176 0.0000 0.0000
: h = 0.5 0.1. :
- 1
t =
0
h =
0.5000
y =
2 0
t =
1
h =
0.5000
y =
1.9683 0.5040
=
2
4
out =
0 1.9683 0.5040 0.0100 0.0100
1.0000 1.9683 0.5040 -0.0359 0.0133
2.0000 1.9323 0.5173 -0.0005 0.0004
3.0000 1.9319 0.5176 0.0000 0.0000
4.0000 1.9319 0.5176 0.0000 0.0000
- 2
t =
0
h =
0.5000
y =
2 0
t =
1
h =
0.5000
y =
1.9321 0.5175
K =
2
2
out =
0 1.9321 0.5175 0.0100 0.0100
1.0000 1.9321 0.5175 -0.0002 0.0002
2.0000 1.9319 0.5176 0.0000 0.0000
- 4
t =
0
h =
0.5000
y =
2 0
t =
1
h =
0.5000
y =
1.9183 0.5243
K =
2
3
out =
0 1.9183 0.5243 0.0100 0.0100
1.0000 1.9183 0.5243 0.0137 -0.0068
2.0000 1.9319 0.5176 -0.0001 0.0001
3.0000 1.9319 0.5176 0.0000 0.0000
, h , ( 11, 3), , , .
: edop = 0.001 edop = 0.00001. :
- 1
t =
0
h =
0.1000
y =
2 0
t =
1
h =
1.1102e-016
y =
1.9398 0.5139
=
11
2
out =
0 1.9398 0.5139 0.0100 0.0100
1.0000 1.9398 0.5139 -0.0079 0.0037
2.0000 1.9319 0.5176 0.0000 0.0000
- 2
t =
0
h =
0.1000
y =
2 0
t =
1
h =
1.1102e-016
y =
1.9319 0.5176
K =
11
1
out =
0 1.9319 0.5176 0.0100 0.0100
1.0000 1.9319 0.5176 0.0000 0.0000
- 4
t =
0
h =
0.1000
y =
2 0
t =
1
h =
1.1102e-016
y =
1.9291 0.5190
K =
11
2
out =
0 1.9291 0.5190 0.0100 0.0100
1.0000 1.9291 0.5190 0.0027 -0.0014
2.0000 1.9319 0.5176 0.0000 0.0000
, , , , .
0 = (3 0).
- 1
t =
0
h =
0.1000
y =
3 0
t =
1
h =
1.1102e-016
y =
3.7401 0.2728
=
11
6
out =
0 3.7401 0.2728 0.0100 0.0100
1.0000 3.7401 0.2728 -1.3520 0.0932
2.0000 2.3880 0.3660 -0.3996 0.0984
3.0000 1.9884 0.4644 -0.0539 0.0484
4.0000 1.9345 0.5128 -0.0026 0.0047
5.0000 1.9319 0.5176 0.0000 0.0001
6.0000 1.9319 0.5176 0.0000 0.0000
- 2
t =
0
h =
0.1000
y =
3 0
t =
1
h =
1.1102e-016
y =
3.7321 0.2680
K =
11
6
out =
0 3.7321 0.2680 0.0100 0.0100
1.0000 3.7321 0.2680 -1.3467 0.0967
2.0000 2.3854 0.3646 -0.3973 0.0992
3.0000 1.9881 0.4638 -0.0536 0.0490
4.0000 1.9345 0.5128 -0.0026 0.0047
5.0000 1.9319 0.5176 0.0000 0.0001
6.0000 1.9319 0.5176 0.0000 0.0000
- 4
t =
0
h =
0.1000
y =
3 0
t =
1
h =
1.1102e-016
y =
3.7294 0.2664
K =
11
6
out =
0 3.7294 0.2664 0.0100 0.0100
1.0000 3.7294 0.2664 -1.3449 0.0978
2.0000 2.3845 0.3642 -0.3965 0.0995
3.0000 1.9880 0.4637 -0.0535 0.0492
4.0000 1.9345 0.5128 -0.0026 0.0047
5.0000 1.9319 0.5176 0.0000 0.0001
6.0000 1.9319 0.5176 0.0000 0.0000
, - . , . - ( - , , ; - ). , -
2-3 . : , .
, - . . 0.5, . , . , .
, ( 0 = (3 0)).
, . , .
, , , , . . ; ; .
1. .. . - 1.- : , 1975. 632.
2. .., .. . .5. / . .. . : , 1986. 144 .
3. .. . .: - , 1997. 88.: .
4. .. . . , 1995. 65.
-
Copyright (c) 2025 Stud-Baza.ru , , , .