数学实验—实验报告3
一、实验项目:收敛混沌—迭代 二、实验目的和要求
a. 继续熟悉MATLAB软件的用户环境,掌握基本命令,用图形放大,迭代等方法求解函数问题;
b. 掌握MATLAB软件的绘图命令,能够熟练应用循环和选择结构实现各种循环选择功能;
c. 借助MATLAB软件的绘图功能,对函数的特性进行探讨,针对题目的方程求解,运用图像的信息找出最优解。
三、实验内容 1、问题描述
(1)、将方程x?5x?2x?1?0改写成各种等价的形式进行迭代,观察迭代是否收敛,并给出解释。 (2)、迭代以下函数,分析其收敛性。任选一个完成。 f(x)=a-(x- √a)2; f(x)=asin(x); f(x)=x4-a
使用线性连接图、蛛网图或费根鲍姆图对参数a进行讨论和观察,会得到什么结论?
532、实验步骤: 题一:
(1)分析题目:
将方程x?5x?2x?1?0可以改成如下的等价形式:
53x5?5x3?1x?= f1(x)
2x?52x?1?5x3= f2(x)
3x?2x?1?x5=f3(x) 5
(2)代码 >> x=[]; >> x(1)=1; >> for i=2:15; xr=x(i-1);
第1页 / 共6页
x(i)=(xr^5+5*xr^3+1)/2; end;
>> subplot(221); >> n=1:15; >> plot(n,x); >> xlabel('n'); >> ylabel('Xn');
>> title('x(1)=1,f1(x)');
>> for i=2:20; xr=x(i-1);
x(i)=(2*xr-5*xr^3-1)^0.2; end;
>> subplot(222); (3)图表
x 1062>> n=1:20; >> plot(n,x); >> xlabel('n'); >> ylabel('Xn');
>> title('x(1)=1,f2(x)');
>> for i=2:20; xr=x(i-1);
x(i)=((2*xr-xr^5-1)/5)^(1/3); end
>> subplot(223); >> n=1:20; >> plot(n,x); >> xlabel('n'); >> ylabel('Xn');
>> title('x(1)=1,f3(x)');
x(1)=1,f1(x)2.52x(1)=1,f2(x)32Xn10Xn1.5105101505nx(1)=1,f3(x)110n1520Xn0.500510n1520
(4)分析
由上图,f1(x)明显不收敛,放大图像,f2(x)收敛于x=2.016; f3(x)收敛于x=0.4004.
题二:
(1)分析题目:
f(x)=asin(x);对a进行赋值,分别迭代。 (2)代码
第2页 / 共6页
>> a=1/2; >>x=[];
>>x(1)=pi/2; >>for i=2:20;
xr=x(i-1); x(i)=a*sin(xr); end;
>>subplot(221); >>n=1:20; >>plot(n,x); >>grid;
>>xlabel('n'); >>ylabel('Xn'); >> title('a=1/2');
>> a=1/4; >> x=[];
>> x(1)=pi/2; >> for i=2:20; xr=x(i-1); x(i)=a*sin(xr); end;
>> subplot(222); >> n=1:2; >> n=1:20; >> plot(n,x); >> grid;
>> xlabel('n'); >>ylabel('Xn'); >> title('a=1/3');
>> a=2; >> x=[]; >>x(1)=pi/2; >>for i=2:20;
xr=x(i-1); x(i)=a*sin(xr); end;
subplot(223); >> plot(n,x); >> grid;
>> xlabel('n'); >>ylabel('Xn'); >> title('a=1/4'); >> a=4; >> x=[];
>> x(1)=pi/2;
第3页 / 共6页
>> for i=2:20; xr=x(i-1); x(i)=a*sin(xr); end;
>> subplot(224); >> n=1:20; >> plot(n,x); >> grid;
>> xlabel('n'); >> ylabel('Xn'); >> title('a=1');
(3)图表
a=1/2,x(1)=pi/221.521.5a=1/4,x(1)=pi/2Xn10.50051015na=2,x(1)=pi/220Xn10.50051015na=4,x(1)=pi/22021.842XnXn1.61.40510n15200-2-40510n1520
分析:由图可知,当a分别为1/2,1/4,2时,均收敛,当为4时,不收敛。 采用蛛网图: 代码: >> x1=[]; >> a=1/2;
>> x=-2*pi:0.1:2*pi; >> y=a*sin(x); >> subplot(221); >> plot(x,y); >> hold on;
>> ezplot('x',[-2*pi,2*pi]); >> x1(1)=-pi; >> for i=2:50;
第4页 / 共6页
x1(i)=a*sin(x1(i-1));
plot([x1(i-1),x1(i-1)],[x1(i-1),x1(i)]); plot([x1(i-1),x1(i)],[x1(i),x1(i)]); end
>> title('a=1/2');
然后,a分别取值1/4, 2,4带入。
a=1/25050a=1/4-5-50xa=25-5-50xa=455050-5-50x5-5-50x5
分析:当a分别为1/2, 1/4, 2, 时,收敛,当其值为4时,不收敛。
费根鲍姆法: 代码: Iter.M:
function root=iter(x,a) x=[];x(1)=0.2; for i=2:400
x(i)=a*sin(x(i-1)); end; root=x;
>>clf: >> x=[];
>>for a=0:0.01:4;
root=iter(x,a);
plot(a.*ones(size(root(51:200))),root(51:200),'.'); >>hold on;
第5页 / 共6页
>>end;
>> xlabel('Parameter a');
>> ylabel('迭代序列(51-200)')
432迭代序列(51-200)10-1-2-3-400.511.522.5Parameter a33.54
分析:当a的范围是0-2.2时函数收敛。
第6页 / 共6页