分形实验报告.docxVIP

  • 48
  • 0
  • 约3.13千字
  • 约 10页
  • 2017-01-05 发布于重庆
  • 举报
分形实验报告

1.用计算机绘制出Koch曲线的图形。你能否自己构造一些生成元,并由此绘出相应的分形图形?任取分形图形的一个局部并将它放大,它同原来的分形图形有什么联系?代码:function result=KochSnow(a,b,n) if (b(1)-a(1))^2+(b(2)-a(2))^2n plot([a(1) b(1)],[a(2) b(2)]) hold on;else c=[a(1)+(b(1)-a(1))/3 a(2)+(b(2)-a(2))/3]; d=[a(1)+2*(b(1)-a(1))/3 a(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)c(1))|(alpha=0(d(1)c(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 endclearclc n=input(请输入次数: ); a=[0 0];b=[130 0];c=[b(1)/2 b(1)*sqrt(3)/2]; KochSnow(a,c,n); KochSnow(c,b,n);KochSnow(b,a,n); 运行结果:请输入次数: 6(放大后可知其变化规律是一样的。)2.定义Weierstrass函数如下:对不同的s值,画出函数的图像,观察图像的不规则性与s的关系,由此猜测Weierstrass函数图像的维数与s的关系。代码:function y = Weierstrass(x, l, s) n=1000;y=zeros(size(x)); for i=1:ny=y+(l^((s-2)*i))* sin(l^i.*x);endendclearclc x = linspace(-4,4,100);lambda = 2; i = 1; for s = 1.4: 0.1: 1.7y = Weierstrass(x, lambda, s);subplot(2,2,i)plot(x,y)title([s= num2str(s)]);i = i + 1;end运行结果:(S越大,图形变化越剧烈。)3.编写Julia集的程序。对不同的参数观察Julia集的变化。取Julia集的不同局部放大,你能看出某种自相似现象吗?代码:function Julia(c,m,n) if nargin 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); for s = 1:m B = B+(abs(A)=r); A = A.*A+ones(n,n).*c; end; imagesc(B); colormap(jet);hold off; axis equal; axis off;clearclc A=[0 1;-1 0;0.11 0.66;-0.10281 0.95723;-1.25 -0.01];a=0.1;b=0.1;p=0;q=1;n=500;m=14; for i=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吸引子)有没有影响?概率的作用是什么?代码:clearclc x0=[-1 0];x1=[1 0];x2=[0 sqrt(3)]; max=10000; X(1)=0;Y(1)=0; for i=1:max k=rand(1); if k=1./3 X(i+1)=(X(i)+x0(1))./2; Y(i+1)=(Y(i)+x0(2))./2; elseif k=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; en

文档评论(0)

1亿VIP精品文档

相关文档