プロが教えるわが家の防犯対策術!

万有引力の実験があって、それNgraphにプロットしたのですが、「フィッティングの仕方」がよくわかりません。というか、うまくいきませんでした。プロットした点の形は間違いなく減衰曲線ですが。。。
Exp(-X)SinX の形のグラフになるはずですが、よくやり方が分かりません。

どなたか教えてください。

A 回答 (3件)

fitの種類をuserにして


user定義式を
%00*exp(%01*x)*sin(%02*x+%04)+%03
初期値を %00から順に 100,0.001,0.01,50,0 にしてやってみると、
結構よいフィッティング(|r|で0.9998くらい)になるようです。

(DCオフセットがデータに見れたのでDCオフセット分%03を追加、最初位相項を0にしてたんですが、ずれがみられたので%04を追加しました。)
初期値はグラフから大雑把に関数のパラメータを決めて(例えば、DCオフセットは概略50だとかとみて)放り込んでいます。
    • good
    • 1
この回答へのお礼

すげー!!できた。ありがとうございます。

滑らかな曲線ができたときには感動しました。本当にありがとうございます。

それにしてもデータ値の指定というのは、適当にやるのでしょうか。やはり経験があると大体どれくらいやればできるんでしょうか。これから、実験をもっと多くこなさないといけないと思いますので、将来的にも参考したいです。

お礼日時:2008/11/05 23:45

user定義式は、理論的に得られる式(今回の場合は、A exp(-t/T) cos(wt) )を元に、補正の項(今回は、直流オフセットと初期位相)を必要に応じて足してます。



初期値は、決定すべきパラメータ数が多い場合には、あまりかけ離れた値を指定すると収束しなかったり、変なところに収束することがあるので、ある程度それらしい値(波形をプロットさせると、振幅の減衰の様子からTが、t=0の点からAが、tが大きいところの収束の様子から直流オフセットが、振動の周期からwが大体読み取れます)を入れることが多いです。

場合によっては、最初は簡単な定義式(例えば、直流オフセットは変数とせずに決めうちで数値を与えて、初期位相は0として)を使って、ある程度パラメータ(A,T,w)をフィッティングで絞り込んで、詳細な(初期位相、直流オフセットを可変のパラメータとした)user定義式の初期値に使ったりもします。
(まあ、このあたりは、トライアンドエラーで進めることが多いですけど。)

定義式の素性が良い(それぞれのパラメータが相互に影響しない(例えば、今回の例だと、振幅、振動の周波数、直流オフセットは相互にそれほど強くは影響していません))場合には、比較的楽にフィッティングできるようです。
    • good
    • 0
この回答へのお礼

へぇーそうなんですか。よくわかるようでわからないですが、ありがとうございます。そこらへんをきちんと勉強したいと思います。しっかりと勉強し、またフィッティングを実践して、必ず身につけようと思います。

本当にありがとうございました。

お礼日時:2008/11/07 20:58

データの設定を開いて、fitのところをクリックすればフィッティングの設定ができます。


そこで、関数としてuser(ユーザ定義)を選んで、フィッティングしたい関数(A exp(-x*B) sin(C*x+D) かな)を登録してやってA-Dに適切な初期値を与えてやればあとはNgraphが処理してくれると思います。
(NgraphではA-Dを%00-%03の変数で置き換えてやる必要があります。)

この回答への補足

返答ありがとうございます。

実はまだ、Ngraphを使い始めたばかりで。。。ユーザー定義で
%00 exp(-x*%01) sin(%02*x+%03)
と書きましたが、初期値をどのように決めるかわかりません。できれば、一例を示してくれるとありがたいです。
データを
http://applis.servehttp.com/?file=00031878.ngp
に貼り付けました。パスワードは1031です。お願いします。

補足日時:2008/10/30 10:15
    • good
    • 0
この回答へのお礼

すみません。パスワードは1030です。間違えて打ってしまいしました。

お礼日時:2008/10/30 10:21

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