отсутствии ограничений в виде равенств или неравенств вместо них записывается пустой список {}.
Эта функция в предшествующих версиях Maple находилась в стандартной библиотеке и вызывалась командой readlib(extrema). Но начиная с Maple 7 ее можно использовать без предварительного объявления. В этом убеждают приведенные ниже примеры (файл extrema):
> restart:
> z:=(х,y)-> а*х^2 + b*x*y + с*y^2 + d*(х-y);
> extrema(z(х,y),{},{х,y},'s');

> s;

> extrema(а*х^2+b*х+с,{},x,'s');s;

> extrema(х*ехр(-х),{}, х, 's'); s;
> extrema(sin(x)^2,{},x,'s');s;
> extrema(х+у/z,х^2+у^2+z^2=1,{x,y,z},'s');s;
> evalf(%);
Как видно из приведенных примеров, функция extrema возвращает как значения экстремумов, так и значения аргументов, при которых экстремумы наблюдаются. Обратите внимание, что в первом примере результат вычисления экстремума функции z(x,y) оказался тем же, что и в предшествующем разделе. Это говорит в пользу применения функции extrema.
Для проверки оптимизационных алгоритмов существует ряд тестовых функций. Одна из таких функций — функция двух переменных Розенброка. В представленном ниже примере она задана как rf (x,y):
> rf:= (x,у)->100*(у-х^2)^2+(1-х)^2;
> extrema(rf(х,у),{х,у},'s');s;
> evalf(%);
Как нетрудно заметить, минимум этой функции при значениях
Функция extrema дает неплохие результаты при поиске экстремумов простых аналитических функций, не имеющих особенностей. Однако при анализе сложных функций, содержащих функции со сравнением аргумента (например, abs(x), signum(x) и др.) функция extrema часто отказывается работать и просто повторяет запись обращения к ней.
5.1.6. Поиск минимумов и максимумов аналитических функций
Часто нужно найти минимум или максимум заданной функции. Для поиска минимумов и максимумов выражений (функций) expr служат функции стандартной библиотеки:
minimize(expr, opt1, opt2, ..., optn)
maximize(expr, opt1, opt2, ..., optn)
Эти функции могут разыскивать максимумы и минимумы для функций как одной, так и нескольких переменных. С помощью опций opt1, opt2, …, optn можно указывать дополнительные данные для поиска. Например, параметр 'infinity' означает, что поиск минимума или максимума выполняется по всей числовой оси, а параметр location (или location=true) дает расширенный вывод результатов поиска — выдается не только значение минимума (или максимума), но и значения переменных в этой точке.
Примеры применения функции minimize приведены ниже (файл minmax):
> minimize(х^2-3*х+y^2+3*y+3);

> minimize(х^2-3*х+y^2+3*y+3, location);

> minimize(х^2-3*х+y^2+3*y+3, х=2..4, y=-4..-2, location);
> minimize(х^2+y^2,х=-10..10,y=-10..10);
> minimize(х^2 + y^2,х=-10..10,y=-10..10, location);
> minimize(abs(х*ехр(-х^2)-1/2), х=-4..4);
> minimize(abs(х*ехр(-х^2)-1/2), х=-4..4, location=true);

Приведем подобные примеры и для функции поиска максимума — maximize:
> maximize(х*ехр(-х));
> maximize(х*ехр(-х),location);
> maximize(sin(х)/х,х=-2..2,location);
> maximize(exp(-х)*sin(y),х=-10..10,y=-10..10, location);

Обратите внимание на то, что в предпоследнем примере Maple 9.5 выдал верный результат, тогда как Maple 8 в этом примере явно «оскандалился» и вместо максимума функции sin(x)/x, равного 1 при x=0, выдал результат в виде бесконечности:
Эта ситуация кажется более чем странной, если учесть, что в этом примере еще Maple 6 давал правильный результат. Это еще один пример, показывающий, что в отдельных случаях Maple может давать неверные результаты.