3

我有一个 ODE,想解决它并绘制一些初始条件的解决方案。一开始,我决定做一个“for”来增加初始条件的值,然后绘制解决方案,一个在另一个之上。

using DifferentialEquations, Plots

for i = -2.00:0.25:2.00
    f(x,p,t) = x-x^3
    x0 = i
    tspan = (0.00,2.00)
    prob = ODEProblem(f,x0,tspan)
    sol = solve(prob)
    if i==-2.00
        plot(sol,linewidth=4, title="Solution",
             xaxis="t",yaxis="x(t)",legend=false)
    else
        plot!(sol,linewidth=4, title="Solution",
            xaxis="t",yaxis="x(t)",legend=false)
    end
end
savefig("Graphic.png")

有一个更好的方法吗?

4

1 回答 1

4

您可以仅使用标题、轴标签等创建一个空图,然后使用解决方案填充该图:

# main plot settings
plot(linewidth=4, title="Solution",
     xaxis="t",yaxis="x(t)",legend=false)

for i = -2.00:0.25:2.00
    f(x,p,t) = x-x^3
    x0 = i
    tspan = (0.00,2.00)
    prob = ODEProblem(f,x0,tspan)
    sol = solve(prob)

    # add to existing plot
    plot!(sol)
end
于 2021-04-25T19:55:39.180 回答