Next: , Previous:   [Contents][Index]

54 fractals


54.1 Introduction to fractals

このパッケージはよく知られているフラクタルをいくつか定義します:

- ランダムIFS(反復函数系)を使って: Sierpinski三角形、木、シダ

- 複素フラクタル: MandelbrotとJulia集合

- Koch雪片集合

- Peano写像: SierpinskiとHilbert写像

著者: José Ramírez Labrador.

質問、提案、バグに関しては、 pepe DOT ramirez AAATTT uca DOT es まで、私に気兼ねせずコンタクトしてください。


54.2 Definitions for IFS fractals

いくつかのフラクタルは、 縮小アフィン変換をランダムに繰り返し適用することで生成することができます; Hoggar S. G., "Mathematics for computer graphics", Cambridge University Press 1994を参照してください。

いくつかの縮小アフィン変換のリストを定義して、 繰り返しの中で変換をランダムに選択します。 変換の選択の確率は縮小比に関係しなければいけません。

変換を変えて、別のフラクタルを見つけることができます。

関数: sierpinskiale (n)

Sierpinski三角形: 3つの縮小写像; .5の縮小定数と変形; すべての写像は同じ縮小比です。 引数nは十分大きく、10000以上でなければいけません、

例:

(%i1) load("fractals")$
(%i2) n: 10000$
(%i3) plot2d([discrete,sierpinskiale(n)], [style,dots])$
関数: treefale (n)

すべて同じ縮小比を持つ3つの縮小写像。 引数nは十分大きく、10000以上でなければいけません、

例:

(%i1) load("fractals")$
(%i2) n: 10000$
(%i3) plot2d([discrete,treefale(n)], [style,dots])$
関数: fernfale (n)

変換を選択する確率が縮小比に関係する、4つの縮小写像。 引数nは十分大きく、10000以上でなければいけません、

例:

(%i1) load("fractals")$
(%i2) n: 10000$
(%i3) plot2d([discrete,fernfale(n)], [style,dots])$

54.3 Definitions for complex fractals

関数: mandelbrot_set (x, y)

Mandelbrot集合。

例:

たくさんの演算を実行しなければいけないので、このプログラムは時間がかかります; 計算時間は格子点の数にも関係します。

(%i1) load("fractals")$
(%i2) plot3d (mandelbrot_set, [x, -2.5, 1], [y, -1.5, 1.5],
                [gnuplot_preamble, "set view map"],
                [gnuplot_pm3d, true],
                [grid, 150, 150])$
関数: julia_set (x, y)

Julia集合。

たくさんの演算を実行しなければいけないので、このプログラムは時間がかかります; 計算時間は格子点の数にも関係します。

例:

(%i1) load("fractals")$
(%i2) plot3d (julia_set, [x, -2, 1], [y, -1.5, 1.5],
                [gnuplot_preamble, "set view map"],
                [gnuplot_pm3d, true],
                [grid, 150, 150])$

See also julia_parameter.

オプション変数: julia_parameter

デフォルト値: %i

Juliaフラクタルの複素パラメータ。 デフォルト値は%iです; we suggest the values 値-.745+%i*.113002, -.39054-%i*.58679, -.15652+%i*1.03225, -.194+%i*.6557, .011031-%i*.67037を提案します。

関数: julia_sin (x, y)

関数julia_setが変換julia_parameter+z^2を実装する一方、 関数julia_sinjulia_parameter*sin(z)を実装します。 詳細はソースコードを参照してください。

たくさんのsinを計算するので、このプログラムはゆっくり実行されます

例:

たくさんの演算を実行しなければいけないので、このプログラムは時間がかかります; 計算時間は格子点の数にも関係します。

(%i1) load("fractals")$
(%i2) julia_parameter:1+.1*%i$
(%i3) plot3d (julia_sin, [x, -2, 2], [y, -3, 3], 
                [gnuplot_preamble, "set view map"],
                [gnuplot_pm3d, true],
                [grid, 150, 150])$

See also julia_parameter.


54.4 Definitions for Koch snowflakes

関数: snowmap (ent, nn)

Koch雪片集合。 関数snowmapは、 複素平面内の初期値の閉多角形の頂点上に雪Koch写像をプロットします。 ここで多角形の向きが重要です。 引数Argument nnはKoch変換の繰り返し適用の回数です; nnは小さく(5か6で)なければいけません。

例:

(%i1) load("fractals")$
(%i2) plot2d([discrete,
              snowmap([1,exp(%i*%pi*2/3),exp(-%i*%pi*2/3),1],4)])$
(%i3) plot2d([discrete,
              snowmap([1,exp(-%i*%pi*2/3),exp(%i*%pi*2/3),1],4)])$
(%i4) plot2d([discrete, snowmap([0,1,1+%i,%i,0],4)])$
(%i5) plot2d([discrete, snowmap([0,%i,1+%i,1,0],4)])$

54.5 Definitions for Peano maps

ある面積を覆う連続曲線。 警告: nと共に点の数は指数関数的に増加します。

関数: hilbertmap (nn)

Hilbert写像。 nnは小さく(例えば5で)なければいけません。 もし7以上ならMaximaはクラッシュするかもしれません。

例:

(%i1) load("fractals")$
(%i2) plot2d([discrete,hilbertmap(6)])$
関数: sierpinskimap (nn)

Sierpinski写像。 nnは小さく(例えば5で)なければいけません。 もし7以上ならMaximaはクラッシュするかもしれません。

例:

(%i1) load("fractals")$
(%i2) plot2d([discrete,sierpinskimap(6)])$

Next: , Previous:   [Contents][Index]