Лабораторные работы3 / №2 / по 2ой лабе / ВАУ
.htmДистанционный курс обучения по дисциплине "МЕТОДЫ ОПТИМИЗАЦИИ" СумГУ Метод прямого поиска Необходимо найти минимум функции 100(x[2]-(x[1])2)2+(1-x[1])2. Проведем вычисления методом покоординатного спуска с начальной точкой (0;2), с шагом 1 и с погрешностью 1e-5.
Программа будет иметь вид:
Примечание
program pr;
uses crt,ustp,metodB,idvvod;
{*------Подключение модулей------*
UstP - Установка параметров и типов, открытие файла для работы
MetodB - Методы нахождения оптимума функции N-переменных без ограничений
IDVvod - Процедуры ввода исходных данных для методов оптимизации
}
var p:mas;
i,Nk,m2:integer;
d,d1,r:real;
fil:text;
{$F+} {- обязательно включать директиву }
{--Описываем функцию, оптимум которой необходимо найти--}
function z(x:mas):real;
begin
z:=100*sqr(x[2]-x[1]*x[1])+sqr(1-x[1]);
end;
begin
repeat
Clrscr;
writeln('Нахождение оптимума по методу покоординатного спуска');
{--Подключаем процедуру получения имени файла для ввода результатов--}
GetInputName(fil);
{--Подключаем процедуру ввода исходных данных--}
Nk:=2;{--количество переменных функции--}
VvodIsxD_PS(Nk,p,d,d1,r,m2,fil);
{--Подключаем процедуру нахождения оптимума методом покоординатного спуска--}
PkoordSp(z,p,Nk,m2,d,d1,r,fil);
close(fil);
end.