资源描述:
《20115394王福临数学实验作业(函数迭代)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、重庆大学学生实验报告实验课程名称数学实验开课实验室DS1401学院计算机学院年级大二专业计科六班学生姓名王福临学号20115394开课时间至学年第学期总成绩教师签名数理学院制开课学院、实验室:DS1401实验时间:2013年4月13日课程名称数学实验实验项目名称函数迭代实验项目类型验证演示综合设计其他指导教师何光辉成绩实验目的·(1)理解迭代的基本概念;·(2)掌握迭代数列的系列图形表示方法;·(3)以一类特殊二次函数(Logistic函数)为例,掌握二次函数迭代序列的收敛性分析方法;·(4)熟悉编写函数迭代的MATLAB程序;·(5)了解二元函数迭代方法及其图形特征基础实验一、实验内容1、
2、迭代以下函数,分析其收敛性。任选一个完成。使用线性联结图、蛛网图或费根鲍姆图对参数a进行讨论与观察,会得到什么结论?2.生物种群的数量问题种群的数量(为方便起见以下指雌性)因繁殖而增加,因自然死亡和人工捕获而减少。记xk(t)为第t年初k岁(指满k-1岁,未满k岁,下同)的种群数量,bk为k岁种群的繁殖率(1年内每个个体繁殖的数量),dk为k岁种群的死亡率(1年内死亡数量占总量的比例),hk为k岁种群的捕获量(1年内的捕获量)。今设某种群最高年龄为5岁(不妨认为在年初将5岁个体全部捕获),b1=b2=b5=0,b3=2,b4=4,d1=d2=0.3,d3=d4=0.2,h1=400,h2=2
3、00,h3=150,h4=100。A. 建立xk(t+1)与xk(t)的关系(k=1,2,...5,t=0,1,...),.如为简单起见,繁殖量都按年初的种群数量xk(t)计算,不考虑死亡率。B. 用向量表示t年初的种群数量,用bk和dk定义适当的矩阵L,用hk定义适当的向量h,将上述关系表成的形式。C. 设t=0种群各年龄的数量均为1000,求t=1种群各年龄的数量。又问设定的捕获量能持续几年。D. 种群各年龄的数量等于多少,种群数量x(t)才能不随时间t改变。记D的结果为向量x*,给x*以小的扰动作为x(0),观察随着t的增加x(t)是否趋于x*,分析这个现象的原因。二、实验过程(一
4、般应包括实验原理或问题分析,算法设计、程序、计算、图表等,实验结果及分析)1.开启软件平台——MATLAB,开启MATLAB编辑窗口;2.根据各种数值解法步骤编写M文件3.保存文件并运行;4.观察运行结果(数值或图形);5.根据观察到的结果写出实验报告,并浅谈学习心得体会。应用实验(或综合实验)1、迭代以下函数,分析其收敛性。任选一个完成。使用线性联结图、蛛网图或费根鲍姆图对参数a进行讨论与观察,会得到什么结论?解:选择第3)题完成(1)线性联结图解法:>>a=[0.1,0.3,0.5,0.8];>>x1=[];x2=[];x3=[];x4=[];x1(1)=0.5;x2(1)=0.5;x3
5、(1)=0.5;x4(1)=0.5;>>fori=2:20x1(i)=x1(i-1)^4-a(1);x2(i)=x2(i-1)^4-a(2);x3(i)=x3(i-1)^4-a(3);x4(i)=x4(i-1)^4-a(4);end>>n=1:20;subplot(2,2,1),plot(n,x1),title('a=0.1,x0=0.5')subplot(2,2,2),plot(n,x2),title('a=0.3,x0=0.5')subplot(2,2,3),plot(n,x3),title('a=0.5,x0=0.5')subplot(2,2,4),plot(n,x4),title('
6、a=0.8,x0=0.5')由上图可知:a=0.1,x0=0.5,a=0.3,x0=0.5和a=0.5,x0=0.5时,函数迭代收敛,a=0.8,x0=0.5时函数迭代不收敛。(2)蛛网模型解法:a=0.5;ezplot('x^4-0.5',[-0.6,-0.2]),holdonezplot('x',[-0.6,-0.2]);x1=[];x1(1)=0.2;fori=2:50x1(i)=x1(i-1)^4-a;plot([x1(i-1),x1(i-1)],[x1(i-1),x1(i)]);plot([x1(i-1),x1(i)],[x1(i),x1(i)]);end由上图可知,函数a=0.5
7、,x0=0.2时,函数迭代收敛(3)费根鲍姆图解法:iter.m:functionroot=iter(x0,a)x(1)=x0;fori=2:100x(i)=a*sin(pi*x(i-1));endroot=x;died.mclf;x=[];x0=0.2;holdon;fora=0:0.01:1root=iter(x0,a);plot(a.*ones(size(root(51:100))),root(51:1