Está en la página 1de 55

METODOS NUMERICOS I

Autor: Ing. William Chauca


Nolasco

INTERPOLACIO
N

En los resultados anteriores se observa que en el inciso b)


se obtuvo un error relativo porcentual menor, debido a que
los valores que se emplearon para la interpolacin son mas
prximos que los que se utilizaron en el inciso a).

4.3.1.2 Interpolacin Cuadrtica


Una estrategia que mejora la aproximacin en el proceso de
interpolacin es la de introducir cierta curvatura en la lnea
que conecta a los puntos. Si se dispone de al menos tres datos,
lo anterior se puede llevar a cabo con un polinomio de segundo
orden, como el que se propone en la siguiente ecuacin:

f 2 x b0 b1 x x0 b2 x x0 x x1

4.54

Esta ecuacin es equivalente:

f x a0 a1 x a2 x

4.55

Donde:

a0 b0 b1 x0 b2 x0 x1

4.56

a1 b1 b2 x0 b2 x

4.57

a2 b2

4.58

Para obtener los coeficientes b0 , b1 y b2 se sustituyen


los valores de x0 , x1 y x2 en la ecuacin (4.54)
Para b0

f 2 x0 b0 b1 x0 x0 b2 x0 x0 x0 x1
f 2 x0 b0

4.59

4.60

Para b1

f 2 x b0 b1 x x0 b2 x x0 x x1

f 2 x1 f 2 x0 b1 x1 x0 b2 x1 x0 x1 x1
f 2 x1 f 2 x0 b1 x1 x0
b1

f 2 x1 f 2 x0
x1 x0

4.63

4.64

4.61
4.62

Para b2
f 2 x1 f 2 x0

x2 x0 b2 x2 x0 x2 x1
f 2 x2 f 2 x0
x1 x0

4.65

Ejemplo
a.- Encuentre el valor del logaritmo de 4 mediante un polinomio
de interpolacin de segundo orden. Use los valores del ejemplo
anterior
b.- Calcule el error relativo porcentual y comprelo con el que se
obtuvo con el polinomio de primer orden.

b2 = -0.012940

Con los valores anteriores se forma el siguiente


polinomio

f 2 x b0 b1 x x0 b2 x x0 x x1

f 2 x 0.477121 0.117394 x x0 0.012940 x x0 x x1


a) Para x=4 se obtiene

f 2 4 0.477121 0.117394 4 3 0.012940 4 3 4 4.5


f 2 4 0.600985
b) Al calcular el error relativo
porcentual
Valor verdadero Log 4 =
0.602060

0.602060 0.600985
ep
*100 0.178550%
0.602060

4.3.1.3 Interpolacin por medio de


polinomios con diferencias divididas de
Newton de orden n

El anlisis hecho en la interpolacin cuadrtica se


puede generalizar con un polinomio de n-esimo orden
cuando se tienen n-1 puntos, el cual se representa
mediante
f x b la
becuacin
x x .....b x x x x .... x x
4.6
n

Para evaluar b0, b1 ,..,bn se emplean las


ecuaciones
b f x
4.6
0

b1 f x1 , x0

b2 f x2 , x1 , x0
.
.
bn f xn , xn 1 ,...., x1 , x0

9
4.7
0
4.7
1

4.7
2

n 1

Ejemplo
a).- Calcule el valor del logaritmo de 4, por medio de un
polinomio de interpolacin de diferencias divididas de
newton de tercer orden
b).-Compara el error porcentual que se obtuvo con los
polinomios de primer, segundo y tercer orden. Use el
valor de log 4 = 0.602060 como el valor verdadero y los
siguientes datos:

NUMERO

LOGARITMO10

0.477121

3.5

0.544068

4.5

0.653212

0.698970

Para aplicar la ecuacin (4.68) se identifican los datos


de la siguiente forma.

x0 3 f x0 0.477121

x1 3.5 f x1 0.544068

x2 4.5 f x2 0.653212
x3 5 f x3 0.698979
Mediante la ecuacin (4.69) se calcula b 0

b0 f x0

b0 0.47712
Mediante la ecuacin (4.70) se calcula b 1

f x1 f x0 0.544068 0.477121
b1 f x1 , x0

x1 x0
3 .5 3
b1 0.133894

Mediante la ecuacin 4.71 se calcula b2

f x2 , x1 f x1 , x0
b2 f x2 , x1 , x0
x2 x0

