Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Subscript indices must either be real positive integers or logicals.

1 回表示 (過去 30 日間)
Harry Price
Harry Price 2017 年 12 月 1 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I am trying to run eulers method for a first order differential equation. However recieve the above error when I try to plot the results.
See my code blow:
x=zeros(400,1);
y=zeros(400,1);
x(1)=2;
y(1)=4;
for n=1:400
x(n+1)=x(n)+0.005;
y(n+1)=x(n)+0.005.*(((y).^2)+(7*y)+2)/(3*x((y).^2)+((1-x)*(3*((y)^2)+7)));
end
plot(x,y)
title('eulers')
grid on
What am I doing wrong?

回答 (1 件)

KL
KL 2017 年 12 月 1 日
when you write,
y(n+1)=x(n)+0.005.*(((y).^2)+(7*y)+2)/(3*x((y).^2)+((1-x)*(3*((y)^2)+7)));
^
you're trying to access the zeroth element of x (since y is vector with all zeroes except its first element). You need to rewrite that equation. How does the equation in your book look like?
Anyway, if you want to create a vector with 0.005 increaments use linspace or colon(:) operator.
  2 件のコメント
Harry Price
Harry Price 2017 年 12 月 1 日
This is my equation on paper.
KL
KL 2017 年 12 月 1 日
if you have access to symbolic math toolbox, it's a lot easier. Go through the example here: https://www.mathworks.com/help/symbolic/solve-a-single-differential-equation.html#f1-7555

この質問は閉じられています。

Community Treasure Hunt

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

Start Hunting!

Translated by