張笑笑



摘 要 分析Koch曲線的構造過程,然后編寫生成Koch曲線生成元的M函數,通過該M函數的遞歸調用來生成Koch曲線。通過Koch曲線,便于更直觀地理解分形,獲得分形帶來的藝術美感。
【關鍵詞】分形 Koch曲線 遞歸
自然界存在許多復雜事物和現象,如蜿蜒曲折的海岸線、天空中奇形怪狀的云朵、錯綜生長的灌木、太空中星羅棋布的星球等,還有許多社會現象,如人口的分布、物價的波動等,它們呈現異常復雜而毫無規則的形態,但它們具有自相似性。人們把這些部分與整體以某種方式相似的形體稱為分形(fractal),在此基礎上,形成了研究分形性質及其應用的科學,稱為分形理論。Koch曲線由瑞典數學家科赫(Koch)于1904年提出,是典型的分形曲線。
MATLAB(MATrix LABoratory)是頗具特色和影響的科學計算軟件,它以矩陣運算為基礎,將高性能的數值計算和符號計算功能、強大的繪圖功能、動態系統仿真功能以及為數眾多的應用工具箱集成在一起,在科學研究以及工程設計領域有著十分廣泛的應用。本文以Koch曲線為例,利用MATLAB作為實現工具,說明分形曲線的生成方法。
1 Koch曲線的構造過程
Koch曲線的構造過程是,取一條直線段L0,將其三等分,保留兩端的線段,將中間的一段用以該線段為邊的等邊三角形的另外兩邊代替,得到曲線L1,如圖1所示。再對L1中的4條線段都按上述方式修改,得到曲線L2,如此繼續下去進行n次修改得到曲線Ln,當n→∞時得到一條連續曲線L,這條曲線L就稱為Koch曲線。
Koch曲線將每條直線用一條折線替代,這條折線通常稱為該Koch曲線的生成元。曲線的特征完全由生成元決定。給定不同的生成元,就可以生成各種不同的分形曲線。分形曲線的構造過程是通過反復用一個生成元來取代每一直線段,因而圖形的每一部分都和它本身的形狀相同,這就是自相似性,這是分形最為本質的特點。
對于給定的初始直線L0,需要在線段P1P5中插入三個點,其中P2,P4為線段P1P5的三等分點, P3可以由P4以P2為軸心逆時針旋轉60°得到。
先考慮坐標數據的處理方法,即根據P1,P5兩點的初始坐標,按照Koch曲線的構成原理計算出 P2,P3,P4各點坐標。顯然:
P2=P1+(P5-P1)/3
P4=P1+2( P5-P1)/3
為了得到P3點坐標,引入旋轉矩陣。點A對應于長度為r的向量,A逆時針旋轉△θrad得到B,如圖2所示。
由此,定義旋轉矩陣:
則
B=ART
P3點坐標可以由以下旋轉矩陣來實現。
R用于對坐標進行60°的旋轉,則P3點坐標可以由如下的公式得到:
2 Koch曲線的實現
分形曲線的構造過程也決定了生成該曲線可以用遞歸方法,即函數自己調用自己的過程。定義對直線L0進行替換的函數koch(),然后利用函數的遞歸調用,分別對P1P2、P2P3、P3P4、P4P5線段調用koch函數,通過遞歸來實現替換。程序不能像數學家的設想那樣運算至無窮,所以要根據要顯示的最小長度作為遞歸的終止條件。
首先編寫M函數koch.m如下:
function y=koch(P1,P5,Level)
if Level<1
plot([P1(1),P5(1)],[P1(2),P5(2)],'k'); %繪制曲線
hold on;
else
R=[cos(pi/3),-sin(pi/3);sin(pi/3),cos(pi/3)]; %旋轉矩陣
P2=P1+(P5-P1)/3; %計算P2,P3,P4各點坐標
P4=P1+2*(P5-P1)/3;
P3=P1+(P5-P1)/3+(P5-P1)*R'/3;
koch(P1,P2,Level-1); %函數遞歸調用
koch(P2,P3,Level-1);
koch(P3,P4,Level-1);
koch(P4,P5,Level-1);
end
M函數編寫完成后,編寫以下程序。
koch([0,0],[1,0],5);
axis equal
axis([0,1,-0.05,0.35])
程序取Level=5,P1=[0,0],P5=[1,0],運行結果如圖3所示。改變Level的值可以獲得不同細膩程度的Koch曲線。
在程序中三次調用koch.m函數,實現三角形三條邊各自的Koch曲線,形成Koch雪花曲線效果。編寫以下程序,其運行結果如圖4所示。
koch([1,0],[0,0],5);
koch([0,0],[cos(pi/3),sin(pi/3)],5);
koch([cos(pi/3),sin(pi/3)],[1,0],5);
axis equal
3 Koch曲線的變形
參照本文的方法,我們很容易自己構造其他生成元的Koch曲線,并利用MATLAB來實現。例如,修改Koch曲線生成的方法,將線段中凸起“三角形”改為凸起“正方形”,從而形成一種正方形雪花曲線,如圖5所示。
4 結束語
分形幾何是一門以不規則幾何形態為研究對象的幾何學。由于不規則現象在自然界普遍存在,因此分形幾何學又被稱為描述大自然的幾何學。分形幾何學建立以后,很快就引起了各個學科領域的關注,不僅在理論上,而且在實用上分形幾何都具有重要價值。通過利用計算機和MATLAB來生成分形曲線的圖像,使得我們可以更直觀的感受和理解分形,以及分形帶來的藝術之美。
參考文獻
[1]百度百科.分形理論.http://baike.baidu.com/view/86848.htm.
[2]劉衛國.MATLAB程序設計教程(第二版)[M].北京:中國水利水電出版社,2010.
[3]PRATAP R.Getting Started with MATLAB: A Quick Introduction for Scientists and Engineers.Oxford University Press, New York, 2009.
[4]百度文庫.幾個分形的matlab實現.http://wenku.baidu.com/view/e34f87240722192e4536f659.html.
作者單位
湖南省長沙市第一中學 湖南省長沙市 410005