用Matlab观察分岔与混沌现象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab 实验报告
实验目的:用Matlab 观察分岔与混沌现象。
题目:Feigenbaum 曾对超越函数sin()y x λπ=(λ为非负实数)进行了分岔与混沌的研究,试利用迭代格式1sin()k k x x λπ+=,做出相应的Feigenbaum 图
算法设计:
1、因为λ为非负实数,所以试将λ的范围限制在[0,3],制图时x 的坐标限制在[0,3],考虑到y 的值有正有负,所以把y 的坐标限制在[-3,3]。
2、根据课本上给的例题,编写程序代码来绘图。
程序代码:
clear;clf;
hold on
axis([0,3,-3,3]);
grid
for a=0:0.005:3
x=[0.1];
for i=2:150
x(i)=a*sin(pi*x(i-1));
end
pause(0.1)
for i=101:150
plot(a,x(i),'k.');
end
end
图像:
结果分析:在λ取值在[0,0.3]区间内时,y的值保持在0,然后开始上升,在λ取值在0.75附近时,开始分岔为两支。从整体上看,随着λ的值越来越大,所产生的迭代序列越来越复杂,可能会随机地落在区间(-3,3)的任一子区间内。并可能重复,这就是混沌的遍历性。
进一步分析:由于λ的取值空间偏小,考虑扩大其取值范围到[0,6],再进一步观察图像。程序代码如下:
clear;clf;
hold on
axis([0,6,-6,6]);
grid
for a=0:0.05:6
x=[0.1];
for i=2:150
x(i)=a*sin(pi*x(i-1));
end
pause(0.1)
for i=101:150
plot(a,x(i),'k.');
end
end
图像:
分析:由图像可见,随着 取值范围的增大,图像呈现出周期性的特点。
总结:1、当取值范围比较小,不足以发现图像规律时,可以考虑扩大变量的取值范围。
2、由于图像是由大量点构成的,所以在编程的时候注意循环
语句的应用。