我一直在测试python中的一些函数(为了确保我很好地理解函数),我感到困惑,因为我有不同的结果。Python对数正态密度与解析解决方案不同
我正在测试stats.lognorm.pdf
表格scipy
。这个函数应该在下面的代码与x,shape, scale, loc = 0
返回相同的结果:
val1 = (1/(x*shape*math.sqrt(2*math.pi)))*math.exp(-((math.log(x)-math.log(scale)**2)/(2*math.pow(shape,2))))
val2 = stats.lognorm.pdf(x, shape, 0, scale) #I expect that val1 == val2
当我和一些细微的数字看起来好像没什么尝试。
x = 1
scale = 1 #log(shape) = u => u=0
shape = 0.25
然后
val1 = 1.5957691216057308
val2 = 1.59576912161
,但是当我设置
shape = 0.8
scale = 25.16
x = 23
结果差别很大
val1 = 6.33367993244142
val2 = 0.0215455972263
这究竟是为什么?我的代码有问题吗?
哎呀,我没有适当控制我的代码,谢谢。 – Bobesh