チャレンジの目的は、約プロットすることであるアトラクタのロジスティックマップをそのパラメータの関数としてR(別名分岐図)、またはそのサブ領域。グラフの外観は、Wikipediaの次の画像で確認できます。
バックグラウンド
ロジスティックマップは、入力とる数学関数であるX kは、出力にマップX K + 1のように定義します
x k + 1 = r x k(1− x k)
ここで、rは間隔[0、4]にあると想定されるマップのパラメーターです。
[0,4]のrと区間[0,1]の初期値x 0が与えられると、多数の反復Nに対して関数を繰り返し適用し、最終値x Nを生成することは興味深いです。x Nは必ず[0,1]にもあることに注意してください。
例として、r = 3.2、N = 1000を考えます。初期値x 0 = 0.01はx 1000 = 0.5130を与えます。以下のために、X 0 = 0.02結果は、X 0 = 0.7995。以下のための任意の他の初期値xは0最終値X 1000は、非常に近い0.5130または0.7995いずれかです。これは、水平位置r = 3.2 での2本の線の高さとしてグラフに表示されます。
これは、r = 3.2の場合、各シーケンスがこれら2つの値のいずれかに収束することを意味しません。実際、上記で検討した2つの初期値の場合、シーケンスは次のとおりです(振動動作に注意してください)。
x 0 = 0.01、...、x 1000 = 0.5130、x 1001 = 0.7995、x 1002 = 0.5130、...
x 0 = 0.02、...、x 1000 = 0.7995、x 1001 = 0.5130、x 1002 = 0.7995 、...
何である本当のことは十分に大きいためのことであるN、ほぼ全ての初期値に対して、X 0、用語xはNの集合{0.5130、0.7995}の要素の1つに近くなります。このセットは、この特定のrのアトラクターと呼ばれます。
パラメーターrの他の値については、アトラクターセットまたはその要素のサイズが変更されます。グラフは、各rのアトラクターの要素をプロットします。
特定のためのアトラクタRはすることができ、推定によって
- 広範囲の初期値x 0をテストします。
- 多数のN回の反復に対してシステムを進化させます。そして
- 得られた最終値x Nに注意してください。
チャレンジ
入力
N:反復回数。
R 1、 R 2および S。これらは rの値の集合 R、すなわち R = { r 1、 r 1 + s、 r 1 + 2 s、...、 r 2 }を定義します。
手順
初期値x 0のセットXは固定されています:X = {0.01、0.02、...、0,99}。オプションで、0と1もXに含めることができます。
それぞれについて、R内のR及び各X 0におけるX、反復ロジスティックマップN生成する時間がxはNを。取得したタプル(r、x N)を記録します。
出力
各タプル(r、x N)を、rを水平軸、x Nを垂直軸とする平面上の点としてプロットします。出力はグラフィックでなければなりません(ASCIIアートではありません)。
追加のルール
- 示された手順は必要な結果を定義しますが、強制されません。(r、x N)タプルの同じセットを処理する他の手順を使用できます。
- 入力は通常どおり柔軟です。
- 浮動小数点エラーは、回答者に対して保持されません。
- 受け入れられた形式のいずれかで、グラフィック出力が必要です。特に、出力を画面に表示したり、グラフィックファイルを作成したり、RGB値の配列を出力したりできます。ファイルまたは配列を出力する場合は、表示されたときの表示例を投稿してください。
- グラフィックはベクターまたはラスターです。ラスタグラフィックスの場合、画像のサイズは少なくとも400×400ピクセルである必要があります。
- 各ポイントは、単一のピクセルとして、または1ピクセル程度のサイズのマークとして表示する必要があります(そうしないと、グラフがすぐに乱雑になります)。
- 軸の範囲は、r(水平軸)の場合は[0,4 ]、x N(垂直軸)の場合は[0,1]である必要があります。または、取得したすべてのポイントが含まれている限り、より小さくてもかまいません。
- 軸スケールは任意です。特に、スケールは両方の軸で同じである必要はありません。
- グリッド線、軸ラベル、色、および同様の要素は受け入れ可能ですが、必須ではありません。
- バイト単位の最短コードが優先されます。
テストケース
高解像度バージョンの各画像をクリックします。
N = 1000; r1 = 2.4; r2 = 4; s = 0.001;
N = 2000; r1 = 3.4; r2 = 3.8; s = 0.0002;
N = 10000; r1 = 3.56; r2 = 3.59; s = 0.00002;
了承
@FryAmTheEggmanと@AndrasDeakに、サンドボックスでのチャレンジ中の有益なコメントに感謝します。