scipy.linalg.fiedler_companion¶
-
scipy.linalg.
fiedler_companion
(a)[source]¶ Returns a Fiedler companion matrix
Given a polynomial coefficient array
a
, this function forms a pentadiagonal matrix with a special structure whose eigenvalues coincides with the roots ofa
.- Parameters
- a(N,) array_like
1-D array of polynomial coefficients in descending order with a nonzero leading coefficient. For
N < 2
, an empty array is returned.
- Returns
- c(N-1, N-1) ndarray
Resulting companion matrix
See also
Notes
Similar to
companion
the leading coefficient should be nonzero. In case the leading coefficient is not 1., other coefficients are rescaled before the array generation. To avoid numerical issues, it is best to provide a monic polynomial.New in version 1.3.0.
References
- 1
M. Fiedler, ” A note on companion matrices”, Linear Algebra and its Applications, 2003, DOI:10.1016/S0024-3795(03)00548-2
Examples
>>> from scipy.linalg import fiedler_companion, eigvals >>> p = np.poly(np.arange(1, 9, 2)) # [1., -16., 86., -176., 105.] >>> fc = fiedler_companion(p) >>> fc array([[ 16., -86., 1., 0.], [ 1., 0., 0., 0.], [ 0., 176., 0., -105.], [ 0., 1., 0., 0.]]) >>> eigvals(fc) array([7.+0.j, 5.+0.j, 3.+0.j, 1.+0.j])