Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.0.0 - 日本語


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を返します. ただし, pA(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)*ydotyに関するヤコビアンを返します.

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))

参照

  • dassl — 微分代数方程式
  • ode — 常微分方程式ソルバ
  • external — Scilabオブジェクト, 外部関数またはルーチン
Report an issue
<< diff 微分方程式 int2d >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Oct 24 14:36:18 CEST 2023