作者hereafter (Allons-y!)
看板Statistics
标题[问题] 常态分布在数值计算上的应用
时间Fri Mar 23 07:27:58 2012
在下不是学统计出身,最近有个问题卡关很久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)
1F:→ yhliu:你的乱数既然是依循 G(0,d) 产生的, Σf(x_i)/n 即是 03/27 21:44
2F:→ yhliu:在 G(0,d) 之下的 E[f(X)] 之推估值, 不需再用 G(x_i;0,d) 03/27 21:45
3F:→ yhliu:加权. 03/27 21:46