Математический анализ в Maple 9


          

Вычисление производных явно заданных функций

Для вычисления производной в Maple предусмотрена процедура diff()5 параметрами которой являются: а) функция, от которой берут производную, и б) переменная, по которой эту производную следует брать. Результатом выполнения процедуры является выражение, задающее искомую производную. Кроме того, существует неактивная форма процедуры вычисления производной — Diff (). В отличие от активной формы (той, что начинается со строчной буквы), неактивная используется не для непосредственного вычисления производной, а для символьной записи самой операции. В дальнейшем выражение для производной может быть вычислено с помощью процедуры value(), если результат выполнения процедуры Diff () указать в качестве ее параметра.

Совет
Команда value() используется для вычисления значения не только упомянутой процедуры Diff (),но и других процедур в неактивной форме.

Кроме того, для вычисления производных в Maple может использоваться оператор D. Однако в отличие от процедуры diff(), которая вычисляет производную от символьного выражения, оператор D используется для вычисления производной от оператора. Например, производную от синуса можно вычислить следующим образом.

Математический анализ в Maple 9

С помощью оператора D это делается несколько иначе.

Математический анализ в Maple 9

Допустим и такой синтаксис вызова оператора D.

Математический анализ в Maple 9

В последнем случае в первых скобках после оператора D указывается оператор (функция), на который действует D, а в следующих скобках — аргумент для полученного в результате оператора (в данном случае оператора D(sin)=cos).

На заметку
С точки зрения Maple функция и оператор — практически одно и то же. Под функцией будем, ради удобства, понимать результат действия оператора на аргумент. Иногда, если это не приводит к недоразумениям, функцией будем также называть и соответствующий оператор.

Далее имеет смысл остановиться более детально на решении конкретных задач.

Задача 2.1

Найти производную функции Математический анализ в Maple 9

В первую очередь определим саму функцию, от которой следует брать производную. Сделать это можно следующим образом.

Математический анализ в Maple 9

Здесь у — функция (ее название), которой в качестве значения присваивается (:*) оператор. Оператор задается так: сначала указывается аргумент (или несколько аргументов), потом отображается стрелка (->), а после стрелки задается математическое выражение, определяющее действие оператора на аргумент. После того как функция задана, ее можно дифференцировать.

Математический анализ в Maple 9

Если воспользоваться оператором D, то получим несколько иной результат.

Математический анализ в Maple 9

Другими словами, результат такой операции — оператор. Приведенная выше запись значит, что аргументу х в результате действия на него оператора D(y) в соответствие ставится выражение, которое указано после стрелки.

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

Математический анализ в Maple 9

Но даже после упрощения выражения его вид может не соответствовать представлениям пользователя о простоте и элегантности. На этот случай в Maple предусмотрен ряд полезных утилит, позволяющих привести выражения к приемлемому для пользователя виду. Среди них имеется такая процедура, как combine ().

Математический анализ в Maple 9

В качестве первого параметра в ней использована уже упоминавшаяся переменная среды (%), а вторым параметром указана опция trig. Это инструкция для вычислительного ядра Maple использовать встроенные алгоритмы преобразования тригонометрических выражений: в частности, произведения тригонометрических функций заменяются, где это возможно, тригонометрическими функциями от суммы (разности) аргументов.

На заметку
Доступ к справочной информации о процедуре combine (), как и о прочих процедурах и командах, можно получить, разместив в рабочем листе курсор на вызове этой процедуры и нажав <F1>. Там можно найти полезную информацию об используемых при преобразовании выражений алгоритмах, а также об опциях, которые позволяют использовать те или иные алгоритмы.

Далее осталось только оформить результат (хотя это и не обязательно).

Математический анализ в Maple 9

Выражение в левой части заключено в обратные кавычки. Все, что находится в этих кавычках, вычислительным ядром Maple не вычисляется и в области вывода отображается в "первозданном виде". Выше эта особенность была использована, чтобы вывести в области вывода символьное выражение для операции вычисления производной в левой части равенства.

На заметку
Можно для этих целей применять неактивную форму команды дифференцирования Diff {}. Однако в этом случае используется синтаксис как для частной производной, что математически не совсем корректно.

Следует иметь в виду, что для вычисления производной совсем не обязательно сначала описывать саму функцию. Можно поступить проще. Рассмотрим следующий пример (символ ^ означает возведение в степень).

Задача 2.2

Найти производную функции у(х) =х+х^х+х^(х^х).

В этом случае переменной у присвоим значение х+х^х+х^(х^х) (но теперь у — это уже не функция от х, а выражение!).

Математический анализ в Maple 9

На заметку
Операция возведения в степень (^ или **) является бинарной. Это значит, что запись вида а^b^с некорректна. Следует использовать скобки: (а^b)^с.

При дифференцировании в качестве первого аргумента процедуры dif f () указывается выражение у (зависящее от х, но хочется еще раз подчеркнуть, это не функциональная зависимость). > diff(y,x);

Математический анализ в Maple 9

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

Однако самый незатейливый способ вычисления производной представлен ниже.

Задача 2.3

Найти производную функции у(х)=х^(1/х).

В качестве параметра процедуры diff () можно сразу указать дифференцируемое выражение.

Математический анализ в Maple 9

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

Математический анализ в Maple 9

Переменная среды %, указанная в качестве первого параметра процедуры collect!), определяет выражение, которое нужно преобразовать, а второй параметр указывает на то, что в выражении слагаемые следует группировать по степеням 1/х.

На заметку
Если при вызове процедуры collect() вторым параметром указать не 1/х, а х, результат не изменится. Причина в том, что 1/х — это х в степени -1.

Вычислительное ядро Maple достаточно эффективно работает не только с непрерывными функциями, но и с такими, которые имеют точки (или области) разрывов.

Задача 2.4

Найти производную функции Математический анализ в Maple 9

Определяем функцию у(х) следующим образом.

Математический анализ в Maple 9

При этом целая часть числа х возвращается функцией Maple floor().

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

Дальше процедура вычисления производной уже знакома.

Математический анализ в Maple 9

Последнее выражение содержит функцию floor(), у которой указано два аргумента. В этом случае первый аргумент определяет порядок производной, второй — непосредственно аргумент. Другими словами, floor(l,x) — это первая производная от функции floor(x), которая во всех точках равна нулю, кроме целочисленных значений аргумента — в этих точках производная не определена (поскольку floor(х) в этих точках имеет неустранимый разрыв).

