【发布时间】:2018-02-08 06:43:39
【问题描述】:
我目前正在从事与布朗运动相关的项目,并尝试使用 Python(我承认这是一种非常新的语言)来模拟其中的一些。目前,我的目标是按照给定的概率密度函数生成随机数。我一直在尝试使用 scipy 库。
我当前的代码如下所示:
>>> import scipy.stats as st
>>> class my_pdf(st.rv_continuous):
def _pdf(self,x,y):
return (1/math.sqrt(4*t*D*math.pi))*(math.exp(-((x^2)/(4*D*t))))*(1/math.sqrt(4*t*D*math.pi))*(math.exp(-((y^2)/(4*D*t))))
>>> def get_brown(a,b):
D,t = a,b
return my_pdf()
>>> get_brown(1,1)
<__main__.my_pdf object at 0x000000A66400A320>
所有启动 get_brown 函数的尝试最终都会给我这些十六进制数(总是从 0x000000A66400A 开始,只有最后三位数字发生变化,无论我为 D 和 t 提供什么参数)。我不确定如何解释。我想要的只是在给定的PDF之后得到随机数;这些十六进制是什么意思?
【问题讨论】:
-
您正在打印一个对象引用。也许你想调用它的
_pdf方法?比如return my_pdf()._pdf(a,b)什么的? -
Is
y ^ 2really supposed to use a bitwise operator? 或者你的意思是y ** 2? -
你是对的,它应该是 **,我已经开始使用 my_pdf.pdf(a,b)。但是,我认为我仍然做错了。它现在给了我一个数字——对于给定的参数总是相同的——当我想要做的是使用 PDF 生成随机 (x,y) 坐标时。
标签: python scipy probability-density