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