Результант

Калькулятор вычисляет результант для двух многочленов. Также отображается матрица Сильвестра.

Этот калькулятор вычисляет результант для двух полиномов Res(A,B). Нулевой результант означает наличие общих множителей (корней) полиномов. Если у полиномов нет общих множителей - результант всегда отличается от нуля.
Например, у следующих полиномов:

  • 3x3+9 x2+x+3
  • x2+5x+6
    cуществует общий множитель: x+3 и соответственно результант этих полиномов равен нулю.

PLANETCALC, Результант

Результант

Результант
 
Матрица Сильвестра
 

Вычисление результанта

Результант может быть вычислен как определитель матрицы Сильвестра, составленной из коэффициентов полиномов. Но наш калькулятор отображает матрицу Сильвестра исключительно для справки, так как он использует дугой алгоритм основанный на Евклидовом делении полиномов.
Алгоритм калькулятора (только без рекурсии) соответствует алгоритму опубликованному в книге Computer Algebra and Symbolic Computation автора Joel S. Cohen 1.

//Входные полиномы
u(x),v(x)
//переменная результата
a ⟵ 1
loop {
   //получение степеней полиномов
    m ⟵ deg(u(x))
    n ⟵ deg(v(x))      
    if ( n = 0 ) {
         a ⟵ a*v[0]^m
         return a;
    }
    //остаток от деления полиномов
    r(x) ⟵ u(x) mod v(x)
    if ( r(x) = 0 ) {
        return 0;
    }
    s ⟵ deg(r(x))
    a ⟵ a * v[n]^(m-s) * (-1)^(mn)
    u(x) ⟵ v(x)
    v(x) ⟵ r(x)
}

  1. Joel S. Cohen Computer Algebra and Symbolic Computation. Mathematical Methods. par. 7.1 The Resultant Concept 

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

Комментарии