Macaulay2 » Documentation
Packages » RealRoots :: HurwitzMatrix
next | previous | forward | backward | up | index | toc

HurwitzMatrix -- a specified principle submatrix of the Hurwitz matrix of a univariate polynomial

Synopsis

Description

This computes the $k\times k$ submatrix $H_{k}$ of the corresponding leading principal minor of the $n\times n$ Hurwitz matrix $H$ of a rational univariate polynomial f of degree n with positive leading coefficient and degree at least 1. The polynomial, however, is not necessarily from a univariate polynomial ring.

i1 : R = QQ[x]

o1 = R

o1 : PolynomialRing
i2 : f = 3*x^4 - 7*x^3 + 5*x - 7

       4     3
o2 = 3x  - 7x  + 5x - 7

o2 : R
i3 : HurwitzMatrix(f) 

o3 = | -7 5  0  0  |
     | 3  0  -7 0  |
     | 0  -7 5  0  |
     | 0  3  0  -7 |

              4       4
o3 : Matrix QQ  <-- QQ
i4 : HurwitzMatrix(f,4)

o4 = | -7 5  0  0  |
     | 3  0  -7 0  |
     | 0  -7 5  0  |
     | 0  3  0  -7 |

              4       4
o4 : Matrix QQ  <-- QQ
i5 : HurwitzMatrix(f,3)	      

o5 = | -7 5  0  |
     | 3  0  -7 |
     | 0  -7 5  |

              3       3
o5 : Matrix QQ  <-- QQ

We can also use multiple variables to represent unknown coefficients. Note that we create another ring S so that x and y are not considered variables in the same ring and so confuse the monomials $x$ or $y$ with $xy$.

i6 : S = R[y]

o6 = S

o6 : PolynomialRing
i7 : g = y^3 + 2*y^2 + y - x + 1

      3     2
o7 = y  + 2y  + y - x + 1

o7 : S
i8 : HurwitzMatrix(g,3)

o8 = | 2 -x+1 0    |
     | 1 1    0    |
     | 0 2    -x+1 |

             3      3
o8 : Matrix R  <-- R
i9 : HurwitzMatrix(g,2)

o9 = | 2 -x+1 |
     | 1 1    |

             2      2
o9 : Matrix R  <-- R
i10 : HurwitzMatrix(g,1)

o10 = | 2 |

              1      1
o10 : Matrix R  <-- R

See also

Ways to use HurwitzMatrix :

For the programmer

The object HurwitzMatrix is a method function.