微分代数方程式
y=impl([type],y0,ydot0,t0,t [,atol, [rtol]],res,adda [,jac])
実数のベクトルまたは行列 (初期条件).
実数のスカラー (初期時間).
実数ベクトル (解を計算する時刻).
外部 (関数または文字列またはリスト).
文字列 'adams'
または
'stiff'
y
と同じ大きさの実数スカラーまたは実数ベクトル.
外部 (関数または文字列またはリスト).
陰的な線形微分方程式の解
A(t,y) dy/dt=g(t,y), y(t0)=y0
t0
は初期時刻, y0
は初期条件,
t0
におけるy
の時間微分
ベクトル ydot0
も指定する必要があります.
入力 res
は,
外部ルーチン ,すなわち,
指定された構文を有する関数,また規定の呼び出し手順を有する
FortranサブルーチンまたはC関数の名前(文字列),
またはリストです.
res
が関数の場合, その構文は
以下のようにする必要があります:
r = res(t,y,ydot)
ただし,t
は,実数ベクトル (時間) そして
y
および ydot
は実数ベクトル
(状態量および状態量の微分)です. この関数は
r=g(t,y)-A(t,y)*ydot
を返す必要があります.
res
が文字列の場合,
FortranサブルーチンまたはC関数の名前を指します.
この例については,
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
を参照ください.
res
をリストとすることもできます:
odeのヘルプを参照ください.
入力 adda
も外部ルーチンですi.
adda
が関数の場合, その構文は以下のようにする必要があります:
r = adda(t,y,p)
これはr=A(t,y)+p
を返します. ただし,
p
は
A(t,y)
に加算される行列です.
adda
が文字列の場合,
FortranサブルーチンまたはC関数の名前を指します.
この例については,
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
を参照ください.
adda
をリストとすることもできます:
ode
のヘルプを参照ください.
入力 jac
も外部ルーチンです.
jac
が関数の場合, その構文は以下のようにする必要があります:
j = jac(t,y,ydot)
これは
r=g(t,y)-A(t,y)*ydot
の
y
に関するヤコビアンを返します.
jac
が文字列の場合,
FortranサブルーチンまたはC関数の名前を指します.
この例については,
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
を参照ください.
jac
をリストとすることも可能です:
odeのヘルプを参照ください.