Рішення задачі безумовної оптимізації
Мета : 1) набуття навичок знаходження оптимуму задачі безумовної одновимірної оптимізації наближеними методами без використання інформації про похідну :
методом повного перебору;
методом рівномірного пошуку;
методом дихотомічного пошуку;
методом золотого перерізу;
методом Фібоначчі.
2) набуття навичок знаходження оптимуму задачі безумовної одновимірної оптимізації наближеними методами з використанням інформації про похідну:
- методом ділення навпіл;
методом Ньютона.
завдання 3 (лаб 3-(1)- пункт (1) ) - рішення задачі безумовної оптимізації методом повного перебору, потребує розробки програми для знаходження оптимуму функції,
методом повного перебору;
Текст програми
program perebor;
Uses wincrt;
Const xp=-0.5; xk=2;
Var h, y, x, xmin, ymin, ymax, xmax : real;
begin
write('Введіть крок: ');
readln(h);
x:=xp;
ymin:=0.5*x*x*x-13*sqr(x)+6*x-2;
ymax:=ymin;
xmin:=x;
xmax:=x;
x:=x+h;
while x<=xk do
begin
y:=0.5*x*x*x-13*sqr(x)+6*x-2;
if y>ymax then begin ymax:=y; xmax:=x; end;
if y<ymin then begin ymin:=y; xmin:=x; end;
x:=x+h;
end;
writeln('При х=',xmin:8:4,' ymin=',ymin:10:5);
writeln('При х=',xmax:8:4,' ymax=',ymax:10:5);
end.
Результат:
завдання 3 (лаб 3-(1)- пункти (2-5) ) - рішення задачі безумовної оптимізації, потребує розробки програми для знаходження оптимуму функції, причому студент досліджує свою функцію одним з самостійно обраних методів з пунктів (2-5) без використання інформації про похідну,
методом дихотомічного пошуку;
Знайдемо
максимум функції при
Текст програми
Const xp=-0.5; xk=2.0; eps=0.001; L=0.01;
Var yk, zk, ak, bk, yy, yz : real;
k: integer;
begin
ak:=xp; bk:=xk;
k:=0;
writeln(' ak bk yk zk yy yz' ); while bk-ak>L do
begin
yk:=(ak+bk)/2-eps;
zk:=(ak+bk)/2+eps;
yy:=0.5*yk*yk*yk-13*sqr(yk)+6*yk-2;
yz:=0.5*zk*zk*zk-13*sqr(zk)+6*zk-2;
if -yy<-yz then bk:=zk
else ak:=yk;
k:=k+1;
writeln(ak:8:4,bk:8:4,yk:8:4,zk:8:4,yy:9:5,yz:9:5);
end;
yk:=(ak+bk)/2;
yy:=0.5*yk*yk*yk-13*sqr(yk)+6*yk-2;
writeln('При х=',yk:8:4,' ymax=',yy:10:5,' k=',k);
end.
Результат:
завдання 3 (лаб 3-(2)- пункти (1-2) ) - рішення задачі безумовної оптимізації, потребує розробки програми для знаходження оптимуму функції, студент досліджує свою функцію одним з двох обраних методів з використанням інформації про похідну.
методом Ньютона.
Знайдемо першу та другу похідну для функції y:
На всьому проміжку [-0,5; 2] друга похідна не дорівнює нулю
Текст програми
program nuton;
Uses wincrt;
Const xp=-0.5; xk=2.0; eps=0.001;
Var y1p, y2p, ak, bk, y, x1, x2 : real;
k: integer;
begin
ak:=xp; bk:=xk;
k:=0;
writeln(' k x1 y1p y2p x2 abs(x1-x2) y' );
x2:=(xp+xk)/2;
repeat
x1:=x2;
y1p:=1.5*sqr(x1)-26*x1+6;
y2p:=3*x1-26;
x2:=x1-y1p/y2p;
k:=k+1;
writeln(k:3,x1:8:4,y1p:9:4,y2p:9:4,x2:8:4,abs(x1-x2):9:5,
0.5*x2*x2*x2-13*sqr(x2)+6*x2-2:10:5);
until abs(x2-x1)<eps ;
end.
Результат:
