Interpolación de Lagrange
Enviado por Natalia Son Vargas • 29 de Mayo de 2017 • Informe • 4.503 Palabras (19 Páginas) • 340 Visitas
Interpolación de Lagrange
Hallar el polinomio interpolador para los siguientes ejercicios y aproxime en el punto dado, con el fin de observar el comportamiento de las x en el eje y. Para la solución de estos ejercicios solo es necesario conocer los valores que toman x en y, donde el algoritmo encontrara el polinomio interpolador y pedirá si desea interpolar un valor en x.
- x = [1, 4, 6] y = [1.5709, 1.5727, 1.5751] evaluar en el punto x = 3.6
- x = [4, 5, 6, 8] y = [-10.7568, -10.9589, -10.2794, -9.0106] evaluar en el punto x=12
- x = [1, 3, 4, 7] y = [2, 7, 9, 15] evaluar en el punto x = 6
- x = [2,4, 7, 9, 12, 15] y = [4,6, 9, 12, 11, 3] evaluar en el punto x = 5
- x = [-4,-1, 0, 2, 5, 7, 9] y = [-3, 0, 4, 8, 14,-5, 4] punto x = -3
Para solucionar los ejercicios debemos utilizar el siguiente código:
% INTERPOLACION "POLINOMIO DE LAGRAGE"
clc %permite borrar el area de trabajo
clear %permite borrar las variables almacenadas
format long %permite utilizar la maxima capacidad de la maquina
fprintf('INTERPOLACION "POLINIMIO DE LAGRAGE"\n\n\n');
%fprintf me permite ingresar comentarios de manera textual que pueden
%orientar al usuario en el uso del programa
xi=input('Ingrese los puntos pertenecientes a las x: ');
yi=input('Ingrese los puntos pertenecientes a las y: ');
%input es un comando de solicitud de entrada de datos del usuario.
n=length(xi);
x=sym('x'); %esta funcion nos permite dejar la variable 'x' como simbólica
% y asi poder trabajar con ella, sin tener que asignarle un valor.
for j=1:n
producto=1;
for i=1:j-1
producto=producto*(x-xi(i)); %calculo del producto 1 superior de L
end
producto2=1;
for i=j+1:n
producto2=producto2*(x-xi(i)); %calculo del producto 2 superior de L
end
producto3=1;
for i=1:j-1
producto3=producto3*(xi(j)-xi(i)); %calculo del producto 3 inferior de L
end
producto4=1;
for i=j+1:n
producto4=producto4*(xi(j)-xi(i)); %calculo del producto 4 inferior de L
end
L(j)=(producto*producto2)/(producto3*producto4); %cálculos de las L para
fprintf('\n L%d:\n',j-1) %poder hallar el polinomio
disp(L(j)) %la función dispo nos permite visualizar variables o texto
% en el workspace
end
pn=0;
for j=1:n
pn=pn+L(j)*yi(j); %calculo del polinomio interpolante
end
fprintf('\n POLINOMIO INTERPOLANTE: \n')
%disp(pn) % esta ejecucion la podemos utilizar cuando no necesitamos
%simplicar la expresion
pn = simplify(pn); %este comando nos permite simplificar toda la expresion
disp(pn)
opc=input('\nDesea aproximar un valor (si/no): ','s');
%este comando nos permite saber si el usuario quiere obtener una
...