〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
1192 re(5):fitで変数の変域を指定するには? |
2006/1/26(木)14:09 - 竹の - nolm01.iee.niit.ac.jp - 9520 hit(s)
松岡> arctan(x) は,端に寄せようとするとパラメータの変化量が大きいので
松岡> そのあたりはどうなんでしょうか。
私も同じようなことを考えました。help にも、fit tips に以下のように
書かれています:
技術的なお話: パラメータの大きさはあまり違いすぎてはいけません。絶対値
が最も大きいパラメータと最も小さいパラメータの比が大きい程当てはめの収
束は遅くなります。その比が、マシンの浮動小数の精度の逆数に近いか、また
はそれ以上ならば、ほとんど永久に収束しないか、拒否されるでしょう。よっ
てその関数をこれを避けるように改良しなければいけません。例えば、関数の
定義で 'parameter' を '1e9*parameter' にするとか、または最初の値を 1e9
で割るとか。
松岡> (sin(q2)/2+0.5)*0.03 + 1.06
私も似たようなことを考えて、松田さんの最初の 3 次式の例に対して
h1(x,a,b)=(x<a)?a:(x>b)?b:x
h(x)=(x>0)?1.0/(1.0+exp(-x)):exp(x)/(1.0+exp(x))
h2(x,a,b)=h(x)*(b-a)+a
g1(x,q,b,c,d)=h1(q,1,10)*x**3+b**2+c*x+d
g2(x,q,b,c,d)=h2(q,1,10)*x**3+b**2+c*x+d
としてみたんですが、どちらも atan() の場合と違って大概 "Singular
matrix in Invert_RtR" とか言われて fit がこけます。
0 や 1 に収束する速さは atan(x)/pi+0.5 よりも h(x) の方がずっと速い
ので、g2() の方がむしろ小さい範囲で止まるかと思ったのですが、fit に
関しては速すぎるのもいかんのでしょうかね。もちろんどうしてそうなるの
かは良くはわかっていません。
〔ツリー構成〕
┣【1192】 re(5):fitで変数の変域を指定するには? 2006/1/26(木)14:09 竹の (1286) |
〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.