Проблема с diffrentialEquations.jl

Я совсем новичок в Юлии, и в настоящее время я учусь, как решать дифференциальные уравнения с ним. Я пытался запустить простой готовый код Кристофера Ракауцкаса, но получил ошибку. Код можно найти здесь. Я также напишу это здесь:

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)

Я также попытался запустить другие подобные коды и даже удалил пакет diffrentialEquations.jl, а затем переустановил его, но ничего не изменилось.

Кто-нибудь более опытный, имеющий представление о том, что я могу делать неправильно?

1 ответ

Решение

Проблема в том, что сообщение в блоге появилось довольно давно. Или, по крайней мере, у DifrentialEquations 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

Но теперь, когда я знаю, что люди все еще смотрят этот старый пост, я обновил его синтаксис, чтобы он был правильным.

Другие вопросы по тегам