MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   如何在Matlab上存储ODE的所有解决方案以获取参数的多个值 (https://www.labfans.com/bbs/showthread.php?t=22347)

poster 2019-12-03 01:50

如何在Matlab上存储ODE的所有解决方案以获取参数的多个值
 
我想为参数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 我将不胜感激任何建议!



[url=https://stackoverflow.com/q/59144066]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 05:16

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.