python - 是什么导致此错误(AttributeError : 'Mul' object has no attribute 'cos' ) in Python?

标签 python sympy integral

尝试在 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 *

因为 numpysympy 都有自己的 cos 定义。该错误告诉您 Mul 对象(即 n*x)没有余弦方法,因为解释器现在混淆了 sympynumpy 方法。改为这样做

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/

相关文章:

python - 在 IronPython 中加载模块

Python:类型错误: 'exp' 对象不可调用

matlab - 使用积分 : A and B must be floating-point scalars 时出错

python - 如何使用 Python 和 OpenCV 计算像素总和

r - R 中的积分函数

python - 小数据集上的 CNN 过度拟合

python - 在 keras 模型中对输入进行微分以用于损失

python - Azure Function App - Python 函数适用于应用程序服务计划类型消耗,但不适用于专用应用程序服务计划

sympy - 使用 Sympy 进行符号矩阵微分

sympy - 为什么 SymPy 不取代指数?