Logistic映射分岔图局部放大的计算机模拟

更新时间:2023-07-20 21:41:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Logistic映射分岔图局部放大的计算机模拟

 25

物理与工程 Vol.16 No.3 2006

教学手段现代化

Logistic映射分岔图局部放大的计算机模拟

李道全 胡其图 张小灵 邓 晓(上海交通大学物理系,上海 200240)

(收稿日期:2005212212)

摘 要 本文介绍了一种实现LogisticLogistic映

射分岔图上任意局部范围可实现109以上的放大,区内的精细结构,,Logistic模.

关键词 Logistic映射;;;FORTHEPARTIALENLARGEMENTOFBIFURCATIONDIAGRAMSOFTHELOGISTICMAP

LiDaoquan HuQitu ZhangXiaoling DengXiao

(DepartmentofPhysics,ShanghaiJiaoTongUniversity,Shanghai 200240)

Abstract Themethodofcomputersimulationforthepartialenlargementofbifurcationdiagramofthelogisticmapisillustrated.Theamplificationratiocouldbemorethan109atanypositionofthediagram,soitisconvenienttoobservethefinestructuresinchaoticregionsofbifurcationdiagramsoftheLogisticmap.Becauseofhighrespondingrapidness,thepartialenlargedimagesofbifurcationdiagramsofLogisticmapcouldbeproducedbythismethodofcomputersimulationinrealtime,whichcouldbeappliedinclassteachingofreal2timecomputersimulation.

 Logistic

computersimulationKey

Words

map;bifurcationdiagrams;partialenlargement;chaos;

1 引言

混沌现象是自然界中的普遍现象,近年来国内部分高校开设了非线性物理课程,其中非线性动力学的核心问题是混沌,国内也有部分高校在大学物理课程教学过程中引入混沌专题的教学内容[1,2],Logistic映射是研究混沌的一个基本模型,在教学过程中通常作为介绍混沌现象及其行为特征的具有典型性的一个基本教学内容.利用计算机模拟可增加学生对有关现象的理解,深入浅出

地通过模拟图像去把握复杂现象,可显著提高教学质量.

应用数值计算的方法和适当的程序设计可实现对Logistic映射的计算机模拟,对Logistic映射进行计算机模拟的方法很多[3~5].对Logistic映射分岔图进行局部放大时,通常采用点阵放大的方法,由于它采用色块差值的方法,放大之后图形的边缘容易产生锯齿,图像整体变得模糊,不能很好地反映Logistic映射分岔图局部的精细结构.国内有学者在VisualBasic软件开发环境上实现了Logistic映射分岔图的局部放大,采取重新计算放大区域内各点坐标值的方法,在显示区域内重新

Logistic映射分岔图局部放大的计算机模拟

 26

物理与工程 Vol.16 No.3 2006

绘制图像,实现了200倍以上的放大,该局部放大的放大倍数较小,并不能方便地描述Logistic映射计算机模拟图像的局部精细结构.

在进行计算机模拟时,人们通常只关注计算机模拟得到的最后结果,不注意模拟过程所需的时间.但是,如果计算机模拟软件用于课堂教学,则模拟过程所需要的时间就成为一个重要的因素,这就要求计算机模拟过程响应速度要快.否则,会影响课堂教学效果.

本文将介绍一种Logistic映射局部放大的计算机模拟方法,在Logistic映射分岔图的任意局部范围可实现109以上的放大,便于观察映射分岔图的内部精细结构,程响应速度快,.

周期、4周期、8周期、…….μ如果持续增长,

Logistic映射将从有规则的倍周期状态进入随机的混沌状态,此时Logistic映射迭代的终态值给出的图像是一片模糊,但在模糊图像的深浅程度上仍然可以区分出不同的区域,还可见到一些大大小小的窗口.

在混沌区域内并不是绝对地无序,这里有许多周期窗口,而窗口区内又有无穷多个倍周期分岔系列,窗口区内有混沌,口……

够方便地实现,方便映射分岔图的精细结构,这将为.

3 Logistic映射分岔图的局部放大

