Изучение алгоритмов численного нахождения минимума функции нескольких переменных в Excel
Найдем минимум функции F(x,y)=sin(y)*cos(x) в области x[‑3,3], y[-3,0]. Чтобы представить себе тип исследуемой поверхности, постройте в программе MathCAD её график.
Метод покоординатного спуска.
Задание 1: Начинать можно с любой точки (x0,y0), принадлежащей указанной области.
1 шаг: фиксируем одну координату (присваиваем ей некоторое конкретное значение), например, координату x. Находим экстремум получившейся функции одной переменной y либо аналитически, либо любым из изученных численных методов. В результате получили некоторое промежуточное значение ymin1.
2 шаг: фиксируем другую координату y = ymin1. Находим экстремум получившейся функции одной переменной x. В результате получили некоторое промежуточное значение xmin1.
3 шаг: снова фиксируем первую координату x = xmin1. Находим экстремум получившейся функции одной переменной y любым из изученных методов. В результате получили некоторое промежуточное значение ymin2.
4 шаг: получаем значение xmin2.
И т.д.
Расчет заканчиваем в том случае, когда расстояние d от предыдущей точки (xmini-1, ymini-1) до точки, полученной в результате последней итерации (xmini, ymini), станет меньше выбранной вами точности. Результаты промежуточных вычислений оформите в виде таблицы.
Метод Хука-Дживса.
Задание 2: Исследующий поиск начинать можно с любой точки (x0,y0), принадлежащей указанной области. Далее нужно выбрать величину шага, которая может быть различной для разных координатных направлений. Для удобства выберите одинаковый шаг h=0,1.
1 шаг: считаем значение функции в базовой точке F0=F(x0,y0). Делаем шаг вправо и считаем значение функции в найденной точке F01=F(x0+h,y0). Если F01<F0, то мы сделали шаг в нужном направлении, в обратном случае делаем шаг влево и считаем значение функции в другой точке F02=F(x0-h,y0). Если F02<F0, значит, мы сделали шаг в нужном направлении, в обратном случае координата x на этом шаге не изменяется.
Теперь делаем шаг вверх и считаем значение функции в найденной точке F03=F(x0,y0+h). Если F03<F0, то мы сделали шаг в нужном направлении, в обратном случае делаем шаг влево и считаем значение функции в другой точке F04=F(x0,y0-h). Если F04<F0, значит, мы сделали шаг в нужном направлении, в обратном случае нужно уменьшить значение шага (например, вдвое), так как мы подошли слишком близко к точке минимума.
В результате вышеописанных действий мы получили новое значение базовой точки (x1,y1).
2 шаг: Считаем значение функции в базовой точке F1=F(x1,y1). Попытаемся выполнить поиск по образцу. Делаем такие же шаги в направлении обеих осей, которые привели к успеху на шаге 1. Получаем точку (x2,y2), считаем значение F2=F(x2,y2). Если F2<F1, поиск по образцу завершился успехом, и шаг 2 можно повторить. В противном случае возвращаемся к шагу 1 с базовой точкой (x1,y1).
Результаты промежуточных вычислений можно оформить в виде таблицы со следующими заголовками:
H | x | y | x+h | x-h | y+h | y-h | f(x,y) | f(x+h,y) | f(x-h,y) | f(x,y+h) | f(x,y-h) |
[…] | […] | […] | […] | […] | […] | […] | […] | […] | […] | […] | […] |
Расчет заканчиваем, когда значение шага будет меньше выбранной вами точности (не более 0,01).
Метод градиентного спуска.
Задание 3: Будем двигаться к минимуму в направлении наиболее быстрого убывания функции (в антиградиентном направлении). Выберите некоторое начальное приближение (x0,y0) и найдите в данной точке значения градиента hx=F/x при x = x0 и hy=F/y при y = y0. Теперь нам нужно сделать шаг в антиградиентном направлении: xi = xi-1 - α·hx, yi = yi-1 - α·hy. Расчет заканчиваем в том случае, когда расстояние d от предыдущей точки (xi-1, yi-1) до точки, полученной в результате последней итерации (xi, yi), станет меньше выбранной вами точности. Результаты промежуточных вычислений оформите в виде таблицы:
α | x | y | d/dx | d/dy | f(x,y) | d |
[…] | […] | […] | […] | […] | […] | […] |
- Лабораторная работа №1 Изучение алгоритмов численного решения нелинейных уравнений Изучение алгоритмов численного решения нелинейных уравнений в Excel.
- Решение алгебраических уравнений в MathCad
- Лабораторная работа №2 Изучение алгоритмов численного решения систем алгебраических уравнений
- Часть 1. Решение систем линейных уравнений
- Изучение алгоритмов решения систем линейных уравнений в excel
- Мопред - возвращает определитель матрицы (матрица хранится в массиве). Синтаксис функции: мопред(массив).
- Решение систем линейных уравнений в MathCad
- Часть 2. Решение систем нелинейных уравнений Изучение алгоритмов численного решения систем нелинейных уравнений в Excel
- 1. Метод простой итерации.
- 2. Метод Ньютона.
- Решение систем линейных уравнений в MathCad
- Лабораторная работа №3 Интерполяция и аппроксимация функций Интерполяция и аппроксимация функций в Excel.
- Интерполяция функций в MathCad.
- Лабораторная работа №4 Численное интегрирование Численное интегрирование в Excel.
- Численное интегрирование в MathCad.
- Лабораторная работа №5 Изучение алгоритмов численного нахождения минимума функций одной переменной Изучение алгоритмов численного нахождения минимума функции одной переменной в Excel
- Нахождение минимума функции одной переменной в MathCad
- Лабораторная работа №6 Изучение алгоритмов численного нахождения минимума функций нескольких переменных
- Изучение алгоритмов численного нахождения минимума функции нескольких переменных в Excel
- Нахождение минимума функции нескольких переменных в MathCad