BF option 編


計算の度,固有値変化の様子を表示したい.

BF を利用して任意のパラメータ平面上の分岐集合を計算する際,計算結果をリアルタイムに表示するための2パラメータ平面を表示する Figure に併せて,固有値の配置変化を表示する Figure も起動する.これは,分岐集合を計算している間に,高余次元の分岐点が発生するかをモニターするための Figure である.Default 設定では,計算の度,前回の結果をクリアし,同じ Window 内にその固有値配置変化を表示する.

異なるパラメータ設定での固有値変化の違いなどを見たい状況が発生するかもしれない.そのような場合には,計算毎に表示 Window を起動するように設定を変更する.

  1. Setting -> Option を選択.

    startOP.png

  2. 設定 window が起動.

    startOP2.png

  3. iograph 欄内の single figureのチェックを外す.

    fig.png



Newton 法の収束精度を変更したい

分岐集合を計算する場合,平衡点,Poincare 写像の周期点に関する詳細な位置情報,および分岐発生パラメータ値が必要になる.これらの計算には,Newton 法を用いており,その収束精度が分岐集合の計算精度に直結する.

分岐集合を計算する場合に,Newton 法の収束精度が荒い場合,

  • 真の分岐集合ではないパラメータ集合を追跡する.
  • 制御パラメータを変化した後,分岐発生未知パラメータの計算に失敗する. といった問題が発生する可能性がある.

BF の初期起動時の Default 設定では,その収束精度は,1E-6 に設定されている.もし,分岐集合の追跡時に,パラメータ集合に不連続点が含まれる場合,分岐集合を正常に追跡できていないことを疑わなければならない.この様な場合,収束判定の精度を上げることで動作を改善できるかもしれない.

Newton 法の収束判定精度を変更するには,次のように行う.

  1. Setting -> Options を選択.

    startOP.png

  2. Option 設定パネルの起動.

    startOP2.png

  3. parameter for Newton's method 内の eps(さらには feps)を適当な精度に設定する.

    eps.png



Newton 法の発散条件を変更したい

Newton 法の発散条件として,現在は

  1. 繰り返し回数(iter)
  2. Newton 法で利用する Jacobi 行列の要素の和(gmax)
  3. 数値積分を行った際の変分方程式の状態変数の数値(emax) を基準に収束するか,発散するかを決定している*1

特に,iter は,この繰り返し回数以内に Newton 法が収束しない場合に発散 or 解なしとして判定される為,問題によっては,適切に変更しなければならない.また,gmaxemax は,数値計算中に,内部で異常な数値が検出される場合にプログラムを停止させる為に働く.

BF の初期起動時の Default 設定では,一般的に適当であると思われる数値,

  • iter = 16
  • gmax = 1E+10
  • emax = 100 に設定されている.しかしながら,問題に依存して,これらの数値を変更する必要性があるかもしれない.

Newton 法の発散条件を変更するには,次のように行う.

  1. Setting -> Options を選択.

    startOP.png

  2. Option 設定パネルの起動.

    startOP2.png

  3. parameter for Newton's method 内の gmax(もしくは emax)を適当な精度に設定する*2.また,繰り返し回数を意味する,iter を適当な回数に設定する.

    iter.png

    • Newton 法は,2次収束の性能を持つため,収束には,数回の繰り返しで十分であることに注意する.
    • iter の回数をあまり大きくし過ぎると,希望した解ではない解へ収束してしまう可能性があることに注意.



パラメータの自動入れ替えを制御したい

分岐集合の計算には,1つの未知パラメータと,1つの制御パラメータを用意し,制御パラメータをある値で固定した時の分岐パラメータ値を計算する.その後,制御パラメータを僅かに変化させて,同様の計算を行う.この一連の動作を繰り返して,任意のパラメータ平面上で,分岐が発生するパラメータ集合を計算している.

この時,パラメータ集合の曲率が非常に大きい場合,設定した未知パラメータと制御パラメータとを入れ替えることで,分岐集合を効率良く得ることが可能になる.実際,分岐点が得られる毎に,その曲率を計算している.

auto sw は,最大曲率を表しており,もし,分岐集合の曲率がこの値を上回る場合は,未知パラメータと制御パラメータを入れ替えて,分岐集合の計算を行う.

そのパラメータの入れ替え条件を変更するには,次のように行う.

  1. Setting -> Options を選択.

    startOP.png

  2. Option 設定パネルの起動.

    startOP2.png

  3. parameter for Newton's method 内の auto sw を適当な値に設定する.

    autosw.png

    • ただし,この値を小さくしすぎる(<1)と,頻繁に制御パラメータの入れ替えが起こることになり,分岐集合の追跡に支障をきたす可能性があることに注意する.



逆集合の計算を停止したい

