Программа нахождения минимума функции двух переменных
Автор работы: Пользователь скрыл имя, 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.
Вычисления прекращаются, если размер шага по всем аргументам становится меньше 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
aixi+12 + bixi+1 + ci = yi+1
Отсюда находятся коэффициенты ai, bi, ci:
где h=(xi+1-xi+1)/2.
Таким образом, абсцисса точки минимума
xm=-b/(2c) (13)
Интерполяция для любой точки проводится по трем ближайшим к ней узлам.
.
3. Алгоритмизация задачи
В соответствии
с постановленной в разделе 2 задачей
целесообразно реализовать
Алгоритм работы головной программы следующий:
- Скрыть курсор с использованием подпрограммы - процедуры скрытия курсора и вывести в специальном окне заставку программы, содержащую сведения о назначении программы, исполнителе и руководителе курсовой работы, а также подсказку для пользователя о последующих действиях, с использованием подпрограммы - процедуры заставки.
- Запустить подпрограмму-процедуру вертикального меню при нажатии любой клавиши .
- Запустить подпрограмму-процедуру справки и вывести в специальном окне справочные сведения о работе с программой при выборе пункта меню «Справка» с использованием строки-подсказки о возврате в меню.
- Запустить подпрограмму-процедуру ввода начальных условий: h-начального шага, (x1, x2 , x3 )-начальных значений и точности результата-e.
- Запустить подпрограмму-процедуру поиска минимума функции и вывода результатов вычислений, а также строки-подсказки о возврате в меню.
- Завершить работу программы при выборе пункта меню «Выход».
Алгоритм нахождения минимума функции методом координатного спуска в подпрограмме-процедуре включает следующие шаги:
- Создать окно для ввода исходных данных и вывода результатов вычисления.
- В подпрограмме-процедуре организовать ввод значений: начального шага поиска(δ=h), точности результата(е), в цикле ввести начальные значения xi (i=1…2);
- Вычислить значения функции в подпрограмме-функции в начальных заданных точках F(X1+h,...,Xi,...,Xn);
- Проверяем условие : если F(X1,...,Xi,...,Xn)- F(X1+h,...,Xi,...,Xn)<0, то переходим к п.4 и увеличиваем следующее начальное значение на шаг h: xi=xi+h;
- Если не выполняется п.5, то меняем знак на противоположный и уменьшаем шаг на коэффициент R: h:=-h/R;
- Проверяем условие: если |h|>e/5 , то идём к п.5;
- Вывести результаты вычислений в том же окне;
- Вывести в окне запрос о переходе к меню;
Алгоритм нахождения минимума функции методом квадратичной интерполяции-экстраполяции в подпрограмме-процедуре включает следующие шаги:
1.Создать окно для ввода исходных данных и вывода результатов вычисления.
2. В подпрограмме-процедуре организовать ввод значений: начального шага поиска(δ=h), точности результата(е), в цикле ввести начальные значения xi (i=1…2);
3. Организовываем цикл
for i:=1 to n do
- Вычисляем два смежных значения аргумента F(x): x0=xi-h и x2=xi+h.
- Вычисляем три значения F(x): F(x0)=F0 , F(xi)=Fi и F(x2)=F2.
- Вычисляем коэффициенты:
C=1/2h2*(F0-2Fi+F2),
D=((-F0(2xi+h)+4Fixi-F2(2xi-h)
и по ним вычисляем аналитически положение экстремума:
xmi=-D/2C;
- Проверяем условие (xmi-xi)<E. Если оно выполняется , задаём xi=xmi и идём к п.3. Если выполняется то считаем xmi найденным с заданной точность E, вычисляем F(xm) и останавливаем счет.
- Вывести результаты вычислений в том же окне;
- Вывести в окне запрос о переходе к меню;