郭美美
(韓山師范學(xué)院陶瓷職業(yè)技術(shù)學(xué)校,潮州 521031)
關(guān)于Sierpinski墊片的Hausdorff測度的上方估算法實現(xiàn)研究
郭美美
(韓山師范學(xué)院陶瓷職業(yè)技術(shù)學(xué)校,潮州521031)
分形集的Hausdorff測度是非線性科學(xué)的一個理論課題。其中,對于具有嚴(yán)格自相似性的經(jīng)典分形集,如關(guān)于Sierpinski墊片等,至今的結(jié)果還不多,研究發(fā)展較慢。近年來,一部分學(xué)者對于Sierpinski墊片的Hausdorff測度的研究使該課題得到了更一步的有意義的結(jié)果[1-3]。2000年在文獻(xiàn)[3]中,提出定理1:
即通項xn滿足:
則Sierpinski墊片的Hausdorff測度有以下估值:,其中k,j為正整數(shù)且k≥2,1≤ j≤2k-2
并有一編程代碼實現(xiàn)。
本文主要對文獻(xiàn)[3]中的程序代碼進(jìn)行測試驗證,并作修正,最后作進(jìn)一步的延展,打破文獻(xiàn)[3]的計算局限,得到較好的上方估算。
在文獻(xiàn)[3]中定理1的的算法實現(xiàn)分為五個函數(shù)模塊,各模塊的作用及調(diào)用關(guān)系如圖1(具體代碼見文獻(xiàn)[3]):
之所以對該算法的實現(xiàn)研究,是因為算法實現(xiàn)的運(yùn)行過程中,限制了對于k值,要求不超過22。根據(jù)定理1算法的研究表明:k值越大,上方估算值越是精確。文獻(xiàn)[3]限制k不超過22是由當(dāng)時的實現(xiàn)算法的運(yùn)行平臺所局限,那么,計算機(jī)飛速發(fā)展的今天,這個局限能否得到突破,怎么突破成為關(guān)鍵的問題。本文把文獻(xiàn)[3]算法的實現(xiàn)作延展,對于得到更精確的上估算值具有重要的意義。
2.1運(yùn)行環(huán)境
本文程序運(yùn)行環(huán)境為處理器:Intel Core i5 CPU;內(nèi)存:4GB;操作系統(tǒng):64位Windows 7,C++Builder 2010。
2.2糾正幾處語法錯誤
文獻(xiàn)[3]運(yùn)行結(jié)果如圖2:
(1)關(guān)系表達(dá)式
文獻(xiàn)[3]中:
圖1
圖2
其中下劃線部分是用關(guān)系表達(dá)式來表達(dá)判斷,必須改成j==1。
主函數(shù)main中下劃線部分除了不應(yīng)該用相等符號外,邏輯關(guān)系錯誤。從算法的理論和實現(xiàn)的設(shè)計來看,每次循環(huán)時,比較k=i時,Hi與TempHK1比較大小,并把兩者中較小的記錄于變量TempHK1。所以應(yīng)該改成“>”。
(2)輸出格式控制
下劃線部分是long double類型的數(shù)據(jù)輸出L必須為大寫才能正常顯示正確的數(shù)據(jù)。
(3)其他
下劃線部分有三個輸出格式控制,輸出表列卻只有兩個變量名。其實這里的錯誤,會導(dǎo)致在運(yùn)行中途直接閃退,無法得到圖1內(nèi)容。只有在TempHK1前加上“i,”才可以有圖2顯示。
經(jīng)過以上的修正后,程序的運(yùn)行結(jié)果為圖3:
圖3
文獻(xiàn)[3]中Hk中的k值是約束在2≤k≤22的整數(shù)。最終結(jié)果是Hk,k=22時,H(s)是最小值。然而,從算法所得規(guī)律來看,k值越大,得到的上估值就越精確。那么,如果提高k值上限或不限制是什么結(jié)果?
(1)這里先測試上限提高到30,嘗試k=26結(jié)果如圖4。
圖4
由計算結(jié)果觀察得知:當(dāng)k=23以及其后的H值都下降得較前面快。
(2)測試k=23時,j為何值時,Hk開始急速下降。在MinHK()中增加以下代碼作測試:
并且適當(dāng)修改了主函數(shù),只計算K=23時的所有Hk。于是測試結(jié)果如下圖5:
圖5
可知,當(dāng)j=1048577時,是個Hk,k=23的急降點(diǎn)。
(3)測試Hk,k=23,j分別為1048576和1048577時各個計算過程的值。
程序運(yùn)行如圖6:
圖6
這里的Hk肯定了上一步的推斷,明顯異常地急降。
根據(jù)文獻(xiàn)[3]中的定理1,計算各參數(shù)在計算過程中的變化,首先驗證Xn的值是否計算有誤。
(4)檢驗Xn
當(dāng)k=23,j分別為1048576和1048577時調(diào)用的計算Xn的值的函數(shù)是Yj()函數(shù),其中,Yj調(diào)用了MyPow()函數(shù)。現(xiàn)在函數(shù)FunctionHK()中添加了以下下劃線部分的代碼,以作測試Xn:
結(jié)果如圖7:
圖7
根據(jù)定理1,Xn是一個不斷增大的函數(shù)值,j越高,Xn越大,從圖6觀察說明Xn=1870418613是錯誤的值。對于k=23,當(dāng)j=1048576×2-1時Xn是與運(yùn)行程序結(jié)果一致的;當(dāng)j=1048577×2-1時10460353205這個值與圖7中的Xn的值是不一致的。
(5)計算321
按定理1計算Xn,涉及到一個求冪的運(yùn)算。文獻(xiàn)[3]中計算時,是調(diào)用MyPow函數(shù)的。MyPow函數(shù)的返回值是unsigned long int,這個數(shù)據(jù)類型的長度為4個字節(jié)。而321=10460353203(10)=10 0110 1111 0111 1100 0101 0010 1011 0011(2)這個數(shù)的長度超過了32bit,因此,對于函數(shù)MyPow()的調(diào)用返回值其他是丟失了最高位的數(shù)據(jù),變成0 0110 1111 0111 1100 0101 0010 1011 0011(2)=1870418611(10),而由于丟失了最高位數(shù)據(jù)后,成為 1870418611+2= 1870418613剛好與圖6的計算顯示結(jié)果一致。由此得出,是計算過程中調(diào)用MyPow()函數(shù),由于溢出導(dǎo)致計算結(jié)果錯誤。
綜上所述,修改MyPow()的數(shù)據(jù)類型,就可以提高計算的上限。
(1)修改后的代碼如下:
(2)運(yùn)算結(jié)果
對于輸出的結(jié)果Hn表示當(dāng)k=n時,j取值為m時Hs(s)的最好上估值。運(yùn)算結(jié)果如圖8:
圖8
算法的實現(xiàn)符合定理1,保持了原算法實現(xiàn)的結(jié)構(gòu),并修改了文獻(xiàn)[3]中的計算上限值,理論上可以達(dá)到66,但本文測試已花了接近一小時的計算才得圖8結(jié)果,而且,對于Hn的計算結(jié)果之間的變化已不是很明顯,故沒再進(jìn)一步作運(yùn)算。但本文的算法實現(xiàn)已對文獻(xiàn)[3]的算法實現(xiàn)作了延展,計算結(jié)果改進(jìn)了文獻(xiàn)[3]中的有關(guān)結(jié)論。
[1]Marion J.Mesures de Hausdorff D'Ensembles Fractals[J].Ann Sc Math Quebec,1981,11(1):111~137
[2]周作領(lǐng).自相似集的Hausdorff測度——Kock曲線[J].中國科學(xué)(A),1998,28(2):103~107
[3]曾山,許紹元.關(guān)于Sierpinski墊片的Hausdorff測度的上估的算法.韓山師范學(xué)院學(xué)報,2000,6(2):27~31
Sierpinski Gasket;Hausdorff Measure;Algorithm Implementation
Research on the Implementation of an Algorithm for the Upper Extimation of the Hausdorff Measure of Sierpinski Gasket
GUO Mei-mei
(Ceramic Vocation Technical School,Hanshan Normal University,Chaozhou 521031)
1007-1423(2015)17-0075-06
10.3969/j.issn.1007-1423.2015.17.017
郭美美(1982-),女,廣東潮州人,碩士,講師,研究方向為軟件工程
2015-04-28
2015-05-20
Sierpinski墊片的Hausdorff測度的估計和計算在分形理論上具有重要的意義。利用Sierpinski墊片的Hausdorff測度上方估算的算法,對少數(shù)的已有的計算機(jī)編程實現(xiàn)進(jìn)行研究分析,修正文獻(xiàn)[3]算法實現(xiàn)中的代碼錯誤,并對其作進(jìn)一步的延展。
Sierpinski墊片;Hausdorff測度;算法實現(xiàn)
國家大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目
Extimation and Calculation of Hausdorff Measure of Sierpinski Gasket has important significance.With an Algorithm for the upper extimation of the Hausdorff Measure of Sierpinski Gasket,researches and analyzes the existing implementation of an algorithm of computer,corrects paper[3]and extends to higher upper limit.