Python 3.x 属性错误:模块';sympy和#x27;没有属性';polys';

Python 3.x 属性错误:模块';sympy和#x27;没有属性';polys';,python-3.x,sympy,Python 3.x,Sympy,我在使用Symphy时遇到一些问题,以下是我的代码: from sympy import integrate as inter import sympy as sp from sympy import symbols def f(x): f1 = (sp.exp(-x ** 2)) / (1 + x ** 2) f2 = (2 * (sp.cos(x)) ** 2) / (1 + (x - 4) ** 2) f = f1 + f2 return(f) def

我在使用Symphy时遇到一些问题,以下是我的代码:

from sympy import integrate as inter
import sympy as sp
from sympy import symbols 

def f(x):
    f1 = (sp.exp(-x ** 2)) / (1 + x ** 2)
    f2 = (2 * (sp.cos(x)) ** 2) / (1 + (x - 4) ** 2)
    f = f1 + f2
    return(f)

def integrate_f_from0(b):
    x = symbols('x')
    a = inter(f(x), (x, 0, b))
    return(a)
运行
integrate\u f\u from0
函数时出现的错误是:

AttributeError: module 'sympy' has no attribute 'polys'

导致此错误的原因是什么?

在SymPy 1.1.1中,您的代码按预期工作:
integrate\u f\u from0(3)
返回

Integral((2*x**2*exp(x**2)*cos(x)**2 + x**2 - 8*x + 2*exp(x**2)*cos(x)**2 + 17)*exp(-x**2)/((x**2 + 1)*(x**2 - 8*x + 17)), (x, 0, 3))
这意味着,Symphy无法找到该积分的符号表达式,因此它返回未赋值的积分(尽管在搜索反导数的过程中进行了转换)

快速检查确认在基本函数方面没有反导数

建议:

  • 如果你有两个复杂函数的和,试着一次积分一个项。在这种情况下,它没有帮助,但一般来说,您至少会知道表达式的哪一部分没有基本的反导数

  • 要在数值上找到积分,请使用
    N(积分(f(x)、(x,0,3))
    (返回1.24063…),当然,对于数值积分,更可能使用SciPy


  • 您还没有指出您使用的
    b
    的值。由于您的代码被剥离到了最基本的部分,我无法让
    integrate
    在几个时间间隔内完成它的工作。