《科赫雪花曲线的MATLAB编程实现》由会员分享,可在线阅读,更多相关《科赫雪花曲线的MATLAB编程实现(6页珍藏版)》请在金锄头文库上搜索。
1、 科赫雪花曲线的MATLAB编程实现2.1 经一次迭代的科赫曲线MATLAB实现程序如下:x1=1 2 2.5 3 4; y1=0 0 0 0 0; h1=plot(x1,y1,linewidth,2,erasemode,xor); axis equal axis off for g=linspace(0,1,40)*sin(pi/3); y1(3)=g; set(h1,ydata,y1); drawnow; end 一次迭代所得科赫曲线如图一: 图一:2.2 经二次迭代的科赫曲线MATLAB 实现程序如下:x2=x1(1); y2=y1(1); for k=2:length(x1); t=l
2、inspace(x1(k-1),x1(k),4) ; tt=t(2),mean(t),t(3:4); x2=x2,tt; t=linspace(y1(k-1),y1(k),4); tt=t(2),mean(t),t(3:4); y2=y2,tt; end A=angle(y2(4:4:end)-y2(2:4:end)*i+(x2(4:4:end)-x2(2:4:end); for g=linspace(0,1,40)*sin(pi/3)/3; y2(3:4:end)=(y2(4:4:end)+y2(2:4:end)/2+imag(g*exp(i*(A+pi/2); x2(3:4:end)=(x
3、2(4:4:end)+x2(2:4:end)/2+real(g*exp(i*(A+pi/2) ; set(h1,ydata,y2,xdata,x2); drawnow; end 二次迭代后所得科赫曲线如图二: 图二2.3 经三次迭代的科赫曲线MATLAB 实现程序如下x3=x2(1); y3=y2(1); for k=2:length(x2); t=linspace(x2(k-1),x2(k),4); tt=t(2),mean(t),t(3:4); x3=x3,tt; t=linspace(y2(k-1),y2(k),4); tt=t(2),mean(t),t(3:4); y3=y3,tt;
4、end A=angle(y3(4:4:end)-y3(2:4:end)*i+(x3(4:4:end)-x3(2:4:end); for g=linspace(0,1,40)*sin(pi/3)/9; y3(3:4:end)=(y3(4:4:end)+y3(2:4:end)/2+imag(g*exp(i*(A+pi/2); x3(3:4:end)=(x3(4:4:end)+x3(2:4:end)/2+real(g*exp(i*(A+pi/2); set(h1,ydata,y3,xdata,x3); drawnow; end 三次迭代后所得科赫曲线如图三: 图三2.4经四次迭代的科赫曲线MATLA
5、B 实现程序如下x4=x3(1); y4=y3(1); for k=2:length(x3); t=linspace(x3(k-1),x3(k),4); tt=t(2),mean(t),t(3:4); x4=x4,tt; t=linspace(y3(k-1),y3(k),4); tt=t(2),mean(t),t(3:4); y4=y4,tt; end A=angle(y4(4:4:end)-y4(2:4:end)*i+(x4(4:4:end)-x4(2:4:end); for g=linspace(0,1,40)*sin(pi/3)/27; y4(3:4:end)=(y4(4:4:end)+
6、y4(2:4:end)/2+imag(g*exp(i*(A+pi/2); x4(3:4:end)=(x4(4:4:end)+x4(2:4:end)/2+real(g*exp(i*(A+pi/2); set(h1,ydata,y4,xdata,x4); drawnow; end四次迭代后所得科赫曲线如图四: 图四2.5 经五次迭代的科赫曲线MATLAB 实现程序如下x5=x4(1);y5=y4(1);for k=2:length(x4); t=linspace(x4(k-1),x4(k),4); tt=t(2),mean(t),t(3:4); x5=x5,tt; t=linspace(y4(k-
7、1),y4(k),4); tt=t(2),mean(t),t(3:4); y5=y5,tt; end A=angle(y5(4:4:end)-y5(2:4:end)*i+(x5(4:4:end)-x5(2:4:end); for g=linspace(0,1,40)*sin(pi/3)/81; y5(3:4:end)=(y5(4:4:end)+y5(2:4:end)/2+imag(g*exp(i*(A+pi/2); x5(3:4:end)=(x5(4:4:end)+x5(2:4:end)/2+real(g*exp(i*(A+pi/2); set(h1,ydata,y5,xdata,x5); drawnow; end五次迭代后所得科赫曲线如图五: 图五