2 Logistic映射分岔图

Logistic映射xn+1=μxn(1-xn)是一个很值

得研究的迭代方程,其中μ∈(0,4),xn∈[0,1],随

着控制参数μ由小到大逐渐增长就可以演示倍周期分岔走向混沌的过程.选取Logistic映射的参数μ为横轴,xn为纵轴,对每个参数μ对应的迭代方程进行反复迭代,把每次迭代的结果转换成x-μ坐标系上的坐标点,便可形成Logistic映射分岔图,如图1所示.其中,μ的取值范围为μ∈(2.7,4).在μ∈(0,2.7)的范围内,迭代方程的迭代结果是惟一的,在x-μ坐标系上出现一条曲线.Logistic映射分岔图的倍周期分岔区域和出现混沌的区域是观察的重点,关注μ∈(2.7,4)范围内的计算机模拟图像更有意义

.

图1是Logistic映射分岔图,揭示了Logistic映射通过倍周期分岔到达混沌的过程.随着参数μ的增长,系统开始出现倍周期分岔,依次出现了2

本文涉及的计算机模拟环境为WindowsXP/2000/2003,软件开发平台为VisualC++6.0,应用面向对象的程序设计方法实现软件设计.其中,我们采用一种特殊的数学放大方法来实现Logistic映射分岔图的局部放大,具体过程如下.

在对Logistic映射分岔图进行局部放大的过程中,选定放大区域,将其放大之后,该放大区域成为当前显示区域,当前显示区域μ轴的均分将决定放大区域内迭代方程的数量,关系到放大过程的计算量,显然放大区域内迭代方程的数量不是越多越好,由于每个迭代方程经过反复迭代所产生的点都分布在垂直于μ轴的直线上,当迭代方程的数量超过当前显示区域μ轴范围内显示的像素点数量时,由“抽屉原理”可知,必然存在两个迭代方程,产生的坐标点落在同一条垂直于μ轴

μ的直线上.由此可见,放大区域(μs,e)范围内迭代

方程的数量恰好等于当前显示区域μ轴范围内显示的像素点数量时,可在屏幕上产生效率最高的放大图像.因此,我们采用物理均分的方法实现当前显示区域μ轴的均分,该方法与显示设备的屏幕分辨率相关,最小分度单位为一个像素点.

首先,在显示区域内任选一个矩形放大区域,如图2所示,将其放大后,得到图3所示的当前显示区域,当前显示区域的μ轴范围和x轴范围分

μ别对应于图2所示的放大区域的μ轴范围(μs,e)

图 1

和x轴范围(xmin,xmax).这样,由图2所示的放大

Logistic映射分岔图局部放大的计算机模拟

 27

物理与工程 Vol.16 No.3 2006

Logistic映射进入混沌区后,迭代方程的迭代

结果将随机产生.落在(xmin,xmax)范围内的坐标点

与迭代运算的整个过程相关,即与产生这个点之前的每一次迭代都相关.因此,要在当前显示区域内得到足够数量的坐标点来表示Logistic映射分岔图的局部精细结构,必须持续地对迭代方程反复迭代.当每个迭代方程得到落在(xmin,xmax)范围内的点的数量足够精细描绘局部结构时停止运算该迭代方程,转而迭代下一个迭代方程.为方便起见,用_表示这个足够数量.

图 3

图 

2

区域放大为图3放大的效果.,再次选择新的放大区域,逐级放大.

由图2所示的放大区域放大为图3所示的当

前显示区域的具体方法为:首先均分μ轴范围

(μs,μe),得到用于放大的迭代方程的数量.然后,

迭代每一个迭代方程,如果迭代过程中得到的x值属于(xmin,xmax)范围,就将相应的(μ,x)坐标点绘制于图3所示的当前显示区域内.

把图3所示的当前显示区域的范围(μs,μe)在μ显示屏幕上的像素点数量作为(μs,e)范围的均分份数,便得到用于放大的迭代方程的数量.这里需要注意的是:更为精细地均分当前显示区域的范围(μs,μe)尽管可得到更多的用于放大的迭代方程的数量,但是并不能提高图像的显示质量.

