Source code for numerical_methods.interpolation.lagrange_interpolation

[docs] def lagrange_interpolation(n: int, x: float, points: list[list[float]]) -> None: """ Evaluate the Lagrange interpolating polynomial at a given point. :param n: Number of data points. :type n: int :param x: The value at which to evaluate the polynomial. :type x: float :param points: List of [xi, yi] data points. :type points: list[list[float]] :Example: >>> points = [[1, 2], [2, 3], [4, 7]] >>> lagrange_interpolation(3, 2.5, points) """ for i in range(n): if x == points[i][0]: p = points[i][1] print(f"The value of the Lagrange polynomial at x = {x} is {p}") return p = 0 for i in range(n): d = 1 for j in range(n): if i != j: d *= (points[i][0] - points[j][0]) q = 1 for j in range(n): if i != j: q *= (x - points[j][0]) p += points[i][1] * q / d print(f"l{i} = {q / d}") print(f"The value of the Lagrange polynomial at x = {x} is {p}")