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)
1?2x,0?x??2 f(x)=?1?2(1?x),?x?12?>> 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: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'); hold on; syms x;
ezplot(x,[0,1]); ezplot(f(x),[0,10]); axis([0,1,0,1]); hold off
练习8 函数f(x)=?x(1?x)(0?x?1)称为Logistic映射,试从“蜘蛛网”图观察它取初值为x0= 0.5产生的迭代序列的收敛性,将观察记录填人下表,若出现循环,请指出它的周期.
表4.3 Logistic迭代的收敛性
? 3.3 3.3.3.3.3.5 56 568 6 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)); >> for i=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'); >> hold on; >> syms x;
>> ezplot(x,[0,1]); ezplot(f(x),[0,1]);
axis([0,1,0,1]); hold off
>> 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)); for i=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