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



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

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

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


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

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

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

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

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


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

Задача 2.1

Найти производную функции

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

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

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

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

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

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

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

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


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

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

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


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

Задача 2.2

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

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

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

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

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

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

Задача 2.3

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

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

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

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

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


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

Задача 2.4

Найти производную функции

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

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

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


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

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

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

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

В качестве первого аргумента процедуры 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

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

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

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

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

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

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

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

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

Задача 2.6

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

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

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

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

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