Func_AcXcFit関数において呼び出される関数の一つ
Func_correlation関数で求めた相関列をフィッティングする。
もともと複数成分でフィッティングするようにしていたが、
Func_detrend関数でdetrendすることにより
1成分fittingできれいにfitできるので1成分fitにした。
ソースコードには2成分fitの名残がある。
変動させるパラメータはG(0)とτDの2つ。
フィッティングのための関数はnlinifitやlsqcurvefitがあるが、
nlinfitだとfitting結果が虚数になることがあったので、lsqcurvefitにしている。
lsqcurvefitは解の範囲を設定する必要があるので、
0 < G(0) < 1, -1 < τD < 10^10 と範囲を設定している。
function [Fitting_output, fittedPara] = Func_Fitting(input,lags,k)
引数
input(1次元数値配列)
相互相関あるいは自己相関。
Func_correlation関数の戻り値output_corrのうちラグが正の部分であることが必要で、
高速化のためサイズを調整しているのが望ましい。
フィッティングカーブとして可視化できる程度の配列長があれば十分である。
サイズ調整の際、フィッティングカーブはラグ(横軸)がログスケールであることに留意する。
lags(1次元数値配列)
引数inputに対応するラグ。
Func_correlation関数の戻り値output_lagsを、引数inputと同様に調整したもの。
k(数値)
structure parameter
戻り値
Fitting_output(1次元数値配列)
フィッティングカーブを構成する数値配列。
fittedPara(4行1列数値配列)
フィッティングされたパラメータの値を格納した行列。
fittedPara(1)がG(0)、fittedPara(2)がτD。
fittedPara(3)とfittedPara(4)は2成分fitの名残であるため無視してよい。