朱莉娅剧情;如何分别绘制耦合方程图?

时间:2018-10-21 17:14:53

标签: plot julia differential-equations

我正在学习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]?这在这里没有用,但是对于数学微分方程,将组件属性绘制在不同的图中将很有用。

2 个答案:

答案 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))