> expand((у+1),(х+1));
> expand( (х+1) *(у+z));
> expand((х+1)*(y+z), х+1);
> frontend(expand,[(a+b)^3]);
3.7.3. Разложение целых и рациональных чисел — ifactor
Для
ifactor(n)
или
ifactor(n,method)
где n — число, method — параметр, задающий метод разложения. Другая библиотечная функция, ifactors(n), возвращает результат разложения в форме вложенных списков (файл factor):
> ifactor(123456789);
> ifactor(30!);
> ifactor(12!/20!);
> ifactor(100/78);
> readlib(ifactors):
> ifactors(100/78);
3.7.4. Разложение выражений (факторизация) — factor
Для алгебраических выражений функция
factor(a)
Factor(a)
factor(a,K)
Factor(a,K)
Здесь а — полином с несколькими переменными, К — необязательное алгебраическое расширение. Для получения результата от инертной формы функции факторизации надо использовать функции вычисления evala или evalgf.
Главная цель факторизации — это нахождение максимального числа независимых сомножителей выражения, линейных по заданным переменным с коэффициентами наиболее простой формы. Ниже представлены примеры применения функции factor:
> factor(а^2+2*а*b+b^2);
> factor(а^2-2*а*b-b^2);
> p:=expand((х-1)*(х-2)*(х-3)*(х-4));
> factor(р);
> factor(х^5-2,2^(1/5));
> alias(alpha=RootOf(х^2-2));
> factor(х^2-2,alpha);
> factor(х^3-у^3);
> factor(х^3-у^3, (-2)^(1/2));
> factor(х^3-у^3, (-3)^(1/2));
> factor(х^3-3,complex);
3.7.5. Комплектование по степеням — collect
Еще одна функция общего назначения — collect — служит для
collect(а, х)
collect(а, х, form, func)
Во второй форме этой функции дополнительно задаются параметры form (форма) и func (функция или процедура). Параметр form может иметь два значения: recursive (рекурсивная форма) и distributed (дистрибутивная форма). Параметр func позволяет задать имя функции, по которой будет идти комплектование expr. Примеры применения функции collect представлены ниже (файл collect):
> collect(х+х^3-2*х,х);
> collect(х+2*у^3+х+3+х^3*у,recursive, х);
> collect(х+2*у^3+х+3+х^3*у,distributive,у);
> f:=а*ехр(х)-ехр(х)*х-х;
> collect(f,ехр(х));
> g:=int(х*(ехр(х)+ехр(-х)),х);