- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE
PAGE1
东南大学《数学实验》报告
实验内容:差分方程及微分方程数值解
一实验目的
熟悉迭代法及微分方程数值方法
二预备知识
(1)了解差分方程稳定性、周期分解、混沌等相关知识
(2)了解欧拉方法、龙格-库特方法。
三实验内容与要求
(一)Volterra方程数值解
方程
其中a=1,b=0.1,c=0.5,d=0.04
命令与结果
在函数编辑器中输入:
functiondxdt=euler(t,x)
dxdt=[x(1)*(1-0.1*x(2))
x(2)*(-0.5+0.02*x(1))];
end
四阶龙格-库塔公式:
在命令窗口中输入:
tspan=[015];
x0=[25;2];
[t,x]=ode45(@euler,tspan,x0);
plot(t,x(:,1),r-,LineWidth,0.5);
holdon;
plot(t,x(:,2),g-,LineWidth,0.5);
holdon;
axis([0150125])
legend(x(1),x(2))
gridon
title(TheNumericalSolutionOfCalculablewayoffourthrankRounge-kutt)
plot(x(:,1),x(:,2))
欧拉方法:
在命令窗口中输入:
tspan=[015];
x0=[25;2];
[t,x]=ode23(@euler,tspan,x0);
plot(t,x(:,1),r-,LineWidth,0.5);
holdon;
plot(t,x(:,2),g-,LineWidth,0.5);
holdon;
axis([0150125])
legend(x(1),x(2))
gridon
title(TheNumericalSolutionOfEulerEquation)
plot(x(:,1),x(:,2))
相图
四阶龙格-库塔公式:
欧拉公式:
轨线图
四/五阶龙格-库塔公式:
欧拉公式:
差分阻滞增长模型
在t时刻单位时间内的人口数量的变化量仅仅与此时的人口数量x有关(等于右边的值),其中的r表示人口的固有增长率,N表示能容纳的最大人口数.
经过单位时间,即一个繁殖周期的种群数量的增长量仅仅与前一个时期的种群数量有关。于是模型为
即
这是一个一阶非线性差分方程.对于给定的初值,我们可以从这个递推公式运用计算机很容易地计算出一些xk.这是在计算机出现以后的一个新的特点.但是我们更关心的是当时间趋于无穷时,即k趋于无穷时,xk的极限如何,即差分方程平衡点的稳定性问题。
求得差分方程(2)的平衡点为0和(b-1)/b.它们分别对应于差分方程(1)的平衡点0和N.
我们将这个差分方程(2)在平衡点附近展开,有
注意到b=1+r1,平衡点0是不稳定的.
略去高阶项得
因此当|2-b|1时,平衡点x*=(b-1)/b是稳定的.|2-b|1即b3时,平衡点x*是不稳定的.
(1)稳定情况()
稳定性分析
b=1.6,在1到3范围之间
稳定
命令与结果(图)
functionx=block(b,x0)
b=1.6;
ifnargin2
x0=0.5;
end
x=x0;
n=1:10000;
fori=2:10000
x(i)=b*x(i-1)*(1-x(i-1));
end
plot(n,x,.);
end
结果图:
稳定性分析
b=2.2,在1到3范围之间
稳定
命令与结果(图)
functionx=block(b,x0)
b=2.2;
ifnargin2
x0=0.5;
end
x=x0;
n=1:10000;
fori=2:10000
x(i)=b*x(i-1)*(1-x(i-1));
end
plot(n,x,.);
end
结果图:
(2)不稳定情况
稳定性分析
b=3.3在1到3范围之间
不稳定
命令与结果(图)
稳定性分析
b=3.63在1到3范围之间
不稳定
命令与结果(图)
(3)倍周期分解
求稳定平衡点
可得两个平衡点:0.47940.8236
程序:
functionx=block(b,x0)
b=3.3;
ifnargin2
x0=0.5;
end
x=x0;
n=1:100;
fori=2:100
x(i)=b*x(i-1)*(1-x(i-1));
end
数值结果
ans=
Columns1through16
0.50000.82500.47640.82320.4804
文档评论(0)