首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Matlab ode45.如何在调用它的时候改变它内部的参数?

Matlab ode45.如何在调用它的时候改变它内部的参数?
EN

Stack Overflow用户
提问于 2011-10-06 20:40:55
回答 1查看 13.1K关注 0票数 6

我是Matlab的新手。我希望你能帮助我。我必须解决一个使用ODE45函数的ODE系统。这是描述我的等式的函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function dNdt = rateEquations(t, y)
  %populations of corresponding state
  Ng = y(1);
  Ns = y(2);
  Nt =  y(3);

  %All constants used are dropped for the sake of easy reading.

请注意参数F。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  %rate equations
  dNs = s0 * Ng * F - Ns/ t_S1;
  dNt = Ns / t_ISC - Nt / t_T1;
  dNg = -dNt - dNs;

  dNdt = [dNg; dNs; dNt];

end

然后,在我的脚本.m-file中,我调用了'for loop‘中的ode45函数。在每次迭代中,我必须更改参数F并将其传递给我的'rateEquations‘函数。但我不知道如何去实现它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for T = Tmin: dt : Tmax
  %initial conditions
  initialConditions = [N0 0 0];
  timeSpan = [T T+dt];

在调用ODE45之前,F将被更改。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  [t,N] = ode45('rateEquations', timeSpan, initialConditions)

以此类推。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
end

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-06 20:46:35

您希望将F作为派生函数的参数,并将正确的匿名函数传递给ode45

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[t,N] = ode45(@(t,y) rateEquations(t,y,F), timeSpan, initialConditions)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7680224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文