Sunteți pe pagina 1din 6

Una aplicacin de interpolacin por medio de funciones spline

Marta C. Vidal1,2, Adriana B. Verdiell2,3


(1) Facultad de Ingeniera, Universidad Tecnolgica Nacional Regional Baha Blanca. (2) Departamento de Matemtica, Universidad Nacional del Sur. mcvidal@criba.edu.ar (3) Facultad de Ingeniera, Universidad Nacional de La Pampa. averdiel@criba.edu.ar

RESUMEN: La enseanza de la Matemtica en las carreras de Ingeniera es un desafo para los docentes puesto que el avance tecnolgico y el manejo que tienen los alumnos de procesadores compromete a los docentes a utilizarlos como medios didcticos. En asignaturas como Mtodos Numricos es esencial la incorporacin de una herramienta computacional adecuada que permita comprender, visualizar y aplicar las tcnicas desarrolladas por el docente. De esta manera el estudiante se convierte en un individuo activo y crtico, capaz de aplicar la teora aprendida y estudiar aplicaciones ms avanzadas de la matemtica en Ingeniera. En este trabajo se describe una aplicacin de interpolacin por medio de funciones splines cbicas utilizando MATLAB, propuesta a alumnos de Mtodos Numricos de carreras de Ingeniera de Universidades Nacionales con el objetivo de visualizar, comparar, discutir los resultados obtenidos y presentar alternativas de resolucin que no resultan evidentes en un primer momento.

PALABRAS CLAVES: Aproximacin de datos, Interpolacin, Spline cbica. resultados y para una adecuada exposicin detallamos en las secciones siguientes.

INTRODUCCIN

Uno de los objetivos de la educacin universitaria es sin duda preparar a los estudiantes de hoy para un mundo velozmente cambiante e interdependiente, ensendoles a reflexionar a partir de conocimientos y capacitarlos para su aplicacin de manera flexible y responsable. Esto implica no slo aportarles conocimientos tericos sino tambin manejo de los medios disponibles para su aplicacin. Una visin crtica permitir escoger entre mltiples posibilidades comparando costos y beneficios teniendo en cuenta que difcilmente haya una nica opcin como herramienta para resolver un problema. Con esta finalidad hemos includo en nuestros cursos de Anlisis Numrico, la resolucin de un problema como requisito para cursar la materia. La resolucin del mismo debe ser presentada en un informe escrito y defendida en forma oral. En la seccin 2 de esta contribucin describimos uno de los problemas propuestos una de nuestras ctedras y las herramientas tericas que disponen los alumnos, en la seccin 4 mencionamos los

2 EL PROBLEMA Los alumnos divididos en grupos de no ms de tres personas deben dibujar el contorno de la mano de uno de sus integrantes usando las herramientas interpolacin que ofrece MATLAB. A continuacin se describen brevemente las interpolaciones ms habituales intentadas por los alumnos y que son estudiadas en detalle en los cursos de Anlisis Numrico.

2.1 Interpolacin polinomial Dados n puntos (x1 , y1 ), (x 2 , y 2 ),...., (x n , y n ) existe un nico polinomio de grado menor o igual que n-1 que los interpola. La forma ms compacta de representarlo es la llamada forma de Lagrange: n n xxj P( x ) = yk . xk x j k =1 j k

) )

La forma ms habitual de escribir un polinomio, es como suma de monomios, es decir, P( x ) = c1 x n 1 + c 2 x n 2 + ......... + c 0 y las condiciones de interpolacin puede representarse matricialmente por el sistema lineal
n x1 1 n 1 x2 . . . x n 1 n n x1 2 n x 2 2

f ( x ) Pn ( x ) =

.... .... .... .... ....

x1 x2 . . xn

. . n x n 2

1 c1 y1 1 c 2 y 2 . . = . . . . . . 1 c n y n

para x [a , b] y c x una incgnita entre los valores mximos y mnimos del conjunto {x 0 , x1 ,...., x n , x}. Esta frmula pone de manifiesto que el error depende en gran medida del comportamiento del ( x ) = (x x 0 )(x x1 )...(x x n ) cuyos factor valores varan notablemente en el intervalo [x 0 , x n ]. , como puede comprobarse en la Figura 1, en el caso en que x i = i + 1, i = 0,..5
10

(x x 0 )(x x1 )....(x x n ) n+1 f ( cx ) (n + 1)!

En forma compacta,

Vc = y

con

Vij = x ij i , j = 1...n .

