Проблема с дифференциальными уравнениями.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)

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

У кого-нибудь более опытного есть идея, что я могу делать неправильно?

1 3

1 ответ:

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