• ベストアンサー

任意関数最小二乗法のC++フリーライブラリ

関数オブジェクトとvector<double>のデータ点セット(x,y)を与えたら、 与えた関数オブジェクトの関数に従って最小二乗法を実行してくれるような Linuxで使えるC++のフリーライブラリはないでしょうか。Cでもいいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

GSLはどうですか? 日本語訳のマニュアルも探せばでてきます。 http://www.gnu.org/software/gsl/

ankokudan
質問者

お礼

gsl_multifit_nlin.h というのがあるのですね。ありがとうございました。勉強になりました。

ankokudan
質問者

補足

GSLだと、ndlinear がそれらしいと思いますが、x^nではなく、expとかシグモイド関数とかで最小二乗法をしたりできるのでしょうか? 無知ですみません。

関連するQ&A

  • 最小二乗法の応用について

    実験により、xに対するyの値をxの値をかえながら、N回測定した。測定したxに対するyの関係をグラフに描くと、次の二次関数で表現するのが適当であることがわかった。 y=ax*x+bx+c この時、最小二乗法によりパラメータa、b、cの値を求める式を導出せよ。という問題なのですが、どのようにしたら最小二乗法で求めることができるのですか? どうか教えてください

  • 最小二乗法での指数関数の計算

    最小二乗法での指数関数の計算 最小二乗法での指数関数の計算方法が良く分からないのですが公式などありますか? y=ae^bxでしたらやり方があるのですがy=ae^bx+cの方法がわかりません・・・・・・

  • 最小二乗法について

     y=ax+b+c/x という式での最小二乗法の求め方を 教えてください。

  • 遂次最小二乗法について

    遂次最小二乗法についてです。 y=a*x+b*dx+c というように 微分dxが入る場合も2次方程式の場合と同様にして解けるのでしょうか。 未知パラメータベクトルθを(a b c) データベクトルXを(x dx 1)としてy=θXを考え 共分散行列Pを3×3の行列として解けばいいのでしょうか。 どなたか教えていただけると幸いです。 よろしくお願いします。

  • logの入った最小二乗法について

    Y=ln(x-b)-ln(x-c) といったように、xが二つに分かれてしまっていて、さらに式にあるようにbやcが入っているときの最小二乗法のやり方を教えてください。お願いします。

  • 最小2乗

    (1) (x,y)=(-3,4),(-2,1),(-1,0),(0,-1),(1,1),(2,2),(3,3)を 方程式 y = ax^2 + bx + c で最小2乗法に当てはめたときの a,b,cを求める (2) 要素(x,y,z)=(1,3,2),(2,1,1),(3,2,4),(4,5,3),(5,4,5)が z = ax + by + p とモデル化されるとき、残差の2乗Σp^2 が 最小になるように定式化して、最小となるa,bを求める という問題です。 これらを行列を用いて解きたいのですが、どのようにすればよいか分かりません。よろしくお願いします。

  • y=a/(x-b)+cの最小二乗法

    y=a/(x-b)+cの最小二乗法 y=a/(x-b)+c という、反比例の式をx方向に+b、y方向に+c平行移動したような曲線の係数a,b,cを求めるための最小二乗法の方法を教えていただけないでしょうか。 工夫してみたのですが、なかなかうまくいきませんでした。 すみませんが、力を貸してください。

  • 最小二乗法

    円x^2+y^2=1上の点Pにおけるこの円の接線とx軸、y軸との交点をそれぞれA,Bとして、 Pが第一象限を動くとき、線分ABの長さLを求めよ。 なお、Lの最小値の存在理由も述べよ。 というもんだいなのですが、 線分ABはy=txとなるので、このtを最小二乗法でもとめるんだと思うのですが、 最小二乗法の理論値、実測値などが、まだ良くわかりません。 と言いますか、傾きが最小ならLは最小で合ってますでしょうか? 傾きが45°のときが怪しくなってきたのですが・・・ また、最小値の存在理由ってどうやったら説明できるのですか? よかったら、教えてください。

  • 円の最小二乗法の公式

    いくつかのデータから最小二乗法で近似曲線を求めたいのですが、よくわかりません。そのデータ集の近似曲線は円になります。 最小二乗法を調べ、1次、2次関数についてはわかりました。ある点の座標を(x1,y1), (x2,y2)…、近似曲線上の座標を(x1,y’1),(x2,y’2)… とした時、 (y’1-y1)^2 + (y’2-y2)^2 … が最小となるような係数a,b などを偏微分 → 連立方程式で求めるという方法でした。 円についても、同様の方法で r^2 = (x-a)^2 + (y-b)^2 のような近似曲線の式が求められるのでしょうか?1次関数などのように、y’1-y1を求めようとすると、±√ が出てきてしまい、ややこしくなる気がしますが、これを解くしかないのでしょうか?もしくは別の解法があるのでしょうか?詳しく教えていただけたらと思います。よろしくお願いします。

  • どんな関数が最小2乗法に適する?

    一般論をお聞きしたいのですが、どんな関数に従うか(理論的に)わからないデータがあったとします。 その場合にどんな関数を用いて最小2乗法を行うのが良いのかお尋ねしたいのです。 非常に狭い範囲においては一次関数に従うでしょうから、1次関数にするでしょうし、 少し範囲を広げるとグラフの曲がっているのが見えてくるでしょうから2次関数にするでしょう。 そうやって欲張って(笑)いくと、3次関数,4次関数,…としていくことになるのでしょうが、 他に方法はないのでしょうか。 例えば2次関数に√xの項を加えるとか、3次関数に1/xの項を加えるような方法は有効なのでしょうか。 グラフを見た感じy=ax^n (ただし0<n<1)のような関数なのですが データの対数をとって一次関数にしてもあまり良い近似にならなかったようで、 EXCELの逆行列機能を用いて2次関数,3次関数,…としていったのですが、 わずかであっても極大・極小ができては困ります。 かといって数学力がないので複雑な関数で置いても解けないと困るのです。 こんな事態なのですがアドバイスいただけないでしょうか。