f x2 f x1 0.653212 0.544068
f x2 , x1

0.109144
x2 x1
4 .5 3 .5

f x1 , x0 0.133894
0.109144 0.133894
b2 f x2 , x1 , x0
4 .5 3
b2 0.016499

Mediante la ecuacin 4.73 se calcula el


coeficiente b3

0.011753 (0.016499)
b3 f x3 , x2 , x1 , x0
53
b3 0.002373

=LOG10(B
4)

=(C15-C14)/(B15B14)

=(D15-D14)/(B16B14)
=(E15-E14)/(B17B14)

Valor
interpolado

=$A$21B14
=$A$21B15

=$A$21B$16
=$A$21B17

C24 = $C$14+($D$14*$B$21)+($E$14*$B$21*$C$21)+
($F14*$B$21*$C$21*$D$21)
C25 = ABS(((0.60206C24)/C24)*100)

%Interpolacion por medio de polinomios


%con diferencias divididas de Newton de orden N
clear all
clc
x=[3 3.5 4.5 5];
for i=1:length(x)
f(i)=log10(x(i));
end
xd=input('Ingrese valor a interpolar: ');
freal=log10(xd);
n=input('Ingrese orden de interpolacion: ');
%%Encontrando los coeficientes
ii=1 ;
if n==1
b(ii)=f(ii);
b(ii+1)=(f(ii+1)-f(ii))/(x(ii+1)-x(ii));
f1=b(ii)+b(ii+1)*(xd-x(ii));
ep=abs((freal-f1)/freal)*100;
fprintf('Interpolacion de primer orden %6.4f Error
%6.2f\n',f1,ep)
end

if n==2
b(ii)=f(ii);
b(ii+1)=(f(ii+1)-f(ii))/(x(ii+1)-x(ii));
b(ii+2)=(((f(ii+2)-f(ii+1))/(x(ii+2)-x(ii+1)))b(ii+1))/(x(ii+2)-x(ii));
f2=b(ii)+b(ii+1)*(xd-x(ii))+b(ii+2)*(xd-x(ii))*(xdx(ii+1));
ep=abs((freal-f2)/freal)*100;
fprintf('Interpolacion de segundo orden %6.4f Error
%6.2f\n',f2,ep)

end

if n==3
b(ii)=f(ii);
b(ii+1)=(f(ii+1)-f(ii))/(x(ii+1)-x(ii));
b(ii+2)=(((f(ii+2)-f(ii+1))/(x(ii+2)-x(ii+1)))-b(ii+1))/(x(ii+2)-x(ii));
bb=(((f(ii+3)-f(ii+2))/(x(ii+3)-x(ii+2)) - (f(ii+2)-f(ii+1))/(x(ii+2)x(ii+1))))/(x(ii+3)-x(ii+1));
bb1=((f(ii+2)-f(ii+1))/(x(ii+2)-x(ii+1)) - ((f(ii+1)-f(ii))/(x(ii+1)x(ii))))/ (x(ii+2)-x(ii));
b(ii+3)=(bb-bb1)/(x(ii+3)-x(ii));
f3=b(ii)+b(ii+1)*(xd-x(ii))+b(ii+2)*(xd-x(ii))*(xd-x(ii+1))+b(ii+3)*(xd-x(ii))*(xdx(ii+1))*(xd-x(ii+2));

ep=abs((freal-f3)/freal)*100;
fprintf('Interpolacion de tercer orden %6.4f Error %6.2f\n',f3,ep)
end

Ingrese valor a interpolar: 4


Ingrese orden de interpolacion: 1
Interpolacion de primer orden 0.6110
Error 1.49
Ingrese valor a interpolar: 4
Ingrese orden de interpolacion: 2
Interpolacion de segundo orden
0.6028 Error 0.12
Ingrese valor a interpolar: 4
Ingrese orden de interpolacion: 3
Interpolacion de tercer orden 0.6022
Error 0.02

4.3.2 Polinomios de interpolacin de Lagrange


El polinomio de LaGrange es una reformulacin del
polinomio de Newton y evita los clculos de diferencias
divididas.
n

f n x Li x f xi

4.78

i 0

Donde:

Li x
j 0
j i

x xj
xi x j

producto de

4.79

Al desarrollar la ecuacin 4.79 para diferentes


valores de n se tiene:

Para n=1

f1 x L 0 x f x0 L1 f x1

4.80

x x0
x x1
f1 x
f x0
f x1
x0 x1
x1 x0

4.81

Para n=2

f 2 x L 0 x f x0 L1 f x1 L2 f x2
x x1

x0 x1

f 2 x

x x2
x x0

f x0

x0 x2
x1 x0

4.82

x x0
x x2

f x1
x1 x2
x2 x0

x x1

f x2
x2 x1

4.83

Para n=3
x x1

x0 x1

f 3 x f x0

x x0

f x2
x2 x0

x x2

x0 x2

x x1

x2 x1

x x3
x x0

f x1

x0 x3
x1 x0

x x3
x x0

f x3

x2 x3
x3 x0

x x2

x1 x2

x x1

x3 x1

x x3


x1 x3

x x2

x3 x2

4.84

Para n=4
x x1

x0 x1

f 4 x f x0

x x2

x0 x2

x x3

x0 x3

x x4
x x0

f x1

x0 x4
x1 x0

x x0

x
2 0

x x1

x
2 1

x x3

x
2 3

x x0
x x4

f x3
x

x
x

x
2 4
3 0

x x0

x
4 0

x x1

x
4 1

x x2

x
4 2

x x3

x
4 3

f x2
f x4

x x2

x1 x2

x x1

x
3 1

x x3

x1 x3

x x2

x
3 2

x x4


x1 x4

x x4

x
3 4

4.85

Ejemplo
a).- Calcule el valor del logaritmo de 4, por medio de diferentes
polinomios de interpolacin de Lagrange
b).-Compara el error porcentual que se obtuvo con los
polinomios de primer, segundo y tercer orden. Use el valor de
log 4 = 0.602060 como el valor verdadero y los siguientes
datos:

