Determine stability of lag operator polynomial
[
indicator
,eigenvalues
]
= isStable(A
)
[
takes a lag operator
polynomial object indicator
,eigenvalues
]
= isStable(A
)A
and checks if it is stable.
The stability condition requires that the magnitudes of all roots
of the characteristic polynomial are less than 1 to within a small
numerical tolerance.
|
Lag operator polynomial object, as produced by |
|
Boolean value for the stability test. |
|
Eigenvalues of the characteristic polynomial associated with A(L).
The length of |
Zero-degree polynomials are always stable.
For polynomials of degree greater than zero, the presence
of NaN-valued coefficients returns a false
stability
indicator and vector of NaN
s in eigenvalues
.
When testing for stability, the comparison incorporates
a small numerical tolerance. The indicator is true
when
the magnitudes of all eigenvalues are less than 1-10*eps
,
where eps
is machine precision. Users who wish
to incorporate their own tolerance (including 0
)
may simply ignore indicator
and determine
stability as follows:
[~,eigenvalues] = isStable(A); indicator = all(abs(eigenvalues) < (1-tol));
for some small, nonnegative tolerance tol
.
[1] Hamilton, J. D. Time Series Analysis. Princeton, NJ: Princeton University Press, 1994.