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

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

Эта страница существует благодаря следующим персонам

Anton

Создан: 2018-03-23 18:42:35, Последнее изменение: 2020-11-03 14:19:35
Creative Commons Attribution/Share-Alike License 3.0 (Unported)

Этот материал распространяется на условиях лицензии Creative Commons Attribution/Share-Alike License 3.0 (Unported). Это означает, что вы можете размещать этот контент на своем сайте или создавать на его основе собственный (в том числе и в коммерческих целях), при условии сохранения оригинального лицензионного соглашения. Кроме того, Вы должны отметить автора этой работы, путем размещения HTML ссылки на оригинал работы https://planetcalc.ru/7762/. Пожалуйста оставьте без изменения все ссылки на других авторов данной работы или работы, на основе которой создана данная работа (если таковые имеются в спроводительном тексте).

Калькулятор ниже раскладывает входной полином на многочлены, свободные от квадратов. Свободный от квадратов многочлен 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, Разложение многочлена на свободные от квадратов множители

Комментарии