Разложение многочлена на свободные от квадратов множители

Калькулятор раскладывает входной многочлен на множители, свободные от квадратов методом Юна.

Калькулятор ниже раскладывает входной полином на многочлены, свободные от квадратов. Свободный от квадратов многочлен p(x) не имеет делителей вида q2(x), где q(x) - многочлен положительной степени.

Входной многочлен должен быть примитивным, т.е. все коэффициенты должны быть взаимно простыми, в противном случае одним из множителей будет выделена константа - НОД коэффициентов. Коэффициенты могут быть целыми, комплексными или простыми дробями.
Калькулятор выдает таблицу свободных от квадратов многочленов с указанием степени.

Разложение производится при помощи алгоритма Юна, описание которого можно найти ниже.

PLANETCALC, Разложение многочлена на свободные от квадратов множители

Разложение многочлена на свободные от квадратов множители

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

Алгоритм Юна

Описание алгоритма в псевдокоде: 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

  1. Keith O. Geddes, Stephen R. Czapor, George Labahn, Algorithms for Computer Algebra. Kluwer Academic Publishers, 1992, стр. 342 

Ссылка скопирована в буфер обмена
PLANETCALC, Разложение многочлена на свободные от квадратов множители

Комментарии