微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

朱莉娅

如何解决朱莉娅

我是Julia编程的新手,我设法解决了一些一阶DDE(延迟微分方程)和ODE。现在,我需要解决一个二阶时滞微分方程,但是我没有找到相关的文档(我以前使用过DifferentialEquations.jl)。

方程(其中F是函数,τ是延迟):

Image of the equation

我该怎么做?


这是我使用给定信息的代码,看来系统处于静止状态是不正确的。我可能做错了事。

function bc_model(du,u,h,p,t)
 
    # [ u'(t),u''(t) ] = [ u[1],-u[1] + F(ud[0],u[0]) ] // off by one in julia A[0] -> A[1]
    γ,σ,Q = p
    ud = h(p,t-σ)[1]
    du = [u[2],+ Q^2*(γ/Q*tanh(ud)-u[1]) - u[2]]
 
end
 
 u0 = [0.1,0]
 h(p,t) = u0
 
 lags = [σ,0]
 tspan = (0.0,σ*100.0)
 alg = MethodofSteps(Tsit5())
 
p = (γ,Q,ω0)
prob = DDEProblem(bc_model,u0,tspan,p; constant_lags=lags)
sol = solve(prob,alg)
plot(sol)

---

代码实际上正在工作!似乎是我的归一化常数不一致。谢谢!

解决方法

您将获得维度2的状态空间,其中包含u = [u(t),u'(t)]。因此,右侧函数的返回向量为[u'(t),u''(t)]。然后,如果ud是延迟状态[u(t-τ),u'(t-τ)],则可以将右侧函数表示为

[ u'(t),u''(t) ] = [ u[1],-u[1] + F(ud[0],u[0]) ]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。