Create a companion matrix.

Create the companion matrix [R40] associated with the polynomial whose coefficients are given in a.

Parameters :

a : array_like

1-D array of polynomial coefficients. The length of a must be at least two, and a[0] must not be zero.

Returns :

c : ndarray

A square array of shape (n-1, n-1), where n is the length of a. The first row of c is -a[1:]/a[0], and the first sub-diagonal is all ones. The data-type of the array is the same as the data-type of 1.0*a[0].

Raises :

ValueError :

If any of the following are true: a) a.ndim != 1; b) a.size < 2; c) a[0] == 0.


New in version 0.8.0.


[R40](1, 2) R. A. Horn & C. R. Johnson, Matrix Analysis. Cambridge, UK: Cambridge University Press, 1999, pp. 146-7.


>>> from scipy.linalg import companion
>>> companion([1, -10, 31, -30])
array([[ 10., -31.,  30.],
       [  1.,   0.,   0.],
       [  0.,   1.,   0.]])

Previous topic


Next topic