. , , ,

,,,

:

:

, 2006


1. .

2.

2.1

2.2

2.3

2.3.1

2.3.2

2.4

2.4.1

2.4.2

2.4.3

3. Maple

3.1

3.2

3.3

3.4


1. . .

, - :

(1.1)

:

(1.1)

Ÿ ,

(1.1) n n .

- (1, 2,..., n)T (1.2): F() = 0, F = (f1, f2,..., fn)T.

, , , . , , G() , . F = grad G, .

, ( ), ( ) , , . . , .

, " ". xn, *,

(k - ), k .


2.

2.1

( ) .

fi(x1,x2,...xn) = 0, i=1,2,..n;

:

(2.1)

. (2.2)

,

.

X(0)= (x1(0),x2(0),...xn(0))

X(k+1) =  (X(k)). . .

.

, .

( ).

1). - ()

;

2).

3).

:

1.

2. ,

;

3. ,

. 2) - () S ( ). , S, . . (2.2) . , (2.2) S, q.

. , 3) . , . , , k=2,3,

(2.3)

. , .. . , S, (2.3) . , 2)

.

.

,

,


.. (2.3) . , . (2.3) ,

, , .

, . (, ).

=1,2,

, , ,

, . . 2) .


. , , 3).

2. (2.2) S .

, , .

,

, .

2) . (2.2)

, - S (.. S

).

2) .

.

, ( - )

, , , , .

S , . ,

, . (2.4)

2)

.

, (2.4) -


2.2

, . , .

.

,.

x xk.

.

. .

: ,

:


()

().

,

2 .

 


, , (2r-1). , . , , ,. .

2.3

, . .

, - .

,

(3.1)

. - - , :


.

- .

, ..

, ,

(3.2)

, - ( ), (3.1) .

, , . , . , , :


. . : , , .

, .

.

( ).

1)                - -

(3.1),

2) ,

3)

4)

(3.2)

1)

2)

3)

. . . , . , . 3)

.

(3.2)

,

.

,

,

(3.3)

. 4)

,

, , . .

. (3.3) . ,

(3.4)

. (3.4.) . , .

, .. (3.4) .

3).

, .. .

, :

1. (3.3) , .

2. , 3)

. fi(x) , G, Fx , .

.

. , F(x,x)= F(x),

 


(12)


.

x0, ,.

x0 .

. fi(x) 1 - 2 - G, x0 :

x0 F-1

xk+1=xk-f-1x(xk)F(xk) . f(x)=0

3

)

)

)


)

)

.. F-1x(x0)Fx(x1) ,


Fx(x0)(x1-x0)+f(x0)=0

, k :

()

m=k-1

() , R xk , .. .

..,

,, .. .

2.3.1

1. , , .. . : . , , . .

2.

, (3.1), ..

(3.5)

.

- (3.1)

,

,

:

.

, . , (3.5) .

2.3.2

. , . , . . . , , . , - .

, . , , , - . k = 0, 1....

n- , . , , . , .

. {0) , , - .

n- , . : , , -.

, ,

(3.30)

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

(3.30), (3.27) (3.29) . . , . , (3.27) (3.29), , .

, , . (3.27) , 0(n3) . , , , . , 0(n3) . , +1, (3.27) , 0(2) . (3.27) (3.39) , (3.27) ,

, , (). . F(). , (3.26) (3.27), , (3.27)

, - - .

. , (3.29)

---, ( ), .

(0). , .

( ). = 1

(3.34)

- . ,

(3.35)

.. (, , ), (3.34). (3.35).

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


3.

3.1

, .

, l(X) g(X) fi(X) = li(X) + gi(x), .

 

li(X) = - gi(X), i=1,2,3...n;

A X= - G(X);

A- ;

G(X) - - .

X(0)

A X(k+1)=-G(X(k)).

, fi(X). A , , .


3.2

X=X+ F(X),

 - ,

X(k+1) = X(k) +  F(X(k)).

 ,

