匿名函数在ode45中

时间:2014-03-02 20:33:26

标签: matlab anonymous-function ode

我在计算物理课上学习ode45。我有点困惑的一件事是匿名功能。它是什么?我一直在寻找,但我似乎找不到任何东西。

1 个答案:

答案 0 :(得分:3)

注意:这不是技术答案,这来自我使用ode45的经验。希望你发现它很有用,它可以回答你的问题。如果有人想纠正我错的任何错误或细节,请做。

使用Matlab ode求解器时,必须指定导数函数,该函数将自变量(例如,时间)和因变量(例如,位置,速度等)作为输入。有几种方法可以做到这一点。

您可以创建一个函数function dydt=derivative(t,y),用于评估yt处的衍生物,您可以从其他脚本调用该函数。如果你要从许多不同的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) ...这样的匿名函数。如果我正在开展一个更大的项目,我会为衍生工具编写一个函数。