Filter löschen
Filter löschen

Solving difference equation with its initial conditions

17 Ansichten (letzte 30 Tage)
Ben Le
Ben Le am 19 Feb. 2017
Bearbeitet: Ben Le am 21 Feb. 2017
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 Kommentare
John D'Errico
John D'Errico am 19 Feb. 2017
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 am 19 Feb. 2017
I would call this a recurrence equation, not a difference equation.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jan
Jan am 21 Feb. 2017
Bearbeitet: Jan am 21 Feb. 2017
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).

Weitere Antworten (1)

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

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by