residue#
- scipy.signal.residue(b, a, tol=0.001, rtype='avg')[原始碼]#
計算 b(s) / a(s) 的部分分式展開式。
如果 M 是分子 b 的階數,而 N 是分母 a 的階數
b(s) b[0] s**(M) + b[1] s**(M-1) + ... + b[M] H(s) = ------ = ------------------------------------------ a(s) a[0] s**(N) + a[1] s**(N-1) + ... + a[N]
則部分分式展開式 H(s) 定義為
r[0] r[1] r[-1] = -------- + -------- + ... + --------- + k(s) (s-p[0]) (s-p[1]) (s-p[-1])
如果存在任何重複根(彼此之間的距離小於 tol),則 H(s) 具有如下形式的項
r[i] r[i+1] r[i+n-1] -------- + ----------- + ... + ----------- (s-p[i]) (s-p[i])**2 (s-p[i])**n
此函數用於 s 或 z 正冪的多項式,例如控制工程中的類比濾波器或數位濾波器。對於 z 的負冪(DSP 中數位濾波器的典型情況),請使用
residuez
。請參閱「Notes」章節以瞭解關於演算法的詳細資訊。
- Parameters:
- barray_like
分子多項式係數。
- aarray_like
分母多項式係數。
- tolfloat, optional
兩個根在它們之間距離方面被視為相等的容忍度。預設值為 1e-3。請參閱
unique_roots
以瞭解更多詳細資訊。- rtype{‘avg’, ‘min’, ‘max’}, optional
用於計算代表一組相同根的方法。預設值為 ‘avg’。請參閱
unique_roots
以瞭解更多詳細資訊。
- Returns:
- rndarray
對應於極點的殘值。對於重複極點,殘值會排序為對應於依冪次分數升序排列。
- pndarray
依大小升序排列的極點。
- kndarray
直接多項式項的係數。
See also
Notes
「通過減法縮減」演算法用於計算 — [1] 中的方法 6。
部分分式展開式的形式取決於精確數學意義上的極點重數。但是,在數值計算中,無法精確確定多項式根的重數。因此,您應該將給定 tol 的
residue
結果視為針對由計算出的極點組成的分母計算的部分分式展開式,並具有經驗確定的重數。tol 的選擇可能會在存在接近的極點時大幅改變結果。References
[1]J. F. Mahoney, B. D. Sivazlian, “Partial fractions expansion: a review of computational methodology and efficiency”, Journal of Computational and Applied Mathematics, Vol. 9, 1983.