为计算连续型随机向量
(
X
,
Y
)
∈
D
(X, Y)\in D
(X,Y)∈D的概率
P
(
(
X
,
Y
)
∈
D
)
P((X, Y)\in D)
P((X,Y)∈D)要用到2-重积分:
∬
D
f
(
x
,
y
)
d
x
d
y
\iint\limits_{D}f(x, y)dxdy
D∬f(x,y)dxdy,其中
f
(
x
,
y
)
f(x, y)
f(x,y)为
(
X
,
Y
)
(X, Y)
(X,Y)的联合密度函数。若
D
D
D可表示为
D
=
{
(
x
,
y
)
∣
a
≤
x
≤
b
,
g
1
(
x
)
≤
y
≤
g
2
(
x
)
}
D=\{(x, y)|a\leq x\leq b, g_1(x)\leq y\leq g_2(x)\}
D={(x,y)∣a≤x≤b,g1(x)≤y≤g2(x)}
scipy提供的强大的积分计算模块integrate中的dblquad函数能快速地进行2次积分
∫
a
b
(
∫
g
1
(
x
)
g
2
(
x
)
f
(
x
,
y
)
d
y
)
d
x
\int_{a}^{b}\left(\int_{g_1(x)}^{g_2(x)}f(x, y)dy\right)dx
∫ab(∫g1(x)g2(x)f(x,y)dy)dx的计算。该函数的调用接口如下
dblquad(f, a, b, g1, g2)
\text{dblquad(f, a, b, g1, g2)}
dblquad(f, a, b, g1, g2)
其中,参数f表示被积函数
f
(
x
,
y
)
f(x, y)
f(x,y)。参数a,b是变量
x
x
x的积分下限
a
a
a和上限
b
b
b,这是2个常数参数。参数g1,g2表示变量
y
y
y的积分下限
g
1
(
x
)
g_1(x)
g1(x)和上限
g
2
(
x
)
g_2(x)
g2(x)。g1和g2可同时为常量,也可以同时为函数。
例1 设连续型2-维随机向量
(
X
,
Y
)
(X, Y)
(X,Y)的密度函数为
f
(
x
,
y
)
=
{
3
x
0
<
x
<
1
,
0
<
y
<
x
0
其他
{f(x,y)=}\begin{cases} 3x & 0<x<1, 0<y<x\\ 0 & \text{其他} \end{cases}
f(x,y)={3x00<x<1,0<y<x其他
计算概率
P
(
X
≤
3
/
4
)
P(X\leq3/4)
P(X≤3/4)。
解:考虑平面上表示事件
X
≥
3
/
4
X\geq3/4
X≥3/4的区域
D
=
{
(
x
,
y
)
∣
x
≥
3
/
4
}
=
{
(
x
,
y
)
∣
3
/
4
≤
x
<
+
∞
,
−
∞
<
y
<
+
∞
}
D=\{(x, y)|x\geq3/4\}=\{(x,y)|3/4\leq x<+\infty, -\infty<y<+\infty\}
D={(x,y)∣x≥3/4}={(x,y)∣3/4≤x<+∞,−∞<y<+∞}
如下图中直线
x
=
3
/
4
x=3/4
x=3/4右侧部分。
而联合密度函数
f
(
x
,
y
)
f(x,y)
f(x,y)非零区域为图中由
x
=
1
x=1
x=1,
y
=
0
y=0
y=0和
y
=
x
y=x
y=x围成的三角形部分。两者的交集为图中深色区域,即
3
/
4
<
x
<
1
,
0
<
y
<
x
3/4<x<1, 0<y<x
3/4<x<1,0<y<x。于是
P
(
X
≥
3
/
4
)
=
∬
D
f
(
x
,
y
)
d
x
d
y
=
∫
3
/
4
∞
∫
−
∞
+
∞
f
(
x
,
y
)
d
x
d
y
=
∫
3
/
4
1
∫
0
x
3
x
d
x
d
y
=
3
∫
3
/
4
1
x
(
∫
0
x
d
y
)
d
x
=
3
∫
3
/
4
1
x
2
d
x
=
1
−
(
3
4
)
3
=
37
64
.
P(X\geq3/4)=\iint\limits_{D}f(x, y)dxdy=\int_{3/4}^{\infty}\int_{-\infty}^{+\infty}f(x, y)dxdy=\int_{3/4}^{1}\int_{0}^{x}3xdxdy\\ =3\int_{3/4}^{1}x\left(\int_{0}^{x}dy\right)dx=3\int_{3/4}^{1}x^2dx=1-\left(\frac{3}{4}\right)^3=\frac{37}{64}.
P(X≥3/4)=D∬f(x,y)dxdy=∫3/4∞∫−∞+∞f(x,y)dxdy=∫3/41∫0x3xdxdy=3∫3/41x(∫0xdy)dx=3∫3/41x2dx=1−(43)3=6437.
下列代码验算本例计算结果。
from scipy.integrate import dblquad #导入dblquad
f=lambda y, x: 3*x #定义被积函数
g1=lambda x: 0 #定义y的积分下限
g2=lambda x: x #定义y的积分上限
p, _=dblquad(f, 3/4, 1, g1, g2) #计算P(X>=3/4)
print('P(X>=3/4)=%.4f'%p)
程序中的第2行用lambda运算符定义被积函数 f ( x , y ) f(x,y) f(x,y)。注意,两个自变量的书写顺序须与积分的顺序保持一致:先y后x。第3、4行分别定义y的下限g1和上限g2,由于上限是函数x,故下限即使是0也要形式上定义为函数。第5行调用dblquad计算 P ( X ≥ 3 / 4 ) = ∫ 3 / 4 1 ( ∫ 0 x 3 x d y ) d x P(X\geq3/4)=\int_{3/4}^{1}\left(\int_{0}^{x}3xdy\right)dx P(X≥3/4)=∫3/41(∫0x3xdy)dx,结果存于p。运行程序,输出:
P(X>=3/4)=0.5781
恰为
P
(
X
≥
3
/
4
)
=
37
64
P(X\geq3/4)=\frac{37}{64}
P(X≥3/4)=6437的精确到千分位的近似值。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》