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


odeoptions

ODEソルバのオプションを設定する

呼び出し手順

odeoptions()

説明

この関数はODEソルバに様々なオプションを設定する コマンドを対話的に表示します. グローバル変数 %ODEOPTIONS はオプションを設定します.

ode 関数は,この変数が存在するかどうかを調べ, 存在する場合にはこれを使用します. デフォルト値を使用するには,この変数を消去してください. この変数を作成するには, %ODEOPTIONS=odeoptions()命令 を実行する必要があります.

変数 %ODEOPTIONS は以下の要素を 有するベクトルです:

[itask, tcrit, h0, hmax, hmin, jactyp, mxstep, maxordn, maxords, ixpr, ml, mu].

デフォルト値は以下となります:[1,0,0,%inf,0,2,500,12,5,0,-1,-1]

これらの要素の意味を以下に示します.

  • itask sets the integration mode:
    • 1: 指定した時間で通常の計算を行う
    • 2 : (odeの出力の最初行で指定した) メッシュ点で計算
    • 3 : 1内部メッシュ点で1ステップ進め,戻る
    • 4 : オーバーシュートtcritなしに通常の計算を行う
    • 5 : tcritを指定せずに,1ステップ進め,戻る
  • 判定時間 tcrit は上記のように itaskが 4または5の場合のみ使用されます.
  • h0 最初に試すステップ
  • hmax ステップの最大値
  • hmin ステップの最小値
  • jactype やヤコビアンのプロパティを以下のように設定します:
    • 0: 関数反復, ヤコビアンを用いない ("adams" または "stiff" のみ)
    • 1 : ユーザ提供の完全なヤコビアン
    • 2 : 内部的に生成した対角ヤコビアン
    • 3: 内部的に生成した対角ヤコビアン ("adams" または "stiff" のみ)
    • 4 : ユーザが提供したバンド行列のヤコビアン ( 以下のmlおよびmu参照)
    • 5 : 内部生成されたバンド行列のヤコビアン (以下のml および mu 参照)
  • maxordn は非スティッフの最大次数で, 最大 12です.
  • maxords はスティッフの最大次数で, 最大5です.
  • ixpr は出力レベルで, 0 または 1です.
  • ml,mu

    jactype が 4 または 5の場合, ml および mu はバンド行列のヤコビアンの 上部および下部の半分のバンド幅です: このバンドは, i-ml <= j <= ny-1となるi,jで定義されます.

    jactype が 4の場合,ヤコビアン関数は ml+mu+1 x ny (ただし,yny=dim, ydot=f(t,y))の行列J を返す必要があります. Jの1列目はmu個のゼロの後に df1/dy1, df2/dy1, df3/dy1, ... (1+ml個のゼロでないエントリ)が続きます. 2列目は, mu-1個のゼロの後に df1/dx2, df2/dx2, などが続きます.

以下の例では, 常微分方程式 dy/dt=y^2-y sin(t)+cos(t) を, 初期条件 y(0)=0で解きます. 解は各メッシュ点で保存します.

function ydot=f(t, y)
    ydot = y^2 - y*sin(t) + cos(t)
endfunction
%ODEOPTIONS = [2,0,0,%inf,0,2,500,12,5,0,-1,-1];
y = ode(0, 0, %pi, f);
plot(y(1,:), y(2,:))
clear %ODEOPTIONS

参照

  • ode — 常微分方程式ソルバ
Report an issue
<< odedc 微分方程式 Elementary Functions >>

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:
Thu Oct 24 11:17:40 CEST 2024