我正在尝试创建一个对象,该对象的单位间隔中的值是恒定的。 SymPy有一组built-in assumptions,具有许多有用的属性:奇/偶,正,素,复数等。但是,看来我必须自己用假设()构造它:
import sympy as sp
p = sp.symbols('p', real=True, constant=True)
x = sp.symbols('x', real=True)
with sp.assuming(sp.Q.is_true(0 < p), sp.Q.is_true(p < 1)):
display(sp.Integral(x**(-p), (x, 1, sp.oo)))
display(sp.Integral(x**(-p), (x, 1, sp.oo)).doit())
display(sp.Integral(sp.cos(x), (x, 0, sp.oo)).doit())
但是,当我评估上面的积分时,它提供了两个结果,一个用于p> 1(超出了我的假设约束),一个用于p <1的未评估积分。
嗯...好吧,现在我看到了假设()是New Assumptions包的一部分,并且两个包没有很好地集成在一起。有没有办法为诸如inner_unit_interval,big_than_n,less_than_n之类的东西编写自定义假设?