next | previous | forward | backward | up | top | index | toc | packages | Macaulay2 website
DeterminantalRepresentations :: Determinantal representations of bivariate polynomials

Determinantal representations of bivariate polynomials

This page demonstrates how the method detRep computes a monic symmetric determinantal representation of a bivariate polynomial, if such a representation exists.

First, if the polynomial $f$ is homogeneous, then over CC, $f$ splits as a product of linear forms, and it admits a real symmetric determinantal representation if and only if all the linear factors are defined over RR. If this is the case, this method returns the diagonal matrix of linear factors of $f$, which is a symmetric determinantal representation:

i1 : R = RR[x,y]

o1 = R

o1 : PolynomialRing
i2 : detRep(x^2 - 3*y^2)
No determinantal representation
i3 : detRep(x^5+6*x^4*y-2*x^3*y^2-36*x^2*y^3+x*y^4+30*y^5)

o3 = {| x-1y 0    0    0    0   |}
      | 0    x-2y 0    0    0   |
      | 0    0    x+5y 0    0   |
      | 0    0    0    x+3y 0   |
      | 0    0    0    0    x+y |

o3 : List

Here it is assumed that the dehomogenization of $f$ (with respect to the first variable in its support) is monic - this can always be achieved by rescaling.

Now suppose $f$ is not homogeneous. For a symmetric determinantal representation $f = det(I + x_1A_1 + x_2A_2)$, by suitable conjugation one may assume $A_1 = D_1$ is a diagonal matrix. We also have that $D_1$ and the diagonal entries of $A_2$ can be found using the method bivariateDiagEntries. From this data, here are 2 approaches to numerically compute a determinantal representation of $f$, which can be specified by the option Strategy.

The first (and default) strategy is "DirectSystem", which computes the off-diagonal entries of $A_2$ directly as solutions to a $(d choose 2)\times (d choose 2)$ polynomial system.

The second strategy is "Orthogonal", which computes the orthogonal change-of-basis matrices $V$ such that $VA_2V^T = D_2$ is diagonal. Since $D_2$ can be found using bivariateDiagEntries, $A_2$ can be recovered from $V$.

Both strategies use numerical algebraic geometry, specifically a numericalIrreducibleDecomposition.

When working over an InexactFieldFamily like RR or CC, the option Tolerance can be used to specify the internal threshold for checking equality (any floating point number below the tolerance is treated as numerically zero). The option Software specifies the numerical algebraic geometry software used to perform a numerical irreducible decomposition: by default, the native routines provided by Macaulay2 are used, although other valid options include BERTINI and PHCPACK (if the user has these installed on their system).

i4 : R = RR[x1, x2]

o4 = R

o4 : PolynomialRing
i5 : f=(1/2)*(x1^4+x2^4-3*x1^2-3*x2^2+x1^2*x2^2)+1

         4       2  2       4        2        2
o5 = .5x1  + .5x1 x2  + .5x2  - 1.5x1  - 1.5x2  + 1

o5 : R
i6 : repList = detRep f;
-- warning: experimental computation over inexact field begun
--          results not reliable (one warning given per session)
i7 : #repList

o7 = 64
i8 : repList#0

o8 = | 1x1+1      -.442783x2  .691504x2    -.317837x2 |
     | -.442783x2 .707107x1+1 .224745x2    .691504x2  |
     | .691504x2  .224745x2   -.707107x1+1 .442783x2  |
     | -.317837x2 .691504x2   .442783x2    -1x1+1     |

             4       4
o8 : Matrix R  <--- R
i9 : all(repList, A -> clean(1e-10, f - det A) == 0)

o9 = true

Caveat

As this algorithm implements relatively brute-force algorithms, it may not terminate for non-homogeneous polynomials of large degree (e.g., degree >= 5).

See also