PolynomialTools
Hurwitz
decide whether a polynomial has all its zeros strictly in the left half plane
Calling Sequence
Parameters
Description
Examples
References
Hurwitz(p, z,'s','g')
p
-
polynomial with complex coefficients
z
variable of the polynomial p
's'
(optional) name
'g'
The Hurwitz(p, z) function determines whether the polynomial p⁡z has all its zeros strictly in the left half plane.
A polynomial is a Hurwitz polynomial if all its roots are in the left half plane.
The parameter p is a polynomial with complex coefficients. The polynomial may have symbolic parameters, which evalc and Hurwitz assume to be real. The paraconjugate p* of p is defined as the polynomial whose roots are the roots of p reflected across the imaginary axis.
The parameter 's', if specified, is a name to which the sequence of partial fractions of the Stieltjes continued fraction of p−p*p+p* will be assigned. The first element of the sequence returned in 's' is special. If it is of higher degree than 1 in z, p is not Hurwitz. If it is of the form b⁢z+a, where ℜ⁡a≠0orb<0, p is not Hurwitz, either. If each subsequent polynomial in the sequence returned is of the form b⁢z+a, where ℜ⁡a=0and0<b, then p is a Hurwitz polynomial.
This is useful if p has symbolic coefficients. You can decide the ranges of the coefficients that make p Hurwitz.
If the Hurwitz function can use the previous rules to determine that p is Hurwitz, it returns true. If it can decide that p is not Hurwitz, it returns false. Otherwise, it returns FAIL.
The parameter 'g', if specified, is a name to which the gcd of p and its paraconjugate p* will be assigned. The zeros of this gcd are precisely the zeros of p which are symmetrical under reflection across the imaginary axis.
If the gcd is 1 while the sequence of partial fractions is empty, the conditions for being a Hurwitz polynomial are trivially satisfied. A manual check is recommended, though a warning is returned only if infolevel[Hurwitz] >= 1.
with⁡PolynomialTools:
p1≔z2+z+1
Hurwitz⁡p1,z
true
p2≔3⁢z3+2⁢z2+z+c
p2≔3⁢z3+2⁢z2+c+z
Hurwitz⁡p2,z,s2,g2
FAIL
s2
3⁢z2,−4⁢z3⁢c−2,−3⁢z2+zc
g2
1
The elements of s2 are all positive if and only if 0<c<23, by inspection. Thus, you can use the information returned even when the direct call to Hurwitz fails.
Separate calls to Hurwitz in the cases c=0 and c=23 give nontrivial gcds between p2 and its paraconjugate. Thus, the stability criteria are satisfied only as above.
p3≔4⁢z4+z3+z2+c
Hurwitz⁡p3,z,s3,g3
s3
0,4⁢z,z,−zc,−z
Notice that the last term has coefficient −1. Thus, you can say unequivocally that p3 is not Hurwitz, for any value of c.
p4≔z5+5⁢z4+4⁢z3+3⁢z2+2⁢z+c
p4≔z5+5⁢z4+4⁢z3+3⁢z2+c+2⁢z
Hurwitz⁡p4,z,s4,g4
s4
z5,25⁢z17,289⁢z5⁢5⁢c+1,−5⁢c+12⁢z17⁢c2+48⁢c−2,−c2−48⁢c+2⁢z5⁢c+1⁢c
By inspecting s4, notice that p4 is Hurwitz only if −15<c, and c2+48⁢c<2, and 0<c. This can be simplified to the conditions 0<c<−24+17⁢2=0.04...
p5≔p2+I⁢d
p5≔3⁢z3+2⁢z2+c+z+I⁢d
evalc and the Hurwitz function assume that symbolic parameters have real values.
Hurwitz⁡p5,z,s5,g5
s5
3⁢z2,−4⁢z3⁢c−2−8⁢I⁢d3⁢c−22,−3⁢c−23⁢z2⁢9⁢c3−12⁢c2−8⁢d2+4⁢c+I⁢d⁢3⁢c−229⁢c3−12⁢c2−8⁢d2+4⁢c
The coefficients of s5 can be inspected according to rules, but it is a tedious process.
p6≔expand⁡x−1⁢x2+2⁢x−c
p6≔−c⁢x3+x4+c⁢x2−x3−2⁢c⁢x+2⁢x2+2⁢c−2⁢x
Hurwitz⁡p6,x,s6,g6
false
g6
x2+2
p7≔x+sqrt⁡2
p7≔x+2
Hurwitz⁡p7,x
p8≔x3+c⁢x2+c2−1⁢x+1
Hurwitz⁡p8,x,s8,g8
s8
xc,c2⁢xc3−c−1,c2⁢x−x−xc
Examination of the above for real values of c is a way to determine whether the polynomial is Hurwitz.
p9≔expand⁡c⁢z2+1⁢z+1⁢z2+2⁢z+2
p9≔c⁢z5+3⁢c⁢z4+4⁢c⁢z3+2⁢c⁢z2+z3+3⁢z2+4⁢z+2
Hurwitz⁡p9,z,s9,g9
s9
g9
c⁢z2+1
In the previous example, c might be zero. Thus, Hurwitz cannot determine whether all the zeros are in the left half plane.
Levinson, Norman, and Redheffer, Raymond M. Complex Variables. Holden-Day, 1970.
See Also
evalc
expand
fsolve
Hurwitz Zeta Function
sqrt
subs
Download Help Document