MATLAB Function Reference    
odeset

常微分方程式(ODE)ソルバへの入力に対する Options 構造体の作成、または、変更

表示

詳細

関数 odeset は、ODE ソルバの積分パラメータを調整します。ODE ソルバは、つぎの型のいずれかの微分方程式を積分します。

または、

積分パラメータに関する情報については、後半を参照してください。

options = odeset('name1',value1,'name2',value2,...) は、名前を設定したプロパティに指定した名前を設定した積分器 options 構造体を作成します。指定していないプロパティは、デフォルト値を使います。プロパティ名をユニークに識別できる範囲のキャラクタの設定のみで十分です。そして、この場合、プロパティ名の記述に、大文字、小文字の区別はありません。

options = odeset(oldopts,'name1',value1,...) は、既に存在している options 構造体 oldopts を変更します。

options = odeset(oldopts,newopts) は、既に存在していた options 構造体 oldopts と新しい構造体 newopts を組み合わせます。新しい options の空行列でないものが、oldopts の中の対応する options を書き換えます。

odeset のように引数を設定しない場合、すべてのプロパティ名をデフォルト値と使用可能な値と共に表示します。

プロパティ

使用可能なプロパティは、使用する ODEソルバに依存します。7種類の基本的なカテゴリがあります。

表 1-1: 許容誤差プロパティ
プロパティ

詳細
RelTol
正のスカラ {1e-3}
解ベクトルのすべての要素に適用される相対的な誤差許容範囲。各積分ステップの中で推定される誤差は、つぎの関係を満足します。e(i)  max(RelTol*abs(y(i)),AbsTol(i))
AbsTol
正のスカラ、または、ベクトル {1e-6}
絶対誤差許容範囲。スカラの場合、解ベクトルのすべての要素に適用される許容範囲。ベクトルの場合は、対応する要素に適用される許容範囲。
NormControl
on | {off}
解のノルムに関する誤差のコントロール。このプロパティを on に設定すると、各積分ステップの中での誤差を norm(e)  max(RelTol*norm(y),AbsTol) を満足するようにコントロールします。デフォルトで、ソルバは、誤差のコントロールに最も影響する要素を使います。

表 1-2: ソルバ出力のプロパティ
プロパティ


詳細
OutputFcn
関数
インストール可能な出力関数。ODE ソルバは、ユーザが使用できたり、変更できたりするサンプル関数を与えます。


odeplot
時系列のプロット (デフォルト)


odephas2
2次元位相プロット


odephas3
3次元位相プロット


odeprint
計算しながら、解を印刷


出力関数を作成したり、変更するには、MATLAB ドキュメントの 数学的な解析 の微分方程式の節の ODE ソルバ出力プロパティ を参照してください。
OutputSel
インデックスベクトル
ソルバが出力関数に渡す解ベクトルの要素を指定
Refine
正の整数
指定したファクタに従って、出力点数を増やして、スムーズな出力を作成します。デフォルト値は、ode45 を除くすべてのソルバで、1 です。ode45 では、4 です。Refine は、length(tspan) > 2 の場合には、適用されません。
Stats
on | {off}
積分の計算コストに関する統計量を表示するか否かを指定します。

表 1-3: ヤコビアン行列プロパティ (ode15s, ode23s, ode23t, ode23tb 用)
プロパティ

詳細
Jacobian
関数 | 定数行列
ヤコビアン関数。このプロパティを(関数 FJac(t,y) が、を出力する場合) @FJac に設定するか、または、 の定数値に設定してください。
JPattern
{0,1} のスパース行列
スパースパターン。このプロパティを 成分が、 成分に依存する場合、 をもつスパース行列 に設定します。他の場合は、0に設定します。
Vectorized
on | {off}

ODE 関数のベクトル化。このプロパティを on に設定すると、ステッフなソルバに、F(t,[y1 y2 ...]) が、ベクトル [F(t,y1) F(t,y2) ...] を出力するような ODE 関数 F をコード化させます。これは、ユーザの ODE 関数は、一度に、列ベクトルの全配列をソルバに渡すことができます。(デフォルトの挙動の)数値的なヤコビアンを作成したり、 関数 odeset を使って、Vectorizedon を設定する場合にのみ、ステッフな関数は、ユーザの ODE 関数をベクトル化された様式でコールします。

表 1-4: イベントの位置のプロパティ
プロパティ

詳細
Events
関数
イベントの位置。このプロパティを @Events に設定します。ここで、Events は、イベント関数です。詳細は、ODE ソルバ を参照してください。



表 1-5: 質量行列と DAE-関連プロパティ
プロパティ

詳細
Mass
定数質量 | 関数
問題 に対して、このプロパティを定数質量行列 の値に設定します。問題 に対して、このプロパティを @Mfun に設定します。ここで、Mfun は、質量行列 を計算する関数です。
MStateDependence
none | {weak} | strong
質量行列の への依存性。問題 に対して、このプロパティを none に設定します。weakstrong は、共に、 を示しますが、weak は、代数方程式を解く場合に近似を使うインプリシットなソルバになります。関数 ode23s を除いて、すべてのソルバで、使用します。
MvPattern
スパース行列
スパース性パターン。任意の に対して、 をもつスパース行列 をこのプロパティに設定すると、 成分は、 成分に依存し、他の場合は、0になります。ode15s と共に使用するために、MStateDependence が、strong の場合、ode23tode23tb ソルバを使います。
MassSingular
yes | no | {maybe}
質量行列が正則でないか否かを示す。'maybe' のデフォルト値は、問題が、DAE であるか否かのテストを行います。ode15sode23t 共に使われます。
InitialSlope
ベクトル
無矛盾な初期勾配 、ここで、 は、つぎの関係を満足します。


DAEs を解く場合は、ode15sode23t 共に使ってください。



表 1-6: ステップサイズプロパティ
プロパティ

詳細
MaxStep
正のスカラ
ソルバが使用するステップサイズの大きさの上限。デフォルトは、tspan 間隔の10分の1です。
InitialStep
正のスカラ
初期ステップサイズ。ソルバは、最初にこのステップサイズを試し、非常に大きな誤差が生じる場合、より小さいステップサイズを使用します。

加えて、ode15s ソルバにのみ適用できる2つのオプションがあります。

表 1-7: ode15s Properties
プロパティ

詳細
MaxOrder
1 | 2 | 3 | 4 | {5}
使用する式の最大次数
BDF
on | {off}
on に設定すると、ode15s は、後退微分方程式(BDFs)を、デフォルトの数値微分方程式(NDFs)の代わりに使用します。

参考

@ (function_handle), odeget, ode45, ode23, ode23t, ode23tb, ode113, ode15s, ode23s


 odeget ones