
Приближенное решение уравнений
Когда невозможно найти решение с помощью функции Find( ), можно попытаться потребовать вместо точного выполнения уравнений условий минимизировать их невязку. Для этого следует в вычислительном блоке вместо функции Find( ) использовать функцию Minerr( ), имеющую тот же самый набор параметров и ту же методику применения:
- x1:=C1 ... хm: =Cm – начальные приближения для неизвестных;
- Given - ключевое слово;
- система алгебраических уравнений и неравенств, записанная логическими операторами;
- Minerr (x1,... ,хm) - приближенное решение системы относительно переменных х1;... ,хм, минимизирующее невязку системы уравнений.
В функции Minerr( ) реализованы те же самые алгоритмы, что и в функции Find( ), иным является только условие завершения работы численного метода. Поэтому пользователь может тем же самым образом, с помощью контекстного меню, выбирать численный алгоритм приближенного решения для функции Minerr( ).
Пример использования функции Minerr( ) показан на рис. 4.11.
Рис. 4.11. Приближенный метод решения уравнения, имеющего корень (x=0, y=0)
Уравнение k·x2+y2=0 при любом значении коэффициента k имеет единственный точный корень (х=0,у=0). Тем не менее, при попытке решить его функцией Find( ) для больших k происходит генерация ошибки "No solution was found" (Решение не найдено). Это связано с иным поведением функции f(x,y)=k·x2+y2 вблизи ее корня, поэтому и найти корень изложенными в предыдущем разделе градиентными методами сложнее, поскольку вблизи корня производные f(х,у) близки к нулю, и итерации могут уводить предполагаемое решение далеко от корня.
Поиск экстремума функции
Задачи поиска экстремума функции означают нахождение ее максимума (наибольшего значения) или минимума (наименьшего значения) в некоторой области определения ее аргументов. Ограничения значений аргументов, задающих эту область, как и прочие дополнительные условия, должны быть определены в виде системы неравенств и (или) уравнений. В таком случае говорят о задаче на условный экстремум.
Для решения задач поиска максимума и минимума в Mathcad имеются встроенные функции Minerr( ), Minimize( ) и Maximize( ). Все они используют те же градиентные численные методы, что и функция Find( ) для решения уравнений. Поэтому можно выбирать численный алгоритм минимизации из уже рассмотренных ранее численных методов.
Экстремум функции одной переменной
Поиск экстремума функции включает в себя задачи нахождения локального и глобального экстремума. Такие задачи называют еще задачами оптимизации. На рис. 4.12 показан график функции f(х)=х4+5х3-10х, которая имеет глобальный минимум на левой границе интервала и локальный минимум на правой границе интервала.
Mathcad с помощью встроенных функций решает задачу поиска только локального экстремума. Чтобы найти глобальный максимум (или минимум), требуется либо сначала вычислить все их локальные значения и потом выбрать из них наибольший (наименьший), либо предварительно просканировать с некоторым шагом рассматриваемую область, чтобы выделить из нее подобласть наибольших (наименьших) значений функции и осуществить поиск глобального экстремума, уже находясь в его окрестности. Последний путь таит в себе некоторую опасность уйти в зону другого локального экстремума, но часто может быть предпочтительнее из соображений экономии времени.
Рис. 4.12. Поиск экстремумов функции f(х)=х4+5х3-10х
Для поиска локальных экстремумов имеются две встроенные функции, которые могут применяться как в пределах вычислительного блока, так и автономно:
- Minimize (f, x1, ... ,хm) - вектор значений аргументов, при которых функция f( ) достигает минимума;
- Maximize (f, x1, ... ,хm) - вектор значений аргументов, при которых функция f( ) достигает максимума;
- f (x1, ... ,хm) - функция;
- x1, ... ,хm - аргументы, по которым производится минимизация (максимизация).
Всем аргументам функции f( ) предварительно следует присвоить некоторые значения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения.
Как видно из рис. 4.12, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются различные локальные экстремумы.
Условный экстремум
В задачах на условный экстремум функции минимизации и максимизации должны быть включены в вычислительный блок, т. е. им должно предшествовать ключевое слово Given. В промежутке между Given и функцией поиска экстремума с помощью булевых операторов записываются логические выражения (неравенства, уравнения), задающие ограничения на значения аргументов минимизируемой функции. На рис.4.13 показаны примеры поиска условного экстремума на различных интервалах, определенных неравенствами:
Рис. 4.13. Три примера поиска условного экстремума функции
Экстремум функции многих переменных
Вычисление экстремума функции многих переменных не несет принципиальных особенностей по сравнению с функциями одной переменной. Для функции f(x,y) в заданных ограничениях (0 < x < 15, 0 < y < 20) находится минимум и построены график поверхности и график линий уровня (см. рис. 4.14).
Рис.4.14. Экстремум функции двух переменных
Поиск минимума можно организовать и с помощью функции Minerr( ). Для этого на рис. 4.14 надо поменять имя функции Minimize() на Minerr(), а после ключевого слова Given добавить выражение, приравнивающее функции f(х,у) значение, заведомо меньшее минимального, например f(х,у) =0.