.


:




:

































 

 

 

 


2

 

 

: . .

..

: -200301

: ..

 

, ..:

(47)

, (47). :

 

1. (47).

 

2. , , .. (46).

 

3. i- , .2

 

4. : (47); ; , .

 

:

1. : xº , ε1 > 0, ε2> 0, M ;

2. n = 0;

3. : gradf(xⁿ);

4. || gradf(xⁿ) ||;

4.1) || gradf(xⁿ) || < ε1,

x*= xⁿ;

4.2) || gradf(xⁿ) || > ε1, 5);

5. n < M

5.1) , 6);

5.2) , x*= xⁿ;

6. φ(tn) = f(xⁿ tn * gradf(xⁿ));

7. xⁿ ¹ = xⁿ tn * gradf(xⁿ);

8. f(xⁿ ¹) f(xⁿ) < 0

8.1) , 9);

8.2) , tn= tn / 2 7);

9. ||xⁿ ¹ xⁿ ||< ε2 f(xⁿ ¹) f(xⁿ) < ε2

9.1) , x*= xⁿ ¹;

9.2) , n = n+1 3).

 

u = f (x 1, x 2,, xn). - M 0 . , . - x 1. , M 0 , x 1 . , x 1.

 

, x 2, . , , .. . x 3, x 4,, xn, x 1 xn .. M 0, M 1,, f . k - , f (Mk) .

, .

z=f (x, y), . . 1 . . M 0(x 0, y 0) . , M 1(x 1, y 0). , , M 2(x 1, y 1) ..

. , f (M 0), f (M 1), ? .

 

. 1.

, . . , . , . , , .

( ) . .

:

R2. (2) , - , .
(0) f(). (k) (3):
x(k+1)=x(k)+t(k)S(k) (k=0,1,2,...),
s(k)- , - (, S(k) 1, S(k)= {1,0,0,...,0}, x2, S(k)={0, 1, 0,...,0} ..); t(k) :
f(x(k)+ts(k)) --> min, t R1, (k=0,1,2,...),
, , .
R2 * , , (k), ~(k), x(k+1) (k=0, 1, 2,) (.2). k=0, (0)=(x1(0),x2(0)), ~(0)= (x1~(0),x2(0)), f(x1,x2(0)); f(x~(0))<=f(x(0)). x(1) f (x1~(0),x2) . k=1. , (1). (1), ~(1)= (x1~(1),x2(1)), f(x1,x2(1)) x(1); f(x~(1))<=f(x(1))<=f(x(0)). (2) , f(x1~(1),x2), 2, x1~(1), x(1), ..
e
||x(k+1) - x(k) ||<e (4)

 

 

:

clc

clear

 

%xx0=[2 3];

%xx0=[13 10];

xx0=[8.5 14.3];

[x11 x22]=meshgrid([-15:0.1:15],[-15:0.1:15]);

z=7.*x11.^2+2.*x11.*x22+5.*x22.^2-2.*x11-10.*x22;

contour(x11,x22,z);

hold on;

grid on;

syms x1 x2;

 

f=7*x1^2+2*x1*x2+5*x2^2-2*x1-10*x2;

eps=10^(-5);

h=1;

k=0;

plot(xx0(1),xx0(2),'o');

hold on

tic

 

while(1)

grad=[subs(diff(f,x1),[x1 x2],xx0)

subs(diff(f,x2),[x1 x2],xx0)];

l=norm(grad,inf);

grad1=grad./l;

fx0=subs(f,[x1 x2],xx0);

xxk=xx0-h*grad1';

fxk=subs(f,[x1 x2],xxk);

if (fxk<fx0)

fxp=fx0;

xxp=xx0;

while(fxk<fxp)

xxp=xxk;

xxk=xxp-h*grad1';

fxk=subs(f,[x1 x2],xxk);

xxp=xxk+h*grad1';

fxp=subs(f,[x1 x2],xxp);

plot(xxk(1),xxk(2),'.');

hold on

end

xx0=xxp;

plot(xx0(1),xx0(2),'o');

hold on

else

h=h/10;

end

 

if (h<eps)

break;

end

 