每个迭代方程迭代运算一次产生一个坐标点,若该坐标点的x坐标落在(xmin,xmax)范围内,则将其绘制到图3所示的当前显示区域内,否则置之不理,继续迭代.持续的迭代运算将大量消耗CPU资源,影响计算机的响应速度.因此,必须限

,这些区域内的点比

.若放大区域选在此处,有些迭代方程可能无论如何迭代都无法得到足够数量的点Enough_PtNum.因此,必须限制每个迭代方程迭代的上限.为方便起见,用Max_count来表示迭代方程的迭代上限.

Logistic映射分岔图局部放大程序设计的一个核心问题是确定Enough_PtNum和Max_count,其代码如下:

Enough_PtNum=InitPtNum;//确定落在(xmin,xmax)范围内坐标点的数量

Max_count=InitCount+TotalZoomOut3Value;//确定迭代次数的上限

If(TotalZoomOut≥FixedTotalZoomOut);//判断放大倍数是否过大

Max_count=InitCount+

FixedTotalZoomOut3Value;//固定迭代上限

其中,InitPtNum表示迭代方程经过迭代后落在(xmin,xmax)范围内的坐标点数量的默认值;TotalZoomOut表示总的放大倍数;InitCount表

制由迭代方程产生的落在放大区域内的坐标点数量,确定出每个迭代方程迭代次数的上限,以便结束迭代过程,释放CPU资源.

考虑到兼顾软件的运行速度和图像显示效果,我们确定了下列两条基本原则:

(1)经过放大后,当前显示区域内出现足够

数量的点来精细描绘自相似的分形结构;

(2)计算机模拟过程响应速度快,适合于课

堂教学计算机实时模拟.

示初始迭代次数,即放大倍数为1时的默认值;FixedTotalZoomOut表示一个较大的放大倍数.

Max_count的取值与总的放大倍数TotalZoomOut保持线性关系,随着TotalZoomOut增大,每个迭代方程迭代次数的上限Max_count也线性增加,其中线性关系系数Value会影响到运行效率和显示效果,该系数的选取与计算机硬件平台相关.

随着迭代方程的迭代上限Max_count的增加,提高了落在(xmin,xmax)范围内坐标点的数量,但是大量地消耗了CPU资源.当放大倍数超过某

Logistic映射分岔图局部放大的计算机模拟

物理与工程 Vol.16 No.3 2006

个固定的放大倍数时,出于运算效率的考虑,将

Max_count的数值固定下来,超过该放大倍数之后,Max_count变为常数,计算机的运算效率趋于平稳.

上述局部放大的流程如图4所示

.

If(TotalZoomOut≥FixedTotalZoomOut);//判断放大倍数是否过大

 Max_count=InitCount+FixedTotalZoomOut3Value;//固定迭代上限 inti,j;

for(i=0;i<rect.Width();i++)//历遍每个迭代方程{

x=initx;//迭代初值  m+=deltam;  for(j=0;j-200;j+)//{

3x3x3(1.0-x);}  while(count<Enough_PtNum&&ultra_count<Max_count)

{

 x=m3x3x3(1.0-x);   if(x>bottomx&&x<topx)//如果坐标点落在(xmin,xmax)范围内   {    pDC->SetPixel(rect.left+width_proportion3(m-startm),     rect.top+rect.Height()-height_proportion3(x-bottomx),

   RGB(int(i/4.5),int(m358.0),int(x3255.0)));//描点绘图    count++;   }

 ultra_count++;}  count=0;//计数器清零

ultra_count=0;//计数器清零}

}

图 4

程序主要源代码如下:

