Random 如何在积分中加入随机变量?

Random 如何在积分中加入随机变量?,random,scipy,integration,Random,Scipy,Integration,我试图计算一个包含对数正态变量的积分,但我不确定我是否以正确的方式在代码中引入了随机变量。我在下面有一些代码和我想要集成的等式的图片(mathjax不为我工作): 将numpy导入为np 输入数学 导入scipy.integrate作为spi 随机对数正态分布(0.0162,0.180) def fun1(s): 返回s**2 二(s) 返回math.exp(rand*spi.quad(fun1,0,2)[0]) def fun3(s): 返回s*fun2(s) spi.quad(fun3,0

我试图计算一个包含对数正态变量的积分,但我不确定我是否以正确的方式在代码中引入了随机变量。我在下面有一些代码和我想要集成的等式的图片(mathjax不为我工作):

将numpy导入为np
输入数学
导入scipy.integrate作为spi
随机对数正态分布(0.0162,0.180)
def fun1(s):
返回s**2
二(s)
返回math.exp(rand*spi.quad(fun1,0,2)[0])
def fun3(s):
返回s*fun2(s)
spi.quad(fun3,0,2)
您可以运行上述代码,每次运行时,您都会得到不同的答案,这表明
rand
变量正在从对数正态分布中提取。但是,有两种方法可以让我认为
rand
变量在操作中起作用

1) 随机变量被赋予对数正态分布的某个常数值,称之为a,当计算积分时,程序在整个积分过程中将a视为与任何其他常数一样。类似的类比是,若你们将2x从0积分到2,我们知道2会发生什么

2) 由于被积函数必须通过某种类型的近似算法进行多次求值,因此每次求值积分时随机变量都会发生变化。作为一个随机变量,我认为这是理想的结果


第三种选择是,我对随机变量在整体积分中如何工作的两种观点中的任何一种都是错误的。如果有人对如何合并随机变量有任何见解,或者确认我做得正确,请在下面评论

np.random.lognormal
从对数正态分布中抽取一个样本,因此(1)是正确的。你想达到什么目标?计算积分的分布?此外,您的函数与公式不匹配:rand应该是
fun2
中的指数,而不是
fun3
。我只想计算积分,其中被积函数可以被认为是随机变量和非随机变量的乘积。因此,如果你看D(s)方程,你可以想象这是一个简单得多的方程,
D(s)是被积函数rho*s
的0到2的积分。谢谢你抓住了这个错误,我只是在玩弄代码,无意中复制了错误的代码。一个随机变量的函数本身就是一个随机变量。询问
D(s)
的值没有意义。您可以要求实现代码计算的
D(s)
,也可以询问这些实现是如何分布的。第二个问题可以通过绘制许多实现来回答,以估计
D(s)
的概率密度函数或其矩(均值、方差等)。“我只想计算积分,其中被积函数可以被认为是随机变量和非随机变量的乘积。”这是一个来自
scipy.integrate.quad
不是用来集成随机过程的,如果你试图用它来集成随机过程,它可能会失败或产生一个毫无意义的答案。@Warren Weckesser所以如果随机变量
rho
在D(s)内,那么这将是一个属于随机演算的问题,因此,在计算积分时需要一种不同的方法。