我有一个这种形式的 ODE 系统;
Yi=2*Yi*(Y(i-1)-Y(i+1))-Yi; i=1,2,...n-1;
请注意,带有 Y 的 i、i-1 和 i+2 不是索引;而是下标,因为我无法在此处键入下标。
Y(i-1) is known for only Yi(i=1) and
Y(i+1) is known for only Yi(i=n-1)
Initial conditions: Yi(0)=0; for i=1,2,...n-1;
我尝试了以下代码,但返回错误:
%%Y0 and Yn are known
for i=1:n-1
if i==1
Yt=Y(i+1);
Y=dsolve('DY=2*Y*(Y0-Yt)-Y','Y(0)=0');
elseif i==n-1
Yt1=Y(i-1);
Y=dsolve('DY=2*Y*(Yt1-Yn)-Y','Y(0)=0');
else
Yt1=Y(i-1);
Yt=Y(i+1);
Y=dsolve('DY=2*Y*(Yt1-Yt)-Y','Y(0)=0')
end
end
以下错误显示:错误使用 ==> mupadmex MuPAD 命令中的错误:索引超出矩阵尺寸。
==> sym.sym>sym.subsref 中的错误在 1381 B = mupadmex('symobj::subsref',As,inds{:});
==> testerode 在 14 Yt=Y(i+1) 时出错;
有没有办法使用matlab或simulink解决这个问题?谢谢