'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)), то всё работает, а если его использовать в последней функции то не работает.


Ответы (0 шт):