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

Дистанционный курс обучения по дисциплине "МЕТОДЫ ОПТИМИЗАЦИИ" СумГУ Метод прямого поиска    Необходимо найти минимум функции 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.