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

2020-04-14 23:24

《数学实验》报告

学 院: 电子与信息学院

专业班级: 通信工程4班 学 号: 201130301443 姓 名: 李腾辉 实验名称: 迭代与分形 实验日期: 2013.04.7

第三次实验

1. 实验内容

1.对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。

2. 实验过程

方法一

仿照Koch曲线代码对三角形的每条边进行Koch曲线化,函数的输入参数有三角形的边长R和迭代次数k,输出Koch雪花图形以及雪花所围面积S.

KochSnow面积推导如下所示:

迭代次数k 面积S

32r40: S=

1: S=32312

R+ (R)*3 4433231231222

R+ (R)*3 + (()R)*3443432: S=3: S=`````` N: S=3231231222 31323 R+ (R)*3 + (()R)*3+ (()R)*344343433231231222 31323R+ (R)*3 + (()R)*3+ (()R)*3+… 4434343

31n2n (()R)*343如此相加下去,当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


华工数学实验-作业3-迭代与分形.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:仪器分析习题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: