Taller Interpolacion

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Escuela de Ingenierías Eléctrica, Electrónica y de Telecomunicaciones

Taller: INTERPOLACIÓN

Presentado por:
Ingrid Yurany Rangel Alvarado - 2164706.
Andres Felipe Hurtado Arzusa - 2164751
Juan Sebastián Crispín Guerra - 2161454
William Esteban Ladino Cáceres – 2162487

METODOS NUMERICOS
Profesor : NAREN ALRLEY MANTILLA RAMIREZ

UNIVERSIDAD INDUSTRIAL DE SANTANDER

2020-1
RESUMEN

La interpolación es una técnica implementada en diferentes ramas, una de ellas es la ingeniería;


donde es posible conocer un valor a partir de un conjunto de datos que modelan un
comportamiento.

En siguiente trabajo se observa dos métodos de estimación de valores:

1. Método del polinomio de Lagrange


2. Método del polinomio de Newton.

Funciones creadas para llevar a cabo el proceso:

EJERCICIOS

Tomar 'x' como la variable independiente y 'y' como dependiente.

Parte_1 Método de interpolación de Lagrange

1. Use los polinomios de interpolación Lagrange apropiados de grados uno, dos y tres para
aproximar cada uno de los siguientes:

a. f(8.4) si f(8.1)=16.94410, f(8.3)=17.56492, f(8.6)=18.50515, f(8.7)=18.82091

clear,clc
format short
x = [8.1 8.3 8.6 8.7];
y = [16.94410 17.56492 18.50515 18.82091];
xint =8.4;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Método de interpolación Lagrange para 8.40

f_int_lagranje(x,xint,y)

Aproximación = 17.8771
ans = 17.8771

b- f(−1/3) si f(−0.75)=−0.07181250, f(−0.5)=−0.02475000, f(−0.25)=0.33493750, f(0)=1.10100000

clear,clc
format short
x = [-0.75 -0.5 -0.25 0];
y = [-0.07181250 -0.02475000 0.33493750 1.10100000];
xint =-1/3;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para -0.33


f_int_lagranje(x,xint,y)

Aproximación = 0.1745
ans = 0.1745

c. f(0.25) si f(0.1)=0.62049958, f(0.2)=−0.28398668, f(0.3)=0.00660095, f(0.4)=0.24842440

clear,clc
format short
x = [0.1 0.2 0.3 0.4];
y = [0.62049958 -0.28398668 0.00660095 0.24842440];
xint =0.25;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 0.25

f_int_lagranje(x,xint,y)

Aproximación = -0.2103
ans = -0.2103

d. f(0.9) si f(0.6)=−0.17694460, f(0.7)=0.01375227, f(0.8)=0.22363362, f(1.0)=0.65809197

clear,clc
format short
x = [0.6 0.7 0.8 1];
y = [-0.17694460 0.01375227 0.22363362 0.65809197];
xint =0.9;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 0.90

f_int_lagranje(x,xint,y)

Aproximacion = 0.4420
ans = 0.4420

2. Use los polinomios de interpolación Lagrange apropiados de los grados uno, dos y tres para
aproximar cada uno de los siguientes:

a. f(0.43) si f(0)=1, f(0.25)=1.64872, f(0.5)=2.71828, f(0.75)=4.48169

clear,clc
format short
x = [0 0.25 0.5 0.75];
y = [1 1.64872 2.71828 4.48169];
xint =0.43;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)
Metodo de interpolación Lagrange para 0.43

f_int_lagranje(x,xint,y)

Aproximacion = 2.3606
ans = 2.3606

b. f(0) si f(−0.5)=1.93750, f(−0.25)=1.33203, f(0.25)=0.800781, f(0.5)=0.687500

clear,clc
format short
x = [-0.5 -0.25 0.25 0.5];
y = [1.93750 1.33203 0.800781 0.687500];
xint =0;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 0.00

f_int_lagranje(x,xint,y)

Aproximacion = 0.9844
ans = 0.9844

c. f(0.18) si f(0.1)=−0.29004986, f(0.2)=−0.56079734, f(0.3)=−0.81401972, f(0.4)=−1.0526302

clear,clc
format short
x = [0.1 0.2 0.3 0.4];
y = [-0.29004986 -0.56079734 -0.81401972 -1.0526302];
xint =0.18;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 0.18

f_int_lagranje(x,xint,y)

Aproximacion = -0.5081
ans = -0.5081

d. f(0.25) si f(−1)=0.86199480, f(−0.5)=0.95802009, f(0)=1.0986123, f(0.5)=1.2943767

clear,clc
format short
x = [-1 -0.5 0 0.5];
y = [0.86199480 0.95802009 1.0986123 1.2943767];
xint =0.25;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 0.25


