logo
Самоучитель по Maple

1. Анализ функций Урок 9. Анализ функций и полиномов.

Анализ функций

Поиск экстремумов функций

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

С помощью функции fsolve легко находятся значения независимой переменной х функций вида f(x), при которых f(x)=0 (корни этого уравнения). При этом данная функция позволяет (в отличие от функции solve) изолировать корни функции f(x) указанием примерного интервала их существования. Ряд функций служит для вычисления экстремумов, максимумов и минимумов функций, а также для определения их непрерывности. Одна из таких функций, extrema, позволяет найти экстремумы выражения ехрr (как максимумы, так и минимумы) при ограничениях constcs и переменных vans, по которым ищется экстремум: extrema(expr. constrs) extrema(expr, constrs, vars) extrematexpr, constrs, vans, V)

Ограничения contrs и переменные vars могут задаваться одиночными объектами или списками ряда ограничений и переменных. Найденные координаты точки экстремума присваиваются переменной 's'. При отсутствии ограничений в виде равенств или неравенств вместо них записывается пустой список {}. Эта функция в предшествующих версиях Maple находилась в стандартной библиотеке и вызывалась командой readlib(extrema). Но в Maple 7 ее можно использовать без предварительного объявления. В этом убеждают приведенные ниже примеры:

Как видно из приведенных примеров, функция extrema возвращает как значения экстремумов, так и значения аргументов, при которых экстремумы наблюдаются.

Для проверки оптимизационных алгоритмов существует ряд тестовых функций. Одна из таких функций — функция двух переменных Розенброка. В представленном ниже примере она задана как rf(x.y):

Как нетрудно заметить, минимум этой функции при значениях х =у = 1, равный О, функцией extrema не обнаружен. Однако это не недостаток данной функции, а просто неудачное ее применение. Функция Розенброка имеет минимум значения, и для его обнаружения надо использовать функцию minimize, описанную ниже.

ПРИМЕЧАНИЕ

Функция extrema дает неплохие результаты при поиске экстремумов простых аналитических функций, не имеющих особенностей. Однако при анализе сложных функций, содержащих функции со сравнением аргумента (например, abs(x), signum(x) и др.), функция extrema часто отказывается работать и просто повторяет запись обращения к ней.

1.gif

2.gif

3.gif

2. Поиск минимумов и максимумов аналитических функций

Поиск минимумов и максимумов аналитических функций

Часто нужно найти минимум или максимум заданной функции. Для поиска минимумов и максимумов выражений (функций) ехрr служат функции стандартной библиотеки:

minimize(expr, optl, opt2, .... optn)

maximize(expr, optl. opt2. .... optn)

Эти функции могут разыскивать максимумы и минимумы для функций как одной, так и нескольких переменных. С помощью опций optl, opt2,..., optn можно указывать дополнительные данные для поиска. Например, параметр `infinity` означает, что поиск минимума или максимума выполняется по всей числовой оси, а параметр location (или locatiorrtrue) дает расширенный вывод результатов поиска — выдается не только значение минимума (или максимума), но и значения переменных в этой точке.

Примеры применения функции minimize приведены ниже:

Приведем подобные примеры и для функции поиска максимума — maximize:

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

Применим функцию minimize для поиска минимума функции Розенброка. Рисунок 9.1 показывает, что minimize прекрасно справляется с данной задачей. На рис. 9.1 представлено также построение функции Розенброка, хорошо иллюстрирующее ее особенности.

Рис. 9.1. Поиск минимума функции Розенброка и построение ее графика

Трудность поиска минимума функции Розенброка связана с ее характерными особенностями. Из рис. 9.1 видно, что эта функция представляет собой поверхность типа «глубокого оврага с почти плоским дном», в котором и расположена точка минимума. Такая особенность этой функции существенно затрудняет поиск минимума. То, что система Maple 7 справляется с данной тестовой функцией, вовсе не означает, что трудности в поиске минимума или максимума других функций остаются позади.

4.gif

5.gif

6.gif

3. Анализ функций на непрерывность

Анализ функций на непрерывность

Для исследования функций на непрерывность Maple 7 имеет функцию iscont, записываемую в ряде форм:

iscont(expr. х - а .. Ь)

iscont(expr. х = а .. b, 'closed')

iscont(expr. х - а .. b, 'open')

Она позволяет исследовать выражение ехрr, заданное в виде зависимости от переменной х, на непрерывность. Если выражение непрерывно, возвращается логическое значение true, иначе — false. Возможен также результат типа FAIL. Параметр 'closed1 показывает, что конечные точки должны также проверяться, а указанный по умолчанию параметр 'open' — что они не должны проверяться.

Работу функции iscont иллюстрируют следующие примеры:

> iscont(l/x^2,x=-l..l);

false

> iscont(l/x^2.x=-l..l,'closed');

false

> iscont(l/x,x-0..1);

true > iscont(l/x,x=0..1.'closed'); ,

false ,--v > iscont(l/(x+a).x=-l..l);

FAIL

Рекомендуется внимательно присмотреться к результатам этих примеров и опробовать свои собственные примеры.