几个分形的matlab实现
摘要:给出几个分形的实例,并用matlab编程实现方便更好的理解分形,欣赏其带来的
数学美感
关键字:Koch曲线 实验 图像
一、问题描述:
从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成山丘形图形如下
图1
在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成Koch分形曲线。 二、算法分析:
考虑由直线段(2个点)产生第一个图形(5个点)的过程。图1中,设P1和P5分别为原始直线段的两个端点,现需要在直线段的中间依次插入三个点P2,P3,P4。显然P2位于线段三分之一处,P4位于线段三分之二处,P3点的位置可看成是由P4点以P2点为轴心,逆时针旋转60而得。旋转由正交矩阵
cos()
3A
sin( )
3
实现。
sin(
)
3 cos()
3
算法根据初始数据(P1和P5点的坐标),产生图1中5个结点的坐标。结点的坐标数组形成一个5 2矩阵,矩阵的第一行为P1的坐标,第二行为P2的坐标……,第五行为P5的坐标。矩阵的第一列元素分别为5个结点的x坐标,第二列元素分别为5个结点的y坐标。
进一步考虑Koch曲线形成过程中结点数目的变化规律。设第k次迭代产生的结点数为
nk,第k 1次迭代产生的结点数为nk 1,则nk和nk 1中间的递推关系为nk 1 4nk 3。
三、实验程序及注释: