Лабораторные работы3 / 1,2,3 / №1 / ЛАБпервая
.docФедеральное агентство по образованию Российской Федерации
Уфимский государственный авиационный технический университет
Кафедра АПрИС
Лабораторная работа №1
Безусловная одномерная оптимизация
Выполнил: студент группы САПР-327 Васильев А.А.
Проверила: Колоденкова А.Е.
Уфа 2006
Безусловная одномерная оптимизация
1. Цель работы
Знакомство с оптимизационными задачами, изучение различных методов одномерной оптимизации и сравнение эффективности их применения для конкретных целевых функций.
2. Условие задачи
Вариант 1:
Составить программы, реализующие следующие методы поиска:
- пассивный оптимальный алгоритм;
- метод золотого сечения.
Найти точку минимума функции
на отрезке [-1,0] при числе экспериментов N=22.
3. График целевой функции
4. Алгоритмы методов поиска
4.1 Пассивный оптимальный алгоритм. Блок-схема алгоритма:
Текст программы:
program passivnij;
uses crt;
var n,i:integer;
a,b,xmin,ymin,e,x:real;
function f(x:real):real;
begin
f:=x*x+6*exp(0.15*x);
end;
begin
clrscr;
write('vvedite a '); readln(a);
write('vvedite b '); readln(b);
write('vvedite n '); readln(n);
ymin:=9999999;
for i:=1 to n
do begin
x:=a+(b-a)/n*i;
if f(x)<ymin then
begin
xmin:=x;
ymin:=f(x);
end;
end;
e:=(b-a)/2/n;
writeln('');writeln('');
writeln('x=',xmin:20:15);
writeln('');
writeln('y=',ymin:20:15);
writeln('');
writeln('E=',e:20:15);
readkey;
end.
4.2 Метод золотого сечения. Блок-схема алгоритма:
Текст программы:
program zolotoj;
uses crt;
var n,i:integer;
xmin,ymin,a,b,e,la,x1,x2,y1,y2:real;
function f(x:real):real;
begin
f:=x*x+6*exp(0.15*x);
end;
begin
clrscr;
write('vvedite a '); readln(a);
write('vvedite b '); readln(b);
write('vvedite n '); readln(n);
la:=1.618033989;
x1:=b-(b-a)/la;
x2:=a+(b-a)/la;
y1:=f(x1);
y2:=f(x2);
for i:=1 to n do
begin
if (y1<y2)or(y1=y2) then
begin
b:=x2; x2:=x1; y2:=y1; x1:=a+b-x2; y1:=f(x1);
end;
if y1>y2 then
begin
a:=x1; x1:=x2; y1:=y2; x2:=a+b-x1; y2:=f(x2);
end;
end;
e:=(b-a)/2;
if (y1<y2)or(y1=y2) then
begin xmin:=x1; ymin:=y1; end;
if y1>y2 then
begin xmin:=x2; ymin:=y2; end;
writeln('x=',xmin:20:15);
writeln('y=',ymin:20:15);
writeln('E=',e:20:15);
readkey; end.
5. Результаты сравнения рассмотренных методов поиска
№ |
Метод поиска |
Полученная точка минимума |
Точность ε |
|
x |
F(x) |
|||
1 |
пассивный оптимальный алгоритм |
-0.409090909 |
5.81024247850 |
0.02272727273 |
2 |
метод золотого сечения |
-0.422379058 |
5.81005484860 |
0.00071489192 |
Вывод:
В данной работе были изучены два метода одномерной безусловной оптимизации:
- пассивный оптимальный алгоритм;
- метод золотого сечения.
Применив их к конкретной целевой функции и сравнив результаты, можно сказать, что наиболее оптимальным из них является метод золотого сечения, точность которого выше точности пассивного оптимального алгоритма.