Está en la página 1de 9

Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

INFORME DE LABORATORIO 4 METODOS NÚMERICOS:


INTERPOLACIÓN
Armando Aguilera Garavito, Cristian Heriberto Tascon Muñoz
aaguilerag@academia.usbbog.edu.co chtasconm@academia.usbbog.edu.co

RESUMEN: En el presente informe de En forma compacta el L n,k (x) de Lagrange es de


laboratorio se hace el respectivo análisis y la forma ∏ (x − x𝑖 ) (x𝑘 − x𝑖 ) 𝑛 𝑖=0 𝑖≠𝑘 Otra
ejemplificación para aproximar una función a un forma de obtener un polinomio de aproximación es
polinomio ecuación, esto mediante el método de la con el polinomio de Newton
interpolación el cual consiste en, la obtención de
nuevos puntos partiendo del conocimiento de un
conjunto discreto de puntos del cual se hacen El cual es
diferentes ejercicios en el software de
programación Matlab. Pn(x) = a0 + a1(x − x0) + a2(x − x0)(x − x1)
+···+ an(x − x0)···(x − xn−1)
ABSTRACT: In this laboratory report the
respective analysis and exemplification is made to
approximate a function to a polynomial equation, this En los que los coeficientes a0…. an se
through the interpolation method which consists of obtienen por diferencias divididas que van
obtaining new points based on the knowledge of a desde f[x0] hasta f [x0, x1, ... , xn] = f [x1,
discrete set of points from which different exercises are x2, ... , xn] − f [x0, x1, ... , xn−1] /xn − x0
done in the Matlab programming software. II. OBJETIVOS
PALABRAS CLAVE: Matlab, Interpolación 2.1 Objetivo general
Polinomio de Lagrange. Comparar los distintos métodos de
aproximación de un polinomio

I. INTRODUCCIÓN 2.2 Objetivos específicos

Un polinomio es una expresión de la forma 2.2.1 Conocer y aprender a aproximar a un


polinomio, en el software de programación Matlab.
P(x)=𝑎𝑛𝑥 𝑛 + 𝑎𝑛−1𝑥 𝑛−1 + ⋯ + 𝑎1𝑥 + 𝑎0 2.2.2 Aprender a utilizar la plataforma como
medio de apoyo en los distintos problemas
por el teorema de aproximación de Weierstrass matemáticos, aritméticos y algebraicos que se
cualesquier función puede aproximarse a un tengan.
polinomio, una manera es por el llamado 2.2.3 Conocer las distintas funciones que brinda
polinomio de Lagrange el cual afirma que si x0, x1, Matlab cuyo aprendizaje puede contribuir de
... , xn son n + 1 son números reales distintos y f es manera positiva a la implementación de métodos
una función cuyos números están dados por estos numéricos para la solución de problemas de
números entonces existe un único polinomio P(x) ingeniería.
de grado n tal que
III. MARCO TEÓRICO
P(x) = f (x0)Ln,0(x) +···+ f (xn)Ln,n(x)
III.1 Matlab. Es un sistema de cómputo numérico
∑f (x𝑘 )L n,k (x) 𝑛 𝑘=0 con un lenguaje de programación propio
(lenguaje M). Este software entre sus
L n,k (x)= (x − x0)(x − x1)···(x − x𝑘−1)(x − funciones principales permite la creación de
x𝑘+1)···(x − x𝑛) (x𝑘 − x0)(x𝑘 − x1)···(x𝑘 − x𝑘−1) matrices y operación entre ellas, y además la
(x𝑘 − x𝑘+1)···(x𝑘 − x𝑛) representación de datos y funciones.

III.2 Método de Interpolación Consiste en la


obtención de nuevos puntos partiendo del

1
Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

conocimiento de un conjunto discreto de 4.1 1. Con las indicaciones dadas complete el


