Main Content

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

曲線近似および曲面近似のオブジェクトとメソッド

ここでは、コマンド ラインから Curve Fitting Toolbox™ 関数を使用する方法や曲線近似および曲面近似アプリ用のプログラムを記述する方法について説明します。

曲線近似アプリを使用すると、プログラミングせずに Curve Fitting Toolbox 関数を便利かつ対話的に使用できます。ただし、Curve Fitting Toolbox 関数に直接アクセスでき、曲線近似関数を MATLAB® 関数や他のツールボックスの関数と組み合わせるプログラムを記述することもできます。これにより、ニーズに最適な曲線近似環境を作り出すことができます。

曲線近似アプリのモデルと近似は、内部的には曲線近似 "オブジェクト" として管理されます。オブジェクトは "メソッド" と呼ばれるさまざまな関数で操作されます。曲線近似アプリを使用しなくても、曲線近似オブジェクトを作成し、曲線近似メソッドを適用することができます。

曲線近似オブジェクト

MATLAB プログラミングでは、すべてのワークスペース変数が特定の "クラス" の "オブジェクト" です。MATLAB クラスのよく知られた例は doublechar および function_handle です。オブジェクト指向プログラミングを使用してカスタムの MATLAB クラスを作成することもできます。

"メソッド" は、特定のクラスのオブジェクトにおいてのみ動作する関数です。"データ型" は、オブジェクトおよびメソッドを一緒にパッケージ化します。これにより、メソッドがその型のオブジェクトにおいてのみ動作し、その他の型のオブジェクトでは動作しないようにします。オブジェクトとメソッドのカプセル化を明確に定義することがオブジェクト指向プログラミングの目的です。

Curve Fitting Toolbox ソフトウェアは、曲線近似を実行するための新しい MATLAB データ型を提供します。

  • fittype — オブジェクトによって、データのパラメトリック モデルの記述情報がカプセル化されます。メソッドによりその情報へのアクセスや変更が可能です。

  • cfit および sfit — 曲線および曲面用の fittype の 2 つのサブタイプ。オブジェクトは、係数、信頼区間、近似の統計量などに値を代入することにより、特定の近似から情報を取得します。メソッドにより、プロット、外挿、積分などで近似を後処理できます。

cfitfittype のサブタイプであるため、cfitfittype のすべてのメソッドを継承しています。つまり、fittype のメソッドは fittypecfit のどちらのオブジェクトにも適用できますが、cfit のメソッドは cfit オブジェクトのみに使用できます。sfit オブジェクトについても同様です。

たとえば、モデルが線形か非線形かを判定する fittypeislinear メソッドは、近似の前後、つまり fittype オブジェクトと cfit オブジェクトのどちらにも同じように問題なく適用できます。一方、cfit のメソッドである coeffvaluesconfint はそれぞれ近似係数と近似の信頼区間を返すメソッドであり、係数が未決定のパラメトリック モデルを記述する一般的な fittype オブジェクトに適用しても意味がありません。

曲線近似オブジェクトには、オブジェクトの型、モデルの詳細、またはカプセル化する近似に依存するプロパティがあります。たとえば、次のコードは 2 つの曲線近似タイプのコンストラクター メソッドを使用して fittype オブジェクトの fcfit オブジェクトの c を作成します。

f = fittype('a*x^2+b*exp(n*x)')
f =
     General model:
       f(a,b,n,x) = a*x^2+b*exp(n*x)
c = cfit(f,1,10.3,-1e2)
c =
     General model:
       c(x) = a*x^2+b*exp(n*x)
     Coefficients:
       a =           1
       b =        10.3
       n =        -100

fittype オブジェクトの表示メソッドは、formula および indepnames からの出力をつなぎ合わせて基本的な情報のみを返すことに注意してください。

cfit オブジェクトと fittype オブジェクトは feval を使用して予測子の値 x で評価されます。次の関数構文を使用すると feval を間接的に呼び出すことができます。

y = cfun(x) % cfit objects;
y = ffun(coef1,coef2,...,x) % fittype objects;

曲線近似メソッド

