1. Реализовать на языке
С++ методы правильного симплекса, Нелдера — Мида, циклическогопокоординатного спуска, метод Хука — Дживса и метод
случайного поиска.
2. Протестировать работу реализованных методов на примере
«овражной» функции
f(x)=(x1)^2+ a*(x2)^2
при а = 1, 100, 500, 1000.
Графически отобразить линии уровня функции. Сравнить скорость работы
методов при различных значениях параметра а по числу итераций и по
числу вызовов функций. Параметр точности выбрать
З. Выбрать для выполнения работы тестовую функцию
f(x)=129*(x1)^2 - 256*(x1)*(x2)+ 129*(x2)^2 -51*(x1) - 149*(x2) -27
4. Графически отобразить линии уровня выбранной функции. Сравнить
эффективность метода покоординатного циклического спуска и метода Хука — Дживса для задачи п. 2 при а=250 и тестовой функции п. З по числу итераций. Для метода Хука — Дживса величину шага исчерпывающего спуска выбирать по приближенной формуле. Объяснить полученные результаты.
5. Используя методы прямого поиска, минимизировать функцию Розенброка
f(x)=100*((x1)^2 -(x2))^2+ ((x1) - 1)^2
с точностью ε =10^(-3) и ε =10^(-5) контролируя точность алгоритмов
исчерпывающего спуска.
Начальное приближение хо =(-1,1)Т .
Установить, какие из примененных алгоритмов не позволяют при заданной точности поиска получить точку
минимума х*=(1,1)Т
вследствие преждевременного окончания процесса поиска.
6. На примере функции Розснброка провести сравнение прямых и
градиентных методов минимизации. Определить, сколько итераций потребуется каждому методу, для того чтобы разность между численным и точным решением была меньше ε .
7. Выбрать для выполнения работы тестовую функцию из приложения
1, номер которой соответствует вашему номеру в списке группы (по mod9).
Рассмотреть особенности применения прямых методов для минимизации многомодальных функций. Как зависит работа рассматриваемых алгоритмов от выбора начального приближения?
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |