- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)