Программа поиска минимума функции N переменных

Автор работы: Пользователь скрыл имя, 17 Июня 2013 в 13:37, курсовая работа

Описание работы

Понятия минимум и максимум объединяются одним – экстремум (от латинского слова extremum – крайний). Задачи на отыскание максимума или минимума критерия оптимальности называют экстремальными или оптимизационными задачами. Оба эти названия эквивалентны, однако первое из них акцентирует внимание на математическую суть задачи, второе – на ее прикладную направленность.

Содержание работы

Введение 5
1. Постановка задачи 7
2. Математическая формулировка задачи 9
2.1 Принцип поиска минимумам функции нескольких переменных 9
2.2 Метод квадратичной интерполяции-экстраполяции 10
3. Алгоритмизация программы 11
4. Идентификаторы программы 12
5. Блок-схема алгоритма 13
6. Текст программы 19
7. Результаты выполнения программы 22
8. Анализ результата 23
9. Инструкция по работе с программой 24
Заключение 26
Список используемых источников 27

Файлы: 1 файл

ПЗ.doc

— 274.50 Кб (Скачать файл)

  Writeln;

  Writeln;

  Writeln('                                Минск 2012          ');

  Gotoxy(1,25);

  Writeln('                  Для продолжения нажмите любую клавишу...             ');

  Readkey;

end;

 

procedure pr_break;

begin

   err:=true;

   Writeln('Нет сходимости  в окрестности точки первого приближения.');

   Writeln('Измените  ее значение и повторите вычисления.');

end;

 

begin

  TextBackGround(7);

  TextColor(0);

  ClrScr;

  Title;

  repeat

  ClrScr;

  Writeln('Введите исходные  данные:');

  Write(' Точность вычисления  е=');

  Read(e);

  Writeln(' Координаты точки минимума в первом приближении (x0=-1; y0=2):');

  Write(' x0='); Read(x1);

  Write(' y0='); Read(y1);

  dx:=0.1*e;

  dy:=0.1*e;

  f_:=f(x1,y1);

  err:=false;

  n:=0;

  ClrScr;

  repeat

    n:=n+1;

    {интерполяция по x}

    x2:=x1+dx;

    f1:=f(x1,y1);

    f2:=f(x2,y1);

    if f1>f2 then x3:=x1+2*dx  else x3:=x1-dx;

    f3:=f(x3,y1);

    a1:=(f2-f1)/(x2-x1);

    a2:=1/(x3-x1)*((f3-f1)/(x3-x1)-(f2-f1)/(x2-x1));

    if a2=0 then

    begin

       pr_break;

       break;

    end;

    x1:=(x1+x2)/2-a1/2/a2; {предполагаемая  точка минимума}

    {интерполяция по y}

    y2:=y1+dy;

    f1:=f(x1,y1);

    f2:=f(x1,y2);

    if f1>f2 then y3:=y1+2*dy  else y3:=y1-dy;

    f3:=f(x1,y3);

    a1:=(f2-f1)/(y2-y1);

    a2:=1/(y3-y1)*((f3-f1)/(y3-y1)-(f2-f1)/(y2-y1));

    if a2=0 then

    begin

       pr_break;

       break;

    end;

    y1:=(y1+y2)/2-a1/2/a2; {предполагаемая  точка минимума}

    Writeln('x=', x1:0:5, '; y=', y1:0:5, '; f_min=',f(x1,y1):0:5);

    d:=abs(f_-f(x1,y1));

    f_:=f(x1,y1);

  until ((d<e) and (fdx(x1,y1)<e) and (fdy(x1,y1)<e) );

  if err=false then

  begin

    Writeln('Минимум  функции в окрестности исходной  точки:');

    Writeln('x=', x1:0:5, '; y=', y1:0:5, '; f_min=',f(x1,y1):0:5);

    Writeln('df/dx=',fdx(x1,y1):0:5,'; df/dy=',fdy(x1,y1):0:5, '; n=',n);

  end;

  WriteLn('Для продолжения нажмите любую клавишу, для выхода - <ESC>...');

  v:=readkey;

  until v=chr(27)

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Результаты выполнения программы


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Анализ результата

Правильность решения можно  оценить средствами MathCAD, с использованием функции Minimize():



 

 

Given



 

 




 

 

 




 

 

 

Вывод – разработанная программа выдает результаты, соответствующие действительным с учетом заданной погрешности.

 

  1. Инструкция по работе с программой

После запуска на выполнение файла minf2pr.exe на экран выводится титульный заголовок согласно рисунку 4.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После нажатия любой клавиши  программа запрашивает исходные данные – точность решения задачи, координаты точки начального приближения (рисунок 5). Пользователь должен их ввести с клавиатуры. Далее производит поиск локального минимума функции с выводом на экран промежуточных данных согласно рисунку 3. В завершение программа выводит на экран найденные координаты экстремума, значение функции в этой  точке и частные производные. 

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

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

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

Целью данной курсовой работы является изучение методов и приемов решения  задач на персональном компьютере с  применением алгоритмического языка  Паскаль и составлением программы  расчета.

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

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

 

 

Список используемых источников

  1. Информатика. Методические указания по выполнению курсовой работы для студентов специальностей горного профиля заочной формы обучения /Петренко С. М., Недашковская И. В. – Мн.: БНТУ, 2005.
  2. Шарый С. П. Курс вычислительных методов -  Новосибирск: Институт вычислительных технологий СО РАН, 2012. - 393 с.
  3. Асламова В. С., Васильев И. В., Засухина О. А. Оптимизация технологических процессов. Часть 1. Метода Лагранжа и численные методы безусловной оптимизации одной переменной. Учебное пособие для студентов факультета технической кибернетики. Архангельск: АГТА, 2005 - 103 с.
  4. Абрамов В. Г. и др. Введение в Паскаль: учебное пособие. - М.: Наука. Гл. ред. физ-мат.  лит., 1988
  5. Культин Н. Б. Turbo-Pascal в задачах и примерах. – СПб.: БХВ-Петербург, 2000   


 

 


Информация о работе Программа поиска минимума функции N переменных