颂歌解决者Matlab

时间:2017-10-03 12:44:00

标签: matlab solver ode

我正在尝试理解ode45的语法,我不明白为什么有时它会ode45(odefun,tspan,y0)和其他时间ode45(@odefun,tspan,y0)。我想在函数odefun前面理解@的含义。特别是,我不清楚以下语法:(它应该解决方程y' = 2 * t)

tspan = [0 5];
y0 = 0;
[t,y] = ode45(@(t,y) 2*t, tspan, y0); 

@(t,y)是否表示diff(t,y)?为什么@(t,y)和2 * t之间没有相同的符号, 这一切对我来说仍然很神秘...... 如果有人可以照亮我,那就太好了。 我非常感谢你, 最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

@odefun是引用函数odefun的旧方法或替代方法。

@(t,y) 2*t

是一个匿名函数或lambda表达式,逻辑上等同于

function dy = odefun(t,y)
    dy = 2*t
end