差分方程求解,leslie矩陣的快速冪。

2021-06-18 04:08:30 字數 695 閱讀 4427

k階差分方程以矩陣方式給出,形如

a =  [a0, a1, a2 ,... ak-1]

[ 1,    0,     0,...       0]

[0,     1,    0,...       0]

......

[0,0,0..1,   0]

樸素的求解這個矩陣的n次冪,bn = a*b0,時間複雜度高達o(k^3 logn)。

下面,將優化差分方程的時間複雜度為o(k^2 logn)。

cayley hamilton定理:

設其中 det 表行列式函式。凱萊-哈密頓定理斷言:

反覆利用上述關係,我們就能將a^k用a^0..a^(n-1)線性表示,且僅僅需要進行多項式的運算,時間複雜度大大降低。

bn = b0*(c_0*a^0 + c_1*a^1 +...+c_(k-1) * a^(k-1) ) = c_0 * b0 + c_1 * b1 + ... + c_(k-1) * b_(k-1)

因此,我們只需要預處理出b0..b_(2n-1),利用多項式乘法和快速冪得到a^n關於a^0..a^(k-1)的係數,就能求得bn,時間複雜度為多項式相乘+展開,總的複雜度為o(k^2logn)。

leslie矩陣形式與矩陣m類似,得到特徵多項式之後,只需要做多項式乘法,最後有初值條件得到人口分布既可。

對於非齊次線性差分方程,僅僅是特徵多項式不同,思路類似。

第二章 2 1 微分方程 差分方程求解(求解方法)

本節所要討論的主要為題就是如何確定系統的初始條件 我們知道訊號時從零正時刻之後加入系統的,因此我們需要求解零正時刻的系統初始條件。下面有乙個問題需要我們考慮,也就是訊號加入系統之後,系統的狀態會發生變化嗎?如圖所示,系統在0正時刻和0負時刻系統的輸入時不相同的,會有乙個跳變,通過這裡例子我們知道在訊...

微分方程,差分方程

自變數連續,一般自變數為時間t,因變數 函式值 連續,如 y t t 2 2t 1 如 y t 2y t 3y t 5 u t 3u t 其中y和u都是t的連續函式,y u 都是對自變數求導,即對t求導 自變數是離散的,一般自變數取k,所以因變數也是離散的,即k 0,1,2,3,n 差分方程一般有三...

python sympy求解矩陣方程的方法

sympy版本 1.2 假設求解矩陣方程 ax a 2x 其中求解之前對矩陣方程化簡為 a 2e x a 令b a 2e 使用qtconsole輸入下面程式進行求解 in 26 from sympy import in 27 from sympy.abc import in 28 a matrix ...