bvpset
境界値問題のオプション構造体を作成、変更
構文
options = bvpset('name1',value1,'name2',value2,...)
options = bvpset(oldopts,'name1',value1,...)
options = bvpset(oldopts,newopts)
bvpset
説明
options = bvpset('name1',value1,'name2',value2,...) は、指定された名前のプロパティを指定された値に設定し、境界値問題ソルバー bvp4c に使用できる options 構造体を作成します。指定されないプロパティは、既定値のままになります。どのプロパティについても、名前には先頭からプロパティを一意に識別できるまでの文字を入力すれば十分です。関数 bvpset は、プロパティ名の大文字と小文字の区別を無視します。
options = bvpset(oldopts,'name1',value1,...) は、既存のオプション構造体 oldopts を変更します。これは指定された名前と値の組み合わせによって oldopts 内の値を書き換え、変更後の構造体を出力引数として返します。
options = bvpset(oldopts,newopts) は、既存のオプション構造体 oldopts と、新しいオプション構造体 newopts を組み合わせます。newopts 内の値が、oldopts 内の対応する値を書き換えます。
入力引数なしの bvpset は、すべてのプロパティ名と取り得る値を表示し、中かっこ {} 内に既定値を示します。
関数 bvpget を使用して、options 構造体から特定のプロパティの値をクエリできます。
BVP のプロパティ
関数 bvpset により、境界値問題ソルバー bvp4c が使用するプロパティを指定できます。設定可能なプロパティは、以下のカテゴリに分類されます。
許容誤差プロパティ
関数 bvp4c は選点公式を使用するため、数値解は、選点方程式が満たされる点のメッシュに基づきます。メッシュの選択とエラー制御は、計算された解 S(x) が摂動を与えられた問題の厳密な解 S′(x) = f(x,S(x)) + res(x) であるという、この解の残差に基づいています。メッシュの個々のサブ区間で、解の i 番目の成分 res(i) における残差ノルムが計算され、この値が許容誤差以下となる必要があります。この許容誤差は、ユーザーが定義する相対および絶対許容誤差 RelTol および AbsTol の関数です。
次の表で許容誤差プロパティを説明します。
BVP の許容誤差のプロパティ
プロパティ | 値 | 説明 |
|---|---|---|
| 正のスカラー { | 残差ベクトルのすべての要素に適用される相対許容誤差。これは、f(x,y) のサイズを基準にした残差の測定値です。既定の設定 計算された解 S(x) は、S′(x) = F(x,S(x)) + res(x) の厳密解です。メッシュの各サブ区間で、残差 res(x) は、以下の関係を満たします。 |
| 正のスカラー、またはベクトル { | 残差ベクトルの対応する要素に適用される絶対許容誤差。 |
ベクトル化
次の表で BVP ベクトル化プロパティを説明します。関数 bvp4c が使用する ODE 関数のベクトル化は、他の ODE ソルバーが使用するベクトル化とは異なります。
関数
bvp4cの場合、ODE 関数は、F([x1 x2 ...],[y1 y2 ...])が[F(x1,y1) F(x2,y2)...]を返すように、最初の引数および 2 番目の引数に関してベクトル化されなければなりません。関数
bvp4cは、解析的なヤコビアンが提供される場合でも、ベクトル化の恩恵を受けます。スティッフな ODE ソルバーでは、解析的なヤコビアンを使用する場合、ベクトル化を無視します。
ベクトル化のプロパティ
プロパティ | 値 | 説明 |
|---|---|---|
|
| on に設定すると、 MATLAB® の配列表記により、一般的に ODE 関数のベクトル化は簡単に行えます。前述の function dydx = shockODE(x,y,e) pix = pi*x; dydx = [ y(2,:)... -x/e.*y(2,:)-pi^2*cos(pix)- pix/e.*sin(pix)]; |
解析的な偏導関数
既定の設定では、bvp4c ソルバーはすべての偏導関数を有限差分で近似します。関数 bvp4c は、微分方程式の解析的な偏導関数 ∂f/∂y、および境界条件の解析的な偏導関数 ∂bc/∂ya と ∂bc/∂yb を指定すると、より効率的になります。問題に未知のパラメーターが含まれている場合には、パラメーターに関する偏導関数 ∂f/∂p および ∂bc/∂p も与えなければなりません。
次の表で解析的偏導関数プロパティを説明します。
BVP の解析的偏導関数のプロパティ
プロパティ | 値 | 説明 |
|---|---|---|
| 関数ハンドル | f(x,y) の解析的な偏導関数を計算する関数ハンドル。y′ = f(x,y) を解くときに、 |
| 関数ハンドル | bc(ya,yb) の解析的な偏導関数を計算する関数ハンドル。境界条件 bc(ya,yb) の場合、[ |
特異な BVP
関数 bvp4c は、以下の形式の特異問題を解くことができます。
この場合の区間は [0,b] です。ここで、b > 0 です。このような問題の場合は、SingularTerm の値として定数行列 S を指定します。この形式の方程式の場合、odefun は f(x,y,p) 項のみを評価します。ここで p は未知のパラメーターを表します。
特異 BVP のプロパティ
プロパティ | 値 | 説明 |
|---|---|---|
| 定数行列 | 特異 BVP の特異項。以下の形式の方程式の場合、定数行列 S に設定します。 この場合の区間は [0,b] です。ここで、b > 0 です。 |
メッシュ サイズ プロパティ
bvp4c は連立代数方程式を解いて、各メッシュ点における BVP の数値解を求めます。代数システムの規模は、微分方程式の数 (n) と現在のメッシュのメッシュ点の数 (N) に依存します。許容されている数のメッシュ点を使い切った場合には計算が停止し、関数 bvp4c は警告メッセージを表示して、その時点で求められている解を返します。この解は許容誤差を満たしませんが、許容誤差を緩めるか、Nmax の値を増やすかして再計算するための非常に優れた初期推定になります。
次の表に、メッシュ サイズ プロパティを示します。
BVP のメッシュ サイズ プロパティ
プロパティ | 値 | 説明 |
|---|---|---|
| 正の整数 { | BVP を解く場合に許容されるメッシュ点の最大数。ここで |
解の統計情報プロパティ
Stats プロパティを使用すると、解に関する統計情報を表示できます。
次の表で解の統計情報プロパティを説明します。
BVP 解の統計情報プロパティ
プロパティ | 値 | 説明 |
|---|---|---|
|
| 計算に関する統計情報を表示するかどうかを指定します。
|
例
bvp4c の相対許容誤差を既定値の 1e-3 から 1e-4 に変更するオプション構造体を作成するには、以下のように入力します。
options = bvpset('RelTol',1e-4);options から 'RelTol' の値を復元するには、以下のように入力します。
bvpget(options,'RelTol') ans = 1.0000e-004
拡張機能
バージョン履歴
R2006a より前に導入