前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

1188 re(2):fitで変数の変域を指定するには?
2006/1/26(木)02:42 - ringo - pd3fa64.wpdabw01.ap.so-net.ne.jp - 3261 hit(s)

引用する
現在のパスワード


やろうとしていることは、化学実験のデータのフィッティングです。
データは複数のガウス関数型のピークから形成されています。

実験では物質の状態によって複数のピークが得られるのですが、
組成が近い場合(徐々に物質を酸化させる系など)では、それぞれの
組成を示すピーク同士が重なってしまうことがあります。この重な
ったピークを複数のガウス関数でフィッティングしてやることで、
物質の組成の定量化や、ピーク位置からどのような組成の物質が
できているか判断することができます。

f1(x)=a1*exp(-((x-c1)/b1)**2)
f2(x)=a2*exp(-((x-c2)/b2)**2)
f3(x)=a3*exp(-((x-c3)/b3)**2)
fit f1(x)+f2(x)+f3(x) 'test.dat' via a1,a2,a3
#fit f1(x)+f2(x)+f3(x) 'test.dat' via a1,a2,a3,b1,b2,b3,c1,c2,c3

a : ピーク高さ、b : ピークの半値幅、c:ピーク位置
といったように行なっています。半値幅は経験的な値、ピーク位
置は二次微分でわかります。この場合はa1,a2,a3だけ動かします。
しかしピーク同士が接近してピーク位置がよくわからない場合は
cも変数にします。
そのときにピーク位置というのは物質の組成を表すので、組成が
ある程度予測できていれば、ある範囲内だけc1,c2,c3を動かせば
よいことになります(ここであまり主観が入るとまずいので参考
文献などを参照しています)。長くなりましたがこういった事情
で、変数をある範囲だけで変化させたいわけです。

当然、組成の予測できなければこのような範囲の固定はやるべき
ではありませんが。

教えて頂いたスクリプトですが、ちょっとよくわかりませんでした。
始めにダミーデータを作成して、それにフィッティングをしている
と思いますが、どこで変数の範囲を指定しているのでしょうか?

> set xrange[0:5]
> g(x,q,b,c,d)=((atan(q)/pi+0.5)*9+1)*x**3+b**2+c*x+d
> f(x,a,b,c,d)=a*x**3+b**2+c*x+d
> set table
> set out "pseudo.dat"
> plot f(x,0.5,1,5,pi)*(0.95+0.1*rand(0))
> set term x11
> reset
> fit f(x,a,b,c,d) "pseudo.dat" via a,b,c,d
> a1 =a; b1=b; c1=c; d1=d
> fit g(x,q,b,c,d) "pseudo.dat" via q,b,c,d
> a = (atan(q)/pi+0.5)*9+1
> print a1,b1,c1,d1
> print a,b,c,d
> plot f(x,a,b,c,d), f(x,a1,b1,c1,d1), "pseudo.dat"
> pause -1


〔ツリー構成〕

【1185】 fitで変数の変域を指定するには? 2006/1/25(水)06:21 ringo (357)
┣【1186】 re(1):fitで変数の変域を指定するには? 2006/1/25(水)09:07 松岡 (140)
┣【1187】 re(1):fitで変数の変域を指定するには? 2006/1/25(水)21:37 松田七美男 (1005)
┣【1188】 re(2):fitで変数の変域を指定するには? 2006/1/26(木)02:42 ringo (1902)
┣【1189】 re(3):fitで変数の変域を指定するには? 2006/1/26(木)08:47 松田七美男 (1348)
┣【1190】 re(4):fitで変数の変域を指定するには? 2006/1/26(木)11:57 松岡 (505)
┣【1191】 re(5):fitで変数の変域を指定するには? 2006/1/26(木)12:04 松田七美男 (178)
┣【1193】 re(6):fitで変数の変域を指定するには? 2006/1/26(木)14:14 竹の (339)
┣【1194】 re(7):fitで変数の変域を指定するには? 2006/1/26(木)19:09 松田七美男 (204)
┣【1192】 re(5):fitで変数の変域を指定するには? 2006/1/26(木)14:09 竹の (1286)
┣【1195】 re(6):fitで変数の変域を指定するには? 2006/1/26(木)20:15 松岡 (590)
┣【1197】 re(7):fitで変数の変域を指定するには? 2006/1/26(木)21:13 竹の (340)
┣【1200】 re(8):fitで変数の変域を指定するには? 2006/1/26(木)22:08 松岡 (181)
┣【1204】 re(6):fitで変数の変域を指定するには? 2006/1/28(土)00:53 松田七美男 (252)
┣【1205】 re(7):fitで変数の変域を指定するには? 2006/1/28(土)15:30 竹の (1296)
┣【1208】 re(8):fitで変数の変域を指定するには? 2006/1/28(土)19:53 松岡 (698)
┣【1215】 re(9):fitで変数の変域を指定するには? 2006/1/29(日)17:06 竹の (918)
┣【1212】 re(4):fitで変数の変域を指定するには? 2006/1/29(日)02:55 ringo (193)
┣【2888】 業界最大、最強、エアキングスーパーコピー腕時計店http://www.rolexjp888.com/ 2014/12/16(火)11:39 gengheng (320)

前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.