![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
データを(x[i],y[i]) (i=1,2,....N)とし、x[i]は誤差が無視でき、y[i]には誤差がある。
つまり、f(a,b,c;x) = a sinc(b(x-c))
としたとき、
y[i]-f(a,b,c:x) = ε[i]
このε[i]をたとえば最小二乗法で小さく押さえ込みたい。という問題ですね。
いろんな方法があるんです。そして、アプローチを決める上でのポイントは
●sincが波打ってる所まで、つまり遠くまでxがあるのかどうか。
●xが沢山あるかどうか。波の一つあたり少なくとも幾つかはxがあるのかどうか。
●xが等間隔に与えられているのか。
●yのノイズがモデルに比べてものすごく大きかったりしないか。
●xにノイズはないか。
●sincのひとつの山の一部だけのデータしかなければ、どの山のものなのか特定するのは極めて困難である。
●計算を1回やれば良いのか、数十回やるのか、どんどん入ってくるデータを自動処理したいのか。
●a,b,cの大体の値は分かっているのか。
などです。これらの条件を勘案して、適当な方法を決めなくてはならない。ともかく幾つか汎用性の高いアプローチを示しましょう。
教科書に載っている「非線形最小二乗法」は、まあ行ってみれば最後の手段です。
(でも「最小二乗法による実験データの解析」東大出版会 は持っていて損のない本です。)
★アプローチ(1)
sin(A+B) = sinAcosB+cosAsinB
を使って、
f(a,b,c;x) x=c f(a,b,c;x)+{(a/b)(cos bc)} (sin bx) +{-(a/b) (sin bc)} (cos bx)
とモデルを書き換えます。
f(a,b,c;x)=y[i]-ε[i]
を使って、
y[i](x[i])=
c y[i]+
{(a/b)(cos bc)} (sin bx[i]) +
{-(a/b) (sin bc)} (cos bx[i])+(x[i]-c)ε[i]
ですね。従って、
Y[i]= y[i](x[i])
α=c
β={(a/b)(cos bc)}
γ={-(a/b) (sin bc)
δ[i]=(x-c)ε[i]
と考えてしまえば、これはbだけが非線形で、あとのa,cについては線形最小二乗法の問題です。だからbを適当な方法で探索すれば良い。その過程で一旦cの概算値が分かってしまえば、
y[i](x[i])/(x[i]-c)=
c y[i]/(x[i]-c)+
{(a/b)(cos bc)} (sin bx[i])/(x[i]-c) +
{-(a/b) (sin bc)} (cos bx[i])/(x[i]-c)+ε[i]
によって、より良い評価が得られるから、bを決めてはc,aを計算することを繰り返せばよい。
★アプローチ2
xが等間隔でたっぷりあって、yのノイズが小さいのなら、フーリエ変換してしまいましょう。
F(a,b,c;ω) = (a/√(2π) )integral{x=-∞~∞} sinc(b(x-c)) exp[-iωx] dx
とすると
F(a,b,c;ω) = (a/√(2π) )integral{x=-∞~∞} sinc(bx) exp[-iω(x+c)] dx
=exp[-iωc] (a/(b√(2π) ))integral{x=-∞~∞} {sin(bx)/x} exp[-iωx] dx
=exp[-iωc] (a/(b√(2π) ))√(2π) ---- |ω|>|b| さもなくば0
=exp[-iωc] (a/b)---- |ω|>|b| さもなくば0
=(a/b) ((cos ωc)-i(sin ωc))---- |ω|>|b| さもなくば0
ここで
|F(a,b,c;ω|^2 =(a/b)^2---- |ω|>|b| さもなくば0
これでa, bを決めてしまうことができる(かも知れません)。そうすれば、
既知のものを大文字で書けば
f(A,B,c;x) x=c f(A,B,c;x)+{(A/B)(cos Bc)} (sin Bx) -(A/B) (sin Bc) (cos Bx)
なので、
y[i]x[i]=c y[i]x[i]+(A/B)(cos Bc) (sin Bx[i]) -(A/B) (sin Bc) (cos Bx[i])+(x[i]-c)ε[i]
未知数はcだけですね。この線形方程式はBが既知なのでフーリエ級数展開の0次、1次を計算すれば解けてc, (A/B)(cos Bc), (A/B) (sin Bc)が得られます。cが3通りも求められてしまう。これを使って適当にcを選んで
y[i]x[i]/(x[i]-c)=c y[i]x[i]/(x[i]-c)+{(A/B)(cos Bc)/(x[i]-c)} (sin Bx[i]) -{(A/B) (sin Bc)/(x[i]-c)} (cos Bx[i])+ε[i]
で最小二乗法をやっても良いし、あとはいろいろやり方ありますねえ。
★3アプローチ3
ちょっと乱暴ですが、一気に線形で解きます。データの誤差が少なく、データ数が多い場合には非常に強力。
モデルf(a,b,c;x)は微分方程式
(b^2)(x-c)f-f'+(x-c)f''=0
の解である。したがって、
(b^2)xf-(cb^2)f-f'+xf''-cf''=0
これを強引に項別に2回部分積分すると
(b^2)int int xf (dx)^2-(cb^2)int int f (dx)^2-int f dx + xf-int fdx -intint f (dx)^2 - cf =Cx+D+誤差
という線形問題になる。ここでfにyを代入して数値積分し(従ってどの積分も定数になる)、線形最小二乗法で誤差の二乗和を最小化すれば、
(b^2), (cb^2), c, C,D
という係数を決定することが出来る。あとのaを決める方法は自明でしょう。
こうやって得たa,b,cを非線形最小二乗法で改良すると、出発値が良いので非常に安定かつ短時間で計算できます。(ガウス-ニュートン法程度で十分。)
ちと眠たくて、推敲が甘いですから、式の間違いなどチェックはご自分で。
意味不明の部分は、ご遠慮なく補足質問してください。
この回答へのお礼
お礼日時:2001/01/29 00:39
丁寧な回答ありがとうございます。
早速回答中のいくつかのアプローチで考えてみます。
わからないことがあったら、また質問させていただきます。そのときはまたよろしくお願いします。
No.1
- 回答日時:
x,y が測定値で,a,b,c を最小2乗法で決めたいんですね.
で,a,b,c について線型でないから困っている,ですね.
よく使われる方法は2つ
いずれも,あらっぽくて良いですから,a,b,c の値の
大体の見当をつけておきます.
(a) a,b,c を適当なステップで変えて残差の2乗の和を計算する.
残差の2乗の和が最小になる a,b,c が求めるものです.
例えば,a,b,c をどれも10通り変えて,1000 通りについて残差の2乗和
を見ればよい.
1回ではステップが荒すぎるなら,残差の2乗和が最小になっている
あたりをもっと細かくやる.
例えば,範囲を1回目の 1/10 に絞り,ステップも 1/10,
a,b,c の値はやはり10通りずつですね.
お好きなだけ手続きを繰り返してください.
(b) 線型じゃなくて困るなら,線型にする.
a の見当値を a0 とし,a = a0 + δa とする.
b,c についても全く同様.
で,δa, δb, δc の1次まで展開すれば,
δa, δb, δc について線型になりますね.
線型の最小2乗法だから簡単にできる.
できたら,a0 + δa を新たに見当値 a0 と思って,
同じことを繰り返す.
何回かやれば十分収束します.
定めるべき係数がべらぼうにたくさんあるときは,
収束を早くする線型代数的テクニックが使われますが,
今は3個しかありませんから,
テクニック学んだりプログラムが複雑になったりするよりは
素直にやるのが早いでしょう.
どちらも簡単なプログラムでしょう.
主要部分は繰り返しですから,
適当に判断してループから抜ければいいですね.
非常に運が悪いとうまくいかないことがまれにありますが
たいていは上のどちらかで十分です.
誤差評価も考えてくださいね.
誤差分より細かいステップまでやっても意味がありません.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
高校数学です。 sin70-sin50+co...
-
周期の最小値?
-
sin²θとsinθ²と(sinθ)²って全部...
-
積分 ∫√(4-x^2)dxについて
-
0°≦θ≦180° sinθ=0° のとき、 θ=...
-
なぜ2sinθ=1になるんですか?
-
2つの円の一部が重なった図
-
sinx=cosxの解き方。
-
y=sinθ+1とy=sin(θ+π/4)
-
1/tan^3(x)の積分 どちらが正し...
-
sinωTをTで積分。
-
数学 sin1/2は何を表しているの...
-
lim【(x,y)→(0,0)】sin(xy)/x^2...
-
三角関数 sin大小比較問題
-
sinθ-sinθcosθの最大値を求めた...
-
数2の問題です θ=7/6π のsinθ...
-
ラングレー問題(角度の問題の...
-
底辺と角度から、高さを求める。
-
極限の問題
-
積分について教えてください
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sin²θとsinθ²と(sinθ)²って全部...
-
周期の最小値?
-
底辺と角度から、高さを求める。
-
2つの円の一部が重なった図
-
sinωTをTで積分。
-
eの積分について
-
積分 ∫√(4-x^2)dxについて
-
sinx=cosxの解き方。
-
e^(-x)*|sinx| これを積分する...
-
sinのマイナス1乗の計算方法を...
-
数学 sin1/2は何を表しているの...
-
f(x)=(px+q)sin(2x)/(ax+b) の問題
-
大学受験時のsin,log,lim,xの表記
-
三角関数の答えが1以上になるの...
-
(sinx)^6の積分を教えてください
-
『楕円球体の三重積分を極座標...
-
広義積分
-
これsin75°を求めよで答え √6+...
-
sin2tの積分の仕方わかる人いま...
-
1/tan^3(x)の積分 どちらが正し...
おすすめ情報