Функции для работы с полиномами
Функции для работы с полиномами
Для работы с полиномами имеется множество функций, по большей части достаточно очевидных для знакомого с математикой пользователя:
-
Decompose [poly, x] — выполняет разложение полинома, если это возможно, на более простые полиномиальные множители;
-
GroebnerBasis [ {polyl, poly2,...}, {xl, х2,...}]—возвращает список полиномов, которые образуют базис Гробнера для идеала, порожденного полиномами polyi;
-
Polynomial-Division [p, q, x] — возвращает список частного и остатка, полученных делением полиномов р и q от х;
-
PolynomialGCD [polyl, poly2,...] — возвращает наибольший общий делитель ряда полиномов polyl, poly2, ... С опцией Modulus->p функция возвращает наибольший общий делитель по модулю простого числа р;
-
PolynomialLCM[polyl, poly2,...] — возвращает наименьшее общее кратное полиномов polyl, poly2, ... С опцией Modulus->p функция возвращает наименьшее общее кратное по модулю простого числа р;
-
PolynomialMod [poly, m] — возвращает полином poly, приведенный по модулю m;
-
PolynomialMod [poly, {ml, m2,...}] — выполняет приведение по модулю всех mi;
-
PolynomialQ [expr, var] — возвращает значение True, если expr является полиномом от var, иначе возвращает False;
-
PolynomialQ [expr, {varl,...}] — проверяет, является ли expr полиномом от vari;
-
PolynomialQuotient [р, q, х] — возвращает частное от деления р и q как полиномов от х, игнорируя какой-либо остаток;
-
PolynomialRemainder [р, q, х] — возвращает остаток от деления р на q как полиномов от х;
-
Resultant [polyl, poly2, var] — вычисляет результант полиномов polyl и poly2 по переменной var. С опцией Modulus->p функция вычисляет результант по модулю простого числа р.
Итак, работа с этими функциями, по существу, сводит операции с таким сложным видом символьных данных, как многочлены, к типовым алгебраическим операциям над обычными символьными переменными. Следующие примеры поясняют работу с полиномами:
Р[х] := а*х^3 + b*х^2 + с*х + d
Q[x] := е*х^2 - f*x - 1
Null2
Collect[P[x] + Q[x], x]
-1 + d+ (c- f) x+ (b+e) x^ax3
Collect[P[x]*Q[x], x]
-d+ (-c-df) x+ (-b+de- cf) x2* (-a+ ce-bf) x3 +
(be-af) x4+aex5
{PolynomialQ[P[x]], PolynomialQ[Q[x]]}
{True, True}
PolynomialQ[Sin[x], x]
False
PolynomialQ[P[x] + Q[x]]
True
Decompose[P[x], х]
{d+ cx+ bх2 + ах3}
PolynomialQuotient[P[x], Q[x], x]
b/e+af/e2+ax/e
PolynomialRemainder[Q[x], Р[х], х]
-1-fx+ex2
CoefficientList[P[x], x]
{d, с, b, a}
Decompose[х^6 + х + 1 - х^3 + 2*х^5, х]
{1+х-х3+2х5 + х6}
PolynomialGCD[Р[х], Q[х]]
1
PolynomialLCM[P[x], Q[x]]
Р[х] Q[x]
PolynomialQuotient[3*x^3 - 2*х^2 + х, х^2 - х + 1, х]
1+Зх
PolynomialRemainder[3*х^3 - 2*х^2 + х, х^2 - х + 1, х]
-1-х
Reduce[а*х^2 + b*х + с == 0, х]
Полиномы широко используются в математических расчетах. Поэтому обилие функций по работе с ними облегчает проведение сложных вычислений и позволяет представлять результаты в достаточно простой и удобной форме. Если бы системы компьютерной алгебры работали только с одними полиномами, то и в этом случае они вполне оправдали бы себя в глазах многих математиков.
Содержание раздела