Как найти максимум функции в mathcad

Foodband

Как найти максимум функции в mathcad

БлогNot. Mathcad: ищем экстремум функции двух переменных

Mathcad: ищем экстремум функции двух переменных

Поиск экстремума функции двух переменных принципиально не отличается от случая одной переменной и выполняется стандартными функциями Minimize и Maximize . Проблема состоит в том, как правильно выбрать начальную точку (x,y) , от которой будет выполняться поиск решения. Если у анализируемой функции несколько стационарных точек, может быть найден только "мусор", точней, найдётся ближайшая к начальной стационарная точка, не являющаяся экстремумом, или не найдётся ничего:

экстремум функции 2 переменных не находится - неверные начальные точки
экстремум функции 2 переменных не находится — неверные начальные точки

Поэтому более правильным путём представляется реализация анализа функции на экстремум, ведь Mathcad математики не отменял 🙂

  • D=Zxx*Zyy-Zxy 2 >0, Zxx>0 — точка локального минимума,
  • D>0, Zxx<0 — точка локального максимума.

После этого выполним поиск экстремума от точки, близкой к найденной, с помощью стандартной функции MathCAD, которая годится, скорее, для уточнения решений, чем для анализа.

правильный поиск экстремума функции 2 переменных в Mathcad
правильный поиск экстремума функции 2 переменных в Mathcad

Иллюстрированный самоучитель по MathCAD 12

Для численного решения задач поиска локального максимума и минимума в Mathcad имеются встроенные функции Minerr, Minimize и Maximize. Принцип их действия очень близок к принципу расчетов, заложенных во встроенной функции Find, предназначенной для решения алгебраических уравнений (см. главу 5). В частности, все встроенные функции минимизации используют те же градиентные численные методы, что и функция Find, поэтому допускается "вручную" выбирать численный алгоритм минимизации из уже рассмотренных нами численных методов (см. разд. 5.3.2). Кроме того, как и в случае решения уравнений, применение градиентного алгоритма, во-первых, требует задания некоторого начального приближения к точке минимума и, во-вторых, позволяет отыскать лишь один (т. е. локальный) из минимумов функции.

Таким образом, как и в случае решения уравнений (см. разд. 5.2.4), чтобы найти глобальный максимум (или минимум), требуется сначала просканировать с некоторым шагом рассматриваемую область и вычислить все локальные значения и потом выбрать из них наибольший (наименьший). Другим вариантом будет простое сканирование с вычислением значений функции, позволяющее выделить из нее подобласть наибольших (наименьших) значений функции и осуществить поиск глобального экстремума, уже находясь в его окрестности. Последний путь таит в себе некоторую опасность уйти в зону другого локального экстремума, но часто может быть предпочтительнее из соображений экономии времени.

Локальный экстремум

Для поиска локальных экстремумов имеются две встроенные функции, которые могут применяться как в пределах вычислительного блока, так и автономно:

  • Minimize (f,x1,…,хM) – вектор значений аргументов, при которых функция f достигает минимума;
  • Maximize (f,x1,…,хM) – вектор значений аргументов, при которых функция f достигает максимума:
  • f (x1,…, хM,…) – функция;
  • x1,…,хM – аргументы, по которым производится минимизация (максимизация).

Примечание
Вычислительный блок (ключевое слово Given со следующими после него логическими выражениями) обычно используется в задачах на условный экстремум (см. следующий разд.)
.

Foodband

В качестве примера рассмотрим задачу численного поиска экстремумов полинома четвертой степени f (х), график которого был приведен на рис. 6.1. Как известно, парабола четвертой степени имеет три точки экстремума, и все они видны на рис. 6.1.

Всем аргументам функции f предварительно следует присвоить некоторые значения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения. Примеры вычисления локальных экстремумов функции одной переменной показаны в листингах 6.1-6.2. Поскольку никаких дополнительных условий в них не вводится, поиск экстремумов выполняется для любых значений х от -oo до oo.

Листинг 6.1. Поиск минимума функции одной переменной (для трех начальных значений x):

Листинг 6.2. Поиск максимума функции одной переменной:

Как видно из листингов, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются различные локальные экстремумы. Очень полезно сопоставить результаты минимизации (листинг 6.1) с графиком функции f(x) (см. рис. 6.1). Как видно, функция Minimize очень уверенно находит глубокий минимум х=-0.75. А вот на второй (плохо выраженный) минимум можно набрести лишь случайно, выбирая определенные начальные значения х. В последнем из трех примеров демонстрируется, что если взять начальное приближение х даже в непосредственной близости от этого локального минимума, численный метод все равно "сваливается" в первый, более глубокий минимум f(х). Попробуйте повторить расчеты, выбирая различные начальные значения, чтобы в этом убедиться.

В листинге 6.2 показаны аналогичные свойства функции Maximize. Если начальное приближение выбрать удачно, то итерационный процесс алгоритма сойдется к максимуму функции, а вот если выбрать его вдали от него, на участке f (х), где неограниченно возрастает (при х › ±oo), численный метод вообще не справится с задачей, выдавая сообщение об ошибке. Это происходит, поскольку начальное приближение х=-10 выбрано далеко от области локального максимума, и поиск решения уходит в сторону увеличения f (х), т. е. расходится при х › oo.

Примечание
Помните о возможности выбора численного алгоритма минимизации, который осуществляется при помощи контекстного меню (рис. 6.2). Не забывайте также, что, начиная с версии Mathcad 11, имеется возможность управлять параметром Multistart (Сканирование), при помощи которого можно попытаться организовать поиск глобального экстремума (см. разд. 5.3.2). Однако не слишком полагайтесь на эту опцию и, если перед вами стоит задача поиска глобального экстремума, постарайтесь организовать сканирование вручную
.

Как найти максимум функции в mathcad

9. Нахождение экстремумов функций

MathCAD позволяет находить экстремумы функций, которые имеют конечное количество экстремумов. Для нахождения экстремума используются функции Minimize и Maximize .

На рис.14 показан пример использования функции нахождения минимума. Нахождение максимума происходит аналогично, за исключением того, что функцию Minimize необходимо заменить на Maximize . В данном примере показан случай, когда максимум функции не может быть найден.

Foodband

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *