为什么这里不能调用float类型的对象?

2024-06-08 03:57:49 发布

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

我正在尝试用Python制作泰勒级数,但我不知道如何删除此错误:

x=Symbol("x")

def f(x):
    return ((math.e)**x)*sin(x)

y=f(x)

print(y.diff(x))

def Taylor(f,x,m,a):
    y=f(x)
    y2=f
    yargliige=0
    viga = 10**(-m)
    n=0
    while True:
        if n>10:
           return yargliige,n
        else:
           yargliige+=(y(x)*(x-a)**n)/(factorial(n))
           y=y.diff(x)
           if abs(yargliige(x)-f(x))<viga:
              return yargliige,n
        n+=1

print(Taylor(f,-0.3,3,-1))

我收到的错误消息:

Traceback (most recent call last):
  File "C:\Users\arman\Desktop\Numbrilised meetodid\praktikum10.py", line 31, in <module>
    print(Taylor(f,-0.3,3,-1))
  File "C:\Users\arman\Desktop\Numbrilised meetodid\praktikum10.py", line 25, in Taylor
    yargliige+=(y(x)*(x-a)**n)/(factorial(n))
TypeError: 'Float' object is not callable

原来的函数似乎不接受float,这似乎很可笑


Tags: returnifdef错误diffusersfileprint
2条回答

您已经调用了y = f(x),它存储从函数f返回的float。 您不能执行y(),因为y不可调用。 将y = f(x)更改为y = f,它将解决您的用例

我看到您试图将yargliige作为函数yargliige(x)调用,这是不适用的,因为它是一个变量而不是函数

相关问题 更多 >

    热门问题