Está en la página 1de 11

INTERPOLACION Y AJUSTE DE CURVAS

Juego discreto de datos, o tablas de la forma:


x
1
x
2
x
3
... x
n

y
1
y
2
y
3
... y
n


son comnmente involucrados en clculos tcnicos. La fuente de los datos puede ser observaciones
experimentales o clculos numricos. Existe una distincin entre interpolacin y ajuste de curvas. En la
interpolacin se construye una curva a travs de los puntos de datos. Haciendo esto, implcitamente se
supone que los puntos de datos son exactos y distintos. El ajuste de curvas es aplicado a los datos que
contienen dispersin (ruido), usualmente debido a errores de medicin. Aqu se quiere encontrar una
curva suave que se aproxime a los datos en algn sentido. As la curva no tiene que tocar los puntos de
datos. Esta diferencia entre interpolacin y ajuste de curvas puede ser vista en la siguiente figura:


Figura 1. Diferencia entre interpolacin y ajuste de curvas

El mtodo ms comn usado para estimar valores intermedios entre puntos de datos precisos es la
interpolacin polinomial. La frmula general para un polinomio de orden
Interpolacin.
) 1 ( n puede ser escrito
como:

1 3
4
2
3 2 1
... ) (

+ + + + + =
n
n
x a x a x a x a a x f

Para n puntos de datos, hay uno y slo un polinomio de orden ) 1 ( n que pasa a travs de todos los
puntos. Por ejemplo, hay una sola lnea recta (polinomio de primer orden) que conecta dos puntos.
Similarmente, slo una parbola que conecta un juego de tres puntos. La interpolacin polinomial
consiste en determinar el nico polinomio de orden ) 1 ( n que se ajuste a los n puntos de datos. Este
polinomio provee una frmula para calcular los valores intermedios.


Figura 2. Ejemplos de interpolacin polinomial. a) primer orden (lineal) conectando dos puntos, b)
segundo orden (cuadrtico o parablico) conectando tres puntos y c) tercer orden (cbico) conectando
cuatro puntos.

Matlab representa los coeficientes polinomiales de una forma distinta a la anterior ecuacin. En lugar de
utilizar coeficientes crecientes de x utiliza potencias decrecientes, as:

n n
n n
p x p x p x p x f + + + + =


