Смекни!
smekni.com

Использование команд преобразования выражений Maple для математических вычислений (стр. 3 из 4)

> collect (k, x^3);

> collect (k, exp(x));

> collect (k, sin(x));

> collect (k, cos(x));


В примере 8 для одного и того же выражения осуществляется приведение коэффициентов относительно разных его неизвестныхкомпонентов.

Параметр form применяется для полиномов от нескольких переменных и определяет алгоритм приведения подобных членов. Заметим, что неизвестные, при степенях которых приводятся подобные члены, должны быть заданы в виде списка или множества. Параметр form два значения: recursive и distributed. В первом случае приводятся подобные члены при степенях первой неизвестной в списке, затем в полученных коэффициентах приводятся подобные члены относительно степеней второй неизвестной в списке и т.д. Если при этом значении параметра form неизвестные полинома, относительно которых приводятся подобные члены, заданы в виде множества, то порядок приведения определяется системой Maple и может меняться от сеанса к сеансу. Значение distributed указывает на приведение коэффициентов при членах, содержащих всевозможные произведения степеней неизвестных в списке или множестве, причем суммарная степень всех переменных возрастает от наименьшей к наибольшей.

Пример 9. Алгоритмы приведения для полиномов нескольких переменных.

> p:=x*y-a^2*x*y+y*x^2‑a*y*x^2+x+a*x; #полином двух переменных

> collect (p, [x, y], recursive);

> collect (p, [y, x], recursive);


> collect (p, {x, y}, recursive);

> collect (p, {x, y}, distributed);

> collect (p, [x, y], distributed);

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

Пример 10. Задание функции, применяемой к полученным коэффициентам.

> d:=a^4*y-y+a^4+a^2;

> collect (d, y);

> collect (d, y, factor); # разложение на множители коэффициентов при y

8. Рационализация дробей: rationalize()

Рационализация дроби – это избавление от иррациональности в знаменателе этой дроби. Команда rationalize () производит такое преобразование над числовыми и алгебраическими дробями. Причем в случае алгебраической дроби принимается во внимание только знаменатель в виде полинома. Эта команда может рационализировать алгебраическую дробь, знаменатель которой содержит трансцендентные функции типа sin (), ехр (), ln () и т.п. Однако если их аргумент является дробью с иррациональностями в знаменателе, то эти конструкции не участвуют в процессе рационализации.

Пример 11. Рационализация дробных выражений.

> a:=7*(3^(1/3)+4^(1/5))/(3–2^(1/3));

> rationalize(a);

> b:=y/(y+sqrt (2‑sqrt(5)));

> rationalize(b);


> c:=1/(3‑root (cos(1/(2+sqrt(mu))), 5));

> rationalize(c);

9. Ограничения на неизвестные: assume()

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

Назначение команды assume() – накладывать ограничения на неизвестные величины Maple. Команда имеет следующий синтаксис:

assume (x, свойство);

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

Таблица 1. Свойства числовых переменных и выражений

Название свойства Описание
negative Отрицательные вещественные числа из интервала (-¥, 0)(нуль не включается)
nonnegative Неотрицательные вещественные числа из интервала (0,¥)(нуль включается)
positive Положительные вещественные числа из интервала (0,¥)(нуль не включается)
natural Натуральные числа (целые, большие или равные 0)
posint Целые строго большие 0
odd Нечетные числа
even Четные числа
complex Комплексные числа
NumeralNonZero Комплексные числа, исключая 0
real Вещественные числа
rational Рациональные числа (дроби и целые)
irrational Иррациональные числа
integer Целые числа
fraction Только дробные числа
prime Простые числа

Некоторые параметры (х, свойство) можно заменить математическим отношением, если, конечно, это возможно. Например, (x, negative) соответствует отношению х<0, а (х, nonnegative) соответствует х>=0 и т.д.

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

¨ либо вообще не информировать пользователя, что на переменную наложены ограничения, и она будет продолжать отображаться как и все переменные без ограничений (команда Options Þ Assumed Variables Þ NoAnnotation);

¨ либо в области вывода, если отображаются результаты, в которых присутствует переменная с наложенными ограничениями, словесно сообщается, на какие переменные наложены ограничения (команда Options Þ Assumed Variables Þ Phrase).

Пример 12. Способы отображения переменных с ограничениями.

> assume (a>0);

> ln (a^2); #Отображение по умолчанию

> ln (a^2); #Режим не информировать пользователя

> ln (a^2); #Словесное сообщение

Вернуться в режим отображения переменных с наложенными ограничениями по умолчанию можно командой OptionsÞAssumed VariablesÞTrailing Tildes.

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

> аssumе (х>3, х<5);

соответствует тому, что переменная х может изменяться только в интервале (3,5).

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

> assume (x>3);

> assume (x<5);

соответствует предположению, что значение переменной х не превосходит числа 5, а не тому, что значение этой переменной должно лежать в интервале(3,5).

Если необходимо еще добавить ограничения на переменную, то можно использовать команду additionally(), параметры которой полностью соответствуют параметрам команды assume (). Тогда ограничения, определенные командой additionally (), добавляются к ограничениям, введенным командой assume () и предыдущими командами additionally ():

>assume (x>3); # В последующих вычислениях предполагается х>3

(какие-то вычисления)

> аdditiоnаllу (х<=5); #Теперь предполагается, что 3<х<=5

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

> x:='x';

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

Пример 13. Снятие ограничений с переменной.

> assume (b>0);

> d:=surd (b^4,4);