
ニュートンフラクタルは、ニュートン法を固定多項式p ( z ) ∈ [ z ]または超越関数に適用することによって特徴付けられる複素平面上の境界集合です。これは、有理型関数z ↦ z − のジュリア集合です。 p (じ)/p′ (じ)これはニュートン法によって与えられます。 吸引サイクル(次数が 1 より大きい)がない場合、複素平面は領域G kに分割され、各領域は多項式の根 ζ k ( k = 1, …, deg( p ) )に関連付けられます。 このように、ニュートンフラクタルはマンデルブロ集合に似ており、他のフラクタルと同様に、単純な記述から生じる複雑な外観を示します。 これは、 (二次収束領域 )ニュートン法が開始点の選択に非常に敏感になる可能性があることを示しているため、数値解析に関連しています。
複素平面上のほぼすべての点は、与えられた多項式のdeg( p )根の1つと次のように関連付けられます。その点は、ニュートン反復z n + 1 := z n − の開始値z 0として使用されます。p ( z n )/p' ( z n )、点のシーケンスz 1、z 2、… が生成されます。シーケンスがルートζ kに収束する場合、 z 0 は領域G kの要素でした。ただし、次数 2 以上のすべての多項式では、ニュートン反復がどのルートにも収束しない点が存在します。例としては、さまざまなルートの吸引域の境界があります。開始点の開集合がどのルートにも収束しない多項式さえあります。簡単な例はz 3 − 2 z + 2で、いくつかの点はルートではなくサイクル0、1、0、1…によって吸引されます。
反復が特定の根またはサイクル (固定点ではない) に収束する開集合は、反復のFatou 集合です。これらすべての和集合の補集合は、ジュリア集合です。Fatou 集合には共通の境界、つまりジュリア集合があります。したがって、ジュリア集合の各点は、各 Fatou 集合の集積点です。この特性により、ジュリア集合のフラクタル構造が生じます (多項式の次数が 2 より大きい場合)。
フラクタルの画像をプロットするには、まず指定された数dの複素点(ζ 1、…、ζ d)を選択し、多項式の 係数(p 1、…、p d)を計算します。
- 。
次に長方形格子の場合
内の点については、対応する根ζ k ( m , n )のインデックスk ( m , n )を見つけ、これを使用して各点( m , n )に色f k ( m , n )を割り当てることでM × Nラスターグリッドを塗りつぶします。追加または代わりに、色は距離D (m, n) に依存する場合があります。距離 D ( m , n )は、事前に固定された小さなε > 0に対して、 | z D − ζ k ( m , n ) | < εとなる最初の値Dとして定義されます。
ニュートンフラクタルの一般化
ニュートンの反復法の一般化は
ここで、a は任意の複素数である。[1] a = 1 という特別な選択は、ニュートンフラクタルに対応する。このマップの固定点は、a が1 を中心とする半径 1 の円板の内側にあるときに安定する。a がこの円板の外側にあるとき、固定点は局所的に不安定になるが、マップは依然としてジュリア集合の意味でフラクタル構造を示す。p が次数 d の多項式である場合、aがdを中心とする半径dの円板の内側にある限り、シーケンスz n は有界である。
より一般的には、ニュートンのフラクタルとはジュリア集合の特殊なケースです。
-
3次根p ( z ) = z 3 − 1のニュートンフラクタル、必要な反復回数によって色分け
-
3つの次数3の根p ( z ) = z 3 − 1のニュートンフラクタル。到達した根によって色分けされている。
-
p ( z ) = z 3 − 2 z + 2のニュートンフラクタル。赤い盆地内の点は根に到達しません。
-
7 次多項式のニュートン フラクタル。到達した根によって色分けされ、収束率によって陰影が付けられています。
-
ニュートンフラクタルp ( z ) = z 8 + 15 z 4 − 16
-
p ( z ) = z 5 − 3 iz 3 − (5 + 2 i ) z 2 + 3 z + 1のニュートンフラクタル。到達した根によって色分けされ、必要な反復回数によって網掛けされています。
-
p ( z ) = sin zのニュートンフラクタル。到達した根によって色分けされ、必要な反復回数によって網掛けされている。
-
p ( z ) = sin zの別のニュートンフラクタル
-
一般化ニュートンフラクタルp ( z ) = z 3 − 1、a = − 1/2。色は 40 回の反復後の議論に基づいて選択されました。
-
p ( z ) = z 2 − 1、a = 1 + iの一般化ニュートンフラクタル。
-
p ( z ) = z 3 − 1、a = 2の一般化ニュートンフラクタル。
-
p ( z ) = z 4 + 3 i − 1、a = 2.1の一般化ニュートンフラクタル。
-
p ( z ) = z 6 + z 3 - 1
-
p ( z ) = sin z - 1
-
p ( z ) = sin z - 1
-
p ( z ) = コッシュz - 1
-
p ( z ) = コッシュz - 1
-
p ( z ) = z 20 - 2 z + 2 です
級数: p ( z ) = z n - 1
-
p ( z ) = z 3 - 1、a = 1
-
p ( z ) = z 3 - 1、a = 2
-
p ( z ) = z 4 - 1、a = 1
-
p ( z ) = z 4 - 1、a = 2
-
p ( z ) = z 5 - 1、a = 1
-
p ( z ) = z 5 - 1、a = 2
-
p ( z ) = z 6 - 1、a = 1
-
p ( z ) = z 7 - 1、a = 1
-
p ( z ) = z 8 - 1、a = 1
-
p ( z ) = z 10 - 1、a = 1
ポテンシャル関数と三角関数が掛け合わされた他のフラクタル。p ( z ) = z n *Sin(z) - 1
-
p ( z ) = z 2 *Sin(Z) - 1、a=1
-
p ( z ) = z 2 *Sin(Z) - 1、 a=1 (ズーム)
-
p ( z ) = z 3 *Sin(Z) - 1、a=1
-
p ( z ) = z 4 *Sin(Z) - 1、a=1
-
p ( z ) = z 4 *Sin(Z) - 1、 a=1 (ズーム)
-
p ( z ) = z 5 *Sin(Z) - 1、a=1
-
p ( z ) = z 6 *Sin(Z) - 1、a=1
-
p ( z ) = z 6 *Sin(Z) - 1、 a=1 (ズーム)
ノヴァフラクタル
1990年代半ばにポール・ダービーシャーによって発明されたノヴァフラクタル[2] [3]は、ニュートンフラクタルの各ステップに値cを追加した一般化である。 [4]
Novaフラクタルの「ジュリア」バリアントは、cを画像上で一定に保ち、z 0をピクセル座標に初期化します。Novaフラクタルの「マンデルブロ」バリアントは、cをピクセル座標に初期化し、 z 0を臨界点に設定します。ここで[5]
p ( z ) = z 3 − 1やp ( z ) = ( z − 1) 3のようなよく使われる多項式は、z = 1で臨界点をもたらします。
-
p ( z ) = z 3 − 1のアニメーション化された「ジュリア」ノヴァフラクタル。cは-1から 1 まで変化し、到達したルートによって色分けされます。
-
アニメーション化された「ジュリア」ノヴァフラクタル(p ( z ) = z 3 − 1、c = )1/2 e iφとφ は0 から 2 πまで変化し、到達したルートによって色分けされます。
実装
ニュートンフラクタルを実装するには、開始関数とその導関数が必要です。
この関数の3つの根は
上記で定義された関数は、次のように疑似コードに変換できます。
//z^3-1
float2 Function ( float2 z ) { return cpow ( z , 3 ) - float2 ( 1 , 0 ); //cpow は複素数の指数関数です}
//3*z^2
float2 Derivative ( float2 z ) { return 3 * cmul ( z , z ); //cmul は複素数の乗算を処理する関数です}
後は、与えられた関数を使用してニュートン法を実装するだけです。
float2 roots [ 3 ] = //多項式の根(解){ float2 ( 1 , 0 ), float2 ( -.5 , sqrt ( 3 ) / 2 ), float2 ( -.5 , - sqrt ( 3 ) / 2 ) }; color colors [ 3 ] = //各根に色を割り当てる{ red , green , blue }
ターゲット上の各ピクセル( x , y )に対して、次の操作を実行します。{ zx =ピクセルのスケールされたx座標(マンデルブロXスケール( -2.5 , 1 )内になるようにスケールされます) zy =ピクセルのスケールされたy座標(マンデルブロYスケール( -2 , 1 )内になるようにスケールされます)
float2 z = float2 ( zx , zy ); //zは元々ピクセル座標に設定されている
for ( int iteration = 0 ; iteration < maxIteration ; iteration ++ ;) { z -= cdiv ( Function ( z ), Derivative ( z )); //cdivは複素数を割る関数です
float tolerance = 0.000001 ; for ( int i = 0 ; i < roots.Length ; i ++ ) { float2 Difference = z - roots [ i ]; //現在の反復がルートに十分近い場合は、ピクセルに色を付けます。if ( abs ( difference.x ) < tolerance && abs ( difference.y ) < tolerance ) { return colors [ i ] ; //ルートに対応する色を返します} } } return black ; //解が見つからない場合}
参照
参考文献
- ^ Simon Tatham. 「ニュートン・ラプソンから派生したフラクタル」
- ^ Damien M. Jones. 「クラス Standard_NovaMandel (Ultra Fractal 式リファレンス)」。
- ^ ダミアン・M・ジョーンズ。「dmj's nova fractals 1995-6」。
- ^ Michael Condron. 「緩和されたニュートン法とノヴァフラクタル」
- ^ Frederik Slijkerman. 「ウルトラフラクタルマニュアル: Nova (Julia、Mandelbrot)」.
さらに読む
- JH Hubbard、D. Schleicher、S. Sutherland:ニュートン法による複素多項式の全根の求め方、Inventions Mathematicae vol. 146 (2001) – ニュートンフラクタルの全体構造に関する議論付き
- ニュートン法の反復回数について ディルク・シュライヒャー 2000 年 7 月 21 日
- ヨハネス・リュッカート著「ニュートン法の力学システムとして」
- 3Blue1Brownによるニュートンのフラクタル(ニュートンはこれについて何も知らなかった)と、彼のウェブサイトでのフラクタルのインタラクティブなデモンストレーション、およびデモンストレーションのソースコード
