Está en la página 1de 8

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Universidad del Perú - DECANA DE AMÉRICA

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

ASIGNATURA : MÉTODOS NUMÉRICOS

DOCENTE : MARIA NATIVIDAD ZEGARRA GARAY

ALUMNO : DELGADO CÁMAN JHOSEP ALEXANDER

LIMA − PERÚ
Evaluación continua: Interpolación de Lagrange
Para la siguiente nube de puntos:
xdato = [0 0.6 1 1.6 2 2.5 ]
ydato = [1 0.9359 0.5403 - 0.83559 - 0.6536 0.9994]

A. Halle analíticamente (al detalle), el polinomio interpolante de


Lagrange, puede dejarlo sin reducir (indicado).
B. Use polyval para interpolar los valores: x=1.3 y 2.2.
C. Use el algoritmo de interpolación de Lagrange dado en las
páginas 25, 26 y 27 del PPT dado en clase, para verificar la
Interpolación de los valores x=1.4 y 2.3, hecho en el ítem (b).
D. Las coordenadas (xdato, ydato) corresponden a la función
cos(x^2). Grafique el polinomio interpolante de Lagrange, la
función exacta cos(x^2) en el intervalo [0, 2.5], las coordenadas dato
y los puntos interpolados en x=1.4 y 2.3, en una misma ventana. Use
títulos, textos, leyenda, ejes, color y marcas.

[0 0.6 1 1.6 2 2.5]


[1 0.9359 0.5403 -0.83559 -0.6536 0.9994]
SOLUCIÓN:
a)
b)
-INTERPOLANDO X=1.3 CON MATLAB

-INTERPOLANDO X=2.2 CON MATLAB

c)
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 = vpa(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
%aproximacion de un punto dado, en el polinomio que se acaba de obtener
if opc=='si'
x=input('\nIngrese el punto a aproximar: ');
y=eval(pn); %evaluar el punto en el polinomio
disp('\nLa aproximacion a f(x) es:')
disp(y)
end
capturas:

También podría gustarte