V R n x es la matriz de Van der Monde. Esta matriz puede ser creada fcilmente con MATLAB con la sentencia ' >> V=vander(x) siendo x = [x1 , x 2 ,.., x n ] .

-5

-10

Si se define y = [ y1 , y 2 ,.., y n ]' , la solucin del sistema est dada por c=V\y . Desde el punto de vista numrico este mtodo no es recomendable debido al mal condicionamiento de la matriz V. Como ejemplo es suficiente recordar que el nmero de condicin de la matriz de Van de Monde generada a partir del los primeros 6 nmeros naturales es 7.3120e+005. Otra sentencia de MATLAB que implementan algoritmos de interpolacin es: >> V=interp(x,y,u) donde (x,y) es el vector de puntos a interpolar y u el vector de puntos donde el polinomio interpolador debe ser calculado. Las desventajas de estas tcnicas son bsicamente dos: 1. el alto costo computacional cuando el nmero de puntos a interpolar es grande. la excesiva variacin del polinomio interpolante principalmente en los extremos del intervalo que contiene los valores de las abcisas.

-15

-20

1.5

2.5

3.5

4.5

5.5

Figura 1. y = (x) Al considerar la funcin ( x ) como parte del error, se pone de manifiesto que es menor para valores de x cercanos al punto medio del intervalo y crece notablemente en los extremos. Cabe sealar que al interpolar una funcin, an cuando se aumenten los nodos, nada asegura que disminuya el error. 1 en el intervalo Por ejemplo para f ( x) = 1+ x 2 [5,5] , si se define h = 10 y los nodos n x j = 5 + jh para j=0,1n , puede probarse que las interpolaciones por polinomios Pn ( x ), n 2, no convegen a f ( x ) para h 0. En la figura 2 se muestra los grficos de la funcin y el polinomio de grado 6

2.

das continuas en [a,b] en n+1 puntos x 0 < x1 < x 2 < ... < x n por un polinomio Pn ( x ) de grado a lo sumo n puede estimarse de acuerdo a la siguiente frmula:

En efecto puede probarse que el error en la interpolacin de una funcin f ( x ) con n + 1 deriva-

5 2 4 1.5 P10(x) 1 3

0.5

y=1/(x 2+1) 0

-1 -0.5 -5 -4 -3 -2 -1 0 1 2 3 4 5

0.5

1.5

2.5

3.5

Figura 4. y=P6(x) interpolacin polinomial Figura 2. Aproximacin de f (x ) =


1 a + x2

por P6 (x )

Para motivar la definicin y el uso de funciones spline comenzamos con el problema de interpolar los datos que se muestran en la siguiente tabla: x y 0 2.5 1 0.5 2 0.5 2.5 1.5 3 1.5 3.5 1.125 4 0

El mtodo de interpolacin ms simple es conectar los nodos por segmentos de recta l (x ) puede apreciarse en la Figura 3.
2.5

Si se interpola por una sucesin de polinomios de segundo grado que denotamos q (x ) puede verse en la Figura 5 que el grfico es ms suave que el de l (x ) y ms parecido al de P6 (x ) , sin embargo persisten problemas n los puntos de abscisa 2 y 3 ya que q' (x ) es discontinua en dichos puntos. Por lo tanto el objetivo es encontrar una funcin interpolante suave, que no vare demasiado entre los nodos cuando se la compara con l (x ) . De todos modos, para muchas aplicaciones q (x ) puede ser satisfactoria, por ejemplo, para integracin numrica de datos.

2.5

1.5

1.5

1 1 0.5 0.5 0 0

0.5

1.5

2.5

3.5

-0.5

0.5

1.5

2.5

3.5

Figura 3. y=l(x) interpolacin lineal a trozos

Figura 5. y=q(x): Interpolacin cuadrtica a trozos

Si bien los datos son exactamente representados, en general se desea tener al menos una curva suave. Como los datos son siete, se puede intentar en una interpolacin por P6 ( x ), polinomio de grado 6. En este caso la Figura 4 muestra la curva obtenida; se diferencia de la anterior fundamentalmente en los valores obtenidos en el intervalo [0,1] .

Con el objetivo de evitar los problemas mencionados es usual proponer una interpolacin con funciones spline, cuyas caractersticas detallamos a continuacin.

2.2 Interpolacin por medio de funciones spline La idea fundamental detrs de este tipo de interpolacin est basada en la herramienta usada para dibujar curvas suaves que unen ciertos datos.

