- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学实验报告
——迭代与分形
实验目的和意义
了解分形几何的基本理论。
了解通过迭代方式,产生分形图的方法。
了解分形几何的简单应用。
问题描述
对一个等边三角形,每条边按照koch曲线的方式进行迭代,产生的分形图称为koch雪花,编制程序绘制出它的图形,并计算koch雪花的面积,以及他的分形维数。
对一条竖向线段,在其三分之一分点出,向左上方向画一条线段,在其三分之二点出,向右上方向画一条线段,线段长度都是原来的三分之一,夹角都为30度,迭代一次后变成如图所示的分型图,继续迭代得到分形图,可模拟树木花草,编制程序绘制出它的图形。
实验过程
第一个问题
一、模型建立
在本问题中,采用的方法和koch曲线类似,即每条边都按照koch曲线的形成过程来进行变换,对于每一条线段,先将其分成三等分,然后将中间的一份替换成一次变为底边的等边三角形的另外两条边。然后进行无限次的迭代下去。最终形成koch曲线,在本问题中只是将一条Koch曲线变成三条koch曲线而已。
二、方法分析
在MATLAB编程当中,进行的主要思想是首先确定每一条线段的起点和终点,然后以此起点和终点为基准,依次的派生出需要进行下一步迭代的节点,然后将所有的节点进行plot函数连接,不过在形似与三角形的Koch曲线编程当中,需要将最末位的点和最首位的点单独进行声明连接。
三、实现过程
首先对课本中的Koch曲线的程序进行稍微的改动,所要做的改动的地方包括:1,对初始的p矩阵进行的定义,由于三角形是一个封闭的环形,所以需要对矩阵的元素进行一些改动,除了需要将三角形的三个点放入其中之外,还需要将三角形的第一个点放到第四位,这样可以实现连线时的循环;2,初始的n值应当为按照三角形考虑时的3;3,在clear p之后将p矩阵中加一个三角形的初始点的元素,即(0,0)点。
实现该功能的代码如下:
function frat(k)
A=[cos(pi/3),-sin(pi/3);sin(pi/3),cos(pi/3)];
p=[0,0;5,10*sin(pi/3);10,0;0,0];
n=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;a(j,:)=q1;
j=j+1;a(j,:)=q1+d;
j=j+1;a(j,:)=q1+d+d*A;
j=j+1;a(j,:)=q1+2*d;
end
n=4*n;
clear p
p=[a;0 0];
end
plot(p(:,1),p(:,2));
axis equal
然后检验该代码的正确性,将代码复制到edit命令窗口中,然后保存为frat.m文件,在命令窗口中输入代码frat(1),得到的结果如图所示:
然后输入frat(2),得到的图像为:
然后输入frat(3),得到的结果如下图所示:
在命令窗口中输入frat(4),可得:
由此可知,该代码正确,因此进行下一步的求解。
接下来进行该图形的面积求解,由于该函数的图像由许多相似的图形组成,所以其面积也具有某种规律,在函数迭代k次之后其面积是k的函数,经过计算,在迭代k次之后,其面积为:s
按照此思想,进行面积的编程的表示:
d=25*sqrt(3);
s=d;
for i=1:k
s=s+3*4^(i-1)*d/(9^i);
end
disp(s)
将此代码加到刚刚进行的代码之后,就可以在输出图形的同时输出面积了。
需要注意的是,该面积是在三角形的边长为10的前提下算出的面积,如果要算出边长为x的三角形的面积,则要进行相似形的面积变换,只需要将算出的面积乘以x的平方再除以100即可。
在命令窗口中输入frat(2),可在命令窗口中看到输出的结果为:
64.1500
在命令窗口中输入frat(3),可在命令窗口中看到输出的结果为:
67.0011
算出的结果与正确的面积相同,因此该代码正确,该实验进行的无误。
最后进行的是该迭代形状的维数计算,根据迭代的规律可得,相似形的个数m=4,边长放大倍数c=3,因此维数为
d=lnm
第二个问题
一、模型建立
在进行树木模型的迭代的时候,需要使用复数的向量这一表示法,这样可以使整个代码较为简洁。大体的一个模型是先通过代码实现树木模型的第一次迭代,然后再分别以每一个树枝为模版,进行函数的递归调用,递归的次数就为分形树木的阶数。
二、方法分析
在树木模型迭代的过程中,需要先通过编程实现初始的数目支架模型,然后再对每一条边(包括主干上通过生成分支之后的小段)实现递归函数的
您可能关注的文档
最近下载
- 感受化学定量分析的价值——深度学习理论指导下的质量守恒定律.ppt VIP
- 运动素质(浙江大学)知到智慧树网课答案.docx VIP
- (最新)25年秋部编三年级语文上册19 香港,璀璨的明珠【精品课件】.pptx
- 三年级上册语文期中素养测评基础卷.pdf VIP
- 实施指南(2025)《GB_T33818-2017碳纳米管导电浆料》.pptx VIP
- 第十二章数据的收集、整理与描述 单元作业(含答案)人教版七年级数学下册.pdf VIP
- 国开电大《应用写作(汉语)》形考任务1-6答案.pdf VIP
- 2006一汽红旗HQ3电路图手册.pdf
- 高级工程师桥梁专业答辩题库.docx VIP
- 电力系统仿真:电力系统稳定性分析_(6).电力系统振荡与控制.docx VIP
原创力文档


文档评论(0)