承 诺 书
我们完全明白数学建模竞赛规则,在竞赛开始后参赛队员不能以任何方式(包
括电话、电子邮件、网上咨询等)与本队以外的任何人(包括指导教师)研究、讨
论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他公
开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引
用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞
赛规则的行为,我们愿意承担由此引起的一切后果。
承诺人:
队长
队员 1
队员 2
姓名
尹政杰
李智聪
钟俊
学号
20194390323
20194390213
20194390303
学院
数理学院
数理学院
数理学院
基于线性规划的最优捕捞模型
摘要
小龙虾的泛滥成灾正在成为困扰柏林乃至整个德国生态,为了减少损失需要在适
当的时间捕捞过多的小龙虾又不至于使其生态失衡,本文实际上在追求捕捞量在
可持续的前提下最大化。
问题一采用对联立微分方程得指数增长模型,对其进行参数估计得出若该池塘一
直无人管理且外界条件不变,预测的未来十年该池塘中龙虾数量。
问题二采用对四岁虾在年末的不同状态(死光、还是四岁虾),并符合可持续捕
捞条件出发得在可持续捕捞的前提要求捕捞量最大且获取利润最多。首先,根据
已知条件进行分析,再利用常微分和定积分的知识得出在一年内各岁虾数量的变
化关系式。 其次,根据只有三岁虾和四岁虾产卵和对应的平均产卵量,得出每
年的总产卵量的关系式。 再次,先根据只捕捞三、四岁虾和只在每年的前 8 个
月捕捞,结合各岁虾的平均重量,得出目标函数,再根据上一年末各岁虾的数量
等于下一年初各岁虾的数量和以上关系式得出捕捞虾的总重量最高的优化模型。
问题三对问题二的差分方程求稳定解,计算出最佳月捕捞强度系数 k,得最大捕
捞量为 33229 吨,且说明该类虾不论开始时数量,经过一段时间的捕捞后,总能
使虾群数量稳定下来。
问题重述
近日,据德国《每日镜报》,小龙虾的泛滥成灾正在成为困扰柏林乃至整个
德国生态和市政的重大问题。一个繁殖周期下,龙虾数量以斐波那契数列增长,
1,2,3,5,8,13,21,34,55,89...这个数列的前后项之比越来越趋近于黄
金分割 0.618,换而言之,这个数量增长的速度几乎是以 5+1( )/2 为底数的指
数增长列。
假设某种龙虾分四个年龄组,分别为一岁到四岁。各年龄组龙虾的平均重量
分别为 0.507、1.155、1.786、2.299(g),各年龄组龙虾的自然死亡率为 0.8(1/
年),且龙虾为季节性繁殖,平均每只四岁虾的产卵量为
1.109 10
5
(个),三岁
虾的产卵量为这个数的一半,两岁虾和一岁虾不产卵,产卵和孵化期为每年的最
后 4 个月,卵孵化并成活为一岁虾,其成活率(一岁虾条数与产卵总量 n 之比)
为
1
1.22 10 / 1.22 10 +n
11
11
。龙虾养殖场每年只在产卵孵化期前的 8 个月内进
行捕捞作业.如果每年捕捞强度固定不变,这时单位时间捕捞量与各年龄组虾群
条数成正比,比例系数称捕捞强度系数.通常只捕三岁虾和四岁虾,其两个捕捞
强度系数之比为 0.42:1。
问题一:现假设一荒废的池塘中龙虾数量随时间变化如下表
3.8
1
年份
数量/
千只
年份 11
数量/
千只
4.59
2
3
4
5
6
7
8
9
10
3.93
3.96
4.03
4.11
4.14
4.17
4.18
4.27
4.4
12
13
14
15
16
17
18
19
20
4.84
4.99
5.08
5.18
5.31
5.4
5.47
5.54
5.61
若该池塘一直无人管理且外界条件不变,请建立数学模型预测未来十年该池
塘中龙虾数量。
问题二:为了满足龙虾养殖场的长期运营,需要实现每年开始捕捞时养殖场
中各年龄虾数量不变。请建立数学模型分析如何在此前提下得到最高的年收获量
(捕获龙虾总重量)。
问题三:若某龙虾养殖场计划养殖这种龙虾,要求 5 年后虾群的生产能力不
能受到太大破坏。已知承包时各年龄组虾群的数量分别为:122、29.7、10.1、
910 只),如果采用相同的捕捞强度,该养殖场应采取怎样的策略才能使总
3.29(
收获量最高。
模型的假设
1
2
单位时间内自然增长率 r 为常数,小龙虾的数量为以 5+12 底数的指数增长模式。
三、四 岁虾都有生殖能力且在每年 9 月的第一天产卵,每年的最后一天卵孵化,1 和 2
岁不产卵
3
四岁虾在经过一年的变化后,若有没有死亡的,则算入下一年年初四岁虾的数量
2
4
只考虑繁殖和捕捞,不考虑迁入迁出和自然死亡(记入捕捞内)
5
产卵期的虾的自然死亡记在产卵之后
6
生长周期为一年
符号的说明
一年中的某时刻
()……该年中某时刻时 i 岁虾的总数量
β表示孵化成活率,β= 1.22×1011
1.22×1011+;
α表示单位时间的自然死亡率,α=0.8;
c 表示年存活率,c=1-0.8=0.2;
k 表示单位时间 4 岁虾的捕捞强度系数;
问题分析
问题一采用对联立微分方程得指数增长模型,对其进行参数估计得出若该池塘一
直无人管理且外界条件不变,预测的未来十年该池塘中虾数量。
问题二采用对四岁虾在年末的不同状态(死光、还是四岁虾),并符合可持续捕
捞条件出发得在可持续捕捞的前提要求捕捞量最大且获取利润最多。
问题三对问题二的差分方程求稳定解,计算出最佳月捕捞强度系数 k,得最大捕
捞量。
3
模型的建立
(1)建立模型
对问题一:
对问题二:
(1)
,下一年
根据所给数据,记 t=0 时的0=3.800;时刻 t 虾的数量为(),把该函数当作连续可微函数处理
可得 t 到+时间段的虾的数量的增量为
=
+−
于是()满足微分方程dd=
0 =0
以一年为一个单位时间,则记年初的虾群数量为 x(t)=1,2,3,4
的虾群数量为 x(t+1)= 1+1,2+1,3+1,4+1 .
由此可以建立相关方程:1+1 =2 −33 +−44
4+1 = −33 + −44
由题意可知3=0.424=0.42k
P= 0 0 0 2(−0.42) (−)
0
0
0
0
0 0 0
−0.42 −
解微分方程(1)可得 =0
2+1 =1
3+1 =2
+1 =
(2)模型求解
对问题一:
将上述方程组写成矩阵形式
其中 P 矩阵为
(2)
4
这便是指数增长模型。
小龙虾数量在单位时间内增长的百分比 r 是一定的。写成一个微分方程的形式,设 t =
(3)
0 时刻的虾数量为 3.800,则 t 时刻的总虾()满足
=0
对问题二:
……
……
量可得以下结果:
一月实际存活率:(1-η-q)
为多少,下一年虾群总会出现负数,由此可知结论是错误的,究其原因发现单位时间的划分
还不够精确,故现在假定单位时间为一个月,重新定义月死亡率为η,月存活率为 1-η,月
对矩阵 P 进行分析可知,当 4 岁虾捕捞强度系数 k> 0.42=0.20.42=0.476 时,不论上一年虾群数量
捕捞系数为 q,则年存活率(1−)12=0.2,由此解得η=0.1255,接下来考虑一年之中虾群的数
二月实际存活率:(1−η−q)2
三月实际存活率:(1−η−q)3
八月实际存活率:(1−η−q)8
九月实际存活率:(1−η−q)8(1-η)
一年后实际存活率:(1−η−q)8(1−)4
一年后 3 岁虾实际存活量:(1−η−3)8(1−)43(t)
一年后 4 岁虾实际存活量:(1−η−4)8(1−)44(t)
该年 3 岁虾总捕捞量: =18 (1−η−3)−1
该年 4 岁虾总捕捞量: =18 (1−η−4)−1
该年 3 岁虾产卵总量:3=
该年 4 岁虾产卵总量:4=n1−η−k4 8x4(t)
33(t)=3[1−(1−η−3)8]
η+3
44(t)=4[1−(1−η−4)8]
η+4
3(t)
4(t)
对应的矩阵 P 应更改为:
n
(
2
-1
k-
3
8
)()
tx
3
5
P=
0
0
(1−η)12 0
0 (1−η)12
0
0
f=k31−(1−η−k3)8
η+k3
0
0
21−η−k3 8 1−η−k4 8
0
0
(1−η)41−η−k4 8
(1−η)41−η−k3 8
4(t)
x3(t)+41−1−η−k4 8
η+k4
方程则为:x(t+1)=Px(t)
再结合题意,要求实现可持续捕捞则该方程必须存在稳定解
总捕捞量可用函数表示:
为实现持续捕捞,上式必须存在稳定解
x(t+1)=Px(t)
]141[
(3) 模型的参数估计
对问题一:
要用(3)的模型参数估计,需要对其中的自然增长率进行估计,使用表中数据进行估计
拟合方法如下。
在最小二乘法拟合中,非线性函数 拟合为非线性最小二乘法拟合,使用 MATLAB 优化工
具箱函数 lsqcurvefit 可以得出最优拟合结果,代码如下
%建立的 exp1.m 文件
%这是 matlab 函数,该函数作用为计算方程模型的函数
%x 为所建立模型函数的因变量 x(t);x0,r 均为模型方程(3)中所给参数
%tdata 为 t 的时间序列,可在表中找到
function x=exp1(r,tdata)
x0=3.800;
x=x0.*exp((tdata.*r));
%建立的 optim.m 文件
%此为主程序,主要估计 r 的值与推测接下来十年的小龙虾数量
%r_estim 为 r 估计值,x0 为始估计值,x_t 为模型中的 x(t)
clear;clc;
t=1:20;
x_t=[3.8000, 3.9300, 3.9600, 4.0300, 4.1100, 4.1400, 4.1700, 4.1800 ,4.2700, 4.4000 ,4.5900,
4.8400, 4.9900 ,5.080, 5.1800, 5.3100, 5.4000, 5.4700,5.5400, 5.6100];
x0=0.8;
r_estim=lsqcurvefit('exp1',x0,t,x_t);
6
t=1:30;
disp(r_estim);
disp(exp1(r_estim,t));
参数 r 的估计值为=0.0195
后十年的种群数量为途中 21-30 列的值
对问题二、三:
将问题二模型进行 matlab 编程运算,得出按上面步骤的最佳捕捞系数和捕捞量
alpha=0.1255;
m=1.109e5;%m 为 4 龄小龙虾产卵量,3 龄为四龄的一半
run=200;
X1=zeros(run+1,1);
X2=zeros(run+1,1);
X3=zeros(run+1,1);
X4=zeros(run+1,1);
k=0.5;
error=1e-5;
f_k=zeros(floor((1-k)/error+1),1);%创立最大捕捞量函数的区间
t=0;
for k=0.5:error:1
t=t+1;
%所有小龙虾初始数量
X1(1)=122e9;
X2(1)=29.7e9;
X3(1)=10.1e9;
X4(1)=3.29e9;
for j=1:1:run
7