Sei sulla pagina 1di 56

A menudo se conocen los valores de la funcin

f(x) en x0, x1, x2,...., xn, pero se desconoce la


expresin de f(x).
El objetivo del captulo es estimar f(x) para
cualquier punto x; si x se encuentra entre el
valor menor y mayor de los xi se dice que el
problema es la interpolacin; en cambio
cuando x se encuentra fuera del rango, el
problema es la extrapolacin.

Las clases de funciones aproximantes son:


polinomios,
funciones
exponenciales,
racionales y trigonomtricas.
En los aos 1913 al 1923, Sir Edmund
Wittaker en la Universidad de Edimburgo,
desarroll la teora de interpolacin en su
ctedra de Matemtica Numrica.

MATLAB, tiene implementada las funciones que


aparecen en la tabla 4.1.
Nombre
griddata
interp1
interp2
interpft

Descripcin
Rejilla de datos
Lookup tabla 1D
Lookup tabla 2D
Con mtodo FFT
Tabla 4.1

El programa interpDemo de la figura 4.1, presenta el problema de interpolacin de una manera grfica (figura
4.2).

Fig. 4.2. interDemo.m

function InterpDemo()
% Demo Interpolacion

E. Raffo Lecca

x=[0 1 4 6];
y=[1 -1 1 -1];
x0=0:0.10:6;
ylin=interp1(x,y,x0,'linear');
yspline=interp1(x,y,x0,'spline');
ycubic=interp1(x,y,x0,'cubic');
% mostrando grafica
plot(x,y,'o');

% dato

