問題描述
今日碰到一道差分方程的題目,如下 [
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 ...