Backup diff of Epsilon mode (No. 2)


  • The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
* Epsilon modeとは [#x4425c3a]
- 微小値を扱うシミュレーションのモードとなる
- 微小値(HydLaプログラム中ではパラメータ"eps"となる)を利用し, 特殊な処理を行う
-- 微小値の高次項を削減する
--- 高次項を削減したことによる影響を軽減する
-- 高次項を削減したことによる影響を軽減する
-- 不適切な場合分けを削減する
-- 微小値の極限を求める
-- 微小値による値の変化量(実際の値との差分)を求める
- HydLaプログラム中で扱える微小値は一つのみである("eps")
-- HydLaプログラム中で扱える微小値は一つである("eps")
- モデルの振る舞いを解析する際に利用可能である
-- 特に, 誤差解析・感度解析等に有効となる
* 利用法 [#cda43759]
- Hyrose実行時にオプションで指定する (-e [arg], --epsilon [arg])
-- 引数は高次項の削減において行う線形近似の近似次数(例: -e1 => 一次近似, -e2 => 二次近似)
-- ただし, 引数が0のときは近似は行わない
- あらかじめ微小値となるパラメータ(eps)を用いて, HydLaプログラムを記述する
* 高次項の削減 [#r1d01bf7]
** n次近似 [#z1deca3a]
- 各フェイズの実行において, 各変数の値に現れる微小値(eps)の高次項を削減する
- 微小値の高次項を削減することで, 数式の複雑化を軽減できる
- 記号実行(パラメータ実行)で数式が複雑化してしまい解けない例題でも効果がある
- 高次項の削減にはn次近似を行う
** 問題点 [#p47eb60f]
*** 円の内部を跳ねる質点の例題 [#jf8dc436]
- 高次項の削減により, 誤差が発生する
- 誤差の影響で解軌道が異なる場合がある
-- 解軌道とは, 処理系Hyroseによって求まるモデル(HydLaプログラム)の振る舞いのこと
- 高次項の削減による解軌道が異なってしまう問題を解決する必要がある
** 現在の解決法 [#c928de5b]
- 誤差の影響によって解軌道が異なる場合では, 次の条件による離散変化が考えられる
-- 次の離散変化時刻までが微小な時間である
-- 同じガード条件が離散変化の原因となる 
- 現状, 意図しない離散変化を無視することによって解軌道が変化しないようにしている
** 例題を用いた説明 [#kd6fde15]
*** 円の内部を跳ねる質点の例題 [#jf8dc436]
- ボールの位置は, xy座標で示される
- 円は半径1で原点中心の円周を跳ねる
- 円の内部は等速運動をする連続変化で, 円周との衝突は跳ね返る離散変化となる
>
~ INIT <=> x = eps & y = 4/5 & x' = 4 & y' = -1.
~ RUN <=> [](x" = 0 & y" = 0).
~ EPS <=> 0 <  eps < 1/100  & [](eps'=0).
~ BOUNCE <=> []((x-)^2 + (y-)^2 = 1 =>
~ x' = x'- - (x- * x'- + y- * y'-) * 2 * (x-) &
~ y' = y'- - (x- * x'- + y- * y'-) * 2 * (y-)).
~ INIT, EPS, RUN << BOUNCE.
<