捕食者与被捕食者问题微分方程与matlab
数学建模狐狸野兔问题

狐狸野兔问题摘要:封闭自然环境中的狐狸和野兔存在捕食与被捕食关系,本题旨在通过对自然状态下两物种数量变化规律的分析,推测加入人类活动(即人工捕获)时两物种数量的变化,进而得出人类活动对自然物种的影响,为人类活动提供参考,使其在自然允许的范围内,促进人与自然和谐相处。
对于问题一,首先建立微分方程,描述两物种数量随时间变化的Volterra 模型()0,0,0,021212211>>>>⎪⎪⎩⎪⎪⎨⎧+-=-=r r k k xyr y k dtdy xy r x k dtdx并用解析法求得狐狸与野兔数量的关系 ()()2211k r xk r yxeyec --=为直观反映两物种数量随时间的变化规律,选取三组有代表性的初值,利用Matlab 软件绘图。
在狐狸和野兔随时间的变化图像中,大致得出其数量呈周期变化,为进一步检验周期性,再用Matlab 绘图做出狐狸与野兔数量的关系图,得到封闭曲线,因此分析结果为:狐狸和野兔的数量都呈现周期性的变化,但不在同一时刻达到峰值。
对于问题二,利用数值解法,令模型中两式皆为0,即求得狐狸和野兔数量的平衡状态。
且由问题一中狐狸与野兔数量的关系图知野兔和狐狸的平衡量恰为他们在一个周期内的平均值。
对于问题三,在Volterra 模型基础上引入人工捕获系数。
只捕获野兔时,野兔的自然增长率降低,狐狸自然死亡率增加,改进后模型同问题二处理方式一样,求得平衡状态,得出结论:捕获野兔时,狐狸数量减少,野兔数量反而增加,即Volterra 原理:为了减少强者,只需捕获弱者。
只捕获狐狸时,分析方法与只捕获野兔时相同,并得出野兔狐狸数量皆增加的结论。
问题三为自然界人类捕获生物提供了新的思路,即可以在正常允许范围内,为了达到减少某一种群数量的目的,相应的捕获其食饵,或适度地捕获捕食者使捕食者与被捕食者的数量都有所增加。
关键词:Volterra 模型Matlab 软件解析法周期性一、问题重述在一个封闭的大草原里生长着狐狸和野兔。
实验二微分方程与差分方程模型Matlab求解

实验二: 微分方程与差分方程模型Matlab 求解一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进展解的定性分析;[2] 熟悉MATLAB 软件关于微分方程求解的各种命令; [3] 通过范例学习建立微分方程方面的数学模型以及求解全过程;[4] 熟悉离散 Logistic 模型的求解与混沌的产生过程。
二、实验原理1. 微分方程模型与MATLAB 求解 解析解用MATLAB 命令dsolve(‘eqn1’,’eqn2’, ...) 求常微分方程〔组〕的解析解。
其中‘eqni'表示第i 个微分方程,Dny 表示y 的n 阶导数,默认的自变量为t 。
〔1〕 微分方程例1 求解一阶微分方程 21y dxdy+= (1) 求通解 输入:dsolve('Dy=1+y^2') 输出: ans =tan(t+C1) 〔2〕求特解 输入:dsolve('Dy=1+y^2','y(0)=1','x') 指定初值为1,自变量为x输出: ans =tan(x+1/4*pi)例2 求解二阶微分方程 221()04(/2)2(/2)2/x y xy x y y y πππ'''++-=='=-原方程两边都除以2x ,得211(1)04y y y x x '''++-= 输入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x') ans =- (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) +(exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))试试能不用用simplify 函数化简 输入: simplify(ans)ans =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) 〔2〕微分方程组例3 求解 d f /d x =3f +4g ; d g /d x =-4f +3g 。
最优捕鱼策略问题

