1 Binary Decomposition
下記文献に従い着色した。
参考文献: Binary Decomposition
バイナリ分解プロットを作成する最も簡単な方法は、非常に大きなエスケープ半径を持つ通常の エスケープ反復アルゴリズムを使用することです。エスケープされた Z の値 ( N番目の 反復) に正の虚数成分があるかどうかに注意してください。これを使用して明るい色または暗い色を 選択します。
下記では、 escape.radius=60 で計算した \(z_n\)
の値について正の虚数成分があるかどうか
チェックしています。(sign(Im(z))
の部分)
mandelbrot()
関数の中身は省略します。知りたい方は初回の記事を参照ください。
library(tidyverse)
mandelbrot(escape.radius=60) %>% ## エスケープ半径=60で計算
mutate(bd=if_else(is.na(iter), NA_real_, sign(Im(z)))) %>% ## Znの虚数成分が正の場合は1
ggplot() +
aes(x=Re(c), y=Im(c), fill=bd) +
geom_raster() +
scale_fill_gradient(low='gray30', high='white', na.value='black') +
coord_fixed(ratio=1) +
guides(fill='none')
2 実験
2.1 エスケープ半径を標準的な値にするとどうなるか?
エスケープ半径を標準的な値(escape.radius=2)にすると下記のようになった。
library(tidyverse)
mandelbrot(escape.radius=2) %>% ## エスケープ半径=2で計算
mutate(bd=if_else(is.na(iter), NA_real_, sign(Im(z)))) %>% ## Znの虚数成分が正の場合は1
ggplot() +
aes(x=Re(c), y=Im(c), fill=bd) +
geom_raster() +
scale_fill_gradient(low='gray30', high='white', na.value='black') +
coord_fixed(ratio=1) +
guides(fill='none')
2.2 虚数成分ではなく実数成分で色分けしてみるとどうなるか?
\(z_n\)の実数成分で色分けしてみると下記のようになった。これは使えそう。
library(tidyverse)
mandelbrot(escape.radius=60) %>% ## エスケープ半径=60で計算
mutate(bd=if_else(is.na(iter), NA_real_, sign(Re(z)))) %>% ## Znの実数成分が正の場合は1
ggplot() +
aes(x=Re(c), y=Im(c), fill=bd) +
geom_raster() +
scale_fill_gradient(low='gray30', high='white', na.value='black') +
coord_fixed(ratio=1) +
guides(fill='none')