[問題] 常態分布在數值計算上的應用
在下不是學統計出身,最近有個問題卡關很久TAT,想請教各位
是不是我數學觀念有問題
我的目標是用高斯分布G(0,d) = exp(-0.5*x^2/d^2)/Ng, Ng = sqrt(2*pi)*d
在電腦上計算一個積分 int{ f(x)G(0,d) },從負無限大積到正無限大
但是在數值上我只能做出一堆遵循G(0,d)的隨機變數
就把這個積分改成
Sum{ f(x)G(0,d) }/Sum{ G(0,d) }
想說這樣就可以normalize我的答案,可是等我做了測試以後,發現結果很奇怪
在數學上,如果把f(x)定為x^2,就會是很常見的高斯積分
答案會是G的變異數(variance),int{ x^2*G(0,d) }=d^2
我在程式裡用ziggurat這個方法跑出一堆遵循G(0,1)的隨機變數(最多到10^7)
想說Sum{ x^2*G(0,d) }/Sum{ G(0,d) }的答案應該會是1^2
結果答案是0.5
然後做x^4
Sum{ x^4*G(0,d) }/Sum{ G(0,d) } = 0.75
我有測試過sample variance,算那堆變數的Sum_i{ x^2_i }/N-1
答案非常接近1,精確度很高
所以我在想是不是從int --> sum這邊的觀念有問題
想請教各位我這樣處理有沒有問題,如果沒有就要回頭再好好檢查我的程式...
謝謝
ps.也發現了一個巧合
如果把x放大為sqrt(2)倍,G不變,Sum的答案就會跟int一樣
--
まだ始まったばかりです!いくらでもやり直せます!
よろしいですか。よろしいですか?
例え、例えですね、明日死ぬとしても、やり直しちゃいけないって、
誰が決めたんですか?誰が決めたんですか?
まだまだこれからです。 (古畑任三郎)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 74.110.53.160
※ 編輯: hereafter 來自: 74.110.53.160 (03/23 07:34)
→
03/27 21:44, , 1F
03/27 21:44, 1F
→
03/27 21:45, , 2F
03/27 21:45, 2F
→
03/27 21:46, , 3F
03/27 21:46, 3F