茱莉亚情节;如何单独绘制耦合方程图?

Julia Plots; how can I individually plot coupled equations graphs?

我正在学习 Julia,特别是如何求解耦合微分方程。我正在查看微分方程的文档页面,并从中获取了这段代码:

using DifferentialEquations


function lorenz(du,u,p,t)
    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)
using Plots; plot(sol)

所以这在同一张图上绘制了 u[1]、u[2] 和 u[3],但是我想知道如何为 u[1]、u[2] 绘制 3 个单独的图你[3]?这在这里没有用,但是对于数学微分方程,在不同的图形上绘制组件属性会很有用。

您可以在一个图中作为网格执行此操作:

plot(sol, layout = (3,1))

或者,如果您愿意,可以将每一个都绘制在自己的图中。例如,要绘制第 1 个,您可以这样做:

plot(sol[1,:])

绘图命令are documented on this page。您可以看到 vars 允许您选择要绘制的变量。所以要制作一些子图,你可以这样做:

p1 = plot(sol, vars=1)
p2 = plot(sol, vars=2)
p3 = plot(sol, vars=3)
plot(p1,p2,p3,layout=(3,1))

如果你想绘制所有变量,@hesham_EE 描述的一个不错的小技巧是你可以只给出一个布局,它会自动将它分成不同的图:

plot(sol, layout = (3,1))