Esta herramienta consiste en pesos que se adjuntan a una superficie plana en los puntos que deben ser unidos; se pasa una banda flexible por cada uno de los pesos y as queda definida una curva suave que los une. El principio matemtico de la funcin spline es similar, en este caso los puntos a unir son los datos y los pesos son los coeficientes de los polinomios interpolantes. Vamos a definir interpolacin por una spline cbica, es decir , la funcin interpolante es un polinomio cbico a trozos. 2.2.1 Spline cbica Sean (x1 , y1 )....(x n , y n ) n puntos del plano. Sea k 0 un nmero entero, una funcin spline de grado k con nodos x1 , x 2 ,.., x n es una funcin S que verifica :

S (x i ) = y i .

yi = d i Como la curva debe se continua, se impone s i ( xi ) = s i 1 ( xi ) De (2) resulta si ( xi ) = d i y (8)

(6) (7)

si 1( xi ) = ai 1( xi xi 1 )3 + bi 1( xi xi 1 )2 + ci 1( xi xi 1 ) + di 1

por lo tanto,
di = ai 1( xi xi 1 )3 + bi 1( xi xi 1 )2 + ci 1( xi xi 1 ) + di 1

para i = 1,2 ,L , n 1 . Tomando h = x i x i 1 en (8) resulta

(9)

en cada subintervalo [x i 1 , x i ) es un polinomio de grado k . S tiene sus (k-1) primeras derivadas continuas.

En el caso de k=3 se la llama spline cbica. Por lo tanto, es una funcin que S(x) que verifica:

s1 ( x) si S ( x) = s 2 ( x) si s ( x) si n1

x1 x < x 2 x 2 x < x3 x n 1 x < x n

(1)

con s i polinomio de tercer grado definido por

si ( x) = ai ( x xi ) 3 + bi ( x xi ) 2 + ci ( x xi ) + d i para i = 1,2 ,L , n 1 . (2) Las primeras y segundas derivadas juegan un rol fundamental :
Para i = 1,2 ,L , n 1 es

d i = ai 1h 3 + bi 1h 2 + ci 1h + d i 1 (10) para i = 1,2 ,L , n 1 . La condicin de suavidad impone que s i (x ) = c i y teniendo en cuenta la expresin para s i1 (x i ) , resulta: c i = 3a i 1 h 2 + 2bi 1 h + ci 1 (11) para i=2,3,,n-1. De (4) resulta s i( x i ) = 2bi (12) para i=2,,n-2. Finalmente, la condicin de continuidad de s i y la ecuacin anterior conducen va unas simples cuentas a la condicin: 2bi +1 = 6ai h + 2bi . ( 13) Las ecuaciones precedentes puede re-escribirse definiendo M i = s'i' (x i ) y expresndolas en trminos de M i e y i . Esto provoca la determinacin de los coeficientes a i , bi , c i y d i en una forma sencilla: Mi de (12) resulta bi = , (14) 2 d i = yi . (15) por (6), Procediendo de forma similar se puede verificar que M Mi ai = i +1 (16) 6h y yi M + 2M i ci = i +1 ( i +1 )h (17) 6 h
(14)-(17) definen ecuaciones que pueden representarse matricialmente como

si ( x) = 3ai ( x xi ) 2 + 2bi ( x xi ) + ci s i( x) = 6ai ( x xi ) + 2bi


Matemticamente las condiciones que debe satisfacer la funcin S(x) se traducen en las siguientes ecuaciones: S ( xi ) = y i Usando (2) y como xi [xi , xi + 1 ] y S ( xi ) = si ( xi ) resulta y i = s i ( x i ) por lo tanto,

(3) (4)

(5)

1 0 0 M 0 0 0

4 1 0 L 0 0 0 0 1 4 1 L 0 0 0 0 0 1 4 L 0 0 0 0 M M M N M M M M 0 0 0 L 4 1 0 0 0 0 0 L 1 4 1 0 0 0 0 L 0 0 0 1

M1 M y1 2 y 2 + y3 2 M3 y 2 2 y3 + y 4 y3 2 y 4 + y5 M4 = 6 M h2 yn 4 2 yn 3 + yn 2 M n 3 M y n 3 2 y n 2 + y n 1 n2 y M n 1 n 2 2 y n 1 + y n Mn

Como puede verse, tanto para determinar una spline natural como para una parablica, los sistemas lineales resultantes tienen una estructura tridiagonal que debe explotarse en el momento de su resolucin. Otro tipo de condiciones pueden consultarse en la bibliografa que se adjunta.

