-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
パラメタ付きの床と天井の間を跳ねる質点のプログラムは以下である.
INIT <=> y = 5 & 10.1 < y' < 10.2.
FALL <=> [](y'' = -10).
BOUNCE1 <=> [](y- = 10 => y' = -4/5*y'-).
BOUNCE2 <=> [](y- = 0 => y' = -4/5*y'-).
INIT, FALL << (BOUNCE1, BOUNCE2).
// #hylagi --fnd
y' がパラメタとなっていて最初は天井に衝突するような初期値に設定されている.
y'' = (0でない定数) なので y = (時刻 t の2次式) となり, BOUNCE1, 2の離散変化条件により離散変化時刻を求める際の方程式は t の2次方程式となる.
実行結果は長いのでこれ.
IP6で minimizeTime エラー.
別の例題でパラメタ付きの楕円内を跳ねる質点がある. プログラムは以下.
INITPOS <=> x = 0 & y = 0.
INITVEL <=> x' = 1 & 0.9 <= y' <= 1.1.
ACC <=> [](x'' = 0 & y'' = 0).
ELLIPSE <=> c = 5 & d = 3 & [](c' = 0 & d' = 0).
BOUNCE <=> [](x-^2/c^2 + y-^2/d^2 = 1 =>
x' = 2*c^2*y-*(c^2*y-*x'- - d^2*x-*y'-)/((c^2*y-)^2+(d^2*x-)^2) - x'-
& y' = -2*d^2*x-*(c^2*y-*x'- - d^2*x-*y'-)/((c^2*y-)^2+(d^2*x-)^2) - y'-).
INITPOS, INITVEL, ELLIPSE, ACC << BOUNCE.
// #hylagi --fnd
x'' = 0 と y'' = 0 より x = (t の1次式) と y = (t の1次式) となり, BOUNCE の離散変化条件に x^2 と y^2 が含まれるため離散変化時刻を求める際の方程式は t の2次方程式となる.
実行結果はこれでパラメタ付きの床と天井の間を跳ねる質点と同様にIP6で minimizeTime エラー.
パラメタ付きの床と天井の間を跳ねる質点の方がいくらか簡単に見えるが同様のエラーが発生.
以上2例の共通点はパラメタを含むことと離散変化時刻を求める際に解く方程式が時刻 t の2次方程式ということである.
この共通点が minimizeTime で使われている Mathematica の Minimize でうまくいかないのではと考えているが, 正確なことがわからないので調査が必要.
Metadata
Metadata
Assignees
Labels
No labels