数学实验分形实例.docVIP

  • 228
  • 0
  • 约2.09千字
  • 约 11页
  • 2016-11-29 发布于重庆
  • 举报
数学实验分形实例

数学实验报告 学  院: 班  级: 学  号: 姓  名: 完成日期: 实验二 分形 (一)练习题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软件中简单的程序结构。 二. 问题描述 对一条竖线段在其三分之一分点处向左上方向画一条线段在其三分之二点处向右上方向画一条线段线段长度都是原来的三分之一夹角都为22.继续迭代得到分形图可模拟树木花草编制程序绘制出它的图形 三.实验过程 代码如下: function tree(z1,z2,N,n) if nN 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软件的一种 新的用法,对自己的数学实验能力又提升了不少。体

文档评论(0)

1亿VIP精品文档

相关文档