




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学实验报告华工数学实验实验三迭代与分形实验三 迭代与分形一、 实验目的与要求1 了解分形几何的基本情况;2 了解通过迭代方式产生分形图的方法;3 了解matlab软件中简单的程序结构;4 掌握matlab软件中plot, fill等函数的基本用法;二、 实验内容1 对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。2 自己构造生成元(要有创意),按照图形迭代的方式产生分形图,用计算机编制程序绘制出它的图形,并计算其分形维数。三、 实验过程1.问题分析Koch曲线是通过图形迭代的方式产生的,其迭代规则是:对一条线段,首先将它分成三等份,然后将中间的一份替换成以此为底边的等边三角形的另外两条边。无限次迭代下去,最终形成的曲线就是Koch曲线。在本次实验当中,以等边三角形为基本单元进行迭代,从而形成Koch曲线。在这个实验中,可借助一条线段迭代的代码进行修改,让它对一个等边三角形的每条边都按照Koch曲线的方式进行迭代,产生的分形图就为Koch雪花。编制程序绘制出它的图形时,我们要先规定等边三角形的三个顶点的坐标分别为(0,0)、(20,0)、(10,20*sin(pi/3). 绘制出它的图形后计算Koch雪花的面积,以及它的分形维数。2.编程实现Koch雪花图形编制程序的具体代码如下,程序截图如图1所示function plotkoch (k) % 显示迭代k次后的Koch曲线图p=0,0; 10,20*sin(pi/3); 20,0;0,0; % 存放等边三角形3个结点坐标初始值n=3; % 存放线段的数量,初始值为3 A=cos(pi/3),-sin(pi/3);sin(pi/3),cos(pi/3); % 用于计算新的结点for s=1:k % 实现迭代过程,计算所有的结点的坐标 j=0; % 以下根据线段两个结点的坐标,计算迭代后它们之间增加的三个% 结点的坐标,并且将这些点的坐标按次序存暂时放到r中 for i=1:n % 每条边计算一次 q1=p (i,:); % 目前线段的起点坐标 q2=p (i+1,:); % 目前线段的终点坐标 d=(q2-q1)/3; % j=j+1;r (j,:)=q1; % 原起点存入r j=j+1;r (j,:)=q1+d; % 新1点存入r j=j+1;r (j,:)=q1+d+d*A; % 新2点存入r j=j+1;r (j,:)=q1+2*d; % 新3点存入r end % 原终点作为下条线段的起点,在迭代下条线段时存入r n=4*n; % 全部线段迭代一次后,线段数量乘4 clear p % 清空p ,注意:最后一个终点q2不在r中 p=r;q2; % 重新装载本次迭代后的全部结点endfigureplot (p (:,1),p (:,2) % 显示各结点的连线图title(Koch雪花) % 显示标题axis equal % 各坐标轴同比例 xlabel(x),ylabel(y)图1.程序截图这个函数的调用方法是在命令窗口键入plotkoch (5)然后按回车键,结果显示如图2所示。我们也可以通过取不同n值观察对应的迭代图形,如图3-6所示。图2迭代次数k=5的图形不同k值对应的迭代图形: K=1 K=3K=5 K=73.面积计算k=0时 S=k=1时 S=+k=2时 S=+ k=3时 S=+ + k=n时 S=+ +每一次迭加,所产生的新三角形的边长变为上一次的,数量为上一次的4倍.S=+*(3*+12*+3*)=+*由上式可知,当k取无限大的时候,Koch雪花的曲线总面积趋于无穷大。4.分形维数计算由迭代规则可知:在Koch雪花中,相似形个数为12,边长放大倍数是3,所以m=12,c=3,则Koch雪花的分形维度为:d=ln(m)/ln(c)2.26。第二部分:第二题一实验内容自己构造生成元(要有创意),按照图形迭代的方式产生分形图,用计算机编制程序绘制出它的图形,并计算其分形维数。二实验过程1. 图形构思 经过阅读许多参考资料,以及自己几天的思考,感觉以一个大圆,上下左右各有四个小圆的组合(其中大圆经过四个小圆的圆心)为初始图案比较简单,也比较好看。2. 编程实现 主要思想是先画一个大圆,接着按照比例及相对位置画出四个小圆,然后以四个小圆为基准,再画出每个小圆各自对应的四个小圆,以此类推,就可以按照给定的迭代次数画出想要的图形。具体程序如下:function cycle(px,py,r,n) %px,py和r分别是大圆圆心坐标和半径,n是迭代次数t=linspace(-pi,pi); plot(r*cos(t)+px,r*sin(t)+py) %以px,py为圆心坐标,r为半径画圆theta=2*pi/4*(0:3); %每个小圆间隔角度为2/4newr=r*3/(3+2*sqrt(3); %经过计算,小圆的半径为大圆的3/(3+2*3(1/2)newpx=px+2*newr*cos(theta); %新的圆心横坐标newpy=py+2*newr*sin(theta); %新的圆心竖坐标if n=0 s=n+2; %开始图形是一个大圆上下左右各有一个小圆,作为迭代的初始图案 for i=1:4 %每个大圆都有小圆四个 hold on;cycle3(newpx(i),newpy(i),newr,s-1); endendaxis equal %各坐标轴同比例程序运行截图如图1所示: 如图1调用这个函数的方法是在命令窗口键入“cycle(px,py,r,n)”然后按回车键,其中px,py,r,n均以具体数值代替,注意n必须为整数。例如取n=0,1,2,3;所得图形分别如图2-5所示:图2.n=0图3.n=1图4.n=2图5.n=33.维数计算 由迭代规则可知:在这些图形中,相似形个数为5,小圆的半径为大圆的3/(3+2*3(1/2)倍,从而边长放大倍数是(3+2*3(1/2)/32.1547,所以m=5,c=(3+2*3(1/2)/3,则它的分形维度为:d=ln(m)/ln(c)2.09。三实验总结 实验内容一部分比较简单,由于老师在理论课堂上,对koch雪花曲线的迭代规则与技巧讲解得比较透彻,原代码也比较容易理解,在编写koch雪花曲线的程序时,只需对原来的程序进行一些修改,包括图形的初始化,初始线段改为3,再进行一些其他方面的完善就可以了,为了充分利用前面所学的知识,我还加上了标题,标上了横竖坐标轴。调试过程中,发现,尽管程序正确,但是由于计算机的性能限制,迭代次数不宜太多,否则运算时间过长,显示很慢。但是,整个过程进行的还顺利,结果也很满意。 第二部分,自由发挥的练习中,灵感来得很及时,程序是自己编写的,整个过程中,通过上网查找了很多资料,也查看了很多人的代码,借鉴
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色低碳数字化新型园区污水处理厂项目可行性研究报告模板立项申批备案
- 2025合作协议样本
- 2025年春季部编版初中数学教学设计八年级下册第1课时 平行四边形的判定 1
- 摄像课基础知识培训课件
- 2025年版动产与不动产抵押合同模板
- 公司股权税务知识培训总结
- 公司组织安全知识培训课件
- 插花入门基础知识培训课件
- 制造业岗位面试题及答案
- 2025济南市房屋租赁合同中介版
- 酒店客房样板间装修验收记录表
- 2024年高级统计实务考试真题及答案解析
- 铁总物资〔2015〕250号:中国铁路总公司物资采购异议处理办法
- GB/Z 42625-2023真空技术真空计用于分压力测量的四极质谱仪特性
- 人民医院心血管外科临床技术操作规范2023版
- 助理工程师考试试题以及答案
- 送东阳马生序
- 2017年全国大学生数学建模A题
- 2023年专升本计算机题库含答案专升本计算机真题
- GB/T 16674.1-2016六角法兰面螺栓小系列
- 住宅项目景观工程施工策划(图文并茂)
评论
0/150
提交评论