Solving difference equation with its initial conditions

15 vues (au cours des 30 derniers jours)
Ben Le
Ben Le le 19 Fév 2017
Modifié(e) : Ben Le le 21 Fév 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 commentaires
John D'Errico
John D'Errico le 19 Fév 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 le 19 Fév 2017
I would call this a recurrence equation, not a difference equation.

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 21 Fév 2017
Modifié(e) : Jan le 21 Fév 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).
  1 commentaire
Ben Le
Ben Le le 21 Fév 2017
Modifié(e) : Ben Le le 21 Fév 2017
Thank you so much, Jan!!!!

Connectez-vous pour commenter.

Plus de réponses (1)

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

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by