ドキュメンテーション

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

指数モデル

指数モデルについて

このツールボックスでは、次で与えられる 1 項および 2 項の指数モデルが用意されています

y=aebxy=aebx+cedx

指数関数は、多くの場合、ある量の変化率がその量の初期量に比例するときに使用されます。b または d に関連する係数が負の場合、y は指数関数的減衰を表します。この係数が正の場合、y は指数関数的増加を表します。

たとえば、核種の 1 つの放射性崩壊モードは、1 項の指数関数で記述されます。a は核種の初期数と解釈され、b は崩壊定数、x は時間、y は特定の時間が経過した後の残りの核種数です。2 つの崩壊モードが存在する場合は、2 項指数モデルを使用しなければなりません。2 番目の崩壊モードのために、もう 1 つの指数項をモデルに追加します。

指数関数的増加の例には、治療法がない伝染病や、捕食や環境要因などにより増加が抑制されていない生物学的個体群があります。

指数モデルによる対話的な近似

  1. cftool と入力し、曲線近似アプリを開きます。または、[アプリ] タブの [曲線近似] をクリックします。

  2. 曲線近似アプリで、曲線データ ([X データ][Y データ] またはインデックスに対する [Y データ] のみ) を選択します。

    既定の [多項式] による曲線近似が作成されます。

  3. モデル タイプを [多項式] から [指数] に変更します。

次のオプションが指定できます。

  • exp1 で近似する場合は項数として 1、exp2 の場合は 2 を選択します。

    [結果] ペインを参照し、モデル項、係数の値、適合度の統計量を確認します。

  • (オプション) [近似オプション] をクリックし、データに適した係数の開始値と制約範囲を指定するか、アルゴリズム設定を変更します。

    現在のデータセットに基づいて指数近似の最適化された開始点が計算されます。開始点をオーバーライドし、[近似オプション] ダイアログ ボックスで独自の値を指定できます。

    単項指数モデルの近似オプションを次に示します。係数の開始値と制約は国勢調査データのものです。

    データに適した開始値を指定する例については、指数関数的背景のあるガウス近似を参照してください。

    設定の詳細については、近似オプションと最適化された開始点の指定を参照してください。

関数 fit による指数モデル近似

この例では、関数 fit を使用して指数モデルによりデータを近似する方法を示します。

指数ライブラリ モデルは、関数 fit および fittype の入力引数です。モデル タイプ 'exp1' または 'exp2' を指定します。

単項指数モデルによる近似

指数関数的トレンドのデータを生成し、単項指数関数を使用してそのデータを近似します。近似とデータをプロットします。

x = (0:0.2:5)';
y = 2*exp(-0.2*x) + 0.1*randn(size(x));
f = fit(x,y,'exp1')
f = 
     General model Exp1:
     f(x) = a*exp(b*x)
     Coefficients (with 95% confidence bounds):
       a =       2.021  (1.89, 2.151)
       b =     -0.1812  (-0.2104, -0.152)
plot(f,x,y)

2 項指数モデルによる近似

f2 = fit(x,y,'exp2')
f2 = 
     General model Exp2:
     f2(x) = a*exp(b*x) + c*exp(d*x)
     Coefficients (with 95% confidence bounds):
       a =       537.7  (-1.307e+10, 1.307e+10)
       b =     -0.2573  (-4112, 4112)
       c =      -535.7  (-1.307e+10, 1.307e+10)
       d =     -0.2576  (-4131, 4130)
plot(f2,x,y)

開始点の設定

現在のデータセットに基づいて指数近似の最適化された開始点が計算されます。開始点をオーバーライドして、独自の値を指定することができます。

関数 coeffnames を使用して 1 番目のモデル (f) の係数のエントリ順序を確認します。

coeffnames(f)
ans = 2x1 cell array
    {'a'}
    {'b'}

開始点を指定する場合、データに適した値を選択します。例として、係数 a および b に任意の開始点を設定します。

f = fit(x,y,'exp1','StartPoint',[1,2])
f = 
     General model Exp1:
     f(x) = a*exp(b*x)
     Coefficients (with 95% confidence bounds):
       a =       2.021  (1.89, 2.151)
       b =     -0.1812  (-0.2104, -0.152)
plot(f,x,y)

指数近似オプションの確認

係数の開始値や制約範囲などの近似オプションをデータに合わせて変更したり、アルゴリズム設定を変更したりする場合は、近似オプションを確認します。これらのオプションの詳細については、fitoptions のリファレンス ページにある NonlinearLeastSquares のプロパティの表を参照してください。

fitoptions('exp1')
ans =

        Normalize: 'off'
          Exclude: []
          Weights: []
           Method: 'NonlinearLeastSquares'
           Robust: 'Off'
       StartPoint: [1x0 double]
            Lower: [1x0 double]
            Upper: [1x0 double]
        Algorithm: 'Trust-Region'
    DiffMinChange: 1.0000e-08
    DiffMaxChange: 0.1000
          Display: 'Notify'
      MaxFunEvals: 600
          MaxIter: 400
           TolFun: 1.0000e-06
             TolX: 1.0000e-06

参考

| |

関連するトピック