Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.
impl
微分代数方程式
呼出し手順
y = impl([type], y0, ydot0, t0, t [,atol, [rtol]], res, adda [,jac])
引数
- y0,ydot0
- 実数のベクトルまたは行列 (初期条件). 
- t0
- 実数のスカラー (初期時間). 
- t
- 実数ベクトル (解を計算する時刻). 
- res,adda
- 外部 (関数または文字列またはリスト). 
- type
- 文字列 - 'adams'または- 'stiff'
- atol,rtol
- yと同じ大きさの実数スカラーまたは実数ベクトル.
- jac
- 外部 (関数または文字列またはリスト). 
説明
陰的な線形微分方程式の解
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のヘルプを参照ください.
例
y = impl([1;0;0], [-0.04;0.04;0], 0, 0.4, 'resid', 'aplusp'); // Using hot restart // [x1, w, iw] = impl([1;0;0], [-0.04;0.04;0], 0, 0.2, 'resid', 'aplusp'); // hot start from previous call // x1 = impl([1;0;0], [-0.04;0.04;0], 0.2, 0.4, 'resid', 'aplusp', w, iw); // maxi(abs(x1-x))
| Report an issue | ||
| << diff | Differential Equations, Integration | int2d >> |