f_int_lagranje(x,xint,y)

Aproximacion = 1.1889
ans = 1.1889

3. Sea f(x)=x+2/x.

a. Utilice la interpolación cuadrática de Lagrange basada en los nodos x0=1, x1=2 y x2=2.5
para aproximar f(1.5), f(1.2).

Luego yo=3, y1=3, y2=3.3.

• Para f(1.5)

clear,clc
format short
x = [1 2 2.5];
y = [3 3 3.3];
xint =1.5;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 1.50

f_int_lagranje(x,xint,y)

Aproximacion = 2.9000
ans = 2.9000

• Para f(1.2)

clear,clc
format short
x = [1 2 2.5];
y = [3 3 3.3];
xint =1.2;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 1.20

f_int_lagranje(x,xint,y)

Aproximacion = 2.9360
ans = 2.9360

b. Utilice la interpolación cúbica de Lagrange basada en los nodos x0=0.5, x1=1, x2=2 y
x3=2.5 para aproximar f(1.5), f(1.2).

• Para f(1.5)
clear,clc
format short
x = [0.5 1 2 2.5];
y = [4.5 3 3 3.3];
xint =1.5;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 1.50

f_int_lagranje(x,xint,y)

Aproximacion = 2.7000
ans = 2.7000

• Para f(1.2)

clear,clc
format short
x = [0.5 1 2 2.5];
y = [4.5 3 3 3.3];
xint =1.2;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 1.20

f_int_lagranje(x,xint,y)

Aproximacion = 2.7696
ans = 2.7696

4. Sea f(x)=2sen(πx/6), donde x está en radianes

a. Utilice la interpolación cuadrática de Lagrange basada en los nodos x0=0, x1=1 y x2=3 para
aproximar f(2) y f(2.4)

• Para f(2)

clear,clc
format short
x = [0 1 3];
y = [0 1 2];
xint =2;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 2.00

f_int_lagranje(x,xint,y)

Aproximacion = 1.6667
ans = 1.6667

• Para f(2.4)

clear,clc
format short
x = [0 1 3];
y = [0 1 2];
xint =2.4;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 2.40

f_int_lagranje(x,xint,y)

Aproximacion = 1.8400
ans = 1.8400

b. Use la interpolación cúbica de Lagrange basada en los nodos x0=0, x1=1, x2=3 y x3=5 para
aproximar f(2) y f(2.4)

• Para f (2)

clear,clc
format short
x = [0 1 3 5];
y = [0 1 2 1];
xint =2;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 2.00

f_int_lagranje(x,xint,y)

Aproximacion = 1.7000
ans = 1.7000

• Para f (2.4)

clear,clc
format short
x = [0 1 3 5];
y = [0 1 2 1];
xint =2.4;
fprintf('Metodo de interpolación Lagrange para %4.2f ',xint)

Metodo de interpolación Lagrange para 2.40


f_int_lagranje(x,xint,y)

Aproximacion = 1.8736
ans = 1.8736

Parte_2 Método de interpolación de Newton

Para las siguientes preguntas 5 a 8:

a. Calcule la tabla de diferencias divididas para la función tabulada

b. Escriba los polinomios de Newton P1(x), P2(x) y P3(x)

c. Evalúe los polinomios de Newton en la parte (b) a los valores dados de x

d. Compare los valores en la parte (c) con la función real f(x)

5. f(x) = √x , x = 4.5, 7.5

• Para 4.5

clear,clc
x = [4 5 6 7 8];
y = [2.00000 2.23607 2.44949 2.64575 2.8284];
xint = 4.5;
fprintf('Metodo de interpolación Newton para %4.2f ',xint)

Metodo de interpolación Newton para 4.50

f_int_newton(x,xint,y)

Aproximacion = 2.1213
TablaDeDiferenciasDivididas = 5×6
4.0000 2.0000 0.2361 -0.0113 0.0009 -0.0001
5.0000 2.2361 0.2134 -0.0086 0.0006 0
6.0000 2.4495 0.1963 -0.0068 0 0
7.0000 2.6458 0.1826 0 0 0
8.0000 2.8284 0 0 0 0
ans = 1×5
2.0000 2.1180 2.1209 2.1212 2.1213

• Para 7.5

clear,clc
x = [4 5 6 7 8];
y = [2.00000 2.23607 2.44949 2.64575 2.8284];
xint = 7.5;

fprintf('Metodo de interpolación Newton para %4.2f ',xint)

Metodo de interpolación Newton para 7.50

[yin,tabla]=f_int_newton(x,xint,y)

