Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
02.05.2014
Размер:
61.44 Кб
Скачать

Федеральное агентство по образованию Российской Федерации

Уфимский государственный авиационный технический университет

Кафедра АПрИС

Лабораторная работа №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

Вывод:

В данной работе были изучены два метода одномерной безусловной оптимизации:

- пассивный оптимальный алгоритм;

- метод золотого сечения.

Применив их к конкретной целевой функции и сравнив результаты, можно сказать, что наиболее оптимальным из них является метод золотого сечения, точность которого выше точности пассивного оптимального алгоритма.

Соседние файлы в папке №1