在 MATLAB 中,我正在尝试构建一个循环,该循环在每次迭代中使用不同的初始条件调用 dsolve。为此,我构建了这个循环:
y0 = -2:0.5:2;
y1 = -2:2:2;
syms y(t)
for i = y1
for k = y0
y(t) = dsolve(diff(y,2) + diff(y) - 2*y == t^2 - 4*t + 3,...
['y(0) == ',num2str(k)],['Dy(0) == ',num2str(i)])
end
end
它通过第一次迭代工作,但第二次失败并出现以下错误:
Error using mupadengine/feval (line 157)
MuPAD error: Error: Invalid equation or initial condition. [ode::splitSys]
Error in dsolve>mupadDsolve (line 325)
T = feval(symengine,'symobj::dsolve',sys,x,options);
Error in dsolve (line 186)
sol = mupadDsolve(args, options);
Error in MWE (line 9)
y(t) = dsolve(diff(y,2) + diff(y) - 2*y == t^2 - 4*t + 3,...
对于我尝试过的所有初始条件,该命令都在循环之外工作。在循环内部,第一次迭代有效,下一次总是失败。我选择哪个似乎并不重要。
这是怎么回事?