||+  W|| < 1,

E- .

,  ,

||X(k)-X(k-1)||<||X(k-1)-X(k-2)||.

, - , .

3.3

()

, .

()

, () U(x); , , U(x) , ().

, , U(x) n- .

x - () x0 - . x0 U(x). x0 x,

 

U(x)= U(x0)

.

x0 U(x)= U(x0) , x1 - U(x)= U(x1).

, x1, U(x)= U(x1) , x2 U(x)= U(x2), ..

U(x0)>U(x1)>U(x2)>..., , , U (" "), .


U(x).

:

.

F(l) U xp. , F(l) . l ,

.

.

, l - , . :

l , :

,

.

,

,

- - f.

, :

.


,

W'(x) - .

,

.


3.

:

3.1

:

.


> f1:=0.1-x0^2+2*y0*z0;

f2:=-0.2+y0^2-3*x0*z0;

f3:=0.3-z0^2-2*x0*y0;

> f1x:=diff(f1,x0):

> f1y:=diff(f1,y0):

> f1z:=diff(f1,z0):

> f2x:=diff(f2,x0):

> f2y:=diff(f2,y0):

> f2z:=diff(f2,z0):

> f3x:=diff(f3,x0):

> f3y:=diff(f3,y0):

> f3z:=diff(f3,z0):

> A:=<<f1x|f1y|f1z>,<f2x|f2y|f2z>,<f3x|f3y|f3z>>;

, :

> A1:=MatrixInverse(A);


> norma:=MatrixNorm(A1,1);

.

> x0:=1; y0:=1; z0:=1;

> norma;

,


.

> restart;

> with(LinearAlgebra):

> x0:=0:

y0:=0:

z0:=0:

> x:=0.1-x0^2+2*y0*z0;

y:=-0.2+y0^2-3*x0*z0;

z:=0.3-z0^2-2*x0*y0;

i:=1;

> while (abs(x-x0)>0.0001)and(abs(y-y0)>0.0001)and(abs(z-z0)>0.0001) do

x0:=x:

y0:=y:

z0:=z:

x:=0.1-x0^2+2*y0*z0;

y:=-0.2+y0^2-3*x0*z0;

z:=0.3-z0^2-2*x0*y0;

i:=i+1;

end do:

:

:

:

:

> P:= 0.3*q^22/(1-q)-0.0001;

> q:= fsolve(P);

, ,

:

procedure TForm1.Button3Click(Sender: TObject);

var i:integer;

x0,y0,z0,x,y,z,eps: real;

begin

x0:=StrToFloat(Edit1.Text);

y0:=StrToFloat(Edit2.text);

z0:=StrToFloat(Edit3.Text);

eps:=StrToFloat(Edit20.Text);

i:=1;

x:=0.1-x0*x0+2*y0*z0;

y:=-0.2+y0*y0-3*x0*z0;

z:=0.3-z0*z0-2*x0*y0;

repeat

i:=i+1;

x0:=x;

y0:=y;

z0:=z;

x:=0.1-x0*x0+2*y*z;

y:=-0.2+y0*y0-3*x0*z0;

z:=0.3-z0*z0-2*x0*y0;

until ((abs(x-x0)<eps)and(abs(y-y0)<eps)and(abs(z-z0)<eps));

Edit8.Text:=FloatToStr(x);

Edit9.Text:=FloatToStr(y);

Edit10.Text:=FloatToStr(z);

Edit11.Text:=IntToStr(i);

end;

:

> restart;

> x0:=0:

y0:=0:

z0:=0:

> f1:=0.1-x0^2+2*y0*z0;

f2:=-0.2+y0^2-3*x0*z0;

f3:=0.3-z0^2-2*x0*y0;

ff1:=0.1-f1^2+2*f2*f3;

ff2:=-0.2+f2^2-3*f1*f3;

ff3:=0.3-f3^2-2*f1*f2;

