Операции с полиномами
Если конечные поля – понятие достаточно экзотическое, то полиномы встреча – ются сплошь и рядом во многих математических и научно-технических расчетах. В пакете расширения Algebra определен ряд новых операций над полиномами. Начнем их рассмотрение с функции PolynomialExtendedGCD:
- PolynomialExtendedGCD [poly1, poly2 ] – возвращает наибольший общий делитель двух полиномов;
- PolynomialExtendedGCD[poly1,poly2,Modulus › p] – возвращает наи – больший общий делитель двух полиномов по модулю р.
Примеры применения этой функции приведены ниже:
<
<
Algebra'PolynomialExtendedGCD
PolynomialExtendedGCD[x
^
2
+
3
x
+
2
, Expand[(x
+
1
)(x
+
2
)], Modulus
>
7
]
{
2
+
3x
+
x2, (
0
,
1
}}
PolynomialExtendedGCD[
Expand[ ((
12
+
1
) z
^
2
+
5
z
+
I) (I z
+
3
)], Expand[ ((
9
+
1
) z
+
(
3
+
1
)) ((
31
) z
+
9
)]]
{
-
31
+
z,
{
-
2261
/
3341
+
710I
/
3341
(
35
/
3341
-
3951
/
10023
)
+
(
5959
/
20046
-
20531
/
20046
)z}}
Далее следует функция PolynomialPowerMod [poly1, n, (poly2, р} ], которая является существенно ускоренной версией функции PolynomialMod.
Степени ускорения свидетельствует следующий пример:
<
<
Algebra`PolynomialPowerMod`
Timing[PolynomialPowerMod[
1
+
x,
200
, x
^
3
+
x
^
2
+
1
, Prime[
4750
]]][[
1
]],
Timing [PolynomialMod [ (
1
+
x)
^
200
, x
^
+
x
^
2
+
1
, Prime [
4750
] ]][[
1
]]
{
0
. Second,
2.37
Second)
В данном случае вычисления по функции PolynomialPowerMod оказались выполненными менее чем за 0.01 с, что дает нулевой результат.
Еще одна функция в трех ее модификациях работает с симметричными полиномами:
- SymmetricReduction [ {x1,…,xn}, k] – возвращает симметричный полином степени k по переменным {х1,…, хn);
- SymmetricReduction [f, {x1,…,xn}] – возвращает часть полинома {p,q} по переменным {х1,…,хп}, где f=p+q, причем р есть симметричная часть, q – остаток;
- SymmetricReduction [f, {x1,…,xn}, {s1,…, sn} ] – возвращает часть полинома (p,q) попеременным {x1,…,xn}, где элементарный симметричный полином представляет список {s1,…, sn}.
Следующий пример поясняет создание симметричного полинома 4-й степени по переменным {х,у, z,w,t}:
<
<
Algebra`SymmetricPolynomials`
SyiranetricPolynomial[{x, y, z, w, t},
4
]
twxy
+
twxz
+
twyz
+
txyz
+
wxyz
Действие других функций поясняют следующие примеры:
SynraetricReduction[(x
+
y)
^
2
+
(x
+
z)
^
2
+
(z
+
y)
^
2
, {x, y, z}]
{
2
(x
+
y
+
z)
2
-
2
(xy
+
xz
+
yz),
0
}
SymmetricReduction[x
^
5
+
y
^
5
+
z
^
4
, {x, y, z}, {s1, s2, s3}]
{s15
-
5s13s2
+
5s1s22
+
5s12s3
-
5s2s3
, z4
-
z5}