分形/複平面中的迭代/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