x:=(x0*ff1-f1^2)/(ff1-2*f1+x0);

y:=(y0*ff2-f2^2)/(ff2-2*f2+y0);

z:=(z0*ff3-f3^2)/(ff3-2*f3+z0);

i:=1;

while (abs(x-x0)>0.0001)do

x0:=x:

y0:=y:

z0:=z:

f1:=0.1-x0^2+2*y0*z0;

f2:=-0.2+y0^2-3*x0*z0;

f3:=0.3-z0^2-2*x0*y0;

ff1:=0.1-f1^2+2*f2*f3;

ff2:=-0.2+f2^2-3*f1*f3;

ff3:=0.3-f3^2-2*f1*f2;

x:=(x0*ff1-f1^2)/(ff1-2*f1+x0);

y:=(y0*ff2-f2^2)/(ff2-2*f2+y0);

z:=(z0*ff3-f3^2)/(ff3-2*f3+z0):

i:=i+1;

end do:

:

:

3.2

:

> U:=(0.1-x^2+2*y*z-x)^2+(-0.2+y^2-3*x*z-y)^2+(0.3-z^2-2*x*y-z)^2;

:

> Ux:= diff(U,x);

Uy:= diff(U,y);

Uz:= diff(U,z);

:


> x:=0;

y:=0;

z:=0;

> N1:=2*(.1-x^2+2*y*z-x)*(-2*x-1)-6*(-.2+y^2-3*x*z-y)*z-4*(.3-z^2-2*x*y-z)*y;

> N2:=4*(.1-x^2+2*y*z-x)*z+2*(-.2+y^2-3*x*z-y)*(2*y-1)-4*(.3-z^2-2*x*y-z)*x;

> N3:=4*(.1-x^2+2*y*z-x)*y-6*(-.2+y^2-3*x*z-y)*x+2*(.3-z^2-2*x*y-z)*(-2*z-1);

> x:=x-lambda*N1;

y:=y-lambda*N2;

z:=z-lambda*N3;

i:=1;

> N1:=2*(.1-x^2+2*y*z-x)*(-2*x-1)-6*(-.2+y^2-3*x*z-y)*z-4*(.3-z^2-2*x*y-z)*y;

N2:=4*(.1-x^2+2*y*z-x)*z+2*(-.2+y^2-3*x*z-y)*(2*y-1)-4*(.3-z^2-2*x*y-z)*x;

N3:=4*(.1-x^2+2*y*z-x)*y-6*(-.2+y^2-3*x*z-y)*x+2*(.3-z^2-2*x*y-z)*(-2*z-1);

x:=x-lambda*N1;

y:=y-lambda*N2;

z:=z-lambda*N3;

> while (abs(N3)>0.0001) do

N1:=2*(.1-x^2+2*y*z-x)*(-2*x-1)-6*(-.2+y^2-3*x*z-y)*z-4*(.3-z^2-2*x*y-z)*y:

N2:=4*(.1-x^2+2*y*z-x)*z+2*(-.2+y^2-3*x*z-y)*(2*y-1)-4*(.3-z^2-2*x*y-z)*x:

N3:=4*(.1-x^2+2*y*z-x)*y-6*(-.2+y^2-3*x*z-y)*x+2*(.3-z^2-2*x*y-z)*(-2*z-1):

x:=x-lambda*N1:

y:=y-lambda*N2:

z:=z-lambda*N3:

i:=i+1:

end do:

:

:

:

procedure TForm1.Button1Click(Sender: TObject);

const

lambda=-0.0001;

n=3;

type mas=array[1..n]of real;

var //x,y,z:real;

Xp,nab,v:mas;

i:integer;

eps:real;

function max(x:mas):real;

var s:real;

i:integer;

begin s:=abs(x[1]);

for i:=2 to 4 do if abs(x[i])>s then s:=abs(x[i]);

max:=s;

end;

Procedure add(var a,b:mas);

var

i:integer;

begin

