'float' object is not callable, что делать?
import numpy as np
from functools import reduce
import operator
def f(x):
return abs(x)
xi = []
def knotseq(n):
for i in range (0, n+1):
x = -1 + 2*i/n
xi.append(x)
return xi
xi2 = []
def knotsch(n):
for i in range(0, n+1):
x = np.cos((2*i+1)*(np.pi)/(2*n+2))
xi2.append(x)
return xi2
w = []
def l(solmed, n, i, x):
for j in solmed:
wi = x - j
w.append(wi)
def l(solmed, n, i, x):
k = len(solmed)
p = [(x - solmed[m])/(solmed[i] - solmed[m]) for m in range(k) if m != i]
return reduce(operator.mul, p)
def lagr(solmed, n, x):
y1 = []
for l in solmed:
yi = f(l)
y1.append(yi)
k = len(solmed)
p = 0
for i in range(k):
b = l(solmed, n, i, x)
p = b * y1[i]
return p
print(lagr(knotseq(7), 7, 0.8571428571428571))
В этой строчке почему-то ошибка. b = l(solmed, n, i, x).
Если просто попробовать эту функцию l(knotseq(7), 7, 3, 0.8571428571428571)), то всё работает, а если его использовать в последней функции то не работает.