関数fitting_exp マニュアル

(The documentation of function fitting_exp)

Last Update: 2021/12/1


◆機能・用途(Purpose)

データを指数関数でフィットする。
Fit a data by an exponential function.


◆形式(Format)

#include <fitting.h>
inline double ∗fitting_exp
(const int N,const double ∗x,const double ∗y)


◆引数(Arguments)

N フィットするデータ点数。
The number of data points to fit.
x フィットするデータの\(x\)の値のリスト。 \(N\)個の要素から成る配列で与える。
The list of data values of \(x\) to fit, given as an array composed of \(N\) components.
y フィットするデータの\(y\)の値のリスト。 \(N\)個の要素から成る配列で与える。 全ての値が正でなければならない。
The list of data values of \(y\) to fit, given as an array composed of \(N\) components. All the data must be positive.


◆戻り値(Return value)

データを指数関数\(y=ae^{bx}\)でフィットしたときの \(a\)を第1要素、\(b\)を第2要素とする配列。
An array composed of \(a\) and \(b\) of the fitting line \(y=ae^{bx}\) as the first and second components.


◆使用例(Example)

double x[]={1.0,2.0,3.0,4.0,5.0};
double y[]={10000.1,1000.2,100.3,10.4,1.5};
double ∗exppara;
exppara=fitting_exp(5,x,y);


◆計算式とアルゴリズム (Formula and algorithm)

\((x,y)\)平面上の\(N\)個のデータ点\((x_1,y_1),\cdots,(x_N,y_N)\)を 指数関数\(y=ae^{bx}\)でフィットすることを考える。 観測方程式は \[\begin{equation} \ln y_i=\ln a+bx_i \hspace{1em} (i=1,2,\cdots,N) \label{eq.obs} \end{equation}\] と書けるので、新しいデータセット\((x_1,\ln y_1),\cdots,(x_N,\ln y_N)\)を 関数fitting_lineを用いて直線フィッティングすれば、 その傾きが\(b\)、切片が\(\ln a\)となる。
Consider a problem to fit \(N\) data points on \((x,y)\) plane, \((x_1,y_1),\cdots,(x_N,y_N)\), by an exponential curve \(y=ae^{bx}\). The observation equation is given by Eq. (\ref{eq.obs}). Fitting a new data set \((x_1,\ln y_1),\cdots,(x_N,\ln y_N)\) by a straight line using the function fitting_line gives the slope \(b\) and the intercept \(\ln a\).