复制坡度场图

复制坡度场图

我知道这个问题之前已被问过多次,但是我对实施仍存在问题。

在此处输入图片描述

这些方程被称为洛塔-沃尔特拉方程,用作两种物种(例如野兔和狐狸)之间的简单生物模型。斜率场图的方程和图像取自这个文件请参阅第 4-7 页以了解完整背景信息。

对于那些看不懂方程式的人来说,它们是du1/dt = u1*(1-u1-a12*u2)du2/dt = u2*(1-u2-a21*u1)。我想画出相图(矢量图)。对于几个值,a12和有不同的值a21。结果应该如下

在此处输入图片描述

但是我的代码把事情搞得一团糟。

\documentclass[border=10pt]{standalone}
\usepackage{pst-plot,pst-ode}
\begin{document}

\psset{unit=3}
\begin{pspicture}(-0.2,-0.2)(2.1,2.1)
\psaxes[ticksize=0 4pt,axesstyle=frame,tickstyle=inner,subticks=20,
        Ox=0,Oy=0](0,0)(2,2)
\psset{arrows=->,algebraic}
\psVectorfield[linecolor=blue!60](0.1,0.1)(1.9,1.9){ x*(-0.75*y-x+1)*(2*y*(-0.75*x-y+1))^(-1) }
%y0_a=-0.5
\pstODEsolve[algebraicOutputFormat]{y0_a}{t | x[0]}{1}{0}{100}{-0.5}{t*(-0.75*x[0]-t+1)*(x[0]*(-0.75*t-x[0]+1))^(-1)}

\psset{arrows=-,linewidth=1pt}%
\listplot[linecolor=red  ]{y0_a}
\listplot[linecolor=green]{y0_b}
\listplot[linecolor=blue ]{y0_c}
\end{pspicture}

\end{document}

渲染成

在此处输入图片描述

如您所见,箭头有一些严重的扭曲。可以使用除 pstricks 之外的其他工具来解决这个问题吗?我最熟悉的是 tikz 和 pgfplots,但在测试了几个解决方案后使用 pgfplots 绘制微分方程方向图pstricks 是唯一一个能够渲染曲线的人。

如果我从第一个方程中删除第一个u1,然后删除第一个,u_2这样我就不会除以零。我仍然会得到伪影(但效果略好一些)。

在此处输入图片描述

答案1

不可能一次画完。对于某些值,你需要除以非常小的数字。你必须选择不同的间隔。例如:

\documentclass[border=10pt]{standalone}
\usepackage{pst-plot,pst-ode}
\begin{document}

\psset{unit=3}
\begin{pspicture}(-0.2,-0.2)(2.1,2.1)
    \psaxes[ticksize=0 4pt,axesstyle=frame,tickstyle=inner,subticks=20,
    Ox=0,Oy=0](0,0)(2,2)
\psset{arrows=->,algebraic}
\pstVerb{
    /alpha12 0.75 def
    /alpha21 0.75 def
    /rho 2 def
}
\psVectorfield[linecolor=blue!60](0.1,0.1)(0.6,0.6)%
  {x*(1-x-alpha12*y)/(rho*y*(1-y-alpha21*x))}
\psVectorfield[linecolor=blue!60](0.5,0.7)(1.9,1.9)%
  {x*(1-x-alpha12*y)/(rho*y*(1-y-alpha21*x))}
\psVectorfield[linecolor=blue!60](0.1,0.7)(0.3,1.9)%
  {x*(1-x-alpha12*y)/(rho*y*(1-y-alpha21*x))}
\pstODEsolve[varsteptol=1e-5,saveData]%
  {y0a}%
  {0 1}%
  {0}{40}{1000}%
  {0.1 0.1}%
  {x[0]*(1-x[0]-alpha12*x[1]) | rho*x[1]*(1-x[1]-alpha21*x[0])}
\psset{arrows=-,linewidth=1pt}%
\listplot[linecolor=red]{y0a}
\end{pspicture}

\end{document}

在此处输入图片描述

相关内容