アプリ版:「スタンプのみでお礼する」機能のリリースについて

24個のデータ(x,y)について、y=A(x-B)/(x-C)という関数を用いて近似曲線を描いたときのA,B,Cの値を知りたいのですが、どうすればよいのでしょうか?

A 回答 (2件)

よく知られたn次式の最小二乗法のように一般的な方法でさっと出来るものではない場合と理解します。

理論的な最小二乗法の式が構築出来る場合もあるとは思いますが、泥臭くやる方が結局得な場合もあるので下記に示します。EXCEL前提です。

私はこういう場合、先ず実測データ(meas) [x, y] を B, C 列にプロットした後、A, B, Cをパラメータとするために例えばA2, A4, A6に適当な3ヶの数字を入れます。A1, A3, A5に"A" "B" "C"と書いておきます。このバラメータ値を使って各x値に対する理論値(theory)をD列に計算します。E列に実験と理論の差の二乗和 (C2-D2)^2 , (C3-D3)^2, ... を計算します。その合計値 [=sum(E2:E100)] をA8に入れ、A7に"SUM"とでも書きます。さらに実験と理論の曲線を同じグラフ上に書きます。
パラメータ A, B, C を変更しますと、SUMは増減します。グラフも見ながら、差が減少する方向にA, B, Cを繰り返し変更していきます。
3ヶもパラメータがあるので場合によっては大変ですが、その関数形ですと、さほど悩まずに収束させることが出来るだろうと思います。EXCELですとSUMの有効数字を10桁でも可能ですから、相当の精度でパラメータを決めることが出来ます。
    • good
    • 0
この回答へのお礼

KappNets様
 ご返答ありがとうございました。
気合で最小二乗法をするというわけですね(^^)。
実はこの方法に傾きつつあったのですが、
変数が3つあるということで躊躇していました。
とりあえずやってみます。
ありがとうございました。

お礼日時:2008/01/23 08:33

フリーソフトの「Windows版のGnuplot(最新バージョンは4.2.2)」を参考URLからダウンロードしてインスロールすれば、簡単に関数フィッティングでき、A,B,C,Dが求まります。



日本語の参考サイトが沢山ありますので使い方は下記でご覧下さい。
http://takeno.iee.niit.ac.jp/%7Efoo/gp-jman/gp-j …
http://www.miyazaki.mce.uec.ac.jp/~naoya/free/gn …
http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot …
http://takeno.iee.niit.ac.jp/~shige/unix/gnuplot …
curve fittingの使い方
http://wwwal.kuicr.kyoto-u.ac.jp/www/accelerator …
http://wwwal.kuicr.kyoto-u.ac.jp/www/accelerator …
http://windom.phys.hirosaki-u.ac.jp/member/kasai …
http://www.miyazaki.mce.uec.ac.jp/~naoya/free/gn …

フィッティング関数を書きかえ、入力データを(Excelその他で作成し)テキスト形式で与えれば直ぐA,B,C,Dが求まりますよ。

参考URL:http://www.gnuplot.info/
    • good
    • 0
この回答へのお礼

info22様
 早速のご返答ありがとうございました。
なるほど。そういうソフトもあるのですね。
Gnuplotは名前は聞いたこともあったのですが・・。
勉強不足でした。
ぜひ参考にさせていただきます。
ありがとうございました。

お礼日時:2008/01/23 08:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!