scipy.linalg.
fiedler_companion#
- scipy.linalg.fiedler_companion(a)[原始碼]#
返回 Fiedler 伴生矩陣
給定多項式係數陣列
a
,此函數會形成一個具有特殊結構的五對角矩陣,其特徵值與a
的根一致。- 參數:
- a(…, N) 類陣列
多項式係數的一維陣列,以降序排列,且前導係數非零。對於
N < 2
,將返回一個空陣列。N 維陣列被視為批次處理:沿最後一個軸的每個切片都是多項式係數的一維陣列。
- 返回:
- c(…, N-1, N-1) ndarray
結果伴生矩陣。對於批次輸入,沿輸出最後兩個維度的每個形狀為
(N-1, N-1)
的切片,對應於沿輸入最後一個維度的形狀為(N,)
的切片。
另請參閱
注意
與
companion
類似,輸入最後一個軸的每個前導係數都應為非零。如果前導係數不是 1,則在陣列生成之前會重新縮放其他係數。為了避免數值問題,最好提供一個首一多項式。在 1.3.0 版本中新增。
參考文獻
[1]M. Fiedler, “ A note on companion matrices”, Linear Algebra and its Applications, 2003, DOI:10.1016/S0024-3795(03)00548-2
範例
>>> import numpy as np >>> 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])