分形/复平面中的迭代/tsa
外观
< 分形
用于计算多项式 Julia 集图像的算法,具有针对浮点算术中的采样伪影和舍入误差的数学保证。
- 真形算法 (TSA)
算法计算复平面的三区域分解
- 一个白色区域,包含在 Julia 集的外部
- 一个黑色区域,包含在 Julia 集的内部
- 一个灰色区域,不能被分类为白色或灰色。它是一个包含 julia 集 J 的区域
它给出了 Julia 集的自适应近似。空间分辨率受可用内存限制。
K 包含在以原点为中心、半径为 R = max(|c|, 2) 的逃逸圆内。
100% 保证正确的图像:[1]
- 白色像素保证不包含任何内部或边界点
- 黑色像素保证只包含内部点
- 红色像素在当前分辨率下无法确定(它们可能同时包含内部或边界和外部点)。
不幸的是,在实践中,图像中有许多红色像素。这意味着此算法用于证明图像在数学上是正确的。点采样方法用于创建图像。如果一个人看到图像不光滑(组件的边界是光滑的曲线),那么采取更大的分辨率(亚像素精度)才能获得适当的光滑图像。如果一个人获取高质量的点采样图像,那么 TSA 算法不会在其上找到错误的像素。
- 复平面
- 区域 = 具有相同标签的单元的并集
- 单元 = 复平面中的矩形
- 树
- 四叉树
- 图
- 有向图
- 表示单元映射的单元图
- IA = 区间算术[2]
- 二进分数 : 通过使用近似二进分数来处理精确的双精度表示数字
- 算法的目标是图像的数学正确性
- 代价是图像缓慢且不美观。TSA 非常慢,不适合创建具有美观外观的图像。
- 该算法是为 Julia 集设计的
算法避免
- 点采样(1 像素近似):样本之间会发生什么?
- 逃逸时间算法中的函数迭代(不要使用它)
- 浮点舍入误差(平方需要双精度数字)[3]
- 部分轨道(程序无法永远运行)
算法的主要特点
- “单元映射以可靠地对复平面中的‘整个矩形’进行分类”,而不仅仅是对点的有限样本进行分类
- “它通过使用单元映射诱导的图中的颜色传播来处理轨道” = “通过检查单元映射诱导的有向图来跟踪复轨道的命运”
- “算法处理的数字是二进分数,其范围和精度受到限制,并且算法使用无误差定点算术,其精度仅取决于图像的空间分辨率。”
复平面的四叉树分解
自适应细化 = 将每个灰色叶节点单元细分为四个新的灰色子单元
- 简单单元映射 (SCM)
- 广义单元映射 (GCM)[4]
- 图中的标签传播
- Marc Meidlinger 于 2019 年 7 月至 10 月编写的 C++ 代码
- Claude 编写的 Haskell 代码
- CMlib 是一个单元映射算法以及 Gergely Gyebroszki 用 c++ 编写的实用函数和类的库
- “您可以信赖的 Julia 集图像”作者 Luiz-Henrique de Figueiredo、Diego Nehab、Jofge Stolfi、Joao Batista Oliveira - 2013[5][6]
- “多项式 Julia 集的严格边界”作者 Luiz-Henrique de Figueiredo、Diego Nehab、Jofge Stolfi、Joao Batista Oliveira