julia/微分方程微分方程的正确定义

julia/微分方程微分方程的正确定义,julia,differential-equations,Julia,Differential Equations,我有两种代码变体来解决ODE系统y'=a*y+b。此选项不起作用(它运行但给出错误的结果,即返回初始数据u0作为常量解决方案): 但是,如果我从RHSfun中删除参数du,它就会工作,这似乎与文档相反(我之前已经解决了使用du参数定义的ODE) 我不是在问其他写问题的方法(我知道有几个工作版本),而是想知道为什么上面的方法不起作用。我以前用du参数解决过ODE,因为大多数教程都这么说。如果使用就地表单,则必须确保正在修改du数组,如: function RHSfun(du,u,p,t)

我有两种代码变体来解决ODE系统y'=a*y+b。此选项不起作用(它运行但给出错误的结果,即返回初始数据u0作为常量解决方案):

但是,如果我从RHSfun中删除参数du,它就会工作,这似乎与文档相反(我之前已经解决了使用du参数定义的ODE)


我不是在问其他写问题的方法(我知道有几个工作版本),而是想知道为什么上面的方法不起作用。我以前用du参数解决过ODE,因为大多数教程都这么说。

如果使用就地表单,则必须确保正在修改
du
数组,如:

function RHSfun(du,u,p,t)
    du .= p[1]*u + p[2]
    return nothing
end
或者更有效地使用
mul。请注意,您返回的内容并不重要。如果要使用分配表单,请不要指定变异参数:

function RHSfun(u,p,t)
    du = p[1]*u + p[2]
    return du
end
function RHSfun(u,p,t)
    du = p[1]*u + p[2]
    return du
end