NUMERO

LOGARITMO10

3
3.5

0.477121
0.544068

4.5
5

0.653212
0.698970

Para aplicar la ecuacin (4.78) se identifican los datos


de la siguiente forma.

x0 3 f x0 0.477121

x1 3.5 f x1 0.544068

x2 4.5 f x2 0.653212
x3 5 f x3 0.698979

Para n=1
x x0
x x1
f1 x
f x0
f x1
x0 x1
x1 x0

4 3 .5

43
f1 4
(0.477121)
(0.544068) 0.611132
3 3.5
3 .5 3

Para n=2
x x1

x
0 1

f 2 x

x x2
x x0

f x0

x
x

x
2
0
1 0

x x0
x x2

f x1
x

x
x

x
1 2
2 0

x x1

f x2
x

x
2 1

4 3 .5 4 4 .5
4 3 4 4 .5
4 3 4 3 .5

(0.477121)

(0.544068)

(0.653212)
3 3 .5 3 4 .5
3 .5 3 3 .5 4 .5
4 3 .5 4 .5 3 .5

f2 x

f 2 4 0.602823

= (E18-B15)/(B14-B15)*C14+(E18-B14)/(B15-B14)*C15
B22 = ((($E$18-B15)*($E$18-B16))/((B14B15)*(B14-B16)))*C14+((($E$18-B14)*($E$18B16))/((B15-B14)*(B15-B16)))*C15+((($E$18B14)*($E$18-B15))/((B16-B14)*(B16-B15)))*C16
B23 = ((($E$18-B15)*($E$18-B16)*($E$18B17))/((B14-B15)*(B14-B16)*(B14-B17))*C14+
((($E$18-B14)*($E$18-B16)*($E$18-B17))/
((B15-B14)*(B15-B16)*(B15-B17)))*C15+
((($E$18-B14)*($E$18-B15)*($E$18-B17))/
((B16-B14)*(B16-B15)*(B16-B17)))*C16+
((($E$18-B14)*($E$18-B15)*($E$18-B16))/
((B17-B14)*(B17-B15)*(B17-B16)))*C17)

clear all
clc
x_datos=input('Ingrese valores de x: ');
y_datos= log10(x_datos);
x=input('Ingrese valor de x a interpolar: ');
n_datos=length(x_datos);
sum=0;
for i=1:n_datos
producto=y_datos(i);
for j=1:n_datos
if i~=j
producto=producto*(x-x_datos(j))/(x_datos(i)x_datos(j));
end
end
sum=sum+producto;
end
yi=sum

Ingrese valores de x: [3 3.5


4.5 5]
Ingrese valor de x a
interpolar: 4
yi =
0.6022

Ejemplos

18.2

