专业的编程技术博客社区

网站首页 > 博客文章 正文

使用Mathematica绘制康托尔集合(Advanced版本)

baijin 2025-05-16 11:30:40 博客文章 8 ℃ 0 评论

方法四 使用with等函数重写迭代/递归,直接绘制

使用递归函数cantorLine生成康托尔集的线段集合,通过调整递归深度n控制图形的精细度,然后直接使用Graphics函数绘制线段:

这个方法,本质上还是迭代/递归方法,只不过这里使用With函数重写了。

方法五: 使用Region功能

函数Region是Mathematica的一个内置函数,可将函数自变量所表示的区域绘制出来,比如:


这里,我们利用这个函数,可以将康托尔集合所表示的区域直接绘制出来【有限深度的康托尔集合】。

方法六:使用 FixedPoint 实现

函数FixedPointy也是Mathematica的内置函数,用来返回函数自变量表达式的不动点,也可以是有限步的不动点。在这里,可以用这个函数来绘制康托尔集合,本质上是因为深度为n的康托尔集,正好是康托尔替代映射的n次符合的不动点

cantorFixedPoint[n_] := 
  FixedPoint[# /. 
     Line[{{x1_, y_}, {x2_, 
         y_}}] :> {Line[{{x1, y + 0.1}, {x1 + (x2 - x1)/3, y + 0.1}}],
        Line[{{x2 - (x2 - x1)/3, y + 0.1}, {x2, y + 0.1}}]} &, 
   Line[{{0, 0}, {1, 0}}], n (*明确最多迭代n次*)];

方法七: 图形迭代法

本质上和使用FixedPoint函数是一样的,只不过要用函数Flatten和Nest组合起来,功能上和FixedPoint函数是一样的。

方法八:使用概率方法(蒙特卡洛)

方法九: 随机概率点云法

方法十:使用动画展示无限迭代过程 (ListAnimate)

接下来,我们使用动画来展示康托尔集的无限迭代过程:

这个方法的主要思路:(1)使用Table生成一系列帧;(2)每个帧展示一个迭代步骤;(3)使用ListAnimate创建可控制的动画。

方法十一:动态交互式康托尔 (Manipulate)

方法十二:使用自定义图形元素来增强康托尔集的可视化效果

这个方法的主要步骤如下:(1)使用cantor函数生成康托尔集的线段集合;(2)每次递归时将线段向下偏移固定距离,形成分层效果;(3)使用Manipulate创建交互式演示,可以调整递归深度k。

另外,也可以通过调整偏移量和线段长度,可以创建不同风格的康托尔集可视化效果。

方法十三:颜色分层增强

方法十四:同时使用颜色和高度增强可视化效果

方法十五:使用颜色和粗细等对比来增加对比效果

添加图片注释,不超过 140 字(可选)


代码:

参考链接:Advanced方法。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表