我正在尝试使用 Julia 中的 ModelingToolkit.jl 求解二阶微分方程:
using ModelingToolkit
using DifferentialEquations: solve
using Plots: plot
@variables s ρ(s) Dρ(s)
@parameters N,M,Λ
D = Differential(s)
ω = sqrt(N - 1)*N/(N*(4*N*s^2 - 4*N*s + N - 4*s^2 + 4*s))
eqn = D(D(ρ)) ~ -4*ω*ρ
@named eqnODE = ODESystem([eqn],s)
根据我是否跑步,我似乎得到了非常不同的答案
sol1 = solve(ODEProblem(eqnODE, [ρ => 0.5, D(ρ) => 0], (0.0,1.0), [N => 10000]))
或者
lowered_eqnODE = ode_order_lowering(eqnODE)
sol2 = solve(ODEProblem(lowered_eqnODE, [ρ => 0.5, D(ρ) => 0], (0.0,1.0), [N => 10000]))
这怎么可能?我的第一个想法是我搞砸了参数,但我想我在这里做的一样:https ://mtk.sciml.ai/dev/tutorials/higher_order/
谢谢你的帮助!