コッホ曲線
コッホ曲線(コッホきょくせん、テンプレート:Lang-en-short)はフラクタル図形の一つ。スウェーデンの数学者ヘルゲ・フォン・コッホ (Helge von Koch) が考案したテンプレート:Sfn。線分を3等分し、分割した2点を頂点とする正三角形の作図を無限に繰り返すことによって得られる図形である。1回の操作で線分の長さが テンプレート:Math 倍になるので、操作を無限に繰り返して得られるコッホ曲線の長さは無限大であるテンプレート:Sfn。高木曲線などと同様に、連続でありながら至るところで微分不可能な曲線であるテンプレート:Sfn。
コッホ曲線は相似比が テンプレート:Math の4個のセグメントから成っているので、フラクタル次元(相似次元)は、テンプレート:Math を底とする テンプレート:Math の対数(テンプレート:Mathを必ずしも自然対数である必要はない任意の対数として、テンプレート:Math次元)である[1]。(テンプレート:OEIS2C)
コッホ曲線の作成手順

- 線分を引く。(ステップ0、図左上)
- 線分を3等分し、中央の線分を1辺とする正三角形を描き、下の辺を消す。(ステップ1、図右上)
- 得られた4の線分に対して同じ操作を繰り返す。(ステップ2、図左下)
- 得られた16の線分に対して同じ操作を繰り返す。(ステップ3、図右下)
この操作を無限に繰り返すとコッホ曲線になる。以下はステップ6まで行ったときの図形である。

コッホ雪片

コッホ雪片(コッホせっぺん、テンプレート:Lang-en-short)は、上記のコッホ曲線を3つ繋ぎ合わせ、始点と終点を一致させたものであるテンプレート:Sfn。コッホ島などとも呼ぶテンプレート:Sfn。
コッホ曲線は無限の長さを持つので、同様にコッホ雪片の周長も無限の長さを持つ。一方で、コッホ雪片の曲線で囲まれた面積は有限に留まる。最初の正三角形の面積を テンプレート:Math とするとコッホ雪片の面積は テンプレート:Math に収束するテンプレート:Sfn。
コンピュータによる生成
コッホ曲線は、アフィン変換を使用することで得られ、
- テンプレート:Sfrac でスケーリングする変換式
- テンプレート:Sfrac でスケーリングし、テンプレート:Math回転させる変換式
- テンプレート:Sfrac でスケーリングし、テンプレート:Math回転させる変換式
- テンプレート:Sfrac でスケーリングする変換式
反復関数 テンプレート:Math は、テンプレート:Math の式で展開できるので、計算式は以下のように表される。
これらの反復関数を各種プログラム言語(C, Python, Basicなど)でプログラミングし、順次反復計算させ、コッホ曲線を描画させることが可能である[3]。
また、下表のように各反復関数の確率因子を設定[4]しておき、コンピューターで乱数を発生させ、確率因子pに応じた乱数範囲で用いる関数を決定し、計算を反復的に実行することでも、コッホ曲線を描画させることができる。これはランダム・アルゴリズムと呼ばれる手法である[5][6]。
| w | a | b | c | d | e | f | p | 変換内容 |
|---|---|---|---|---|---|---|---|---|
| ƒ1 | 1/3 | 0 | 0 | 1/3 | 0 | 0 | 0.25 | 1/3にスケーリング |
| ƒ2 | 1/6 | -√3/6 | √3/6 | 1/6 | 1/3 | 0 | 0.25 | 1/3にスケーリング、60°回転 |
| ƒ3 | 1/6 | √3/6 | -√3/6 | 1/6 | 1/2 | √3/6 | 0.25 | 1/3にスケーリング、-60°回転 |
| ƒ4 | 1/3 | 0 | 0 | 1/3 | 2/3 | 0 | 0.25 | 1/3にスケーリング |
以下のように表計算ソフトの関数を利用することでも同様の計算を実行できる。

| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | w | a | b | c | d | e | f | p |
| 2 | ƒ1 | 0.3333 | 0 | 0 | 0.3333 | 0 | 0 | 0.25 |
| 3 | ƒ2 | 0.1667 | -0.2887 | 0.2887 | 0.1667 | 0.3333 | 0 | 0.25 |
| 4 | ƒ3 | 0.1667 | 0.2887 | -0.2887 | 0.1667 | 0.5 | 0.2887 | 0.25 |
| 5 | ƒ4 | 0.3333 | 0 | 0 | 0.3333 | 0.6667 | 0 | 0.25 |
| 6 | random | ƒ | X | Y | ||||
| 7 | 0 | 0 | ←initial | |||||
| 8 | =RAND() | B8 | C8 | D8 | ←data |
なお、B8,C8,D8のセルには以下のような複数条件判定の関数(ネスティング参照)を入力する。
- B8=IF(A8<($H$2),1,IF(A8<($H$2+$H$3),2,IF(A8<($H$2+$H$3+$H$4),3,4)))
- C8=IF(B8=1,$B$2*C7+$C$2*D7+$F$2,IF(B8=2,$B$3*C7+$C$3*D7+$F$3,IF(B8=3,$B$4*C7+$C$4*D7+$F$4,$B$5*C7+$C$5*D7+$F$5)))
- D8=IF(B8=1,$D$2*C7+$E$2*D7+$G$2,IF(B8=2,$D$3*C7+$E$3*D7+$G$3,IF(B8=3,$D$4*C7+$E$4*D7+$G$4,$D$5*C7+$E$5*D7+$G$5)))
最終8行目をオートフィルで適当な行数だけコピーし、XY散布図とするとコッホ曲線が得られる。
脚注
参考文献
関連項目
外部リンク
- ↑ テンプレート:Cite book ja-jp
- ↑ テンプレート:Cite web
- ↑ テンプレート:Cite web
- ↑ テンプレート:Cite web
- ↑ p370,"8 Application to Computer Graphics", Fractals Everywhere, Boston, MA: Academic Press, 1993, テンプレート:ISBN2
- ↑ テンプレート:Cite web