for i:=1 to n do

begin

a[i]:=a[i]+b[i];

end;

end;

Procedure mult(a:mas;c:real;var v:mas);

var

i:integer;

begin

for i:=1 to n do

begin

v[i]:=a[i]*c;

end;

end;

procedure nabla(Xp:mas; var nab:mas);

begin

nab[1]:=2*(0.1-xp[1]*xp[1]+2*xp[2]*xp[3]-xp[1])*(-2*xp[1]-1)-6*(-0.2+xp[2]*xp[2]-3*xp[1]*xp[3]-xp[2])*xp[3]-4*(0.3-xp[3]*xp[3]-2*xp[1]*xp[2]-xp[3])*xp[2];

nab[2]:=4*(0.1-xp[1]*xp[1]+2*xp[2]*xp[3]-xp[1])*xp[3]+2*(-0.2+xp[2]*xp[2]-3*xp[1]*xp[3]-xp[2])*(2*xp[2]-1)-4*(0.3-xp[3]*xp[3]-2*xp[1]*xp[2]-xp[3])*xp[1];

nab[3]:=4*(0.1-xp[1]*xp[1]+2*xp[2]*xp[3]-xp[1])*xp[2]-6*(-0.2+xp[2]*xp[2]-3*xp[1]*xp[3]-xp[2])*xp[1]+2*(0.3-xp[3]*xp[3]-2*xp[1]*xp[2]-xp[3])*(-2*xp[3]-1);

end;

begin

Xp[1]:=StrToFloat(Edit1.Text);

Xp[2]:=StrToFloat(Edit2.Text);

Xp[3]:=StrToFloat(Edit3.Text);

eps:=StrToFloat(Edit20.Text);

repeat

nabla(Xp,nab);

mult(nab,lambda,v);

add(Xp,v);

i:=i+1;

until max(nab)<eps;

Edit4.Text:=FloatToStr(Xp[1]);

Edit5.Text:=FloatToStr(Xp[2]);

Edit6.Text:=FloatToStr(Xp[3]);

Edit7.Text:=IntToStr(i);

//Edit21.Text:=IntToStr(kk);

end;

procedure TForm1.Button3Click(Sender: TObject);

var i:integer;

x0,y0,z0,x,y,z,eps: real;

begin

x0:=StrToFloat(Edit1.Text);

y0:=StrToFloat(Edit2.text);

z0:=StrToFloat(Edit3.Text);

eps:=StrToFloat(Edit20.Text);

i:=1;

x:=0.1-x0*x0+2*y0*z0;

y:=-0.2+y0*y0-3*x0*z0;

z:=0.3-z0*z0-2*x0*y0;

repeat

i:=i+1;

x0:=x;

y0:=y;

z0:=z;

x:=0.1-x0*x0+2*y*z;

y:=-0.2+y0*y0-3*x0*z0;

z:=0.3-z0*z0-2*x0*y0;

until ((abs(x-x0)<eps)and(abs(y-y0)<eps)and(abs(z-z0)<eps));

Edit8.Text:=FloatToStr(x);

Edit9.Text:=FloatToStr(y);

Edit10.Text:=FloatToStr(z);

Edit11.Text:=IntToStr(i);

end;

3.3

:

> restart;

> with(LinearAlgebra):

> f1:=0.1-x0^2+2*y0*z0-x0;

> f2:=-0.2+y0^2-3*x0*z0-y0;

> f3:=0.3-z0^2-2*x0*y0-z0;

> f1x:=diff(f1,x0);

> f1y:=diff(f1,y0);

> f1z:=diff(f1,z0);

> f2x:=diff(f2,x0);

> f2y:=diff(f2,y0);

> f2z:=diff(f2,z0);

> f3x:=diff(f3,x0);

> f3y:=diff(f3,y0);

> f3z:=diff(f3,z0);

> A:=<<f1x|f1y|f1z>,<f2x|f2y|f2z>,<f3x|f3y|f3z>>;

