Solving difference equation with its initial conditions
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
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.
Réponse acceptée
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
Plus de réponses (1)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!