logo资料库

MATLAB课程设计(cantor三分集).doc

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
MATLAB 课程设计 题目: cantor 三分集 日期:
用 matlab 画 cantor 三分集 摘要: 本文介绍了分形几何中的 cantor 三分集 ,并且给出了 MATLAB 程序以及运行结果,分形作为双曲迭代函数系统的吸引子。根据程序 中的迭代将分形模拟确为迭代法。 关键词: 分形几何、cantor 三分集、程序 、分法细密 一、 简介
分形是指没有特征长度(特征长度是指所考虑的集合对象所含有 的各种长度的代表者);但具有一定意义下的自相似图形和结构的总 称。典型的分形集一般具有如下几个特征:无论用什么尺度衡量,其 复杂性不消失,即具有无穷精细的结构;分型是不规则的,以至于不 能用传统的几何语言来描述;部分与整体是相似的,即具有自相似性; 可以通过递归、迭代等简单的方式产生;其分维数大于拓扑维数,分 形的特点也可以概括为两点,就是自相似性和无限细分。分型体系的 局部与整体是相似的。 任何一个分形,都具有无穷多个分形元,对整体的无限细分,所 形成的无数分形元,构成了分形图形的整体。通常分形都是极度对称 的,对称到了完美的地步。但生成这种图形却不需要非常复杂的程序。 因为他们具有无限的细节表面,就可以使用递归算法来实现。Cantor 三分集是分形里面的一个小分支,根据迭代的次数不同,可以画出不 同的分法细密度。 二、算法 Cantor 三分集的构造如下图所示,一条线段 ab 被均分为三段,保
留其两边的两段,中间一段去掉,然后把得到的每一段再继续进行划 分,如此反复。 根据它生成的原理,可以设计算法如下: Cantor 三分集的绘制十分简单,是一种最简单的分形实例,它的算法 如下: cx = ax + ( bx – ax )/3 cy = ay – h dx = bx – ( bx – ax )/3 dy = by – h ay = ay – h by = by – h 其中 h 为两层之间的距离。如此循环下去,画出每个阶段的图形就可 以得到 cantot 三分行的图形。因为 cantor 集的生成是无穷的的,在这 里我能就规定当线段的距离小于规定的数时,循环就停止。在这里以 C 表示。 三、 程序
程序清单为: function f=cantor(ax,ay,bx,by) %定义一个函数 cantor c=0.005;d=0.005; %C 为画出的 最小的 的 线段的 最小长度,d 为 两条线段之间的距离。 if (bx-ax)>c %如果线段的长度大于 C,就继续画曲线。 x=[ax,bx];y=[ay,by];hold on;%画图的 范围 plot(x,y,'LineWidth',2);hold off; %用 X ,Y 画直线,刷新图形界面 cx=ax+(bx-ax)/3; %坐标变换关系 cy=ay-d; %坐标变换关系 dx=bx-(bx-ax)/3; %坐标变换关系 dy=by-d; %坐标变换关系 ay=ay-d; %坐标变换关系 by=by-d; %坐标变换关系 cantor(ax,ay,cx,cy); %再次调用 cantor 函数 cantor(dx,dy,bx,by); %再次调用 cantor 函数 end 四、结果及分析
给定初始坐标:ax=0,ay=5.bx=5,by=5 程序的运行结果为: 程序的运行结果不仅与 ax,ay,bx,by 的取值有关,而且与程 序中 c 和 d 的取值有关,因此,不同取值会画出不同分法细密度的 Cantor 三分集 五、总结
使用 MATLAB 可以编制简练,灵活的分形模拟程序。通过调节 每个程序第一行中常数,可以获得不同外观形状的图形。程序中均有 一个控精度的量(循环次数),取值越大,模拟精度越高。只要机器 运算速度允许,模拟图与对应分形之间可任意接近。 程序均用到了循环语句进行抚今迭代,绘图数据收集在一个两行 的矩阵中,绘图命令用到了 plot 函数。在确定迭代法中,迭代出的点 的总数随循环次数以指数速度增长,故循环次数以选取较小时就得到 了理想的图形。在随机迭代法中,一次循环只增加一个数据点,故循 环次数要取的较大。 MATLAB 提供了一系列求解数学问题的命令和绘图命令。利用 数学命令可以求解函数的导数、积分等等。利用绘图命令可以绘出各 式各样的二维图形、三维图形。MATLAB 可以进行编程运算,对一 些复杂问题的计算或复杂图形的绘制,可以编程实现。因此 MATLBA 的功能是很强大的。
分享到:
收藏