Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我想为参数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 我将不胜感激任何建议! 更多&回答... |
![]() |
![]() |