* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
408
Анализ функций и интегральные преобразования
x4 + 10x3 + 35x2 – 50x + 24
> expand((x-1)*(x-2)*(x-3)*(x-4)); > roots(%,x);
[[1, 1], [2, 1], [3, 1], [4, 1]]
5.4.8. Основные операции с полиномами
С полиномами могут выполняться различные операции [6, 7]. Прежде всего отме тим некоторые функции, которые относятся к одному полиному: • psqrt(p) – возвращает квадрат полинома; • proot(p,n) – возвращает n ую степень полинома; • realroot(p) – возвращает интервал, в котором находятся действитель ные корни полинома; • randpoly(vars, eqns) – возвращает случайный полином по перемен ным vars (список) с максимальной степенью eqns; • discrim(p,var) – вычисление дискриминанта полинома по переменной var; • Primitive(a) mod p – проверка полинома на примитивность (возвра щает true, если полином примитивен). Действие этих функций достаточно очевидно, поэтому ограничимся приведе нием примеров их использования:
> readlib(psqrt): > readlib(proot): > psqrt(x^2+2*x*y+y^2);
y+x
> proot(x^3+3*x^2+3*x+1, 3);
x+1
> psqrt(x+y);
_NOSQRT
> proot(x+y, 2);
_NOROOT
> p:=x^3-3*x^2+5*x-10;
p := x4 – 3x2 + 5x – 10
> discrim(p,x);
1355
> readlib(realroot): > realroot(p);
[[0, 4]]
> randpoly([x],degree=10);
63x10 + 57x8 – 59x5 + 45x4 – 8x3 – 93
> randpoly([x],degree=10);
–5x9 + 99x8 – 61x6 – 50x5 – 12x3 – 18x
> randpoly([x],degree=10);
41x9 – 58x8 – 90x7 + 53x6 – x4 + 94x
> Primitive( x^4+x+1 ) mod 2;
true