[英]Why is a float type object not callable here?
我正在嘗試在 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
好像原來的function不接受float,看起來很可笑。
您已經調用了y = f(x)
來存儲從 function f
返回的float
。 你不能做y()
因為y
是不可調用的。 將y = f(x)
更改為y = f
,它應該可以解決您的用例。
我看到您試圖將yargliige
稱為 function yargliige(x)
,這是不適用的,因為它是一個變量而不是 function。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.