- •"Численные методы многомерной оптимизации"
- •1 Постановка задачи
- •2. Теоретические сведенья
- •2. 1 Метод конфигураций
- •2. 2 Метод Ньютона
- •3 Алгоритм работы программы
- •4. Аналитическое решение уравнений
- •5. 1 Реализация метода Хука – Дживса
- •5. 2 Реализация метода Ньютона
- •5 Выводы
- •6 Список использованной литературы
5. 1 Реализация метода Хука – Дживса
Рассмотрим работу программы при различных входных данных.
В качестве первой рассматриваемой функции выберем квадратичный полином , имеющий решение в точке .
Зададим начальные входные данные: начальную точку, шаги по координатным направлениям: - малое положительное число. Получим следующий результат (рис. 1).
Рисунок 1 – Работа программы, метод Хука – Дживса, эксперимент 1
Рисунок 2 – Значения функции, точек и координатных шагов на каждой итерации, эксперимент 1
Мы видим, что за девять итераций программа нашла нужное правильное решение. Приблизим начальную точку к искомому минимуму.
Рисунок 3– Работа программы, метод Хука – Дживса, эксперимент 2
Рисунок 4– Значения функции, точек и координатных шагов на каждой итерации, эксперимент 2
Мы можем наблюдать, что про приближении начальной точки к искомому решению, количество необходимых итераций уменьшается, решение находится быстрее.
Возьмем начальную точку из первого эксперимента - [20,15], и изменим шаги по координатным направлениям.
Рисунок 5– Работа программы, метод Хука – Дживса, эксперимент 3
Рисунок 6– Значения функции, точек и координатных шагов на каждой итерации, эксперимент 3
Мы можем наблюдать, что количество итераций, по сравнению с первым экспериментом увеличилось, из чего можно сделать вывод: при правильном выборе шагов по координатным напрвлениям, можно значительно уменьшить количество итераций, тем самым увеличив скорость получения конечного решения. Например, зададим значения шагов 1, 1:
Рисунок 7– Работа программы, метод Хука – Дживса, эксперимент 4
Рисунок 8– Значения функции, точек и координатных шагов на каждой итерации, эксперимент 4
Можем наблюдать, что программа нашла необходимое решение за 8 итераций.
Увеличим по сравнению с предыдущим экспериментом число .
Рисунок 9– Работа программы, метод Хука – Дживса, эксперимент 5
Рисунок 8– Значения функции, точек и координатных шагов на каждой итерации, эксперимент 5
При увеличении числа точность полученного решения увеличивается. Но в некоторых случаях, как например, в эксперименте 5, в этом нет необходимости, увеличения числа приведет лишь к неоправданному увеличению количества итераций.
Рассмотрим функцию . Зададим начальные значения, как в эксперименте 1 и получим решение:
Рисунок 9– Работа программы, метод Хука – Дживса, эксперимент 6
Рисунок 10– Значения функции, точек и координатных шагов на каждой итерации, эксперимент 6
Мы можем заметить, что количество итераций хоть и увеличилось по сравнению с первым экспериментом, но не на много, всего на одну итерацию, из этого мы можем сделать вывод, что данный метод хорошо применим к различным видам функции.
5. 2 Реализация метода Ньютона
Рассмотрим работу программы при различных входных данных.
В качестве первой рассматриваемой функции выберем квадратичный полином, имеющий решение в точке .
Зададим начальные входные данные: начальную точку, шаги по координатным направлениям: - малое положительное число. Получим следующий результат:
Рисунок 11– Работа программы, метод Ньютона, эксперимент 1
Рисунок 12– Значения функции и точек на каждой итерации, эксперимент 1
Увеличим расстояние между искомым минимумом и начальной точкой.
Рисунок 13– Работа программы, метод Ньютона, эксперимент 2
Рисунок 14– Значения функции и точек на каждой итерации, эксперимент 2
Мы можем наблюдать, что для квадратичного полинома, данный метод будет находить решение всего за одну итерацию, даже при отдалении начальной точки от искомого минимума.
Найдем решение для функции .
Рисунок 15– Работа программы, метод Ньютона, эксперимент 3
Рисунок 16– Значения функции и точек на каждой итерации, эксперимент 3
Мы можем наблюдать, что для полинома третьей степени количество итераций уже не равно одному, также при заданной точности, программа не смогла найти нужное решение.
Уменьшим число . Получим следующий результат:
Рисунок 17– Работа программы, метод Ньютона, эксперимент 4
Рисунок 18– Значения функции и точек на каждой итерации, эксперимент 4
Количество итераций заметно увеличилось, и увеличилась точность полученного решения, но также как и в предыдущем эксперименте, программа не смогла найти нужное решение. Уменьшим еще в несколько раз.
Рисунок 19– Работа программы, метод Ньютона, эксперимент 5
Рисунок 20– Значения функции и точек на каждой итерации, эксперимент 5
Можно сделать вывод, что даже при значительном увеличении точность получаемого решения данный метод для полиномов выше второй степени работает с неточностями.