我试图整合这个表达式:
import sympy as sy
def Bra_H_Ket():
a0=sy.Symbol('a0')
r=sy.Symbol('r')
psi=1/r*sy.sin(r)*sy.exp(-(a0*r))
H_Psi=-1/2*sy.diff(psi,r,r)-1/r*psi
print("H*Psi:")
print(H_Psi)
print
print("Psi*H*Psi:")
Psi_H_Psi=4*pi*psi*H_Psi*r**2
print(Psi_H_Psi)
print
Bra_H_Ket=sy.integrate(Psi_H_Psi,(r,-sy.oo,3))
print("Bra_H_Ket:")
print(Bra_H_Ket)
print
但是我收到了这个错误:
<ipython-input-4-b7c2f227f24d> in <module>()
----> 1 Bra_H_Ket()
<ipython-input-3-57b2347da6cd> in Bra_H_Ket()
15 print(Psi_H_Psi)
16
---> 17 Bra_H_Ket=sy.integrate(Psi_H_Psi, (r, -sy.oo ,3))
18
19 print("Bra_H_Ket:")
[...]
C:\Anaconda3\lib\site-packages\sympy\integrals\transforms.py in _rewrite_gamma(f, s, a, b)
668 newc = c/p
669 if not a.is_Integer:
--> 670 raise TypeError("a is not an integer")
671 for k in range(p):
672 gammas += [(newa, newc + k/p)]
TypeError: a is not an integer
同样需要花一些时间来计算一些积分(在我的例子中是象征性的),所以任何建议都可以提供帮助,因为我有很多这样的积分。