我正在学习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]和u绘制3个单独的图[3]?这在这里没有用,但是对于数学微分方程,将组件属性绘制在不同的图中将很有用。
答案 0 :(得分:0)
您可以在一个图中以网格的形式执行此操作:
gm
或者,如果愿意,可以将每个图绘制在自己的图中。例如,要绘制第一个,可以执行以下操作:
plot(sol, layout = (3,1))
答案 1 :(得分:0)
绘图命令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))