下载此文档

Matlab实验报告:分形迭代.docx


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
该【Matlab实验报告:分形迭代 】是由【guoxiachuanyue014】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【Matlab实验报告:分形迭代 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。数学实验报告:分形迭代
练习1
:绘制分形图案并分析其特点。
:绘制Koch曲线、Sierpinski三角形和树木花草图形,观察这些图形的局部和原来分形图形的关系。
3•实验思路:利用函数反复调用自己来模拟分形构造时的迭代过程,当迭代指标n为0时运行作图操作,否则继续迭代。
:
Koch曲线
functionkoch(p,q,n)%p、q分别为koch曲线的始末复坐标,n为迭代次数if(n==0)
plot([real(p);real(q)],[imag(p);imag(q)]);
holdon;
axisequal
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
Sierpinski三角形
functionsierpinski(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');%填充三角形abcholdon;
axisequal
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
树木花草
functiongrasstree(p,q,n)%p、q分别为树木花草始末复坐标,n为迭代次数
plot([real(p);real(q)],[imag(p);imag(q)]);
holdon;
axisequalif(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
:
扌旨令:koch(0,l,5);soerpinski(0,l,exp(pi*i/3),5);grasstree(0,i,5);
Koch曲线
-->弋”駁
■02
AA
A
01
Sierpinski三角形
树木花草
:以上图案的局部形状与原本图形用某种自相似性,这正是分形的特点。
:一般迭代次数大于7,程序运行时间就很长,因此迭代次数建议设定为5。
练习2
1•实验目的:研究Koah雪花的特征。
2•实验内容:对一个等边三角形,每条边按照Koch曲线的方式进行迭代,产生的分形图称为Koch雪花。编制程序绘制出它的图形,并计算Koch雪花的面积,以及它的分形维数。
3•方法思路:采用Koch曲线的迭代元来绘制。
4•实验步骤:
functionxuehua(n)
koch(0,+(1/2)*sqrt(3)*i,n);
koch(+(1/2)*sqrt(3)*i,1,n);
koch(1,0,n);
end
xuehua(1);xuehua(3)
5•主要输出:
不同n对应不同的图像如下:
n=1
n=3
:每一次迭加,所产生的新三角形的边长变为上一次的1/3,数量为上一次的4
33中1
倍。而设原三角形边长为r,Koch雪花的面积S=~4r2+4r2x,[3x4i_1x—]
4432i
i=1,
由此可以推出雪花曲线的边长是无限的,而面积是有限的。另外,从图像可以看出,随迭代次数n趋于无穷,图形每一点都没有切线。
:由于没有找到matlab中相应的计算图形面积与周长的函数,所以这两项计算是由人工完成的。
练习3
:研究分形维数反映出来的分形的特性。
2•实验内容:利用分形维数公式d=log(n)/log(c)计算雪花曲线,Sierpinski三角形,Minkowski香肠的维数并与其图像显现出的性质进行比较。
3•方法思路:只需画出Minkowski香肠的图像,其他分形利用之前图像与维数进行比较即可。4•实验步骤:
Minkowski香肠:functionMinkowski(p,q,n)if(n==0)
plot([real(p);real(q)],[imag(p);imag(q)]);
holdon;
axisequal
elsem=(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);
:由分形维数公式log(n)/log(c)可计算的个图形的维数。雪花曲线:log4/log3=
Minkowski香肠:logn/logc=
Sierpinski三角形:log3/log2=
Minkowski香肠:
6•实验结论:可见雪花曲线,Sierpinski三角形,Minkowski香肠的维数都在1与2之间,它们的图像的面积都有极限,而图形边长无限长。维数越接近1,则图形有更多的曲线的性质,维数越接近2,则图形有更多的平面的性质,由此可推算Hilbert曲线的维数很接近2。
7•问题分析:迭代次数越大,贝惬像的说明效果越好,但程序的运行时间也越长,建议迭代次数不要超过7。
练习4
1•实验目的:探索Weierstrass函数图像的性质
2•实验内容:已知Weierstrass函数如下:
W(x)=£九(s-2)ksin6kx),九>1,1<s<2,
k=1
对不同的s值,画出函数图像,观察图像的不规则性与s的关系,并猜测Weierstrass函数图像的维数与s的关系
3•方法思路:由于Weierstrass函数表达式中为无穷项求和,Matlab中使用无穷项求和花费太多时间,所以考虑取足够大的项数进行运算,通过变换s的值,画出不同的图像进行比较,达到原来的实验目的。
4•实验步骤:
symsfx
f=0;y=10;s=;
%s=;
%s=;
fori=1:100
f=f+yA((s-2)*i)*sin(yA(i)*x);
end
ezplot(f,[0,2])
6•实验结论:Weierstrass函数图像随着s值的增加变得更加不规则
猜测随着s取不同的值,Weierstrass函数图像的维数随着s值得增加而变大
:考虑到不同项数的做和可能会影响图像的准确性,但在实验了100项、300项和500项的做和后,发现图像改变并不是很大,而当项数改为1000后,发现又要等很长的时间,且得到的结论相同,所以取100项的求和进行实验。
练习6
:绘制Mandelbrot集和Julia集。
2•实验内容:绘制Mandelbrot集并局部放大,与其不同的部位(内点、外电、边界点及芽抱内点)对应的Julia集形状进行对比。
实验思路:按照Mandelbrot集和Julia集的构造方法,先编写好相应函数,观察Mandelbrot集的局部细节,出几个典型的内点、外电、边界点及芽孢内点,然后画出对应的Julia集并比较。
实验步骤:
(1)Mandelbrot集
functionmandelbrot(z,r,k,d)ifnargin<4
k=200;%迭代次数
d=500;%分辨率
z=-;%中心
r=;%显示半径
end
x=linspace(real(z)-r,real(z)+r,d);
y=linspace(imag(z)-r,imag(z)+r,d);
A=ones(d,1)*x+i*(ones(d,1)*y)';
C=A;
B=zeros(d,d);
fors=1:k
B=B+(abs(A)<=2);
A=A.*A+C;
end;
imagesc(flipud(B));
colormap(jet);
holdoff;
axisequal;
axisoff;
(2)Julia集
functionJulia(c,k,v)
ifnargin<3
c=-;k=100;v=500;
end
r=max(abs(c),2);
d=linspace(-r,r,v);
A=ones(v,1)*d+i*(ones(v,1)*d)';
B=zeros(v,v);
fors=1:k
B=B+(abs(A)<=r);
A=A.*A+ones(v,v).*c;
end;imagesc(B);colormap(jet);holdoff;axisequal;axisoff;
:以下为不同z值的Mandelbrot集的局部放大图形以及对应的Julia集图形
Mandelbrot集局部
对应Julia集
z=-1;z为内点。
3
z为外点。
z=-1+0・5i
z=-1+0・3iz为边界点
z=-
z为芽抱的
内点

Matlab实验报告:分形迭代 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息