ある初期分岐点から分岐集合を一方向に追跡していくが,円環状の集合で無い限り,あるパラメータで分岐集合の計算に失敗する.この原因としては,

  • 他の分岐集合に接続した為(余次元2の分岐点)に,追跡したい分岐集合が存在しなくなった.
  • カスプ点のような特異点となった為に,Newton 法が収束しなかった.
  • もちろん,停止パラメータ値として指定したパラメータ値に到達した. など,様々な要因が考えられる.

さて,分岐計算が停止した後,次に行うべきことは,スタートした初期分岐点から逆方向のパラメータ変化に対する分岐集合を計算することである.BF の Default 設定では,何らかの要因で分岐計算が停止した後,自動的に初期分岐点から逆方向へ分岐集合の追跡を開始するように設定されている.

ユーザーは,決めた範囲で分岐集合を得られれば良い場合が多い為,場合によっては,逆方向の分岐集合の計算が必要無いケースも出てくる.そこで,自動的に逆方向の分岐集合を追跡しないように設定する為には,以下の Switch をオフにすれば良い.

  1. Setting -> Options を選択.

    startOP.png

  2. Option 設定パネルの起動.

    startOP2.png

  3. reverse calculation switchOff に設定する.

    revsw.png



数値積分 Solver を変更したい(注意!)

リミットサイクル,周期解の分岐集合を計算する際,その解の周期分を数値積分する必要がある.そのため,どの Solver を使って,数値積分を行うか?は重要な問題であり,問題によっては,Stiff solver を選択しなければならない場合もある.

基本的には,安定リミットサイクル,周期解を見つけるために,PP を利用したシミュレーションを行い,アトラクタ情報を得ている.その際に利用した Solver 情報がそのまま FIX,そして BF へと引き継がれるため,この段階で使用する Solver を変更することは出来るだけ避けた方が数値計算としては安全である.

しかしながら,Newton 法の収束が悪かったり,収束しない状況が見られたりする場合には,利用している Solver と問題との相性が悪い可能性もある.Newton 法の収束が悪い,収束しないといった状況がみられる場合,Solver を変更して再度計算を試みる必要がある.

Solver を変更するには,次のように行う.

  1. Setting -> Options を選択.

    startOP.png

  2. Option 設定パネルの起動.

    startOP2.png

  3. parameter for ODE solver 内にある各種 Solver を選択しする.各 solver の詳細は,例えば parameters for ODE solver を参照.

    solver.png

    • 注意:もし,Solver を変更することで,うまく動作したとしても,PP を同じ条件で使用し,アトラクタ情報を再度得てから,FIX,BF を動かすほうが数値計算としては安全である.



数値積分 Solver の精度を上げたい(注意!)

数値積分 Solver を変更したいにもあるように,リミットサイクル,周期解の分岐点を計算する際,その解の周期分を数値積分する必要がある.その数値積分の精度は,分岐点の計算には重要である.

基本的には,安定リミットサイクル,周期解を見つけるために,PP を利用したシミュレーションを行い,アトラクタ情報を得ている.その際に利用した Solver 情報(その精度も含む)がそのまま FIX,そして BF へと引き継がれているため,この段階で数値積分の精度を変更することは出来るだけ避けた方が数値計算としては安全である.

しかしながら,Newton 法の収束が悪かったり,収束しない状況が見られたりする場合には,設定した数値積分の精度が悪いといった可能性が考えられる.Newton 法の収束が悪い,収束しないといった状況がみられる場合,数値積分の精度を変更して再度計算を試みる必要がある.

数値積分の精度を変更するには,次のように行う.

  1. Setting -> Options を選択.

    startOP.png

  2. Option 設定パネルの起動.

    startOP2.png

  3. parameter for ODE solver 内にある各種 Solver を選択しする.各 solver の詳細は,例えば parameters for ODE solver を参照.

    tol.png

    • 注意:もし,数値積分の精度を変更することで,うまく動作したとしても,PP を同じ条件で使用し,アトラクタ情報を再度得てから,FIX,BF を動かす方が数値計算としては安全である.
    • 注意2:数値積分の精度を上げるということは,真の解との誤差を設定精度内に抑えるために,ステップサイズを小さくとるということになる.そのため,計算速度を犠牲にしなければならない.




*1 iter, gmax, emax それぞれの意味は例えば,BF マニュアル内:parameters for Newton's methods を参照のこと.
*2 これらはそれほど変更の必要は無いかもしれない.

Attach file: filetol.png 374 download [Information] filestartOP2.png 374 download [Information] filestartOP.png 358 download [Information] filesolver.png 379 download [Information] filerevsw.png 369 download [Information] fileiter.png 379 download [Information] filefig.png 376 download [Information] fileeps.png 407 download [Information] fileautosw.png 382 download [Information]

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2009-07-23 (Thu) 20:18:53 (3376d)