我已經寫了一個標準盒子計數算法的實現,用於確定Mathematica中圖像或集合的分形維數,並且我試圖驗證它。我使用CellularAutomaton函數生成了一個Sierpinski三角矩陣,並計算出它的分形維數爲1.58496,統計誤差約爲10^-15。這與log(3)/ log(2)= 1.58496的預期值非常好地匹配。驗證Mathematica中的分形維數計算
當我嘗試對隨機生成的矩陣測試我的算法時出現問題。這種情況下的分形維數應該恰好爲2,但我得到的是約1.994,統計誤差約爲0.004。因此,我的箱子計數算法似乎對Sierpinski三角形來說工作得很好,但對於隨機分佈來說算不上好。任何想法爲什麼不呢?下面
代碼:
sierpinski512 = CellularAutomaton[90, {{1}, 0}, 512];
ArrayPlot[%]
d512 = FractalDimension[sierpinski512, {512, 256, 128, 64, 32, 16, 8, 4, 2}]
rtable = Table[Round[RandomReal[]], {i, 1, 512}, {j, 1, 1024}];
ArrayPlot[%]
drand = FractalDimension[rtable, {512, 256, 128, 64, 32, 16, 8, 4, 2}]
我可以張貼FractalDimension代碼,如果有人真的需要它,但我認爲解決方案(如果有的話)不與FractalDimension算法做,但rtable我以上產生。
你有沒有試過運行幾次? – Ali
@Ali是的,運行幾次似乎重現了與以前相同的結果:在小數點後三位仍然不正確。 – user1748343
我的意思是它總是給出1.994或每次可能有不同的數字。如果您在http://mathematica.stackexchange.com上提出問題,您也將有更高的機會獲得答案。我也看到了一些相關的問題,例如:http://mathematica.stackexchange.com/questions/22052和http://mathematica.stackexchange.com/questions/13125 – Ali