Solving difference equation with its initial conditions

12 ビュー (過去 30 日間)
Ben Le
Ben Le 2017 年 2 月 19 日
編集済み: Ben Le 2017 年 2 月 21 日
Hi,
Consider a difference equation:
8*y[n] - 6*y[n-1] + 2*y[n-2] = 1
with initial conditions
y[0]= 0 and y[-1]=2
How can I determine its plot y(n) in Matlab? Thank you in advance for your help!
  2 件のコメント
John D'Errico
John D'Errico 2017 年 2 月 19 日
Surely you can use a loop? Why not make an effort? You have the first two values, so a simple loop will suffice.
More importantly, you need to spend some time learning MATLAB. Read the getting started tutorials. It is apparent that you don't know how to even use indexing in MATLAB, nor how to use a for loop.
You will need to recognize that MATLAB does NOT allow zero or negative indices.
Walter Roberson
Walter Roberson 2017 年 2 月 19 日
I would call this a recurrence equation, not a difference equation.

サインインしてコメントする。

採用された回答

Jan
Jan 2017 年 2 月 21 日
編集済み: Jan 2017 年 2 月 21 日
Resort the terms:
8*y[n] - 6*y[n-1] + 2*y[n-2] = 1
y[n] = (1 + 6*y[n-1] - 2*y[n-2]) / 8
or in Matlab:
y(n) = (1 + 6*y(n-1) - 2*y(n-2)) / 8;
Now the indices cannot start at -1, because in Matlab indices are greater than 0. This can be done by a simple translation:
y = zeros(1, 100); % Pre-allocate
y(1:2) = [2, 0];
for k = 3:100
y(k) = (1 + 6*y(k-1) - 2*y(k-2)) / 8;
end
Now you get the y[i] by y(i+2).
  1 件のコメント
Ben Le
Ben Le 2017 年 2 月 21 日
編集済み: Ben Le 2017 年 2 月 21 日
Thank you so much, Jan!!!!

サインインしてコメントする。

その他の回答 (1 件)

Sindhuja Parimalarangan
Sindhuja Parimalarangan 2017 年 2 月 21 日
This link discusses solving recurrence equations using MATLAB. The discrete solution for "y" can be plotted using the stem function.

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by