【问题标题】:Validating fractal dimension computation in Mathematica在 Mathematica 中验证分形维数计算
【发布时间】:2013-07-08 23:32:41
【问题描述】:

我已经编写了标准盒计数算法的实现,用于确定 Mathematica 中图像或集合的分形维数,我正在尝试验证它。我使用 CellularAutomaton 函数生成了一个谢尔宾斯基三角矩阵,并计算出它的分形维数为 1.58496,统计误差约为 10^-15。这与 log(3)/log(2) = 1.58496 的预期值非常吻合。

当我尝试针对随机生成的矩阵测试我的算法时,问题就出现了。在这种情况下,分形维数应该正好是 2,但我得到大约 1.994,统计误差约为 0.004。因此,我的盒子计数算法似乎对谢尔宾斯基三角形工作得很好,但对随机分布来说不是很好。有什么想法为什么不呢?

代码如下:

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 是的,运行它几次似乎重现了与以前相同的结果:在小数点后第三位仍然不正确。
  • 我的意思是它每次总是给出 1.994 或者不同的数字。此外,如果您在 mathematica.stackexchange.com 上提问,您获得答案的机会肯定会更高。我在那里也看到了一些相关的问题,例如:mathematica.stackexchange.com/questions/22052mathematica.stackexchange.com/questions/13125
  • @Ali 在连续运行时,它可能会在小数点后第三位略有不同,例如 1.995,统计误差也会有微小变化。

标签: wolfram-mathematica fractals


【解决方案1】:

我在与一位知名物理学家协商后对这个问题进行了一些经验性研究,我们认为随着点数的增加,随机点过程的分形维数会变为 2(我认为是极限) .我无法提供“大”的确切定义,但不能少于几千点。所以,我认为你应该期望得到 D

非常感谢您的 FractalDimension 代码!

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 2011-12-31
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多