在 Julia 中切换 ODE 函数
Switching ODE functions in Julia
从 DifferentialEquations 包的文档,可以使用参数 as
在 ODE 函数集之间切换
function f(du,u,p,t)
if p==0
du[1] = 2u[1]
else
du[1] = - u[1]
end
du[2] = -u[2]
end
是否可以像
那样使用因变量(状态变量)代替参数p作为开关
function f(du,u,p,t)
if (u[2]<=0 && du[2]>0)
du[1] = 2u[1]
else
du[1] = - u[1]
end
du[2] = -u[2]
end
预先感谢您的帮助。
Is this possible to use dependent variable (state variable) instead of parameter p as the switch like
是的。它引入了不连续性,因此这不是最好的做法,但适应性会处理它。有时可以通过创建一个 ContinuousCallback 来提高性能,该回调将根查找到该值作为条件,但随后对 affect!
不执行任何操作。但是,是的,其中包含分支的代码很好。
从 DifferentialEquations 包的文档,可以使用参数 as
在 ODE 函数集之间切换function f(du,u,p,t)
if p==0
du[1] = 2u[1]
else
du[1] = - u[1]
end
du[2] = -u[2]
end
是否可以像
那样使用因变量(状态变量)代替参数p作为开关function f(du,u,p,t)
if (u[2]<=0 && du[2]>0)
du[1] = 2u[1]
else
du[1] = - u[1]
end
du[2] = -u[2]
end
预先感谢您的帮助。
Is this possible to use dependent variable (state variable) instead of parameter p as the switch like
是的。它引入了不连续性,因此这不是最好的做法,但适应性会处理它。有时可以通过创建一个 ContinuousCallback 来提高性能,该回调将根查找到该值作为条件,但随后对 affect!
不执行任何操作。但是,是的,其中包含分支的代码很好。