Planteamiento del problema. Ajuste un polinomio de segundo grado a los


tres puntos
Del problema anterior.

Planteamiento del problema. En el ejemplo anterior, los datos x0 = 1, x1


= 4 y x2 = 6 se
utilizaron para estimar ln 2 mediante una parbola. Ahora, agregando un
cuarto punto
(x3 = 5; f(x3) = 1.609438], estime ln 2 con un polinomio de interpolacin
de Newton de
tercer grado.

Planteamiento del problema. Con la ecuacin (18.18) estime el error en


la interpolacin
polinomial de segundo grado del segundo problema. Use el dato
adicional f(x3) =
Solucin. Recuerde que en el problema, el polinomio de interpolacin
f(5) = 1.609438 para obtener sus resultados.
de segundo
grado proporcion una estimacin, f2(2) = 0.5658444, que representa
un error de
0.6931472 0.5658444 = 0.1273028. Si no se hubiera conocido el
valor verdadero, como usualmente sucede, la ecuacin (18.18), junto
con el valor adicional en x3, pudo haberse utilizado para estimar el
error,

FUNCIONES DE INTERPOLACION CON


ORDENES DE MATLAB

APLICACIN

>> x=0:1.0:5;
>> y=[1.0 -0.6242 -1.4707 3.2406 -0.7366
-6.3717];
>> xi=0:0.1:5;
>> ylin=interp1(x,y,xi,'linear');
>> yispline=interp1(x,y,xi,'spline');
>> yipch=interp1(x,y,xi,'pchip');
>> yfuncion=1.5.^xi.*cos(2*xi);

>> plot(x,y,'o',xi,yfuncion,xi,ylin,'--')
>> title('INTERPOLACION LINEAL FUNCION')

>> plot(x,y,'o',xi,yfuncion,xi,yispline,'--')
>> title('INTERPOLACION SPLINE vs.
FUNCION')

Propiedades termodinmicas: expansin de las tablas de


vapor
La
termodinmica
hace
uso
extenso
de
tablas.
Comnmente, se llevan a cabo bajo presin atmosfrica,
de modo que regularmente tendr necesidad de usar la
tabla 1, que slo es una porcin de las tablas de vapor
(figura).

Figura Las plantas de


electricidad usan vapor como un
"fluido de trabajo".

Tabla 1 Propiedades de vapor


supercalentado a 0.1 Mpa
(aproximadamente 1 atm)

Note que la tabla est espaciada a intervalos de 50


grados. Suponga que tiene un proyecto que le
requiere el uso de esta tabla y usted preferira no
tener que realizar una interpolacin lineal cada vez
que la utilice. Use MATLAB para crear una tabla, a
travs de interpolacin lineal, con un espaciamiento
%%Aplicacion-Termodinmica
de
temperatura de 25 grados.
clear all
clc
T= [100 150 200 250 300 400 500]';
v= [1.6958 1.9364 2.172 2.406 2.639 3.103 3.565]';
u= [2506.7 2582.8 2658.1 2733.7 2810.4 2967.9
3131.6]';
h= [2676.2 2776.4 2875.3 2974.3 3074.3 3278.2
3488.1]';
props= [v,u,h];
newT= [100:25:500]';
newprop= interp1(T,props,newT);
disp( ' Propiedades de vapor a 0 . 1 MPa')
disp( 'Temp Specif ic Volume Internal Energy Enthalpy ' )
disp(' C
m^3/kg
kJ/kg
kJ/kg ' )

Propiedades de vapor a 0 . 1 MPa


Temp Specif ic Volume Internal Energy Enthalpy
C
m^3/kg
kJ/kg
kJ/kg
100
1.6958 2506.7 2676.2
125
1.8161 2544.8 2726.3
150
1.9364 2582.8 2776.4
175
2.0542 2620.4 2825.9
200
2.1720 2658.1 2875.3
225
2.2890 2695.9 2924.8
250
2.4060 2733.7 2974.3
275
2.5225 2772.1 3024.3
300
2.6390 2810.4 3074.3
325
2.7550 2849.8 3125.3
350
2.8710 2889.2 3176.3
375
2.9870 2928.5 3227.2
400
3.1030 2967.9 3278.2
425
3.2185 3008.8 3330.7
450
3.3340 3049.8 3383.1
475
3.4495 3090.7 3435.6
500
3.5650 3131.6 3488.1

También podría gustarte