◆王海飛 馬德峰
基于Gumowski-Mira公式的分形圖實現(xiàn)算法的研究
◆王海飛 馬德峰
分形是生活中常見的現(xiàn)象。分形的內(nèi)容太多,只研究基于公式Gumowski-Mira的分形。通過介紹公式,然后用VC編程實現(xiàn)。通過這幾個參數(shù)的改變,研究圖形的變化,從而研究各個參數(shù)的物理意義。
分形;Gumowski-Mira公式;自相似
分形是日常生活中常見的現(xiàn)象,本文只研究基于公式Gumowski-Mira的分形。通過對公式中參數(shù)的多次改變,研究圖形的變化,從而研究各個參數(shù)的物理意義。對于程序代碼,本文會著重講解其中的每個參數(shù)和變量對圖形的影響,從而把其中的物理意義進(jìn)行總結(jié)歸納,讓大家對分形以及在這個公式基礎(chǔ)上的分形有一個清楚、全新的認(rèn)識!
分形的起源其實,分形的研究可以上溯到很久以前。大約100年前,分形的思想已經(jīng)開始出現(xiàn)在數(shù)學(xué)領(lǐng)域。但是,就像其他的一些革命性的思想一樣,分形的研究受到主流學(xué)術(shù)的譴責(zé),被人們認(rèn)為只是研究一些數(shù)學(xué)中的怪異現(xiàn)象。那時候著名的數(shù)學(xué)家Charles Hermit把分形稱為“怪物”,這代表了絕大多數(shù)人的觀點。
IBM公司的數(shù)學(xué)家Benoit B. Mandelbrot認(rèn)真地研究了分形與自然的關(guān)系,他向人們展示了分形廣泛地存在于身邊,一些現(xiàn)象都能夠用分形來進(jìn)行準(zhǔn)確的描述,他和他的同事們用分形來描述樹和山等復(fù)雜事物。他還擴展了維數(shù)的概念,開創(chuàng)性地提出了分?jǐn)?shù)維的概念,并創(chuàng)造了“fractal”一詞?!癴ractal”就是人們所說的“分形”,也叫“分維”,臺灣的學(xué)者則稱之為“碎形”。為了褒獎Mandelbrot的突出貢獻(xiàn),人們把他稱為“分形之父”[1]。
分形的概念Mandelbrot在解釋“分形”一詞時說:“我由拉丁語形容詞fractus創(chuàng)造了‘分形’(fractal)一詞。相應(yīng)的拉丁語動詞fragere意味著‘打破’和產(chǎn)生不規(guī)則的碎塊。從而可見,除了‘破碎的’(如像碎片或曲折),fractus也應(yīng)當(dāng)具‘不規(guī)則’的含義,這兩個含義都被保存在碎片(fragment)中?!盵2]有許多數(shù)學(xué)結(jié)構(gòu)是分形,如謝爾賓斯基三角形、科切雪花、皮亞諾曲線、曼德勃羅集、洛侖茲吸引子等。分形同樣可以描述許多真實世界的對象,如云彩、山脈、湍流和海岸線等,當(dāng)然它們不是單純的分形形狀。
Mandelbrot曾給出了一個分形的數(shù)學(xué)定義:一個幾何對象,它的豪斯道夫維數(shù)嚴(yán)格大于其拓?fù)渚S數(shù)。這不僅有些抽象,而且也不是一個令人滿意的定義,因為還有好多分形沒有被該定義涵蓋。后來他又給出一個比較通俗的定義:部分與整體以某種形式相似的圖形。該定義仍然不能表達(dá)分形的全部意思,但會使很多初學(xué)者開始理解分形了,雖然還不能全部理解。
分形的幾何特征分形是破碎的、不規(guī)則的,其幾何性質(zhì)十分豐富,可以說,到目前為止它的幾何性質(zhì)還沒有完全被挖掘出來。這里只將分形最常見的一些性質(zhì)描述給大家:1)分形是破碎的,局部不能可微的不規(guī)則圖形;2)分形一般是自相似的,或是統(tǒng)計自相似的;3)分形有時也是自仿射的;4)分形的維數(shù)一般是分?jǐn)?shù)的,但也有整數(shù)維數(shù)的分形;5)分形圖形具有精細(xì)結(jié)構(gòu),即無論局部放大多少倍數(shù),仍然具有復(fù)雜的結(jié)構(gòu)。
圖3.1是比較典型的分形圖形,它們都具有自相似特性,但并不嚴(yán)格自相似,所以用“具有自相似”特性來定義分形已經(jīng)有許多局限了,在人們的知識中應(yīng)該繼續(xù)擴展分形的含義。
圖3.1
通過前面的介紹已經(jīng)知道:分形最明顯的特征是自相似性,其他的特征包括無限復(fù)雜、無限細(xì)致等。分形圖形圖3.1,它表現(xiàn)出自相似的特性。這里的自相似性體現(xiàn)在:每一個圖都是由它的更小版本組成,而整個圖形并沒有重復(fù)。也就是說,這時自相似的實質(zhì)應(yīng)該是某一個部分在其他地方重復(fù)出現(xiàn)。
圖3.2是真實拍攝的一張蕨類植物的圖片,它也具有自相似特性。在這棵蕨類植物中,枝杈是整個植物的小版本,而枝杈的枝杈則是更小的版本。這種特性可以無限地持續(xù)下去。但是,它并不像計算機生成的分形圖形那樣嚴(yán)格地自相似,這大概是因為在成長過程中受到許多外界因素的影響。正是因為分形具有的自相似特性,才使分形如此重要并且具有實際應(yīng)用意義。自然界中許多植物具有自相似特性。
圖3.2
圖3.3的風(fēng)景圖片是說明分形的另一很好的例子,這張美麗的圖片是利用分形技術(shù)生成的。在生成自然真實的景物中,分形具有獨特的優(yōu)勢,因為分形可以很好地構(gòu)建自然景物的模型。其實,分形應(yīng)用的領(lǐng)域很廣,周圍到處有分形應(yīng)用的實例。如微生物中,菌落均呈現(xiàn)共同的形態(tài)特征:以母細(xì)胞為中心的環(huán)狀層次結(jié)構(gòu)。為了抽取隆起部分,科學(xué)家已經(jīng)采用分形理論模型實現(xiàn)對菌落圖像的紋理分割[3]。只要注意觀察,就會注意到分形的應(yīng)用非常廣泛。
圖3.3
Newton分形一個連續(xù)函數(shù)f(x),如果取其Taylor展開前兩項作為它的近似,則有:
令f(x)=0,則函數(shù)f(x)的零點x可表示為:
于是有了求f(x)=0方程根的Newton迭代法:
當(dāng)n趨向于無窮大,極限x(n)存在,則序列{X(n)}平方收斂到f(x)的零點。
把復(fù)數(shù)Z運用到(4.1)式上,得到如下公式:
并運用逃逸時間法就畫得一幅Newton分形圖。
Gumowski-Mira公式Gumowski-Mira公式作為下面的迭代法出現(xiàn):
式中b用于控制軌道是膨脹還是收縮,如果b稍大于1,比如1.004,則軌道就會膨脹;反之若稍小于1,比如0.998,軌道就會收縮。在對下面這些函數(shù)作圖時,大多數(shù)用的是1.005,一個經(jīng)典的函數(shù)是:
Mira公式算法Mira公式算法[4](w代表函數(shù),random是隨機數(shù),0<random<1):
計算軌道,在迭代100到20000次間,每次都畫(x,y)點,當(dāng)然也可加進(jìn)顏色:
下面是根據(jù)Gumowski-Mira公式在VC環(huán)境下編寫的部分程序代碼[5-8]:
主要通過對不同參數(shù)值的設(shè)置所對應(yīng)的圖形的不同來研究各個參數(shù)(即參數(shù)n,b,a)的物理意義。
通過圖6.1、圖6.2的對比可以看到參數(shù)n決定著圖像的清晰程度,因為參數(shù)n代表著循環(huán)的次數(shù),即點的個數(shù),所以n的值越大圖像越清晰。
通過圖6.3、圖6.4和圖6.5的對比可以看出,參數(shù)b是一個非常敏感的常數(shù),通常非常接近于1.0。如果b有一個輕微增長,比如由0.99增大到0.999,軌跡會膨脹,或者螺旋向外至無限。如果b有一個輕微的減小,比如0.985,那么軌跡會收縮至奇異吸引子。
通過圖6.6、圖6.7、圖6.8、圖6.9可以看出,其實參數(shù)a也是一個很敏感的參數(shù),a對圖形的舒展有很大影響,隨著a值的增大,圖形周圍的類似于翅膀的東西就會迅速收斂。
通過圖6.10和圖6.11可以看出,隨著y乘的倍數(shù)縮小,圖形會在縱軸即y軸方向變扁,也就是說這個系數(shù)控制著y軸方向舒展的程度。
通過圖6.10、圖6.12和圖6.13可以看出,隨著y軸偏移量的增大,圖形會往下面移動,說明坐標(biāo)y會隨著偏移量的增大而增大,所以偏移量增大,圖形會往下移動。
通過圖6.10、圖6.14和圖6.15對比可以看出,隨著x所乘倍數(shù)的變大,圖形就會在x方向舒展;相反,圖形就會在x方向上收斂。
通過圖6.16、圖6.17和圖6.18可以看出,隨著x坐標(biāo)偏移量的增大,圖形就會右移,即坐標(biāo)x會隨著偏移量的增大右移。
圖6.1 n=10000
圖6.2 n=1000000
圖6.3 b=0.99
圖6.4 b=0.999
圖6.5 b=0.985
圖6.6 a=0.001
圖6.7 a=0.005
圖6.8 a=0.05
圖6.9 a=0.08
圖6.10
圖6.11
圖6.12
圖6.13
圖6.14
圖6.15
圖6.16
圖6.17
圖6.18
分別通過調(diào)用函數(shù)“pDC->SetPixel(x*30+280,300-y*30,n)”(n為顏色值),對n分別設(shè)置為RGB(255,0,0)、RGB(0,0,255)、RGB(0,255,0),分別得到紅色、藍(lán)色、綠色的圖像。
通過上面的研究可以看出,各個參數(shù)具有敏感特性,因此通過對參數(shù)的多次改變,研究圖形的變化,從而研究各個參數(shù)的物理意義,以及函數(shù)中各個值的變化對整個圖形的影響,從而研究總結(jié)原因。
[1]金以文,魯世杰.分行幾何原理及其應(yīng)用[M].杭州∶浙江大學(xué)出版社,1998.
[2]Mandelbrot B B.大自然的分形幾何[M].上?!蒙虾_h(yuǎn)東圖書發(fā)行部,1998.
[3]王永銘,等.分形模型用于菌落圖象的紋理分割[J].天津大學(xué)學(xué)報,1997(6).
[4]李水根.分形[M].北京∶高等教育出版社,2004.
[5]《電腦編程技巧與維護(hù)》雜志社.Visual C/C++圖形圖像與游戲編程典型實例解析[M].北京∶中國水利水電出版社,2006.
[6]勒濟芳.Visual C++小波變換技術(shù)與工程實踐[M].北京∶人民郵電出版社,2004.
[7]陸宗騏.C/C++圖象處理編程[M].北京∶清華大學(xué)出版社,2005.
[8]張宏軍,黨留群,趙天巨.Visual C++ 6.0編程案例精解[M].北京∶電子工業(yè)出版社,2005.
G434
B
1671-489X(2014)17-0036-04
10.3969/j.issn.1671-489X.2014.17.036
作者:王海飛、馬德峰,鄒平縣第一中學(xué)(256200)。