Полученное выражение, при желании, можно упростить.

Математический анализ в Maple 9

Чтобы представить себе, что же это за функция, построим ее график.

Математический анализ в Maple 9

В качестве первого аргумента процедуры plot(), используемой для отображения двухмерных графиков, указывается выражение, график которого следует построить. В данном случае это выражение определяется значением переменной среды %. Второй аргумент является равенством, где указывается переменная, относительно которой следует строить график (левая часть равенства), а после знака равенства — диапазон ее изменения.

На заметку
Если диапазон изменения не указать, то по умолчанию график строится на интервале -10.. 10.

Следующие параметры являются необязательными. В приведенном примере это заголовок (опция title) и шрифт для этого заголовка (опция title-font). Значения этих опций указываются после знака равенства: заголовок (его значение) заключается в двойные кавычки, а шрифт — это список (в квадратных скобках через запятую указываются тип шрифта, его стиль и размер). Подробнее об опциях процедуры plot() можно узнать из приложения в конце книги. Там же имеется и информация о возможных значениях этих опций.

На заметку
Списком в Maple называется последовательность разделенных через запятую элементов (самого разного характера), заключенная в квадратные скобки. В списке имеет значение порядок следования элементов — при изменении очередности элементов по определению полагают, что список изменился. Последовательность Maple — это группа (в обычном, не математическом значении этого слова) выражений, разделенных запятыми. Пример последовательности: x,sin(t),5,3*6. Пример списка: [x,sin(t),5,3*6].
Если последовательность заключить в фигурные скобки, получится множество. От списка множество отличается тем, что не имеет значения ни порядок следования, ни количество совпадающих элементов.

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

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

Задача 2.5

Найти производную и построить график функции и ее производной, если Математический анализ в Maple 9

Чтобы задать такую функцию, поступим следующим образом.

Математический анализ в Maple 9

В качестве аргументов функции piecewise() указываются поочередно ш тервал (в виде неравенства) и значение функции на этом интервале. После, ний интервал не указывается — только значение функции.

Функцию f() определим как производную от функции у() (наличие скобе после названия свидетельствует о том, что соответствующие переменные объявляются как операторы и для них при вызове нужно указывать аргумент).

Математический анализ в Maple 9

Если теперь указать аргумент, получим выражение для производной:

Математический анализ в Maple 9

Графики функции у(х) и ее производной построим с помощью уже знаке мой процедуры plot(), только в этом случае первым аргументом указываете список из двух функций. Точно так же задаются значения опций — это списки, в которых первый элемент соответствует первой функции, а второй элемент - второй функции.

На заметку
Чтобы при вводе кода перейти на следующую строку, не "спровоцировав" при этом вычислительное ядро Maple на выполнение вводимой команды, следует нажать <Shift+Enter>.

Математический анализ в Maple 9

Здесь использованы новые опции: color для определения цвета линий, style для определения стиля линий (первый график отображается точками, второй — непосредственно линией), symbol для определения символов отображения (квадрат) и опция отображения легенды legend. Значением последней являются надписи, отображаемые в нижней части графика у образцов линий, и они заключаются в двойные кавычки. Для опции symbol в качестве значения указано единственное значение, а не список. В этом случае значение применяется ко всем отображаемым функциям.

Задача 2.6

Найти производную и построить график функции и ее производной, если

Математический анализ в Maple 9

Исходную функцию определяем следующим образом (процедура abs () возвращает в качестве значения модуль аргумента).

Математический анализ в Maple 9

Однако производную определим не как функцию, а как выражение.

Математический анализ в Maple 9

Видим, что производная не определена в точках х=-1 и х=1 (undefined — значит неопределенный). Ниже строится график исходной функции и ее производной. Следует обратить внимание на то, что оператор у() указывается вместе с аргументом (т.е. у(х)), в то время как для производной указана только переменная f. Ситуация такая же, как и в одном из предыдущих примеров, — первая зависимость от х является функциональной (у() — оператор), вторая — нет (f — это выражение).

Математический анализ в Maple 9

Опция linestyle определяет стиль линий: первый график отображается сплошной линией (SOLID), второй — штрихпунктирной (DASHDOT).

Вычисление производных функций, заданных параметрически

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

Рассмотрим пример.

Задача 2.7

Найти производную функции, заданной параметрически: x(t) = acos(t) и y(t) = bsin(t).

Переменной х присвоим значение.

Математический анализ в Maple 9

Так же поступим и с переменной у.

Математический анализ в Maple 9

Теперь х и у являются выражениями, которые зависят от переменной-параметра t; по этому параметру их можно дифференцировать. Поэтому остается только воспользоваться приведенной выше формулой для производной функции, заданной в параметрическом виде.

Математический анализ в Maple 9

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

Внимание!
Именно наличие третьего параметра в списке при отображении заданной в параметриче-V ском виде функции является индикатором того, что строится график параметрической функции, а не графики двух разных функций.

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

Математический анализ в Maple 9

Следует обратить внимание на то, что при определении заголовка использовался символ перехода на новую строку (\n). Данный символ рекомендуется использовать при длинных заголовках, чтобы при отображении графика такой заголовок был виден целиком.

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

Задача 2.8

Найти производную функции, заданной параметрически:

Для решения поставленной задачи опишем специальную процедуру.

Математический анализ в Maple 9

Название parametricdiff новой процедуры, заключенное в обратные кавычки, определяется пользователем (его можно изменить по своему усмотрению). В данном случае кавычки не имеют значения, все и так будет работать, однако разработчики Maple рекомендуют придерживаться определенных правил (к ним относится и использование при описании процедур обратных кавычек), которые впоследствии помогут избежать многих неприятностей.

После названия процедуры и оператора присваивания (:=) следует стандартное слово рrос() с указанием в скобках параметров процедуры: в данном случае их три — х, у и t. После этого идет команда, выполняемая процедурой (этой командой вычисляется параметрическая производная), а затем в конце указана стандартная конструкция end proc, после которой стоит двоеточие. Если закончить описание процедуры точкой с запятой, в области вывода будет сгенерирован код процедуры.

Далее определяем х и у как функции переменной-параметра.

Математический анализ в Maple 9

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

Теперь используем новую процедуру для вычисления производной.

Математический анализ в Maple 9

Но в данном случае упростить результат все же придется.

Математический анализ в Maple 9

