フラクタル描画シミュレーター

どんな図形から始めても、同じルールで縮小・配置を繰り返すと、決まった形(フラクタル)にたどり着きます。三角形や顔の絵がステップごとにシダやドラゴン曲線へ変わっていく様子を、ブラウザで確かめてみましょう。

数学的には、反復関数系(IFS: Iterated Function System)は縮小するアフィン写像の組 で定義されます。バナッハの不動点定理により、どのような初期図形から始めても写像の適用を繰り返すと、ただ一つの自己相似集合(アトラクター)に収束します。このツールでは「ステップ表示」と「カオスゲーム法(ランダム反復)」の両面から、縮小写像の仕組みを比べられます。

[STEP] 図形が縮小・配置されていく様子を写像ごとに色分け表示
[CHAOS GAME] 最大100万点のランダム反復(カオスゲーム法)
[DIMENSION] 相似次元とボックスカウント次元を自動計算
[EXPORT] 3000×3000px PNG・動画(MP4 / WebM / GIF)保存

フラクタルの選択(全20種)

初期図形 (Step 0) の選択

アトラクター包含枠

※「アトラクター包含枠」を選ぶと、完成図をちょうど囲む枠が各写像によって削られていく様子がよく分かります。

ステップの操作(ハッチソン作用素 )

Step 1

表示の設定

現在のステップ
Step 1
W1(K0)
図形の数
3 個
Nk 個の縮小像
相似次元(モランの式)
1.585
理論値 log 3 / log 2
ボックスカウント次元
1.585
推定値(100万点)
写像の個数 (N)
3 式
アフィン縮小写像
STEP VISUALIZER: READY

相似次元は、開集合条件を満たす場合、ハウスドルフ次元と一致します。シェルピンスキーのギャスケットの解説 →

🎬 動画・GIF で保存 (Step 0 から順に変化していく動画)

動画はブラウザの中で作成します。画像や設定がサーバーへ送信されることはありません。

フラクタルの選択(全20種)

点の数と配色

200,000 pts

アフィン変換の係数

式 (確率)操作
描画した点の数
200,000
-- ms
相似次元(モランの式)
—
相似変換でないため算出対象外
ボックスカウント次元
1.816
推定値(100万点)
写像の個数 (N)
4 式
アフィン縮小写像
CHAOS GAME: READY
次元の求め方(ボックスカウントのグラフ)
6 8 10 12 14 16 456789 1 辺 16 分割: 箱 93 個 1 辺 32 分割: 箱 313 個 1 辺 64 分割: 箱 1,108 個 1 辺 128 分割: 箱 3,966 個 1 辺 256 分割: 箱 14,100 個 1 辺 512 分割: 箱 49,268 個 log₂(1辺の分割数) log₂(箱の数) 傾き ≈ 1.816

カオスゲームで打った100万点を、1 辺を 16〜512 分割した格子で覆い、点を含む箱の数を数えています。両対数グラフの傾きがボックスカウント次元の推定値です。相似次元は全ての写像が相似変換のときだけ計算でき、開集合条件を満たす場合にハウスドルフ次元と一致します。

🎬 動画・GIF で保存 (点が増えていく様子の動画)

動画はブラウザの中で作成します。画像や設定がサーバーへ送信されることはありません。

フラクタルを作る数学(要約)

反復関数系(IFS)によるフラクタルは、縮小写像、バナッハの不動点定理、カオスゲーム法のエルゴード性という3つの考え方で説明できます。詳しくは各解説記事をご覧ください。

縮小写像とバナッハの不動点定理

距離を一定の割合以下に縮める写像(縮小写像)を繰り返し使うと、どこから始めてもただ一つの点(不動点)に近づきます。

詳しい解説を読む →

ハッチソン作用素と反復関数系(IFS)

複数の縮小写像で図形を写し、その和集合をとる操作を繰り返すと、初期図形の形によらず同じ図形(アトラクター)に収束します。

詳しい解説を読む →

アフィン変換 の係数の意味

係数 a〜d は拡大縮小・回転・反転・せん断を、e・f は平行移動を表します。|ad − bc| は面積が何倍になるかを表します。

詳しい解説を読む →

フラクタル次元(相似次元とボックスカウント次元)

全写像が相似変換なら、モランの式 Σ sᵢᴰ = 1 から相似次元が求まります。一般の場合は、箱の数を数えるボックスカウント法で推定します。

詳しい解説を読む →

カオスゲーム法が収束する理由(エルゴード性)

写像をランダムに選んで点を動かし続けると、点はすぐにアトラクターに近づき、その後はアトラクター全体をまんべんなく動き回ります。

詳しい解説を読む →