分形实验报告.docx
- 文档编号:7448702
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:13
- 大小:2.51MB
分形实验报告.docx
《分形实验报告.docx》由会员分享,可在线阅读,更多相关《分形实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
分形实验报告
1.用计算机绘制出Koch曲线的图形。
你能否自己构造一些生成元,并由此绘出相应的分形图形?
任取分形图形的一个局部并将它放大,它同原来的分形图形有什么联系?
代码:
functionresult=KochSnow(a,b,n)
if(b
(1)-a
(1))^2+(b
(2)-a
(2))^2 plot([a (1)b (1)],[a (2)b (2)]) holdon; else c=[a (1)+(b (1)-a (1))/3a (2)+(b (2)-a (2))/3]; d=[a (1)+2*(b (1)-a (1))/3a (2)+2*(b (2)-a (2))/3]; alpha=atan((d (2)-c (2))/(d (1)-c (1))); l=sqrt((d (2)-c (2))^2+(d (1)-c (1))^2); if(alpha>=0&(d (1) (1))|(alpha<=0&(d (1) (1)))) alpha=alpha+pi; end e (1)=c (1)+cos(alpha+pi/3)*l; e (2)=c (2)+sin(alpha+pi/3)*l; result=0; KochSnow(a,c,n); KochSnow(d,b,n); KochSnow(c,e,n); KochSnow(e,d,n); end end clear clc n=input('请输入次数: '); a=[00]; b=[1300]; c=[b (1)/2b (1)*sqrt(3)/2]; KochSnow(a,c,n); KochSnow(c,b,n); KochSnow(b,a,n); 运行结果: 请输入次数: 6 (放大后可知其变化规律是一样的。 ) 2.定义Weierstrass函数如下: 对不同的s值,画出函数的图像,观察图像的不规则性与s的关系,由此猜测Weierstrass函数图像的维数与s的关系。 代码: functiony=Weierstrass(x,l,s) n=1000; y=zeros(size(x)); fori=1: n y=y+(l^((s-2)*i))*sin(l^i.*x); end end clear clc x=linspace(-4,4,100); lambda=2; i=1; fors=1.4: 0.1: 1.7 y=Weierstrass(x,lambda,s); subplot(2,2,i) plot(x,y) title(['s='num2str(s)]); i=i+1; end 运行结果: (S越大,图形变化越剧烈。 ) 3.编写Julia集的程序。 对不同的参数 观察Julia集的变化。 取Julia集的不同局部放大,你能看出某种自相似现象吗? 代码: functionJulia(c,m,n) ifnargin<3 c=0.2+0.65i; m=14; n=500; end r=max(abs(c),2); l=linspace(-r,r,n); A=ones(n,1)*l+i*(ones(n,1)*l)'; B=zeros(n,n); fors=1: m B=B+(abs(A)<=r); A=A.*A+ones(n,n).*c; end; imagesc(B); colormap(jet); holdoff; axisequal; axisoff; clear clc A=[01;-10;0.110.66;-0.102810.95723;-1.25-0.01]; a=0.1;b=0.1; p=0;q=1; n=500; m=14; fori=1: 5 subplot(2,3,i); p=A(i,1); q=A(i,2); Julia(p,q,m,n); title(['c='num2str(A(i,1))'+'num2str(A(i,2))'i']); end 运行结果: 4.回到前面的“混沌游戏”。 如果把三个概率分别取为: ,则迭代一百万次的图形如何? 再取一组其他的概率值绘制相应的图形,结果如何? 据此,你认为概率的选取对最终的极限图形(IFS吸引子)有没有影响? 概率的作用是什么? 代码: clear clc x0=[-10]; x1=[10]; x2=[0sqrt(3)]; max=10000; X (1)=0;Y (1)=0; fori=1: max k=rand (1); ifk<=1./3 X(i+1)=(X(i)+x0 (1))./2; Y(i+1)=(Y(i)+x0 (2))./2; elseifk<=2/3 X(i+1)=(X(i)+x1 (1))./2; Y(i+1)=(Y(i)+x1 (2))./2; else X(i+1)=(X(i)+x2 (1))./2; Y(i+1)=(Y(i)+x2 (2))./2; end end subplot(1,2,1);scatter(X,Y,'kD'); fori=1: max k=rand (1); ifk<=1./6 X(i+1)=(X(i)+x0 (1))./2; Y(i+1)=(Y(i)+x0 (2))./2; elseifk<=2/6 X(i+1)=(X(i)+x1 (1))./2; Y(i+1)=(Y(i)+x1 (2))./2; else X(i+1)=(X(i)+x2 (1))./2; Y(i+1)=(Y(i)+x2 (2))./2; end end subplot(1,2,2);scatter(X,Y,'bD'); 运行结果: (改变概率为: 1/6、2/6、3/6;比较两图可知改变概率基本保持原来图形的形状。 ) 5.给定仿射变换 以及相应的概率 ,其中 均为复数。 取 绘制相应IFS迭代的吸引子的图形。 取不同的 观察图形的变化。 代码: clear clc s=input('输入s: '); p=1/2; n=10000; Z=zeros(n+1,1); fork=1: n r=rand (1); ifr<=p Z(k+1)=s.*Z(k)+1; else Z(k+1)=s.*Z(k)-1; end end x=real(Z); y=imag(Z); plot(x,y,'k*') 运行结果: 输入s: 0.5+0.5i输入s: 0.25+0.5i 输入s: 0.75+0.25i输入s: 0.75+0.75i 6.考虑两个更一般的变换 以及相应的概率 。 取不同的参数C(如C=i,C=-1,C=0.11+0.66i等)。 观察图形的变化。 你能发现什么现象? 代码: clear clc C=input('输入C: '); n=20000; p=1/2; Z=zeros(n+1,1); fork=1: n r=rand (1); ifr<=p Z(k+1)=sqrt(Z(k)-C); else Z(k+1)=sqrt(Z(k)+C); end end x=real(Z); y=imag(Z); plot(x,y,'kD') 运行结果: 输入C: i输入C: -1 输入C: 0.11+0.66i 小结: 本次实验比较难,大部分理论不是很容易理解。 题目中大量使用for,if循环,运用矩阵的一些理论。 主要利用迭代法在matlab里画图,实现分形。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告