Очевидно, что последняя операция не всегда является необходимой — упрощение выражений зависит от многих факторов, в том числе и от предпочтений пользователя.


Производные от неявно заданных функций

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

Для вычисления производных от неявно заданных функций в Maple предлагается процедура implicitdiff(). Способы ее вызова рассмотрим на примерах, которые приведены ниже.

Задача 2.9

Найти производную функции у(х), заданной неявно: х2 +2ху -у=2х .

Сначала построим график функции, от которой следует искать производную. Процедура implicitplot() позволяет строить графики функций, заданных в неявном виде. Однако доступной процедура становится только после подключения пакета plots с помощью команды with().

Математический анализ в Maple 9

Внимание!
В пакете plots имеется процедура changecoords (), название которой совпадает с названием стандартной процедуры changecoords (), доступной и без подключения пакета. Выше можно видеть сообщение о том, что в результате подключения пакета эта процедура была переопределена.

Первым аргументом процедуры является уравнение, задающее функцию, после чего следует диапазон изменения переменных х и у. Остальные опции уже использовались ранее и читателю знакомы, кроме опции thickness, которая определяет толщину линии (значение — целое число; в предыдущих версиях Maple — в диапазоне от 0 до 3, а в Maple 9 — от 0 до 15).

Математический анализ в Maple 9

Для вычисления производной воспользуемся, как уже отмечалось, процедурой implicitdiff(), первым параметром которой является выражение, неявно задающее функцию, вторым — функция, от которой нужно искать производную, и, наконец, третьим параметром — переменная, по которой вычисляется производная.

Математический анализ в Maple 9

Левая часть равенства нужна исключительно для "художественного" оформления результата.

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

Математический анализ в Maple 9

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

Математический анализ в Maple 9

Выше использована процедура solve(). Первым параметром этой процедуры является решаемое уравнение, вторым — переменная, относительно которой уравнение решается. Для ссылки на уравнение использована переменная среды %.

Внимание!
Процедура solve () позволяет решить уравнение, указанное первым параметром, относительно второго параметра. Однако в качестве значения решение этому второму параметру не присваивается! Поэтому в приведенной выше команде переменной у присваивается (:=) в качестве значения решение уравнения относительно переменной у (solve(*,y)). Если этого не сделать, то после выполнения процедуры solve(%,y) значение переменной у не изменится.
Кроме того, не следует забывать о том, что если решений уравнения несколько, результатом выполнения процедуры solve () является последовательность этих решений

Если теперь вызвать процедуру implicitplot(), указав пергым параметром все то же уравнение, то оно будет задавать зависимость z от х: дело в том, что хотя формально в уравнении присутствует у, вычислительным ядром Maple в уравнении эта переменная заменяется ее значением, выраженным через г и х.

Математический анализ в Maple 9

Опция labels используется для определения надписей по осям координат, а специфичная для процедуры implicitplot() опция grid задает число базовых точек по осям абсцисс и ординат, на основе которых строится график (по умолчанию значение опции равно [25,25]). С директивой перехода на новую строку (\п) в названии рисунка читатель уже знаком.

Задача 2.10

Чему равно значение у при х = 2 и у = 4 и при х =2 и у = 0 , если (эллипс)?

Для начала задаем уравнение F, определяющее функцию.

Математический анализ в Maple 9

Выражение Fx определяет производную. Записывается оно с помощью процедуры implicitdiff (), первым параметром которой указывается дифференцируемое выражение (F), затем следует переменная, которую при дифференцировании следует считать функцией, и, наконец, переменная, по которой вычисляется производная.

Математический анализ в Maple 9

Переменным х и у присваиваем следующие значения.

Математический анализ в Maple 9

Если теперь вызвать Fx, то в этом выражении х и у будут заменены значениями, присвоенными этим переменным выше. В этом случае получим значение производной в соответствующей точке. Однако вызвать Fx можно и с помощью переменной среды %%%, которая возвращает значение предпредпоследней операции.

Математический анализ в Maple 9

Чтобы вычислить производную в другой точке, переменной у следует присвоить новое значение (переменная х значения в новой точке не меняет).

Математический анализ в Maple 9

Однако результат несколько неожиданный.

Математический анализ в Maple 9

Дело в том, что производной в этой точке не существует (точнее, она равна бесконечности, поскольку в выражении для производной у находится в знаменателе, и поэтому точка у=0 является особой).

Часто уравнение, которое задает неявно функцию, имеет достаточно специфичный вид — например, может быть записано в полярных координатах.

Задача 2.11

Чему равна производная у'(х), если функция задана уравнением r = aф (спираль Архимеда).

График для спирали Архимеда строится с помощью процедуры plot(), только в данном случае следует указать, что строится он в полярной системе координат (для этого используется опция coords, значение которой устанавливается равным polar). Отображаемая на графике зависимость также записывается в полярной системе координат (задается зависимость расстояния от угла r((ф)).

Математический анализ в Maple 9

Далее переменной Eq в качестве значения присвоим уравнение спирали Архимеда.

Математический анализ в Maple 9

Теперь от полярной системы координат переходим к декартовой.

Математический анализ в Maple 9

После этого можем вычислить производную (переменная Deriv).

Математический анализ в Maple 9

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

Теперь снова перейдем к полярной системе координат. Для этого, фактически, следует отменить результат выполнения команд (1) и (2)

Внимание!
Текст после знака # трактуется ядром Maple как комментарий и при выполнении команд игнорируется.

Сделать это можно, присвоив переменным г и ф в качестве значений "самих себя".

Математический анализ в Maple 9

На заметку
Одинарные кавычки используются для формирования названий. Если переменной не присвоено значение, то по умолчанию ее значением является ее же название. Поэтому выше для "восстановления'' переменных им в качестве значения присваиваются собственные названия.

Теперь можно переходить к полярным координатам.

Математический анализ в Maple 9

В этом случае производная равна следующему.

Математический анализ в Maple 9

После упрощения получаем следующее.

Математический анализ в Maple 9

Для дальнейших преобразований вычислительному ядру Maple следует сообщить, что не может быть отрицательным (процедура assume! ))

Математический анализ в Maple 9

Внимание!
Для того чтобы на переменную наложить какие-то ограничения, как было показано выше, используется процедура assume (). Например, можно определить переменную а как такую, что больше 1: assume(a>l). Однако если относительно некоторой переменной процедура assume)) применяется несколько раз, "силу" будет иметь только последняя из этих процедур. Например, если применялась вначале команда assume (а>1), а затем assume (а<2), то переменная а будет интерпретироваться как такая, что меньше 2. Чтобы определить переменную со значением в диапазоне от 1 до 2, следует воспользоваться командой assume (а>1,а<2).