最优捕鱼策略问题摘要本文以最优捕鱼策略为主题,在logistic模型基础上建立了可持续发展捕鱼策略模型,并借助计算机Matlab,运用二分法近似求得了模型最优解。
在此基础上提出了灵敏度函数S,并由此判断死亡率w和捕捞强度E的变化对产量变化的影响。
最后根据实际生产需求,分析死亡率w对最大产量Qm的影响。
对于问题1,我们首先考虑不存在捕捞情况下的模型,再加入捕捞强度分析,最后根据问题1的条件(每年开始捕捞时渔场中各种年龄组鱼群条数不变)建立方程组,得到可持续发展捕鱼策略模型,解得方程组后在w=0.8时绘图得到最大产量Qm=3.8871*10^11。
对于问题2,我们引用了灵敏度函数S(ω,Q),起意义为ω变化率与Q变化率的比值,例如S=0.1,即表示当死亡率变化1%的时候,产量Q变化0.1%。
发现在问题1取得最大产量的情况下,死亡率每增加1%,最大产量减少1.743%。
并给出了不同死亡率w和产量下S的函数。
对于问题3,方法与问题2相似,灵敏度函数S(E,Q)在问题1的情况下,捕捞强度系数E每增加1%,产量Q减少0.0010%。
并给出了不同捕捞强度E和产量Q下S的函数。
对于问题4,我们取不同的死亡率w,得到不同的最大产量Q,利用MATLAB用函数拟合的方法得到了相似度很高的4阶拟合函数Qm(w)仿照问题2求解了灵敏度函数S(E,Qm),发现了在问题1求得最大产量的时候,死亡率的波动对最大产量的影响是相对较大的。
现实生产中可表现为一段时间内大量鱼群的死亡对渔民的收获量会造成比较大的损失。
为此我们找到了影响较小的点,当把死亡率控制在0.957附近时,鱼群的突然大数目死亡短时间内对渔民造成的损失最小。
对此我们提出了一些策略。
关键词:可持续发展捕鱼策略模型,灵敏度分析,函数拟合,微分方程。
一、问题重述以鳀鱼为例,制定一种最优的捕鱼策略,要求实现可持续捕捞,并且在此前提下得到最高的年收获量,并进一步考虑自然死亡率和捕捞强度系数,提出相关建议。
捕食者-被捕食者模型中参数估计的新方法

) )
5 6
其中,k (1 k 6)为模型的待定参数。
通过对这个生态系统的观测可以得到若干组捕
食者和被捕食者在 t 时刻各自数目的观测数据(具
体可见2006年全国研究生数学建模竞赛B题中数据
文件DATA1.TXT、DATA2.TXT、DATA3.TXT和
DATA4.TXT)。利用有关数据,解决以下参数估计
ln复相关系数决定系数调整的决定系数回归方程的估计标准误差1000100010000000095718251误差来源离差平方和自由度方差f统计量概率p值回归平方和残差平方和总平方和1142910000114291380970000415810方差分析表变量回归系数取值回归系数的标准误差t统计量概率95的置信区间置信下限置信上限常数项13820000051201000001381913821200000001078100000200020001200000005852100000120001200110000000561110000010001000各参数的显著性检验表1表明回归分析的拟合优度为1000
观测值为参数 5,6 的估计值。对于问题1,取:
5 10, 6 60
综合以上分析结果得到所有参数的高精度估计值:
(1, 2 , 3, 4 , 5, 6 )T (2, 0.2,12, 1,10, 60)T
问题2.观测数据无误差,但2 未知时确定需要观
测数据的最少组数
图1 残差图
从残差图来看,残差围绕着0随机波动,说明使 用该模型比较合理。
由观测数据的散点图看出,捕食者-被捕食者模 型的解具有明显的周期性。即存在常数 T 0 ,使
得t,x(t T ) x(t)且 y(t T ) y(t) 。只要观测序列
捕食-被捕食模型(精)

