数学实验分形实例

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

数学实验报告

学院:

班级:

学号:

姓名:

完成日期:

实验二分形

(一)练习题1

一.实验目的

1.了解分形几何的基本情况;

2.了解通过迭代方式,产生分形图的方法;

3.了解matlab软件中简单的程序结构。

二. 问题描述

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

三.实验过程

仿照Koch曲线代码对三角形的每条边进行Koch曲线

化,建立函数“snow”的输入参数有三角形的边长R和迭代次数k,输出Koch雪花图形以及雪花所围面积S.

源代码如下:

function snow(R,k)

p=[0;R/2+1i*R*sin(pi/3);R;0];

S=0;

n=3;

A=exp(1i*pi/3);

for s=1:k

j=0;

for i=1:n

q1=p(i,:);

q2=p(i+1,:);

d=(q2-q1)/3;

j=j+1;r(j,:)=q1;

j=j+1;r(j,:)=q1+d;

j=j+1;r(j,:)=q1+d+d*A;

j=j+1;r(j,:)=q1+2*d;

end

n=4*n;

clear p

p=[r;q2];

end

figure

q(:,1)=real(p(:,1));

q(:,2)=imag(p(:,1));

plot(q(:,1),q(:,2))

fill(q(:,1),q(:,2),'b')

for i=0:k

S=S+(3.^(0.5-i))*0.25*(R.^2); end

S

axis equal

按照以上程序,输入参数,有以下结果:>> snow(1,1) S =0.5774 图形如下:

>>snow(1,2) S =0.6255 图形如下:

>>snow(1,3) S =0.6415 图形如下:

>>snow(1,4) S =0.6468 图形如下:

>>snow(1,5) S =0.6486 图形如下:

四.总结分析和心得体会

根据观察迭代的面积规律,即可推得面积递推公式:错误!未找到引用源。,其中错误!未找到引用源。即:面积公式错误!未找到引用源。,也就等于

错误!未找到引用源。

分形维数,根据迭代的规律得到:

相似形个数:m=4

边长放大倍数c=3,

维数d=ln m/ln c=ln 6/ln 3=1.631

(二)练习题2

一.实验目的

1.了解分形几何的基本情况;

2.了解通过迭代方式,产生分形图的方法;

3.了解matlab软件中简单的程序结构。

二. 问题描述

对一条竖线段,在其三分之一分点处,向左上方向画一条线段,在其三分之二点处,向右上方向画一条线段,线段长度都是原来的三分之一,夹角都为30度,迭代一次后变成图3-22.继续迭代得到分形图,可模拟树木花草,编制程序绘制出它的图形。

三.实验过程

代码如下:

function tree(z1,z2,N,n)

if n>N

return

end

if n==1

d=(z2-z1)/3;

q1=z1+d+d*exp(1i*pi/6);

q2=z1+2*d+d*exp(-1i*pi/6);

plot([z1+d,q1])

hold on

axis equal

plot([z1+2*d,q2])

plot([z1,z2])

tree(z1,z2,N,n+1)

else

d=(z2-z1)/3;

q1=z1+d+d*exp(1i*pi/6);

q2=z1+2*d+d*exp(-1i*pi/6);

plot([z1+d,q1])

plot([z1+2*d,q2])

tree(z1+d,q1,N,n+1);

tree(z1+d,z1+2*d,N,n+1);

tree(z1+2*d,q2,N,n+1);

tree(z1+2*d,z2,N,n+1);

end

其中N为迭代次数,n的初始值为1,输入以下代码:tree (0,10i,2,1) 图形如下:

tree (0,10i,3,1)

图形如下:

tree (0,10i,4,1) 图形如下:

tree (0,10i,5,1) 图形如下:

tree (0,10i,6,1) 图形如下:

四.总结分析和心得体会

通过本次的实验,我更了解了几合分形图以及用matlab软件产生几合分形图的方法、程序结构。总的来说,通过本次实验,学习到了matlab软件的一种

.

新的用法,对自己的数学实验能力又提升了不少。体验了通过图形迭代方式产生分形图的过程,迭代的规则非常简单,产生的结果却异常奇妙,并且这些图形很好地反映出了分形所具有的自相似的层次结构。

相关文档
最新文档