Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不求值的辛积分_Python_Sympy - Fatal编程技术网

Python 不求值的辛积分

Python 不求值的辛积分,python,sympy,Python,Sympy,我不能用辛解这个不定积分。我检查了一下,结果很明显是一致的 import sympy as sp a, b, C = sp.symbols("a, b, C", real=True) E = sp.symbols("E", real=True, positive=True) chi = C * sp.exp(-a * E) * sp.sinh(sp.sqrt(b * E)) sp.integrate(chi, E) 我试图用指数函数重写表达式,但没有成功: sp.integrate(chi.r

我不能用辛解这个不定积分。我检查了一下,结果很明显是一致的

import sympy as sp
a, b, C = sp.symbols("a, b, C", real=True)
E = sp.symbols("E", real=True, positive=True)
chi = C * sp.exp(-a * E) * sp.sinh(sp.sqrt(b * E))
sp.integrate(chi, E)
我试图用指数函数重写表达式,但没有成功:

sp.integrate(chi.rewrite(sp.exp).expand().powsimp(), E)
我还尝试指定不同的算法,即meijerg=True,而不是risch=True。。。没用


有没有可能用Sympy来解决这个问题?什么可能导致这种行为?

如果
integrate
返回一个未计算的积分,这意味着没有任何算法知道如何计算该积分。将各种选项设置为True没有任何作用,因为默认情况下,它们都会被尝试(只有在您想尝试特定算法时,它们才会出现)


如果您将双曲正弦重写为指数(
rewrite(exp)
),执行替换
sqrt(E)=x
(SymPy可以使用
Integral.transform(sqrt(E),x)
)为您完成此操作,您可能会得到SymPy可以积分的东西,然后完成指数中的平方。

感谢@asmurer建议使用方法
transform()
。我试图编辑他的答案,以包括解决方案的代码,不幸的是,它被拒绝了

对守则:

# added positive=True, necessary to solve this integral
a = sp.symbols("a", real=True, positive=True)
b, C = sp.symbols("b, C", real=True)
E = sp.symbols("E", real=True, positive=True)
chi = C * sp.exp(-a * E) * sp.sinh(sp.sqrt(b * E))
f = chi.rewrite(sp.exp).expand().powsimp()
x = sp.symbols("x", real=True, positive=True)
r = f.func(*[sp.Integral(a, E).transform(sp.sqrt(E), x).doit() for a in f.args])
r = r.subs(x, sp.sqrt(E))
请注意,我可以使用
sp.Integral(f,E).transform(sp.sqrt(E),x).doit()
,但至少需要几分钟的计算时间


通过使用积分的线性特性,我使用命令
r=f.func(…)
将积分应用于表达式的不同项。计算时间减少到几秒钟

没有一个计算机代数系统能解所有可以表示为闭式的不定积分。有时,社科院所做的隐含假设也有所不同。在任何情况下,Symphy都不能解Wolfram Alpha可以解的积分,或者反之亦然,这并不意外。