5

在 SymPy 中,是否可以对不定积分应用限制并对其进行评估?

import sympy
from sympy.abc import theta

y = sympy.sin(theta)

Y_indef = sympy.Integral(y)
Y_def = sympy.Integral(y, (theta, 0, sympy.pi / 2))

Y_def.evalf()产生一个数字。

我正在寻找类似Y_indef.evalf((theta, 0, sympy.pi/2))得到相同答案的东西。

4

1 回答 1

7

我不知道直接的方法,但是您可以从中提取信息Y_indef以创建定积分:

>>> indef = Integral(x)
>>> to_be_integrated, (free_var,) = indef.args
>>> definite = Integral(to_be_integrated, (free_var, 1, 2))

.args是一个通用属性,包含构造大多数 SymPy 对象所需的任何内容。

编辑:解决对问题的评论。

  1. SymPy 可能会成功评估定积分,但同时无法解决它们的不定版本。这是由于存在要应用于定积分的附加算法。

  2. 定积分和不定积分都是同一类的实例。唯一的区别是它们包含在.args. Integral鉴于 SymPy 主要用作表示它无法求解积分的标志(即当所有已实现的算法都失败时integrate函数返回),因此尚未感觉到对不同类的需求。Integral

于 2013-02-07T22:33:50.610 回答