, :

> x0:=0;y0:=0;z0:=0;

> A:=A;

> A1:=A^(-1);

> f:=<f1,f2,f3>;

> X0:=<x0,y0,z0>:

> X:=Add(X0,(Multiply(A1,f)),1,-1);

> X0:=X;

> x0:=X[1];y0:=X[2];z0:=X[3];

> A:=<<f1x|f1y|f1z>,<f2x|f2y|f2z>,<f3x|f3y|f3z>>;

> A1:=A^(-1);

> f:=<f1,f2,f3>;

> X:=Add(X0,(Multiply(A1,f)),1,-1);

> i:=2:

> while (Norm(f))>0.0001 do

X0:=X;

x0:=X[1];y0:=X[2];z0:=X[3];

A:=<<f1x|f1y|f1z>,<f2x|f2y|f2z>,<f3x|f3y|f3z>>;

A1:=A^(-1);

f:=<f1,f2,f3>;

X:=Add(X0,(Multiply(A1,f)),1,-1);

i:=i+1;

end do:

> X:=X;

:

:

procedure TForm1.Button4Click(Sender: TObject);

type mas=array[1..3]of real;

matr=array[1..3,1..3]of real;

var a,a1:matr;

i,j:integer;

x,y,z,eps:real;

f,xk,xkk,temp:mas;

procedure jacobi(x,y,z:real; var a:matr);

begin

a[1,1]:=-2*x-1;

a[1,2]:=2*z;

a[1,3]:=2*y;

a[2,1]:=-3*z;

a[2,2]:=2*y-1;

a[2,3]:=-3*x;

a[3,1]:=-2*y;

a[3,2]:=-2*x;

a[3,3]:=-2*z-1;

end;

procedure inverse(a:matr;var a1:matr);

var i,j:integer;

det:real;

s:matr;

begin

det:=a[1,1]*a[2,2]*a[3,3]+a[2,1]*a[3,2]*a[1,3]+a[1,2]*a[2,3]*a[3,1]-a[3,1]*a[2,2]*a[1,3]-a[3,2]*a[2,3]*a[1,1]-a[2,1]*a[1,2]*a[3,3];

s[1,1]:=a[2,2]*a[3,3]-a[2,3]*a[3,2];

s[1,2]:=-a[1,2]*a[3,3]+a[1,3]*a[3,2];

s[1,3]:=a[1,2]*a[2,3]-a[1,3]*a[2,2];

s[2,1]:=-a[2,1]*a[3,3]+a[2,3]*a[3,1];

s[2,2]:=a[1,1]*a[3,3]-a[1,3]*a[3,1];

s[2,3]:=-a[1,1]*a[2,3]+a[1,3]*a[2,1];

s[3,1]:=a[2,1]*a[3,2]-a[2,2]*a[3,1];

s[3,2]:=-a[1,1]*a[3,2]+a[1,2]*a[3,1];

s[3,3]:=a[1,1]*a[2,2]-a[1,2]*a[2,1];

for i:=1 to 3 do

for j:=1 to 3 do

a1[i,j]:=(1/det)*s[i,j];

end;

procedure fx(x,y,z:real; var f:mas);

begin

f[1]:=-x-x*x+2*y*z+0.1;

f[2]:=-y+y*y-3*x*z-0.2;

f[3]:=-z-z*z-2*x*y+0.3;

end;

procedure minus(x,y:mas; var z:mas);

var i:integer;

begin

for i:=1 to 3 do

z[i]:=x[i]-y[i];

end;

function max(f:mas):real;

var p:real;

i:integer;

begin

p:=0;

for i:=1 to 3 do

if abs(f[i])>p then p:=abs(f[i]);

max:=p;

end;

procedure mult(a:matr;b:mas;var c:mas);

begin

c[1]:=a[1,1]*b[1]+a[1,2]*b[2]+a[1,3]*b[3];

