Иллюстрированный самоучитель по Mathematica

Функции для работы с полиномами


Для работы с полиномами имеется множество функций, по большей части достаточно очевидных для знакомого с математикой пользователя:

  • 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, х]

Полиномы широко используются в математических расчетах. Поэтому обилие функций по работе с ними облегчает проведение сложных вычислений и позволяет представлять результаты в достаточно простой и удобной форме. Если бы системы компьютерной алгебры работали только с одними полиномами, то и в этом случае они вполне оправдали бы себя в глазах многих математиков.



Содержание раздела