マンデルブロ集合のPythonコード
マンデルブロ集合をPythonで作ってみよう。
数学的解説
複素数の定数 $c$ について, 漸化式 $z_{n+1} = z_n^2 +c$, $z_0=0$ で定義される数列 $\{ z_n \}_{n \in \mathbb{N}}$ を考える。数列 $\{ z_n \}_n$ が有界であるときの $c \in \mathbb{C}$ の集合をマンデルブロ集合という。
Pythonコード
入力例.
import numpy as np
import matplotlib.pyplot as plt
# 描画サイズとパラメータ
W, H = 500, 500
max_iter = 50
# 座標設定
x = np.linspace(-2, 1, W)
y = np.linspace(-1.5, 1.5, H)
X, Y = np.meshgrid(x, y)
C = X + 1j * Y
Z = np.zeros_like(C)
img = np.zeros(C.shape, dtype=int)
# 反復計算
for i in range(max_iter):
Z = Z**2 + C
img[(img == 0) & (abs(Z) > 2)] = i
# 図示
plt.imshow(img, cmap='inferno', extent=(-2, 1, -1.5, 1.5))
plt.axis('off') # 軸を非表示に
plt.title("Mandelbrot Set")
plt.show()
※ChatGPTで作成しました。