На заметку
По умолчанию переменные, на которые наложены ограничения, отображаются в рабочих листах со знаком тильды ("). Этот режим можно отключить. Для этого, например, в Maple 7 в меню Options (Сервис) следует выбрать подменю Assumed Variables (Ограничения на переменные), содержащее три команды. Если выбрать Л/о Annotation (Не выделять), то такие переменные никаким специальным образом в рабочем документе выделяться не будут. При выборе команды Trailing Tildes (Замыкающие тильды) переменные будут отображаться с тильдами (этот режим, как отмечалось, используется по умолчанию). Можно выбрать команду Phrase (Фраза), и тогда переменная, на которую наложено ограничение, будет отображаться с фразой with assumption on (с предположением относительно). В Maple 9 можно сделать то же самое, выполнив команду File (<t>av\n)<>Preferences (Настройки) и щелкнув на корешке вкладки I/O Display (Отображение данных ввода-вывода), в результате чего будут доступны соответствующие команды. Речь об этом уже велась в главе 1.

Далее воспользуемся уравнением кривой.

Математический анализ в Maple 9

Тогда в предположении неотрицательного угла и параметра а находим, наконец, производную.

Математический анализ в Maple 9

Это выражение можно преобразовать — например, перейти от использования синусов и косинусов к тангенсам. Для этого понадобится процедура выполнения замены subs ():

Математический анализ в Maple 9

Равенство (sin(phi)=tan(phi)*cos(phi)) в первом параметре процедуры указывает на то, что синус следует представить как произведение тангенса на косинус, а второй параметр (переменная среды %) определяет выражение, в котором следует осуществить эту замену.

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

Математический анализ в Maple 9

Использование процедуры simplify!) в последнем случае вместо процедуры normal() нецелесообразно, поскольку с точки зрения базовых алгоритмов Maple упрощение состоит в переходе от тангенса к синусу и косинусу — в результате придем к тому выражению, с которого начинали.

На заметку
Выше замена переменных в уравнении осуществлялась, что называется, вручную. Однако в Maple имеется процедура changecoords () — та самая, что переопределяется при подключении пакета plots. С ее помощью в выражениях можно переходить от декартовых координат к новым переменным. Например, чтобы записать выражение Тху в полярных координатах, можно ввести команду changecoords(2*x*y, [х,у],polar, [r,phi]). Эту процедуру не следует путать с процедурой plots[changecoords ]() (это ссылка на процедуру changecoords () из пакета plots), которая используется для преобразования графических структур при отображении их в новых системах координат.


Производные высших порядков

Достаточно просто вычисляются и производные высших порядков. Для этого используется все та же процедура diff(). Синтаксис вызова этой процедуры для вычисления производных высших порядков описывается ниже в примерах.

Задача 2.12

Найти у"(х) и у"(х), если y(x) = f(x2).

Для отыскания второй производной можно дважды вызвать процедуру diff (), как показано ниже.

Математический анализ в Maple 9

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

Другой подход состоит в том, чтобы использовать оператор формирования последовательности ($) у переменной дифференцирования при вызове процедуры diff ().

Математический анализ в Maple 9

На заметку
Таким образом, если после переменной дифференцирования указать оператор $ и целое неотрицательное число, то это число будет определять порядок производной. Подобный подход весьма удобен в тех случаях, когда порядок производной достаточно велик. Поскольку результатом выполнения операции х$3 является последовательность х, х, х, то допустимо вместо $3, например, сразу писать х,х,х — результат от этого не изменится.

Задача 2.13

Найти 100-ю производную функции y(x) = xsh(x).

Опишем дифференцируемую функцию.

Математический анализ в Maple 9

После этого ее можно продифференцировать нужное количество раз.

Математический анализ в Maple 9

Ситуация несколько усложняется, если функция задана в параметрическом f виде. Как поступать в этих случаях, показано в следующем примере.

Задача 2.14

Найти y(x), если x(t) = 2t-t2 и y(i) = 3t-t3.

Вначале определим параметрические зависимости для х и у (т.е. объявим эти переменные как функции одного параметра).

Математический анализ в Maple 9

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

На заметку
Чтобы этот код не отображался, в конце процедуры достаточно поставить двоеточие.

Математический анализ в Maple 9

В процедуре описана локальная переменная t, которая доступна только внутри тела процедуры. Далее следует команда, определяющая работу процедуры paramdiff (). Согласно этой команде, переменной t в соответствие ставится (->) параметрическая производная от у по х (diff (y(t),t)/diff (x(t),t)), а сама переменная t при этом является параметром.

Теперь можно вычислить первую производную.

Математический анализ в Maple 9

На заметку
То, что в предыдущей команде при вызове paramdiff () в качестве аргумента указана переменная t, которая формально идентична локальной переменной в описании этой процедуры, — простое совпадение. Можно было бы указать и иной параметр, например р или v.

После упрощения получим следующее.

Математический анализ в Maple 9

Вторую производную (не используя полученного выше выражения для первой производной) можно вычислить, дважды вызвав процедуру paramdiff ().

Математический анализ в Maple 9

Третью производную вычислим "традиционным" способом.

Математический анализ в Maple 9

Здесь переменная среды % ссылается на результат выполнения предыдущего действия, т.е. на параметрическую зависимость для второй производной от у по х.

Теперь полученное выражение упрощаем.

Математический анализ в Maple 9

Хотелось бы еще раз обратить внимание на принципиальный момент в определении использованной выше процедуры: данная процедура, по сути, является оператором (ее результат — это не число или выражение, а действие!), зависящим от двух параметров-функций. Действие оператора на аргумент состоит в вычислении параметрической производной от первой функции по второй функции, а аргумент, на который действует оператор, является при этом переменной-параметром.


Вычисление пределов

Для вычисления пределов используют процедуру limit(). В качестве аргументов указывают выражение и то значение, к которому стремится переменная. Данная процедура имеет также и неактивную форму (та же процедура, но пишется с прописной литеры — Limit()). Ниже приведены примеры использования этой процедуры.

Задача 2.15

Определить значение выражения Математический анализ в Maple 9

Математический анализ в Maple 9

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

Задача 2.16

