如何在sympy中插入“评估为”栏?

时间:2018-03-26 01:23:39

标签: python math sympy

我想逐步完成各个部分,所以我想写第一个术语:u*v (evaluated between A and B)但是我不知道如何插入通常的栏来表示评估。

1 个答案:

答案 0 :(得分:0)

SymPy打印机最接近的是Subs,一种表达式替代另一种表达式的惰性形式。例如

>>> u, v = x, sin(x)
>>> pprint(Subs(u*v, x, pi) - Subs(u*v, x, 0))
- (x⋅sin(x))│    + (x⋅sin(x))│   
            │x=0             │x=π

或者,在LaTeX术语中,

>>> latex(Subs(u*v, x, pi) - Subs(u*v, x, 0))
'- \\left. x \\sin{\\left (x \\right )} \\right|_{\\substack{ x=0 }} + \\left. x \\sin{\\left (x \\right )} \\right|_{\\substack{ x=\\pi }}'

没有用于打印条形的逻辑,其中x = b在顶部,而x = a在底部,因为没有像A2这样的类但是有x的两个替换。

要实际评估(不打印)这样的事情,可以使用

>>> (u*v).subs(x, pi) - (u*v).subs(x, 0)
0

或者,对于必须采取限制的棘手的不正确积分,

>>> (u*v)._eval_interval(x, S(0), pi)
0

内部方法_eval_interval在需要时采用限制而非直接评估。