都有
lim x(t) x ,
t
0
称x0是方程(1)的稳定平衡点
不求x(t), 判断x0稳定性的方法——直接法
(1)的近似线性方程
x F(x )(x x ) (2)
0
0
F(x0 ) 0 x0稳定(对(2),(1))
F(x0 ) 0 x0不稳定(对(2),(1))
P*
P
y=f(x)
E r x0稳定 0
x0*=N/2 x0
Nx
P的横坐标 x0~平衡点
P的纵坐标 h~产量
产量最大
P*
(
x* 0
N
/
2,
hm
rN
/ 4)
E* hm / x0* r / 2
控制渔场鱼量为最大鱼量的一半
效益模型 在捕捞量稳定的条件下,控制捕捞
强度使效益最大.
假设 • 鱼销售价格p • 单位捕捞强度费用c
产量模型 x(t) F (x) rx(1 x ) Ex N
F(x) 0
平衡点
x0
N (1
E ), r
x1 0
稳定性判断
F(x0 ) E r, F(x1) r E
E r F(x0 ) 0, F(x1) 0 x0稳定, x1不稳定
E r F(x0 ) 0, F(x1) 0 x0不稳定, x1稳定
x(t) F (x) rx(1 x ) Ex N
• 不需要求解x(t), 只需知道x(t)稳定的条件
一阶微分方程的平衡点及其稳定性
x F (x) (1) 一阶非线性(自治)方程
F(x)=0的根x0 ~微分方程的平衡点
白鲸优化算法 matlab程序

白鲸优化算法(Whale Optimization Algorithm,WOA)是一种基于鲸鱼社会行为的启发式优化算法。
与其他启发式算法相比,白鲸优化算法具有较快的收敛速度和较高的优化精度,适用于多种优化问题的求解。
而Matlab作为一种功能强大的编程工具,可以用来实现白鲸优化算法,快速求解各种复杂的优化问题。
本文将从以下几个方面介绍白鲸优化算法的原理和在Matlab中的实现:一、白鲸优化算法的原理白鲸优化算法是一种模拟鲸鱼族群行为的优化算法,其核心思想是模拟鲸鱼在觅食过程中的捕食行为。
白鲸在觅食时会根据自身的经验和邻近白鲸的经验来调整自己的行进方向,以寻找最佳的觅食位置。
在算法中,每条白鲸都被看作一个潜在的解,而整个白鲸族群则被看作是一个解空间。
白鲸通过迭代寻找最优解,不断调整自身位置和速度,直到达到最优解或者迭代次数达到预定值。
二、白鲸优化算法的具体步骤1. 初始化白鲸族群:随机生成初始解,即随机生成白鲸的位置和速度。
2. 设定迭代终止条件:设定迭代次数的上限或者设定目标函数值的阈值,以确定算法的终止条件。
3. 更新白鲸位置和速度:根据特定的更新规则,不断调整白鲸的位置和速度,以寻找最优解。
4. 评估适应度:计算每条白鲸的适应度,即目标函数值,以确定是否达到最优解。
5. 确定最优解:根据迭代结果,确定最优解的位置和目标函数值。
三、在Matlab中实现白鲸优化算法在Matlab中,可以利用其强大的算法库和矩阵运算功能,比较容易地实现白鲸优化算法。
下面以一个简单的优化问题为例,介绍在Matlab中如何实现白鲸优化算法。
(这里应该有一段代码示例,以展示在Matlab中实现白鲸优化算法的具体代码)四、使用白鲸优化算法解决实际问题白鲸优化算法可以用来解决各种优化问题,包括函数优化、工程优化、机器学习等领域。
在实际应用中,可以根据具体问题的特点,调整白鲸优化算法的参数和参数设置,来获得更好的优化效果。
五、总结白鲸优化算法是一种较新的启发式优化算法,具有快速的收敛速度和较高的优化精度。
Matlab上机实验题及参考解答

