Разложение многочлена на свободные от квадратов множители
Калькулятор раскладывает входной многочлен на множители, свободные от квадратов методом Юна.
Калькулятор ниже раскладывает входной полином на многочлены, свободные от квадратов. Свободный от квадратов многочлен p(x) не имеет делителей вида q2(x), где q(x) - многочлен положительной степени.
Входной многочлен должен быть примитивным, т.е. все коэффициенты должны быть взаимно простыми, в противном случае одним из множителей будет выделена константа - НОД коэффициентов. Коэффициенты могут быть целыми, комплексными или простыми дробями.
Калькулятор выдает таблицу свободных от квадратов многочленов с указанием степени.
Разложение производится при помощи алгоритма Юна, описание которого можно найти ниже.
Алгоритм Юна
Описание алгоритма в псевдокоде: 1
//Входной многочлен
a(x);
//Вычисление производной
b(x) ⟵ a'(x)
//Вычисление НОД полиномов
c(x) ⟵ gcd( a(x), b(x) )
i=1
if c(x)=0 {
w(x) ⟵ a(x)
} else {
w(x) ⟵ a(x)/c(x)
y(x) ⟵ b(x)/c(x)
z(x) ⟵ y(x) - w'(x)
while( z(x)!=0 ) {
g(x) ⟵ gcd(w(x),z(x))
output ⟵ g(x)^i
i⟵ i + 1
w(x) ⟵ w(x) / g(x)
y(x) ⟵ z(x) / g(x)
z(x) ⟵ y(x) - w'(x)
}
}
output ⟵ w(x)^i
-
Keith O. Geddes, Stephen R. Czapor, George Labahn, Algorithms for Computer Algebra. Kluwer Academic Publishers, 1992, стр. 342 ↩
Комментарии