Решите и постройте уравнения Лоренца для двух различных начальных условий и двух значений rho в julia

Моя цель — решить уравнения Лоренца и построить их так, как показано на рисунке. У меня есть два разных начальных условия [x0, 1, 0] и x0 = 0, тогда x0 =1* 10^-5, два значения rho равны ρ = 14 и ρ = 28. Я написал этот код в julia, но получаю сообщения об ошибках: «Есть исключение за пределами @test UndefVarError: u не определено lorenz_solver(x₀::Float64, ρ::Int64)». Любая идея о том, как решить эту проблему, введите описание изображения здесь

      using DifferentialEquations
using Plots
using LaTeXStrings

function lorenz!(t,p,u,du)
    x, y ,z = u
    sigma, ρ, beta = p
    du[1] = sigma*(u[2]-u[1])
    du[2] = u[1]*(ρ-u[3]) - u[2]
    du[3] = u[1]*u[2] - beta*u[3]
end

function lorenz_solver(x₀, ρ)
    u[0] = [x₀, 1, 0]
    tspan = (0.0, 100.0)
    p = [10, ρ, 8/3] 
    x₀, ρ = params
    prob = ODEProblem(lorenz!, u0, tspan, params)
    sol = solve(prob) 
    return sol
    #return the ODESolution
end

function lorenz_plot()
    params = [0, 14]
    sol1 = solve(prob)

    params = [1 * 10^-5 , 14]
    sol2 = solve(prob)

    p1 = plot(t, [sol1 sol2], ylabel=L"x1, x2", title="ρ = 14")
    p2 = plot(abs(sol1 - sol2), xlabel=L"t", ylabel=L"|x1 - x2|")
    p3 = plot(sol1, vars = (1,2,3), xlabel=L"x1", ylabel=L"z1")

    params = [0, 28]
    sol3= solve(prob)
   
    params = [1 * 10^-5, 28]
    sol4 = solve(prob)

    p4 = plot(t, [sol3 sol4], title="ρ = 28")
    p5 = plot(abs(sol3 - sol4), xlabel=L"t")
    p6 = plot(sol3, vars = (1,2,3), xlabel=L"x1")
    link=:all
    plot(p1, p2, p3, p4, p5, p6, layout(3, 2))
    #return the final plot
end

export lorenz_solver, lorenz_plot

end

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

0 ответов

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