【问题标题】:How to run ode45 for different angles如何针对不同角度运行 ode45
【发布时间】:2014-04-18 17:30:03
【问题描述】:

我正在尝试求解二阶微分方程。我已经设法在matlab中使用ode45解决了一个角度(函数中有一个取决于角度的因素)。在我的程序脚本中,也给出了与 ode45 的输入参数相同的角度。

我想要的是求解不同角度的方程。我使用 for 循环进行了测试,在该循环中,我只是针对给定的角度(作为输入参数)运行 ode45,这会绘制出应有的不同曲线。 但是我不确定它有多正确,因为我没有改变 ode45 求解的函数的角度。

所以问题是我如何为每个循环改变函数内部的角度。

【问题讨论】:

  • 您能分享一个有意义的代码示例吗?

标签: matlab ode differential-equations


【解决方案1】:

我相信您的问题确实与将参数传递给ode45 使用的函数有关。定义 ODE 右侧的函数应将角度作为输入参数,格式为

f(t,y,angle)

然后,您应该将此函数包装在 for 循环中的另一个函数中,该循环会随着每次迭代而改变角度。例如:

for angle=linspace(0,pi,10)
    odefun = @(t,y) f(t,y,angle);
    [t_out, y_out] = ode45(odefun,[t0, tf],y0);
    plot(t_out,y_out)
end

另请参阅 Mathworks 中关于参数化函数的 this document

【讨论】:

  • 谢谢!这给出了相似的情节,但略有不同,我猜这是诀窍。:)
猜你喜欢
  • 2021-08-04
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
  • 2020-11-17
  • 2019-10-12
相关资源
最近更新 更多