#julia
#джулия
Вопрос:
Я пытаюсь решить типичный пример из пакета DifferentialEquation, согласно руководству с их страницы.
Вот пример:
using DifferentialEquations
using Plots
function lorenz(t,u, du)
du[1] = 10.0(u[2]-u[1])
du[2] = u[1]*(28.0-u[3]) - u[2]
du[3] = u[1]*u[2] - (8/3)*u[3]
end
u0 = [1.0;0.0;0.0]
tspan = (0.0,100.0)
prob = ODEProblem(lorenz,u0,tspan)
sol = solve(prob)
plot(sol,vars=(1,2,3))
Тогда я получаю:
ОШИБКА: ошибка загрузки: параметры были проиндексированы, но параметры есть
nothing
. Вероятно, вы забыли передать параметры в депроблему!
Что здесь не так? Заранее спасибо!
Комментарии:
1. Ваша функция должна возвращать производную
du
, но я не думаю, что ей нужно принимать ее в качестве аргумента.2. Вы пытались просто
plot(sol)
?
Ответ №1:
Вы могли бы попытаться последовать этому примеру, который основывается на том, что вы сделали:
using DifferentialEquations
using Plots
function lorenz(du,u,p,t)
du[1] = p[1]*(u[2]-u[1])
du[2] = u[1]*(p[2]-u[3]) - u[2]
du[3] = u[1]*u[2] - p[3]*u[3]
end
u0 = [1.0;0.0;0.0]
tspan = (0.0,100.0)
p = (10.0,28.0,8/3)
prob = ODEProblem(lorenz, u0, tspan,p)
sol = solve(prob)
xyzt = plot(sol, plotdensity=10000,lw=1.5)
xy = plot(sol, plotdensity=10000, vars=(1,2))
xz = plot(sol, plotdensity=10000, vars=(1,3))
yz = plot(sol, plotdensity=10000, vars=(2,3))
xyz = plot(sol, plotdensity=10000, vars=(1,2,3))
plot(plot(xyzt,xyz),plot(xy, xz, yz, layout=(1,3),w=1), layout=(2,1))