. , , ,

,,,

 

-

ۻ :


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.


1. ( )

 

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/ * . .

1.2

, . (, 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.3 -

-:

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). - .

- 4- :

 

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

1.4

 

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) ;

-  - . :

 

δfixj = (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.

2.1

, : main.m, rk1.m, rk2, rk4.m, funf.m, dmn.m, dif.m .

main.m, .

: Windows.

, : MatLab (Version 5.1).

2.2

. , . .

2.3

- funf.m. dif.m , - (rk1.m, rk2, rk4.m), (dmn.m). main.m , , ,

, , . rk1.m, rk2.m, rk4.m, 1-, 2- 4- . dmn.m, , ; , . , , .

( Main.m):

t0=0;

tfinal=1;

y0=[2 0];

h=0.1;

trace=1;

disp(' - 1 ');pause;

[tout,yout,x]=rk1('dif',t0,tfinal,y0,h,trace);

subplot(2,1,1);

plot(tout,yout(:,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;

x0=x';

dx=[0.01;0.01];

Ed=0.000001;

[x,dx,m] = dmn('funf',x0,dx,Ed);

subplot(111);

plot(m,x(:,1),m,x(:,2));

grid;

title(sprintf( ));

ylabel('x(m)'); xlabel('m');

pause;

plot(m,dx(:,1),m,dx(:,2));

grid;

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);

plot(tout,yout(:,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);

plot(m,x(:,1),m,x(:,2));

grid;

title(sprintf( ));

ylabel('x(m)'); xlabel('m');

pause;

plot(m,dx(:,1),m,dx(:,2));

grid;

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);

plot(tout,yout(:,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);

plot(m,x(:,1),m,x(:,2));

grid;

title(sprintf( ));

ylabel('x(m)'); xlabel('m');

pause;

plot(m,dx(:,1),m,dx(:,2));

grid;

ylabel('dx(m)'); xlabel('m');

pause;

out=[m,x,dx]

rk1, rk2, rk4

- 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 ( ). .

funf.m:

function [F] = funf(x)

F=[x(1)*x(1)+x(2)*x(2)-4; x(1)*x(2)-1];

dif.m

, , . . .

( 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

, -, , , -, , , , .


3.

.

:

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

, , (3 0) , (2 0), .

4. .

 

, - . , . - ( - , , ; - ). , -

2-3 . : , .

, - . . 0.5, . , . , .

, ( 0 = (3 0)).

, . , .


, , , , . . ; ; .


1.  .. . - 1.- : , 1975. 632.

2.  .., .. . .5. / . .. . : , 1986. 144 .

3.  .. . .: - , 1997. 88.: .

4.  .. . . , 1995. 65.

-

 

 

 

! , , , .
. , :