Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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_Symbolic Math_Symbolic Computation - Fatal编程技术网

Python 对于高阶三角被积函数,是否有一种解决办法来避免“辛悬挂”?

Python 对于高阶三角被积函数,是否有一种解决办法来避免“辛悬挂”?,python,sympy,symbolic-math,symbolic-computation,Python,Sympy,Symbolic Math,Symbolic Computation,我在SymPy 0.7.3中尝试了以下积分: import sympy from sympy import cos, sin, pi sympy.var('x, L') sympy.var('i, k', integer=True) integrand = cos(pi*i*x/L)**2*cos(pi*k*x/L)**2*sin(pi*i*x/L)*sin(pi*k*x/L) print(sympy.integrate(integrand, (x, 0, L), conds='none')

我在SymPy 0.7.3中尝试了以下积分:

import sympy
from sympy import cos, sin, pi
sympy.var('x, L')
sympy.var('i, k', integer=True)

integrand = cos(pi*i*x/L)**2*cos(pi*k*x/L)**2*sin(pi*i*x/L)*sin(pi*k*x/L)

print(sympy.integrate(integrand, (x, 0, L), conds='none'))
我已尝试在声明
I,k
时不使用
conds
参数,也不使用
integer=True
,但未成功

有没有其他解决办法来解决这个积分问题

此积分的解为
0

注: 如果有人感兴趣,SymPy会挂起其他类似的被积函数。
我注意到,当沿着积分进行的简化导致
0
项时,Symphy有一种挂起的趋势,因此问题可能在于沿着积分应用的简化算法。

不幸的是,目前Symphy处理三角积分的能力并不是很强。可能有一些表单会比其他表单处理得更好(您可以使用trigsimp’ping输入来查看是否有帮助)

如果您不介意处理输出,可以用复指数重写被积函数。SymPy在整合这些方面做得更好。使用
.rewrite(exp)
。不过,您必须在最后使用
.rewrite(sin)
simplify
,才能在trig函数方面恢复它。不幸的是,这对这个特殊的积分并没有真正的帮助:(


更好的三角积分即将到来。需要完成来自的工作,并实施更多的算法。

此外,如果可以仅使用一种类型的三角项重写积分,这可能会有所帮助(这里有两种,一种是
i
,另一种是
k
)。