怎样用Matlab求解差分方程题

怎样用Matlab求解差分方程题

ID:40457429

大小:412.10 KB

页数:34页

时间:2019-08-03

怎样用Matlab求解差分方程题_第1页
怎样用Matlab求解差分方程题_第2页
怎样用Matlab求解差分方程题_第3页
怎样用Matlab求解差分方程题_第4页
怎样用Matlab求解差分方程题_第5页
资源描述:

《怎样用Matlab求解差分方程题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用Matlab求解差分方程问题一、一阶线性常系数差分方程二、高阶线性常系数差分方程三、线性常系数差分方程组一、一阶线性常系数差分方程濒危物种的自然演变和人工孵化问题Florida沙丘鹤属于濒危物种,它在较好自然环境下,年均增长率仅为1.94%,而在中等和较差环境下年均增长率分别为-3.24%和-3.82%,如果在某自然保护区内开始有100只鹤,建立描述其数量变化规律的模型,并作数值计算。模型建立记第k年沙丘鹤的数量为xk,年均增长率为r,则第k+1年鹤的数量为xk+1=(1+r)xkk=0,1,2······已知x0=100,在较好,中等和较差的自然环境下r=0.0

2、194,-0.0324,和-0.0382我们利用Matlab编程,递推20年后观察沙丘鹤的数量变化情况Matlab实现首先建立一个关于变量n,r的函数functionx=sqh(n,r)a=1+r;x=100;fork=1:nx(k+1)=a*x(k);end在command窗口里调用sqh函数k=(0:20)';>>y1=sqh(20,0.0194);>>y2=sqh(20,-0.0324);>>y3=sqh(20,-0.0382);>>round([k,y1',y2',y3'])利用plot绘图观察数量变化趋势可以用不同线型和颜色绘图rgbcmykw分别表示红绿

3、兰兰绿洋红黄黑白色:+o*.Xsd表示不同的线型plot(k,y1,k,y2,k,y3)在同一坐标系下画图plot(k,y2,':')>>plot(k,y2,'--')>>plot(k,y2,'r')>>plot(k,y2,'y')>>plot(k,y2,'y',k,y1,':')>>plot(k,y2,k,y1,':')>>plot(k,y2,'oy',k,y1,':')用gtext(‘r=0.0194’),gtext(‘r=-0.0324’),gtext(‘r=-0.0382’)在图上做标记。人工孵化是挽救濒危物种的措施之一,如果每年孵化5只鹤放入保护区,观察在

4、中等自然条件下沙丘鹤的数量如何变化Xk+1=aXk+5,a=1+r如果我们想考察每年孵化多少只比较合适,可以令Xk+1=aXk+b,a=1+rfunctionx=fhsqh(n,r,b)a=1+r;X=100;Fork=1:nX(k+1)=a*x(k)+b;endk=(0:20);%一个行向量y1=(20,-0.0324,5);也是一个行向量round([k’,y1’])对k,y1四舍五入,但是不改变变量的值plot(k,y1)ky1是行向量列向量都可以也可以观察200年的发展趋势,以及在较差条件下的发展趋势,也可以考察每年孵化数量变化的影响。一阶线性常系数差分方程

5、的解、平衡点及其稳定性自然环境下,b=0人工孵化条件下令xk=xk+1=x得差分方程的平衡点k→∞时,xk→x,称平衡点是稳定的高阶线性常系数差分方程如果第k+1时段变量Xk+1不仅取决于第k时段变量Xk,而且与以前时段变量有关,就要用高阶差分方程来描述一年生植物的繁殖一年生植物春季发芽,夏天开花,秋季产种,没有腐烂,风干,被人为掠取的那些种子可以活过冬天,其中一部分能在第2年春季发芽,然后开花,产种,其中的另一部分虽未能发芽,但如又能活过一个冬天,则其中一部分可在第三年春季发芽,然后开花,产种,如此继续,一年生植物只能活1年,而近似的认为,种子最多可以活过两个冬天

6、,试建立数学模型研究这种植物数量变化的规律,及它能一直繁殖下去的条件。模型及其求解记一棵植物春季产种的平均数为c,种子能活过一个冬天的(1岁种子)比例为b,活过一个冬天没有发芽又活过一个冬天的(2岁种子)比例仍为b,1岁种子发芽率a1,2岁种子发芽率a2。设c,a1,a2固定,b是变量,考察能一直繁殖的条件记第k年植物数量为Xk,显然Xk与Xk-1,Xk-2有关,由Xk-1决定的部分是a1bcXk-1,由Xk-2决定的部分是a2b(1-a1)bcXk-2Xk=a1bcXk-1+a2b(1-a1)bcXk-2Xk=a1bcXk-1+a2b(1-a1)bcXk-2实际上

7、,就是Xk=pXk-1+qXk-2我们需要知道x0,a1,a2,c,考察b不同时,种子繁殖的情况。在这里假设X0=100,a1=0.5,a2=0.25,c=10,b=0.18~0.20这样可以用matlab计算了Xk=a1bcXk-1+a2b(1-a1)bcXk-2Functionx=zwfz(x0,n,b)C=10;a1=0.5;a2=0.25;p=a1*b*c;q=a2*b*(1-a1)*b*c;X1=x0;X2=p*(x1);fork=3:nX(k)=p*(xk-1)+q*(xk-2);endK=(0:20)’;Y1=zwfz(100,21,0.18);Y

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。