47245 (Использование команд преобразования выражений Maple для математических вычислений), страница 2
Описание файла
Документ из архива "Использование команд преобразования выражений Maple для математических вычислений", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "47245"
Текст 2 страницы из документа "47245"
> expand((x+3)*(x+4)^2);
> expand((x+3)^3/(x+4)^2);
> expand (cos(x-y));
> expand((x+3)*(x+4)^2, x+3);
> expand (x^((a+b)*(k+f)));
4. Разложение полинома на множители: factor ()
Команда factor () разлагает на множители полином от нескольких переменных. Под полиномом в Maple понимается выражение, содержащее неизвестные величины. Каждый член в этом выражении представлен в виде произведения целых неотрицательных степеней неизвестных величин с числовым или алгебраическим коэффициентом, т.е. коэффициент может быть целым, дробным, с плавающей точкой, комплексным числом и даже представлять собой алгебраическое выражение с другими переменными:
> factor (x^3*y‑2*x^2*a*y+x*y*a^2‑x^3*b^2+2*x^2*b^2*a-x*b^2*a^2+x^2*y^2–2*x*y^2*a+y^2*a^2‑y*b^2*x^2+2*y*b^2*x*a-y*b^2*a^2);
Следует помнить правило: команда раскладывает полином на множители над числовым полем, которому принадлежат коэффициенты полинома. Если все коэффициенты целые, то и в получаемых сомножителях будут только целые коэффициенты и не обязательно будут получены линейные сомножители. Второй необязательный параметр этой команды указывает, над каким числовым полем следует осуществлять разложение полинома. Он может иметь значение real, complex, а также один радикал или список / множество радикалов. Пример 6 демонстрирует результаты разложения одного и того же полинома над разными полями.
Пример 6. Разложение полинома над разными полями.
> factor (x^3+2); #над полем целых чисел (целые коэффициенты)
> factor (x^3+2.0); #над полем вещественных чисел
(вещественный коэффициент)
> factor (x^3+2, real); #над полем вещественных чисел
(параметр real)
> factor (x^3+2, complex); #над полем комплексных чисел
(параметр complex)
> factor (x^3+2,2^(1/3)); #над полем целых и радикала 2^(1/3)
(параметр определяет поле с радикалом)
Если применить команду factor () к алгебраической рациональной дроби (отношение двух полиномов), то сначала будет осуществлено приведение дроби к нормальной форме (сокращение общих множителей числителя и знаменателя), а после этого и числитель, и знаменатель раскладываются на множители (с учетом поля коэффициентов):
> d:=(x^11‑y^11)/(x^6‑y^6);
> factor(d);
5. Сокращение алгебраической дроби: normal ()
Команда normal () приводит выражение, содержащее алгебраические дроби, к общему знаменателю и упрощает полученную алгебраическую дробь, сократив и числитель, и знаменатель на наибольший общий делитель. Команда имеет две формы вызова: normal (f); normal (f, expanded); где f – алгебраическая дробь, а параметр expanded указывает на то, что после сокращения дроби в числителе и знаменателе раскрываются скобки.
Пример 7. Сокращение алгебраических дробей.
> f:=1/x+1/(x+1)^2+1/(x+1);
> normal(f);
Если параметр f задан в виде списка, множества, последовательности, ряда, уравнения, отношения или функции, то команда normal () последовательно применяется к компонентам f. Например, для уравнения это означает, что процедура сокращения применяется и к правой, и к левой части уравнения. В случае ряда, это означает, что упрощаются коэффициенты ряда, а в случае выражения с несколькими функциями, аргументы которых представлены алгебраическими дробями, процедура сокращения применяется к аргументу каждой функции:
> s:=sin (x/(x+1) – x)^2+cos (-x/(x+1)+x);
> normal(s);
> normal (1/x+y=x/y+(3*y)/x);
6. Приведение нескольких членов выражения к одному: combine ()
Назначение команды combine () – привести несколько членов в выражении, представленном суммой, произведением или степенями неизвестных, к одному члену, используя разнообразные правила. Эти правила, по существу, противоположны правилам, применяемым командой expand (). Например, рассмотрим известное тригонометрическое соотношение: sin (а+b) = sin(a) cos(b) +cos(а) sin(b).
Команда expand () использует его слева направо, тогда как команда combine () действует наоборот:
> expand (sin(a+b));
> combine (sin(a)*cos(b)+cos(a)*sin(b));
Однако рассмотрим еще один пример:
> g:=sin (a+b)^2;
> s:=expand(g);
> f:=combine(s);
Как видно из примера, команда combine () преобразовала выражение s не к исходному выражению g, которое мы раскрыли функцией expand (). Это происходит потому, что Марlе осуществляет приведение членов выражения по своим внутренним алгоритмам, которые завершаются, как только получилось (или не получилось) представление в соответствии с идеологией команды combine (). В нашем примере – представление через тригонометрическую функцию с аргументом, являющимся линейной комбинацией аргументов тригонометрических функций преобразуемого выражения. Если мы хотим получить исходный вид выражения g, то следует воспользоваться командой подстановки subs (), параметры которой определяют, что на что следует заменить в выражении:
> subs (cos(2*a+2*b)=-2*sin (a+b)^2+1, f);
Команда combine () «знакома» с практически всеми правилами преобразования элементарных математических функций. Если вторым ее параметром задать одно из следующих имен:
abs exp piecewise Psi Signum
arctan icombine polylog radical trig
conjugate ln power range
которые соответствуют используемым в Maple функциям, то при преобразовании выражения будут использоваться только правила преобразования соответствующих функций. Для функций, правила преобразования которых зависят от значения их аргументов (arctan) или которые имеют ограничения на значения аргументов (ln, radical), можно задать третий параметр symbolic, который будет предписывать функции combine () не обращать внимания на интервалы изменения аргументов подобных функций, а осуществлять формальные символические преобразования в соответствии с формулами преобразования этих функций.
7. Приведение подобных членов: collect ()
Команда collect () работает с полиномами, в которых в качестве неизвестных могут выступать функции с аргументами, являющимися неизвестными величинами Maple. Команда имеет три формы вызова:
collect (выражение, х);
соllесt (выражение, х, form, func);
соllесt (выражение, x, func);
где параметр х представляет имя неизвестной величины, относительно степеней которой осуществляется приведение коэффициентов. Параметр х может быть также списком или множеством неизвестных в случае полинома нескольких переменных или именем функции с аргументом-неизвестной в выражении, представленном первым параметром выражение.
Команда collect () различает не только целые, но и положительные и отрицательные дробные степени неизвестной, т.е. при всех степенях будут отдельно приведены подобные члены.
Пример 8. Приведение коэффициентов в выражении.
k:=x^3*sin(x)^2+x^3*cos(x)+x^3*exp(x)+x*cos(x)+2*x*exp(x)+7*x*sin(x)+4*x^3;
> collect (k, x);
> 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);