Загрузка данных


import math

p = eval(input("Введите степень p, например 11/2: "))
x_nodes = [float(v) for v in input("Введите узлы x_i через запятую: ").split(",")]
a = float(input("Введите точку a: "))

f = lambda x: math.log(x) ** p
y_nodes = [f(xi) for xi in x_nodes]

def L(x):
    s = 0
    for i in range(len(x_nodes)):
        l = 1
        for j in range(len(x_nodes)):
            if i != j:
                l *= (x - x_nodes[j]) / (x_nodes[i] - x_nodes[j])
        s += y_nodes[i] * l
    return s

L_a = L(a)
f_a = f(a)

print("Значение полинома Лагранжа L(a) =", L_a)
print("Точное значение f(a)            =", f_a)
print("Абсолютная погрешность          =", abs(f_a - L_a))