- •В.В.Бурляев численные методы в примерах на excel
- •1. Решение нелинейного уравнения с одним неизвестным.
- •1.1 Отделение корней.
- •1.2 Уточнение корней: метод итераций.
- •1.3 Уточнение корней: метод Ньютона.
- •1.4. Уточнение корней: метод бисекции ( деления отрезка пополам ).
- •1.5 Уточнение коней: подпрограмма excel “Подбор параметра”.
- •2. Системы линейных алгебраических уравнений.
- •2.1. Матричный метод.
- •2.2. Метод приближенных вычислений.
- •2.3. Метод Гаусса – Зайделя.
- •3. Решение систем нелинейных уравнений.
- •3.1. Выбор начальных приближений.
- •3.2 Метод Ньютона.
- •3.3. Метод итераций.
- •4. Численные методы одномерной оптимизации.
- •4.1. Метод дихотомии.
- •4.2. Метод золотого сечения.
- •4.3. Встроенная подпрограмма excel “Поиск решения”.
- •5. Многомерные задачи оптимизации.
- •5.1. Безусловная оптимизация: метод покоординатного спуска.
- •5.2. Безусловная оптимизация: метод наискорейшего спуска.
- •5.3. Безусловная оптимизация: подпрограмма excel “Поиск решения”.
- •5.4. Условная оптимизация: метод штрафных функций.
- •5.5. Условная оптимизация: подпрограмма excel “Поиск решения”.
- •5.6. Условная оптимизация: линейное программирование.
- •6. Метод наименьших квадратов.
- •7. Вычисление определенных интегралов.
- •8. Численное решение обыкновенного дифференциального уравнения
- •8.1. Метод Эйлера.
- •8.2. Метод Рунге-Кутта четвертого порядка.
- •8.3. Метод прогноза и коррекции: метод Адамса.
- •9. Решение систем обыкновенных дифференциальных уравнений.
- •9.1. Задача Коши.
- •9.2. Краевая задача: метод стрельбы.
- •9.3. Краевая задача: метод прогонки.
- •10. Численное решение уравнений с частными производными
5.2. Безусловная оптимизация: метод наискорейшего спуска.
Это метод градиентного поиска, в котором используются как значения целевой функции, так и значения ее первых частных производных. Чтобы воспользоваться этим методом, необходимо иметь следующие исходные данные:
а) формулу целевой функции f(X1,X2, ... , Xn),
б) Е - точность нахождения значений независимых переменных, при которых функция достигает минимума,
в) начальные приближения X10,X20 ... , Xn0,
г) формулы первых частных производных целевой функции по каждой независимой переменной.
С помощью рассмотренного ранее метода покоординатного спуска осуществляется поиск в направлении, параллельном одной из осей координат, до точки минимума в этом направлении. Кажется разумным попытаться модифицировать этот метод таким образом, чтобы на каждом шаге поиск минимума производился вдоль “наилучшего” направления. Не ясно, какое направление является наилучшим, но известно, что направление градиента является направлением наискорейшего возрастания функции. Следовательно, противоположное направление - антиградиента - является направлением наискорейшего убывания функции.
Множество точек, для которых целевая функция имеет постоянное значение, называется линией уровня. Направление градиента перпендикулярно к любой точке линии уровня. Под градиентом понимается вектор-столбец из первых частных производных целевой функции, если она непрерывна и дифференцируема.
Идея метода наискорейшего спуска состоит в следующем. Выбираем начальную точку и вычисляем в ней градиент целевой функции. Определяем направление поиска, противоположное градиенту. Решая задачу одномерной оптимизации, ищем точку минимума целевой функции по этому направлению.
Например, для функции двух переменных формулы первой итерации будут иметь вид
u = f(X1нов,X2нов) min,
где X1нов = X10- h(du/dX1)X10 и X2нов = X20 -h(du/dX2) X20, а h - длина отрезка от точки нулевого приближения до точки минимума по выбранному направлению. Эта длина определяется методом одномерной оптимизации. На этом кончается первая итерация.
В найденной точке (X1нов,X2нов) снова вычисляем градиент, снова определяем направление поиска, снова методом одномерной оптимизации ищем точку минимума. Эти итерации продолжаются до тех пор, пока не выполнится условие прекращения вычислений, а именно: квадратный корень из суммы квадратов частных производных целевой функции должен быть меньше заданной точности Е.
Пример 5.2.
Решим задачу примера 5.1 методом наискорейшего спуска. Для этого прежде всего найдем частные производные целевой функции
u = (X2-X12)2 + (1-X1)2,
du/dX1 = - 4(X2-X12) X1-2(1-X1),
du/dX2 = 2(X2-X12).
Составляющие антиградиента должны быть взяты с обратным знаком
antigrad u = {- du/dX1, -du/d X2 }.
Будем решать задачу на том же рабочем листе, где мы исследовали метод покоординатного спуска. Выделим столбец А под переменную h, столбцы В и С - под X1,X2, столбцы D и Е - под составляющие антиградиента, столбцы F и G - под X1нов,X2нов , столбец Н - под целевую функцию u, столбец I - под переменную D. Приведем таблицу формул в соответствующих ячейках для первых двух итераций в строках 21 и 22. Заметим, что числовые значения в столбце А появляются в результате выполнения подпрограммы EXCEL Поиск решения для решения задачи одномерной оптимизации. Формулы блока В23:I28 получаются путем копирования в них формул блока В22:I22.
ячейка |
формула |
B21 |
0,5 |
C21 |
0,5 |
D21 |
=4*(C21-B21^2)*B21+2*(1-B21) |
E21 |
=-2*(C21-B21^2) |
F21 |
=B21+A21*D21 |
G21 |
=C21+A21*E21 |
H21 |
=(G21-F21^2)^2+(1-F21)^2 |
I21 |
=КОРЕНЬ(D21^2+E21^2) |
B22 |
=F21 |
C22 |
=G21 |
D22 |
=4*(C22-B22^2)*B22+2*(1-B22) |
E22 |
=-2*(C22-B22^2) |
F22 |
=B22+A22*D22 |
G22 |
=C22+A22*E22 |
H22 |
=(G22-F22^2)^2+(1-F22)^2 |
После подготовки формул в блоке А21:I28, проведем первую итерацию. Для этого сделаем текущей ячейку Н21. Дадим команду меню Сервис- Поиск решения. В появившемся диалоге занесем в поле Установить целевую ячейку адрес Н21, а в поле Изменяя ячейки - адрес А21. Щелкнув по кнопке Выполнить, получим новый диалог, в котором щелкнем по кнопке ОК. В результате в ячейке А21 получим значение h, а ячейках F21 и В22 - новое значение Х1, в ячейках G21 и С22 - новое значение Х2.
Выделяя блок В20:С28, можно построить диаграмму, аналогично примеру 5.1. На ней изображены перпендикулярные ломаные линии, причем в отличие от примера 5.1 их направление не совпадает с направлениями координатных осей.