数学实验南邮答案2.docx
《数学实验南邮答案2.docx》由会员分享,可在线阅读,更多相关《数学实验南邮答案2.docx(27页珍藏版)》请在冰豆网上搜索。
数学实验南邮答案2
第二次练习题
1、设
,数列
是否收敛?
若收敛,其值为多少?
精确到6位有效数字。
>>f=inline('(x+7/x)/2');
symsx;
x0=3;
fori=1:
1:
20
x0=f(x0);
fprintf('%g,%g\n',i,x0);
end
1,2.66667
2,2.64583
3,2.64575
4,2.64575
5,2.64575
6,2.64575
7,2.64575
8,2.64575
9,2.64575
10,2.64575
11,2.64575
12,2.64575
13,2.64575
14,2.64575
15,2.64575
16,2.64575
17,2.64575
18,2.64575
19,2.64575
20,2.64575
本次计算运行到第三次结果稳定,可得:
数列
收敛,收敛到2.64575
2、设
是否收敛?
若收敛,其值为多少?
精确到17位有效数字。
学号为单号,取
>>s=0;
fori=1:
1:
200
s=s+1/i^7;
fprintf('%g,%20.17f\n',i,s);
end
1,1.00000000000000000
2,1.00781250000000000
3,1.00826974737082750
4,1.00833078252707750
5,1.00834358252707750
6,1.00834715477216210
7,1.00834836903784100
8,1.00834884587499920
9,1.00834905495015730
10,1.00834915495015730
……………………………
181,1.00834927738191870
182,1.00834927738191890
183,1.00834927738191920
184,1.00834927738191940
185,1.00834927738191960
186,1.00834927738191980
187,1.00834927738192000
188,1.00834927738192030
189,1.00834927738192050
190,1.00834927738192070
191,1.00834927738192070
192,1.00834927738192070
193,1.00834927738192070
194,1.00834927738192070
195,1.00834927738192070
196,1.00834927738192070
197,1.00834927738192070
198,1.00834927738192070
199,1.00834927738192070
200,1.00834927738192070
运行至第190次后稳定,值为1.00834927738192070
书上习题:
(实验四)
1,2,4,7
(1),8,12(改为:
对例2,取
观察图形有什么变化.),13,14。
练习1编程判断函数
的迭代序列是否收敛.
>>f=inline('(x-1)/(x+1)');
x0=4;
fori=1:
20
x0=f(x0);
fprintf('%g,%g\n',i,x0);
end
1,0.6
2,-0.25
3,-1.66667
4,4
5,0.6
6,-0.25
7,-1.66667
8,4
9,0.6
10,-0.25
11,-1.66667
12,4
13,0.6
14,-0.25
15,-1.66667
16,4
17,0.6
18,-0.25
19,-1.66667
20,4
由此可以发现迭代数列不一定收敛,迭代中出现循环。
练习2先分别求出分式线性函数
、
的不动点,再编程判断它们的迭代序列是否收敛.
运用上节的收敛定理可以证明:
如果迭代函数在某不动点处具有连续导数且导数值介于-1与1之间,那末取该不动点附近的点为初值所得到的迭代序列一定收敛到该不动点.
(1)解方程
,得到x=-1,是函数f1(x)的不动点。
x=(x-1)/(x+3)
x=-1
f1=inline('(x-1)/(x+3)');x0=-0.5;
fori=1:
2000
x0=f1(x0);
fprintf('%g,%g\n',i,x0);
end
1982,-0.999001
1983,-0.999001
1984,-0.999002
1985,-0.999002
1986,-0.999003
1987,-0.999003
1988,-0.999004
1989,-0.999004
1990,-0.999005
1991,-0.999005
1992,-0.999006
1993,-0.999006
1994,-0.999007
1995,-0.999007
1996,-0.999008
1997,-0.999008
1998,-0.999009
1999,-0.999009
2000,-0.99901
(2)解方程
,得到x=-5和3,是函数f2(x)的不动点。
x=(-x+15)/(x+1)
x=-5,3;
formatlong;
f2=inline('(x-15)/(x+1)');x0=6;
fori=1:
2000
x0=f2(x0);
fprintf('%g,%g\n',i,x0);
end
1980,-17.2814
1981,1.98272
1982,-4.36424
1983,5.75591
1984,-1.3683
1985,44.4431
1986,0.647912
1987,-8.70926
1988,3.07543
1989,-2.92597
1990,9.3075
1991,-0.552267
1992,-34.7356
1993,1.47428
1994,-5.46654
1995,4.58219
1996,-1.86626
1997,19.4703
1998,0.218379
1999,-12.1322
2000,2.43727
由此可见由于迭代序列虽有不动点x=-1,但在此处导数不在-1与1之间,所以迭代数序列不收敛。
练习4能否找到一个分式线性函数
,使它产生的迭代序列收敛到给定的数?
用这种办法近似计算
.
x0=1;stopc=1;eps=10^(-17);a=1;b=2;c=1;d=1;k=0;
f=inline('(a*x+b)/(c*x+d)');
kmax=10;
whilestopc>eps&kk=k+1;x0=f(a,b,c,d,x0);
stopc=abs(x0^3-2);
fprintf('%i,%g\n',k,x0)
end
1,1.5
2,1.4
3,1.41667
4,1.41379
5,1.41429
6,1.4142
7,1.41422
8,1.41421
9,1.41421
10,1.41421
练习7下列函数的迭代是否会产生混沌?
(1)
=
>>f=inline('1-2*abs(x-1/2)');
x=[];
y=[];
x
(1)=rand;
y
(1)=0;x
(2)=x
(1);y
(2)=f(x
(1));
fori=1:
10000
x(1+2*i)=y(2*i);
x(2+2*i)=x(1+2*i);
y(1+2*i)=x(1+2*i);
y(2+2*i)=f(x(2+2*i));
end
plot(x,y,'r');
holdon;
symsx;
ezplot(x,[0,1]);
ezplot(f(x),[0,10]);
axis([0,1,0,1]);
holdoff
练习8函数
=
(0
1)称为Logistic映射,试从“蜘蛛网”图观察它取初值为
=0.5产生的迭代序列的收敛性,将观察记录填人下表,若出现循环,请指出它的周期.
表4.3Logistic迭代的收敛性
3.3
3.5
3.56
3.568
3.6
3.84
序列收敛情况
不收敛
循环
周期为2
不收敛
循环
周期为4
不收敛
循环
周期为8
混沌
混沌
不收敛
循环
周期为3
>>f=inline('3.3*x*(1-x)');
>>x=[];
>>y=[];
>>x
(1)=0.5;
>>y
(1)=0;x
(2)=x
(1);y
(2)=f(x
(1));
>>fori=1:
10000
x(1+2*i)=y(2*i);
x(2+2*i)=x(1+2*i);
y(1+2*i)=x(1+2*i);
y(2+2*i)=f(x(2+2*i));
end
>>plot(x,y,'r');
>>holdon;
>>symsx;
>>ezplot(x,[0,1]);
>>f=inline('3.5*x*(1-x)');
>>x=[];
y=[];
x
(1)=0.5;
y
(1)=0;x
(2)=x
(1);y
(2)=f(x
(1));
fori=1:
10000
x(1+2*i)=y(2*i);
x(2+2*i)=x(1+2*i);
y(1+2*i)=x(1+2*i);
y(2+2*i)=f(x(2+2*i));
end
plot(x,y,'r');
holdon;
symsx;
ezplot(x,[0,1]);n
ezplot(f(x),[0,1]);
axis([0,1,0,1]);
holdoff
>>f=inline('3.56*x*(1-x)');
>>x=[];
y=[];
x
(1)=0.5;
y
(1)=0;x
(2)=x
(1);y
(2)=f(x
(1));
fori=1:
10000
x(1+2*i)=y(2*i);
x(2+2*i)=x(1+2*i);
y(1+2*i)=x(1+2*i);
y(2+2*i)=f(x(2+2*i));
end
plot(x,y,'r');
holdon;
symsx;
ezplot(x,[0,1]);
ezplot(f(x),[0,1]);
axis([0,1,0,1]);
holdoff
>>f=inline('3.568*x*(1-x)');
>>x=[];
y=[];
x
(1)=0.5;
y
(1)=0;x
(2)=x
(1);y
(2)=f(x
(1));
fori=1:
10000
x(1+2*i)=y(2*i);
x(2+2*i)=x(1+2*i);
y(1+2*i)=x(1+2*i);
y(2+2*i)=f(x(2+2*i));
end
plot(x,y,'r');
holdon;
symsx;
ezplot(x,[0,1]);
ezplot(f(x),[0,1]);
axis([0,1,0,1]);
holdoff
>>f=inline('3.6*x*(1-x)');
>>x=[];
y=[];
x
(1)=0.5;
y
(1)=0;x
(2)=x
(1);y
(2)=f(x
(1));
fori=1:
10000
x(1+2*i)=y(2*i);
x(2+2*i)=x(1+2*i);
y(1+2*i)=x(1+2*i);
y(2+2*i)=f(x(2+2*i));
end
plot(x,y,'r');
holdon;
symsx;
ezplot(x,[0,1]);
ezplot(f(x),[0,1]);
axis([0,1,0,1]);
holdoff
>>f=inline('3.84*x*(1-x)');
>>x=[];
y=[];
x
(1)=0.5;
y
(1)=0;x
(2)=x
(1);y
(2)=f(x
(1));
fori=1:
10000
x(1+2*i)=y(2*i);
x(2+2*i)=x(1+2*i);
y(1+2*i)=x(1+2*i);
y(2+2*i)=f(x(2+2*i));
end
plot(x,y,'r');
holdon;
symsx;
ezplot(x,[0,1]);
ezplot(f(x),[0,1]);
axis([0,1,0,1]);
holdoff
练习12对例2,对例2,取
观察图形有什么变化.试着提高迭代次数至26000、28000、100000、500000等观察图形有什么变化.
练习13取参数
为其他的值会得到什么图形?
参考表4.4.
表4.4Martin迭代参数参考表
-1000
0.1
-10
0.4
1
0
90
30
10
10
-10
100
-200
-4
-80
-137
17
4
10
100
-10
10
100
-10
练习12对例2,试着提高迭代次数至26000、28000、100000、500000等观察图形有什么变化.
>>Martin(45,2,-300,5000);
>>Martin(45,2,-300,26000);
>>Martin(45,2,-300,28000);
>>Martin(45,2,-300,100000);
>>Martin(45,2,-300,500000);
练习13取参数
为其他的值会得到什么图形?
参考表4.4.
表4.4Martin迭代参数参考表
-1000
0.1
-10
0.4
1
0
90
30
10
10
-10
100
-200
-4
-80
-137
17
4
10
100
-10
>>Martin(-1000,0.1,-10,5000);
>>Martin(-0.4,1,0,5000);
>>Martin(90,30,10,5000);
>>Martin(10,-10,100,5000);
>>Martin(-200,-4,-80,5000);
>>Martin(-137,17,4,5000);
>>Martin(10,100,-10,5000);
练习14 设A,B,C为某三角形的顶点,现作这样的迭代:
计算两个点的中点,这两个点分别是A,B,C中随机取得的一点,与前一步求得的中点(初始点任取).当迭代次数大于10000时,试观察所得的散点图.
输入:
>>f=@(x,y)(x+y)/2;
x1=0;y1=0;x2=4;y2=0;x3=0;y3=4;
xn=x1;yn=y1;
forn=1:
10000
m=ceil(3*rand);
ifm==1;
X=x1;Y=y1;
elseifm==2;
X=x2;Y=y2;
elsem==3;
X=x3;Y=y3;
end;
xN=xn;yN=yn;
xn=f(xN,X);yn=f(yN,Y);
plot(xn,yn,'k*');
holdon;
end;
holdoff
>>
输出: