Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

有理多項式

有理モデルについて

有理モデルは多項式の比として定義され、次で与えられます

y=i=1n+1pixn+1ixm+i=1mqixm1

ここで、n は分子多項式の次数で、0 ≤ n ≤ 5 です。m は分母多項式の次数で、1 ≤ m ≤ 5 です。xm の係数は常に 1 であることにご注意ください。これにより、多項式の次数が同じ場合、分子と分母は一意に決まります。

このガイドでは、有理式を分子の次数/分母の次数に着目して記述します。たとえば、2 次/3 次の有理方程式は次で与えられます

y=p1x2+p2x+p3x3+q1x2+q2x+q3

簡単な経験的モデルが必要な場合、多項式と同様に有理式がよく使用されます。有理式の主な利点は、構造が複雑なデータに対する柔軟性です。主な欠点は、分母が 0 に近づくと不安定になることです。さまざまな次数の有理多項式を使用する例については、例: 有理近似を参照してください。

有理モデルによる対話的な近似

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

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

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

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

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

  • 分子と分母の多項式の次数を選択します。分子の次数は 0 から 5 まで、分母の次数は 1 から 5 までです。

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

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

    区間 [0,1] で定義される有理モデルのランダムな開始点が計算されます。開始点をオーバーライドし、[近似オプション] ダイアログ ボックスで独自の値を指定できます。

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

コマンド ラインでの有理近似の選択

モデル タイプとして ratij を指定します。ここで、i は分子多項式の次数であり、j は分母多項式の次数です。たとえば、'rat02''rat21''rat55' のようにします。

たとえば、データを読み込んで有理モデルで近似するには次のようにします。

load hahn1;
f = fit( temp, thermex, 'rat32')
plot(f,temp,thermex)

さまざまな有理モデルを使用してこの例を対話的に近似する方法については、例: 有理近似を参照してください。

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

例: 有理近似

この例では、有理モデルを使用して測定データを近似します。このデータは、ケルビン単位の温度の関数としての銅の熱膨張係数を表しています。

このデータセットについて、最適な近似を生成する有理方程式を求めます。有理モデルは多項式の比として定義され、次で与えられます。

y=p1xn+p2xn1+...+pn+1xm+q1xm1+...+qm

ここで、n は分子多項式の次数であり、m は分母多項式の次数です。有理方程式は、データの物理的なパラメーターとは関係がないことに注意してください。その代わり、内挿や外挿に使用できる簡単で経験的なモデルを提供します。

  1. ファイル hahn1.mat から熱膨張データを読み込みます。このファイルはツールボックスに用意されています。

    load hahn1

    ワークスペースには次の 2 つの新しい変数が含まれています。

    • temp はケルビン単位の温度のベクトルです。

    • thermex は銅の熱膨張係数のベクトルです。

  2. 次を入力し、曲線近似アプリを開きます。

    cftool

  3. tempthermex[X データ][Y データ] のリストから選択します。

    曲線近似アプリによりデータが近似され、プロットされます。

  4. 近似カテゴリのリストで [有理] を選択します。

  5. 最初の選択として 2 次/2 次の有理モデルを試します。[分子の次数][分母の次数] の両方で [2] を選択します。

    曲線近似アプリにより 2 次/2 次の有理式で近似されます。

  6. 残差を検証します。[表示][残差プロット] を選択するか、ツール バー ボタンをクリックします。

    データ、近似および残差を検証します。この近似は予測子の最小値と最大値に対応するデータから外れていることを観察します。また、残差がデータセット全体で示す強いパターンは、より適切な近似が可能であることを示しています。

  7. 次の近似として、3 次/3 次の方程式を試します。[分子の次数][分母の次数] の両方で [3] を選択します。

    データ、近似および残差を検証します。この近似は、分母がゼロに近いところでいくつかの不連続点を示します。

    メモ

    結果はランダムな開始点に依存するため、ここに示した結果と異なる場合があります。

  8. [結果] ペインを見てみます。このメッセージと数値結果は、近似が収束しなかったことを示します。

    Fit computation did not converge:
    Fitting stopped because the number of iterations
     or function evaluations exceeded the specified maximum.
    

    [結果] ペインのメッセージは、最大反復回数を増やすと近似が改善する可能性があることを示していますが、現在の近似には複数の不連続点が含まれているため、近似プロセスのこの段階では異なる有理方程式を使用することが良い選択となります。これらの不連続点は、分母がゼロの場合に対応する予測子の値で関数が発散することが原因です。

  9. 3 次/2 次の方程式を使用してデータへの近似を試します。[分母の次数][2] を選択し、[分子の次数][3] に設定したままにします。

  10. 入力変数間のスケールが大きく異なるため、[データのセンタリングとスケーリング] オプションを選択します。

    データ、近似および残差を次に示します。

    この近似は、データ範囲全体でうまく機能し、残差はゼロ付近にランダムに散っています。そのため、確信をもってこの近似でさらに解析を進めることができます。

参考

| |

関連するトピック