splines cúbicos

49

Click here to load reader

Upload: -

Post on 24-Nov-2015

211 views

Category:

Documents


13 download

DESCRIPTION

Splines Cúbicos

TRANSCRIPT

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 1 de 49

    AJUSTES DE CURVAS Interpolacin con Trazadores o Splines

    Ing. Yamil Armando Cerquera1

    Esp Sistemas U. Nacional de Colombia Facultad de Ingeniera

    Universidad Surcolombiana

    CONTENIDO

    TRAZADORES SPLINES ......................................................................................................................... 2

    FUNCIONES SPLINES DE GRADO 0..................................................................................................... 3 FUNCIONES SPLINES DE GRADO 1..................................................................................................... 4

    Algoritmo Funcin Spline Lineal ................................................................................................. 5 Ejemplo para Splines lineales...................................................................................................... 7

    FUNCIONES SPLINES DE GRADO 2 ................................................................................................... 8 Ejemplo ............................................................................................................................................ 9

    FUNCIONES CON SPLINES CBICOS ............................................................................................... 15 Otra Deduccin general del modelo de Splines Cbicos........................................................... 20

    Algoritmo en seudolenguaje para Construir el spline cbico natural S, de la funcin f definida en los nodos .................................................................................................................. 24 Algoritmo en cdigo para encontrar los coeficientes iZ de un spline cbico. ................ 25 Ejemplo con la funcin spline de MatLab ............................................................................... 26 Ejemplo con la funcin spline de MatLab ............................................................................... 27

    Ejemplo con sistema de ecuaciones simultneas....................................................................... 28 Ejemplo con sistema simultneo de ecuaciones ........................................................................ 31 Un caso particular............................................................................................................................ 34 El caso general.................................................................................................................................. 37

    Prctica con MATLAB ........................................................................................................................... 39 Ejemplos con sistemas simultneos de ecuaciones ................................................................... 39 Ejemplo con Polyfit ......................................................................................................................... 39 Ejemplo con Polyfit ......................................................................................................................... 42 Ejemplo con la funcin Spline ....................................................................................................... 43 Ejercicios propuestos ...................................................................................................................... 46

    Ejercicio N 1:............................................................................................................................... 46 Ejercicio N 2:............................................................................................................................... 46 Ejercicio N 3:............................................................................................................................... 47 Ejercicio N 4:............................................................................................................................... 47

    RECURSOS BIBLIOGRAFCOS ................................................................................................................ 48 Bibliografa Bsica: .......................................................................................................................... 48 Bibliografa Complementaria: ........................................................................................................ 48 Bibliografa OnLine: ......................................................................................................................... 49

    1 Docente de planta. Universidad Surcolombiana. Escalafn Asociado. Programa Ingeniera Electrnica

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 2 de 49

    TRAZADORES SPLINES

    La palabra inglesa spline denota un instrumento flexible usado en dibujo tcnico que sirva para trazar curvas suaves (algunas veces se traduce como trazador). Este instrumento es una regla que puede adaptarse flexionndola para que tome la forma de la curva que se desea dibujar. Es precisamente la propiedad de que pueda adaptarse bien a las formas dadas de una funcin, el que las funciones spline sean utilizadas para interpolarlas en un intervalo [a, b], obedeciendo algunas condiciones de regularidad o suavidad. De acuerdo a lo anterior, una funcin spline es una funcin que consiste en determinar pedazos de polinomios en subintervalos [a, b] unidos con ciertas condiciones de suavidad. Este tipo de interpolacin que ha demostrado poseer una gran finura y que inclusive es usado para el diseo asistido por computadora, por ejemplo, de tipos de letra. Esta interpolacin se llama interpolacin segmentaria o interpolacin por splines. La idea central es que en vez de usar un solo polinomio para interpolar todos los datos (Pares coordenados), se pueden usar segmentos de polinomios entre pares coordenados de datos y unir cada uno de ellos adecuadamente para ajustar los datos. Vale la pena resaltar que entre todas las formas de ajustar datos, los splines cbicos han resultado ser los ms adecuados para cualquier tipo de aplicacin. As pues, se puede decir de manera informal, que una funcin spline est formada por varios polinomios, cada uno definido en un intervalo y que se unen entre si bajo ciertas condiciones de continuidad.

    Para un conjunto numeroso de puntos ( ) ( ) ( ) ( ){ })(,,...,)(,,)(,,)(, 221100 nn xfxxfxxfxxfx , no es muy til calcular el polinomio interpolante que pasa por estos puntos, pues ste tiende a tener grandes oscilaciones. Ms aconsejable es hacer una interpolacin secuencial de grado bajo sobre subconjuntos ms pequeos del total de puntos, definiendo as una funcin a trozos. Una primera forma de aproximar la funcin )(xf en cada intervalo ),( 1+kk xx es mediante un polinomio lineal, lo que se conoce como interpolacin segmentaria lineal. Una segunda posibilidad es aproximar la funcin en cada intervalo mediante un polinomio cuadrtico, lo que se conoce como interpolacin segmentaria cuadrtica, esta vez imponiendo algunas condiciones sobre el comportamiento de los polinomios aproximantes en cada segmento. Finalmente se tiene la interpolacin segmentaria cbica, la cual une cada subintervalo con polinomios de orden 3. La interpolacin a trozos ms til y de uso generalizado en diversos campos tales como el diseo, los grficos por computadora, la economa, etc., es la que se realiza mediante polinomios de grado tres, llamados trazadores o splines cbicos que se definen en cada uno de los subintervalos ),( 1+kk xx definidos por las abscisas de los puntos ),( ii yx a interpolar. La idea es construir estos polinomios cbicos de tal forma que cualesquiera dos de ellos definidos en intervalos contiguos ),( 1 kk xx y ),( 1+kk xx , ambos coincidan en xk no solo como funcin sino tambin en su primera y segunda derivada, con el fin de que haya suavidad en los puntos ),( kk yx de coincidencia de ambas grficas.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 3 de 49

    En cada subintervalo ),( 1+kk xx , )(xS tiene derivada continua hasta de orden k-1 en (xo,xn). Se denomina a )(xS Spline cbico o simplemente spline, si los polinomios )(xqk tienen la misma pendiente y la misma concavidad en los nodos que los unen.

    FUNCIONES SPLINES DE GRADO 0

    Los splines de grado 0 son funciones constantes por zonas. Una forma explcita de presentar un spline de grado 0 es la siguiente:

    =

    ==

    = ),(....)(

    ....),(....)(),(....)(

    )(

    111

    2111

    1000

    nnnn ttxcxS

    ttxcxSttxcxS

    xS

    Los intervalos (ti-1,ti) (xi-1,xi) no se intersectan entre s, por lo que no hay ambigedad en la definicin de la funcin en los nodos.

    Figura 1 Spline de grado 0 con seis puntos

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 4 de 49

    FUNCIONES SPLINES DE GRADO 1

    La funcin poligonal cuyos pedazos son polinomios lineales unidos para obtener continuidad en el intervalo [a, b] estara dado por.

    Los puntos 821 ,,, xxx K son denominados como nodos y la funcin Spline S(x) esta dada por el siguiente sistema de ecuaciones:

    Ecuacin 1

    [ ][ ][ ]

    +

    ++

    = ,

    , , 1

    )(

    8777

    3222

    211

    xxxbxa

    xxxbxaxxxbxa

    xS M

    Con las siguientes caractersticas: 1) El dominio de S(x) es [a, b] 2) S es continua en [a, b] 3) El intervalo [a, b] se particiona en puntos llamados nodos a = x1 < x2 < x3 < < xn= b, de

    tal manera que S es un polinomio lineal en cada subintervalo [ ]1, +ii xx . La ecuacin de los segmentos lineales individuales en cada subintervalo [ ]1, +ii xx est dada por

    ii

    iiiiii xx

    yymdondexxmy

    =+++

    1

    1, ), (

    De acuerdo a la siguiente grfica:

    a = x1 x2 x3 x4 x5 x6 x7 x8=b

    P1

    P2P3

    P4 P5

    P6

    P7

    xi xi+1

    (xi+1,yi+1)

    (xi,yi)

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 5 de 49

    Por lo que la funcin spline s(x) dada en Ecuacin 1 se puede escribir tambin como: Ecuacin 2

    [ ][ ]

    [ ]

    +

    ++

    =

    , )(

    , )( , )(

    )(

    1111

    32212

    21111

    nnnnn xxxxxmy

    xxxxxmyxxxxxmy

    xS M

    La Ecuacin 1 es mejor que la Ecuacin 1, ya que se calcula explcitamente el valor de x xi, para determinar el intervalo que contiene a x dada para interpolar. El intervalo [ xi , xi+1 ] que contiene a x, est caracterizado por el hecho de que x xi+1 es la primera de las cantidades: x x1, x x2, , que es negativa. A continuacin se presenta el algoritmo para la Funcin Spline Lineal.

    Algoritmo Funcin Spline Lineal

    Dada la siguiente tabla con n datos y la x deseada, obtener S(x) como se indic en (2). Se supone que x1 < x2 < x3 < < xn y que: Si x < x1 entonces S(x) = y1 + m1 (x x1) Si x > xn entonces S(x) = yn-1 + mn-1 (x xn-1) Para i = 1,2,...,n-1

    1.1 Hacer : AUX = x xn-i

    1.2 Si AUX 0.0 1.2.1 Hacer

    AUXmyPS

    xxyy

    m

    ininin

    inin

    ininin

    *,11

    1

    ++

    +==

    1.3 En otro caso i = i +1 regresar a 1.1

    A manera de resumen, se puede decir que los splines de grado 1, o splines lineales son funciones polinomiales de grado 1 (Rectas de la forma baxxf +=)( ) que se encargan de unir cada par de coordenadas mediante una recta.

    Dados los n+1 puntos:

    x x0 x1 x2 ..... xny y0 y1 y2 .... yn

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 6 de 49

    Una funcin spline de grado 1 que interpole los datos es simplemente unir cada uno de los puntos (Par coordenados) mediante segmentos de recta, como se ilustra en las siguientes figuras:

    Figura 2. Spline de grado 1 con 4 puntos

    Figura 3 Spline de grado 1 con 6 puntos

    Claramente esta funcin cumple con las condiciones de la spline de grado 1. As, se tiene que para este caso:

    +=

    +=+=

    = ),(....)(

    ....),(....)(),(....)(

    )(

    1111

    21111

    10000

    nnnnn ttxbxaxS

    ttxbxaxSttxbxaxS

    xS

    +=

    +=+=

    = ),(....)(

    ....),(....)(),(....)(

    )(

    1111

    21111

    10000

    nnnnn xxxbxaxS

    xxxbxaxSxxxbxaxS

    xS

    Donde:

    1. sj(x) es un polinomio de grado menor o igual que 1 2. s(x) tiene derivada continua de orden k-1=0. 3. s(xj)=yj, para j=0,1,2,...,n

    Por lo tanto, el spline de grado 1 queda definido como:

    [ ] )(, 0210 xxxxfy + si [ ]10 , xxx [ ] )(, 1121 xxxxfy + si [ ]21 , xxx

    . . . . s(x) = { [ ] )(, 111 + nnnn xxxxfy si [ ]nn xxx ,1 }

    Donde f[xi,xj] es la diferencia dividida de Newton.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 7 de 49

    Ejemplo para Splines lineales

    Dada la tabla:

    x1 x2 x3 x4 x5 x6 x7 x8 x 1 3 4 6 8 12 14 17

    yxf =)( 4 8 6 6 10 10 6.5 12 Encontrar el valor de )(xf para 10=x . n = 8 nodos, x = 10, i = 1, 2,...,7, inxxAUX =

    i = 1 7xxAUX = = 10 14 = -4 < 0, por tanto i = i+1 = 2 i = 2 6xxAUX = = 10 12 = -2 < 0, por tanto i = i+1 = 3 i = 3 5xxAUX = = 10 8 = 2 > 0, por tanto 0812

    1010

    56

    565 =

    === xx

    yymm in

    10010)810(*010)( 5555,1 =+=+=+= xxmyPS . Por tanto 10)10( =f . La funcin spline S(x) para este problema, en todos los puntos y los valores de x = 1.5, 10 y 15 se encuentra en la siguiente tabla y grfica.

    xi )( ixf mi iPS ,1 Intervalo 1 4 +2 4 x en [1 , 3] 1.5 5 x en [1 , 3] 3 8 -2 8 x en [3 , 4] 4 6 +0 6 x en [4 , 6] 6 6 +2 6 x en [6 , 8] 8 10 +0 10 x en [8 , 12]10 +1.625 10 x en [8 , 12]12 10 -1.750 10 x en [12, 14]14 6.5 +1.8333333336.5 x en [14, 17]15 8.333333333x en [14, 17]

    02468

    101214

    0 5 10 15 20

    f(xi)S(x)

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 8 de 49

    FUNCIONES SPLINES DE GRADO 2

    Los splines de orden o grado dos (2), se encargan de unir cada par coordenado con ecuaciones polinomiales de orden dos. Las ecuaciones son de la forma general

    cbxax ++2 . Dado un intervalo [a,b], se particiona ste en sub-intervalos jI de la forma:

    1,,2,1,],,[ 1 == + njixxI iij K Y para cada uno de estos stos intervalos, se define un polinomio de interpolacin cuadrtico de la forma: jjjj cxbxaxP ++= 2,2 )( Dado que se tiene para cada polinomio tres incgnitas, se tienen 1n intervalos y n puntos, para obtener los valores de los coeficientes 1,...2,1;,, = njcba jjj , es decir, )1(3 n incgnitas, se requieren 3(n-1) ecuaciones, para formar el sistema de ecuaciones. Esto se puede lograr considerando las siguientes condiciones que debe cumplir la funcin spline cuadrtica.

    1. Las valores de los polinomios deben ser iguales en los nodos interiores, esto es,

    iiiiii

    iiiiii

    ycxbxaycxbxa

    =++=++

    211

    21

    Para i = 2,...,n-1, por lo que de aqu se tienen 2(n-2) condiciones y por tanto se generan 2n-4 ecuaciones.

    2. El primer y ltimo polinomio deben pasar a travs de los puntos inicial y final, esto

    es,

    nnnnin ycxbxaycxbxa

    =++=++

    21111

    211

    Son dos condiciones por lo que se generan dos ecuaciones.

    3. Las primeras derivadas en los nodos interiores deber ser iguales (condicin de

    continuidad), entonces:

    jjj bxaxP += 2)(,2 Por lo que

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 9 de 49

    1,,2022

    22

    11

    11

    ==+

    +=+

    niparabxabxabxabxa

    iiiiii

    iiiiii

    K

    Estas n-2 condiciones generan n-2 ecuaciones. Considerando las ecuaciones que generan las condiciones de 1), 2) y 3), se tienen:

    ecuacionesnnn 432242 =++ , por lo que falta una ecuacin para tener las 3n-3 que se necesitan.

    4. Si se cuenta con informacin adicional en relacin a la funcin y sus derivadas, se

    elige alguna, sino se elige una condicin arbitraria para calcular los coeficientes eficientemente.

    Ejemplo: Suponer que la segunda derivada es cero en el primer punto, por lo que si:

    0022)(

    11

    ,2

    ===

    aaaxP jj

    Lo anterior implica que los dos primeros puntos se conectan mediante una lnea recta.

    Para aclarar mejor la idea, vea un ejemplo concreto, Ejemplo Considere los siguientes datos:

    X 3.0 4.5 7.0 9.0y 2.5 1.0 2.5 0.5

    Se tienen n = 4 puntos, 31 =n intervalos y tres polinomios cuadrticos de la forma: jjjj cxbxaxP ++= 2,2 )( , por lo que se requieren obtener 9 coeficientes. Los intervalos de

    acuerdo a la tabla anterior son los siguientes: [3,4.5], [4.5,7], [7,9] con )(),(),( 3,22,21,2 xPxPxP los polinomios cuadrticos respectivos

    Figura 4

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 10 de 49

    Proceda a calcular la interpolacin de los datos de la tabla anterior, usando los splines de grado 2. Primero que nada, observe en la tabla, que se forman tres intervalos en los datos sobre el eje x: [ ]5.4 , 0.3 [ ]0.7 , 5.4 [ ]0.9 , 0.7

    Para cada uno de los tres (3) intervalos, se debe definir una funcin polinomial de grado 2, tal como se ilustra a continuacin:

    112

    11,2 )( cxbxaxP ++= si [ ]5.4 , 0.3x 22

    222,2 )( cxbxaxP ++= si [ ]0.7 , 5.4x s(x) = {

    332

    33,2 )( cxbxaxP ++= si [ ]0.9 , 0.7x }

    Vale la pena aclarar que la ecuacin 112

    1 cxbxa ++ , une los puntos cuyas coordenadas estn dadas por (3,2.5) y (4.5,1), la ecuacin 22

    22 cxbxa ++ , une los puntos cuyas coordenadas

    estn dadas por (4.5,1) y (7,2.5), y la ecuacin 332

    3 cxbxa ++ los puntos cuyas coordenadas estn dadas por (7,2.5) y (9,0.5). En conclusin siendo 4 par coordenados se unen estos mediante tres ecuaciones polinomiales de orden 2. Para resolver el problema, primero, se hace que el spline pase por los puntos de la tabla de datos (por cada par coordenado). Es decir, se debe cumplir que:

    s(3)=2.5, s(4.5)=1, s(7)=2.5 y s(9)=0.5 Si se tiene en cuenta que para el valor inicial y el final:

    4343243

    1111211

    44231121 )(;)(

    ycxbxa

    ycxbxa

    yxPyxP

    =++=++

    ==,

    Se tienen dos ecuaciones, y Para los nodos interiores, 7,5.4 32 == xyx

    3333233

    3232232

    2222222

    2121221

    ycxbxa

    ycxbxa

    ycxbxa

    ycxbxa

    =++=++=++=++

    Se tienen 4 ecuaciones ms. Teniendo en cuenta lo anterior, se forman las siguientes ecuaciones:

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 11 de 49

    s(3) =2.5 { 5.239 111 =++ cba } Ec 1 S(4.5)=1 { 15.45.4 111

    2 =++ cba 15.45.4 222

    2 =++ cba }Ec 2

    Ec 3

    S(7)=2.5 { 5.2749 222 =++ cba 5.2749 333 =++ cba }Ec 4

    Ec 5

    S(9)=0.5 { 5.0981 333 =++ cba } Ec 6 Hasta aqu, se tiene un total de 6 ecuaciones vs. 9 incgnitas. El siguiente paso es manejar la existencia de las derivadas continuas. En el caso de los splines de grado 2, se necesita que el spline tenga derivada continua de orden k-1=1, es decir, primera derivada continua.

    Las primeras derivadas en los nodos interiores 7,5.4 32 == xyx , deben ser iguales:

    022 22022 22

    333232333232

    222121222121

    =++=+=++=+

    bxabxabxabxabxabxabxabxa

    Y hay otras dos ecuaciones ms. Ahora en el ejercicio, se calcula la primera derivada:

    S(x) = { 112 bxa + si [ ]5.4 , 0.3x

    222 bxa + si [ ]0.7 , 5.4x 332 bxa + si [ ]0.9 , 0.7x }

    Se observa que las derivadas anteriores, estn formadas por segmentos de rectas, que pudieran presentar discontinuidad en los cambios de intervalo. Es decir, las posibles discontinuidades se daran en x=4.5 y x=7.0 Por lo tanto para que s'(x) sea continua, se debe cumplir que: 2a1(4.5)+b1=2a2(4.5)+b2, siendo igual a:

    S(4.5) { 9a1+b1=9a2+b2 } Ec 7

    Y tambin debe cumplirse que: 2a2(7)+b2=2a3(7)+b3, siendo igual a:

    S(7) { 14a2+b2=14a3+b3 } Ec 8

    As que ahora, se tiene un total de 8 ecuaciones versus 9 incgnitas; esto da un grado de libertad para elegir alguna de las incgnitas. Se elige por simple conveniencia 01 =a , debido a que la segunda derivada del primer polinomio evaluado en el primer punto es cero.

    0 02 11 == aa , obteniendo la ltima ecuacin. De esta forma, se tiene un total de 8 ecuaciones vs. 8 incgnitas, siendo las ecuaciones las siguientes:

    5.23 11 =+ cb Ec 1 15.4 11 =+ cb Ec 2 15.425.20 222 =++ cba Ec 3

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 12 de 49

    5.2749 222 =++ cba Ec 4 5.2749 333 =++ cba Ec 5 5.0981 333 =++ cba Ec 6 09 221 = bab Ec 7 01414 3322 =+ baba Ec 8

    Este sistema de ecuaciones tiene la siguiente forma matricial:

    3 1 0 0 0 0 0 0 b1 2.5 4.5 1 0 0 0 0 0 0 c1 1

    0 0 20.25 4.5 1 0 0 0 a2 1 0 0 49 7 1 0 0 0 b2 2.5 0 0 0 0 0 49 7 1 c2 2.5 0 0 0 0 0 81 7 1 a3 0.5 1 0 -9 -1 0 0 0 0 b3 0 0 0 14 1 0 -14 -1 0 c3

    =

    0

    Haciendo uso de MatLab Scilab, se tendra lo siguiente:

    x=[3 1 0 0 0 0 0 0 4.5 1 0 0 0 0 0 0 0 0 20.25 4.5 1 0 0 0 0 0 49 7 1 0 0 0 0 0 0 0 0 49 7 1 0 0 0 0 0 81 9 1 1 0 -9 -1 0 0 0 0 0 0 14 1 0 -14 -1 0]; b=[2.5;1;1;2.5;2.5;0.5;0;0]; x=inv(x)*b

    x = -1.0000 5.5000 0.6400 -6.7600 18.4600 -1.6000 24.6000 -91.3000

    usando Mathematica se obtiene la siguiente solucin:

    b1 -1c1 5.5a2 0.64b2 -6.76c2 18.46a3 -1.6b3 24.6c3 -91.3

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 13 de 49

    Sustituyendo estos valores (junto con a1=0), se obtiene la funcin spline cuadrtica que interpola la tabla de datos dada:

    5.5+ x si [ ]5.4,3x 46.1876.664.0 2 + xx si [ ]7,5.4x s(x) = { 3.916.246.1 2 + xx si [ ]9,7x }

    La Figura 4, contiene tanto los puntos iniciales de la tabla de datos, as como el spline cuadrtico. Esta grfica se gener usando Mathematica.

    Figura 5 Ajuste con Splines Cuadrticos

    El mismo ejercicio anterior resuelto por MatLab sera de la siguiente manera Cdigo 1: Produce la Figura 6 Cdigo 2: Produce la Figura 7

    X=[3 4.5 7 9]; Y=[2.5 1 2.5 0.5] X1=3:0.1:9; Spl1=spline(X,Y,X1); plot(X,Y,X1,Spl1); axis([0,10,0,3.5]) grid on

    X=[3 4.5 7 9]; Y=[2.5 1 2.5 0.5] X1=3:0.1:9; Spl1=spline(X,Y,X1); plot(X,Y,X1,Spl1,X,Y,'o','MarkerFaceColor','g');axis([0,10,0,3.5]) grid on

    Figura 6

    Figura 7

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 14 de 49

    haciendo uso de la funcin interp1 de MatLab se puede dar as:

    X=[3 4.5 7 9]; Y=[2.5 1 2.5 0.5] X1=3:0.1:9; Int1=interp1(X,Y,X1,'spline'); plot(X,Y,X1,Int1,X,Y,'o','MarkerFaceColor','g');

    O si prefiere implementar el sistema con las nueve ecuaciones obtenidas puede hacerlo de la siguiente manera: Ahora se tienen nueve ecuaciones con nueve incgnitas por lo que se puede resolver el sistema de ecuaciones de la forma A = b.

    bA

    yyyyyy

    cccbbbaaa

    xxxx

    xxxx

    xxxxxx

    xx

    000

    000000001000110220000011022100000000100001000000010000001000000010000

    4

    1

    3

    3

    2

    2

    3

    2

    1

    3

    2

    1

    3

    2

    1

    33

    22

    424

    121

    323

    323

    222

    222

    =

    =

    Sustituyendo los valores correspondientes se tiene

    =

    0005.05.25.25.20.10.1

    0000000010001101414000001109910090081000010030091007004900010070049001005.40025.200001005.40025.20

    3

    2

    1

    3

    2

    1

    3

    2

    1

    cccbbbaaa

    Al resolver este sistema simultneo de ecuaciones lineales se obtiene la solucin mostrada abajo. Tenga en cuenta que el sistema se ha organizado de tal forma que se han unido las variable a, las b y las c. En el sistema resuelto se puede observar que el valor para la variable

    01 =a .

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 15 de 49

    Solucin al sistema simultneo de ecuaciones lineales.

    =

    3.9146.185.56.2476.616.1

    64.00

    3

    2

    1

    3

    2

    1

    3

    2

    1

    cccbbbaaa

    Por lo que a funcin spline cuadrtica S(x) queda definida como:

    +=+=+=

    =]0.9,0.7[3.916.246.1)(

    ]0.7,5.4[46.1876.664.0)(

    ]5.4,0.3[5.5)(

    )(2

    3,2

    22,2

    1,2

    xsixxxP

    xsixxxP

    xsixxP

    xS

    FUNCIONES CON SPLINES CBICOS

    Es uno de los mtodos Spline ms usados. Para formar la funcin S(x) se unen polinomios cbicos de tal forma que la funcin tenga dos derivadas continuas en todos lados, ya que para cada nodo se imponen las tres condiciones de continuidad, que S, S, S sean continuas, para que la grfica de la funcin sea suave. La discontinuidad de S(x) podra ocurrir en la tercera derivada pero esto no se detecta visualmente. Antes de entrar en materia, observe las siguientes figuras, diciendo lo siguiente.

    Se tiene el siguiente conjunto de datos discretos en la siguiente tabla:

    ix 1 2 3 5 8 10 15 iy 0.2 0.5 1.6 3 2.2 2.8 1.5

    Con las siguientes lneas de cdigo escritas para MatLab, se grafica los datos y adems se ajustan a varios tipos de curvas haciendo uso de funciones propias del programa.

    % Programacin para MATLAB x=[1 2 3 5 8 10 15]; hold off; y=[0.2 0.5 1.6 3 2.2 2.8 1.5]; % Grfica de los datos discretos plot(x,y,'or'); hold on; grid on; axis([0 10 -15 10]) xi=min(x):0.1:max(x); y1=interp1(x,y,xi); % Grfica de los datos unidos mediante rectas plot(xi,y1,'LineWidth',2); y5=polyfit(x,y,5); y5=polyval(y5,xi); % Grfica de los datos ajustados a un polinomio de orden 5 plot(xi,y5,'b','LineWidth',2); y7=polyfit(x,y,7); y7=polyval(y7,xi); % Grfica de los datos ajustados a un polinomio de orden 7 plot(xi,y7,'g','LineWidth',2); y3=spline(x,y,xi);

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 16 de 49

    % Grafica de los datos ajustados a un spline cbico plot(xi,y3,'m','LineWidth',2); axis([0,10,0,3.2]);

    La Figura 8 corresponde a los datos discretos de la tabla anterior, En la Figura 9 se muestra los datos discretos unidos unos a unos con una simple lnea recta.

    Figura 8 Datos Discretos

    Figura 9 Datos unidos mediante trozos de lneas

    En la Figura 10 se muestra los datos unidos con un polinomio de orden 5 y en la Figura 11 se ajustan los datos a un polinomio de orden 7.

    Figura 10 Ajuste polinomial de orden 5

    Figura 11 Ajuste polinomial de orden 7

    En la Figura 12 se muestran los datos ajustados a un spline de cbico, y en la Figura 13 puede observar los datos discretos ajustados a las diferentes curvas descritas.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 17 de 49

    Figura 12 Ajuste tipo Splines cbico

    Figura 13 Diferentes ajustes

    Un spline cbico ajusta una curva suave a los puntos, tomando prestada la idea de un instrumento que se usa para dibujar El curvgrafo. Es frecuente que un nmero grande de datos tenga que ajustarse a una nica curva suave, pero la interpolacin de Lagrange o de Newton con polinomios de orden alto no es adecuada para este propsito, ya que los errores de un nico polinomio tienden a crecer en forma drstica al hacer mayor el orden. La interpolacin con splines cbicos esta diseada para adecuarse a este fin2. En la interpolacin con spline cbicos se usa un polinomio cbico para cada intervalo entre dos puntos (par coordenados) consecutivos. Un polinomio cbico dcxbxax +++ 23 , tiene cuatro coeficientes ( dcba , , , ), por lo que requiere cuatro condiciones. Dos de ellas provienen de la restriccin de que el polinomio debe pasar por los puntos en los extremos del intervalo. Las otras dos son las condiciones de que la primera y segunda derivada del polinomio sea continua en cada uno de los puntos dados. Los splines cbicos son polinomios cbicos por pedazos o secciones de polinomio por cada

    segmento entre dos par coordenados, as: 112

    13

    1 dxcxbxa +++ ,ser el polinomio cbico para el primer segmento, 22

    22

    32 dxcxbxa +++ , para el segundo segmento y as

    sucesivamente, hasta definir el polinomio nnnn dxcxbxa +++ 23 para el navo segmento, que en cierta medida, son anlogos a los polinomios de Hermite. Aunque la interpolacin cbica de Hermite es ms precisa que la interpolacin con splines cbicos en lo que refiere a los valores de la funcin, los splines son mas suaves, debido a que se pide que la funcin interpolante sea continua en el valor de la funcin, al igual que la primera y segunda derivadas. El Spline Cbico (orden 3) es el mtodo ms empleado como se ha mencionado anteriormente, debido a que proporciona un excelente ajuste a los puntos tabulados y su clculo no es tan complejo.

    Sobre cada intervalo [ ] [ ] [ ]nn tttttt ,,...,,,, 12110 , S est definido por un polinomio cbico diferente. Sea Si el polinomio cbico que representa a S en el intervalo [ ]1, ii tt , por tanto: 2 Mtodos Numricos aplicados con software. Shoichiro Nakamura. Prentice Hall. Pg. 540.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 18 de 49

    = ),()...(

    ....),()....(),()....(

    )(

    11

    211

    100

    nnn ttxxS

    ttxxSttxxS

    xS

    Los polinomios 1iS y iS interpolan el mismo valor en el punto it , es decir, se cumple:

    Si-1(ti) = yi = Si(ti) 11 ni

    Por lo que se garantiza que S es continuo en todo el intervalo. Adems, se supone que S' y S'' son continuas, condicin que se emplea en la deduccin de una expresin para la funcin del spline cbico.

    Las condiciones que deben satisfacer los polinomios son:

    1.

    ===

    )()(1,...,1,0), ()(

    1 nnn

    kkk

    xfxpnkxfxp

    Condiciones de interpolacin. Estas condiciones producen n+1 ecuaciones. 2. 2,...,1,0), ()( 111 == +++ nkxpxp kkkk Condiciones de continuidad en los nodos interiores. Estas condiciones producen n-1 ecuaciones. 3. 2,...,1,0), (')(' 111 == +++ nkxpxp kkkk Condiciones de derivabilidad en los nodos interiores. Estas condiciones producen n-1 ecuaciones. 4. 2,...,1,0), ('')('' 111 == +++ nkxpxp kkkk Condiciones de continuidad de la primera derivada en los nodos interiores: se conserva la concavidad en la vecindad del nodo interior a no ser que la segunda derivada sea cero en el nodo interior. Estas condiciones dan lugar a n-1 ecuaciones. Hasta aqu se tendra n+1+3(n-1)=4n-2 condiciones Se satisface uno de los dos siguientes pares de condiciones de frontera.

    a) 0'' 0'' 1 == no pyp b) )(')(' ) (')(' 1 nnnooo xfxpyxfxp ==

    Las condiciones dadas en a) se llaman de frontera libre (no dependen de condiciones adicionales sobre la funcin f)

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 19 de 49

    Las condiciones dadas en b) se llaman de frontera sujeta, requieren que se conozca )(' ) (' no xfyxf , y fijan al polinomio ),(), ( 1xxxxp oo en el punto extremo ox y al

    polinomio ),(), ( 11 nnn xxxxp en el punto extremo nx , como en este caso se usa ms informacin acerca de la funcin f las aproximaciones obtenidas suelen ser ms exactas. Aplicando las condiciones de continuidad del spline S y de las derivadas primera S' y segunda S'', es posible encontrar la expresin analtica del spline. No se va a obtener esta expresin, ya que su demostracin queda fuera del mbito de estos apuntes. Simplemente se dir que la expresin resultante es:

    ))(6

    ())(6

    ()(6

    )(6

    )( 111313

    1 xthz

    hy

    txhz

    hy

    txh

    zxt

    hz

    xS iii

    i

    ii

    ii

    i

    ii

    i

    ii

    i

    ii ++++= +++++

    En la expresin anterior, hi=ti+1-ti y z0,z1,...,zn son incgnitas. Para determinar sus valores, se utilizan las condiciones de continuidad que deben cumplir estas funciones. El resultado (que tampoco se demuestra) es:

    )(6)(6)(2 11

    11

    1111

    +

    + =+++ iii

    iii

    iiiiiii yyhyy

    hzhzhhzh

    La ecuacin anterior, con i=1,2,....,n-1 genera un sistema de n-1 ecuaciones lineales con n+1 incgnitas z0,z1,...,zn. Se puede elegir z0 y z1 de forma arbitraria y resolver el sistema de ecuaciones resultante para obtener los valores de z1,z2,...,zn-1. Una eleccin especialmente adecuada es hacer z0=z1=0. La funcin spline resultante se denomina spline cbico natural y el sistema de ecuaciones lineal expresado en forma matricial es:

    =

    1

    3

    2

    1

    2

    3

    2

    1

    12

    332

    221

    11

    nnnn v

    vvv

    z

    zzz

    uh

    huhhuh

    hu

    En donde:

    iii tth = +1

    1

    21

    1)(2 +=

    i

    iiii u

    hhhu

    )(6 1 iii

    i yyhb = +

    1

    111

    =

    i

    iiiii u

    vhbbv

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 20 de 49

    Otra Deduccin general del modelo de Splines Cbicos

    Dado un intervalo [a,b], se particiona ste en sub-intervalos Ij de la forma: Ecuacin 3

    1,,2,1,],,[ 1 == + njixxI iij K Y para cada uno de estos stos intervalos, se define un polinomio de interpolacin cbico de la forma:

    Ecuacin 4

    jjjjj dxcxbxaxP +++= 23,3 )( Dado que se tiene para cada polinomio cuatro incgnitas, se tienen n-1 intervalos y n puntos, para obtener los valores de los coeficientes 1,...2,1;,,, = njdcba jjjj , es decir, 4(n-1) incgnitas, se requieren 4(n-1) ecuaciones, para formar el sistema de ecuaciones. Esto se puede lograr considerando las siguientes condiciones que debe cumplir la funcin spline cbica 1).- Las valores de los polinomios deben ser iguales en los nodos interiores, esto es,

    Ecuacin 5

    iiiiiii

    iiiiiii

    yxcxbxayxcxbxa

    =++=++

    231

    21

    31

    Para i = 2,...,n-1, por lo que de aqu se tienen 2(n-2) condiciones y por tanto se generan 2n-4 ecuaciones. 2).- El primer y ltimo polinomio deben pasar a travs de los puntos inicial y final, esto es,

    Ecuacin 6

    nnnnnnnn ydxcxbxaydxcxbxa

    =+++=+++

    112

    13

    1

    1111211

    311

    Son dos condiciones por lo que se generan dos ecuaciones. 3).- Las primeras derivadas en los nodos interiores deber ser iguales (condicin de continuidad), entonces:

    Ecuacin 7

    jjjj cxbxaxP ++= 23)( 2,3 Por lo que

    Ecuacin 8

    1,,202323

    2323

    112

    12

    112

    12

    ==++

    ++=++

    niparacxbxacxbxacxbxacxbxa

    iiiiiiiiii

    iiiiiiiiii

    K

    Estas n-2 condiciones generan n-2 ecuaciones.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 21 de 49

    4).- Las segundas derivadas en los nodos interiores deben ser iguales (condicin de continuidad), entonces

    Ecuacin 9

    jjj bxaxP 26)(,3 += Por lo que

    Ecuacin 10

    1,,202626

    2626

    11

    11

    ==+

    +=+

    niparaxbxaxbxaxbxaxbxa

    iiiiiiii

    iiiiiiii

    K

    Estas n-2 condiciones generan n-2 ecuaciones. 5.- Si la funcin S(x) es la funcin Spline Natural, las segundas derivadas en los nodos de los extremos son cero.

    Ecuacin 11

    026026

    11

    1111

    =+=+ nnnn xbxa

    xbxa

    Estas 2 condiciones generan 2 ecuaciones. Considerando las ecuaciones que generan las condiciones de la Ecuacin 5, a la Ecuacin 11, se tienen: ecuacionesnnnn 44222242 =++++ Construccin del spline cbico. Se definen los polinomios cbicos que forman la funcin spline cbica S, como:

    Ecuacin 12 32

    3 )()()()( jjjjjjjj xxdxxcxxbaxP +++= Para cada 1,,2,1 = nj K . Es claro que por ser una funcin interpolante, Ecuacin 12 evaluado en el nodo 1+jx es:

    Ecuacin 13

    jjjjj yxfaxP === )()(3 Si adems se cumple la condicin:

    Ecuacin 14 2,,2,1 para )()( 11313 == +++ njxPxP jjjj K

    Se tiene que:

    Ecuacin 15

    111

    31

    211131131

    )()()()()()(

    +++

    +++++++==

    +++===jjj

    jjjjjjjjjjjjjjj

    yxfaxxdxxcxxbaxPxPa

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 22 de 49

    Para 2,2,1 = nj K Sea 1-n,1,2, j ;1 K== + jjj xxh , y 111 )(;)( yxfayxfa nnn ==== Para 1,2,1,0 = nj K , Ecuacin 15 se puede reescribir como:

    Ecuacin 16

    1132

    1 )( +++ ==+++= jjjjjjjjjj yxfhdhchbaa Por otra parte como la derivada de Ecuacin 12 est dada por

    Ecuacin 17 2

    3 )(3)(2)( jjjjjj xxdxxcbxP ++=

    Ecuacin 18 1,,2,1 para )(3 == njbxP jjj K

    Aplicando la condicin 2,,2,1),()( 11313 == +++ njxPxP jjjj K , se tiene que

    Ecuacin 19 2

    11131131 )(3)(2)()( jjjjjjjjjjjj xxdxxcbxPxPb ++=== ++++++ 2

    1 32 jjjjjj hdhcbb ++=+ Para 12,1,0 = nj K , ya que se define )(13 nnn xPb = Procediendo como en los casos anteriores, se tiene que )(62)(3 jjjj xxdcxP += , evaluando en el nodo jx

    Ecuacin 20

    2)(

    2)( 33jj

    jjjj

    xPccxP

    ==

    Aplicando la condicin 2,,2,1,2

    )(2

    )( 11313 == +++ njxPxP jjjj K , y definiendo 2

    )(13 nnn

    xPc = ,

    se tiene por Ecuacin 20: Ecuacin 21

    jjjj hdcc 31 +=+

    Si se despeja jd , se tiene: jj

    jj dh

    cc =+31 , sustituyendo este resultado en las Ecuacin 19

    y Ecuacin 16, se obtiene: Ecuacin 22 ( ) ( )1121 232 +++ ++=++=++= jjjjjjjjjjjjjjjj cchbhcchcbhdhcbb

    Ecuacin 23 [ ] 21232

    1 3 jjj

    jjjjjjjjjjjjj hcc

    hchbahdhchbaa+++=+++= ++

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 23 de 49

    ( )121 23 ++ +++= jjjjjjj cchhbaa Despejando jb de Ecuacin 23 se obtiene:

    Ecuacin 24

    ( ) jjjjj

    jj bcch

    haa =+ ++ 11 23

    Reduciendo el ndice a j-1, Ecuacin 25

    ( )jjjj

    jjj cc

    hh

    aab +=

    1

    1

    1

    11 23

    Sustituyendo Ecuacin 25 en Ecuacin 22 con el ndice reducido:

    Ecuacin 26

    ( ) ( ) ( ) ( )( ) ( ) ( ) ( )

    [ ] ( ) ( )( )[ ] ( ) ( )

    ( )[ ] ( ) ( )( ) ( ) ( )1

    111111

    1

    111111

    1

    111111

    1

    111111111

    1

    1

    1111

    11

    1111

    1

    11

    1

    111

    332

    332

    231

    332231

    )(23

    23

    )(23

    23

    )(

    ++

    +

    +

    +

    +

    +

    +

    +

    +

    ++

    =++

    =++

    +=

    +=++

    =++++

    +++=+++=

    jjj

    jjj

    jjjjjjj

    j

    jj

    j

    jjjjjjjjj

    j

    jj

    j

    jjjjjjjjj

    j

    jj

    j

    jjjjjjjjjjjjjj

    j

    jj

    j

    jjjjjjj

    jjj

    j

    jjjjjj

    j

    jjjj

    j

    j

    jj

    jjjjj

    aah

    aah

    chchhch

    haa

    haa

    chchchh

    haa

    haa

    chchchh

    haa

    haa

    chchchchchch

    haa

    haa

    cchcch

    cch

    cchcch

    haa

    cch

    haa

    cchbb

    Para cada 1,,3,2 = nj K La Ecuacin 26 es un sistema que contiene solo { }n

    jjc

    1= , como incgnitas, ya que los valores { } { }njj

    njj

    ayh1

    11 == estn dados por el espaciamiento entre los nodos y los valores de

    jj yxf =)( . Una vez conocidas las incgnitas se pueden obtener los valores de { } { } 11

    11

    =

    =

    njj

    njj

    dyb de las ecuaciones Ecuacin 24 y Ecuacin 21 respectivamente y de esta manera se pueden construir los polinomios cbicos que forman S(x). La pregunta que se plantea en relacin a la construccin desarrollada arriba, es si se pueden determinar los valores de { }n

    jjc

    1= por medio del sistema de ecuaciones dado en

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 24 de 49

    Ecuacin 26, y si son nicos. El siguiente teorema indica que esto es posible cuando se establece una de las dos condiciones de frontera que se dieron antes. Teorema.- Si se define f en bxxxa n =

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 25 de 49

    00

    1

    ===

    n

    n

    n

    czl

    P.6 Para j = n-1, n-2,...,1 Hacer:

    ( ) ( )( ) ( )jjjj

    jjjjjjj

    jjjj

    hccdcchhaab

    czc

    3/3/2/

    1

    11

    1

    =+=

    =

    +

    ++

    +

    fin P.7 Salida jjjj dcba ,,, , 1,,2,1 = nj K Algoritmo en cdigo para encontrar los coeficientes iZ de un spline cbico.

    Input n,ti,yi for i=0,1,,n-1 do

    hi=ti+1-ti bi=6(yi+1-yi)/hi

    end U1=2(ho+h1) V1=b1-b0 for i=2,3,,n-1 do

    ui=2(hi+hi-1)-h2i-1/ui-1 vi=bi-bi-1-hi-1vi-1/ui-1

    end zn=0 for i=n-1,n-1,...,1 do zi=(vi-hizi+1)/ui end zo=0 output zi

    Este sistema de ecuaciones, que es tridiagonal, se puede resolver mediante eliminacin gaussiana sin pivoteo. El cdigo acepta como entrada un conjunto de nodos (ti) y el conjunto de los valores de la funcin correspondiente (yi) y produce un vector con los vectores zi. Por ltimo, el valor del spline S en un punto x cualquiera interpolado se puede calcular de forma eficiente empleando la siguiente expresin: [ ][ ]iiiiiiii AtxBtxCtxyxS )()()()( +++=

    En donde: )(61

    1 iii

    i zzhA = + , 2ii

    zB = , )(136 11 iii

    ii

    ii

    i yyhzhzhC += ++

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 26 de 49

    Ejemplo con la funcin spline de MatLab

    Se muestra un ejemplo para ilustrar el empleo de los splines cbicos para interpolar los valores de una tabla. En la tabla 1 se muestran algunos valores de una serie de valores tabulados a intervalos regulares de la funcin xxf =)( en el intervalo [0,2.25]. Tambin se indican los valores interpolados empleando el correspondiente spline cbico as como el error absoluto cometido. Obsrvese que el error es cero para los nodos. En la Figura 14 se representan grficamente los valores tabulados.

    Tabla 1 Valores interpolados mediante un spline cbico para la funcin N+1 e indicacin del error cometido (en valor absoluto).

    x x Si(x) )(xa 0.0000 0.0000 0.0000 0.0000E+00 0.0625 0.1426 1.0732E-01 0.1250 0.2782 7.5266E-02 0.1875 0.3997 3.3261E-02 0.2500 0.5000 0.5000 0.0000E+00 0.3125 0.5744 1.5440E-02 0.3750 0.6285 1.6155E-02 0.4375 0.6701 8.6732E-03 0.5000 0.7071 0.7071 0.0000E+00 1.7500 1.3228 1.3228 0.0000E+00 1.8125 1.3462 6.8994E-07 1.8750 1.3693 5.9953E-06 1.9375 1.3919 8.7004E-06 2.0000 1.4142 1.4142 0.0000E+00 2.0625 1.4361 2.4522E-05 2.1250 1.4577 4.7329E-05 2.1875 1.4790 4.6215E-05 2.2500 1.5000 1.5000 0.0000E+00

    En la Figura 14 se muestra la grfica que representa la funcin 1+xe en el intervalo sobre el eje x comprendido entre cero y siete [0,7].

    x=0:0.5:7; y=exp(x+1); xx = 0:.25:7; yy = spline(x,y,xx); plot(x,y,'o',xx,yy) xlabel('0 < x < 7') ylabel('exp(x+1)')

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 27 de 49

    title('Funcion exp(x+1)')

    Figura 14 : Representacin de la funcin 1+xe . Los crculos representan los valores tabulados de la funcin y la lnea continua los puntos interpolados mediante una funcin spline cbica

    Ejemplo con la funcin spline de MatLab En la Figura 15 se muestra otro ejemplo. Se representan grficamente los puntos interpolados mediante una funcin spline cbico para la funcin y=sin(x) haciendo uso de Matlab.

    x=0:pi/7:2*pi;y=sin(x); xx = 0:.25:2*pi;yy = spline(x,y,xx); plot(x,y,'o',xx,yy) xlabel('0 < x < 2\pi') ylabel('sin(x)') title('Funcion sin(x)')

    Figura 15 Representacin de la funcin y=sin(x). Los crculos representan los valores tabulados de la funcin y la lnea continua los puntos interpolados mediante una funcin spline cbica.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 28 de 49

    Ejemplo con sistema de ecuaciones simultneas

    Para hacer ms firme el entendimiento de la aplicacin de Splines Cbicos, se escribe la definicin correspondiente a este caso (orden 3).

    Dados n+1 datos:

    x x0 x1 x2 ..... xny y0 y1 y2 .... yn

    Un Spline cbico que interpola estos datos, es una funcin s(x) definida como sigue:

    = ],[ ) (

    ...],[ ) (],[ ) (

    )(

    11

    211

    100

    nnn xxxsixs

    xxxsixsxxxsixs

    xs

    Donde cada si(x) es un polinomio cbico; si(xi)=yi, para toda i=0,1,....,n y tal que s(x) tiene primera y segunda derivadas continuas en (xo,xn) Ejemplo 3. Interpolar los siguientes datos mediante un spline cbico:

    x 2 3 5

    y -1 2 -7

    Solucin: Se define un polinomio cbico en cada uno de los intervalos que se forman: A continuacin, Se busca que se cumpla la condicin de que la spline debe pasar por los puntos dados en la tabla, o sea s(x)=y, as, se tiene que:

    s(2) = -1 8a1+ 4b1+2c1+d1 = -1 Ec 1 27a1+ 9b1+3c1+d1 = 2 Ec 2 s(3) = 2 27a2+ 9b2+3c2+d2 = 2 Ec 3

    s(5) = -7 125a2+25b2+5c2+d2 = -7 Ec 4

    Ahora se calcula la primera derivada de s(x):

    3a1x2+2b1x+c1 si x [2,3] s'(x)= {3a2x2+2b2x+c2 si x [3,5] Al igual que en el caso de los splines cuadrticos, se presentan ecuaciones que pueden tener discontinuidad en los cambios de intervalo; las posibles discontinuidades son los puntos donde se cambia de intervalo, en este caso x=3. Para evitar esta discontinuidad, se evala en x=3 los dos polinomios y se igualan de la siguiente manera: 3a1(3)2+2b1(3)+c1= 3a2(3)2+2b2(3)+c2. Siendo igual a:

    27a1+6b1+c1=27a2+6b2+c2 Ec 5

    De la misma manera se procede con la segunda derivada:

    6a1x+2b1 si x [2,3]

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 29 de 49

    6a1x+2b1 si x [2,3] s''(x)= {6a2x+2b2 si x [3,5]

    Para lograr que s''(x) sea continua en el punto x=3m 6a1(3)+2b1= 6a2(3)+2b2, que correspondera a:

    18a1+2b1= 18a2+2b2 Ec 6

    En este punto se cuenta con 6 ecuaciones y 8 incgnitas, por lo tanto se tienen 2 grados de libertad; en general, se agregan las siguientes 2 condiciones:

    s''(xo)=0 s''(xn)=0

    De lo cual se obtiene:

    s''(2)=0 entonces 6a1(2)+2b1 = 0 :: 12a1+2b1 = 0 Ec 7 s''(5)=0 entonces 6a2(5)+2b2 = 0 :: 30a2+2b2 = 0 Ec. 8

    Con lo cual, se ha completado un juego de 8 ecuaciones vs. 8 incgnitas, como sigue:

    8a1+ 4b1+2c1+d1 = -1 27a1+ 9b1+3c1+d1 = 2 27a2+ 9b2+3c2+d2 = 2 125a2+25b2+5c2+d2 = -7 27a1+6b1+c1 -27a2 - 6b2 - c2 = 0 18a1+2b1 -18a2 - 2b2 = 0 12a1+2b1 = 0 30a2+ 2b2 = 0

    Cuya forma matricial es la siguiente:

    8 4 2 1 0 0 0 0 a1 -127 9 3 1 0 0 0 0 b1 2 0 0 0 0 27 9 3 1 c1 2 0 0 0 0 125 25 5 1 d1 -727 6 1 0 -27 -6 -1 0 a2 0 18 2 0 0 -18 -2 0 0 b2 0 12 2 0 0 0 0 0 0 c2 0 0 0 0 0 30 2 0 0 d2

    =

    0

    Usando Matlab se tendra la solucin con el siguiente cdigo:

    hold off clear all Xi=[2 3 5]; Yi=[-1 2 -7]; x=[8 4 2 1 0 0 0 0; 27 9 3 1 0 0 0 0; 0 0 0 0 27 9 3 1; 0 0 0 0 125 25 5 1; 27 6 1 0 -27 -6 -1 0; 18 2 0 0 -18 -2 0 0; 12 2 0 0 0 0 0 0; 0 0 0 0 30 2 0 0]; y=[-1; 2; 2; -7; 0; 0; 0; 0]; var=inv(x)*y; plot(Xi,Yi,'o','MarkerFaceColor','g') axis([0 6 -8 4]); grid on y1=2:0.1:3;

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 30 de 49

    y2=3:0.1:5; x1=var(1:4); x2=var(5:8); yi1=polyval(x1,y1); yi2=polyval(x2,y2); hold on; plot(y1,yi1,y2,yi2) %var = % 7.5000 % -67.5000 % 198.0000 % -187.0000 % -0.0000 % 0.0000 % -4.5000 % 15.5000

    Figura 16

    Si se agregan las siguientes dos lneas para realizarlo directamente con la funcin spline del matlab se tendr la siguiente figura:

    xx=0:0.1:6; Int1=interp1(Xi,Yi,xx,spline); plot(xx,Int1,r);

    Figura 17

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 31 de 49

    usando Mathematica, se obtiene la siguiente solucin:

    a1 = -1.250b1 = 7.500c1 = -10.750d1 = 0.500a2 = 0.625b2 = -9.375c2 = 39.875d2 = -50.125

    Sustituyendo estos valores en la funcin inicial, se ve que el spline cbico para la tabla de datos dada, queda definida como sigue:

    +++=

    ]5,3[ 125.50875.39375.9625.0]3,2[ 5.075.105.725.1)( 23

    23

    xsixxxxsixxxxs

    Se muestra la grfica correspondiente a este ejercicio, creada tambin en Mathematica.

    Figura 18

    Obsrvese la finura con la que se unen los polinomios cbicos que conforman el spline. Prcticamente ni se nota que se trata de dos polinomios diferentes. Esto es debido a las condiciones que se impusieron sobre las derivadas de la funcin. Esta finura casi artstica, es la que permite aplicar los splines cbicos, para cuestiones como el diseo de letras por computadoras, o bien a problemas de aplicacin donde la interpolacin que se necesita es de un caracter bastante delicado, como podra tratarse de datos mdicos sobre algn tipo de enfermedad.

    Ejemplo con sistema simultneo de ecuaciones

    Interpolar los siguientes datos utilizando splines cbicos:

    x -1 1 2 4 y -1 1 5 -2

    Solucin: Nuevamente, se define un polinomio cbico en cada uno de los intervalos:

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 32 de 49

    [ ][ ][ ]

    +++++++++

    =4,2 ,

    2,1 ,

    1,1 ,

    )(

    332

    33

    3

    222

    23

    2

    12

    13

    1 1

    xsidxcxbxa

    xsidxcxbxa

    xsidxcxbxa

    xS

    Despus, se hace que el Spline pase por los puntos dados en la tabla. As, se tiene que:

    s(-1)= -1 implica que, 11111 =++ dcba s(1)=1 implica que, 11111 =+++ dcba , 12222 =+++ dcba s(2)=5 implica que, 5248 2222 =+++ dcba , 5248 3333 =+++ dcba Y finalmente s(4)= -2 implica que, 241664 3333 =+++ dcba Enseguida, se calcula la primera derivada:

    [ ][ ][ ]

    ++++++

    =4,2 , 23

    2,1 , 23

    1,1 , 23

    )`(

    332

    3

    222

    2

    112

    1

    xsicxbxa

    xsicxbxa

    xsicxbxa

    xS

    Se nota entonces, que las posibles discontinuidades de s'(x) son x=1 y x=2. Por lo tanto, para hacer que s'(x) sea continua, se igualan las ecuaciones correspondientes en ambos valores:

    222111 2323 cbacba ++=++ 333222 412412 cbacba ++=++

    Ahora se procede a calcular la segunda derivada: [ ]

    [ ][ ]

    +++

    =4,2 , 262,1 , 261,1 , 26

    )``(

    33

    22

    11

    xsibxaxsibxa

    xsibxaxS

    Nuevamente, las posibles discontinuidades se podran dar en los puntos x=1 y x=2. Por lo tanto, para que s''(x) sea continua, se igualan las ecuaciones en ambos valores:

    22112211 332626 babababa +=++=+

    33223322 66212212 babababa +=++=+

    Finalmente, se agregan las condiciones de que la doble derivada se anule en los puntos inicial y final de la tabla. En este caso,

    030260)1('' 1111 =+=+= babaS 01202240)4('' 3333 =+=+= babaS

    Con esto se tiene un juego de Doce ecuaciones vs. Doce incgnitas:

    11111 =++ dcba

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 33 de 49

    11111 =+++ dcba 12222 =+++ dcba

    5248 2222 =+++ dcba 5248 3333 =+++ dcba

    221664 3333 =+++ dcba 222111 2323 cbacba ++=++

    333222 412412 cbacba ++=++ 2211 33 baba +=+ 3322 66 baba +=+

    03 11 =+ ba 012 33 =+ ba

    Este sistema tiene la siguiente forma matricial:

    =

    0 0 0 0 0 0 25 5 1 1 1

    333322221111

    0 0 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 0 0 1 6 0 0 1 6 0 0 0 0 0 0 0 0 0 0 1 3 0 0 1 3 0 1 4 12 0 1 4 12 0 0 0 0 0 0 0 0 0 1 2 3 0 1 2 3 1 4 16 64 0 0 0 0 0 0 0 0 1 0 4 8 0 0 0 0 0 0 0 0 0 0 0 0 1 2 4 8 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1

    dcbadcbadcba

    Usando Mathematica, se obtiene la solucin:

    3524, 10

    21, 14051

    321 === aaa

    35288, 35

    297, 140153

    321=== bbb

    701867 , 70

    473 , 14089

    321 === ccc

    35732 , 35

    48 , 40153

    321=== ddd

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 34 de 49

    Por lo tanto, la Spline cbico es:

    [ ][ ][ ]

    +++

    ++=

    1,1 35

    73270

    186735288

    3524

    2,1 3548

    70473

    35297

    1021

    1,1 40

    153 14089

    140153

    14051

    )(

    23

    23

    23

    xsixxx

    xsixxx

    xsixxx

    xS

    Finalmente, se muestra la grfica correspondiente.

    Figura 19

    Un caso particular

    Se ilustra un proceso de construccin con el ejemplo siguiente, en el cual se trata de hallar el trazador cbico para los puntos:

    )2,6(),), (3,4(),), (4,3(),), (2,1(),( 33221100 ==== yxyxyxyx .

    Figura 20

    Como puede observarse, es necesario construir el trazador S(x) que se define como So(x) en el intervalo [1,3], como S1(x) en el intervalo [3,4] y como S2(x) en el intervalo [4,6], donde

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 35 de 49

    32 )()()()( jjjjjjjj xxdxxcxxbaxS +++= , para j=0,1,2 Como 10 =x , 31 =x , 42 =x y 63 =x , es claro que

    3)( , 4)(, 2)( 222111000 ====== xSayxSaxSa Adems se define )( 323 xSa = . En los siguientes pasos se dan condiciones que deben cumplir los coeficientes de los polinomios cbicos jjjj dcba ,,, , para j=0,1,2

    1. Continuidad. En primer lugar, se pide que So(x) coincida con S1(x) en x1. Adems, S1(x) debe coincidir con S2(x) en x2. Estas dos condiciones, junto a la definicin que se hizo antes de que )( 323 xSa = conducir a las tres ecuaciones:

    331 jjjjjjjj hdhchbaa +++=+ , para j=0,1,2 Ec 1

    2. donde: jjj xxh = +1 , para j=0,1,2.

    3. Suavidad. Como 2' )(3)(2)( jjjjjj xxdxxcbxS ++= , para j=0,1,2

    Ahora debe cumplirse que )()( 1'11

    ' xSxSo = y que )()( 2'22'1 xSxS = . Al agregarle a estas dos condiciones la definicin de )(' 323 xSb = , se obtienen las tres ecuaciones:

    21 3 jjjjjj hdhcbb ++=+ , para j=0,1,2 Ec 2

    4. Coincidencia en concavidad. Calculando la segunda derivada de cada uno de los polinomios )(xS j :

    )(62)(" jjjj xxdcxS += Para j=0,1,2

    Ahora se le pide la condicin )()( 1"11

    " xSxSo = y )()( 2"22"1 xSxS = . Como jjj cxS 2)('' = para j=0,1,2. De manera similar a como se hizo en los anteriores casos, se agrega la definicin de 2/)('' 323 xSc = , se obtienen las ecuaciones:

    jjjj hdcc 31 +=+ , para j=0,1,2 Ec 35. Despejando jd de la ecuacin 3 se obtiene:

    )(31

    1 jjj

    j cchd = + Ec 4

    6. sustituyendo jd en 1 y en 2 se obtienen las relaciones 5 y 6:

    )2(3 12

    1 ++ +++= jjjjjjj cch

    hbaa , j=0,1,2 Ec 5

    jjjjj hccbb )( 11 + ++= , j=0,1,2 Ec 6

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 36 de 49

    7. Despejando jb de la ecuacin 5

    2,1,0), 2(3

    )(1 11 =+= ++ jcch

    aah

    b jjj

    jjj

    j Ec 7

    8. y haciendo un corrimiento de ndices, se obtiene:

    3,2,1), 2(3

    )(1 11

    11

    1 =+=

    jcch

    aah

    b jjj

    jjj

    j Ec 8

    9. De igual forma, en la ecuacin 6 se hace un corrimiento de ndices para obtener

    111 )( ++= jjjjj hccbb , j=1,2,3 Ec 9 10. Al sustituir en esta ltima ecuacin la expresin para bj obtenida en Ec7 y en Ec8, y

    haciendo las simplificaciones del caso se obtiene el sistema de ecuaciones:

    11. )(3)(3)(2 11

    11111

    ++ =+++ jjj

    jjjjjjjjj aahaa

    hjchchhch , para j=1,2

    12. Concretamente, es el sistema:

    =+++

    =+++

    )(3)(3)(2

    )(3)(3)(2

    121

    232

    3222111

    010

    121

    2111000

    aah

    aah

    chchhch

    aah

    aah

    chchhch

    13. Trazador cbico con frontera libre

    Hay varios tipos de trazadores que se pueden obtener, dependiendo de las condiciones de frontera que se ponga en los extremos nxx ,0 en el cual se est haciendo la interpolacin. En este material, y continuando con el ejemplo que se esta trabajando, le pide al trazador )(xS las condiciones:

    0)('' 0 =xS y 0)('' 3 =xS , por lo que se concluye que 00 =c y que 03 =c . De esta manera el sistema anterior puede escribirse en forma matricial:

    =

    ++

    0

    )(3)(3

    )(3)(30

    1000)(20

    0)(20001

    121

    232

    010

    121

    3

    2

    1

    0

    2211

    1100

    aah

    aah

    aah

    aah

    cccc

    hhhhhhhh

    En el ejemplo, el sistema anterior toma la forma:

    =

    02/36

    0

    1000261001620001

    3

    2

    1

    0

    cccc

    La solucin de este sistema es: 00 =c , 0714286.11 =c , 4285714.02 =c , 03 =c

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 37 de 49

    Como ya se saba desde antes,: 20 =a , 41 =a , 32 =a , 23 =a

    De la ecuacin 4 se calcula:

    ===

    0714857.05.0

    1785714.0

    2

    1

    0

    ddd

    De la ecuacin 7 se obtiene:

    ==

    =

    0714285.14285714.0

    7142857.1

    2

    1

    0

    bbb

    Finalmente, se concluye que el trazador cbico con frontera libre es:

    +=+=+=

    =]6,4 [ )4(0714857.0)4(4285714.0)4(0714285.13)(

    ]4,3 [ )3(5.0)3(0714286.1)3(4285714.04)(

    ]3,1 [ )1(1785714.0)1(7142857.12)(

    )(32

    2

    321

    30

    xsixxxxS

    xsixxxxS

    xsixxxS

    xS

    Figura 21

    El caso general Para un conjunto de N+1 puntos ),(),...,,(),,(),,( 22110 nn yxyxyxyx , en el proceso de construccin del trazador cbico, se buscan los coeficientes jjj cba ,, y jd , que cumplan las siguientes relaciones:

    1. 32 )()()()( jjjjjjjj xxdxxcxxbaxS +++= , para j=0,1,2,n-1 2. jjjj yxSa == )( , para j=0,1,2,.. n-1. Adems, nnnn yxsa == )(1 3. jjj xxh = +1 , para j=0,1,2,n-1 4. )(

    31

    1 jjj

    j cchd = + , para j=0,1,2,n-1

    5. )2(3

    )(1 11 ++ += jjjjjj

    j cch

    aah

    b , para j=0,1,2,n-1

    6. Se forma un sistema de 1n ecuaciones con 1+N incgnitas nccc ,...,, 10 :

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 38 de 49

    )(3)(3)(2 11

    111 11

    + =+++ + jjj

    jjj

    jjjjj aahaa

    hchchhch jj , j=1.,2,n-1

    Al agregarle a este sistema las condiciones de frontera libre 0)()( "" == no xSxS , se concluye que 00 == ncc y el sistema resulta con una matriz tridiagonal de coeficientes que tiene solucin nica. Adems, esta es una solucin explcita.

    7. Algoritmo de trazador con frontera libre.

    Entrada: ),),...(,(),,( 1100 nn yxyxyx , con nxxx ...10

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 39 de 49

    Prctica con MATLAB

    Ejemplos con sistemas simultneos de ecuaciones

    En primer lugar se espera que el usuario resuelva el sistema de ecuaciones lineales con el que se concluy la seccin introductoria y use los comandos especficos de MATLAB para su solucin.

    En efecto, se puede seguir la siguiente secuencia de instrucciones para determinar la solucin del sistema.

    A = [ 1.331 1.21 1.1 1; 12.167 5.29 2.3 1;

    59.319 15.21 3.9 1; 132.651 26.01 5.1 1];

    b = [ ]; b = [3.887; 4.276; 4.651; 2.117]; c = A\b c = -0.2015 1.4385 -2.7477 5.4370

    Con este proceso se han obtenido los coeficientes del polinomio.

    Ejemplo con Polyfit

    Otra manera de resolverlo es directamente con comandos especficos del software, como se explica a continuacin.

    MATLAB realiza varias tareas de interpolacin mediante el comando INTERP1, el cual, dependiendo de los parmetros con que sea evaluado, ejecuta mtodos diferentes de interpolacin.

    Para hallar los coeficientes del polinomio interpolante podemos recurrir al comando polyfit, que tiene sintaxis polyfit(X,Y,m), el cual retorna el polinomio de mnimos cuadrados de grado de mejor ajuste a los datos. Es bien sabido que si tenemos puntos el polinomio de grado que mejor se ajusta a esos datos en el sentido de mnimos cuadrados es precisamente el polinomio interpolante.

    Por ejemplo, para hallar el resultado del polinomio interpolante que pasa por los cuatro puntos ,, y al evaluarlo en el valor de , se puede seguir la siguiente secuencia de instrucciones:

    clear all; X = [1.1, 2.3, 3.9, 5.1]; Y = [3.8870, 4.2760, 4.65110, 2.1170]; P = polyfit(X,Y,3) Resultado=Polyval(P,2.5)

    Esto da como resultado

    P = -0.2015 1.4387 -2.7481 5.4372 Resultado = 4.4108

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 40 de 49

    El resultado obtenido en la variable P son los coeficientes del polinomio de interpolacin dispuestos en un vector: P = -0.2015 1.4387 -2.7481 5.4372

    Estos coeficientes se interpretan como el polinomio:

    4372.57481.24387.12015.0 23 ++ xxx Note que la instruccin Resultado=Polyval(P,2.5), permite encontrar el valor del polinomio evaluado en 2.5. Esta funcin de MATLAB permite tambin evaluar un polinomio en un vector de valores y en este caso retornara un vector de resultados. Esta adaptabilidad de la funcin Polyval para evaluarse en un vector de valores la hace muy til para graficar cualquier polinomio en un intervalo dado, como se ver en el siguiente ejemplo.

    La siguiente secuencia de instrucciones est orientada al clculo del polinomio interpolante para los puntos (1,5), (3,1), (4,3), (5,-1), (7,4) y (10,2) y, alternativamente la aproximacin y visualizacin del trazador cbico (splines).

    hold off x=[1 3 4 5 7 10]; y=[5 1 3 -1 4 2]; P = polyfit(x,y,5); t=0:0.1:11; W=polyval(P,t); plot(x,y,'*k') hold on; plot(t,W,'k') z=interp1(x,y,t,'spline'); plot(t,z,'r')

    En Figura 22 puede compararse el trazador cbico con el polinomio interpolante para los seis puntos. Como puede notarse, el trazador cbico se acomoda mejor a los datos y no produce oscilaciones indeseables para efecto de hacer extrapolaciones ms apropiadas.

    Figura 22

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 41 de 49

    MATLAB trae implementada la funcin spline para la interpolacin por splines cbicos. El comando, yy = spline(x,y,xx), Efecta la interpolacin de la nube de puntos dada por los vectores x, y por medio de splines cbicos. En la salida (variable yy) se obtienen los valores del spline evaluado en los puntos dados en el vector xx. Si y es una matriz, la interpolacin se realiza para cada fila de y.

    Por ejemplo, el listado

    hold off x = 0:10; y = sin(x); xx = 0:0.25:10; yy = spline(x,y,xx); plot(x,y,'o',xx,yy)

    Figura 23

    Nota: Un resultado anlogo se puede obtener con la funcin interp1: yy=interp1(x,y,xx,'spline'); vista en el ejemplo inmediatamente anterior. Por defecto, se usan las condiciones "not-a-knot" (es decir, los nodos interiores extremos son pasivos). Sin embargo, si el vector y contiene dos valores ms que el x, entonces el primer y el ltimo elemento del vector y se usan como valores de la derivada en los nodos extremos, y el spline construido es el sujeto.

    Por ejemplo, el listado hold off; x = 0:10; y = sin(x); ys=[-1, y, 5]; % Se agrega dos valores xx = 0:.25:10; yy = spline(x,ys,xx); plot(x,y,'o',xx,yy)

    Dibuja una aproximacin a la grfica de la funcin sen (t) a partir de la interpolacin con splines cbicos sujetos, con pendientes -1 y 5 en los nodos 0 y 10, respectivamente.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 42 de 49

    Figura 24

    Ejemplo con Polyfit

    Un reactor est trmicamente estratificado con los valores de la siguiente tabla:

    Profundidad, m 0.0 0.5 1.0 1.5 2.0 2.5 3.0 Temperatura, oC 70 68 55 22 13 11 10

    Tabla 2

    Se comparan los resultados de interpolar estos valores con polinomios cuyo orden vara de 2 a 6 y empleando spline:

    hold off Prof = [0: 0.5 :3]; Temp = [70, 68, 55, 22, 13, 11, 10]; X1 = [0 : 0.1 : 3]; AjSp= spline(Prof, Temp, T1); for j=1:2, for i=1:3, Pol= polyfit(Prof, Temp,(2*j-1)+ i); AjPol=polyval(Pol,X1) ; subplot(2,3,(2*j-1)+i) ;

    plot(Prof, Temp,or, X1, AjPol,g, X1, AjSp,b); axis([min(Prof)-.2,max(Prof)+.2,min(Temp)-10,max(Temp)+10]) end end

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 43 de 49

    Figura 25

    Ejemplo con la funcin Spline

    Con los siguientes pares coordenados, constryase los 3 polinomios con trozos splines. )8,7), (2,5), (5,3), (1,1( . Para resolver el ejercicio se usan solo comando de MatLab.

    hold off x=[1 3 5 7]; % Vector de los datos del eje x y=[1 5 2 8]; % Vector de los datos del eje y yy=spline(x,y) % Valores devueltos por la funcin Spline de MatLab yy = form: 'pp' breaks: [1 3 5 7] coefs: [3x4 double] pieces: 3 order: 4 dim: 1 xx1=1:0.1:7; %Desde el valor mnimo al mximo del eje x yy1=ppval(yy,xx1); % Evaluacin para cada uno de los trozos de polinomios. Hasta aqu se podra construir la curva spline que une los 4 pares de puntos con el siguiente comando tal como se ilustra en la Figura 26.

    plot(x,y,'or',x1,y1,b);

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 44 de 49

    Figura 26. Spline con la funcin de MatLab spline y ppval.

    Las instrucciones que a continuacin se colocan extraen los coeficientes de cada polinomio que une dos pares coordenados. As, el primer polinomio, estar uniendo los puntos x=1 y x=3. x1=1:0.1:3; p1=yy.coefs(1,:) p1 = 0.3333 -2.8750 6.4167 1.0000 y1=p1(1)*(x1-1).^3+p1(2)*(x1-1).^2+p1(3)*(x1-1)+p1(4); La variable y1, evala el polinomio p1 en cada uno de los puntos definidos para el rango anterior, Es decir x1=1, 1.1, 1.2, . . ., 2.9 y 3 De igual forma, que en el caso anterior, el segundo polinomio unir los `puntos x=3 y x=5, y los coeficientes del polinomio estarn dados por los valores de p2. x2=3:0.1:5; p2=yy.coefs(2,:) p2 = 0.3333 -0.8750 -1.0833 5.0000 y2=p2(1)*(x2-3).^3+p2(2)*(x2-3).^2+p2(3)*(x2-3)+p2(4); La variable y2, evala el polinomio p2 en cada uno de los puntos definidos para el rango de x anterior, Es decir x1=3, 3.1, 3.2, . . ., 4.8, 4.9 y 5 Para el tercer trozo, es decir para el rango de las x entre 5 y 7, se hara lo mismo. x3=5:0.1:7; p3=yy.coefs(3,:); y3=p3(1)*(x3-5).^3+p3(2)*(x3-5).^2+p3(3)*(x3-5)+p3(4); Por ultimo se grafican los tres trozos de polinomio, con la siguiente instruccin, mostrando como resultado la Figura 27

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 45 de 49

    plot(x,y,'or',x1,y1,'b',x2,y2,'y',x3,y3,'g')

    Figura 27. Splines construido a trozos con funciones de MatLab

    Problema 1 Ejecute los dos listados anteriores para comprobarlos; dibuje las grficas de los dos splines sobre el mismo sistema de coordenadas para observar sus diferencias. Aumente la cantidad de nodos en [0,10] hasta 50 y vuelva a construir las grficas aproximadas.

    Problema 2 Evale la funcin 22010

    )1log(10)( 232

    +++=ttt

    tttf

    En 7 nodos equiespaciados en el intervalo [-1,1].

    1. Construya un spline cbico s que interpola a f en esos puntos. 2. Dibuje la grfica del error e(t)=f(t)-s(t) y estime el valor de la norma uniforme

    [ ]1,1e . Compare con el resultado de la interpolacin polinomial de la prctica anterior.

    3. Los valores de las derivadas de f en los extremos del intervalo son aproximadamente f'(-1)=0.3 y f'(1)=-0.09. Construya el spline sujeto interpolador y dibuje la grfica de la diferencia entre los dos splines. Cmo se propaga la influencia de las condiciones de frontera al resto del spline?

    En su sintaxis "reducida" pp = spline(x,y) devuelve la forma polinomial a trozos del spline cbico interpolador de la nube x, y. Para evaluarlo, hay que aplicarle la funcin ppval, equivalente a polyval para polinomios. As, pp = spline(x,y); yy=ppval(pp,xx);

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 46 de 49

    Equivale a yy = spline(x,y,xx). Sin embargo, esta forma permite hallar explcitamente los coeficientes del spline construido, en caso de que se necesiten. La funcin que se encarga de "trocear" el spline y sacar esta informacin se llama unmkpp (de unmake piecewise polinomial'). Su sintaxis es: [nodos,coefs,nro de trozos, orden, dim] = unmkpp(pp) Donde recuerde que el orden = grado + 1, y dim se refiere a si el spline es uni o multivariante. Nota: La funcin inversa a unmkpp es la mkpp.

    Ejercicios propuestos

    Ejercicio N 1: Para el conjunto de valores tabulados (regularmente espaciados), se pide:

    a) Obtener la tabla de diferencias sucesivas. b) Calcular por interpolacin el valor de Y(2.3) considerando:

    9 Polinomio de orden 1 con arranque en Xo= 2.2 9 Polinomio de orden 2 con arranque en Xo= 2 9 Polinomio de orden 2 con arranque en Xo= 2.2 9 Polinomio de orden 3 con arranque en Xo= 2 9 Polinomio de orden 3 con arranque en Xo= 2.2

    c) En casa caso determinar los errores relativos de cada interpolacin considerando que los puntos pertenecen a la funcin Y(x)= seno(x). (x en radianes)

    X Y

    2.0 0.909 2.2 0.808 2.4 0.675 2.6 0.516 2.8 0.335 3.0 0.141

    Ejercicio N 2: Para el conjunto de valores tabulados (irregularmente espaciados), se pide:

    a) Obtener la tabla de diferencias divididas sucesivas.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 47 de 49

    b) Calcular por interpolacin el valor de Y(2.3) considerando: 9 Polinomio de orden 1 con arranque en Xo= 2.1 9 Polinomio de orden 2 con arranque en Xo= 2.0 9 Polinomio de orden 2 con arranque en Xo= 2.1 9 Polinomio de orden 3 con arranque en Xo= 2.0 9 Polinomio de orden 3 con arranque en Xo= 2.1

    c) En casa caso determinar los errores relativos de cada interpolacin considerando que los puntos pertenecen a la funcin Y(x)= seno(x). (x en radianes)

    X Y 2.0 0.909 2.1 0.863 2.4 0.675 2.6 0.516 2.7 0.427 3.0 0.141

    Ejercicio N 3: Para la tabla del Ejercicio N 2, se pide

    a) Obtener los polinomios de Lagrange para los siguientes casos. Polinomio de orden 1 con arranque en Xo= 2.1 Polinomio de orden 2 con arranque en Xo= 2.0 Polinomio de orden 2 con arranque en Xo= 2.1 Polinomio de orden 3 con arranque en Xo= 2.0 Polinomio de orden 3 con arranque en Xo= 2.1

    b) En casa caso estimar el valor de Y en X=2.3 Ejercicio N 4: Para la tabla del Ejercicio N 2, se pide

    1. Obtener los coeficientes que definen los Splines o Trazadores Cbicos Naturales. 2. Estimar el valor Y en X= 2.3 . Compararlo con aquel obtenido en los ejercicios N

    2 y 3. Interpretar el origen de las diferencias observadas. 3. Calcular el valor de las derivadas primera y segunda en cada punto.

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 48 de 49

    RECURSOS BIBLIOGRAFCOS

    Bibliografa Bsica:

    9 MATHEUS. John H. Fink Kurtis D. Mtodos Numricos con MATLAB. Editorial Prentice Hall

    Bibliografa Complementaria:

    9 ALTZ, Franz L. Electronic. Digital. computers: Their use in science and Engineering. 1958 Academic Press inc. New York.

    9 BURDEN Richard L., J. Douglas Faires; Anlisis numrico. tr. Efrn Alatorre Miguel; Revisin Tcnica. Ildefonso. 1998 (Biblioteca USCO. Nro Topogrfico: 515 / B949a.)

    9 CHAPRA Steven C., CANALE Raymond P, Numerical Methods for engineers. McGraw Hill, Inc. 1988. 839p. ISBN 0-07-909944-0.

    9 CHAPRA Steven C., CANALE Raymond P. Mtodos numricos para ingenieros: con aplicaciones en computadoras personales. 1988 (Biblioteca USCO Nro Topogrfico: 519.5 / C467m)

    9 CONDE S. D, Carl de Boor. Anlisis numrico elemental: Un enfoque algortmico. Mc. Graw-Hill 1972, (Biblioteca USCO Nro Topogrfico: 511.8 / C761 Biblioteca).

    9 CORMICK MC., John M. and SALVADOR M.C. Numerical Methods in FORTRAN. 1964. Prentice-Hall Inc Englewood Cliffs N:J.

    9 CURTIS, F. Gerald, WHEATLEY, O. Patrick. Anlisis numrico con aplicaciones. Tr. Hugo Villagomez Vasquez. 6 Ed. Pearson Educacin. 2000, 698p. ISBN 968-444-393-5

    9 FADDEEVA, V.N. Computacional methods of linear algebra, Dover Publications. 1969, New York.

    9 GASTINEL Nol; Anlisis numrico lineal. tr. Javier Ruiz Fernndez de Pinedo. 1975. (Biblioteca USCO Nro Topogrfico: 511.7 / G255).

    9 GREENSPAN, D. Theory and solutions of Ordinary Differencial Equations. 1960 The. Mc Millan Co. New York.

    9 KINCAID David y Ward Cheney; Anlisis numrico: Las matemticas del clculo cientfico. tr. Rafael. 1994 (Biblioteca USCO Nro Topogrfico: 515 / K51a).

    9 LUTHE. Rodolfo, OLIVERA Antonio, SCHUTZ Fernando, Mtodos numricos. 1986 (Biblioteca USCO Nro Topogrfico: 511.7 / L973m).

    9 McCRACKEN, Daniel D., Mtodos numricos y programacin fortran: con aplicaciones en ingeniera y ciencias. 1986. Editorial Limusa. Mxico. (Biblioteca USCO Nro. Topogrfico: 001.6424 / M117).

    9 NAKAMURA Shoichiro; Mtodos numricos aplicados con software. tr. Oscar Alfredo Palmas Velasco. Prentice Hall Hispanoamericana S.A. 1995. 570p. (Biblioteca USCO. Nro. Topogrfico: 511.8 / N163m) ISBN 968-880-263-8

    9 NAKAMURA Shoichiro; Anlisis numrico y visualizacin grfica con MatLab. tr. Roberto Escalona Garcia. Prentice Hall Hispanoamericana S.A. 1997. (Biblioteca USCO N ro Topogrfico: 515.1 / N163a). 465p. ISBN 968-880-980-1

    9 NIETO RAMIREZ Jos A., Mtodos numricos en computadoras digitales. Editorial Limusa 1980. (Biblioteca USCO Nro Topogrfico: 001.64042 / N677).

  • Trazadores o Splines Ing Yamil Armando Cerquera Rojas [email protected]

    Universidad Surcolombiana Neiva Huila Colombia 49 de 49

    9 RALSTON Anthony; Introduccin al anlisis numrico. tr. Carlos E. Cervantes de Gortari. Editorial Limusa. Mexico. 1978. 629p. (Biblioteca USCO Nro Topogrfico: 511.7 / R164.)

    9 SCARBOROUGH, J.B Numerical mathematics analysis 9 SIERRA ROMERO, Alberto. Manual de Mtodos Numricos. Universidad Tecnolgica

    de Pereira. 9 SMITH, W. Allen; Anlisis numrico. tr. Francisco Javier Snchez Bernabe; Rev. Tc.

    Jos Luis Turriza Pinto. Prentice Hall Hispanoamericana S.A. 1988. 608p. (Biblioteca USCO Nro Topogrfico: 515 / S664a) ISBN 968-880-119-4.

    9 STANTON, Ralp G. Numerical Methods for Science and Engineering. 1967. Prentice-Hall Inc. Englewood Cliffs N.J

    Bibliografa OnLine:

    http://anamat1.csi.ull.es/anamat_p/Titulaciones/matematicas.htm http://arxiv.org/ http://books.pdox.net/ http://luda.azc.uam.mx/curso2/cp2indic.html http://mailweb.udlap.mx/~ccastane/Analisis_Numerico_html/Lindley.html#RegresaGral1 http://mathworld.wolfram.com/ http://omega.ilce.edu.mx:3000/sites/ciencia/html/fisica.htm http://pessoal.sercomtel.com.br/matematica/resumos.htm http://proton.ucting.udg.mx/posgrado/cursos/metodos/temario.html http://sai.uam.mx/apoyodidactico/mn/ http://uprhmate01.upr.clu.edu/~pnm/notas4061/index.htm http://webdiee.cem.itesm.mx/web/servicios/archivo/tutoriales/metodos/index.html http://webdiee.cem.itesm.mx/web/servicios/archivo/tutoriales/metodos/algoritmos/index.html http://webdiee.cem.itesm.mx/web/servicios/archivo/tutoriales/metodos/algoritmos/index.html http://www.ciencia-hoy.retina.ar/indice.htm http://www.cnice.mecd.es/Descartes/ http://www.damtp.cam.ac.uk/user/fdl/people/sd/lectures/nummeth98/contents.htm http://www.elprisma.com/ http://www.fortunecity.com/campus/earlham/850/metodos_numericos/indice.htm# http://www.geocities.com/SiliconValley/Pines/7894/metodos/ http://www.iesrodeira.com/metodos_numericos/index-2.htm http://www.ii.uam.es/~pedro/ccii/teoria/ http://www.itlp.edu.mx/publica/tutors.htm http://www.monografias.com/trabajos13/tumatlab/tumatlab.shtml http://www.rinconmatematico.com/libros.htm http://www.ucsc.cl/~kdt/numerico/index.htm http://www.unalmed.edu.co/~ifasmar/libro.shtml http://www.uv.es/~diaz/mn/fmn.html http://www.uv.es/diaz/mn/fmn.html http://www-gap.dcs.st-and.ac.uk/~history/index.html (Biografias)