Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Compute the Popov decomposition of a matrix of univariate polynomials
ResourceFunction["PopovDecomposition"][mat] computes the Popov decomposition of the matrix mat consisting of univariate polynomials. | |
ResourceFunction["PopovDecomposition"][mat,x] gives the Popov decomposition of the matrix mat regarded as univariate polynomials in the variable x. |
Compute the Popov decomposition for a 3×3 matrix of quartic polynomials:
In[1]:= | ![]() |
Out[1]= | ![]() |
Check that the determinant is a constant:
In[2]:= | ![]() |
Out[2]= | ![]() |
Check that the necessary matrix identity is satisfied:
In[3]:= | ![]() |
Out[3]= | ![]() |
Check that the maximal degrees in each row move successively to the right:
In[4]:= | ![]() |
Out[4]= | ![]() |
Create a tool to generate a 3×3 matrix of quartic polynomials:
In[5]:= | ![]() |
If the input matrix does not have full row rank, there will be zero rows at the bottom of the Popov form (as many as the row rank deficiency):
In[6]:= | ![]() |
Out[3]= | ![]() |
Generate a 3×3 matrix of quartic polynomials:
In[7]:= | ![]() |
Compute the Popov decomposition over the integers modulo a prime:
In[8]:= | ![]() |
Out[8]= | ![]() |
Check the necessary matrix identity:
In[9]:= | ![]() |
Out[9]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License