Нелинейная оптимизация

Математическая модель является нелинейной, если целевая функция или ограничения нелинейно зависят от переменных. В отличие от задачи линейного программирования здесь нельзя рассчитывать, что с помощью Решателя получено действительно оптимальное решение.

Пример.

Найти максимум функции f(x)=x², x принадлежит [-1,2].

Ответ очевиден: максимум равен 4 и достигается при х=2. Попытайтесь найти ответ с помощью Решателя. Задайте для х следующие начальные приближения: 0,-0.1 и 0.1. Вы получите три разных ответа: 0, 1, 4. Причина этого следующая. В точке 0 производная f’(x)=2x обращается в 0. Следовательно, мы находимся в точке экстремума (делает вывод Решатель), и можно выдавать ответ 0. Если Вы посмотрите отчет по пределам, то увидите вычисленные значения функции на концах отрезка. Эти значения превышают 0, но Решателя это "не волнует". При начальном значении - 0.1 Решатель продвигается в сторону увеличения значений функции и добирается до точки х = - 1. И только при начальном значении 0.1 Решатель находит правильный ответ.

Этот пример весьма поучителен. Он показывает, что в нелинейных задачах оптимизации на ответ, выдаваемый Решателем, нельзя полагаться. Ответ зависит от выбора начального приближения. К сожалению, достаточно общих методов отыскания глобального экстремума не разработано. Если функция зависит от одной или двух переменных, старайтесь проверить ответ на графиках. Дело еще осложняют нелинейные ограничения.