我想为参数p多个值求解ODE,最重要的是,保存所有不同值的所有解决方案。
到现在为止,我一直在使用它:
p = -200:+1:300; time = 0:.01:10; time = [0 10]; y0 = [0 0 0 0 0 0 0 0]; y = NaN(length(time),length(y0),length(p)); for i=1:length(p) [t,y(:,:,i)] = ode45(@myode,time,y0,[],p(i)); end 但是它有t预定义,这是不应该的。
我看到的一个问题是,我无法将所有时间t所有y值和p所有值存储在矩阵中,因为我无法在循环前使用变量t 。如果我改用可变time ,则将无法利用ODE45集成,该集成使用自己的dt间隔,具体取决于它将遇到的非线性。有什么方法可以让length(time)打开以增加其尺寸,以便在其中存储每次的y值?
p = -200:+1:300; time = [0 10]; y0 = [0 0 0 0 0 0 0 0]; for i=1:length(p) [t,y] = ode45(@myode,time,y0,[],p(i)); end 我将不胜感激任何建议!
更多&回答...