python – 在sympy中进行符号集成的快速方法是什么?

我正在做一个涉及大量符号集成的项目.

这些函数类似于erlang概率分布函数.

这是一个简单的任务示例.

https://s18.postimg.org/gd7t4bv95/gif_latex.gif

以下是上述任务的代码:

import sympy as sym
t=sym.Symbol('t')
t1=sym.Symbol('t1')
t2=sym.Symbol('t2')

###integration for t2
expr=( 1-sym.exp(-(t-t2)) )*( 1-sym.exp(-(t-t2)) )*sym.exp(-t2)
expr=sym.integrate(expr,(t2,0,t))

###substitution and integration for t1
expr=expr.subs(t,t-t1) * (1-sym.exp(-(t-t1)))*sym.exp(-t1)
expr=sym.integrate(expr,(t1,0,t))

这是一个有点复杂的结果:

https://s11.postimg.org/x9tw8kw8j/untitle.png

因此,为了在sympy上实现,我大多数时候都使用integrate()和subs().

但是,速度真的很慢.当我有5个变量时(例如,从t_1到t_5),我需要稍微等一下.但是当我有10个变量时,我无法完成计算.

代码非常复杂,但我确信瓶颈是集成.毕竟,从样本结果中,可以想象任务的要求有多高.

我有什么好的方法来促进同情的整合?特别是对于指数族等函数

谢谢

解决方法:

集成速度是SymPy中的一个错误.您可以通过调用expand(expr)并集成它来解决它.

上一篇:python – 多项式元素矩阵


下一篇:python – 假设正数时Sympy可能不一致