construct the Ruppert matrix of a polynomial
RuppertMatrix(F, vars, rtableoptions=[options])
set or list of variables
(optional) options that are passed to the Matrix constructor
The RuppertMatrix command returns a Matrix derived from the coefficients of F which counts the factors of F over the complex numbers with the dimension of its null space (its rank deficiency).
The Ruppert matrix is defined, for a bivariate polynomial f over x,y, as the matrix of the linear system resulting from the partial differential equation ∂∂xhyf=∂∂ygf where g and hy are unknown polynomials of the same degree as f in each variable except degree⁡g,x≤degree⁡f,x−1 and degree⁡hy,y≤degree⁡f,y−1
The multivariate version of the Ruppert matrix is defined similarly, just adding an unknown polynomial hxi and one equation for each additional variable xi.
In this implementation the unknowns are additionally constrained so that they have total degree less than or equal to f. This results in a smaller matrix with the same property on its rank.
This routine is called by Factor.
Polynomial is irreducible, so the rank deficiency is one
rtable options are passed to the matrix constructor; the datatype option is most useful for approximate factorization
R2≔0000100000…0000010000…2000000200…0000000000…0000−201000…0200000020…0000000000…0000100000…0000000002…0000−100000…⋮⋮⋮⋮⋮⋮⋮⋮⋮⋮168 × 48 Matrix
Ruppert, W.M. "Reducibility of polynomials f(x,y) modulo p." Journal of Number Theory Vol. 77(1), (1999): 62-70.
Gao, S. "Factoring multivariate polynomials via partial differential equations." Mathematics of Computation Vol. 72(242), (2002): 801-822.
Kaltofen, E.; May, J.; Yang, Z.; and Zhi, L. "Approximate factorization of multivariate polynomials using singular value decomposition." Journal of Symbolic Computation Vol. 43(5), (2008): 359-376.
The PolynomialTools:-Approximate:-RuppertMatrix command was introduced in Maple 2021.
For more information on Maple 2021 changes, see Updates in Maple 2021.
Download Help Document
What kind of issue would you like to report? (Optional)