T_T*_*T_T 1 python wolfram-mathematica sympy
我使用Mathematica和Python计算了以下内容.
Mathematica具有以下代码
f[x_] = a*b/(a - b)^2*Exp[-r*x] (Exp[-b*x] - Exp[-a*x]) (a*Exp[-b*x] - b*Exp[-a*x])
Assuming[{a > 0, b > 0, r > 0}, Integrate[f[x], {x, 0, \[Infinity]}]]
Run Code Online (Sandbox Code Playgroud)
给出了相当不错的结果:
但是,以下Python(带SymPy)代码
from sympy import *
init_printing()
x = symbols('x')
a, b, r = symbols('a b r', positive=True)
fun = a*b/((a-b)**2) * exp(-r*x) * (exp(-b*x) - exp(-a*x)) * (a*exp(-b*x) - b*exp(-a*x))
simplify(integrate(fun, (x, 0, oo)))
Run Code Online (Sandbox Code Playgroud)
产生一个相当混乱的结果:
我在Python代码中缺少什么才能在Mathematica中获得相同的结果?或者它可能吗?
该函数cancel
可用于取消分数:
from sympy import *
init_printing()
x = symbols('x')
a, b, r = symbols('a b r', positive=True)
fun = a*b/((a-b)**2) * exp(-r*x) * (exp(-b*x) - exp(-a*x)) * (a*exp(-b*x) - b*exp(-a*x))
factor(cancel(integrate(fun, (x, 0, oo)))
Run Code Online (Sandbox Code Playgroud)
给
a?b?(2?a + 2?b + r)
???????????????????????????????
(2?a + r)?(2?b + r)?(a + b + r)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57 次 |
最近记录: |