Julia 如何在Differential Equations.jl中使用新的初始化方案?

Julia 如何在Differential Equations.jl中使用新的初始化方案?,julia,differential-equations,differentialequations.jl,Julia,Differential Equations,Differentialequations.jl,我正在尝试使用Differential Equations.jl的新初始化方案选项 但我不知道如何使用新方法 using DifferentialEquations import DifferentialEquations: ShampineCollocationInit using Sundials using Plots function f(out,du,u,p,t) out[1] = - 0.04u[1] + 1e4*u[2]*u[3] - du[1]

我正在尝试使用Differential Equations.jl的新初始化方案选项

但我不知道如何使用新方法

using DifferentialEquations
import DifferentialEquations: ShampineCollocationInit
using Sundials
using Plots

function f(out,du,u,p,t)
  out[1] = - 0.04u[1]              + 1e4*u[2]*u[3] - du[1]
  out[2] = + 0.04u[1] - 3e7*u[2]^2 - 1e4*u[2]*u[3] - du[2]
  out[3] = u[1] + u[2] + u[3] - 1.0
end

u₀ = [1.0, 0, 0]
du₀ = [-0.04, 0.04, 0.0]
tspan = (0.0,100000.0)

differential_vars = [true,true,false]
prob = DAEProblem(f,du₀,u₀,tspan,differential_vars=differential_vars)

sol = solve(prob,IDA(initializealg = ShampineCollocationInit))

plot(sol, xscale=:log10, tspan=(1e-6, 1e5), layout=(3,1))
上一个示例返回以下错误:

WARNING: could not import DifferentialEquations.ShampineCollocationInit into Main
LoadError: UndefVarError: ShampineCollocationInit not defined
Stacktrace:
 [1] top-level scope at /home/Documents/test.jl:19
in expression starting at /home/Documents/test.jl:19

我做错了什么?

这些初始化方案仅适用于OrdinaryDiffiq算法,而IDA(sundails.jl)的初始化在中定义,这可能在不久的将来发生变化(当然会有一个弃用警告)随着它变得越来越同质化。

它们不适用于像
IDA
这样的外部方法,因为这些外部方法在内部使用自己的初始化方法。它们适用于基于Julia的方法(在OrdinaryDiffiq.jl部分中有文档记录),并像
sol=solve(prob,DABDF2(),initializealg=initializealg=shampineconsolutioninit())
那样执行。由于这是全新的,更多的文档即将发布。谢谢!我尝试了sol=solve(prob,DABDF2(),initializealg=shampineconsolutioninit()),但仍然得到错误:Error:LoadError:UndefVarError:shampineconsolutioninit未定义Stacktrace:[1]顶级作用域位于/home/anna/Documents/MASTER_ARBEIT/test。jl:18在表达式中从/home/anna/Documents/MASTER_ARBEIT/test开始。jl:18我的版本是:v“6.11.0”IIRC,这是v6.12版本的一个功能。您可能需要更新。0.04u[1]in out[1],out[2]中缺少的乘法符号是关键语法还是有效语法?@LutzLehmann缺少的乘法符号很好!