Программа нахождения минимума функции двух переменных

Автор работы: Пользователь скрыл имя, 31 Мая 2012 в 21:22, курсовая работа

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

В курсовой работе в соответствии с заданием на проектирование решается задача поиска минимума функции .
В данной пояснительной записке приводится описание последовательности шагов по составлению программы на алгоритмическом языке Turbo Pascal 7.0 и результаты применения этой программы.
Рассматриваются вопросы математической формулировки и алгоритмизации задачи, разработки блок-схемы алгоритма ее решения, составления исходной Pascal-программы и реализация вычислений по составленной программе.

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

Введение
1. Постановка задачи…………………………………………………….....5
2. Математическая формулировка задачи………………………...………6
3. Алгоритмизация задачи ………………………………………..…...…...8
4. Идентификаторы программы…………………………………………..10
5. Блок – схема алгоритма………………………………………………...11
6. Текст исходной программы…………………………………………….20
7. Результаты выполнения программы…………………………………...25
8. Анализ результатов……………………………………………………..28
9. Инструкция по работе с программой………………………………….29
Заключение
Список использованных источников

Файлы: 1 файл

Kursovaya.docx

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

     h1 k=h1 k r.                                                 (8)

Вычисления прекращаются, если размер шага по всем аргументам становится меньше d-заданное или количество вычислений функции F становится больше m2.

Метод квадратичной интерполяции-экстраполяции.

При использовании  метода квадратичной интерполяции-экстраполяции в качестве интерполяционной функции на каждом отрезке [xi-1, xi+1] принимается квадратный трехчлен. Уравнение квадратного трехчлена:

y=aix2 + bix+ci, xi-1£x£xi+1 (9)

содержит коэффициенты ai, bi, ci для определения которых необходимы три уравнения. Ими служат условия для прохождения параболы (1) через три точки (xi-1, yi-1), (x, yi), (xi+1, yi+1). Эти условия можно записать в виде:

aixi-12 + bixi-1 + ci = yi-1 

                                     aixi2 + bixi + ci = yi                        (10)

aixi+12 + bixi+1 + ci = yi+1 

Отсюда находятся коэффициенты ai, bi, ci:

,           (11)

,   (12)

где h=(xi+1-xi+1)/2.

Таким образом, абсцисса точки минимума

xm=-b/(2c)      (13)

 Интерполяция для любой точки  проводится по трем ближайшим  к ней узлам. 

 

.

 

 

 

 

 

 

 

 

 

 

 

3. Алгоритмизация задачи

 

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

Алгоритм  работы головной программы следующий:

  1. Скрыть курсор с использованием подпрограммы - процедуры скрытия курсора и вывести в специальном окне заставку программы, содержащую сведения о назначении программы, исполнителе и руководителе курсовой работы, а также подсказку для пользователя о последующих действиях, с использованием подпрограммы - процедуры заставки.
  2. Запустить подпрограмму-процедуру вертикального меню при нажатии  любой клавиши .
  3. Запустить подпрограмму-процедуру справки и вывести в специальном окне справочные сведения о работе с программой при выборе пункта меню «Справка» с использованием  строки-подсказки о возврате в меню.
  4. Запустить подпрограмму-процедуру ввода  начальных условий: h-начального шага,  (x1, x2 , x3 )-начальных значений и точности результата-e. 
  5. Запустить подпрограмму-процедуру поиска минимума функции и вывода результатов вычислений, а также строки-подсказки о возврате в меню.
  6. Завершить работу программы при выборе пункта меню «Выход».

 

Алгоритм нахождения минимума функции методом координатного спуска в подпрограмме-процедуре включает следующие шаги:

  1. Создать окно для ввода исходных данных и вывода результатов вычисления.
  2. В подпрограмме-процедуре организовать ввод значений: начального шага поиска(δ=h), точности результата(е), в цикле ввести начальные значения xi (i=12);
  3. Вычислить значения функции в подпрограмме-функции в начальных заданных точках F(X1+h,...,Xi,...,Xn);
  4. Проверяем условие : если F(X1,...,Xi,...,Xn)- F(X1+h,...,Xi,...,Xn)<0, то переходим к п.4 и увеличиваем следующее начальное значение на шаг h: xi=xi+h;
  5. Если не выполняется п.5, то меняем знак на противоположный и уменьшаем шаг на коэффициент R: h:=-h/R;
  6. Проверяем условие: если |h|>e/5 , то идём к п.5;
  7. Вывести результаты вычислений в том же окне;
  8. Вывести в окне запрос о переходе к меню;

 

Алгоритм нахождения минимума функции методом квадратичной интерполяции-экстраполяции в подпрограмме-процедуре включает следующие шаги:

1.Создать окно для ввода исходных данных и вывода результатов вычисления.

2. В подпрограмме-процедуре организовать ввод значений: начального шага поиска(δ=h), точности результата(е), в цикле ввести начальные значения xi (i=1…2);

3.   Организовываем цикл

     for i:=1 to n do

  1. Вычисляем  два смежных  значения  аргумента F(x): x0=xi-h и x2=xi+h.
  2. Вычисляем три значения F(x): F(x0)=F0 , F(xi)=Fi и F(x2)=F2.
  3. Вычисляем коэффициенты:

C=1/2h2*(F0-2Fi+F2),

D=((-F0(2xi+h)+4Fixi-F2(2xi-h)))/2h2,

и по ним  вычисляем аналитически положение  экстремума:

xmi=-D/2C; 

  1. Проверяем условие (xmi-xi)<E. Если оно выполняется , задаём xi=xmi и идём к п.3. Если выполняется то считаем xmi найденным с заданной точность E, вычисляем F(xm) и останавливаем счет.
  2. Вывести результаты вычислений в том же окне;
  3. Вывести в окне запрос о переходе к меню;

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