1
2
2
1
1
... ) ( (1)

Una forma sencilla para calcular los coeficientes se basa en el hecho de que n puntos de datos son
requeridos para determinar n coeficientes. Esto permite generar n ecuaciones algebraicas lineales que
se resuelven simultneamente para encontrar los coeficientes.
Determinacin de coeficientes polinomiales

- Ejemplo

. Determinar los coeficientes de la parbola f(x)=p
1
x
2
+p
2
x+p
3
, que pasan a travs de los ltimos
tres puntos de densidad del aire de la siguiente tabla:



x
1
= 300 f(x
1
) = 0.616
x
2
= 400 f(x
2
) = 0.525
x
3
= 500 f(x
3
) = 0.457

Cada una de estas parejas puede ser sustituida en la ecuacin (1) para originar un sistema de tres
ecuaciones:

0.616 = p
1
(300)
2
+ p
2
(300) + p
3

0.525 = p
1
(400)
2
+ p
2
(400) + p
3

0.457 = p
1
(500)
2
+ p
2
(500) + p
3


o en forma matricial:

(
(
(

457 . 0
525 . 0
616 . 0
1 500 250000
1 400 160000
1 300 90000
3
2
1
p
p
p


As, el problema se reduce a resolver el sistema algebraico de tres ecuaciones lineales para tres
coeficientes desconocidos. Usando Matlab se obtiene la solucin:

>> format long
>> A = [90000 300 1;160000 400 1;250000 500 1];
>> b = [0.616 0.525 0.457];
>> p = A\b
p =
0.00000115000000
-0.00171500000000
1.02700000000000

As, la parbola que pasa exactamente por los tres puntos es:

f(x) = 0.00000115x
2
0.001715x + 1.027

Este polinomio provee un medio para determinar los puntos intermedios. Por ejemplo, el valor de
densidad a una temperatura de 350 C puede ser calculado como

f(350) = 0.00000115(350)
2
0.001715(350) + 1.027 = 0.567625

Condicionamiento de una matriz. Hay sistemas en los que un pequeo cambio en los coeficientes
provoca un gran cambio en la solucin. Estos sistemas se llaman mal condicionados. Esto indica que el
sistema es muy sensible a los errores de redondeo y su solucin es poco fiable. Matlab dispone de una
medida del condicionamiento. La funcin cond toma valores de 1 hasta infinito. Cuanto mayor es cond,
peor es el comportamiento de la matriz. Para el ejemplo anterior:

>>cond(A)
ans =
5.8932e+006

Este nmero de condicionamiento, el cul es bastante grande para una matriz de 3x3, implica que cerca
de seis dgitos de la solucin sern cuestionables. El mal condicionamiento se vuelve peor a medida que
el nmero de ecuaciones se incrementa. Como consecuencia, hay mtodos alternativos para calcular los
coeficientes: mtodo de Newton y Lagrange.

Interpolacin lineal. La forma ms simple de interpolacin es conectar dos puntos de datos con una lnea
recta. Esta tcnica, llamada interpolacin lineal, se muestra en la siguiente grfica.
- Interpolacin polinomial de Newton.


Figura 3. Mtodo de interpolacin lineal de Newton

Usando tringulos semejantes:

1 2
1 2
1
1 1
) ( ) ( ) ( ) (
x x
x f x f
x x
x f x f



lo cul puede ser reordenado para obtener:

) (
) ( ) (
) ( ) (
1
1 2
1 2
1 1
x x
x x
x f x f
x f x f

+ = (2)
La cul es llamada la frmula de interpolacin lineal de Newton. La notacin f
1
(x) designa que es una
interpolacin lineal de primer orden. Note que ms all de la representacin de la pendiente de la lnea
conectando los dos puntos, el trmino [f(x
2
) f(x
1
)]/(x
2
x
1
)] es la aproximacin de diferencia finita de la
primera derivada. En general, mientras ms pequeo sea el intervalo mejor ser la aproximacin. Esto
es debido a que cuando el intervalo disminuye, una funcin continua ser aproximada de mejor forma a
una lnea recta.

-Ejemplo

. Estime el logaritmo natural de 2 usando interpolacin lineal. Primero, desempee el clculo
interpolando entre ln 1 = 0 y ln 6 = 1.791759. Luego, repita el procedimiento, pero use un intervalo ms
pequeo desde ln 1 a ln 4 (1.386294). Note que el valor verdadero de ln 2 es 0.6931472.
Solucin. Usando la ecuacin (2) con x
1
=1 y x
2
=6 tenemos:

3583519 . 0 ) 1 2 (
1 6
0 791759 . 1
0 ) 1 2 (
1 6
) 1 ( ) 6 (
) 1 ( ) 2 (
1
=


+ =

+ =
f f
f f


el cual representa un error del 48.3%. Usando un intervalo ms pequeo desde x
1
= 1 a x
2
= 4 tenemos:

4620981 . 0 ) 1 2 (
1 4
0 386294 . 1
0 ) 2 (
1
=


+ = f

As, usando un intervalo ms corto se reduce el porcentaje de error relativo al 33.3%. Ambas
interpolaciones son mostradas en la figura 4.


Figura 4. Dos interpolaciones lineales para estimar ln2.

Interpolacin cuadrtica. El error en el ejemplo anterior resulta de la aproximacin de una curva
mediante una lnea recta. Una estrategia para mejorar la estimacin es introducir una curva dentro de
la lnea que conecta los dos puntos. Si hay tres datos disponibles, esto puede ser acompaado con un
polinomio de segundo orden (tambin llamado polinomio cuadrtico o una parbola). Una forma
particularmente conveniente para este propsito es:

f
2
(x) = b
1
+ b
2
(x x
1
) + b
3
(x x
1
)(x x
2
) (3)

Un simple procedimiento puede ser usado para determinar los valores de los coeficientes. Para b
1
, de la
ecuacin (3) con x = x
1
se puede usar para calcular

b
1
= f(x
1
)

La cul puede ser sustituida dentro de la ecuacin (3) evaluando a x = x
2
para obtener:

1 2
1 2
2
) ( ) (
x x
x f x f
b

=

Finalmente las ecuacin es de b
1
y b
2
pueden ser sustituidas en (3), la cul puede ser evaluada en x = x
3
y
ser solucionada (despus de una manipulacin algebraica) para

1 3
1 2
1 2
2 3
2 3
3
) ( ) ( ) ( ) (
x x
x x
x f x f
x x
x f x f
b

=

-Ejemplo

. Emplee un polinomio de Newton de segundo orden para estimar ln 2 con los mismos tres
puntos usados en el ejemplo anterior.
x
1
= 1 f(x
1
) = 0
x
2
= 4 f(x
2
) = 1.386294
x
3
= 6 f(x
3
) = 1.791759

Solucin.

0518731 . 0
1 6
4620981 . 0
4 6
386294 . 1 791759 . 1
4620981 . 0
1 4
0 386294 . 1
0
3
2
1
=

=
=


=
=
b
b
b


Sustituyendo los valores en la ecuacin (3) origina la frmula cuadrtica:

f(x)=0+ 0.4620981(x 1) 0.0518731(x 1)(x 4)

la cul puede ser evaluada en x = 2 para f2(2) = 0.5658444, el cul representa un error relativo de 18.4%.
As, la curvatura introducida en la frmula cuadrtica mejora la interpolacin comparada con el
resultado obtenido a partir de una interpolacin lineal.


Figura 5. Comparacin entre la aproximacin lineal y cuadrtica.

Frmula general de la interpolacin polinomial de Newton. El anlisis anterior puede ser generalizado
para ajustar un polinomio de orden (n 1) a n puntos de datos. El polinomio de orden (n 1) es:

f
n1
(x) = b
1
+ b
2
(x x
1
) + + b
n
(x x
1
)(x x
2
) (x x
n1
) (4)

Como se hizo previamente con la interpolacin lineal y cuadrtica, los puntos de datos pueden ser
usados para evaluar los coeficientes b
1
, b
2
, . . . , b
n
. Para un polinomio de orden (n 1), n punto de datos
son requeridos: [x
1
, f(x
1
)], [x
2
, f(x
2
)], . . . , [x
n
, f(x
n
)]. Se usan estos datos y las siguientes ecuaciones para
evaluar los coeficientes:

b
1
= f(x
1
)
b
2
= f[x
2
, x
1
]
b
3
= f[x
3
, x
2
, x
1
]
...
b
n
= f[x
n
, x
n1
, . . . , x
2
, x
1
]

donde las evaluaciones de las funciones entre parntesis son las diferencias finitas divididas. Por
ejemplo, la primer diferencia finita dividida se representa generalmente como:

| |
j i
j i
j i
x x
x f x f
x x f

=
) ( ) (
,

La segunda diferencia finita dividida, la cual representa la diferencia de las dor primeras diferencias
finitas divididas es expresada generalmente como:

| |
| | | |
k i
k j j i
k j i
x x
x x f x x f
x x x f

=
, ,
, ,

Similarmente, la diferencia finita dividida ensima es:

| |
| | | |
1
2 1 2 1
1 2 1
,..., ,..., ,
, ,..., ,
x x
x x f x x x f
x x x x f
n
n n n
n n




Figura 6. Representacin grfica de la naturaleza recursiva de la diferencias finitas divididas.

-Ejemplo

. En el ejemplo anterior los datos x
1
= 1, x
2
= 4, y x
3
= 6 fueron usados para estimar el ln 2 con
una parbola. Ahora, adicionando un cuarto punto [x
4
= 5; f(x
4
) =1.609438], estime el ln 2 con una
interpolacin polinomial de Newton de orden 3.
Solucin. El polinomio de tercer orden con cuatro datos es:

f
3
(x) = b
1
+ b
2
(x x
1
) + b
3
(x x
1
)(x x
2
) + b
4
(x x
1
)(x x
2
)(x x
3
)

Las primeras diferencias divididas del problema son:

| |
| |
| | 1823216 . 0
6 5
791759 . 1 609438 . 1
,
2027326 . 0
4 6
396294 . 1 791759 . 1
,
4620981 . 0
1 4
0 396294 . 1
,
3 4
2 3
1 2
=

=
=

=
=


=
x x f
x x f
x x f


Las segundas divisiones son:

| |
| | 02041100 . 0
4 5
2027326 . 0 1823216 . 0
, ,
05187311 . 0
1 6
4620981 . 0 2027326 . 0
, ,
2 3 4
1 2 3
=

=
=

=
x x x f
x x x f


La tercera divisin es:

| | 007865529 . 0
1 5
) 05187311 . 0 ( 02041100 . 0
, , ,
1 2 3 4
=


= x x x x f

As, la tabla de diferencias divididas es:

x
i
f(x
i
) Primera Segunda Tercera
1 0 0.4620981 -0.05187311 0.007865529
4 1.386294 0.2027326 -0.02041100
6 1.791759 0.1823216
5 1.609438

Los resultados para f(x
1
), f[x
2
, x
1
], f[x
3
, x
2
, x
1
], y f[x
4
, x
3
, x
2
, x
1
] representan los coeficientes b
1
, b
2
, b
3
, y b
4
,
respectivamente. As, la interpolacin cbica es

f
3
(x) = 0 + 0.4620981(x 1) 0.05187311(x 1)(x 4) + 0.007865529(x 1)(x 4)(x 6)

la cual puede ser usada para evaluar f
3
(2) = 0.6287686, el cual representa un error relativo de 9.3%.


Figura 7. Interpolacin cbica.

Archivo-m para la interpolacin de Newton
function yint = Newtint(x,y,xx)
% Newtint: Newton interpolating polynomial
% yint = Newtint(x,y,xx): Uses an (n - 1)-order Newton
% interpolating polynomial based on n data points (x, y)
% to determine a value of the dependent variable (yint)
% at a given value of the independent variable, xx.
% input:
% x = independent variable
% y = dependent variable
% xx = value of independent variable at which
% interpolation is calculated
% output:
% yint = interpolated value of dependent variable
% compute the finite divided differences in the form of a
% difference table
n = length(x);
if length(y)~=n, error('x and y must be same length'); end
b = zeros(n,n);
% assign dependent variables to the first column of b.
b(:,1) = y(:); % the (:) ensures that y is a column vector.
for j = 2:n
for i = 1:n-j+1
b(i,j) = (b(i+1,j-1)-b(i,j-1))/(x(i+j-1)-x(i));
end
end
% use the finite divided differences to interpolate
xt = 1;
yint = b(1,1);
for j = 1:n-1
xt = xt*(xx-x(j));
yint = yint+b(1,j+1)*xt;
end

Utilizndolo en el ejemplo:

>> format long
>> x = [1 4 6 5];
>> y = log(x);
>> Newtint(x,y,2)
ans = 0.62876857890841
Referencias:
- J. Kiusalaas, Numerical methods in engineering with Matlab, Cambridge University Press (2005).
- S.C. Chapra, Applied numerical methods with Matlab, Mc Graw Hill (2008).
- C. Woodford y C. Phillips, Numerical methods with worked examples, Springer (1997).

También podría gustarte