ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

bvpinit

BVP ソルバーに対する初期推定の作成

構文

solinit = bvpinit(x,yinit)
solinit = bvpinit(x,yinit,parameters)
solinit = bvpinit(sol,[anew bnew])
solinit = bvpinit(sol,[anew bnew],parameters)

説明

solinit = bvpinit(x,yinit) は、境界値問題ソルバーで使用する初期推定を作成します。

x は初期メッシュを指定するベクトルです。[a,b] で境界値問題 (BVP) を解く場合、 x(1) を a として、x(end) を b として指定します。ソルバーはこのメッシュを解に合わせて適切に変更するので、多くの場合、xb=nlinspace(a,b,10) のような推定で十分です。しかし、難しい問題の場合は、解が大きく変化する部分にメッシュ点を配置する必要があります。x のエントリは、以下の順序で指定しなければなりません。

  • a<b の場合は昇順

  • a>b の場合は降順

2 点境界値問題の場合、x のエントリは、すべて異なる値でなければなりません。すなわち、a<b である場合、エントリは x(1) < x(2) < ... < x(end) を満たさなければなりません。a>b の場合、エントリは x(1) > x(2) > ... > x(end) を満たさなければなりません。

多点境界値問題の場合は、エンドポイント a および b のほかに、x 内でエントリを繰り返すことにより、境界条件が適用される [a,b] 内の点を指定できます。たとえば、以下のように設定すると、

x = [0, 0.5, 1, 1,  1.5, 2];

境界条件は、エンドポイント 0 および 2、さらに繰り返されたエントリ 1 の 3 点に適用されます。一般に、繰り返されたエントリは、[a,b] 内における領域の境界点を表します。上の例では、繰り返されたエントリ 1 が、区間 [0,2][0,1][1,2] という 2 つの領域に分割します。

yinit は解に対する推定です。これはベクトルでも関数でもかまいません。

  • ベクトル – 解の個々の成分について bvpinit は、すべてのメッシュ点で一定の推定として、ベクトルの対応する要素を繰り返します。すなわち、yinit(i) は、x のすべてのメッシュ点における解の i 番目の成分 yinit(i,:) に関する定数の推定です。

  • 関数 – 与えられたメッシュ点について推定関数は、解の対応する成分に関する推定を要素とするベクトルを返します。関数は、次の形式になります。

    y = guess(x)

    ここで、x はメッシュ点、y は解の成分数と同じ長さをもつベクトルです。たとえば、推定関数が関数の場合、関数 bvpinit は、

    y(:,j) = guess(x(j))

    を各メッシュ点で呼び出します。

    多点境界値問題の場合、推定関数は、以下の形式でなければなりません。

    y = guess(x, k)

    ここで y は、領域 kx における解に対する初期推定です。この関数は入力引数 k を受け入れる必要があり、これは推定関数を柔軟に記述できるようにするための仕様です。とはいえ、関数内で必ず k を使用する必要はありません。

solinit = bvpinit(x,yinit,parameters) は、境界値問題に未知のパラメーターが含まれることを示します。ベクトル parameters を使用して、すべての未知のパラメーターに関する推定を与えます。

solinit は、以下のフィールドをもつ構造体です。構造体の名前は任意に指定できますが、フィールド名は xy、および parameters でなければなりません。

x

初期メッシュの順番付けられたノード。

y

ノード solinit.x(i) での解の推定 solinit.y(:,i) の初期推定。

parameters

オプション。未知のパラメーターに対する初期推定を与えるベクトル A

solinit = bvpinit(sol,[anew bnew]) は、区間 [a,b] に対する解 sol から区間 [anew bnew] に対する初期推定を作成します。新しい区間は前の区間より広くなければならず、anew <= a < b <= bnew あるいは anew >= a > b >= bnew を満たす必要があります。解 sol は新しい区間に外挿されます。solparameters を含んでいる場合は、solinit にコピーされます。

solinit = bvpinit(sol,[anew bnew],parameters) は、上記のように solinit を作成しますが、parameterssolinit の未知のパラメーターに関する推定として使用します。

R2006a より前に導入

この情報は役に立ちましたか?