8,-0.001001 18,-0.001001 9,-0.001001 19,-0.001001 10,-0.001001 20,-0.001001
由运行结果可以看出,,分式线性函数收敛,其值为-0.001001。易见函数的不动点为-0.001001(吸引点)。 (2)程序如下:
f=inline('(x+1000000)/(x+1000)'); x0=2; for i=1:20; x0=f(x0);
fprintf('%g,%g\\n',i,x0); end 运行结果:
1,998.006 11,618.332 2,500.999 12,618.302 3,666.557 13,618.314 4,600.439 14,618.309 5,625.204 15,618.311 6,615.692 16,618.31 7,619.311 17,618.311 8,617.929 18,618.31 9,618.456 19,618.31 10,618.255 20,618.31
由运行结果可以看出,,分式线性函数收敛,其值为618.31。易见函数的不动点为618.31(吸引点)。
2.3 下面函数的迭代是否会产生混沌?(56页练习7(1))
1?2x0?x???2f(x)??
?2(1?x)1?x?1??2解:程序如下:
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)); for i=1:100; x(1+2*i)=y(2*i); x(2+2*i)=x(1+2*i); y(2+2*i)=f(x(2+2*i)); end
plot(x,y,'r'); hold on; syms x;
ezplot(x,[0,1/2]); ezplot(f(x),[0,1]); axis([0,1/2,0,1]); hold off 运行结果:
1 - 2 abs(x - 1/2)10.90.80.70.60.50.40.30.20.1000.050.10.150.20.25x0.30.350.40.450.5
2.4 函数f(x)??x(1?x)(0?x?1)称为Logistic映射,试从“蜘蛛网”图观察它取初值
为x0?0.5产生的迭代序列的收敛性,将观察记录填人下表,若出现循环,请指出它的周期.(56页练习8)
? 序列收敛情况 3.3 T=2 3.5 T=4 3.56 T=8 3.568 T=9 3.6 混沌 3.84 混沌 解:当?=3.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)); for i=1:1000; 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'); hold on; syms x;
ezplot(x,[0,1]); ezplot(f(x),[0,1]); axis([0,1,0,1]); hold off运行结果:
-(33 x (x - 1))/1010.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当?=3.5时,上述程序稍加修改,得:
-(7 x (x - 1))/210.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当?=3.56时,得:
-(89 x (x - 1))/2510.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当?=3.568时,得:
-(446 x (x - 1))/12510.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当?=3.6时,得:
-(18 x (x - 1))/510.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
当?=3.84时,得:
-(96 x (x - 1))/2510.90.80.70.60.50.40.30.20.1000.10.20.30.40.5x0.60.70.80.91
2.5 对于Martin迭代,取参数a,b,c为其它的值会得到什么图形?参考下表(取自63页练
习13)
a m -m -m m/1000 m/1000 m/100 -m/10
解:取m=10000;迭代次数N=20000;
在M-文件里面输入代码:
function Martin(a,b,c,N)
b m -m m/1000 m/1000 m m/10 17 c m m -m 0.5 -m -10 4 f=@(x,y)(y-sign(x)*sqrt(abs(b*x-c))); g=@(x)(a-x); m=[0;0]; for n=1:N
m(:,n+1)=[f(m(1,n),m(2,n)),g(m(1,n))]; end
plot(m(1,:),m(2,:),'kx'); axis equal
在命令窗口中执行Martin(10000,10000,10000,20000),得:
2500020000150001000050000-5000-2-1.5-1-0.500.511.52x 104