Matlab上机实验题及参考解答目录实验一Matlab初步实验 (2)一matlab基本功能介绍 (2)二Matlab扩展功能 (2)三练习 (2)四练习题参考解答 (3)实验二概率模型实验 (5)一复习 (5)二事件的响应 (5)三Matlab中随机数字的生成与处理 (5)四练习 (5)五练习题参考解答 (5)实验三插值与拟合 (7)实验四线性规划与非线性规划 (8)4.1 实验目的 (8)4.2 实验内容 (9)4.3 综合练习 (10)4.4 课外作业 (11)实验五数值计算 (12)5.1 实验目的 (12)5.2 实验内容 (12)4.3 综合练习 (15)4.4 课外作业 (15)实验六计算机图像处理 (16)6.1 实验目的 (16)6.2 实验内容 (16)6.3 综合练习 (17)6.4 课外作业 (19)实验七综合练习 (19)7.1 实验目的 (19)7.2 实验内容 (19)7.3 综合练习 (20)7.4 课外作业 (21)实验一 Matlab 初步实验 一 matlab 基本功能介绍1 编程环境2语法规范:for … end; if …else if …end; 3 矩阵运算 4 图形绘制二 Matlab 扩展功能1 编程练习:(1) 绘出序列kk x x r r 0(1),0.2083=+=;(2) 绘出曲线rtx t x e t 0(),0=>2 扩展功能(1) 矩阵中全部数据、部分数据的截取、更改; (2) 矩阵的初始化与赋值如:A=zeros(5,5); A(2:2:)=[1,2 3 4 5] 3 微积分基础(见实验4) 符号计算三 练习(课上编程完成下列练习,课后上机验证) 1 求和S=1+2+3+…+100; 2 求和e 1111!2!10!1...=++++3求和S 1112310!1...=++++4设A 234576138⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦, 求A 的逆、特征值和特征向量;验证Ax=λx 5 画函数图()011mrtm x x t x e x -=⎛⎫+- ⎪⎝⎭6 展开 (x-1)(x-2)…(x-100)7 因式分解 x 8—y 8; 因数分解200520068 求极限312lim +∞→⎪⎭⎫⎝⎛++n n n n9 )](sin[cos 22x x y += 求dxdy10 求积分x xdx 10ln ⎰11 求积分3⎰并且画出所求的平面区域12 设x+2y=1, 2x+3y=6, y=2x 2, 画出各个方程图形,求出曲线交点.四 练习题参考解答%MatlabTrain1.m clear all % 2nd e=1; temp=1; for I=1:1:10temp=temp*I; e=e+1/temp; end e%%%%%%%%%%% clear all % 3nd S=0; temp=1;for I=1:1:100temp=temp*I; endfor J=1:1:temp S=S+1/J; end S%%%%%%%%%%%%%% clear all % 11ndx=linspace(0,4); y=1./sqrt(x.^5+1); plot(x,y) for t=1:0.1:3yt=1./sqrt(t.^5+1);hold online([t,t],[0,yt]);end%fill(t,yt,'b') %%%%%%%%%%%%% clear all% 12ndx=linspace(-2,2);y=[0.5-0.5*x; 2-2/3.*x; 2*x.^2]; plot(x,y)grid实验二概率模型实验一复习1 小结上次编程练习中存在的问题,讲述部分习题答案2 画图命令介绍:line二事件的响应(1) 获取鼠标的位置%MatlabTrain2.mclear all% 鼠标响应p=ginput(3)plot(p(:,1),p(:,2),'r*')(2) 键盘输入相应t=input('How many apples? t=');m=t+3三Matlab中随机数字的生成与处理1 随机数的生成2 产生随机数字3 产生某区间的整数4 生日模拟问题的Montecaro法设计技术、思路学生尝试编程四练习(1) 编程验证人数在不同年龄段的生日的概率计算(2) 编程实现游戏”聪明伶俐100分”(3) 编程实现两家电影院的座位数问题(4) 编程实现某图形面积的计算五练习题参考解答(1) 生日问题程序示例:%birthPro.mn=0;nStudents=30;for I=1:1000 %how many times testy=0;x=1+floor(365*rand(1,nStudents));%get nStudents random numbersfor J=1:nStudents-1for K=J+1:nStudentsif x(J)==x(K)y=1;break;endendendn=n+y;%count, n times of that there are two people's dirthday in the same dayendfreq=n/I % caculating the frequently(2) 编程实现游戏”聪明伶俐100分”参考答案%MatlabTrain2.mclear all% 鼠标响应x=floor(10*rand(1,4))t=input('填入四个数字[n1 n2 n3 n4]=');flag=0;A=0;B=0;for I=1:1:8flag=flag+1;A=0;B=0;if t==xswitch flagcase 1disp('聪明绝顶!');case 2disp('聪明!');case 3disp('有点聪明!');case 4disp('还可以!');case 5disp('聪明伶俐100分!');case 6disp('聪明伶俐90分!');case 7disp('聪明伶俐85分!');case 8disp('聪明伶俐80分!');otherwisedisp('赫赫!');endbreak;endfor J=1:1:4for K=1:1:4if x(J)==t(K) & J==KA=A+1;else if x(J)==t(K) & J~=KB=B+1;endendendends='AABB';s(1)=INT2STR(A);s(3)=INT2STR(B);disp(s);t=input('不重复填入四个数字[n1 n2 n3 n4]=');endif flag>0disp('太烂了! 正确答案是:');xend实验三插值与拟合一复习讲述聪明伶俐100分的编程中的问题二插值三拟合课堂练习2 某之股票价格from 2003 09 01 to 2004 01 02,试进行插值、拟合%TimerS.m%from 2003 09 01 to 2003 01 02clear all;dataST=[15.09 14.7514.95 14.722.88 21.8619.82 19.09];plot(dataST)四课外练习112)进行多项式拟合,求出拟合多项式,并求出多项式在t=4, 5处的值.实验四线性规划与非线性规划4.1 实验目的1 用Matlab求解线性规划2 用Matlab求解非线性规划4.2 实验内容4.2.1 线性规划求解实用格式:x=lp(c, A, b, xLB,xUB,x0,nEq)可以求解下列线性规划模型:min f=c’xs.t. Ax=<=b(其中前nEq个约束为等式约束,即等式约束的个数,其余是不等式约束<=) xLB<=x<=xUB函数中x0参数是算法迭代的初始点,任意取值例1 求解下列线性规划1)123123123123min2..360210200,1,2,3jz x x xs t x x xx x xx x xx j=--+⎧⎪++≤⎪⎪-+≤⎨⎪+-≤⎪≥=⎪⎩,2)1235635623416367min..3621060,1,,7jz x x x x xs t x x xx x xx xx x xx j=-++-⎧⎪++=⎪⎪+-=⎪⎨-+=⎪⎪++=⎪≥=⎪⎩例1求解示例c=[-2 -1 1]';%book page 72 Number 16-1A=[3 1 1;1 -1 2;1 1 -1];b=[60 10 20]';xlb=[0 0 0]';xub=[inf inf inf]';x0=[0 0 0]'; x=lp(c,A,b,xlb,xub,x0,0)% x=(15 5 0)'例2 求解示例c2=[1 -1 1 0 1 -1 0]';%book page 72 Number 16-3A2=[0 0 3 0 1 1 0;...0 1 2 -1 0 0 0;...-1 0 0 0 0 1 0;...0 0 1 0 0 1 1];b2=[6 10 0 6]';xlb2=[0 0 0 0 0 0 0]';xub2=[inf inf inf inf inf inf inf]';x02=[0 0 0 0 0 0 0]';x2=lp(c2,A2,b2,xlb2,xub2,x02,4)% unbounded4.2.2 非线性规划1)命令格式1:[X, OPTIONS]=constr(‘FUN’, X, OPTIONS,VLB,VUB)2)命令格式2:X=FMINCON(FUN,X0,A,B,Aeq,Beq)% minimizes FUN subject to the linear equalities% Aeq*X = Beq as well as A*X <= B. (Set A=[] and B=[] if no inequalities exist.)例2 求解非线性规划y x x x x s t x3211221min22 ..1=++-≤-求解示例%unconop.mfunction y=unconop(x)y=x(1).^3+2*x(1).*x(2)+2*x(2).^2;%book page 148 ex.7-1 后建立调用函数xx=fmincon('unconop',[0 0]',[-1 0],-1,[],[])%book page 148 ex.7-1 4.3 综合练习学生独立编写程序,求解一个含有2个变量的线性规划问题,要求:1)编写程序,把可行域画上阴影;2)求出最优解,在可行域上标出最优解;3)求出基本解,并在上图中表示出来;4)求出基本可行解,观察单纯形方法迭代时,顶点的变化.可行域画图与表出阴影示例:syms x y[u(1),v(1)]=solve('y=x+2','y=2*x');%求出交点坐标[u(2),v(2)]=solve('y=-x+2','y=2*x');[u(3),v(3)]=solve('y=x+2','y=-x+2');x=linspace(0,3,5); %直线作图y=[2*x;-x+2;x+2];line(x,y); gridpatch(double(u),double(v),'b'); 运行结果:4.4 课外作业1 求解线性规划131223min ..250.530,1,2,3i x x s t x x x x x i +⎧⎪+≤⎪⎨+=⎪⎪≥=⎩ (1) 求解线性规划;x *=()(2) 目标函数中c 1由1变为(-1.25)时求最优解;(3) 目标函数中c 1由1变为(-1.25),c 3由1变为2时求最优解;(4) 约束条件中53b ⎛⎫= ⎪⎝⎭变为21b -⎛⎫'= ⎪⎝⎭时,求解;(5) 约束条件中53b ⎛⎫= ⎪⎝⎭变为23b ⎛⎫'= ⎪⎝⎭时,求解[刁在筠,运筹学(第二版),高等教育出版社,2004,01 p74第20题]2 求解非线性规划y x x x x x x x 3221122233min 2223=++++ 注:无约束非线性规划问题, 命令:fminunc子函数% unconop.mfunction y=unconop(x)y=x(1).^2+2*x(1).*x(2)+2*x(2).^2+2*x(2).*x(3)+3*x(3).^2;%book page 148 ex.7-1 主函数:xx=fminunc('unconop',[0.1 0.1 1]')思考:绘出两个变量的线性规划问题的可行域、标出可行的整数解和求出可行解;演示单纯形方法的迭代过程,如j z x x s t x x x x x j 121212min 2..360200,1,2=--⎧⎪+≤⎪⎪+≤⎨⎪⎪≥=⎪⎩实验五 数值计算5.1 实验目的1 掌握代数数值计算2 掌握常微分方程数值计算5.2 实验内容5.2.1 关于多项式设多项式1110()n n n n p x a x a x a x a --=++++表示为110[,,,,]n n p a a a a -=1)求多项式的根 roots(p) %求出p(x)=0的解。
数学建模实验三 Lorenz模型与食饵模型

