how to plot the equation
2 次查看(过去 30 天)
显示 更早的评论
x(0)=1;
y(0)=0
t=1:15;
for n=1:15
x(n+1)=(x(n-1)-y(n))/n+1;
y(n+1)=(x(n)+y(n)-t)/n+1
plot(t,x)
end
2 个评论
Image Analyst
2022-2-21
Yeah, I figured that, but what I meant by my answer below is you're supposed to do
x(1) = 1;
y(1) = 0;
采纳的回答
Image Analyst
2022-2-21
编辑:Image Analyst
2022-2-21
Indexing starts at 1, not 0. Also, check your formulas - they look weird.
For example in
y(n+1)=(x(n)+y(n)-t)/n+1
you need t(n), not just t which is the entire array.
y(n+1)=(x(n)+y(n)-t(n))/n+1
4 个评论
Image Analyst
2022-2-21
OK, so it's all working now that you're starting your vectors at index 1 instead of 0, and changed t to t(n)? If so, can you accept this answer because I pointed out the problems? If not, post your current code so we can continue to work on it. This is what I got. Let me know if it's the same as what you have.
x = zeros(1, 16);
y = zeros(1, 16);
x(1)=1;
% y(1)=0
t=1:15;
for n = 2: length(x) - 1
fprintf('n = %d.\n', n);
x(n+1) = (x(n-1)-y(n)) / n + 1; % Note only n is in the denominator, not (n+1)
y(n+1) = (x(n)+y(n)-t(n)) / n + 1;
end
plot(t, x(1:end-1), 'b.-', 'LineWidth', 2, 'MarkerSize', 30);
hold on;
plot(t, y(1:end-1), 'r.-', 'LineWidth', 2, 'MarkerSize', 30);
grid on;
xlabel('t', 'FontSize', 20);
ylabel('x or y', 'FontSize', 20);
title('x or y VS. t', 'FontSize', 20);
legend('x', 'y')
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!