The Routh-Hurwitz stability criterion tells you how many roots of a characteristic polynomial lie in the right half-plane without solving for the roots directly. In control systems, that gives a fast test for whether a continuous-time system is asymptotically stable.

For a real-coefficient polynomial

p(s)=ansn+an1sn1++a1s+a0,p(s) = a_n s^n + a_{n-1} s^{n-1} + \cdots + a_1 s + a_0,

with an>0a_n > 0, build the Routh table and inspect its first column. After handling any special case such as a zero in the first column or a full row of zeros, the number of sign changes in that first column equals the number of roots with positive real part. If there are no sign changes, all roots lie in the open left half-plane.

What the Routh-Hurwitz criterion checks

In most control problems, stability means every characteristic root satisfies Re(s)<0\operatorname{Re}(s) < 0. That condition matters: the usual Routh-Hurwitz criterion is for continuous-time systems in the ss-plane, not discrete-time systems in the zz-plane.

The practical value is speed. You can decide stability from the coefficients alone, which is often easier than finding exact roots.

How to build the Routh table

Start by listing the coefficients in descending powers of ss. The first two rows alternate coefficients:

snanan2an4sn1an1an3an5\begin{array}{c|ccc} s^n & a_n & a_{n-2} & a_{n-4} \\ s^{n-1} & a_{n-1} & a_{n-3} & a_{n-5} \end{array}

Then compute the lower rows from the two rows above them. For a cubic polynomial,

p(s)=s3+a1s2+a2s+a3,p(s) = s^3 + a_1 s^2 + a_2 s + a_3,

the table is:

s31a2s2a1a3s1a1a2a3a10s0a30\begin{array}{c|cc} s^3 & 1 & a_2 \\ s^2 & a_1 & a_3 \\ s^1 & \dfrac{a_1 a_2 - a_3}{a_1} & 0 \\ s^0 & a_3 & 0 \end{array}

So for a cubic with positive leading coefficient, asymptotic stability requires

a1>0,a2>0,a3>0,a1a2>a3.a_1 > 0,\quad a_2 > 0,\quad a_3 > 0,\quad a_1 a_2 > a_3.

That last inequality is the part people often miss. Positive coefficients alone are not enough.

Worked example: positive coefficients but unstable

Consider

p(s)=s3+s2+2s+8.p(s) = s^3 + s^2 + 2s + 8.

All coefficients are positive, so it may look stable at first glance. The Routh table shows why that conclusion is wrong.

s312s218s1(1)(2)(1)(8)10s080\begin{array}{c|cc} s^3 & 1 & 2 \\ s^2 & 1 & 8 \\ s^1 & \dfrac{(1)(2) - (1)(8)}{1} & 0 \\ s^0 & 8 & 0 \end{array}

Simplifying the s1s^1 row gives

s312s218s160s080\begin{array}{c|cc} s^3 & 1 & 2 \\ s^2 & 1 & 8 \\ s^1 & -6 & 0 \\ s^0 & 8 & 0 \end{array}

Now look only at the first column:

1,1,6,8.1,\quad 1,\quad -6,\quad 8.

There are two sign changes, from 11 to 6-6 and from 6-6 to 88. So the polynomial has 22 roots in the right half-plane, which means the system is unstable.

This is the main intuition to keep: for degree 33 and higher, positive coefficients do not guarantee stability.

Common mistakes with the Routh-Hurwitz criterion

Checking only the coefficients

If all coefficients are positive, that does not automatically mean the system is stable. The worked example above is exactly the counterexample.

Forgetting the domain of the test

The usual Routh-Hurwitz criterion applies to continuous-time characteristic polynomials in ss. If you are studying a discrete-time system, you need a different test.

Ignoring special cases

A zero in the first column or a full row of zeros is a special case, not a normal stopping point. Those cases need an extra procedure, often involving a small perturbation or an auxiliary polynomial.

Not normalizing the polynomial

It is safest to write the polynomial in descending powers of ss and make the leading coefficient positive before building the table. Otherwise the sign test is easy to misread.

When the Routh-Hurwitz criterion is used

Use the Routh-Hurwitz criterion when a model leads to a characteristic polynomial and you need a stability answer quickly.

In control systems, it checks whether a closed-loop system is stable without explicitly computing poles. In circuit and mechanical models, it helps test whether parameter choices lead to decaying or growing responses. In design work, it is useful for finding parameter ranges that keep a system stable.

It is especially helpful when solving for the exact roots would be slow or unnecessary.

Try a similar stability test

Try the same process on

p(s)=s3+4s2+5s+2.p(s) = s^3 + 4s^2 + 5s + 2.

Build the first column and check whether any sign changes appear. Then compare your answer with the cubic condition a1a2>a3a_1 a_2 > a_3 to see that both methods agree.

Need help with a problem?

Upload your question and get a verified, step-by-step solution in seconds.

Open GPAI Solver →