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

Change language to:
English - Français - Português - Русский

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Scilabヘルプ >> Differential Equations, Integration > ode_root

ode_root

求解付きの常微分方程式ソルバ

呼び出し手順

[y, rd, w, iw] = ode("root", y0, t0, t [,rtol [,atol]], f [,jac], ng, g [,w,iw])

引数

y0

実数ベクトルまたは行列 (初期条件).

t0

実数スカラー (初期時間).

t

実数ベクトル (解を計算する時間).

f

外部ルーチン,すなわち,関数または文字列またはリスト.

rtol, atol

実数定数またはyと同じ大きさの実数ベクトル.

jac

外部ルーチン,すなわち,関数または文字列またはリスト.

w, iw

実数ベクトル.(入力/出力)

ng

整数.

g

外部ルーチン,すなわち,関数または文字列またはリスト.

y

実数のベクトルまたは行列. (出力)

rd

実数ベクトル. (出力)

説明

この構文により (最初の引数が"root") ode は, 状態量y(t)が 面g(t,y)=0と交差するまで 微分方程式dy/dt=f(t,y) の解を計算します.

g に面の方程式を指定します. これは指定した構文を有する外部関数,または 指定したコール手順を有する FortranサブルーチンまたはC関数(文字列)またはリストです.

g が関数の場合,その構文は以下のようにする 必要があります:

z = g(t,y)

ただし, t はスカラー実数 (時間), y は実数ベクトル (状態量). この関数は, ng個の拘束条件に対応する 大きさngのベクトルを返します. g が文字列の場合, この文字列は, FortranサブルーチンまたはC関数を指しており, 以下のようなコール手順となります: g(n,t,y,ng,gout). ただし, ngは拘束条件の数, goutgの値 (プログラムの出力)です. g は, f と同じ表記のリストです. (odeのヘルプ参照).

出力 rd1 x k ベクトルです. 最初のエントリは,停止時間を含んでいます. 他のエントリは,gのどの要素の符号が変わったのかを 示すエントリです. kが2より大きい場合,1以上の面 ((k-1) 個の面)が同時に符号が変わったことを意味します.

他の引数と他のオプションは, odeと同じです.odeのヘルプを参照ください.

// 微分方程式の積分
// dy/dt=y , y(0)=1, として y(t)=2 となる最小の時間 t を探します
deff("[ydot]=f(t,y)","ydot=y")
deff("[z]=g(t,y)","z=y-2")
y0=1;ng=1;
[y,rd]=ode("roots",y0,0,2,f,ng,g)
deff("[z]=g(t,y)","z=y-[2;2;33]")
[y,rd]=ode("roots",1,0,2,f,3,g)

参照

  • dasrt — ゼロ交差するDAE
  • daskr — ゼロ交差を有するDAEソルバー
  • ode — 常微分方程式ソルバ
Report an issue
<< ode_optional_output Differential Equations, Integration odedc >>

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:
Wed Apr 01 10:24:59 CEST 2015