
分形(Fractal)一詞,是由美國數(shù)學家曼德勃羅先生(Mandelbrot)創(chuàng)造出來的。分形幾何學是一門以非規(guī)則幾何形態(tài)為研究對象的幾何學。按照分形幾何學的觀點,一切復雜的對象雖然看似雜亂無章,但他們具有相似性。簡單地說,就是把復雜對象的某個局部進行放大,其形態(tài)和復雜程度與整體相似。
本文給出基于復動力系統(tǒng),例如Mandelbrot集、Julia集;基于迭代函數(shù)系統(tǒng),例如科赫雪花、謝爾賓斯基三角形。
一、基于復動力系統(tǒng)
因為復數(shù)可以用平面直角坐標系上的點來表示。橫坐標軸表示復數(shù)的實數(shù)部分,縱坐標軸表示復數(shù)的虛數(shù)部分,則復數(shù) A+Bi就對應(yīng)了平面上的點 (A, B),其中復數(shù)A+Bi的模就是A^2 + B^2 的算數(shù)平方根。這個平面直角坐標系也就成為了復平面。
- Julia集
所謂Julia集就是復平面上的點經(jīng)過如下形式:
的無數(shù)次迭代得到的復數(shù)的模不大于2的點構(gòu)成的集合。其中Z代表復平面上的點,C是任意的復數(shù)。對于不同的C值,不同的迭代次數(shù),所得到的圖像是不同的。下面給出幾種不同的C值對應(yīng)的圖像。之所以限定模值為2,是因為隨著迭代次數(shù)的增大,模大于2的點肯定會發(fā)散。為了圖片的美觀,根據(jù)不同的模值定義不同的顏色。
- Mandelbrot集
生成Mandelbrot集和Julia集的原理是類似的,唯一的不同在于,迭代的表達式變?yōu)椋?/p>
其中Z0表示復平面上的每個點。計算Mandelbrot集,也就是記錄每個點在迭代過程中得到的復數(shù)的模值大于2時的迭代次數(shù),然后根據(jù)迭代次數(shù)進行繪圖,不同的迭代次數(shù)用不同的顏色表示,即可繪制出圖。
在Julia集中,C值是任意給定的復平面上的一點,對于所有復平面上的點Z而言,都是一樣的。而Mandelbrot集中C就是該點Z,對于所有復平面上的點Z而言,都是不一樣的。Julia集每個圖形表示的是一個C值,而C值肯定是Z0值中的一個。因此Mandelbrot集是Julia集的高度概括,也就是任意一個C值對應(yīng)的Julia圖形,肯定可以在Mandelbrot集的圖形中找到與其對應(yīng)的圖像。下面給出Mandelbrot集的圖像:
下面給出
時的Mandelbrot集的圖像:
下面給出次數(shù)為2時的Mandelbrot集局部放大時的圖像:
二、基于迭代函數(shù)
基于迭代函數(shù)就是根據(jù)一定的規(guī)則,迭代生成分形圖像。下面以謝爾賓斯基三角形和科赫雪花為例:
- 謝爾賓斯基三角形
由波蘭數(shù)學家謝爾賓斯基在1915年提出。
迭代規(guī)則:
1,取一個底色為黑色的三角形,一般為等邊三角形;
2,沿三邊中點的連線,將它分成四個小三角形;
3,將中間的那一個小三角形底色變?yōu)榘咨?4,對其余三個小三角形重復步驟2,3;
5,重復以上步驟;
圖示:
除了迭代法之外,也可以利用隨機的方法獲得。
隨機方法規(guī)則:
1,在平面上選取3個點,并標出,為了美觀,這3個點可以為等邊三角形的頂點;
2,在平面上任意選取一個點作為第4個點,作為候選點,在平面上標出;
3,在數(shù)字1,2,3中隨機選擇一個數(shù)字。數(shù)字1,2,3的分別點1,2,3對應(yīng);
4,選中的點和當前候選點的中點作為新的候選點,并在平面上標出;
5,重復步驟3,4;
圖示:
- 科赫雪花曲線
最早出現(xiàn)在海里格·馮·科赫1904年的論文中。
規(guī)則:
1,對于一個等邊三角形,把每一邊都三等分;
2,將每個邊的中間一段,向外旋轉(zhuǎn)60度,作為等邊三角形的一邊,繪制出等邊三角形;
3,將中間的這一段去掉;
4,重復上述步驟;
圖示:
點擊獲得更多趣味謎題以及基于Python3的解決方案代碼。歡迎Follow,感謝Star?。?! 掃描關(guān)注微信公眾號pythonfan,獲取更多。