statsmodels.tsa.statespace.tools.is_invertible

statsmodels.tsa.statespace.tools.is_invertible(polynomial, threshold=0.9999999999)[source]

确定一个多项式是否可逆。

要求多项式的所有根都位于单位圆内。

Parameters:
polynomialarray_like or tuple, list

多项式的系数,按升序排列。 例如,polynomial=[1, -0.5] 对应于多项式 \(1 - 0.5x\),其根为 \(2\)。如果它是一个矩阵 多项式(在这种情况下,系数是系数矩阵), 应传递一个矩阵的元组或列表。

thresholdnumber

允许的阈值,使得 is_invertible 返回 True。默认值为 1。

另请参阅

companion_matrix

注释

如果提供的系数是标量 \((c_0, c_1, \dots, c_n)\), 那么对应的多项式是 \(c_0 + c_1 L + \dots + c_n L^n\)

如果提供的系数是矩阵 \((C_0, C_1, \dots, C_n)\), 那么对应的多项式是 \(C_0 + C_1 L + \dots + C_n L^n\)

有三种等效的方法来确定由系数表示的多项式是否可逆:

第一种方法将多项式分解为:

\[\begin{split}C(L) & = c_0 + c_1 L + \dots + c_n L^n \\ & = constant (1 - \lambda_1 L) (1 - \lambda_2 L) \dots (1 - \lambda_n L)\end{split}\]

为了使 \(C(L)\) 可逆,必须每个因子 \((1 - \lambda_i L)\) 都可逆;条件是 \(|\lambda_i| < 1\),其中 \(\lambda_i\) 是多项式的根。

第二种方法将多项式分解为:

\[\begin{split}C(L) & = c_0 + c_1 L + \dots + c_n L^n \\ & = constant (L - \zeta_1) (L - \zeta_2) \dots (L - \zeta_3)\end{split}\]

条件现在是 \(|\zeta_i| > 1\),其中 \(\zeta_i\) 是系数反转的多项式的根,并且 \(\lambda_i = \frac{1}{\zeta_i}\)

最后,可以使用多项式的系数形成一个伴随矩阵。然后,该矩阵的特征值给出多项式的根。这最后一种方法是实际使用的方法。


Last update: Oct 16, 2024