曲線近似メソッドを使用すると、曲線近似オブジェクトの作成、アクセス、変更を行うことができます。また、plotintegrate などのメソッドを使用すると、曲線近似オブジェクトにカプセル化されている情報全体を一様に処理する操作を実行できます。

次の表にリストされているメソッドは、cfit オブジェクトを含め、すべての fittype オブジェクトで使用できます。

近似タイプ メソッド説明

argnames

入力引数名を取得

category

近似カテゴリを取得

coeffnames

係数名を取得

dependnames

従属変数名を取得

feval

指定した予測子でモデルを評価

fittype

fittype オブジェクトを構築

formula

式を取得

indepnames

独立変数名を取得

islinear

モデルが線形かどうかを判断

numargs

入力引数の数を取得

numcoeffs

係数の数を取得

probnames

問題依存のパラメーター名を取得

setoptions

モデル近似オプションを設定

type

モデルの名前を取得

次の表にリストされているメソッドは、cfit オブジェクトでのみ使用できます。

曲線近似メソッド説明

cfit

cfit オブジェクトを構築

coeffvalues

係数値を取得

confint

近似係数の信頼区間を取得

differentiate

近似を微分

integrate

近似を積分

plot

近似をプロット

predint

予測区間を取得

probvalues

問題依存のパラメーター値を取得

曲線近似オブジェクトのメソッドの全リストは、MATLAB の methods コマンドで確認できます。たとえば、

f = fittype('a*x^2+b*exp(n*x)');
methods(f)

Methods for class fittype:

argnames     dependnames  fittype     islinear     probnames
category     feval        formula     numargs      setoptions
coeffnames   fitoptions	indepnames   numcoeffs    type

methods でリストされるメソッドの一部は上の表に記載されておらず、Curve Fitting Toolbox ドキュメンテーションに該当するリファレンス ページがないことに注意してください。これらの追加メソッドは一般に曲線近似アプリが使用する低水準操作であり、曲線近似アプリを記述するときは通常必要ありません。

getfield および setfield に相当する、fittype オブジェクトで使用できるグローバル アクセサー メソッドはありません。アクセスは前述のメソッドに限定されています。これは fittype オブジェクトの多くのプロパティが、アクセス可能な他のプロパティから派生しているためです。たとえば、

f = fittype('a*cos( b*x-c )')
f =
     General model:
       f(a,b,c,x) = a*cos( b*x-c )

formula(f)
ans =
a*cos( b*x-c )

argnames(f)
ans = 
    'a'
    'b'
    'c'
    'x'

fittype オブジェクト f はその式の指定により構築され、したがってこのオブジェクトの基本的なプロパティへの書き込みアクセスは必ず許可されます。formula メソッドを使用すると、そのプロパティに読み取りアクセスできます。また、argnames メソッドを使用すると、オブジェクトの引数名に読み取りアクセスできます。ただし、引数名は式から派生しているため、引数名に直接書き込みアクセスすることはできません。引数名を設定する必要がある場合は、式を設定します。

曲面近似のオブジェクトとメソッド

曲面近似のオブジェクトとメソッド

曲面近似オブジェクト (sfit) は曲面近似操作の結果を保存します。これにより、コマンド ラインで簡単に近似をプロットおよび解析できます。

cfit オブジェクトと同様に、sfit オブジェクトは fittype オブジェクトのサブクラスであり、曲線近似メソッドにリストされているものとまったく同じ fittype のメソッドを継承します。

また、sfit オブジェクトには sfit オブジェクト専用のメソッドがあります。詳細は、sfitを参照してください。

曲面近似とプロットのコードから有用なプログラムを迅速に組み立てる方法の 1 つは、曲線近似アプリのセッションからファイルを生成することです。この方法により、単一データセットの対話型の解析を、コマンド ラインでの解析または複数データセットのバッチ処理に再利用可能な関数に変換できます。生成したファイルは変更せずに使用することも、必要に応じてコードを編集してカスタマイズすることもできます。詳細は、コードの生成とワークスペースへの近似のエクスポートを参照してください。