hold on; %para colocar varios plot en una sola figura; por default es
off
plot(x0,ylin,x0,yspline,x0,ycubic); %comando plotear
legend('dato','lineal','spline','cubica',0); %legend('
',pos);

','

',...,'

% donde pos=0,1,2,3,4,-1; %0=el mejor lugar o automtico


title('INTERPOLACION');

Interpolacin Lineal
Los polinomios interpolantes, son los que
ms se usan en los clculos por computadora;
y se basan en plantear un polinomio de grado
n que pasa por los puntos x0, x1, x2,...., xn.
Existen dos mtodos difundidos: el de
Lagrange y de Newton.

Considere una familia de funciones de una


variable x,

( x ; a0 , a1 ,..., an )

donde existen (n+1) coeficientes: a0, a1, a2,..., an.


El problema radica en determinar los parmetros
ai para los (n+1) pares de nmeros (xi , fi ),
i = 1,...,n con xi xk para i k, con

( xi ; a0 , a1 ,..., an ) f i ,

i 0,..., n

Cuando depende linealmente de los ai : es


una poblacin lineal,
( x ; a0 , a1 ,..., an ) a00 ( x) a11 ( x) ... an n ( x)

aqu se encuentra la interpolacin polinomial


2

( x ; a0 , a1 ,..., an ) a0 a1 x a2 x ... an x

Forma de Lagrange
Considere el par de puntos
(x0 , f (x0)) y (x1 , f (x1))
aproximado mediante una lnea recta (ver figura 4.3).

Fig. 4.3.

f ( x1 ) f ( x0 ) P( x) f ( x0 )

x1 x0
x x0
( x x0 )( f ( x1 ) f ( x0 ))
P ( x) f ( x0 )
( x1 x0 )
P ( x) f ( x0 )

x x0
x x1
f ( x1 )
x0 x1
x1 x0

Se observa que existen 5 puntos (n vale 4) y se


obtiene un polinomio de grado 4 (ver figura 4.4)

Fig. 4.4

Los (n+1) puntos de x, donde existe el valor de f (x),


sern utilizados para construir un polinomio P(x) de
grado n que interpola a f (x) en los puntos x0, x1,
x2,..., xn , y satisface:
P ( x i ) = f ( x i)

, i = 0, 1,...,n

Un polinomio de grado n que se anule en todos los


puntos xi , excepto en xk , resulta:
g k ( x ) ( x xi )
i 0

ik

( x x0 )( x x1 )...( x x k 1 )( x x k 1 )...( x x n )

Adems de :
g k ( x k ) ( x k xi )
i 0
ik

luego se define un polinomio de Lagrange como:


g k ( x)
Lk ( x )
g k ( xk )
x xi

i 0 x k x i
ik

Donde se observa que :


1
Lk ( x i )
0

ik
ik

El polinomio de grado n que interpola a f (x) en


x0, x1, x2,..., xn es :
P( x)

f ( x k ) Lk ( x )

k 0

P(x) se conoce como forma de Lagrange y Lk(x)


son los polinomios de Lagrange en los puntos x0,
x1, x2,..., xn .

Usar la forma de Lagrange para producir un


polinomio cbico y evaluar para x = 2 y 3.
xi
yi

0 1 4 6
1 1 1 1

( x x1 )( x x 2 )( x x3 )
L0 ( x)
( x0 x1 )( x0 x 2 )( x0 x3 )
( x x0 )( x x 2 )( x x3 )
L1 ( x)
( x1 x0 )( x1 x 2 )( x1 x3 )
( x x0 )( x x1 )( x x3 )
L2 ( x )
( x 2 x0 )( x 2 x1 )( x 2 x3 )
( x x0 )( x x1 )( x x 2 )
L3 ( x)
( x3 x0 )( x3 x1 )( x3 x 2 )

Evaluando los polinomios de Lagrange para x=2.

P(x) = -1

f (xi)

Li (x)

0
1
2
3

1
-1
1
-1

-0.33333
1.06667
0.33333
-0.06667

Para x = 3

P(3) = 0

f (xi)

Li (x)

0
1
2
3

1
-1
1
-1

-0.25000
0.60000
0.75000
-0.10000

Calcular P(1.12), para la tabla :


i

xi

yi

0
1
2
3

1.05
1.10
1.15
1.20

1.02470
1.04881
1.07238
1.09544

evaluando los polinomios de Lagrange :


i
0
1
2
3
P(1.12)= 1.0583

f (xi)

Li (x)

1.02470
1.04881
1.07238
1.09544

-0.064
0.672
0.448
-0.056

Forma de Newton
En la figura 4.5, se presenta el Algoritmo de
Lagrange, y en la figura 4.6 el programa
lagrange.m.

Lagrange
Suma = 0
for k = 0 to n
prod1 = 1
prod2 = 1
for i = 0 to n
if i k then
prod1 = prod1 * (x x[i])
prod2 = prod2 * (x[k] x[i])
L = prod1 / prod2
Suma = Suma + L * F[k]
Polinomio es igual a Suma
End Lagrange
Fig. 4.5: Algoritmo de Lagrange

Fig. 4.6: Lagrange.m

Sea un polinomio de grado n-simo :


Pn ( x) b0 b1 ( x x0 ) b2 ( x x0 )( x x1 ) ...
... bn ( x x0 )( x x1 )....( x x n1 )

haciendo Pn (xi) = fi

i = 0,1,..., n

f 0 Pn ( x0 ) b0
f1 Pn ( x1 ) b0 b1 ( x x0 )
f 2 Pn ( x 2 ) b0 b1 ( x x0 ) b2 ( x x0 )( x x1 )

luego
f 01

f1 f 0

x1 x0

f12

f 2 f1

x 2 x1

f 012

f12 f 01

x 2 x0

Pn ( x) f 0 f 01 ( x x0 ) f 012 ( x x0 )( x x1 ) ...
... f 012......k ( x x0 )( x x1 )...( x x k 1 )

De f 012....k = f [x0, x1, ..., xk ], se tiene:


b0 f ( x0 )
b1 f [ x0 , x1 ]
b2 f [ x0 , x1 , x 2 ]

bn f [ x0 , x1 ,...., x n ]

donde f01...k se conoce como diferencia dividida.

La primera diferencia dividida se calcula como:

f [ xi , x j ]

f ( x j ) f ( xi )
x j xi

la segunda diferencia dividida, es la diferencia de las dos


primeras diferencias divididas

f [ xi , x j , x k ]

f [ x j , x k ] f [ xi , x j ]
x k xi

y en general :

f [ x1 , x 2 ,...., x k ] f [ x0 , x1 ,...., x k 1 ]
f [ x0 , x1 , x 2 ,..., x k ]
x k x0
El esquema para las diferencias divididas es

k 1 k 2

x0
f0
f 01
f 012 f 0123
x1
f1
f12
f123
x2
f2
f 23
4.2: Diferencias divididas
Tabla
xn
fn

Sean los siguientes valores :

xi
yi

1
4
6
5
0 1.3862944 1.7917595 1.6094379

f ( x1 ) f ( x0 ) 1.3862944
f [ x0 , x1 ]

0.46209813
x1 x0
4 1

1.7917595 1.3862944
f [ x1 , x 2 ]
0.20273255
64

1.6094379 1.7917595
f [ x 2 , x3 ]
0.18232160
56

f [ x1 , x 2 ] f [ x0 , x1 ]
f [ x0 , x1 , x 2 ]
0.05187312
6 1
f [ x 2 , x3 ] f [ x1 , x 2 ]
f [ x1 , x 2 , x3 ]
0.02041095
54
f [ x1 , x 2 , x3 ] f [ x0 , x1 , x 2 ]
f [ x0 , x1 , x 2 , x3 ]
0.00786554
5 1

dando la tabla de diferencias divididas finitas


i

xi

f (xi)

0
1
2
3

1
4
6
5

0
1.3862944
1.7917595
1.6094379

0.46209813 -0.05187312
0.20273255 -0.02041095
0.18232160

3
0.00786554

La forma de Newton es :
Pn ( x) 0 0.46209813 ( x 1) 0.05187312 ( x 1)( x 4) ....
.... 0.00786554 ( x 1)( x 4)( x 6)
Pn (2) 0.62877

Sean los valores :


i
xi
yi

0 1 2 3
0 1 4 6
1 1 1 1

La tabla de diferencias divididas finitas es :


i

xi

yi

0
1
2
3

0
1
4
6

1
-1
1
-1

-2.0
0.66666667
-1.0

0.66666667
-3.3333333

-0.16666667

P ( x) 1.0 2( x 0) 0.66666667( x 1) x .....


..... 0.16666667( x 1)( x 4) x
P (2) 1.0

Fig. 4.7 : inteNewton.m


En la figura 4.7, se presenta la funcin
inteNewton.m; y la 4.8 una ejecucin.

Fig. 4.8 : Ejecucin de InteNewton.m

Algoritmo de Neville
Una forma de resolver el problema de interpolacin
es considerar resolver el problema para un pequeo
conjunto de valores y despus actualizar estas
soluciones para obtener la solucin completa.
Sea por el conjunto de puntos (xi , fi ) , i = 0,1,....,n
se denota por

Pi0 i1 ...ik

al polinomio, donde
Pi0 i1 ...ik ( xi j ) f i j

j 0,1,...., k

Recursivamente se tiene :
Pi ( x) f i
Pi0 i1 ...ik ( x)

( x xi0 ) Pi0 i1 ...ik ( x) ( x xik ) Pi0 i1 ...ik 1 ( x)


xik xi0

k 0
x0

k 1

f 0 P0 ( x)
P01 ( x)

x1

f1 P1 ( x)

P012 ( x)
P12 ( x)

x2

f 2 P2 ( x)

P0123 ( x)
P123 ( x)

P23 ( x)
x3

f 3 P3 ( x)

El clculo para P012(x), viene dado por


( x x0 ) P12 ( x) ( x x 2 ) P01 ( x)
P012 ( x)
x 2 x0

Determinar P0123 (2) :


k 0
0

2 3

1
3

1
1

1
1

1
3

(2 0)( 1) (2 1)(1)
P01 (2)
3
1 0
(2 1)(1) (2 2)( 1)
P12 (2)
1
2 1

(2 2)( 1) (2 3)(1)
P23 (2)
1
32
(2 0)(1) (2 2)( 3)
P012 (2)
1
20
(2 1)(1) (2 3)(1)
P123 (2)
1
3 1
(2 0)(1) (2 3)(1)
P0123 (2)
1
30

Haciendo

Ti k , k Pi , i 1,..., i k

se tiene la tabla
x0

f 0 T00
T11

x1

f1 T10

T22
T21

x2

f 2 T20

T32
T31

x3

f 3 T30

T33

donde :

Ti 0 f i
Tik

( x xi k ) Ti , k 1 ( x xi ) Ti 1, k 1

Ti , k 1

( xi xi k )
Ti , k 1 Ti 1, k 1
x xi k
1
x xi

, 1 k i , i 0,1,..., n

En la figura 4.9, se presenta la funcin Neville.m;


Neville.m; y su ejecucin en 4.10.

Fig. 4.9 : Neville.m

Fig. 4.10 : Ejecucin de Neville.m

Error en una
interpolacin polinomial
Sea la funcin f (x) y para sus valores
f i f ( xi ) , i 0,1,..., n
los cuales son interpolados. Una interpolacin polinomial
P(x)=P0...n (x) con

P ( xi ) f i

, i 0,1,..., n

reproduce f (x), para el argumento xi. El error es

f ( x) P ( x)
para valores xxi , i=0,1,...,n.
Bajo ciertas condiciones es posible acotar el error.

Teorema
Si una funcin f tiene (n+1) derivadas; entonces
para cada argumento X , existe un nmero en el
ms pequeo intervalo I [xo, ...., xn, X ] que contiene
a X y a todas las abscisas xi , satisfaciendo:
( X ) f ( n1) ()
f ( X ) P01...n ( X )
(n 1)!

donde

( x) ( x x0 )( x x1 )....( x x n )

As:
f ( x) cos x
i
xi
, i 0,1,2,3,4,5 o n 5
10
cos
sin x P ( x) ( x x0 )( x x1 )....( x x5 )
720
| ( x) |
sin x P( x)
, donde I [ x0 ,...., x n , x)
720

Fig. 4.11 : IntPolError

En la figura 4.11 se presenta la funcin


IntPolError para calcular la cota del error en
un a interpolacin polinomial.
En la figura 4.12 se determina el error para
x0=1 en f (x) = cos x

Interpolacin por pieza


La interpolacin polinomial es global; es
decir se usa una funcin polinomial para
pasar a travs de todos los datos.
Cuando se
requiere de
polinomio.

adicionan nuevos
incrementar el

puntos, se
grado del

Desde 1,960, un mtodo alternativo se ha


hecho muy popular: las funciones polinomiales
por pieza (piecewise polynomial functions).
Los spline cbicos y los hermite son ejemplos
de estas funciones.
Los spline son usados para resolver ecuaciones
diferenciales.

Interpolacin lineal de Hermite


Una funcin polinomial lineal por pieza
definida para las x, con la propiedad que L(x)
es una lnea quebrada entre xi y xi+1 ; vale decir
que L(x) permite diferentes lneas entre cada
par de jun tas adyacentes (del ingls Knots,
joints o breakpoints).

La propiedad
L ( xi ) y i

, i 0,1,2,..., n

indica que
x xi 1
x xi
L( x) yi
yi 1
xi xi 1
xi 1 xi

, xi x xi 1
, i 0,1,2,...., n 1

Fig. 4.14 : HermiteL.m

En la figura 4.14, se presenta la funcin


HermiteL.m para el Hermite lineal. En la
figura 4.15, se presenta una ejecucin de
HermiteL.m.

Fig. 4.15 : Ejecucin de HermiteL.m

Un polinomio interpolante por pieza, tiene por


propiedad que si los valores de yi son conocidos
desde una funcin conocida g(x), se pueden
adicionar ms puntos entre x0 y xn ; y el
interpolante converge a la funcin original.
Si los datos yi son valores de la funcin g(x), y
tiene una segunda derivada continua, se demuestra
que

| L( x) g ( x) | 18 h 2 max | g(x) | O(h 2 )

En la figura 4.13, se presenta el polinomio


interpolan te para los puntos (x,y) :
x

1 1 1 1

Potrebbero piacerti anche