77范文网 - 专业文章范例文档资料分享平台

Matlab实验报告:分形迭代

来源:网络收集 时间:2020-04-13 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

数学实验报告:分形迭代

练习1

1.实验目的:绘制分形图案并分析其特点。

2.实验内容:绘制Koch曲线、Sierpinski三角形和树木花草图形,观察这些图形的局部和原来分形图形的关系。

3.实验思路:利用函数反复调用自己来模拟分形构造时的迭代过程,当迭代指标n为0时运行作图操作,否则继续迭代。 4.实验步骤:

(1)Koch曲线

function koch(p,q,n) % p、q分别为koch曲线的始末复坐标,n为迭代次数 if (n==0) plot([real(p);real(q)],[imag(p);imag(q)]); hold on; axis equal else

a=(2*p+q)/3; % 求出从 p 到 q 的 1/3 处端点 a b=(p+2*q)/3; % 求出从 p 到 q 的 2/3 处端点 b c=a+(b-a)*exp(pi*i/3);%

koch(p, a, n-1); % 对 pa 线段做下一回合 koch(a, c, n-1); % 对 ac 线段做下一回合 koch(c, b, n-1); % 对 cb 线段做下一回合 koch(b, q, n-1); % 对 bq 线段做下一回合 end

(2)Sierpinski三角形

function sierpinski(a,b,c,n) % a、b、c为三角形顶点,n为迭代次数 if (n==0) fill([real(a) real(b) real(c)],[imag(a) imag(b) imag(c)],'b');% 填充三角形abc hold on; axis equal else

a1=(b+c)/2; b1=(a+c)/2; c1=(a+b)/2;

sierpinski(a,b1,c1,n-1); sierpinski(a1,b,c1,n-1); sierpinski(a1,b1,c,n-1); end

(3)树木花草

function grasstree(p,q,n) % p、q分别为树木花草始末复坐标,n为迭代次数

plot([real(p);real(q)],[imag(p);imag(q)]); hold on; axis equal if(n>0)

a=(2*p+q)/3; b=(p+2*q)/3;

c=a+(b-a)*exp(pi*i/6);% d=b+(q-b)*exp(-pi*i/6);% grasstree(a,c,n-1); grasstree(b,d,n-1); end end

5.主要输出:

指令:koch(0,1,5); soerpinski(0,1,exp(pi*i/3),5);

grasstree(0,i,5);

Koch曲线

Sierpinski三角形

树木花草

6.实验结论:以上图案的局部形状与原本图形用某种自相似性,这正是分形的特点。 7.问题分析:一般迭代次数大于7,程序运行时间就很长,因此迭代次数建议设定为5。

练习2

1.实验目的:研究Koah雪花的特征。

2.实验内容:对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。 3.方法思路:采用Koch曲线的迭代元来绘制。 4.实验步骤:

function xuehua(n)

koch(0,0.5+(1/2)*sqrt(3)*i,n); koch(0.5+(1/2)*sqrt(3)*i,1,n); koch(1,0,n); end

xuehua(1);xuehua(3) 5.主要输出:

不同n对应不同的图像如下:

n=1 n=3

6.实验结论:每一次迭加,所产生的新三角形的边长变为上一次的1/3,数量为上一次的4

3232n1i?1S?r?r?[3?4?]倍。而设原三角形边长为r,Koch雪花的面积?2i443, i?1由此可以推出雪花曲线的边长是无限的,而面积是有限的。另外,从图像可以看出,随迭代

次数n趋于无穷,图形每一点都没有切线。 7.问题分析:由于没有找到matlab中相应的计算图形面积与周长的函数,所以这两项计算是由人工完成的。

练习3

1.实验目的:研究分形维数反映出来的分形的特性。

2.实验内容:利用分形维数公式d=log(n)/log(c)计算雪花曲线,Sierpinski三角形,Minkowski香肠的维数并与其图像显现出的性质进行比较。 3.方法思路:只需画出Minkowski香肠的图像,其他分形利用之前图像与维数进行比较即可。 4.实验步骤:

Minkowski香肠:

function Minkowski(p,q,n) if (n==0)

plot([real(p);real(q)],[imag(p);imag(q)]); hold on; axis equal else

m=(q-p)/4;m1=real(m);m2=imag(m);

a=p+m; b=a+(-m2+m1*i);c=b+m;d0=c+(m2-m1*i); d=c+2*(m2-m1*i);e=d+m;f=e+(-m2+m1*i); Minkowski(p, a, n-1); Minkowski(a, b, n-1); Minkowski(b, c, n-1); Minkowski(c, d0, n-1); Minkowski(d0, d, n-1); Minkowski(d, e, n-1); Minkowski(e, f, n-1);

Minkowski(f, q, n-1);

5.实验输出:由分形维数公式log(n)/log(c)可计算的个图形的维数。

雪花曲线:log4/log3=1.26

Minkowski香肠:log n/logc=1.5 Sierpinski三角形:log3/log2=1.58

Minkowski香肠:

6.实验结论:可见雪花曲线,Sierpinski三角形,Minkowski香肠的维数都在1与2之间,它们的图像的面积都有极限,而图形边长无限长。维数越接近1,则图形有更多的曲线的性质,维数越接近2,则图形有更多的平面的性质,由此可推算Hilbert曲线的维数很接近2。 7.问题分析:迭代次数越大,则图像的说明效果越好,但程序的运行时间也越长,建议迭代次数不要超过7。

练习4

1.实验目的:探索Weierstrass函数图像的性质 2.实验内容:已知Weierstrass函数如下:

W?x?????s?2?ksin??kx?,??1,1?s?2,k?1?

对不同的s值,画出函数图像,观察图像的不规则性与s的关系,并猜测Weierstrass 函数图像的维数与s的关系 3.方法思路:由于Weierstrass函数表达式中为无穷项求和,Matlab中使用无穷项求和花费太 多时间,所以考虑取足够大的项数进行运算,通过变换s的值,画出不同的图像 进行比较,达到原来的实验目的。 4.实验步骤:

syms f x

f=0; y=10; s=1.4; %s=1.6; %s=1.8; for i=1:100

f=f+y^((s-2)*i)*sin(y^(i)*x); end

ezplot(f,[0,2])

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库Matlab实验报告:分形迭代在线全文阅读。

Matlab实验报告:分形迭代.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/936456.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: