質問: tan(y)へのカーブフィット(2) 1. tan(y)=(a(x/b)/((x/b)^2-1)の式に データ配列を最小二乗法によりカーブフィットさせたいのですが、線形代数での解き方をご教授お願いします。 2. (マトリックスを使う場合は、どのように展開すれば 良いのでしょうか。)
回答: ふふふ。皆さん、非線形と決めてかかってますね。 じつは、データがたくさんあって、しかもモデルと良く合うことが分かっている場合には、実用上問題ない精度で線形計算ができます。 元のモデルを変形すると tan(y)x^2=(abx)+tan(y)b^2 ですよね。ここで、 a= b^2, b= ab yi = (tan(yi) xi^2), xi = tan(yi) (i=1,2,....,n) とおけば yi= a xi+ b + 誤差 というモデルをフィッティングすることで、a, bが得られます。a,bからa,bを求めるのはできますよね。 どうしても本来の問題をきちんと解くと言う場合には、やはり非線形最小二乗法が必要ですが、上記の方法でa,bの非常に良い近似値を出しておけば、あとは「ガウス-ニュートン法」、いやさ「ニュートン法」のようなシンプルかつ高速な方法で収束させることができます。 この方法は、縦軸を(tan(y) x^2)、横軸をtan(y)にとったグラフを描けばデータが直線上に乗り、この空間での最小二乗法をやる、という仕組みなのです。非常に応用が広いんですよ。私的に開発したもので「超平面法」と読んでいます。