MATLAB で、データにフィッティングする関数を求めるにはどのような方法がありますか?
249 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2013 年 10 月 25 日
編集済み: MathWorks Support Team
2022 年 4 月 8 日
実験データにフィッティングする関数を求めたいと思います。MATLAB ではどのような方法・機能があるか、教えてください。
採用された回答
MathWorks Support Team
2022 年 4 月 6 日
編集済み: MathWorks Support Team
2022 年 4 月 8 日
MATLAB およびオプション製品のCurve Fitting Toolbox、Optimization Toolbox、Statistics and Machine Learning Toolboxでは、データを関数に近似する方法をいくつか提供しています。製品ごとの主な方法を以下に紹介します。
1. MATLAB
MATLAB でデータフィッティングに関する代表的なものとして、以下のものが挙げられます。
■関数polyfit による多項式近似関数
polyfit では、データと次元を指定して、多項式に近似することができます。多項式の係数は、最小二乗法により求められます。
■バックスラッシュ演算子(\)
連立方程式(y=X*A)を考え、バックスラッシュ演算子(\)を用いて X\y とすることで、最小二乗法による線形モデルへの近似を行うことができます。この方法では、非多項式項を持つ線形モデルへの近似を行うこともできます。
■「基本的なフィッティング」ツールの利用
2次元プロットでは、「基本的なフィッティング」ツールを用いると、グラフィカルユーザインタフェースによる操作で、補間(スプライン、エルミート)や多項式 (10次まで)への近似を行うことができます。この方法では、結果をグラフィックスですぐに確認でき、残差を表示することもできます。「基本的なフィッティング」ツールは、Figureウィンドウの「ツール」メニューから「基本的なフィッティング」を選択することで起動できます。
■最小化関数 fminbnd、fminsearch の利用
最小二乗法などに基づいて近似関数とデータの差異を評価関数として定義し、関数fminbnd、もしくは、fminsearch により最小化を行うことで近似式を求めることができます。この方法では、非線形関数への近似も行うこともできます。なお、それぞれの関数は、次の特徴があります。
- fminbnd ・・範囲を指定した1変数の最小化(黄金分割法と放物線補間法)
- fminsearch・・制約のない多変数関数の最小化(Nelder-Mead Simplex法)
2. Curve Fitting Toolbox
Curve Fitting Toolbox は、曲線や曲面をデータにフィッティングするための専用のツールとして、グラフィカルユーザインタフェース(GUI)とMATLAB関数を提供しています。ツールボックスのライブラリ式(線形、非線形、多項式等)やカスタム式へのフィッティングを行うことができます。線形最小二乗、非線形最小二乗、重み付き最小二乗、制約付き最小二乗、ロバストな近似に対応しています。
■曲線近似アプリ
■Curve Fitting Toolbox 入門
3. Optimization Toolbox
Optimization Toolbox は、関数の最小化(最大化)行うための製品で、柔軟に問題設定を行うことができます。パラメータに対して線形制約や非線形制約を満たしながら目的関数を最小化(最大化)するパラメータを見つけるための関数が提供されていることが特徴です。
■関数lsqlin 制約のもとで、最小二乗法により線形関数を求めることができます。
■関数lsqcurvefit 最小二乗法により非線形関数へのフィッティングを行います。
4. Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox には、データを記述、解析、およびモデル化する関数やアプリが用意されています。線形回帰および非線形回帰機能を使用して、N 次元データをフィッティングします。また、機械学習アルゴリズムを利用してフィッティングを行うことも可能です。
■fitlm: 線形回帰モデル
■fmitnlm : 非線形回帰モデル
■回帰
本件に関して詳しい情報が、下記 URL のページに記載されています。
以下のページは英語ですが、ページ内で紹介されているドキュメントや例題は日本語でご覧いただけます。
- Data Fitting with MATLAB
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で 線形回帰と非線形回帰 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!