z變換解差分方程例題 Z變換解差分方程的思考

2021-10-17 06:43:36 字數 3593 閱讀 5511

問題描述

今日碰到一道差分方程的題目,如下 [

y(n + 2) - cfracy(n + 1) + cfracy(n) = 7x(n+2) -2 x(n + 1)

] 已知(x(n) = left(cfracright)^n u(n) , y(0) = 2, y(1) = 4​),求全響應。

一般求解這種題目的思路很清晰,首先根據特徵方程求出特徵根,從而得出零輸入解的形式,但是這個時候給的條件是(y(0))和(y(1)),而不是(y_(0))和(y_(1)),這意味著此時我們不能直接得出零輸入解的係數。這個時候我們可以求出系統的零狀態響應,然後可以得出(y_(0))和(y_(1)),然後根據(y_(0) = y(0) - y_(0)),(y_(1) = y(1) - y_(1)),然後得出零輸入響應的係數,然後將零輸入響應和零狀態響應相加得到全響應。

上面的思路很清晰,但是卻是有點麻煩,我們可以根據 [

begin

z &= z^2(y(z) - y(0) - y(1)z^) \

z &= z(y(z) - y(0))

end] 對上面同時進行(z)變換 [

z^2(y(z) - y(0) - y(1)z^) - cfracz(y(z) - y(0)) + cfracy(z) = 7z^2x(z) - 2zx(z)

] 上面的式子是我在答案(不一定正確的答案)上看到的,但是你沒有發現有沒有一絲絲的不對,怎麼 [

z = z^2x(z) neq z^2(x(z) - x(0) - x(1)z^)

] 那麼問題來了,哪種是對的呢?

我認為(z = z^2(x(z) - x(0) - x(1)z^))是對的。但是我們經常見到好像是(z = z^2x(z))的形式,這是怎麼回事,這是因為在課本上我們見到的都是(y(n - n_0), x(n - n_0))這種後向差分的形式,因為這時做(z)變換與(x(-n_0))有關,而(x(n) = 0 , n < 0),所以後面就沒有長長的"尾巴"。我們將上面的差分方程改寫為 [

y(n) - cfracy(n - 1) + cfracy(n - 2) = 7x(n) -2 x(n - 1)

] 然後對兩邊進行(z)變換得到 [

y(z) - cfracz^(y(z) + y(-1)z) + cfracz^(y(z) + y(-1)z + y(-2)z^2) = 7x(z) - 2z^x(z)

] 因為(x(-1) = x(-2) = 0),所以後面就沒有"尾巴",然後兩邊同時乘以(z^2)得到

z^2y(z) - cfracz(y(z) + y(-1)z) + cfrac(y(z) + y(-1)z + y(-2)z^2) = 7z^2x(z) - 2zx(z)

求證想法

為了驗證我的說法,這裡使用最前面提到的方法(分別求零輸入和零狀態)和上面我的想法求解,看看答案是否一致,如果一致的話,說明我的想法是正確的。

解法一:

由特徵方程 [

r^2 - cfracr + cfrac = (r - cfrac)(r - cfrac) = 0 rightarrow r = cfrac,cfrac

於是設零輸入響應的解為 [

y_(n) = c_1 left( cfrac right)^nu(n) + c_2 left( cfrac right)^nu(n)

由差分方程知 [

h(z) = cfrac)(z - cfrac)}

又 [x(z) = cfrac}

故 [y(z) = h(z)x(z) = cfrac)^2(z - cfrac)} = cfrac cfrac)^2} + cfraccfrac} - cfrac cfrac}

則 [y_(n) = 5nleft( cfrac right)^nu(n) + cfracleft( cfrac right)^nu(n) - cfracleft( cfrac right)^nu(n)

則 [begin

y_(0) &= c_1 + c_2 &= y(0) - y_(0) &= -5 \

y_(1) &= cfracc_1 + cfracc_2 &= y(1) - y_(1) & = -cfrac

end得到 [

c_1 = -cfrac \

c_2 = -cfrac

則 [y_(n) = -cfrac left( cfrac right)^nu(n) -cfrac left( cfrac right)^nu(n)

解法二: [

y(n + 2) - cfracy(n + 1) + cfracy(n) = 7x(n+2) -2 x(n + 1)

兩邊同時求(z)變換 [

z^2(y(z) - y(0) - y(1)z^) - cfracz(y(z) - y(0)) + cfracy(z) = 7z^2(x(z) - x(0) - x(1)z^) - 2z(x(z) - x(0))

得到 [

y(z) = cfrac y(0) - 7x(1) + 2x(0))z})(z - cfrac)} + h(z)x(z)

可知 [

y_(z) = cfrac y(0) - 7x(1) + 2x(0))z})(z - cfrac)} = cfracz})(z - cfrac)} = -cfraccfrac} - cfraccfrac}

所以 [

y_(n) = -cfrac left( cfrac right)^nu(n) -cfrac left( cfrac right)^nu(n)

同第一種解法一樣,所以我的想法是正確的(小聲bb答案錯了)。

總結其實根據題目給的初始條件不同,我們的解法也不相同,這裡總結一下如果給出不同的初始條件應當採取什麼解法(以二階為例):

給出(y(0), y(1)),就是我上面提到的情況,有兩種方法

分別求零輸入響應和零狀態響應,此時零輸入響應的係數需要求出零狀態響應後才能知道

直接進行(z)變換

給出(y_(0), y_(1)​),同樣也有兩種方法,不過與上面有所不同(實際上是簡單了)

分別求零輸入響應和零狀態響應,此時由於直接給出了(y_(0), y_(1)​),所以可以直接求出零輸入響應的係數

直接進行(z)變換,此時的形式與上面又有所不同,這時不是

z^2(y(z) - y(0) - y(1)z^) - cfracz(y(z) - y(0)) + cfracy(z) = 7z^2(x(z) - x(0) - x(1)z^) - 2z(x(z) - x(0))

而是 [

z^2(y(z) - y_(0) - y_(1)z^) - cfracz(y(z) - y_(0)) + cfracy(z) = 7z^2x(z) - 2zx(z)

給出(y(-2), y(-1)),同樣兩種解法,因為(y_(-2) = y_(-1) = 0),所以(y_(-2) = y(-2), y_(-1) = y(-1)),這時同第二種情況是一樣的了

分別求零輸入響應和零狀態響應,過程同第二種情況一樣

直接進行(z)變換,此時的形式為 [

y(z) - cfracz^(y(z) + y(-1)z) + cfracz^(y(z) + y(-1)z + y(-2)z^2) = 7x(z) - 2z^x(z)

給出(y(-1), y(0)​),這時我們可以將值代入方程迭代處(y(1)​)從而轉變為第一種情況,或者迭代出(y(-2)​)轉變為第三種情況。鑑於求解的複雜性,最好迭代出(y(-2)​)

變換解差分方程例題 常微分方程期末

chapter4higher order differential equations 高階微分方程 4.1preliminary theory linear equations 基本理論 線性方程 疊加原理 非齊次線性微分方程的解 對應齊次線性微分方程的通解 非齊次線性微分方程的特解 y yc y...

Z字型變換

題目描述 將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。式例 圖三解決這個問題有兩種思路,一種思路比較好想,這位老哥給出了解決過程有動畫解釋,比較好理解。鏈結位址 下面的是我的方法,以及源 我們可以看到,這其實是有規律的。第一行與最後一行同乙個行上面相隔的距離是相同的,為了更...

Z字元變換

維護乙個長度為numrows的陣列 param s param numrows return var convert function s,numrows let ans for const row of rows return ans 輸入 leetcodeishiring 規則 l c i r ...