voidAmplifyLogistic(CDC3pDC,CRectrect){

deltam=(endm-startm)/rect.Width();

//以显示像素为单位,均分μ轴

doublewidth_proportion,height_proportion;//横、纵两方向伸缩比

width_proportion=(double)rect.Width()/(endm-startm);

height_proportion=(double)rect.Height()/(topx-bottomx);

doublem=startm;//根据“放大选区”确定起

Logistic映射分岔图局部放大交互式动态模

拟演示窗口如图1所示,逐次放大的过程如下:在

Logistic映射分岔图上任选一个放大区域,如图1所示.该矩形区域经过放大后如图5所示,然后在图5的Logistic映射分岔图的局部放大图像上重新选取放大区域,如图5中矩形区域所示.该矩形区域经过放大后如图6所示,再次在图6的Logistic映射分岔图的局部放大图像上选取放大区域,如图6中矩形区域所示.该矩形区域经过放大后如图7所示,依此类推,逐次放大,经过多次局

(下转第50页)

始迭代方程

intcount,ultra_count;//计数器count=ultra_count=0;

InitPtNum=300;//根据计算机主频大小,初始参数

InitCount=30000;Value=1000;

Enough_PtNum=InitPtNum;//确定落在(xmin,xmax)范围内坐标点的数量

Max_count=InitCount+TotalZoomOut3Value;//确定迭代次数的上限

Logistic映射分岔图局部放大的计算机模拟

物理与工程 Vol.16 No.3 2006

部缺陷.上海交通大学学报,1999,33(8):1036~1038

参 考 文 献

[1] MandelisA.etal..Photothermalwaveimagingofmetal2

oxide2semiconductorField2effecttransistorstructures,J

ApplPhys.,1988,63:92

[7] Thom.,RL.顾聚兴.利用热波成像技术观察表面以下的

缺陷.红外,1994,(5):32~35

[8] GolamNewaz,XiaoqunChen.

Progressivedamage

assessmentinthermalbarriercoatingsusingthermalwaveimagingtechnique.Surface&CoatingsTechnology,2005,190:7~14

[9] 殷庆瑞,黎光.ZnO薄膜的激光光声效应.中国激光,1992,

19(3):195~201

[10] 沈中华,张淑仪.薄膜—基片中的激光超声研究.声学学

[2] BusseG,etal..

71:3962

Thermalwaveimagingwithphase

sensitivemodulatedthermography,JApplPhys.,1992,[3] 殷庆瑞,王通,钱梦马录.光声光热技术及其应用.北京:科学

出版社,1999.382~409

[4] 吕跃凯,张淑仪

,周庆标.基于光声光热检测的反演技术在

报,2002,27(3):2083~2088

[11] 杨阳.34复相陶瓷维氏压痕残

热波成像及缺陷分析方面的应用.自然科学进展,

2001,

11(3):232~237

[5] 王培吉.非均匀材料热学参量的光声效应检测理论..电子显微学报,

,17)[].铁电半导体陶瓷材料电声像中电声信号

学报,2002,27(1):13~17

[6] 朱德忠,郑明清.的产生.功能材料与器件学报,1996,2(1):53~57

(上接第28页)

部放大之后可得到9拟图像.

4 结论

应用本文介绍的方法进行Logistic映射计算机模拟的局部放大,图像显示效果好,在逐次放大的过程中可方便地观察Logistic映射分岔图混沌区内的精细结构,上述计算机模拟过程耗时短,响应速度快,在显示区域内可任意地选择放大区域,持续放大的能力较强,可实时产生Logistic映射分岔图局部放大的计算机模拟图像,适合于在课堂教学过程中进行计算机实时模拟演示.

参 考 文 献

[1] 易丽莎,汤钧民,肖育英,陈汉军.工科物理中介绍“混沌与

图 5

分形”的认识与实践.大学物理,1998,17(1):45~47

[2] 徐红霞,周永平.21世纪大学物理教材框架中不可缺少的

一根支柱———混沌.大学物理,1998,17(2):36~37

[3] 吴宏途,吴光中.从有序到混沌的计算机模拟—逻辑斯谛方

图 6

程的演示.大学物理,1996,15(11):37~38

[4] 王军,尧晓华.计算机上的混沌图形.计算机应用研究,

1994,(5):11~13

[5] 李丰果,林木欣.用计算机演示混沌运动.大学物理,1999,

18(2):34~37

图 7

本文来源:https://www.bwwdw.com/article/nku1.html

Top