odeset
ODE ソルバーおよび PDE ソルバーのオプション構造体を作成または変更
構文
説明
は、ODE ソルバーおよび PDE ソルバーの引数として渡すオプション構造体を作成します。options
= odeset(Name,Value
,...)options
構造体には、指定したオプションの値が指定されます。指定されていないオプションはすべて、既定値をもちます。たとえば、options = odeset('RelTol',1e-3)
は RelTol
が 1e-3
に設定されたオプション構造体を返します。
は、新しく指定された名前と値の引数を使用して、既存のオプション構造体 options
= odeset(oldopts
,Name,Value
,...)oldopts
を変更します。これは指定されたオプションの古い値を上書きし、新しいオプションの値を構造体に追加します。
入力引数をもたない odeset
は、使用できるすべてのオプション名とその値を表示します。該当する場合、既定値は {}
付きで表されます。
例
ODE オプションの設定および更新
RelTol
と AbsTol
の値を含むオプション構造体を作成します。
options = odeset('RelTol',1e-8,'AbsTol',1e-10);
既存のオプション構造体の AbsTol
値を更新します。
options = odeset(options,'AbsTol',1e-9)
options = struct with fields:
AbsTol: 1.0000e-09
BDF: []
Events: []
InitialStep: []
Jacobian: []
JConstant: []
JPattern: []
Mass: []
MassSingular: []
MaxOrder: []
MaxStep: []
NonNegative: []
NormControl: []
OutputFcn: []
OutputSel: []
Refine: []
RelTol: 1.0000e-08
Stats: []
Vectorized: []
MStateDependence: []
MvPattern: []
InitialSlope: []
オプション構造体を結合
2 つのオプション構造体を作成します。
opts_1 = odeset('RelTol',1e-8,'AbsTol',1e-9,'OutputFcn',@odeplot,'Stats','on');
opts_2 = odeset('Mass',@(t) [t 0; 0 -t],'MStateDependence','none',... 'MassSingular','no','OutputFcn',@odephas2);
opts_2
を優先してオプション構造体を結合します。両方の構造体には異なる OutputFcn
値が含まれているため、opts_2
の値が opts_1
の値をオーバーライドします。
opts = odeset(opts_1,opts_2)
opts = struct with fields:
AbsTol: 1.0000e-09
BDF: []
Events: []
InitialStep: []
Jacobian: []
JConstant: []
JPattern: []
Mass: @(t)[t,0;0,-t]
MassSingular: 'no'
MaxOrder: []
MaxStep: []
NonNegative: []
NormControl: []
OutputFcn: @odephas2
OutputSel: []
Refine: []
RelTol: 1.0000e-08
Stats: 'on'
Vectorized: []
MStateDependence: 'none'
MvPattern: []
InitialSlope: []
入力引数
oldopts
— 古いオプション構造体
構造体
古いオプション構造体。以前に odeset
を使用して作成された構造体として指定します。
データ型: struct
newopts
— 新しいオプション構造体
構造体
新しいオプション構造体。以前に odeset
を使用して作成された構造体として指定します。
データ型: struct
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: options = odeset('AbsTol',1e-3,'Reltol',1e-2,'Jacobian',@J,'Mass',M)
は、絶対許容誤差と相対許容誤差のしきい値、ヤコビ行列を返す関数、数値の質量行列を指定します。
RelTol
— 相対許容誤差
1e-3
(既定値) | 正のスカラー
相対許容誤差。'RelTol'
と正のスカラーで構成されるコンマ区切りのペアとして指定します。この許容誤差は、各解要素の絶対値を基準にした誤差です。おおまかに説明すると、解要素が絶対許容誤差 AbsTol
より小さい場合を除いて、すべての解要素の正確な桁数を制御します。
ODE ソルバーは、各ステップで解の i
番目の要素の局所誤差 e
を推定します。ステップが成功するには、そのステップの誤差が、相対許容誤差および絶対許容誤差の両方によって決まる条件を満たさなければなりません。
|e(i)| <= max(RelTol*abs(y(i)),AbsTol(i))
例: opts = odeset('RelTol',1e-5,'AbsTol',1e-7)
データ型: single
| double
AbsTol
— 絶対許容誤差
1e-6
(既定値) | 正のスカラー | ベクトル
絶対許容誤差。'AbsTol'
と、正のスカラーまたはベクトルで構成されるコンマ区切りのペアとして指定します。許容誤差はしきい値であり、解の値がこれを下回ると重要でなくなります。解 |y|
が AbsTol
より小さい場合、ソルバーが |y|
の正しい桁数を取得する必要はありません。このため、AbsTol
の値には、解要素のスケールを考慮しなければなりません。
AbsTol
がベクトルの場合、解と同じ長さでなければなりません。AbsTol
がスカラーの場合、この値はすべての解要素に適用されます。
ODE ソルバーは、各ステップで解の i
番目の要素の局所誤差 e
を推定します。ステップが成功するには、そのステップの誤差が、相対許容誤差および絶対許容誤差の両方によって決まる条件を満たさなければなりません。
|e(i)| <= max(RelTol*abs(y(i)),AbsTol(i))
例: opts = odeset('RelTol',1e-5,'AbsTol',1e-7)
データ型: single
| double
NormControl
— ノルムを基準にした誤差の制御
'off'
(既定値) | 'on'
ノルムを基準にした誤差の制御。'NormControl'
と、'on'
または 'off'
で構成されるコンマ区切りのペアとして指定します。NormControl
が 'on'
の場合、ソルバーは解の絶対値ではなくノルムを使用して誤差 e
を各ステップで制御します。
norm(e(i)) <= max(RelTol*norm(y(i)),AbsTol(i))
例: opts = odeset('NormControl','on')
データ型: char
| string
NonNegative
— 非負の解要素
[]
(既定値) | スカラー | ベクトル
非負の解要素。'NonNegative'
と、スカラーまたはベクトルで構成されるコンマ区切りのペアとして指定します。スカラーまたはベクトルは、非負でなければならない解要素を選択します。
メモ
NonNegative
は ode23s
または ode15i
で使用できません。さらに、ode15s
、ode23t
および ode23tb
では、質量行列がある問題に使用できません。
例: opts = odeset('NonNegative',1)
は 1 番目の解要素が非負でなければならないことを指定します。
データ型: single
| double
OutputFcn
— 出力関数
[]
または @odeplot
(既定値) | 関数ハンドル
出力関数。'OutputFcn'
と関数ハンドルで構成されるコンマ区切りのペアとして指定します。ODE ソルバーは各タイム ステップの成功後に出力関数を呼び出します。ODE ソルバーを出力なしで呼び出した場合、出力関数は既定の @odeplot
になります。これはすべての解要素を計算しながらプロットします。そうでない場合、既定値は []
です。
OutputFcn
と使用できる組み込み出力関数は以下のとおりです。
関数名 | 説明 |
---|---|
odeplot | すべての解要素を時間に対してプロットする |
odephas2 | 最初の 2 つの解要素からなる 2 次元位相面プロット |
odephas3 | 最初の 3 つの解要素からなる 3 次元位相面プロット |
odeprint | 解とタイム ステップを表示する |
カスタム出力関数を作成する場合、次の形式でなければなりません。
status = myOutputFcn(t,y,flag)
出力関数はまた、次のフラグに適切に応答しなければなりません。
フラグ | 説明 |
---|---|
'init' | ソルバーは積分の開始前に |
[] | ソルバーは、出力が要求される各積分ステップの後に
|
'done' | 積分が完了すると、ソルバーは |
データ型: function_handle
OutputSel
— 出力関数の要素選択
インデックスのベクトル
出力関数の要素選択。'OutputSel'
とインデックスのベクトルで構成されるコンマ区切りのペアとして指定します。このベクトルは、出力関数に渡す解の要素を指定します。
例: opts = odeset('OutputFcn',@myFcn,'OutputSel',[1 3])
は、解の 1 番目と 3 番目の要素を出力関数に渡します。
Refine
— 解の調整係数
スカラー
解の調整係数。'Refine'
とスカラーで構成されるコンマ区切りのペアとして指定します。このスカラーは、各ステップでの出力点数の増加係数を指定します。
Refine
の既定値は、ほとんどのソルバーでは 1
ですが、ode45
では既定値 4
、ode78
および ode89
では既定値 8
を使用します。これらのソルバーには大きいステップを取る傾向があるため、それを補正するために使用する既定値が大きくなっています。
調整係数が
1
の場合、ソルバーは各ステップの終わりでのみ解を返します。調整係数が
n > 1
の場合、ソルバーは各ステップをn
個の小さい区間に分割し、各点で解を返します。
調整係数により生成された追加の値は、連続的な拡張式の手法で計算されます。大幅に計算時間を増加せずに、計算タイム ステップ間の正確な解を得るために、ODE は特殊な式を使用します。
メモ
Refine
は length(tspan) > 2
の場合や ODE ソルバーが解を構造体として返す場合には適用されません。
例: opts = odeset('Refine',5)
は係数 5 で出力点数を増加します。
Stats
— ソルバー統計
'off'
(既定値) | 'on'
ソルバー統計。'Stats'
と、'on'
または 'off'
で構成されるコンマ区切りのペアとして指定します。'on'
の場合、ソルバーは求解の完了後に次の情報を表示します。
成功したステップの数
失敗した実行試行回数
を評価するために ODE 関数が呼び出された回数
陰的ソルバーは、次の解の追加情報を表示します。
偏導関数行列 が作成された回数
LU 分解の回数
線形系の解の数
例: opts = odeset('Stats','on')
データ型: char
| string
InitialStep
— 提案する初期ステップ サイズ
スカラー
提案する初期ステップ サイズ。'InitialStep'
と正のスカラーで構成されるコンマ区切りのペアとして指定します。InitialStep
は、ソルバーが使用しようとする 1 番目のステップ サイズの大きさに上限を設定します。
初期ステップ サイズを設定しない場合、ソルバーは、初期時点 tspan(1)
における解の勾配に基づく初期ステップ サイズを使用します。すべての解要素の勾配がゼロの場合、ソルバーが大きすぎるステップ サイズを試行する場合があります。これが発生していることが明らかな場合や、積分の開始点での重要な挙動をソルバーで確実に解決する場合は、InitialStep
を使用して適切な初期ステップ サイズを指定します。
例: opts = odeset('InitialStep',1e-3)
は、初期ステップ サイズの上限 1e-3
を設定します。
MaxStep
— 最大ステップ サイズ
0.1*abs(t0-tf)
(既定値) | スカラー
最大ステップ サイズ。'MaxStep'
と正のスカラーで構成されるコンマ区切りのペアとして指定します。MaxStep
はソルバーがとるすべてのステップ サイズに上限を設定します。たとえば、方程式の動作が周期的である場合、MaxStep
をその周期の数分の 1 に設定すると、着目する領域全体が 1 つのステップに含まれるほどにソルバーがステップを大きくすることが確実に防がれます。
MaxStep
を使用すると積分が著しく遅くなるため、単に取得する出力点を増加させる目的には使用しないでください。代わりに、Refine
オプションを使用して低い計算コストで追加の点を計算します。解の精度を上げる目的で
MaxStep
を使用しないでください。解の精度が十分でない場合は、RelTol
の値を減少し、その解を使用してAbsTol
の適切な値を決定します。積分区間で 1 回のみ発生する動作の全体をソルバーが 1 ステップで処理しないようにするために
MaxStep
を使用することは避けてください。その動作の発生時点が既知である場合は、区間を 2 つに分割し、ソルバーを 2 回呼び出します。その変化の発生時点が未知である場合は、RelTol
とAbsTol
を減らしてみます。この場合、MaxStep
は最後の手段としてのみ使用します。
例: opts = odeset('MaxStep',1e-2)
Events
— イベント関数
関数ハンドル
イベント関数。'Events'
と関数ハンドル (@myEventsFcn
など) で構成されるコンマ区切りのペアとして指定します。
関数シグネチャ
ODE の場合: 関数ハンドルで指定されるイベント関数は、次の一般的な形式でなければなりません。
[value,isterminal,direction] = myEventsFcn(t,y)
PDE の場合: 関数ハンドルで指定されるイベント関数は、次の一般的な形式でなければなりません。
[value,isterminal,direction] = myEventsFcn(m,t,xmesh,umesh)
どちらの場合も、value
、isterminal
および direction
はベクトルであり、i
番目の要素が i
番目のイベント関数に対応します。
value(i)
は、i
番目のイベント関数の値です。このイベント関数の零点で積分を終了する場合、
isterminal(i) = 1
です。そうでない場合は、0
です。すべての零点を検出する場合、
direction(i) = 0
です (既定の設定)。+1
ではイベント関数が増加している零点のみが検出され、-1
ではイベント関数が減少している零点のみが検出されます。
イベント関数に追加の入力を渡す方法については、関数のパラメーター化を参照してください。
イベント出力
イベント関数を指定する場合、次のように 3 つの追加の出力引数を指定してソルバーを呼び出すことができます。
[t,y,te,ye,ie] = odeXY(odefun,tspan,y0,options)
このソルバーで返される 3 つの追加出力は、次のように検出イベントに対応します。
te
は、イベントが発生した時刻の列ベクトルです。ye
はte
のイベント時点に対応する解の値です。ie
はイベント関数によって返されるベクトルのインデックスです。値は、どのイベントをソルバーが検出したかを示します。
別の方法として、次のように出力を 1 つのみ指定してソルバーを呼び出すこともできます。
sol = odeXY(odefun,tspan,y0,options)
この場合、イベント情報は sol.te
、sol.ye
および sol.ie
として構造体に保存されます。
診断
ODE ソルバーおよび PDE ソルバーで採用されている根を求めるメカニズムとイベント関数を組み合わせる場合、次の制限があります。
積分の最初のステップで終了イベントが発生した場合、ソルバーはこのイベントを非終了イベントとして記録して、積分を続行します。
最初のステップで複数の終了イベントが発生した場合、最初のイベントのみが記録され、ソルバーは積分を続行します。
零点はステップ間で符号が切り替わることにより判別されます。したがって、ステップ間で偶数回切り替わる零点は検出されないことがあります。
ソルバーのステップでイベントが検出されない場合は、精度を高めるために RelTol
および AbsTol
の値を小さくしてみてください。あるいは、MaxStep
を設定して、ステップ サイズの上限を指定します。tspan
を調整しても、ソルバーが取るステップは変わりません。
例
ボールのバウンドや天体の軌道を検出する ODE イベント関数の例については、ODE のイベント検出を参照してください。
振動解のゼロクロッシングを検出する PDE イベント関数の例については、イベント ログを使用した振動 PDE の求解を参照してください。
データ型: function_handle
Jacobian
— ヤコビ行列
行列 | 関数ハンドル | cell 配列
ヤコビ行列。'Jacobian'
と、行列、cell 配列、またはヤコビ行列を評価する関数で構成されるコンマ区切りのペアとして指定します。ヤコビ行列は、微分方程式を定義する関数の偏導関数の行列です。
ヤコビ行列は、 の計算値をもつ定数行列として、あるいは行列要素を計算し次の一般的な形式をもつ関数として指定できます。
dfdy = Fjac(t,y)
スティッフ ODE ソルバー (ode15s
、ode23s
、ode23t
、ode23tb
、ode15i
) の場合、ヤコビ行列に関する情報を指定することが、信頼性と効率を確保する上で重要です。ヤコビ行列を指定しない場合、ODE ソルバーは有限差分を使用してヤコビ行列を数値的に近似します。
ode15i
"のみ": Jacobian
オプションは と の両方について行列を指定しなければなりません。これらの行列は 2 つの定数行列の cell 配列 として、あるいは行列を計算し次の一般的な形式をもつ関数として指定できます。
[dfdy, dfdp] = Fjac(t,y,yp)
系が非常に大規模なために解析ヤコビ行列全体を指定することができない場合、JPattern
プロパティを使用してヤコビ行列のスパース パターンを渡します。ソルバーはこのスパース パターンを使用してスパースのヤコビ行列を計算します。
例: opts = odeset('Jacobian',@Fjac)
は、ヤコビ行列を計算する関数 Fjac
を指定します。
例: opts = odeset('Jacobian',[0 1; -2 1])
は、定数ヤコビ行列を指定します。
例: opts = odeset('Jacobian',{A,Ap})
は、ode15i
で使用する 2 つの定数ヤコビ行列を指定します。
データ型: single
| double
| cell
| function_handle
JPattern
— ヤコビ スパース パターン
スパース行列 | cell 配列
ヤコビ スパース パターン。'JPattern'
とスパース行列で構成されるコンマ区切りのペアとして指定します。スパース行列にはヤコビ行列に非ゼロ要素がある可能性を示す 1
が含まれています。ODE ソルバーは、このスパース パターンを使用して、スパース ヤコビ行列を数値的に生成します。ODE 系が大きいために解析ヤコビ行列を指定できない場合は、このオプションを使用して実行速度を向上します。
ode15i
"のみ": 2 つのスパース行列 ( および のスパース パターン) を含む cell 配列 {dfdyPattern, dfdypPattern}
を使用して、JPattern
オプションを設定します。
メモ
Jacobian
を使用してヤコビ行列を指定した場合、ソルバーは JPattern
のすべての設定を無視します。
例: opts = odeset('JPattern',S)
は、スパース行列 S
を使用してヤコビ スパース パターンを指定します。
例: opts = odeset('JPattern',{dFdy, dFdyp})
は、ode15i
で使用する 2 つの定数ヤコビ スパース パターンを指定します。
データ型: double
| cell
Vectorized
— ベクトル化関数のトグル
'off'
(既定値) | 'on'
| cell 配列
ベクトル化関数のトグル。'Vectorized'
と、'off'
または 'on'
で構成されるコンマ区切りのペアとして指定します。このオプションを使用して、2 番目の引数では、ベクトルを受け入れてベクトルを返すように関数がコード化されていることを ODE ソルバーに通知します。つまり、f(t,[y1 y2 y3...])
は [f(t,y1) f(t,y2) f(t,y3) ...]
を返します。値を 1 つずつ評価する場合と比較して、このベクトル化では、ソルバーでヤコビ行列のすべての列の計算に必要な関数評価回数を減らすことができ、計算時間を大幅に短縮できる可能性があります。ベクトル化をサポートする要素単位の演算子については、配列と行列の演算を参照してください。
ode15i
"のみ": 2 要素 cell 配列を使用して Vectorized
オプションを設定します。f(t,[y1,y2,...],yp)
が [f(t,y1,yp), f(t,y2,yp), ...]
を返す場合は、最初の要素を 'on'
に設定します。f(t,y,[yp1,yp2,...])
が [f(t,y,yp1), f(t,y,yp2), ...]
を返す場合は、2 番目の要素を 'on'
に設定します。この場合、Vectorized
の既定値は {'off','off'}
です。
メモ
Jacobian
を使用してヤコビ行列を指定した場合、ソルバーは Vectorized
の 'on'
の設定を無視します。
例: opts = odeset('JPattern',S,'Vectorized','on')
は、関数がベクトル化されていることを指定し、ヤコビ スパース パターンを設定します。
例: opts = odeset('JPattern',{dy,dyp},'Vectorized',{'on','on'})
は、関数が y
と yp
に関してベクトル化されていることを指定し、ode15i
で使用するヤコビ スパース パターンを設定します。
データ型: char
| cell
| string
ode15i
は適用外)Mass
— 質量行列
行列 | 関数ハンドル
質量行列。'Mass'
と、行列または関数ハンドルで構成されるコンマ区切りのペアとして指定します。ODE ソルバーは の形式の質量行列を含む問題を解くことができます。ここで は非スパースまたはスパースの質量行列です (ode23s
ソルバーは定数質量行列をもつ方程式のみの求解が可能)。
質量行列が特異でない場合、方程式は に単純化され、ODE はあらゆる初期値に対する解をもちます。しかし、多くの場合、 を使用して質量行列の項でモデルを直接表現する方が便利かつ自然です。また、逆行列の計算を避けることで、問題を解くために必要なストレージと実行時間を削減できます。
が特異行列である場合、その問題は微分代数方程式系 (DAE) です。DAE は
y0
に矛盾がないとき、つまり、M(t0,y0)yp0 = f(t0,y0)
となる初期勾配yp0
が存在するときにのみ解をもちます。ここでyp0
はInitialSlope
オプションを使用して指定します。DAE の特徴となるのは、微分インデックス、つまりその系を等価の ODE 系に単純化するために必要な導関数の数です。インデックス 1 の DAE では、矛盾しない初期条件で初期値問題を解くことは、ODE を解くことによく似ています。ソルバー関数ode15s
とode23t
は、インデックス 1 の DAE を解くことができます。DAE を解くときに、質量行列が対角行列になるように問題を定式化すると便利です (半陽的 DAE)。
質量行列が時間または状態に依存する (定数ではなく) すべての場合で、追加オプションを使用する必要があります。
の形式の問題では、
MStateDependence
オプションを'none'
に設定します。これにより、ソルバーはt
の入力引数を 1 つもつ質量行列関数を確実に呼び出します。質量行列が
y
に依存する場合は、MStateDependence
を'weak'
(既定) または'strong'
に設定します。いずれの場合でも、ソルバーは 2 つの引数(t,y)
をもつ質量行列関数を呼び出しますが、'weak'
オプションを設定すると陰的ソルバーは代数方程式を解くときに近似を使用します。状態依存の強い質量行列 をもつ方程式が系に多く含まれる場合は、
MvPattern
をスパース行列S
に設定してスパース パターンを指定します。
例: 例のファイル fem2ode
および batonode
では質量行列のさまざまな使用方法を説明しています。
データ型: single
| double
| function_handle
MStateDependence
— 質量行列の状態依存
'weak'
(既定値) | 'none'
| 'strong'
質量行列の状態依存。'MStateDependence
と、'weak'
、'strong'
または 'none'
で構成されるコンマ区切りのペアとして指定します。
の形式の問題では、
MStateDependence
オプションを'none'
に設定します。これにより、ソルバーはt
の入力引数を 1 つもつ質量行列関数を確実に呼び出します。質量行列が
y
に依存する場合は、MStateDependence
を'weak'
(既定) または'strong'
に設定します。いずれの場合でも、ソルバーは 2 つの引数(t,y)
をもつ質量行列関数を呼び出しますが、'weak'
オプションを設定すると陰的ソルバーは代数方程式を解くときに近似を使用します。
例: opts = odeset('Mass',@M,'MStateDependence','none')
は質量行列 M
が t
のみに依存することを指定します。
データ型: char
| string
MvPattern
— 質量行列のスパース パターン
スパース行列
質量行列のスパース パターン。'MvPattern'
とスパース行列で構成されるコンマ区切りのペアとして指定します。このオプションを使用して、行列 のスパース パターンを指定します。任意の k
について の (i,k)
要素が y
の要素 j
に依存する場合、スパース行列 S
は S(i,j) = 1
をもちます。
メモ
MvPattern
は MStateDependence
が 'strong'
の場合に ode15s
、ode23t
および ode23tb
で使用されます。
例: opts = odeset('MStateDependence','strong','MvPattern',S)
MassSingular
— 特異質量行列のトグル
'maybe'
(既定値) | 'yes'
| 'no'
特異質量行列のトグル。'MassSingular'
と、'maybe'
、'yes'
または 'no'
で構成されるコンマ区切りのペアとして指定します。既定値 'maybe'
の場合、ソルバーは質量行列が特異であるかどうかをテストすることにより、問題が DAE であるかどうかをテストします。系が DAE であることが既知の場合は 'yes'
、DAE でないことが既知の場合は 'no'
を指定して、このチェックを避けます。
データ型: char
| string
InitialSlope
— 矛盾しない初期勾配
ゼロ ベクトル (既定値) | ベクトル
矛盾しない初期勾配。'InitialSlope'
とベクトルとで構成されるコンマ区切りのペアとして指定します。ode15s
ソルバーおよび ode23t
ソルバーで DAE を解くときにこのオプションを使用します。指定されたベクトルは となる初期勾配 です。指定された初期条件が矛盾する場合、ソルバーはこれらを推定値として扱い、推定値に近く矛盾しない値の計算を試行して、問題の求解を続行します。
データ型: single
| double
ode15s
および ode15i
専用MaxOrder
— 式の最大次数
5
(既定値) | 4
| 3
| 2
| 1
式の最大次数。'MaxOrder'
と、1
から 5
までの整数で構成されるコンマ区切りのペアとして指定します。このオプションを使用して、可変次数ソルバー ode15s
および ode15i
で使用される数値微分式 (NDF) または後退差分式 (BDF) で使用される最大次数を指定します。
BDF
— ode15s
で BDF を使用するためのトグル
'off'
(既定値) | 'on'
ode15s
で後退差分式 (BDF) を使用するためのトグル。'BDF'
と、'off'
または 'on'
で構成されるコンマ区切りのペアとして指定します。通常、既定の数値微分式 (NDF) の方が BDF よりも効率的ですが、両者は密接に関係しています。
例: opts = odeset('BDF','on','MaxOrder',4)
は ode15s
による BDF (最大次数 4
) の使用を有効にします。
データ型: char
| string
出力引数
options
— オプション構造体
構造体
オプション構造体。options
は ode45
、ode23
、ode113
、ode15s
、ode23s
、ode23t
、ode23tb
または ode15i
の 4 番目の入力引数として使用できます。
ヒント
さまざまなオプションの使用方法を説明する ODE の例のリストについては、ODE の例とファイルの概要を参照してください。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
すべての入力は定数でなければなりません。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)