Определить значение выражения Математический анализ в Maple 9

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

Математический анализ в Maple 9

Стоит также обратить внимание на то, как в качестве значения переменной указана бесконечность (в Maple infinity — это стандартное обозначение для бесконечности).

Задача 2.17

Определить значение выражения Математический анализ в Maple 9

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

Математический анализ в Maple 9

Как и ранее, в левой части равенства неактивная форма процедуры Limit () используется для символьного отображения предела, в то время как процедура limit () в правой части равенства необходима непосредственно для его вычисления.


Экстремум функции

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

Задача 2.18

Исследовать на экстремум функцию у(х) = хm(1-х)n.

Сначала определим саму функцию.

Математический анализ в Maple 9

Затем найдем ее производную.

Математический анализ в Maple 9

Последняя как несложно проверить, равна следующему.

Математический анализ в Maple 9

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

Математический анализ в Maple 9

В данном случае экстремум предполагается только в одной точке — в ней производная равна нулю. Это легко проверить. Поступим следующим образом.

Математический анализ в Maple 9

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

Математический анализ в Maple 9

Полученное выражение достаточно громоздко, однако вводить в заблуждение это не должно. После упрощения получаем, как и ожидалось, нуль.

Математический анализ в Maple 9

Для определения типа экстремума нужно определить значение второй производной в этой точке. Вторая производная равна:

Математический анализ в Maple 9

В этом случае вместо переменной х использована новая переменная t. Объясняется это довольно просто — переменной х было присвоено значение, после чего она, так сказать, стала числом. По числу дифференцировать нельзя. Поэтому существовало две альтернативы: либо "восстановить" переменную х с помощью команды х: = 'х', либо использовать новую переменную, что и было сделано.

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

Математический анализ в Maple 9

Переменная среды %% возвращает результат выполнения предпоследней команды, т.е. значение второй производной, но уже в нужной точке (по-скольку предьщущей командой параметру t было присвоено соответствующее Значение).

Математический анализ в Maple 9

После упрощения получаем следующее.

Математический анализ в Maple 9

Для определения типа экстремума важен знак полученного выражения. Определяется этот знак с помощью процедуры sign().

Математический анализ в Maple 9

Поскольку выражение отрицательно, приходим к выводу, что найденная точка является точкой максимума.

Процедуру исследования функции на экстремум можно практически полностью переложить на плечи Maple.

Задача 2.19

Найти экстремумы функций.

Сразу определим процедуру, которая и возьмет на себя основную работу по исследованию функции на экстремум. Комментарии к процедуре размещены ниже.

Математический анализ в Maple 9

Параметром процедуры является функция (f), исследуемая на экстремум. После зарезервированного слова local перечисляются локальные переменные (они доступны и используются только внутри процедуры): х — чтобы задать аргумент функции f; s — для записи значения исследуемой на экстремум точки; переменные А и В нужны при работе со второй производной в точке предполагаемого экстремума; ListOf Points — список точек предполагаемого экстремума; и, наконец, ResultList — список результатов исследования по каждой точке.

В первую очередь в процедуре определяются точки предполагаемого экстремума. Для этого находятся точки, в которых производная равна нулю (solve(diff (f (x),x)=0,x); здесь результатом операции является последовательность решений), а результат этого вычисления, заключенный в квадратные скобки (это уже список), присваивается в качестве значения переменной ListOf Points. Таким образом, все точки, исследуемые на экстремум, являются элементами списка ListOf Points.

На следующем шаге инициализируется переменная ResultList (в качестве начального значения ей присваивается пустой список). Далее идет один большой оператор цикла (начинается с for ... do и заканчивается end do). В рамках этого оператора перебираются все значения s из списка ListOfPoints (for s in ListOfPoints), т.е. с помощью переменной s пересматриваются точки, в которых производная функции равна нулю. Для каждой из этих точек сначала вычисляется вторая производная (в виде общей зависимости от х), затем переменной х присваивается значение исследуемой на экстремум точки, переменной А — значение второй производной в этой точке, а переменной В присваивается это же значение, но в формате числа с плавающей точкой — для этого используется процедура evalf(), которая преобразует указанное в качестве ее аргумента выражение в формат числа с плавающей точкой. Переменная В будет использоваться в условных операторах (if) при проверке знака второй производной в данной точке.

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

Далее следует структура из вложенных условных операторов (структура if ... fi).

На заметку
Вместо структуры окончания условного оператора if можно использовать конструкцию end if. Так, безусловно, длиннее, зато понятнее!

Если вторая производная в точке меньше нуля (В<0), в список результатов вводится запись с указанием точки и того, что это точка максимума, а в случае В>0 — что это точка минимума. Если же В=0, вносится запись о том, что необходимо дополнительное исследование. (В этих случаях необходимо осуществлять поиск производных более высоких порядков.) Объединение строк при этом выполняется с помощью процедуры cat(). Данная процедура используется для объединения строк и названий и формирует результат в виде строки (названия), в которой объединены все ее аргументы в порядке следования. Например, рассмотрим команду cat ("в точке х=", convert (x, string ),"-максимум "). Первый и третий аргументы процедуры cat() заключены в двойные кавычки и являются строками. Они будут объединены в таком виде, как есть. Интерес представляет второй аргумент процедуры cat() — процедура convert(), которая используется для преобразования типов. Первый ее аргумент (х) является числовым (или символьным) значением точки, исследуемой на экстремум. Это значение преобразуется в строчной формат, о чем свидетельствует опция string. Поэтому в результате объединения получаем строку вида "в точке х=значение — максимум". Такие строки и составляют список ResultList, т.е. являются элементами этого списка.

После условных операторов, но перед окончанием оператора цикла (напоминаем, заканчивается конструкцией end do) размещается команда "восстановления" переменной х (х: = 'х'); иначе на следующем этапе нельзя было бы вычислить производную второго порядка по х. Наконец, последней командой в теле процедуры выводится список с результатами исследования.

Теперь с помощью описанной процедуры можем исследовать на экстремум следующие функции:

Математический анализ в Maple 9

Внимание!
Как можно видеть, сообщение о том, что в точке х=2 необходимо дополнительное исследование, выведено дважды. Причина в том, что при вычислении производной и определении точек, где она равна нулю, корень х=2 имеет двойную кратность, поэтому процедура solve () в последовательности решений этот корень выводит дважды; отсюда и два сообщения. Во избежание этого следовало бы определить переменную ListOf Points не как список, а как множество. Тогда два одинаковых решения будут интерпретироваться как один элемент множества.

