Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
#Importamos las librerías a utilizar import numpy as np import sympy as sym import matplotlib.pyplot as plt # INGRESO , Datos de prueba xcoordenadas = np.array([0, 0.05, 0.1,0.1089]) funcioni = np.array([1, 1.1052, 1.2214,0.06328]) # PROCEDIMIENTO # Polinomio de Lagrange niteraciones = len(xcoordenadas) x = sym.Symbol('x') polinomio = 0 divisorL = np.zeros(niteraciones, dtype = float) for i in range(0,niteraciones,1): # Termino de Lagrange numerador = 1 denominador = 1 for j in range(0,niteraciones,1): if (j!=i): numerador = numerador*(x-xcoordenadas[j]) denominador = denominador*(xcoordenadas[i]-xcoordenadas[j]) terminoLi = numerador/denominador polinomio = polinomio + terminoLi*funcioni[i] divisorL[i] = denominador # simplifica el polinomio polinomiosimple = polinomio.expand() # para evaluación numérica evaluacion_num = sym.lambdify(x,polinomiosimple) # Puntos para la gráfica #Creamos las muestras que son necesarias para poder evaluar muestras = 101 #Entre cada par de puntos punto_a = np.min(xcoordenadas) punto_b = np.max(xcoordenadas) punto_xi = np.linspace(punto_a,punto_b,muestras) punto_fi = evaluacion_num(punto_xi) #Imprimimos los resultados del polinomio de lagrange print(' valores de funcion(i): ',funcioni) print('divisores en L(i): ',divisorL) print() print('Polinomio de Lagrange, expresiones') print(polinomio) print() print('Polinomio de Lagrange: ') print(polinomiosimple) # Gráfica plt.plot(xcoordenadas,funcioni,'o', label = 'Puntos') plt.plot(punto_xi,punto_fi, label = 'Polinomio') plt.legend() plt.xlabel('x coordenadas') plt.ylabel('funcion(i)') plt.title('Interpolación Lagrange') plt.show()
Compartir