MATLAB: Trouble with difference equation

stem

clc; close all; clear all;
b=0.9; d=0.25;
nn=200;
t=[0:0.1:100];
for a=0:0.01:11
for n=1:nn
x(1)=0.4;
y(1)=2.9;
x(n+1)=x(n)+(d*((a*x(n))*(1-x(n))-((b*x(n)*y(n))/(x(n)+y(n)))));
y(n+1)=y(n)+(d*(((b*x(n)*y(n))/(x(n)+y(n)))-y(n)));
stem(y,x)
end
end
i have been trying to run this code in order to plot difference equation curves but this code isn't yielding any output. Can anyone suggest any other codes or point out my mistake?

Best Answer

  • 1) For which value of 'a' are you trying to plot the stem graph? If for all the values from a=0:0.01:11 then shift the plot outside first for loop like this:
    for a=0:0.01:11
    for n=1:nn
    x(1)=0.4;
    y(1)=2.9;
    x(n+1)=x(n)+(d*((a*x(n))*(1-x(n))-((b*x(n)*y(n))/(x(n)+y(n)))));
    y(n+1)=y(n)+(d*(((b*x(n)*y(n))/(x(n)+y(n)))-y(n)));
    end
    stem(y,x)
    hold on
    end
    If you want to plot for a particular value of 'a' then the first for loop makes no sense.
    2) what is the use of 't'?
    3) Use of close all, clear all etc are not recommended. See here.
  • Related Question