Aproximacion = 2.7386
TablaDeDiferenciasDivididas = 5×6
4.0000 2.0000 0.2361 -0.0113 0.0009 -0.0001
5.0000 2.2361 0.2134 -0.0086 0.0006 0
6.0000 2.4495 0.1963 -0.0068 0 0
7.0000 2.6458 0.1826 0 0 0
8.0000 2.8284 0 0 0 0
yin = 1×5
2.0000 2.8262 2.7272 2.7392 2.7386
tabla = 5×6
4.0000 2.0000 0.2361 -0.0113 0.0009 -0.0001
5.0000 2.2361 0.2134 -0.0086 0.0006 0
6.0000 2.4495 0.1963 -0.0068 0 0
7.0000 2.6458 0.1826 0 0 0
8.0000 2.8284 0 0 0 0

poli_4(tabla,x)

El polinomio de grado 4 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
2.0000 2.2361 2.4495 2.6458 2.8284

poli_3(tabla,x)

El polinomio de grado 3 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
2.0000 2.2361 2.4495 2.6458 2.8303

poli_2(tabla,x)

El polinomio de grado 2 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
2.0000 2.2361 2.4495 2.6403 2.8084

poli_1(tabla,x)

El polinomio de grado 1 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
2.0000 2.2361 2.4721 2.7082 2.9443

6. f(x) = 3.6/x, x = 2.5, 3.5

• Para 2.5

clear,clc
x = [1 2 3 4 5];
y = [3.60 1.80 1.20 0.90 0.72];
xint = 2.5;

fprintf('Metodo de interpolación Newton para %4.2f ',xint)

Metodo de interpolación Newton para 2.50

f_int_newton(x,xint,y)

Aproximacion = 1.4231
TablaDeDiferenciasDivididas = 5×6
1.0000 3.6000 -1.8000 0.6000 -0.1500 0.0300
2.0000 1.8000 -0.6000 0.1500 -0.0300 0
3.0000 1.2000 -0.3000 0.0600 0 0
4.0000 0.9000 -0.1800 0 0 0
5.0000 0.7200 0 0 0 0
ans = 1×5
3.6000 0.9000 1.3500 1.4062 1.4231

• Para 3.5

clear,clc
x = [1 2 3 4 5];
y = [3.60 1.80 1.20 0.90 0.72];
xint = 3.5;

fprintf('Metodo de interpolación Newton para %4.2f ',xint)

Metodo de interpolación Newton para 3.50

[yin,tabla]=f_int_newton(x,xint,y)

Aproximacion = 1.0406
TablaDeDiferenciasDivididas = 5×6
1.0000 3.6000 -1.8000 0.6000 -0.1500 0.0300
2.0000 1.8000 -0.6000 0.1500 -0.0300 0
3.0000 1.2000 -0.3000 0.0600 0 0
4.0000 0.9000 -0.1800 0 0 0
5.0000 0.7200 0 0 0 0
yin = 1×5
3.6000 -0.9000 1.3500 1.0688 1.0406
tabla = 5×6
1.0000 3.6000 -1.8000 0.6000 -0.1500 0.0300
2.0000 1.8000 -0.6000 0.1500 -0.0300 0
3.0000 1.2000 -0.3000 0.0600 0 0
4.0000 0.9000 -0.1800 0 0 0
5.0000 0.7200 0 0 0 0

poli_4(tabla,x)

El polinomio de grado 4 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
3.6000 1.8000 1.2000 0.9000 0.7200

poli_3(tabla,x)

El polinomio de grado 3 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
3.6000 1.8000 1.2000 0.9000 0

poli_2(tabla,x)

El polinomio de grado 2 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
3.6000 1.8000 1.2000 1.8000 3.6000

poli_1(tabla,x)

El polinomio de grado 1 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
3.6000 1.8000 0 -1.8000 -3.6000

7. f(x) = 3 sin^2(πx/6), x = 1.5, 3.5

• Para 1.5
clear,clc
x = [1 2 3 4 ];
y = [0 0.75 2.25 3 2.25];
xint = 1.5;

fprintf('Metodo de interpolación Newton para %4.2f ',xint)

Metodo de interpolación Newton para 1.50

f_int_newton(x,xint,y)

Aproximacion = 0.1875
TablaDeDiferenciasDivididas = 4×5
1.0000 0 0.7500 0.3750 -0.2500
2.0000 0.7500 1.5000 -0.3750 0
3.0000 2.2500 0.7500 0 0
4.0000 3.0000 0 0 0
ans = 1×4
0 0.3750 0.2813 0.1875

• Para 3.5

clear,clc
x = [1 2 3 4 ];
y = [0 0.75 2.25 3 2.25];
xint = 3.5;
fprintf('Metodo de interpolación Newton para %4.2f ',xint)

Metodo de interpolación Newton para 3.50

[yin,tabla]=f_int_newton(x,xint,y)

