Sympy中确定z = 均匀分布(0,1)* 均匀分布(1,2)的密度时的TypeError

2024-06-16 10:47:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究一个两个均匀分布,想画出z = U[0, 1] * U[1, 2]的概率密度函数。然而,当我试图绘制混合物的密度函数u1 * u2时,我得到了一个类型错误。你知道吗

from sympy import symbols
from sympy.stats import Uniform, density
from sympy.plotting import plot

u1 = Uniform("u1", 0, 1)
u2 = Uniform("u2", 1, 2)
u3 = u1 * u2
x = symbols('x')

p1 = plot(density(u1)(x), (x, 0, 2), line_color='C0', show=False)
p2 = plot(density(u1)(x), (x, 0, 2), line_color='C1', show=False)
p1.extend(p2)
p1.show()  # works as expected

尝试添加第三个绘图时失败:

p3 = plot(density(u3)(x), (x, 0, 2), line_color='C2', show=False)

经常尝试这个会让我TypeError cannot determine truth value of Relational

我也用density(u3, evaluate=False)试过了,我在某处找到了一个建议,但后来我得到了TypeError: can't convert expression to float。你知道吗

p3 = plot(density(u3, evaluate=False)(x), (x, 0, 2), line_color='C2', show=False)

这是绘制密度函数的正确方法吗?你知道吗

如果是,我做错了什么?你知道吗

如果不是的话,我该怎么画呢?你知道吗


Tags: fromimportfalseplotshowline绘制uniform