3

我对 Julia 很陌生,我目前正在学习如何用它来求解微分方程。我尝试运行 Christopher Rackauckas 的简单预制代码,但出现错误。代码可以在这里找到。我也写在这里:

using DifferentialEquations
alpha = 0.5 #Setting alpha to 1/2
f(y,t) = alpha*y
u0 = 1.5
prob = ODEProblem(f,u0)
timespan = [0,1] # Solve from time = 0 to time = 1
sol = solve(prob,timespan) # Solves the ODE
using Plots
plot(sol) # Plots the solution using Plots.jl

我得到的错误如下所示:

LoadError: MethodError: 没有匹配 DiffEqBase.ODEProblem{uType,tType,isinplace,FC;MM}(::#f, ::Float64) 的方法

我还尝试运行其他类似的代码,甚至删除了 DifferentialEquations.jl -package 然后重新安装它,但没有任何改变。

任何更有经验的人知道我可能做错了什么?

4

1 回答 1

4

问题是该博客文章来自很久以前。或者至少,DifferentialEquations 1.0 在这部分有一些重大变化。您应该改用本教程,它将此示例修复为最新版本。解决方案是:

using DifferentialEquations
alpha = 0.5 #Setting alpha to 1/2
f(y,t) = alpha*y
u0 = 1.5
tspan = (0.0,1.0) # Solve from time = 0 to time = 1
prob = ODEProblem(f,u0,tspan)
sol = solve(prob) # Solves the ODE
using Plots
plot(sol) # Plots the solution using Plots.jl

但是现在我知道人们还在看那篇旧帖子,我更新了它的语法以使其正确。

于 2017-05-10T08:18:53.650 回答