数学实验--matlab-Koch雪花.doc_第1页
数学实验--matlab-Koch雪花.doc_第2页
数学实验--matlab-Koch雪花.doc_第3页
数学实验--matlab-Koch雪花.doc_第4页
数学实验--matlab-Koch雪花.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学实验报告3 分形实例电气二班 陆展辉 201430222325(51)问题描述1. 对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。2、对一条横向线段,先将其等分成4段,然后再将第二段向上移,将第三段向下移,再将第四段的相邻端点连接起来,迭代一次后变成图3-21.继续迭代得到的分形图,称为Minkowski香肠。编制程序绘制出它的图形,并计算它的分形维数。 图3-21 Minkowski香肠一次迭代问题分析与实验过程实验过程:1.仿照Koch曲线代码对三角形的每条边进行Koch曲线化,函数的输入参数有三角形的边长R和迭代次数k,输出Koch雪花图形以及雪花所围面积S.(1)代码如下:function xuehua(k) % k为迭代次数for j=0:2 %依次对3条边进行Koch曲线运算 if j=0; p=0,0;10,0; elseif j=1; p=5,-5*sqrt(3);0,0; else j=2; p=10,0;5,-5*sqrt(3); end n=1; %存放线段的数量,初始值为1A=cos(pi/3),-sin(pi/3);sin(pi/3),cos(pi/3); %用于计算新的结点for s=1:k j=0; % j为行数 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 endn=4*n; %全部线段迭代一次后,线段数量乘4clear p %清空p ,注意:最后一个终点q2不在r中p=r;q2; %一条边的全部结点clear rendplot(p(:,1),p(:,2) %连接各个结点hold on;axis equalend不同k对应不同的图像如下: k=1 k=2 k=3(2)Koch雪花面积推导如下所示:k=0时 S=k=1时 S=+k=2时 S=+ k=3时 S=+ + k=n时 S=+ +每一次迭加,所产生的新三角形的边长变为上一次的,数量为上一次的4倍.S=+*(3*+12*+3*)=+*曲线总面积无穷大。(3)综上所述可得Koch雪花的分形维数为:根据迭代的规律得到:相似形个数:m=6 边长放大倍数:c=3,1.6312、绘制Minkowski香肠(1)编辑实现题目迭代的函数在Matlab中,编制一个函数来绘制Minkowski香肠的图形。具体代码如下:function Minkowski (k) % 显示迭代k次后的Minkowski曲线图 p=0,0;10,0; % 存放结点坐标,每行一个点,初始值为两结点的坐标 n=1; % 存放线段的数量,初始值为1 A=0,1;-1,0; % 用于计算新的结点 for s=1:k % 实现迭代过程,计算所有的结点的坐标 j=0; for i=1:n; q1=p (i,:); % 目前线段的起点坐标 q2=p (i+1,:); % 目前线段的终点坐标 d=(q2-q1)/4; 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+d*A; % 新3点存入r j=j+1;r (j,:)=q1+2*d+d*A; % 新4点存入r j=j+1;r (j,:)=q1+3*d+d*A; % 新5点存入r j=j+1;r (j,:)=q1+3*d; % 新6点存入r end % 原终点作为下条线段的起点,在迭代下条线段时存入r n=n*7; % 全部线段迭代一次后,线段数量乘7 clear p % 清空p,注意:最后一个终点q2不在r中 p=r;q2; % 重新装载本次迭代后的全部结点 end plot (p (:,1),p (:,2) % 显示各结点的连线图 axis equal % 各坐标轴同比列将这个文件保存,文件名记为Minkowski.m.(2)绘制Minkowski香肠的图形代码:frat(3)运行结果如下图所示:代码:frat(5)运行结果如下图所示:(3)计算Minkowski香肠的维数根据迭代规律得到:形似形个数m=7,边长放大倍数c=4,故维数d=1.4037.因此Minkowski香肠的维数介于1与2之间。具体计算如下:d=ln m/ln c=ln 7/ln 4=1.4037u=0,1;for k=1:4m=u/4;uu=m,1/4+m*(i),m+1/4+i/4,1/2+i/4+m*(-i),1/2,1/2+m*(-i),m+1/2-i/4,m*(i)+3/4-i/4,m+3/4;subplot(2,2,k);plot(uu)u=uu;end结果合理性分析通过模仿学习书本上的例题,用程序绘制出了Koch雪花和Minkowski香肠的图形,并且和网上标准结果对照一致,此外计算出了两图形的维数,都符合实际情形;故可认为所得图形和维数计算结果很具有合理性。实验总结与实验感悟实验总结 通过这次实验再次拓展了迭代法,而且还学习了迭代法应用于分形实例,对解决分形图形问题提供了强大的软件支持,Matla及其代码给分形图形的绘制创造了很便捷的操作平台,并且易于操作与分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论