fit_univ



機能:
任意式の最小二乗法近似(シンプレックス法 )

書式:
fit_univ(F(x,A,B,..),[ix],[iy],[ic],e,[ox],[oy],x初,x終,x増)

解説:
数値組[ix],[iy]によって与えたデータ点列を、表現y = F(x,A,B,..)で表される任意の式による当てはめ近似を行います(式中のA,B,..,H,Iは、求めたい係数を表す)。
当てはめ近似は、誤差の二乗の和を最小にするシンプレックス法が採用されています。シンプレックス法は、式が連続で微分可能といった条件がないこと、めったに収束しないことなどから、どんな表現の式にも安心して使用できる特徴があります。その反面、計算能率があまり良くないため、いかに良い初期値[ic]を与えて速く収束させるかがより大切となります。
なお、表現F(x,A,B,..)中の求めたい係数A,B,..の個数は、初期値を与える数値組[ic]のセル総数と同じでなくてはいけません。
引数の収束判断基準eは、近似計算の精度を決めます。eがあまり小さいと、収束しないことがありますので、初回は収束判断基準eをゆるく設定してだんだん正確な答えに接近していくと良いでしょう。
本関数は、指定区間[x初,x終]と刻みx増での近似結果を求めて数値組[ox],[oy]に出力します。
また、計算終了の際の誤差の二乗の和を戻り値として返します。
fit_poly( ),fit_one( )など他の最小二乗法近似関数の場合、正確な解を得られるほか初期値を与える必要もないので、本関数より手軽に使用できますが、それらの近似関数では求められない非線形の特殊式の場合のみ、本関数を使用しましょう。
係数A,B,..,H,Iを得たい場合、fit_univ1()を使って下さい。


     F(x,A,B,..) ・・・・・・・・・・・・・・・ 近似したい式の表現A,B,..,H,Iは求めたい係数を表す(最大9個まで)

     [ix],[iy] ・・・・・・・・・・・・・・・ 近似点列のXY座標の入力数値組([ix]は@で代替可能)

     [ic] ・・・・・・・・・・・・・・・ 求めたい係数A,B,..の初期値(セル総数=係数個数)

     e ・・・・・・・・・・・・・・・ 近似計算の収束判断基準(1E-3〜1E-20)

     [ox],[oy] ・・・・・・・・・・・・・・・ 近似結果のXY座標の出力数値組

     x初,x終 ・・・・・・・・・・・・・・・ 近似結果の出力区間

     x増 ・・・・・・・・・・・・・・・ 正:刻み値、負整数:均分点数

例:次の例では、ロジスティック関数式の当てはめ近似を行いますが、最初の行の式(e = 1-5)で求めた結果[4]は、2番目の行の式(e = 1E-14)の初期値[ic]として使用されます。
fit_univ1( A/(1 + B * exp(-C * x )),[1],[2],[3],1e-5,[4]);
fit_univ ( A/(1 + B * exp(-C * x )),[1],[2],[4],1e-13,[5],[6],1,14,0.05);


return