Aproximacion = 2.8125
TablaDeDiferenciasDivididas = 4×5
1.0000 0 0.7500 0.3750 -0.2500
2.0000 0.7500 1.5000 -0.3750 0
3.0000 2.2500 0.7500 0 0
4.0000 3.0000 0 0 0
yin = 1×4
0 1.8750 3.2813 2.8125
tabla = 4×5
1.0000 0 0.7500 0.3750 -0.2500
2.0000 0.7500 1.5000 -0.3750 0
3.0000 2.2500 0.7500 0 0
4.0000 3.0000 0 0 0

poli_3(tabla,x)

El polinomio de grado 3 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×4
0 0.7500 2.2500 3.0000

poli_2(tabla,x)

El polinomio de grado 2 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×4
0 0.7500 2.2500 4.5000

poli_1(tabla,x)

El polinomio de grado 1 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×4
0 0.7500 1.5000 2.2500

8.f(x) = e(-x) , x=0 .5, 1.5

• Para 0.5

clear,clc
x = [0 1 2 3 4];
y = [1 0.36788 0.13534 0.04979 0.01832];
xint = 0.5;
fprintf('Metodo de interpolación Newton para %4.2f ',xint)

Metodo de interpolación Newton para 0.50

f_int_newton(x,xint,y)

Aproximacion = 0.6120
TablaDeDiferenciasDivididas = 5×6
0 1.0000 -0.6321 0.1998 -0.0421 0.0067
1.0000 0.3679 -0.2325 0.0735 -0.0155 0
2.0000 0.1353 -0.0855 0.0270 0 0
3.0000 0.0498 -0.0315 0 0 0
4.0000 0.0183 0 0 0 0
ans = 1×5
1.0000 0.6839 0.6340 0.6182 0.6120

• Para 1.5

clear,clc
x = [0 1 2 3 4];
y = [1 0.36788 0.13534 0.04979 0.01832];
xint = 1.5;
fprintf('Metodo de interpolación Newton para %4.2f ',xint)

Metodo de interpolación Newton para 1.50

[yin,tabla]=f_int_newton(x,xint,y)

Aproximacion = 0.2212
TablaDeDiferenciasDivididas = 5×6
0 1.0000 -0.6321 0.1998 -0.0421 0.0067
1.0000 0.3679 -0.2325 0.0735 -0.0155 0
2.0000 0.1353 -0.0855 0.0270 0 0
3.0000 0.0498 -0.0315 0 0 0
4.0000 0.0183 0 0 0 0
yin = 1×5
1.0000 0.0518 0.2017 0.2174 0.2212
tabla = 5×6
0 1.0000 -0.6321 0.1998 -0.0421 0.0067
1.0000 0.3679 -0.2325 0.0735 -0.0155 0
2.0000 0.1353 -0.0855 0.0270 0 0
3.0000 0.0498 -0.0315 0 0 0
4.0000 0.0183 0 0 0 0

poli_4(tabla,x)

El polinomio de grado 4 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
1.0000 0.3679 0.1353 0.0498 0.0183

poli_3(tabla,x)

El polinomio de grado 3 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
1.0000 0.3679 0.1353 0.0498 -0.1414

poli_2(tabla,x)

El polinomio de grado 2 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
1.0000 0.3679 0.1353 0.3024 0.8690

poli_1(tabla,x)

El polinomio de grado 1 es
ans =
valores de x evaluados en el polinomio de grado 4
ans = 1×5
1.0000 0.3679 -0.2642 -0.8964 -1.5285

Parte_3 Trazadores Cúbicos

Desarrolle, depure y pruebe un programa en cualquier lenguaje de alto nivel o de

macros de su elección, para implementar la interpolación por trazadores cúbicos.

Pruebe el programa con los siguientes ejercicios:

9. Dados los datos

pronostique f(2.25).

clear,clc
x = [1.6 2 2.5 3.2 4 4.5];
y = [2 8 14 15 8 2];
xint = 2.25;
fprintf('Metodo de interpolación por trazadores cubicos para %4.2f ',xint)

Metodo de interpolación por trazadores cubicos para 2.25

TrazadoresC(x,y,xint)

ans = 11.3969

verificacin=spline(x,y,xint)

verificacin = 11.4167

10.Dados los datos

pronostique f(2.25).

clear,clc
x = [1 2 3 5 7 8];
y = [3 6 19 99 291 444];
xint = 2.25;
fprintf('Metodo de interpolación por trazadores cubicos para %4.2f ',xint)

Metodo de interpolación por trazadores cubicos para 2.25

TrazadoresC(x,y,xint)

ans = 8.0079

verificacin=spline(x,y,xint)

verificacin = 8.0781

También podría gustarte