我在计算物理课上学习ode45。我有点困惑的一件事是匿名功能。它是什么?我一直在寻找,但我似乎找不到任何东西。
答案 0 :(得分:3)
注意:这不是技术答案,这来自我使用ode45
的经验。希望你发现它很有用,它可以回答你的问题。如果有人想纠正我错的任何错误或细节,请做。
使用Matlab ode求解器时,必须指定导数函数,该函数将自变量(例如,时间)和因变量(例如,位置,速度等)作为输入。有几种方法可以做到这一点。
您可以创建一个函数function dydt=derivative(t,y)
,用于评估y
和t
处的衍生物,您可以从其他脚本调用该函数。如果你要从许多不同的m文件中解决相同的ode,这很有用。
另一方面,如果你只想从m-file解决你的问题,那么就不需要为一个ode创建一个全新的函数,所以你可以使用匿名函数。你有两个选择。您可以创建dydt=@(t,y) x+t
之类的函数,然后在致电ode45
时使用ode45(dydt,tspan,y0)
或在函数调用中定义ode:ode45(@(t,y) dydt,tspan,y0)
。
如果解决小的一次性问题,我通常将我的ode定义为像dydt=@(t,y) ...
这样的匿名函数。如果我正在开展一个更大的项目,我会为衍生工具编写一个函数。