Пусть

- многочлены одной переменной

. Пусть также

-
i-й субрезультант (См.
https://en.wikipedia.org/wiki/Polynomial_greatest_common_divisor#Subresultants) многочленов

, а

соответствующий
i-й субрезультантный многочлен ((См.
https://en.wikipedia.org/wiki/Polynomial_greatest_common_divisor#Subresultants)). Тогда, если

, а

, то

- наибольший общий делитель полиномов

и

.
Пример процедуры на языке Maple для вычисления

(здесь v - переменная полиномов, напр. 'x'):
Цитата:
sub_res:=proc(i,p,q,v)
local m,n,S,T,M1,M2,f,V:
m:=degree(p, v):
n:=degree(q, v):
S := LinearAlgebra[SylvesterMatrix](p, q, v)^+:
T:=LinearAlgebra[SubMatrix](S, [1..m+n-i], [1..n-i, n+1..m+n-i]):
M1:=Matrix([[Matrix(m+n-2*i-1, shape=identity)],[Matrix(1,m+n-2*i-1)]]):
f:=(ii,jj)->v^(i-jj+1):
M2:=Matrix([[Matrix(m+n-2*i-1,i+1)],[Matrix(1,i+1,f)]]):
V:=Matrix([M1,M2]):
return LinearAlgebra[Determinant](V.T):
end proc:
Также в
Maple есть подпакет
ChainTools пакета
RegularChains. А там есть функции
SubresultantChain(p, q, x, R) и
SubresultantOfIndex(i, src, R). Последняя функция вычисляет субрезультантные многочлены порядка i.