Ошибка типа при определении плотности z = Uniform (0,1) * Uniform (1,2) в симп - PullRequest
3 голосов
/ 08 ноября 2019

Я работаю с двумя равномерными распределениями и хочу построить функцию плотности вероятности z = U[0, 1] * U[1, 2]. Тем не менее, я получаю TypeError при попытке построить функцию плотности смеси 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)

Этоправильный способ попытаться построить эту функцию плотности?

Если это так, что я делаю не так?

Если нет, как я могу вместо этого построить график?

...