Este es un sistema indeterminado de n-2 filas y n columnas, por lo tanto se deben agregar dos condiciones ms si se quiere determinar una nica spline. Esto lleva a definir distintas clases de funciones spline dependiendo de las condiciones requeridas. La ms popular es la spline natural y corresponde a imponer la condicin M1 = M n = 0 que implica que la funcin interpoladora se extiende en forma lineal fuera del intervalo en consideracin. En ese caso, pueden eliminarse la ltima fila y columna de la matriz anterior y se obtiene el sistema de orden n-2
4 1 0 M 0 0 0 1 0 ... 0 0 0 4 1 K 0 0 0 1 4 K 0 0 0 M M O M M M 0 0 K 4 1 0 0 0 K 1 4 1 0 0 K 0 1 4 M2 y1 2 y2 + y3 M3 y 2 2 y3 + y 4 M4 y3 2 y 4 + y5 6 M M = 2 h M yn 4 2 yn 3 + yn 2 n 3 M n 2 yn 3 2 yn 2 + yn 1 M y n 1 n 2 2 yn 1 + yn

RESOLUCIN DEL PROBLEMA

En esta seccin describiremos los pasos seguidos por los alumnos para resolver el problema propuesto. En primer lugar deban recolectar los datos: les sugerimos no menos de 40 puntos del contorno de la mano. Para ello procedieron de alguna de estas maneras: Dibujaron el contorno de la mano en un papel, lo recortaron y lo apoyaron en la pantalla. Con el uso de la sentencia ginput de MATLAB eligieron puntos representativos. Tomando los puntos con la misma sentencia pero directamente con la mano en la pantalla. Despus deban escoger alguna de las tcnicas de interpolacin y usarlas para graficar. Entre los mtodos estudiados se inclinaron por interpolacin con spline cbica y en uno de los primeros intentos obtuvieron grficos como el de le Figura 6.
1

La spline cbica natural S que interpola a una funcin f dos veces continuamente derivable en un intervalo [a, b] , con nodos en dicho intervalo, verifica
b

[S' ' ( x )] dx f ' ' ( x )dx


2 b a

0.9

Entre otro tipo de funciones spline, podemos mencionar a la parablica la cual queda definida cuando se impone la siguiente restriccin en los extremos: M1 = M 2
M n 1 = M n Como resultado de esta condicin la curva es parablica en los puntos extremos. Este tipo de aproximacin resulta muy til cuando se interpolan datos peridicos o exponenciales. La ecuacin matricial en este caso es:
5 1 0 M 0 0 0 1 0 ... 0 0 0 M 2 y1 2 y 2 + y3 4 1 K 0 0 0 M 3 y 2 2 y3 + y 4 y3 2 y 4 + y5 1 4 K 0 0 0 M 4 6 M M M O M M M M = 2 h yn 4 2 yn 3 + yn 2 0 0 K 4 1 0 M n 3 0 0 K 1 4 1 M n 2 yn 3 2 y n 2 + yn 1 y M 0 0 K 0 1 5 n 1 n 2 2 y n 1 + yn

0.8

0.7

0.6

0.5

0.4

0.25

0.3

0.35

0.4

0.45

0.5

0.55

0.6

0.65

Figura 6.

Esto los motiv para recolectar otros datos y hacer nuevos intentos. Finalmente por sugerencia de los docente efectuaron una doble interpolacin: en el eje de abcisas y ordenadas con lo que consiguieron perfiles altamente satisfactorios como muestra la Figura 7.

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Figura 7.

4 CONCLUSIONES La experiencia result ampliamente satisfactoria pues los alumnos se vieron motivados a conocer con profundidad la teora de interpolacin para poder aplicarla con xito. Las discusiones planteadas en el aula resultaron enriquecedoras no slo para los ms aventajados sino para aqullos que tenan alguna dificultad con la aplicacin de la teora o con el manejo del software. Al tener que elaborar un informe debieron ser cuidadosos en las formas de presentacin de un trabajo y al defenderlo en pblico estuvieron obligados a enfrentarse a una situacin desconocida para muchos de ellos que les ser ineludible en el ejercicio de la profesin. Los alumnos que manifestaron que esta forma de trabajo les brind herramientas que no logran con otras ms convencionales y nos comprometi como docentes a intentar profundizarla con ms propuestas a lo largo del dictado de los cursos.

REFERENCIAS Atkinson, K. Elementary Numerical Analysis. John Wiley & Sons, Inc., 1993. Burden,R., Faires D. Anlisis Numrico. Editorial Thompson. 2003. Kincaid, D., Cheney W. Numerical Analysis Brooks/Cole Publishing,. 1990. Moler C. Numerical Computing with MATLAB. SIAM. 2004.

S-ar putea să vă placă și