# Importamos las bibliotecas necesarias
import numpy as np
import matplotlib.pyplot as plt

# Nalleli Iridian Avila Garcia (1941603)
# Fisica Computacional (2:00-3:00 pm)
# Tarea #04. Metodo de interpolacion de Lagrange
# Este programa es capaz de hacer interpolacion de Lagrange a partir de que se le dieron una cantidad de puntos.

# Definimos la función de interpolación de Lagrange
def lagrange_interpolation(x, y, x_new):
    # Obtenemos el número de puntos conocidos
    n = len(x)
    # Inicializamos el valor interpolado de y
    y_new = 0
    # Para cada punto conocido
    for i in range(n):
        # Inicializamos el producto de los términos de Lagrange
        p = 1
        # Para cada punto conocido, excepto el i-ésimo
        for j in range(n):
            if i != j:
                # Calculamos el término de Lagrange y lo multiplicamos al producto
                p *= (x_new - x[j]) / (x[i] - x[j])
        # Sumamos el producto de los términos de Lagrange y el valor conocido de y al valor interpolado de y
        y_new += y[i] * p
    # Devolvemos el valor interpolado de y
    return y_new

# Definimos los valores conocidos de x e y
x = np.array([0, 11, 2, 300])
y = np.array([1, 3, 7, 9])

# Generamos un arreglo con los valores de x para los que queremos calcular los valores interpolados de y
x_new = np.linspace(np.min(x), np.max(x), 100)
# Calculamos los valores interpolados de y para los valores de x en x_new
y_new = lagrange_interpolation(x, y, x_new)

# Creamos una gráfica con los valores conocidos y los valores interpolados
plt.plot(x, y, 'o', label='Datos')
plt.plot(x_new, y_new, label='Interpolación de Lagrange')
plt.legend()
plt.show()

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: