Stable Polynomial

Author

Eric W. Weisstein
April 14, 2004

This notebook downloaded from http://mathworld.wolfram.com/notebooks/Algebra/StablePolynomial.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/StablePolynomial.html.

©2005 Wolfram Research, Inc. except for portions noted otherwise

Initialization

PolynomialFromCoefs[l_List,x_]:=Fold[x#1+#2&,0,l]

RandomPolynomial[n_,d_,x_]:=PolynomialFromCoefs[Table[Random[Integer,{-d,d}],{n}],x]

StableQ[p_,x_]:=Select[x/.{ToRules[Roots[p==0,x]]},Re[#]>=0&]=={}

Products of Stable Polynomials are Stable

l=Select[Table[RandomPolynomial[4,5,x],{100}],StableQ[#,x]&];
Length[l]

Show[Graphics[{PointSize[.03],Point[{Re[#],Im[#]}]&/@(x/.{ToRules[Roots[l[[1]]==0,x]]})}],Axes->True,AxesOrigin->{0,0},PlotRange->All]

StableQ[#,x]&/@(Times@@@KSubsets[l,2])

And@@%

c=CoefficientList[#,x]&/@l

Sign[c]

Equal/@%

Positive Coefficients but not Stable

StableQ[x^3+x^2+x+1,x]

Strelitz

RootSumPolynomial[r_List,x_]:=Module[{n=Length[r],i,j},RootReduce@Collect[Expand[Times@@((x-#)&/@Flatten[Table[r[[i]]+r[[j]],{i,n},{j,i+1,n}]])],x]
]

RootSumPolynomial[p_?PolynomialQ,x_]:=RootSumPolynomial[RootList[p,x],x]

RootList[p_,x_]:=x/.{ToRules[Roots[p==0,x,Cubics->False,Quartics->False]]}

RootSumInequalities[p_,x_]:=And@@(#>0&/@Flatten[CoefficientList[#,x]&/@{RootSumPolynomial[p,x],p}])

Order 2

RootSumPolynomial[x^2+a x+b,x]

RootSumInequalities[x^2+a x+b,x]

Resolve[Exists[x,(a|b|c|x)∈Reals,
RootSumInequalities[x^2+a x+b,x]
],{a,b,c}]

Order 3

Collect[RootSumPolynomial[x^3+a x^2+b x+c,x],x]

Table[SymmetricPolynomial[{a,b,c},i],{i,3}]

RootSumInequalities[x^3+a x^2+b x+c,x]

Resolve[Exists[x,(a|b|c|x)∈Reals,
RootSumInequalities[x^3+a x^2+b x+c,x]
],{a,b,c}]

4th Order

Collect[RootSumPolynomial[x^4+a x^3+b x^2+c x+d,x],x]

Resolve[Exists[x,(a|b|c|d|x)∈Reals,
RootSumInequalities[x^4+a x^3+b x^2+c x+d,x]
],{a,b,c,d}]

5th Order

Collect[RootSumPolynomial[x^5+a x^4+b x^3+c x^2+d x+e,x],x]

Resolve[Exists[x,(a|b|c|d|e|x)∈Reals,
RootSumInequalities[x^5+a x^4+b x^3+c x^2+d x+e,x]
],{a,b,c,d}]

6th Order

Collect[RootSumPolynomial[x^6+a x^5+b x^4+c x^3+d x^2+e x+f,x],x]