华工数学实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数学实验》报告

学院:电子与信息学院专业班级:14电联

学号:

姓名:

实验名称:迭代与分形

实验日期:2016.05.03

迭代与分形

1.实验目的

-了解分形几何的基本特性。

-了解通过迭代方式产生分形图的方法。

-欣赏美妙的分形艺术。

2.实验要求

对一条横向线段,先将其等分成4段,然后将第2段向上平移,将第3段向下平移,再将4段的相邻端点连接起来,迭代一次后变成下图1。继续迭代得到的分形图,称为Minkowski香肠。编制程序绘制出它的图形,并计算它的分形维数。

图1 Minkowski香肠1次迭代

3.实验过程

实验原理:

本题利用迭代与分形几何的方法进行Minkowski香肠作图。迭代是就是将一种规则反复作用在某个对象上,简单的迭

代过程,就是描述复杂的自然形态的有效方法。分形几何把自

然形态,看作是具有无限嵌套的层次结构。

实验过程:

本实验以迭代的方式,来体验生成分形图的过程,从而对

分形几何有一个直观的了解,并感受美丽的分形图案。

算法与编程:

function Minkowski(k) %显示迭代k次后的Minkowski曲线图

p=[0,0;1,0]; %存放结点坐标,每行一个点,初始值为两结点的坐标n=1; %存放线段的数量,初始值为1

A=[cos(pi/2),-sin(pi/2);sin(pi/2),cos(pi/2)]; %用于计算新的结点

for s=1:k %实现迭代过程,计算所有的结点的坐标

j=0; %以下根据线段两个结点的坐标,计算迭代后它们之间增加的七个结点的坐标,并且将这些点的坐标按次序存暂时放到r中

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; %新4点存入r

j=j+1;r(j,:)=q1+2*d-d*A'; %新5点存入r

j=j+1;r(j,:)=q1+3*d-d*A'; %新6点存入r

j=j+1;r(j,:)=q1+3*d; %新7点存入r

end %原终点作为下条线段的起点,在迭代下条线段时存入r n=8*n; %全部线段迭代一次后,线段数量乘4

clear p %清空p ,注意:最后一个终点q2不在r中

p=[r;q2]; %重新装载本次迭代后的全部结点

end;

figure

plot(p(:,1),p(:,2)) %显示各结点的连线图

axis equal %各坐标轴同比例

结果和图形:

(1)输入Minkowski(1)后,得到图2:

(2)输入Minkowski(2)后,得到图3:

(3)输入Minkowski(3)后,得到图4:

图4 Minkowski 香肠3次迭代

(4) 输入Minkowski(4)后,得到图5:

图5 Minkowski 香肠4次迭代

计算其分形维数:

根据分形维数的定义:设分形 F 是自相似的,F 由 m 个子集构成,每个子集放大 c 倍后同 F 一样,则定义 F 的维数为: ln log ln c m d m c

== 所以Minkowski 香肠的分形维数是4log 8 1.5d ==。

考虑进行代码的简化,毕竟如此简单的问题用了二十多行不是明智的选择,而且不能直接一步实现多图合并打出:

p=[0,i];

for k=1:4 %做四个小图

d=p/4; %类同之前的d=(q2-q1)/4

q=[d,i/4+d*i,d+i/4-1/4,d*(-i)+i/2-1/4,d*(-i)+i/2,d+i/ 2+1/4,i/4+d*i+i/2+1/4,d+i*(3/4)]; %确定新的点集

subplot(2,2,k) %2*2

plot(q*(-i)) %显示各结点的连线图

axis equal %各坐标轴同比例

axis ([0,1,-0.4,0.4]) %确定显示范围

p=q; %重新装载本次迭代后的全部结点

end

得到图像如图6所示

图6 优化后的代码对应的图形

4. 实验总结和实验感悟

本次实验自己做的比较成功,基本上是自己独立打出来的,但是有个别地方参考了课本是关于Koch曲线的代码,因为它们原理上是一样的。比较好的是在完成作业后,我剩余了较多的时间,就上网查阅相关代码,发现有更好更简单的,我拿来学习,发现那个代码的确有高明之处,我学到

了额外的东西,也对自己的表现更加满意,加油!

相关文档
最新文档