puntos. programa 1, de tal forma que se construya el
polinomio de Lagrange, al ingresar n puntos lo
III.3 Sintaxis. Reglas y principios utilizados en la dibuje.
combinación de caracteres de un lenguaje
Sintaxis Método Newton Raphson
específico, los softwares de programación se
basan en una sintaxis que los rige. clc %permite borrar el area de trabajo
clear %permite borrar las variables
III.4 Condicionales. Se refiere a una instrucción a almacenadas
un grupo de instrucciones que se pueden format long %permite utilizar la
ejecutar o no, según una condición dada. maxima capacidad de la maquina
[ CITATION Cod13 \l 9226 ] fprintf('INTERPOLACION "POLINIMIO DE
LAGRAGE"\n\n\n');
III.5 Iteración. Se refiere principalmente a %fprintf me permite ingresar
comentarios de manera textual que
repetición continua de un proceso lógico, es
pueden
decir reiterar un conjunto de instrucciones o %orientar al usuario en el uso del
acciones. [ CITATION Cod13 \l 9226 ] programa
xi=input('Ingrese los puntos
III.6 Ecuación no lineal. Se refiere a cuando pertenecientes a las x: ');
alguna de las incógnitas que forman parte de yi=input('Ingrese los puntos
la ecuación no son de primer grado pertenecientes a las y: ');
%input es un comando de solicitud de
III.7 Secuencial. La estructura secuencial se refiere entrada de datos del usuario.
n=length(xi);
a una serie de instrucciones que siguen una x=sym('x'); %esta funcion nos permite
secuencia o proceso lineal, es decir la salida dejar la variable 'x' como simbólica
de un proceso es la entrada de otro. % y asi poder trabajar con ella, sin
[ CITATION Uni16 \l 9226 ] tener que asignarle un valor.
for j=1:n producto=1; for i=1:j-1
III.8 Selección. La estructura de selección se producto=producto*(x-xi(i));
presente cuando hay varios posibles %calculo del producto 1 superior de L
resultados o salidas en un programa, y el end
usuario debe escoger alguno de estos. producto2=1; for i=j+1:n
[ CITATION Cod13 \l 9226 ] producto2=producto2*(x-xi(i));
%calculo del producto 2 superior de L
end
III.9 Prueba de escritorio. La prueba de escritorio producto3=1; for i=1:j-1
consiste en dar valores de entrada a las producto3=producto3*(xi(j)-xi(i));
variables y comprobar si el resultado es el %calculo del producto 3 inferior de L
esperado o acertado. end
producto4=1; for i=j+1:n
III.10 Polinomio de Lagrange. Es una producto4=producto4*(xi(j)-xi(i));
reformulación del polinomio de Newton que %calculo del producto 4 inferior de L
evita los cálculos de las diferencias divididas. end

L(j)=(producto*producto2)/(producto3*
III.11 Raíces. Se conoce como raíz de un producto4); %cálculos de las L para
polinomio o cero de una función, a todo fprintf('\n L%d:\n',j-1) %poder hallar
cualquier elemento perteneciente al dominio el polinomio
de dicha función. disp(L(j)) %la función dispo nos
permite visualizar variables o texto
% en el workspace end
pn=0;
for j=1:n
IV. ANÀLISIS DE RESULTADOS
pn=pn+L(j)*yi(j); %calculo del
polinomio interpolante

2
Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

end end end


fprintf('\n POLINOMIO INTERPOLANTE: if d(1,w)<0 sg2='-';
\n') else
sg2='+';
pn = simplify(pn); %este comando nos end
permite simplificar toda la expresion if w==1 acum=num2str(d(1,1));
disp(pn) elseif w==2
opc=input('\nDesea aproximar un valor polact=['(x' sg1 num2str(abs(x(w- 1)))
(si/no): ','s'); ')' ];
%este comando nos permite saber si el actual=[ds '*' polact]; acum=[acum sg2
usuario quiere obtener una actual]; else
%aproximacion de un punto dado, en el polact=[polact '.*' '(x' sg1
polinomio que se acaba de obtener num2str(abs(x(w-1))) ')' ];
if opc=='si' x=input('\nIngrese el actual=[ds '*' polact]; acum=[acum sg2
punto a aproximar: '); actual];
y=eval(pn); %evaluar el punto en el end end
polinomio
disp('\n La aproximacion a f(x) es:') %Presentacion de resultados
disp(y) %fprintf(' n Valores de X y Y n ');
end %disp(xa);
%disp(ya);
x1=input('El punto inicial es: ') fprintf('Polinomio interpolacion
x2=input('El punto final es: ') Newton: %s n')
% Graficamos al polinomio interpolante disp(acum)
de Lagrange SP %x=input('\n X interp = '); if
% sobre el mismo intervalos sobre la x>max(xa)|x<min(xa)
misma grafica: fprintf('t Punto fuera de rango. El
resultado puede equivocado n');
ezplot(pn,[x1 x2]) end xinterp=x;
yinterp=eval(acum);
Este código se utilizará para hallar %fprintf(' Y(%g) = %g n',x,yinterp);
el polinomio de Lagrange.
opc=input('\nDesea aproximar un valor
Segundo utilizaremos este código para (si/no): ','s');
hallar el polinomio de newton: %este comando nos permite saber si el
usuario quiere obtener una
%Ingrese los vectores flia %aproximacion de un punto dado, en el
x=input('Ingrese el vector fila x:'); polinomio que se acaba de obtener
y=input('Ingrese el vector fila y:'); if opc=='si' x=input('\nIngrese el
punto a aproximar: ');
xa=x;ya=y; y=eval(acum); %evaluar el punto en el
polinomio
%Formacion de las diferencias disp('\n La aproximacion a
divididas d=zeros(length(y)); f(x) es:') disp(y)
d(:,1)=y'; end
for k=2:length(x)
for j=1:length(x)+1-k d(j,k)=(d(j+1,k- %Grafica de los puntos
1)-d(j,k-
1))/(x(j+k-1)-x(j)); end %fprintf('\n Pulse cualquier tecla
end para ver la grafica de los puntos n');
%pause xg=linspace(min(xa),max(xa));
x=xg;yg=eval(acum);
%Formacion del polinomio for plot(xg,yg,xa,ya,'.r',xinterp,yinterp,
w=1:length(x) 'or');
ds=num2str(abs(d(1,w))); if w>1 grid
if x(w-1)<0 sg1='+';
else
sg1='-';

3
Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

2. 4.2 2. Construya el polinomio de Newton y


Lagrange de grado 3 para cada una de las tablas
mostradas.

Sintaxis y Prueba de escritorio


Polinomio de newton

Polinomio de Lagrange

4
Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

Polinomio de Newton

3. Sume los polinomios resultantes esto es


colocar los polinomios uno a continuación del
otro, estime el error para cada uno de estos
polinomios.

Sintaxis
Lagrange:

5
Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

Suma de los polinomios

6
Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

Suma de polinomios

Polinomio de Newton

Polinomio de Lagrange

4.4. Dibuje sobre papel milimétrico la figura


mostrada, construya una tabla de valores y
represéntela mediante un polinomio.

Sintaxis
%curva 1

x=linspace(0.2,1.2,1000);
y=0.2+2.5.*(x-0.2)+(-
2.91666667).*(x-
0.2).*(x-0.4)+2.6041667.*(x-
0.2).*(x-
0.4).*(x-0.8);
plot(x,y) grid on hold on
%curva 2 x=linspace(1.2,5.7,1000);
y=1.2+1.27272727.*(x-1.2)-
0.28438228.*(x- 1.2).*(x-
2.3)+0.03521762.*(x-1.2).*(x-
2.3).*(x-3.8);
plot(x,y) hold on
%curva 3 x=linspace(5.7,8.5,1000);
y=3.6+0.75000000.*(x-5.7)+(-
0.13020833).*(x-5.7).*(x-6.5)+(-
0.21019345).*(x-5.7).*(x-6.5).*(x-
8.1);
plot(x,y) hold on
%curva 4 x=linspace(7.9,8.5,1000);
y=2.8+5.*(x-7.9)+-6.666667.*(x-
7.9).*(x-
Grafica 8.1)+12.5.*(x-7.9).*(x-8.1).*(x-

7
Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

8.4); 6.6).*(x-7.5)+0.07591093.*(x-
plot(x,y) hold on 6.6).*(x-
%curva 5 x=linspace(7.9,11.9,1000); 7.5).*(x-8.5);
y=2.8-0.4782608.*(x-7.9)- plot(x,y) hold on
0.46113307.*(x- %curva 14 x=linspace(5.8,6.6,1000);
7.9).*(x-10.2)-0.01076715.*(x- y=-1.2+2.5.*(x-5.8)-1.6667.*(x-
7.9).*(x- 5.8).*(x-6)-0.6944.*(x-5.8).*(x-
10.2).*(x-11.2); 6).*(x-
plot(x,y) hold on 6.3);
%curva 6 plot(x,y) hold on
x=linspace(11.9,13.8,1000); %curva 15 x=linspace(4.8,5.8,1000);
y=-2.3-0.5.*(x-11.9)- y=-0.1-3.*(x-4.8)+3.33.*(x-
0.23076923.*(x- 4.8).*(x-5)-
11.9).*(x-12.7)-0.014652015.*(x- 2.395833.*(x-4.8).*(x-5).*(x-5.4);
11.9).*(x-12.7).*(13.2); plot(x,y) hold on
plot(x,y) hold on %curva 16 x=linspace(0.2,4.8,1000);
%curva 7 x=linspace(12,13.8,1000); y=0.2-0.727272.*(x-
y=-3.4-0.2.*(x-12)-0.12121212.*(x- 0.2)+0.28074866.*(x-
12).*(x-12.5)+0.00113921.*(x- 0.2).*(x-1.3)-0.0508833.*(x-
12).*(x- 0.2).*(x-
12.5).*(13.1); 1.3).*(x-3);
plot(x,y) hold on plot(x,y) hold on
%curva 8 x=linspace(11.4,12,1000);
y=-3.4+5.*(x-11.4)-14.1667.*(x-
11.4).*(x-
11.5)+20.8333.*(x-11.4).*(x-
11.5).*(x-
11.8);
plot(x,y) hold on
%curva 9 x=linspace(10,11.4,1000); V. CONCLUSIONES
y=-3.9+0.75.*(x-10)-0.58333.*(x-
10).*(x-
V.1 El software Matlab puede llegar a
10.4)+0.47619018.*(x-10).*(x- contribuir de manera muy importante en el
10.4).*(x- campo de la ingeniería ya que en su
11); lenguaje de programación ofrece el
plot(x,y) hold on calculo de numerosos procesos
%curva 10 x=linspace(10,10.9,1000);
y=-3.9+3.5.*(x-10)-2.5.*(x-10).*(x- matemáticos.
10.2)+0.07936508.*(x-10).*(x- V.2 En espacios de tiempo muy cortos se
10.2).*(x- pueden hacer procesos matemáticos
10.4); tediosos gracias a la eficacia del sofware.
plot(x,y) hold on
V.3 Matlab desarrolla de una manera muy
%curva 11
x=linspace(8.3,10.9,1000); efectiva y optima acciones como graficar
y=-0.2-0.333.*(x-8.3)-0.270833.*(x- funciones y hallar limites, herramientas
8.3).*(x-9.5)-0.11332418.*(x- que son muy útiles en el curso de cálculo
8.3).*(x- diferencial.
9.5).*(x-10.3);
plot(x,y) hold on
%curva 12 x=linspace(8.3,9.2,1000);
y=-0.2-2.*(x-8.3)+2.0833333.*(x- VI. REFERENCIAS
8.3).*(x-8.5)-3.69047619.*(x-
8.3).*(x- VI.1 Mathworks. (1994-2019),
8.5).*(x-8.9);
plot(x,y) hold on MATLAB: "para inteligencia artificial",
%curva 13 x=linspace(6.6,9.2,1000); Recuperado en marzo de 2019 de
y=-0.1-1.5.*(x-6.6)+0.58704453.*(x- https://la.mathworks.com/

8
Armando Aguilera Garavito, estudiante ingeniería electrónica, Universidad de San Buenaventura, Bogotá 2020

VI.2 Gramáticas. (2016), "La sintaxis",


Recuperado en marzo de 2019 de
https://www.gramaticas.net/2013/01/la-
sintaxis.html?m=1

VI.3 Unidad de apoyo para el aprendizaje.


(2019), " Cálculo diferencial: ¿Por qué y
para qué sirve?", Recuperado en marzo de
2019 de
https://programas.cuaed.unam.mx/reposito
rio/moodle/pluginfile.php/878/mod_resou
rce/content/1/contenido/index.html

VI.4 Monterey Institute. (SF), "Dominio y


Rango", Recuperado en marzo de 2019 de
https://www.montereyinstitute.org/courses
/Algebra1/COURSE_TEXT_RESOURCE
/U03_L2_T2_text_final_es.html

VI.5 ESCUELA TÉCNICA SUPERIOR DE


NÁUTICA Y MÁQUINAS NAVALES.
(SF), "Nociones preliminares de
matemáticas: límites de funciones",
Recuperado en marzo de 2019 de
http://www.ehu.eus/juancarlos.gorostizaga
/apoyo/limites.htm

También podría gustarte