繁体   English   中英

如何在MATLAB中绘制非线性微分方程组的解?

[英]How to plot solutions of system of nonlinear differential equations in MATLAB?

我想跟随这篇研究论文 我正在尝试复制第20页的图7中的解决方案图。我有一个图7的屏幕截图: 在此输入图像描述

我首先要重新创建左图。 有问题的系统就是我所拥有的dX 这是我在m文件中的内容:

function dX = CompetitionModel(t,X)       
  bs = 8*10^(-3); 
  bl = 4*10^(-3); 
  bh = 6.4*10^(-3);
  N = bs + bl + bh;
  K = 10^8;
  m1 = 2*10^(-5); 
  m2 = 9*10^(-9); 
  p = 5*10^(-13); 
  I = 10^(-3); 
  T = 0; 
  a = 0; 
  dX = [X(1) * (bs * (1 - N/K) - I - T - m1) - p * X(1) * (X(2) + X(3));
       X(2) * (bl * (1 - N/K) - I - a*T - m2) + m1 * X(1) + p * X(2) * (X(1) - X(3));
       X(3) * (bh * (1 - N/K) - I - a*T) + m2 * X(2) + p * X(3) * (X(1) + X(2))];
end

ode45的语法为: [T,Y] = solver(odefun,tspan,y0) 我从我发布的图片中得到了tspan。 我的初始条件是: S0 = 10^4; Rl0 = 0; Rh0 = 0 S0 = 10^4; Rl0 = 0; Rh0 = 0 S0 = 10^4; Rl0 = 0; Rh0 = 0 ,所以这就是我所拥有的y0 我在命令窗口中输入以下内容:

>>[t,X1] = ode45('CompetitionModel', [0,45000], [10^4, 0, 0]);
>>[t,X2] = ode45('CompetitionModel', [0,45000], [10^4, 0, 0]);
>>[t,X3] = ode45('CompetitionModel', [0,45000], [10^4, 0, 0]);

过去30分钟,MATLAB一直很忙,我的笔记本电脑开始变热了。 因此,在完成之前我无法进行绘图,而且我不知道代码中是否存在任何错误。 我想知道是否有更好的方法可以获得系统dX的解决方案。

我检查了ODE对纸张,发现一个错误。 根据论文第9页的最后一段, N = S + Rl + Rh 更正后的代码:

function dX = CompetitionModel(~,X)       
  bs = 8e-3; 
  bl = 4e-3; 
  bh = 6.4e-3;
  N = sum(X);  % this line was incorrect
  K = 1e8;
  m1 = 2e-5; 
  m2 = 9e-9; 
  p = 5e-13; 
  I = 1e-3; 
  T = 0;
  a = 0; 
  dX = [X(1) * (bs * (1 - N/K) - I - T - m1) - p * X(1) * (X(2) + X(3));
       X(2) * (bl * (1 - N/K) - I - a*T - m2) + m1 * X(1) + p * X(2) * (X(1) - X(3));
       X(3) * (bh * (1 - N/K) - I - a*T) + m2 * X(2) + p * X(3) * (X(1) + X(2))];

注意几个语法上的变化。 首先,由于您实际上并未使用ODE中的时间值,因此可以在函数定义中使用~代替t作为未使用输入的替代值。 其次,您可以使用符号8e-3而不是8*10^(-3) 他们评价同样的事情,但前者看起来更清洁。

未处理的图,即T = 0 ,如下所示。

没有治疗人群

我通过首先尝试用MATLAB中的一些刚性ODE求解器来解决你的方程,从而找出了ODE中的问题。 有关更多详细信息,请参阅MATLAB ODE求解器文档 基本上我用ode15sode23s解决了它,发现解决方案不稳定(人口变为无穷大)。 如果您的解决方案悬而未决,这些其他求解器是很好的工具。 有时候其中一个会工作,它会给你你想要的东西,或者表明你在其他地方有另一个问题。

注意:我相当确定你没有在这里正确使用“相位肖像”。 您只是在给定一组初始条件下寻找ODE与时间的解决方案。 阶段肖像着眼于系统的状态(这里是你的三个不同的群体)如何在不同的初始条件下进化。 它没有向您展示这些解决方案的时间依赖性,以及它们相对于彼此的演变方式。

暂无
暂无

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

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