华工数学实验-作业3的-迭代与分形.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华工数学实验-作业3的-迭代与分形

《数学实验》报告 学 院: 电子与信息学院 专业班级: 通信工程4班 学 号: 201130301443 姓 名: 李腾辉 实验名称: 迭代与分形 实验日期: 2013.04.7 第三次实验 实验内容 1.对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。 实验过程 方法一 仿照Koch曲线代码对三角形的每条边进行Koch曲线化,函数的输入参数有三角形的边长R和迭代次数k,输出Koch雪花图形以及雪花所围面积S. KochSnow面积推导如下所示: 迭代次数k 面积S 0: S= 1: S=R2+ (R)2*3 2: S=R2+ (R)2*3 + (()2R)2*32 3: S=R2+ (R)2*3 + (()2R)2*32 + (()3R)2*33 `````` N: S=R2+ (R)2*3 + (()2R)2*32 + (()3R)2*33+… (()nR)2*3n 如此相加下去,当N?无穷时,S将为无穷大 源代码如下: function kochsnow(R,k) %R为正三角形边长,k为迭代次数 p01=[0,0];p02=[R/2,sqrt(3)*R/2];p03=[R,0]; %3个起始点 S = 0; % S为面积,开始设为0 for line=0:2 %依次对3条边进行Koch曲线运算 if line==0; p=[p01;p02]; elseif line==1; p=[p02;p03]; else line==2; p=[p03;p01]; end n=1; %存放线段的数量,初始值为1 A=[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 end n=4*n; %全部线段迭代一次后,线段数量乘4 clear p %清空p ,注意:最后一个终点q2不在r中 p=[r;q2]; %一条边的全部结点 clear r end if line==0; %把第一条边的全部结点放在a a=p; elseif line==1; %把第二条边的全部结点放在b b=p; else line==2; %把第三条边的全部结点放在c c=p; end end all=[a;b;c]; %三条边全部结点放入all plot(all(:,1),all(:,2)) %连接各个结点 fill(all(:,1),all(:,2),g)%填充所围区域 for i=0:k %计算KochSnow的面积 S = S + (3^(0.5-i))*0.25*(R^2); end S axis equal Koch雪花图形 输入 半径R=2 K=0时 是正三角形 此时面积为 1.7321 K=1时 是正六边形 此时面积为 2.3094 K=2时 的koch雪花 此时面积为 2.5019 K=3时 的Koch雪花 此时面积为 2.5660 K=4时 的Koch雪花

文档评论(0)

ayangjiayu1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档