Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
rozv.doc
Скачиваний:
5
Добавлен:
03.09.2019
Размер:
702.98 Кб
Скачать

Рішення задачі безумовної оптимізації

Мета : 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.

Результат:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]