小编Bot*_*ond的帖子

我应该如何处理 sympy 以获得积分的“正常”结果?

我的练习是将一些功能与 sympy 集成。第一个积分是(我将把它添加到图像上,因为我在这里不能使用乳胶,但你也可以在代码中看到它):
在此输入图像描述

在此输入图像描述
a 是实常数。

这是我的代码:

%pylab inline
from sympy import *
init_printing()
v, a = symbols('v, a', real=True, nonzero=True)
f = sqrt(2/pi)*(v**2*exp((-v**2)/(2*a**2)))/(a**3)
print(integrate(v*f, (v, 0, oo)))
Run Code Online (Sandbox Code Playgroud)

(注意:我只使用 print 来获得这个可复制的结果)但结果真的很难看:

Piecewise((2*sqrt(2)*a/sqrt(pi), Abs(periodic_argument(polar_lift(a)**(-2), oo)) < pi/2), (Integral(sqrt(2)*v**3*exp(-v**2/(2*a**2))/(sqrt(pi)*a**3), (v, 0, oo)), True))
Run Code Online (Sandbox Code Playgroud)

但随着修改

v, a = symbols('v, a', positive=True)
Run Code Online (Sandbox Code Playgroud)

或者

v, a = symbols('v, a', negative=True)
Run Code Online (Sandbox Code Playgroud)

结果是

2*sqrt(2)*a/sqrt(pi)
Run Code Online (Sandbox Code Playgroud)

但据我所知,唯一既不为负也不为正的实数是零 - 并且应该将其与“nonzero=True”部分一起排除。

问:我可以用我的第一个代码做什么来获得“好的”结果?

sympy python-3.x

6
推荐指数
1
解决办法
1075
查看次数

标签 统计

python-3.x ×1

sympy ×1