数学建模实验三 Lorenz模型与食饵模型一、实验目的1、学习用Mathematica求常微分方程的解析解和数值解,并进行定性分析;2、学习用MATLAB求常微分方程的解析解和数值解,并进行定性分析。
二、实验材料问题图是著名的洛仑兹混沌吸引子,洛仑兹吸引子已成为混沌理论的徽标,好比行星轨道图代表着哥白尼、开普勒理论一样。
洛仑兹是学数学出身的,1948年起在美国麻省理工学院(MIT)作动力气象学博士后工作,1963年他在《大气科学杂志》上发表的论文《确定性非周期流》是混沌研究史上光辉的著作。
以前科学家们不自觉地认为微分方程的解只有那么几类:1)发散轨道;2)不动点;3)极限环;4)极限环面。
除此以外,大概没有新的运动类型了,这是人们的一种主观猜测,谁也没有给出证明。
事实上这种想法是非常错误的。
1963年美国麻省理工学院气象科学家洛仑兹给出一个具体模型,就是著名的Lorenz模型,清楚地展示了一种新型运动体制:混沌运动,轨道既不收敛到极限环上也不跑掉。
而今Lorenz 模型在科学与工程计算中经常运用的问题。
例如,数据加密中。
我们能否绘制出洛仑兹吸引子呢图洛仑兹混沌吸引子假设狐狸和兔子共同生活在同一个有限区域内,有足够多的食物供兔子享用,而狐狸仅以兔子为食物.x为兔子数量,y表狐狸数量。
假定在没有狐狸的情况下,兔子增长率为400%。
如果没有兔子,狐狸将被饿死,死亡率为90%。
狐狸与兔子相互作用的关系是,狐狸的存在使兔子受到威胁,且狐狸越多兔子增长受到阻碍越大,设增长的减小与狐狸总数成正比,比例系数为。
而兔子的存在又为狐狸提供食物,设狐狸在单位时间的死亡率的减少与兔子的数量成正比,设比例系数为。
建立数学模型,并说明这个简单的生态系统是如何变化的。
预备知识1、求解常微分方程的Euler 折线法求初值问题⎩⎨⎧=='00)(),,(y x y y x f y () 在区间],[0n x x 上的数值解,并在区间插入了结点)()(110n n x x x x <<<<- 。