2015-08-16 3 views
0

Мне дано уравнение рекурсии: X (n) = A X (n-1)/1 + B X (n-1). У меня возникли проблемы с построением этого решения в MATLAB 2014b, который возвращает фигуру, которая отображает несколько кривых, которые варьируются от O: 10 на одном графике. Это то, что я до сих пор с точки зрения обеспечения диапазона в виде у:MATLAB два для петель для диапазона и рекуррентное уравнение

function questions1() 
N = 100; %Xn in the form of n 
X = zeros (N,1); 
X(1) = 0; 
A = 2; 
B = 1; 

for y = 0:10; %this is the range from 0:10 to plot curves 
    for n = 2:N; 
      X(n) = A*X(n-1)/1+B*X(n-1); %this is the recurrence equation 
    end 
end 

hold on; 
plot(X); 
hold off; 

ответ

1

Обратите внимание, что

X(0)=0 
x(1)=a*x(0)/1+b*x(0)=a*0+b*0=0 
x(2)=a*x(1)+b*x(1)=a*0+b*0=0 
.. 
∀n, x(n)=0 

Так что ваш рекурсивный уравнение довольно плохо .. А вы заменяете х (п) на каждой итерации у-, здесь ошибка:

function question1() 
N = 100; %Xn in the form of n 
X = zeros(N,1); 
X(1) = 0; 
A = 2; 
B = 1; 
hold on; 
for y = 0:10; %this is the range from 0:10 to plot curves 
    for n = 2:N; 
     X(n) = A*X(n-1)/1+B*X(n-1); %this is the recurrence equation 
    end 
    plot(X); 
end 
hold off; 
+0

Привет, я попробовал то, что вы сделали, и это только построение на кривой вместо нескольких кривых, которые варьируются от 0:10. Должен ли я изменить цикл for для y? –

+0

@python_learner рисует одну кривую, потому что во втором y-цикле вы не используете предыдущие значения из X, поэтому в основном вы вычисляете один и тот же массив в каждом цикле (и печатаете то же самое), вы можете сделать что-то вроде. . if y == 1 && n == 3: вместо этого использовать другое значение X (n-1) – ppizarror

Смежные вопросы