“Symbol”对象没有属性“sin”

2024-10-02 18:19:32 发布

您现在位置:Python中文网/ 问答频道 /正文

{cdi>函数的定义如下:

def integrate_boole(f,l,r,N):
N = 4 * int(N // 4)
h=((r-l)/N)
xN = np.linspace(l,r,N+1)
fN = f(xN)
return ((2*h)/45)*(7*fN[0]+32*(np.sum(fN[1:-1:2]))+12*. (np.sum(fN[2:-2:4]))+14*(np.sum(fN[4:-4]))+7*fN[-1])

我现在尝试对f(x)在0和pi之间进行积分,其中f(x)定义为:

^{pr2}$

当我将f(x)代入函数时:

integrate_boole(f(x),0,np.pi,8)

我收到以下错误消息:

-----------------------------------------------------------------------  ----
AttributeError                            Traceback (most recent call    last)
<ipython-input-23-91f1a95793b5> in <module>()
----> 1 integrate_boole(f(x),0,np.pi,8)

 <ipython-input-20-165d275ae26c> in f(x)
  1 def f(x):
----> 2     return x*np.sin(x)/(1+np.cos(x)**2)
  3 myx = np.linspace(0,np.pi,1000)
  4 plt.plot(myx,f(myx),label=r"$f(x)=\frac{x\sin{x}}{1+\cos^2{x}}$")
  5 plt.ylabel("$f(x)$")

AttributeError: 'Symbol' object has no attribute 'sin'

我最初在同一个笔记本的开头导入了以下库:

import numpy as np
import matplotlib.pyplot as plt
import sympy as sym
from ipywidgets.widgets import interact
sym.init_printing(use_latex="mathjax")
x, y, z, t = sym.symbols('x y z t')

我查过其他关于同一主题的文章,但是我不相信我的numpy和sympy库会像它们为其他人做的那样发生冲突。但他们可能是,我不知道为什么。任何帮助都将不胜感激。在


Tags: 函数import定义defasnppiplt
1条回答
网友
1楼 · 发布于 2024-10-02 18:19:32

integrate_boole的第一个参数应该是一个函数。在

  • f是一个函数
  • f(x)是函数f为输入x返回的数字。在

你需要打电话

integrate_boole(f,0,np.pi,8)

而不是

^{pr2}$

以下是完整的代码,带有正确的缩进:

^{3}$

相关问题 更多 >