如何生成箭头图和均衡图?

时间:2015-07-25 03:41:14

标签: r differential-equations

我过去曾使用过Python但已经慢慢过渡到R.我正在尝试创建一个箭头/方向场图和均衡图。我已经能够在Python中执行此操作,链接到下面的示例,但很难在R中镜像它。在Python中,我能够使用诸如numpy,matplotlib.pyplot,mpl_toolkits.mplot3d和scipy.integrate之类的包。目前,我一直在尝试使用deSolve,pracma和matlab。我应该使用其他软件包,还是这些软件包中的功能,我无法让它们工作?我正在讨论的一篇论文的代码示例如下。任何帮助将不胜感激。

#Solve the system dy/dt = f(y, t) and model equations
Example <- function(t, state, parameters) {
  with(as.list(c(state, parameters)), {

    dK <-  a * K - b * H - c * F - d * H * F
    dH <-  b * H - a * K + c * F + e * F
    dF <-  f + c * F - a * K + b * H + h * K
    list(c(dK, dH, dF))
  })
}

#Parameters and Initial Conditions
parameters <- c(a = 0.02, 
                b = 0.01, 
                c = 0.04, 
                d = 0.06, 
                e = 0.08, 
                f = 0.2,  
                h = 0.04)
state      <- c(K = 0.7, 
                H = 0.6, 
                F = 0.3) 
times      <- seq(0, 100, by = 0.01) 

out <- ode(y = state, times = times, func = Example, parms = parameters)

plot(out)

以下是我试图尽可能镜像的图表链接:

Equilibrium Graph

enter image description here

Quiver/Direction Field Graph

enter image description here

1 个答案:

答案 0 :(得分:1)

以你当前的例子,我没有看到制作矢量场的方法,但我确实得到了一些类似你展示的均衡图的例子。我会把它称为以时间为参数的三维参数图。将打开一个X11窗口,您可以通过单击拖动屏幕上的图像在psuedo-3d sapce中旋转它。 rgl.snapshot拍照。我决定缩放轴:

require(scatterplot3d); scatterplot3d( out[, 2],  out[, 3], out[, 4])

order of evaluation

还有scatterplot3d包:

{{1}}

enter image description here