> p1*p2;
> collect(%,х);
> p1/p2;

> expand(%,х);

В целом надо отметить, что аппарат действий с полиномами в Maple хорошо развит и позволяет выполнять с ними практически любые математические операции. В частности, можно вычислять производные от полиномов и интегралы, у которых полиномы являются подынтегральными функциями:
> diff(p1, х);
> diff(p1, x$2);
> Int(p1,x)=int(p1,x);

> Int(p1,х=0..1)=int(p1,х=0..1);

5.3.9. Операции над степенными многочленами с отрицательными степенями
Хотя в подавляющем большинстве случаев используются степенные многочлены (полиномы) с положительными степенями, Maple не накладывает особых ограничений и на многочлены с отрицательными степенями. Например, можно задать такой степенной многочлен:
> pp:=а*х^(-2)+b*x^(-1)+c*x+d+e*x^2+f*х^3;

Нетрудно показать, что с ним можно выполнять различные операции:
> рр+рр;

> рр-рр;
> pp^2

> simplify(%);

> Diff(pp, x)=diff(pp, x)

> Int(pp,x);

> int(рр,х);

Хотя Maple и не накладывает ограничений на применение степенных многочленов (полиномов) с отрицательными степенями свойства таких полиномов заметно отличаются от свойств полиномов с положительными степенями, поэтому при применении первых надо проявлять известную осторожность.
5.4. Работа с ортогональными полиномами
5.4.1. Состав пакета orthopoly
В пакете orthopoly системы Maple 9.5 задано 6 функций:
> with(orthopoly);
Однобуквенные имена этих функций отождествляются с первой буквой в наименовании ортогональных полиномов. Вопреки принятым в Maple правилам, большие буквы в названиях этих полиномов не указывают на инертность данных функций — все они являются немедленно вычисляемыми. В данном разделе функции этого пакета будут полностью описаны.
Отметим определения указанных функций:
G(n,a,x) — полином Гегенбауэра (из семейства ультрасферических полиномов);
H(n,x) — полином Эрмита;
L(n,x) — полином Лагерра;
L(n,a,x) — обобщенный полином Лагерра;
P(n,x) — полином Лежандра;
P(n,a,b,x) — полином Якоби;
T(n,x) — обобщенный полином Чебышева первого рода;
U(n,x) — обобщенный полином Чебышева второго рода.
Свойства ортогональных многочленов хорошо известны. Все они характеризуются целочисленным порядком n, аргументом х и иногда дополнительными параметрами а и b. Существуют простые рекуррентные формулы, позволяющие найти полином n-го порядка по значению полинома (n-1)-го порядка. Эти формулы и используются для вычисления полиномов высшего порядка.
5.4.2. Вычисление ортогональных полиномов
Ниже представлены примеры вычисления ортогональных полиномов (файл orthpol):
> G(0, 1, х);
> G(1, 1, х);
> G(1, 1, 5);
> Н(3, х);