if (norm(grad,inf)<eps)

break;

end

k=k+1;

end

k

xxk

fxk

 

f=7*x1^2+2*x1*x2+5*x2^2-2*x1-10*x2;

xx0=[0 1];

 

 

 

:

clc

clear

 

%xx0=[2 3];

%xx0=[13 10];

xx0=[8.5 14.3];

[x11 x22]=meshgrid([-15:0.1:15],[-15:0.1:15]);

z=7.*x11.^2+2.*x11.*x22+5.*x22.^2-2.*x11-10.*x22;

contour(x11,x22,z);

hold on;

grid on;

plot(xx0(1),xx0(2),'o');

hold on;

syms x1 x2;

 

f=7*x1^2+2*x1*x2+5*x2^2-2*x1-10*x2;

eps=10^(-5);

h1=1;

h2=1;

k=0;

tic

while(1)

dfx1=subs(f,[x1 x2],[xx0(1) xx0(2)]);

xxk_=[xx0(1)+h1 xx0(2)];

xx_k=[xx0(1)-h1 xx0(2)];

dfx1_=subs(f,[x1 x2],xxk_);

df_x1=subs(f,[x1 x2],xx_k);

 

if (dfx1_<df_x1)&&(dfx1_<dfx1)

xxk=xxk_;

fxk=dfx1_;

fx0=dfx1;

while(fxk<fx0)

fx0=fxk;

xx0=xxk;

xxk=[xx0(1)+h1 xx0(2)];

fxk=subs(f,[x1 x2],xxk);

plot(xxk(1),xxk(2),'.');

hold on

end

else

if (df_x1<dfx1_)&&(df_x1<dfx1)

xxk=xx_k;

fxk=df_x1;

fx0=dfx1;

while(fxk<fx0)

fx0=fxk;

xx0=xxk;

xxk=[xx0(1)-h1 xx0(2)];

fxk=subs(f,[x1 x2],xxk);

plot(xxk(1),xxk(2),'.');

hold on

end

else

h1=h1/10;

end

plot(xx0(1),xx0(2),'o');

hold on

end

 

 

dfx2=subs(f,[x1 x2],[xx0(1) xx0(2)]);

xxk_=[xx0(1) xx0(2)+h2];

dfx2_=subs(f,[x1 x2],xxk);

xx_k=[xx0(1) xx0(2)-h2];

df_x2=subs(f,[x1 x2],xx_k);

 

if (dfx2_<df_x2)&&(dfx2_<dfx2)

xxk=xxk_;

fxk=dfx2_;

fx0=dfx2;

while(fxk<fx0)

fx0=fxk;

xx0=xxk;

xxk=[xx0(1) xx0(2)+h2];

fxk=subs(f,[x1 x2],xxk);

plot(xxk(1),xxk(2),'.');

hold on

end

else

if (df_x2<dfx2_)&&(df_x2<dfx2)

xxk=xx_k;

fxk=df_x2;

fx0=dfx2;

while(fxk<fx0)

fx0=fxk;

xx0=xxk;

xxk=[xx0(1) xx0(2)-h2];

fxk=subs(f,[x1 x2],xxk);

plot(xxk(1),xxk(2),'.');

hold on

end

else

h2=h2/10;

end

end

 

 

if((h1<eps)&&(h2<eps))

break;

end

plot(xx0(1),xx0(2),'+');

hold on

fx0=subs(f,[x1 x2],xx0);

k=k+1;

end

 

fx0

k

xx0

toc

 

f=7*x1^2+2*x1*x2+5*x2^2-2*x1-10*x2;

 

xx0=[0 1];

 

 

h=1; eps=10^(-5);

 

X0=[2 3]

 

    1.683678 seconds
  0.924417 seconds

 

X0=[13 10]

 

    1.978522 seconds
  1.152933 seconds

 

 

X0=[8.5 14.3]

 

    2.023583 second
  1.675416 seconds

 



<== | ==>
SQL . - | :
:


: 2016-04-03; !; : 4456 |


:

:

, .
==> ...

1866 - | 1694 -


© 2015-2024 lektsii.org - -

: 0.065 .