在同情中进行符号整合的快捷方式是什么?

时间:2016-11-15 14:22:15

标签: 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个变量时,我无法完成计算。

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

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

由于

1 个答案:

答案 0 :(得分:3)

集成速度是SymPy中的一个错误。您可以通过调用expand(expr)并对其进行整合来解决此问题。