尝试在 Python 中计算定积分时出现以下错误代码。
AttributeError Traceback (most recent call last)
<ipython-input-7-2be8718c68ec> in <module>()
7 x, n = symbols('x n')
8
----> 9 f = (cos(n*x))*(x**2-pi**2)^2
10 integrate(f,(x,-n*pi,n*pi))
11
AttributeError: 'Mul' object has no attribute 'cos'
我已经在下面复制了我的输入代码。感谢您的帮助。
from pylab import *
from sympy import *
from numpy import *
init_printing(use_unicode=False, wrap_line=False, no_global=True)
x, n = symbols('x n')
f = (cos(n*x))*(x**2-pi**2)^2
integrate(f,(x,-n*pi,n*pi))
最佳答案
你的问题是命名空间冲突,在这里
from sympy import *
from numpy import *
因为 numpy
和 sympy
都有自己的 cos
定义。该错误告诉您 Mul
对象(即 n*x
)没有余弦方法,因为解释器现在混淆了 sympy
和 numpy
方法。改为这样做
import pylab as pl
import numpy as np
import sympy as sp
x, n = sp.symbols('x n')
f = (sp.cos(n*x))*(x**2-sp.pi**2)**2
sp.integrate(f,(x,-n*sp.pi,n*sp.pi))
另请注意,我已将 ^
更改为 **
,因为 ^
是 中的
。在这里,我假设您需要来自 Not
运算符>同情sympy.core.numbers.Pi
的符号 Pi
而不是来自 numpy
的数字。如果你想要后者,那就这样做
f = (sp.cos(n*x))*(x**2-np.pi**2)**2
sp.integrate(f,(x,-n*np.pi,n*np.pi))
关于python - 是什么导致此错误(AttributeError : 'Mul' object has no attribute 'cos' ) in Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32640759/