Математический анализ в Maple 9

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


Частные производные

Для вычисления частных производных применяется процедура diff (). В случае функции нескольких переменных через запятую указываются те из них, по которым берется производная (при этом допускается использование оператора $).

На заметку
Частной производной от функции нескольких переменных называется производная по одной из этих переменных при фиксированных прочих.

При вычислении частных производных допускается также использование оператора D. После оператора в квадратных скобках указывают индекс, соответствующий номеру аргумента функции, по которому вычисляется производная. Например, для функции трех переменных u(x,y,z) производная может быть вычислена с помощью команды D[2,3](u)(x,y,z).

Задача 2.20

Найти частные производные первого и второго порядков от функции и(х,у) = х'+у*-4х2у2.

Определим функцию двух аргументов (аргументы указываются через запятую и заключаются в скобки).

Математический анализ в Maple 9

Используя для записи результата процедуру дифференцирования в неактивной форме (Diff ()), вычислим частную производную по х.

Математический анализ в Maple 9

Прочие производные вычисляются аналогично.

Математический анализ в Maple 9

Стоит обратить внимание на то, что при вычислении частных производных можно использовать оператор $.

Математический анализ в Maple 9

Однако если производных много и они достаточно высокого порядка, запись отдельной команды для каждой такой производной становится утомительным занятием. Иногда в таких случаях полезно определять специальные процедуры, как в следующем примере.

Задача 2.21

Найти частные производные первого и второго порядков от функции и (х,у) = х".

Как и раньше, определяем функцию.

Математический анализ в Maple 9

Однако чтобы не вводить для вычисления производных пять отдельных команд, определим всего одну процедуру, которая будет вычислять все производные вплоть до второго порядка от функции двух неизвестных.

Математический анализ в Maple 9

Функция и является параметром процедуры. Первый цикл с оператором do используется для вычисления производных первого порядка. Условие s in x,y указывает на то, что переменная s пробегает значения элементов из последовательности х;у, по которым и берется производная. Так же организован и второй цикл, в котором вычисляются вторые производные, однако он содержит еще один вложенный цикл. В процедуре использована также процедура print(), которая выводит на экран выражение, указанное ее параметром (выражение предварительно вычисляется).

Чтобы отобразить все частные производные функции и, достаточно указать эту функцию в качестве параметра процедуры AllDeriv().

Математический анализ в Maple 9

В частности, можно проверить, что смешанные производные не зависят от порядка дифференцирования.

Совет
Как можно видеть, выводимые на экран выражения для частных производных допус-некоторое упрощение. Чтобы это выполнялось автоматически, соответствующую команду (например, simplify()) можно разместить прямо в теле процедуры.


Дифференцирование неявно заданных функций нескольких переменных

При дифференцировании неявно заданных функций нескольких переменных, как и в случае функции одной переменной, используется процедура implicitdiff(). В данном случае несколько изменяется способ ее вызова, а именно увеличивается число параметров.

Определим уравнение Eq, посредством которого неявно задается функция z(x,y).

Математический анализ в Maple 9

Переменную S представим как последовательность списков. Каждый список состоит из двух элементов, по которым следует брать производные.

Математический анализ в Maple 9

Теперь запрограммируем вычисление производных второго порядка. Для этого введем переменную s, которая будет принимать значения элементов последовательности S, т.е. переменная s является списком (состоящим из двух элементов).

Математический анализ в Maple 9

В рамках оператора цикла в левой части равенства вызывается неактивная форма процедуры Diff() для вывода на экран непосредственно символа вычисления производной, а в правой части — процедура implicitdiff (), посредством которой данная производная и вычисляется. В качестве аргументов последней указано определяющее функцию уравнение (Eq), функция, от которой вычисляется производная (z), и две переменные, по которым берут производную (s[l) — первый элемент списка s, a s[2] — второй элемент списка s).

В этом случае задаем два уравнения Eql и Eq2, из которых определяются функции у(х) и z(x).

Математический анализ в Maple 9

Параметрами процедуры implicitdiff () являются множество с элементами-уравнениями, определяющими функции ({Eql,Eq2}), множество с элементами-функциями ({y,z}), функция, от которой берется производная (z), и, наконец, переменная, по которой берется производная (х).

Математический анализ в Maple 9

Производная второго порядка вычисляется так же, как и производная первого порядка, только переменная дифференцирования указывается дважды.

Математический анализ в Maple 9

В последнем выражении представим полиномы в виде произведения с помощью процедуры factor().

Математический анализ в Maple 9

В результате вычислительному ядру Maple удалось сгруппировать знаменатель полученного выражения. При желании это выражение можно разложить на сумму дробей.

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


Замена переменных

Очень часто в выражениях, содержащих производные, приходится переходить к новым переменным.

Внимание!
Если необходимо выполнить замену переменных в дифференциальном выражении, I в Maple в пакете PDEtools есть процедура dchange(). Первым параметром этой процедуры указывают равенство (или множество, состоящее из равенств), определяющее переход от старых переменных к новым, а вторым параметром — выражение, в котором следует выполнить эту замену. Кроме того, может использоваться ряд опций, информация о которых есть в справочной системе Maple. Ниже приведен пример использования процедуры dchange().

Сначала подключаем пакет.

Математический анализ в Maple 9

Новая переменная вводится согласно соотношению х =ехр(/)

Математический анализ в Maple 9

После упрощения получаем следующее

Математический анализ в Maple 9

Замену переменных можно выполнить и в том случае, если переменных несколько. Рассмотрим выражение

Математический анализ в Maple 9

В этом выражении перейдем к новым переменным и и v согласно соотношениям х = uv и у = (и1 -v2)/2 , и после упрощения получим следующее.

Математический анализ в Maple 9

Процедура dchange() полезна во многих случаях. Однако желательно уметь обходиться и без нее. Рассмотрим, как без специальных команд приведения выражений к новым переменным выполнить подобные замены.

Задача 2.24

Преобразовать к полярным координатам уравнение у'(х) =x+y/x-y

Опишем процедуру, посредством которой в дальнейшем будет осуществляться переход к новым координатам. Параметрами процедуры будут новая переменная t, новая функция u(t) и две функции f и g, посредством которых выполняется переход от старых переменной и функции к новым.

Математический анализ в Maple 9

