Разложение полиномов (функции класса Factor)
Разложение чисел, математических выражений и особенно полиномов на простые, множители является столь же распространенной операцией, что и функции Simplify, Collect и Expand. Имеется целый ряд функций, в названии которых есть слово Factor и которые решают указанные задачи:
- Factor [poly] – выполняет разложение полинома над целыми числами;
- Factor [poly, Modulus › p] – выполняет разложение полинома по модулю простого числа р;
- Factorlnteger [n] – возвращает список простых множителей целого числа п вместе с их показателями степеней. Опция FactorComplete позволяет указать, следует ли выполнять полное разложение;
- FactorList [poly] – возвращает список множителей полинома с их показателями степени. Опция Modulus › p позволяет представить множители полинома по модулю простого числа р;
- FactorSquareFree [poly] – записывает полином в виде произведения множителей, свободных от квадратов. Опция Modulus › p позволяет представить разложение полинома по модулю простого числа р;
- FactorSquareFreeList [poly] – возвращает список множителей полинома, свободных от квадратов, вместе с показателями степени. Может использоваться опция Modulus › р;
- FactorTerms [poly] – извлекает полный (общий) числовой множитель в poly;
- FactorTermsList [poly] – возвращает лист всех общих числовых множителей полинома poly.
Далее представлен ряд примеров применения этих функций.
Ввод (In) | Вывод (Out) |
---|---|
Factor [x^ 3-6*x^ 2 + 11*х -6] Factor[x^ 3-6*х^ 2 + 21*х -52] | (-3 + x) (-2+x) (-1 + x) (-4 + x) (13-2X+X2) |
Factor [хА 5 + 8*х^ 4 + 31*х^ 3 + 80*х^ 2 + 94*х + 20, Modulus › 3] | (1+x)2 (2+x)3 |
FactorList[xA 4-1, Modulus › 2] FactorSquareFree [ (x^ 2 + 1)*(х^ 4-1) ] | {{1, 1}, {1 + x, 4}} (-1+x2) (1 + x2)2 |
FactorSguareFree [ (x^ 2 + l)*(x^ 4-1), Modulus › 2] | (1+x)6 |
FactorSquareFreeListt (x^ 2 +1)* | |
(xA 4-1), Modulus › 2] FactorTerms[2*x^ 2 + 4*x + 6] FactorTermsList[2*x^ 2 + 4*x + 6] | {{1, 1), {1 + x, 6}} 2 (3+ 2x+ x2) {2, 3 + 2X+X2 } |
Factorlnteger [123456789] | {{3, 2), {3607, 1}, {3803, 1}} |
FactorList[x^ 4-1] | {{!,.!}, {-1 + x, 1}, {1+x, 1}, {1+x2, 1}} |
FactorSquareFreeListt (x^ 2 +1)* (x^ 4-1) ] | {{1, 1}, {-1+x2, 1}, {1 + x2, 2}} |
Обычно функция Factor выявляет внутреннюю суть полинома, раскладывая его на множители, содержащие корни полинома. Однако в ряде случаев корни полинома удобнее получать в явном виде с помощью уже рассмотренной функции Roots.
Функция Factor может работать и с тригонометрическими выражениями, поскольку многие из них подчиняются правилам преобразований, присущим полиномам. При этом тригонометрический путь решения задается опцией Trig › True. Это иллюстрируют следующие примеры.
Ввод (In) | Вывод (Out) |
---|---|
Factor [Csc[x] + Sec[x], Trig › True] | Csc[x] Sec[x] (Cos[x]+ Sin[x]) |
Factor [ Sin [3*x], Trig › True] | (1+ 2Cos[2x]) Sin[x] |