【问题标题】:Trouble using Sympy to integrate使用 Sympy 集成时遇到问题
【发布时间】:2016-02-27 08:46:32
【问题描述】:

所以我一直使用 Sympy 作为在 python 中集成的工具。通常我没有问题,但这次它没有给我一个非常有用的答案。

from sympy import *
psi, x, a = symbols('psi, x, a') #Where a is a real constant 
def psi(x):
    return 1./(x**2 + a**2)
I = integrate(psi(x)**2 ,(x,-oo,oo))  #No complex conjugate 
print I 

a 应该是一个实常数,解应该等于 1,它是一个波函数,我需要找到 a。任何可以帮助我找到更好的方法来整合它的人将不胜感激。

这种集成的答案应该是: 0.5*pi* (1./a**2)**1.5

【问题讨论】:

  • 这是一个正确的答案0.5*pi/a**3,和你得到的0.5*pi* (1./a**2)**1.5一样
  • 我得到的答案是:
  • 分段((0.5*pi/a3, Or(Abs(periodic_argument(polar_lift(a)**(-2), oo)) 2 + x**2)**2, (x , -oo, oo)), True))
  • sympy 给你的解决方案是正确的。在一般情况下,a 也可以等于 0,在这种情况下,被积函数在 x == 0 处有一个极点,必须使用特殊函数和解析延拓来处理。

标签: python math integration physics sympy


【解决方案1】:

您可以根据您的变量使用假设(positive=True)来简化。这是示例。

from sympy import *
psi, x, a = symbols('psi, x, a',positive=True) #Where a is a real constant 
def psi(x):
    return 1./(x**2 + a**2)
I = integrate(psi(x)**2 ,(x,-oo,oo))  #No complex conjugate 
print I 

答案是0.5*pi/a**3,这是正确的答案。

【讨论】:

  • @AlwaysStuck 我非常喜欢 python,但我的大多数符号计算仍然需要依赖 mathematica。希望有一天simpy 可以接管。
猜你喜欢
  • 1970-01-01
  • 2017-08-28
  • 2017-08-12
  • 2017-04-09
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多