主要内容

求解捕食者-猎物方程

这个例子展示了如何用两者来求解一个表示捕食者/猎物模型的微分方程ode23而且数值。这些函数是用变步长龙格-库塔积分法数值求解常微分方程的。ode23使用简单的二阶和三阶公式对中等精度和数值使用四阶和五阶对以获得更高的精度。

考虑一对一阶常微分方程,称为生态方程,或捕食模型:

dx dt x - α xy dy dt - y + β xy

的变量 x 而且 y 分别测量猎物和捕食者种群的大小。二次交叉项说明了物种之间的相互作用。当没有捕食者存在时,被捕食者的数量会增加,而当猎物稀少时,捕食者的数量会减少。

代码方程

为了模拟系统,创建一个函数,返回给定状态值和时间值的状态导数列向量。这两个变量 x 而且 y 可以在MATLAB中表示为向量中的前两个值吗y。类似地,导数是向量的前两个值yp。函数必须接受为的值t而且y并返回由方程产生的值yp

Yp (1) = (1 - *y(2))*y(1)

Yp (2) = (-1 + *y(1))*y(2)

在本例中,方程包含在名为lotka.m。该文件使用的参数值 α 0 01 而且 β 0 02

类型洛特卡
函数yp = lotka(t,y) % lotka lotka - volterra捕食者-猎物模型。The MathWorks, Inc. yp = diag([1 - .01*y(2), -1 + .02*y(1)])*y;

模拟系统

使用ode23求解式中定义的微分方程洛特卡在时间间隔内 0 < t < 15 。的初始条件 x 0 y 0 20. 这样捕食者和被捕食者的数量是相等的。

T0 = 0;Tfinal = 15;Y0 = [20;20);[t,y] = ode23(@lotka,[t0 tfinal],y0);

阴谋的结果

绘制结果种群随时间变化的图。

情节(t, y)标题(“捕食者/猎物种群随时间变化”)包含(“t”) ylabel (“人口”)传说(“猎物”“捕食者”“位置”“北”

图中包含一个轴对象。标题为“捕食者/猎物种群随时间变化”的坐标轴对象包含2个类型行对象。这些物品代表猎物,捕食者。

现在画出种群间的对比图。所得到的相平面图使种群之间的循环关系非常清楚。

情节(y (: 1), y(:, 2))标题(“相平面图”)包含(“猎物人口”) ylabel (捕食者种群的

图中包含一个轴对象。标题为Phase Plane Plot的axis对象包含类型为line的对象。

比较不同求解器的结果

第二次使用该系统求解数值,而不是ode23。的数值Solver每一步都需要更长的时间,但它也需要更大的步骤。然而,输出数值是平滑的,因为默认情况下,求解器使用连续扩展公式在每一步的跨度中产生四个相等间隔的时间点的输出。(你可以用“完善”选择。)画出两个解进行比较。金宝搏官方网站

[T,Y] = ode45(@lotka,[t0 tfinal],y0);情节(y (: 1), y (:, 2),“- - -”Y (: 1), Y (:, 2),“- - -”);标题(“相平面图”)传说(“ode23”“数值”

图中包含一个轴对象。标题为Phase Plane Plot的坐标轴对象包含2个类型为line的对象。这些对象表示ode23, ode45。

结果表明,用不同的数值方法求解微分方程可以得到略有不同的答案。

另请参阅

|

相关的话题