c[2]:=a[2,1]*b[1]+a[2,2]*b[2]+a[2,3]*b[3];

c[3]:=a[3,1]*b[1]+a[3,2]*b[2]+a[3,3]*b[3];

end;

begin

xk[1]:=StrToFloat(Edit1.Text);

xk[2]:=StrToFloat(Edit2.Text);

xk[3]:=StrToFloat(Edit3.Text);

eps:=StrToFloat(Edit20.Text);

i:=0;

repeat

fx(xk[1],xk[2],xk[3],f);

jacobi(xk[1],xk[2],xk[3],a);

inverse(a,a1);

mult(a1,f,temp);

minus(xk,temp,xk);

i:=i+1;

until max(f)<eps;

Edit12.Text:=FloatToStr(xk[1]);

Edit13.Text:=FloatToStr(xk[2]);

Edit14.Text:=FloatToStr(xk[3]);

Edit15.Text:=IntToStr(i);

end;

3.4

, , :

> with(LinearAlgebra):

> f1x:=diff(f1,x0);

> f1y:=diff(f1,y0);

> f1z:=diff(f1,z0);

> f2x:=diff(f2,x0);

> f2y:=diff(f2,y0);

> f2z:=diff(f2,z0);

> f3x:=diff(f3,x0);

> f3y:=diff(f3,y0);

> f3z:=diff(f3,z0);

> A:=<<f1x|f1y|f1z>,<f2x|f2y|f2z>,<f3x|f3y|f3z>>;

> x0:=0;y0:=0;z0:=0;

> A:=A;

> A1:=A^(-1);

> f:=<f1,f2,f3>;

> X0:=<x0,y0,z0>;

> X:=Add(X0,(Multiply(A1,f)),1,-1);

> X0:=X;

> x0:=X[1];y0:=X[2];z0:=X[3];

> f:=<f1,f2,f3>;

> i:=1;

> while (Norm(f))>0.0001 do

X0:=X;

x0:=X[1];y0:=X[2];z0:=X[3];

f:=<f1,f2,f3>;

X:=Add(X0,(Multiply(A1,f)),1,-1);

i:=i+1;

end do;

:

:

procedure TForm1.Button2Click(Sender: TObject);

type mas=array[1..3]of real;

matr=array[1..3,1..3]of real;

var x,y,z,ex,ey,ez,eps,b,c,d:real;

r,xk,f,temp:mas;

a,h,w,a1:matr;

i,kk: integer;

procedure jacobi(x,y,z:real; var a:matr);

procedure inverse(a:matr;var a1:matr);

procedure fx(x,y,z:real; var f:mas);

procedure minus(x,y:mas; var z:mas);

function max(f:mas):real;

procedure mult(a:matr;b:mas;var c:mas);

//

begin

xk[1]:=StrToFloat(Edit1.Text);

xk[2]:=StrToFloat(Edit2.Text);

xk[3]:=StrToFloat(Edit3.Text);

eps:=StrToFloat(Edit20.Text);

i:=0;

jacobi(xk[1],xk[2],xk[3],a);

inverse(a,a1);

repeat

fx(xk[1],xk[2],xk[3],f);

mult(a1,f,temp);

minus(xk,temp,xk);

i:=i+1;

until max(f)<eps;

Edit16.Text:=FloatToStr(xk[1]);

Edit17.Text:=FloatToStr(xk[2]);

Edit18.Text:=FloatToStr(xk[3]);

Edit19.Text:=IntToStr(i);


.

. , . , , - . . , - , .

, . , . , , .

.

. , , () . , , . , . , , . , . , , .

, , . .

, . , , . , . , . - , , . , , . . , .

.

, . , - , . , , . , . , .

.


1.                .., .., .. . .: , 2000.

2.                .., .., , ,., 2001.

3.                .., .., .. . .: , 1994.

4.                .., .. ..: , 1989.

5.                .., , .

: :

 

 

 

! , , , .
. , :