Тело процедуры состоит из одного выражения, определяющего производную от старой функции по старой переменной в терминах новой функции и новой переменной.

Определим функции перехода от декартовой системы координат к полярной.

Математический анализ в Maple 9

Теперь запишем декартовы координаты через полярные (это понадобится в дальнейшем).

Математический анализ в Maple 9

Новая процедура позволяет выразить производную в полярных координатах.

Математический анализ в Maple 9

Исходное уравнение будет записано следующим образом.

Математический анализ в Maple 9

Поскольку предварительно декартовы координаты были выражены через полярные, правая часть равенства будет представлена тоже в полярной системе координат.

В полученном уравнении выделим производную. Для этого решим уравнение относительно этой производной.

Математический анализ в Maple 9

Таким образом, можем записать окончательный результат.

Математический анализ в Maple 9

В последней команде левая часть уравнения нужна для формального отображения символа производной. Однако следует иметь в виду, что вычислительным ядром Maple левая часть уравнения как производная не интерпретируется. Чтобы равенство можно было в дальнейшем трактовать как дифференциальное уравнение, следует воспользоваться процедурой Diff().

Задача 2.25

Перейти к новым переменным и , v, w в уравнении Математический анализ в Maple 9

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

Определим уравнение, которое следует преобразовать.

Математический анализ в Maple 9

Теперь у процедуры три параметра-функции, определяющие правила перехода от старых переменных и функции к новым.

В соответствии с правилами перехода к новым переменным, определяем юцедуру, аргументами которой выступают законы перехода F, G и Н к новым параметрам u, v и w.

Математический анализ в Maple 9

