# 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()
To embed this project on your website, copy the following code and paste it into your website's HTML: