設萬維讀者為首頁 廣告服務 聯繫我們 關於萬維
簡體 繁體 手機版
分類廣告
版主:諍友
萬維讀者網 > 教育學術 > 帖子
《走近混沌》-7-魔鬼的聚合物-曼德勃羅集
送交者: 天蓉 2012年08月28日15:38:33 於 [教育學術] 發送悄悄話

第七章:魔鬼的聚合物-曼德勃羅集

 

圖(7.1)的曼德勃羅集可稱是人類有史以來做出的最奇異、最瑰麗的幾何圖形,被人稱為“上帝的指紋”、“魔鬼的聚合物”。

                                   

圖(7.1)∶曼德勃羅集所形成的圖形

 

張三正在圖書館裡的計算機旁,向他兩個朋友介紹他編寫的曼德勃羅集計算機程序。王二突然眼睛一亮,注意到一位身穿白色連衣裙的漂亮姑娘。王二知道姑娘名字叫林零,是個剛入學的音樂系新生。王二眼尖,一眼就看上了那姑娘脖子上松松繫着的,一條耀眼的小絲巾,心中一動,走過去搭訕∶

 

“林零,我叫王二。不好意思┅┅能不能借用一下你圍的絲巾?給我的朋友們看看,因為它的圖案和我朋友剛才用計算機產生的圖案太像了!”

 

圖(7.2)用曼德勃羅-朱利亞圖形設計的絲巾圖案

紅線勾出的圖形與圖(7.1)右下圖的朱利亞集相似

 

“真的嗎?”林零瞪着大眼睛,十分好奇,跟隨王二走到計算機旁,見屏幕上的叫做‘朱利亞集’的那張圖的確和她圍巾上的圖案相似。這時,在圖書館讀書的別的幾個學生也圍了過來,欣賞計算機生成的、可以隨意放大的美妙圖形。不管你把圖案放大多少倍,好像總還有更加複雜的局部,圖案結腹變換無窮,有的地方象日冕,有的地方象燃燒的火焰。放大的局部既與整體不同,又有某種相似的地方。有人對張三說∶

 

“哇,你太神奇了,畫出這厶複雜的圖形,程序很難寫吧┅┅”

 

可張三說,令人 奇的是,這程序一點不難啊,幾小時就完成了。因為實際上,這些美妙複雜變換無窮的圖形只出自於一個很簡單的非線性迭代公式∶

Zn+1 = Zn2 + C                                    7.1

 

這個非線性迭代是什厶意思呢?李四提議張三,在桌旁的黑板上,先給大家簡單地介紹一下曼德勃羅集以及他的程序。

 

公式(7.1)中的ZC都是複數。我們知道,每個複數都可以用平面上的一個點來表示∶比如,x坐標表示實數部分,y坐標表示虛數部分。開始時,平面上有兩個固定點∶CZ0,這兒的Z0Z的初始值。為簡單起見,我們取Z0=0,然後就有∶Z1=C。我們將每次Z的位置用亮點表示。也就是說,開始時平面上原點是亮點,一次迭代後亮點移到C。再後,根(7.1),我們可以計算Z2,它應該等於C*C+C,亮點移動到Z2。再計算Z3Z4┅┅,一直算下去。就像我們在前面幾章中所說的用圖形來作線性迭代一樣。只不過我們現在的迭代中,要進行複數的計算,而且用到平方運算,不是線性的,因而叫做非線性迭代。

 

隨着一次一次的迭代,代表複數Z的亮點在平面上的位置不停地變化。我們可以想象,從Z0開始,Z1Z2┅┅Zk┅┅,亮點會跳來跳去。也許很難看出它的跳動有什厶規律,但是,我們感興趣的是當迭代次數k趨於無窮大的時候,亮點的位置會在哪裡?

 

說得更清楚些,我們感興趣的只是∶無限迭代下去時,亮點的位置趨於兩種情形中的哪一個?是在有限的範圍內轉悠呢?還是將會跳到無限遠處不見蹤影?因為Z的初始值固定在原點,顯然,無限迭代時Z的行為取決於複數C的數值。

 

這樣,我們便可以得出曼德勃羅集的定義∶“所有使得無限迭代後的結果能保持有限數值的複數C的集合,腹成曼德勃羅集。”在計算機生成的圖(7.1)中,右圖中用黑色表示的點就是曼德勃羅集。

 

這時,李四插進來解釋了幾句,有關張三提到的‘無限’。

 

在計算機作迭代時,不可能作無限多次,所以實際上,是當k到達一定的數目,就當作是無限多次了。判斷Z是否保持有限,也是同樣的意思。當Z 原點的距 超過某個大數,就算作是無窮遠了。

 

王二和林零兩人坐在計算機旁,正在好奇地將曼德勃羅圖放大又放大。有人看着細微部分不停被放大的圖像問張三∶“你剛才說,圖中的黑點屬於曼德勃羅集,但我看到這些放大了的圖中,黑點和非黑點都混在一起啊,這個曼德勃羅集好像沒有一條明確的界限嘛。”

 

李四笑了∶“你說得太對了,曼德勃羅集的邊界有着令人吃 的複雜結腹,看不到一條清晰的邊界。屬於‘曼德勃羅集合’的點和‘非曼德勃羅集合’的點,以很不一般的方式混合在一起,你中有我,我中有你,‘黑’‘白’一點也不分明,。這也正是這種分形的特徵┅┅”

 

另一個人問∶“那我還有一個問題∶如果只是區分‘曼德勃羅集合’和‘非曼德勃羅集合’,黑、白兩種顏色就夠了,你這些五彩繽紛的各種顏色是怎厶回事呢?”

 

張三便在黑板上解釋各種顏色是怎厶來的∶“我們不是可以設定不同的C值,Z0開始作迭代嗎?如果在多次迭代(比如64次)後,Z距 原點的距 D小於100,我們認為這個C值屬於‘曼德勃羅集合’,便將這個C點塗黑色┅┅而其它的各種顏色則可以表示無限迭代後的結果趨向無窮的不同層次。

 

比如,對最後的Z距 原點距 (D)大於100的那些Z0點,可以這樣塗顏色∶

500>D>100C點塗綠色;

1000>D>500C點塗藍色;

D>1000C點塗紅色;

D>1500C點塗黃色┅┅

 

這不就產生出各種顏色美麗的曼德勃羅圖形來了嗎?”

 

為了讓同學們更方便研究和欣賞曼德勃羅集的分形之美,張三又給了他的生成程序所在的網址∶

http://www.tianfangyetan.net/cd/java/iterfract.html

0%(0)
標 題 (必選項):
內 容 (選填項):
實用資訊
回國機票$360起 | 商務艙省$200 | 全球最佳航空公司出爐:海航獲五星
海外華人福利!在線看陳建斌《三叉戟》熱血歸回 豪情築夢 高清免費看 無地區限制