Уравнения Eql i1 E(J2 связывают старые производные с новыми. Система этих уравнений решает относительно производных от функции z (команда solve()). мее задаем закон61 перехода от старых переменных и функции к новым.

Математический анализ в Maple 9

Переменной S присваиваем в качестве значения результат выполнения процедуры преобразования производных. > S:=VarChange(F,G,H,u,v,w);

Математический анализ в Maple 9

После этого в уравнении Eq производные от z по х и у, а также сами пере-Гменные и функцию следует выразить через новые параметры. Выполняется такая замена с помощью процедуры subs().

На заметку
Ссылки rhs (S [ 1 ]) и rhs (S [ 2 ]) возвращают выражения для частных производных функции z — это правые части первого и второго равенств, являющихся элементами множества S.

Математический анализ в Maple 9

Полученное таким образом уравнение умножим на знаменатель правой части (знаменатель возвращается процедурой denom{)).

Математический анализ в Maple 9

После упрощения имеем следующее.

Математический анализ в Maple 9

Это уравнение, в частности, можно сократить на экспоненту.

Математический анализ в Maple 9

Если уравнение сократить еще на один общий множитель, получим окончательный ответ.

Математический анализ в Maple 9

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


Экстремум функции нескольких переменных

Исследование функции нескольких переменных на экстремум отличается от того, что выполняется в случае функции одной переменной. Однако "базовый" принцип все тот же — сначала следует найти точки, в которых производные равны нулю.

На заметку
В случае функции двух переменных/*, у) исследование на экстремум заключается в следующем: сначала находятся точки, в которых производная данной функции равна нулю, а затем составляется матрица размером 2x2 с элементами Ао, которые равны второй производной по i-му и j-му аргументам в точке, где равна нулю производная.

Экстремум имеет место, если определитель матрицы больше нуля. Если диагональные элементы матрицы при этом больше нуля, значит, исследуемая точка — точка минимума. Если диагональные элементы меньше нуля — это точка максимума.

Задача 2.26

Исследовать на экстремум функцию z = х* +у* -х2 -2ху -у2.

Задаем функцию z, зависящую от двух переменных х и у.

Математический анализ в Maple 9

На следующем этапе нужно решить систему двух уравнений, в которых ча-1 стные производные от функции z первого порядка приравнены к нулю. Но сначала эту систему (назовем ее SysEq) следует описать.

Математический анализ в Maple 9

Теперь решаем систему.

Математический анализ в Maple 9

В полученном множестве представлено три решения (каждое из которых L также является множеством): первые два действительные, а третье, представленное посредством функции RootOf(), комплексное. Последнее в данном случае интереса не представляет, поэтому его не рассматриваем.

Приведенная ниже процедура вычисляет производную в точке с координатами х и у порядка п по первому аргументу и порядка m по второму аргументу.

Математический анализ в Maple 9

Совет
Эту же процедуру можно было определить иначе: F:=(x,у,n,m)->D[n.m] (z) (x,у).

Матрица А — это матрица вторых производных исследуемой на экстремум функции в первой точке предполагаемого экстремума, в то время как матрица В — во второй точке.

Математический анализ в Maple 9

Чтобы выяснить, являются ли исследуемые точки экстремальными, нужно вычислить детерминанты определенных выше матриц. В пакете linalg для этих целей предусмотрена процедура det(), которую можно вызвать следующим образом.

Математический анализ в Maple 9

Поскольку детерминант меньше нуля, то в первой точке экстремума нет. Ниже показано, как вызвать все ту же процедуру, но с несколько иным синтаксисом (сначала подключается пакет).

Математический анализ в Maple 9

Здесь детерминант больше нуля. Следовательно, вторая точка является точкой экстремума.

Внимание!
В Maple 9 процедуры пакета linalg распределены по пакетам LinearAlgebra и VectorCal-culus. Однако на пакет linalg можно по-прежнему ссылаться, что и было сделано выше.

Необходимо определить знак первого диагонального элемента матрицы (знак другого диагонального элемента будет таким же).

Математический анализ в Maple 9

Поскольку этот элемент больше нуля, приходим к выводу, что точка (х=1, у=1) является точкой минимума.

На заметку
Ссылка на элемент матрицы в выполняется в виде В[ i, j ], где i и j — индексы вызываемого элемента.

Задача 2.27

Найти экстремальное значение неявно заданной функции z от переменных х

И у, если хг+у2 +z* -2x -2y-4z-l0 = 0.

В данном случае имеем дело с неявно заданной функцией. Вначале запишем уравнение.

Математический анализ в Maple 9

После этого достаточно просто вычислить частные производные от z по х и у.

Математический анализ в Maple 9

На первое выражение можно сослаться посредством переменной среды %%, второе — переменной *. Приравниваем их к нулю, заключаем в фигурные и, указав в качестве параметра процедуры solve(), решаем такую систему относительно переменных х и у.

Математический анализ в Maple 9

Частные производные одновременно равны нулю только в одной точке Цшеется в виду точка на множестве х и у).

Вычисляем производные второго порядка и присваиваем их в качестве ачений переменным All, A12 и А22 (числа в названиях переменных соответ-вуют номерам аргументов, по которым вычисляются производные). All:=implicitdiff(Eq,z,x$2);

Математический анализ в Maple 9

Теперь переменным х и у присваиваем соответствующие значения.

Математический анализ в Maple 9

Далее следует выяснить, чему равно значение функции при данных значениях переменных.

Математический анализ в Maple 9

При этом выражения для определенных ранее переменных существенно упрощаются.

Математический анализ в Maple 9

Детерминант определим следующим образом (переменная Determ).

Математический анализ в Maple 9

Внимание!
В данном случае никаких матриц мы не вводили. Но если бы ввели, то элементы матрицы вторых производных определялись через переменные All, A12 и А22, а детерминант (определитель) матрицы был именно таким, как значение переменной Determ.

Осталось проверить значение переменной Determ в каждой из двух точек (по z).

Математический анализ в Maple 9

Детерминант больше нуля, а переменная АН отрицательна (это был бы диагональный элемент матрицы).

Математический анализ в Maple 9

Вывод: исследуемая точка (x=l,y=-l,z=6) — точка максимума. В другой точке имеем следующее.

Математический анализ в Maple 9

В данном случае получили, что и детерминант, и All — больше нуля. Сле-|довательно, точка (x=l,y=-l,z=-2) — точка минимума. 

Задача 2.28

Найти точки условного экстремума функции и = хг +/, если х/а+у/Ь = 1.

Это задача на условный экстремум, и решать ее будем методом неопределенных множителей Лагранжа.

Вводим функцию z, которая, помимо х и у, зависит еще и от параметра А.

Математический анализ в Maple 9

Инициализируем переменную-множество EqSeq для записи в нее в последующем уравнений, определяющих точки возможного экстремума.

Математический анализ в Maple 9

На следующем этапе заполняем это множество уравнениями. Каждое такое уравнение — приравненная к нулю производная по одной из переменных х, у или по параметру к. Весь процесс автоматизирован посредством использования оператора цикла for.

Математический анализ в Maple 9

В рамках этого оператора при помощи переменной t перебираются все параметры, по которым берется производная, сама производная приравнивается к нулю, а уравнение записывается с помощью оператора объединения множеств union в переменную EqSeq.

В результате получаем следующую систему уравнений (она записана в переменной EqSeq в виде множества уравнений).

Математический анализ в Maple 9

Теперь эту систему решаем.

Математический анализ в Maple 9

Параметру к присваиваем найденное выше значение.

Математический анализ в Maple 9

На заметку
Ссылка rhs(op(l)[3]) выполнена на правую часть равенства, которое является третьим [элементом множества, полученного на предыдущем этапе при решении системы уравнений. От сеанса к сеансу вычислительное ядро Maple может выводить элементы множества в разной последовательности. Другими словами, уравнение для X не обяза-ргельно будет третьим элементом множества. Поэтому индекс (в данном случае 3) следует указывать только после решения системы уравнений, когда в области вывода отображен результат.

Далее определяем второй дифференциал.

Математический анализ в Maple 9

Ниже показано, как с помощью процедуры ор() можно "извлечь" накла-лваемое на переменные условие (оно необходимо для установления взаимо-зи между дифференциалами переменных х и у).

На заметку
умеется, можно было просто задать данное условие в явном виде. Но, как поется в песне, "нормальные герои всегда идут в обход".

Определяем операнды исходной функции г.

Математический анализ в Maple 9

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

Математический анализ в Maple 9

Снова разбиваем уравнение на операнды.

Математический анализ в Maple 9

Теперь само уравнение используем для того, чтобы связать между собой дифференциалы dx и dy.

Математический анализ в Maple 9

Дифференциал dy выражаем через dx.

Математический анализ в Maple 9

Полный дифференциал тогда равен следующему.

Математический анализ в Maple 9

Группируем слагаемые при dx, в результате чего получим:

Математический анализ в Maple 9

Определяем знак этого выражения.

Математический анализ в Maple 9

Таким образом, приходим к выводу, что функция имеет условный минимум.


Заключительные замечания

Рассмотренные в этой главе задачи достаточно просты, и их решение не вызывает принципиальных сложностей. Решения основываются на использовании базовых, наиболее общих процедур Maple и демонстрируют принципы организации Maple и схемы реализации соответствующих алгоритмов. Нет ничего страшного, если математическая постановка той или иной задачи бы-не совсем понятна. Главное, чтобы читатель уяснил для себя, что и как де-ияают команды Maple. Это будет важно в дальнейшем.


Контрольные вопросы

Какие из приведенных команд корректны? Каков результат их выполнения? a)diff(x*2,x); б)D(cos)(x); в)diff(x,l); г)D(l); Переменная у описана как y:=t*sin(x). Чему равен результат выполнения следующих команд? a)diff(y,x); 6)diff(y,x$3); в)diff(yft); г)diff(diff(y,x),t); Переменная у описана следующим образом: y:=t->t*sin(x). Чему равен результат выполнения следующих команд? a)diff(y(z),x); 6)diff(y(x),x); в)D(y)(z); г)diff(diff(y(z),z),z); Переменная F описана как F:=x+y. Каков результат выполнения следующих команд? а) implicitdiff(F,y,x); б) implicitdiff(F,x,y); в)diff(F,x); г)diff(F,x); Если имеет место u:=x*2*sin(y), то что получится в результате выполнения представленных ниже команд? a)diff(u,x,y); 6)diff(u,x,y$2); в)diff(u,y,x,y); г)diff(u,x$3,y$5); Если олисать переменную и как u:=(x,y)->x*y*z, то каков будет результат выполнения следующих команд? a)diff(u(t,s),z,s); 6)D[l,2](u)(x,y); в)diff(D[l,l](u)(y,z),z); Пусть имеет место следующее (в порядке очередности выполнения): u:=(x,y)->x*sin(y), z:=x*y, t:=zA2. Что получится, если выполнить команду: a)diff(u{z,y),x); 6)D[l,2](u)(x,t); в) implicitdiff(u(x,y)=0,y,x); г)implicitdiff(y*diff(D[l](u)(t,x),x),y,x);