简体   繁体   English

求解R中的微分方程组(鞍点稳定性)

[英]Solving a system of differential equations in R (saddle point stability)

I would like to solve a planar system of differential equations in which the initial condition for one variable is given, while the initial condition of the other needs to be determined in order to make sure that the system converges towards its equilibrium. 我想解决一个微分方程的平面系统,其中给定一个变量的初始条件,而另一个变量的初始条件需要确定,以确保该系统收敛于其平衡。 If the equilibrium is saddle point stable (which is of interest for systems arising from optimal control problems analyzed in economics) then there exists a unique initial value of this variable to achieve convergence. 如果平衡是稳定的鞍点(对于经济学中分析的最优控制问题引起的系统很感兴趣),则该变量存在唯一的初始值以实现收敛。 How to determine such an initial value in order to be able to solve the system is thus the main question. 因此,如何确定这样的初始值以便能够解决该系统是主要问题。 Is it possible to use R to determine the value of such an initial condition and thus solve the system? 是否可以使用R来确定这种初始条件的值,从而解决系统问题?

The system is: 系统是:

x' = sqrt(x)-x -y x'= sqrt(x)-x -y

y' = y*((sqrt(x))^(-1)-1) y'= y *((sqrt(x))^(-1)-1)

with x and y nonnegative. x和y为非负数。 The analysis suggests that there exists a unique equilibrium with both x and y strictly positive, and analysis of the Jacobian matrix shows that one eigenvalue is positive and the other is negative, thus the equilibrium is saddle point stable. 分析表明,存在一个x和y都严格为正的唯一平衡,对Jacobian矩阵的分析表明,一个特征值是正值,另一个特征值是负值,因此该平衡点是鞍点稳定的。 If the x(0) is given, say equal to 1, how can we determine the value of y(0) such that the system converges to the positive equilibrium value of (x,y)? 如果给定x(0),例如等于1,我们如何确定y(0)的值,使系统收敛到(x,y)的正平衡值? I would like to be able to simulate the unique converging dynamic paths of x and y. 我希望能够模拟x和y的唯一会聚动态路径。 Can someone help me with this? 有人可以帮我弄这个吗?

With deSolve we can easily solve the system, but we need to specify x(0) and y(0). 使用deSolve,我们可以轻松地求解系统,但是我们需要指定x(0)和y(0)。 Can deSolve or some other package be used to determine what is the value of y(0) allowing y to converge towards its equilibrium value? 可以使用deSolve或其他软件包确定y(0)的值是多少,从而使y收敛到其平衡值吗? Probably we should rely on a shooting algorithm to guess and recalibrate the initial condition y(0), but I have no idea of how this could be done. 也许我们应该依靠射击算法来猜测和重新校准初始条件y(0),但我不知道如何做到这一点。

What you would like to do is compute the "stable manifold of the saddle" This is done by 您想要做的是计算“鞍座的稳定歧管”,这是通过

  1. computing the Jacobian, J , at the equilibrium, xStar 计算平衡点xStar的雅可比行列式J
  2. Finding the eigenvalues and eigenvectors of J J的特征值和特征向量
  3. Use as your initial condition y0 = Xstar - eps * eigenvector , where eigenvector is the eigenvector corresponding to the negative eigenvalue of J , and eps is a very small number (eg eps = 1e-7 ) y0 = Xstar - eps * eigenvector用作初始条件,其中eigenvector是对应于J的负特征值的特征向量,而eps是一个非常小的数字(例如eps = 1e-7
  4. Simulate the dynamics but in reverse time, eg times = seq(-10,0, by=.1), in lsoda 模拟动力学,但以相反的时间进行,例如,以lsoda为单位的时间= seq(-10,0,by = .1)
  5. Repeat steps 3&4 for but with the initial condition y0 = Xstar + eps * eigenvector 重复步骤3&4,但初始条件为y0 = Xstar + eps * eigenvector

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM