interpolacion matlab

Upload: joinme1020

Post on 03-Mar-2016

53 views

Category:

Documents


4 download

DESCRIPTION

Metodo de interpolacion en Matlab

TRANSCRIPT

  • 7/21/2019 interpolacion matlab

    1/72

    Proyecto #5: Salidas gracas en Matlab. Interpolaci on

    Vctor Domnguez Mara Luisa Rapunhttp://www.unavarra.es/personal/victor dominguez/

    12 de diciembre de 2005

    http://www.unavarra.es/personal/victor_dominguez/http://www.unavarra.es/personal/victor_dominguez/
  • 7/21/2019 interpolacion matlab

    2/72

  • 7/21/2019 interpolacion matlab

    3/72

    Captulo 1

    Introducci on

    Trataremos en este proyecto uno de los aspectos m as potentes de Matlab: las sali-

    das gr acas. Aunque es difcil, o al menos extenso, exponer con cierto detalle todos loscomandos, su funcionamiento y los diferentes par ametros y opciones que se encuentrana disposici on del usuario, s que es asumible el conocimiento de los aspectos m as b asicosy que sea el propio usuario, con la ayuda de Matlab o con guas mucho m as detalladas,quien profundice en los detalles que necesite.

    En la segunda parte estudiaremos el problema de la interpolaci on polin omica comouna buena piedra de toque para testar las salidas gr acas.

    Como aspectos relacionados hablaremos someramente de la interpolaci on por splines y las curvas Bezier, que nos dan un ejemplo muy sencillo de Matem aticas aplicadas aldiseno gr aco.

    #4 1

  • 7/21/2019 interpolacion matlab

    4/72

  • 7/21/2019 interpolacion matlab

    5/72

    Parte I

    Matlab: Salidas gracas en Matlab

    #4 3

  • 7/21/2019 interpolacion matlab

    6/72

  • 7/21/2019 interpolacion matlab

    7/72

    Captulo 2

    Dibujos bidimensionales

    2.1. El comando

    Ya hemos observado que los comandos de Matlab denen de una forma natural variosniveles de manipulacion. Los niveles basicos son f aciles de utilizar pero acceder a detallesmas nos exige argumentos opcionales y detalles mucho m as nos.

    Esta caracterstica se destaca m as, si cabe, en los comandos relacionados con las salidasgracas. Es por ello que, empezando por la instrucci on , recorreremos los diferentesniveles de forma gradual. El nivel superior, que conlleva un control absoluto del dibujo, nolo trataremos porque requerira un exposici on demasiada larga. Lo que aqu expondremoses suciente en un 99% de los casos, y en ultima medida se pueden acceder a todas lascaractersticas de un dibujo desde la ventana gr aca a golpe de raton.

    2.1.1. Primer nivel

    El primer comando que trataremos es 1. Es una instrucci on muy versatil y la m asindicada para dibujar gr acas de funciones y curvas en el plano. Su sintaxis b asica es

    dibuja el vector versus el vector . M as en concreto une los puntosmediante segmentos. Tomando un n umero suciente elevado de puntos trazamos con ellouna gr aca suave , sin esquinas.

    Al ejecutar este comando se abre una ventana, gure en el vocabulario de Matlab, conla correspondiente salida gr aca.

    Si se teclea

    e es real entonces la salida gr aca toma donde es la longitud de . Si, por otrolado, es un vector de n umeros complejos, dibuja la parte real versus la parte imaginaria.Es decir, es equivalente a .

    Ejercicio 1 Que hacen las siguientes lneas de codigo?1 que ha hemos tratado en el tema anterior.

    #4 5

  • 7/21/2019 interpolacion matlab

    8/72

    2.1 El comando PROYECTO #4

    Figura 2.1: Ventana gr aca

    Te parece natural? Que observas con la escala? Que sucede si se ejecuta ?.Como dibujaras una circunferencia?.

    2.1.2. Segundo nivel

    El comando ademas acepta una serie de argumentos opcionales que entre otras cosaspermiten controlar el color, colocar marcas sobre los puntos y que tipode marcas y como se unen estos puntos. As, en su aspecto m as general,

    dibuja vs. , con S una cadena de caracteres que se construye con 2

    2 Traducido directamente de la ayuda de Matlab

    #4 6

  • 7/21/2019 interpolacion matlab

    9/72

    PROYECTO #4 Cap tulo 2. Dibujos bidimensionales

    La primera columna especica el color utilizado, la segunda la marca sobre cada punto yla tercera que patr on siguen las lneas utilizadas para unir los puntos.

    Por ejemplo el siguiente chero

    genera (tras el reordenamiento manual de las ventanas adecuado, obviamente), la pantallamostrada en la gura 2.2.

    El comando abre una ventana gr aca asign andole un numero. Si la ventanaya est a abierta, la coloca como la ventana de salida por defecto. En particular,permite manejarse con varias ventanas de forma simult anea.

    Para superponer varios dibujos sobre una misma ventana podemos

    Utilizar de la siguiente forma 3

    Con

    especicamos detalles individuales para cada dibujo. De ambas formas se dibujan si-mult aneamente las curvas denidas por los vectores {{ , }, { , }, { , }, { , }}.Utilizar la orden que activa la superposici on en pantalla. Por ejemplo,

    3 Notese que se asignan distintos colores a cada una de las gr acas de forma automatica.

    #4 7

  • 7/21/2019 interpolacion matlab

    10/72

    2.1 El comando PROYECTO #4

    Figura 2.2: Ventana gr aca

    Esta opcion es m as vers atil dado que permite superponer gr acas construidas condiferentes comandos. La superposici on se desconecta con , de forma queun nuevo dibujo borrar a los anteriores.

    2.1.3. Tercer nivel

    Ya en un tercer nivel, se pueden acceder a detalles concretos del dibujo, como eltama no y color de las marcas , la anchura de la lnea,... Las diferentes opciones llevannombre nemotecnicos que ayudan a recordarlo 4. Destacamos entre las m as importantes a

    4 nemotecnicos en ingles, of course .

    #4 8

  • 7/21/2019 interpolacion matlab

    11/72

    PROYECTO #4 Cap tulo 2. Dibujos bidimensionales

    : color de la lnea.

    : anchura de la lnea.

    : color del borde de las marcas

    : color de la marca

    : tamano de la marca

    Para especicar un color, se puede utilizar uno de estos caracteres { , , , , , , } obien un vector con tres componentes con valores entre 0 y 1 que especica un color seg unel est andar RGB 5.

    Por ejemplo

    Ejercicio 2 Se trata de que dibujes las funciones seno ycoseno en [2, 2], la primera enrojo yla segunda en azul. El ancho de lnea debe ser de dos puntos ydeben seguir dos estilosdiferentes, a tueleccion.

    Puedes empaquetar las instrucciones en un chero script . Te sera mas c omodo para editarycambiar los que desees.

    Nota: la ventana graca

    Es posible editar directamente estas propiedades en la gura . Para ello, seleccionar editplot (vease Figura 2.3) y pulsar sobre la gr aca con un doble click. Se desplegar a unaventana adicional con varias pesta nas que informan y permiten modicar diferentes carac-tersticas del objeto. Si se pulsa sobre el fondo de la pantalla controlaremos m as aspectosdel propio entorno, como la escala, el ratio entre el eje OX y OY, las marcas sobre los

    ejes,..., aspectos que trataremos seguidamente.No entraremos a explicar estos detalles en profundidad. Este un buen ejemplo donde laprueba, la experimentaci on y el ensayoerror permiten aprender mejor y m as r apidamenteque cualquier manual que podamos redactar.

    La ventaja de editar a traves de comandos es que podemos dotar de un aspecto deter-minado nuestros dibujos sin necesidad de retocarlos en cada paso y para cada ejemplo. Elprecio que se paga es un mayor trabajo. Por contra la manipulaci on a traves del rat on esmucho m as simple, aunque rehacer un dibujo exige volver a dar el aspecto nal deseadodel dibujo a mano. Queda por tanto a elecci on del usuario que metodo utilizar en cadacaso.

    5

    R ed, G reen, B lue. Crea un color anadiendo partes de rojo, verde y azul seg un los valores de unvector de tres componentes

    #4 9

  • 7/21/2019 interpolacion matlab

    12/72

    2.1 El comando PROYECTO #4

    Ejercicio 3 Ejecuta

    Desde la ventana graca dale el aspecto que habas dado en el ejercicio 2.

    2.1.4. Comandos asociados

    Paralelamente a , existe una serie de comandos que controlan el entorno dondese despliega la graca. Entre los m as elementales (o al menos, m as f aciles de utilizar),podemos destacar:

    : n despliega una ventana gr aca asign andole el n umero n. Siesta existe, la transforma en la ventana gr aca de salida.

    : borra la ventana actual ( gure ) de gr acos.

    : borra el axes actual. El axes es la parte de la ventana utilizada paradibujar. Una ventana puede contener varios axes (vease el comando

    tratado mas adelante).

    : permite que sucesivas gr acas se vayan solapando.desconecta esta opcion (es la que est a por defecto).

    : un comando algo complejo. Controla el ratio entre los ejes OX y OY,la parte del dibujo que se muestra por pantalla, forma de mostrar lascoordenadas....

    : especica los lmites del dibujo. Se puede utilizar para centrar el dibujo

    : muestra una malla en pantalla; la desconecta

    : despliega una leyenda , esto es un cuadro explicativo sobre las gr acaspresentes.

    : a nade ttulos ( etiquetas ) a los ejes OX y OY

    : Coloca un ttulo en la cabecera del dibujo.

    Asigna un color al fondo del dibujo

    #4 10

  • 7/21/2019 interpolacion matlab

    13/72

    PROYECTO #4 Cap tulo 2. Dibujos bidimensionales

    Figura 2.3: Edicion de un dibujo

    #4 11

  • 7/21/2019 interpolacion matlab

    14/72

    2.1 El comando PROYECTO #4

    A modo de ejemplo, el siguiente conjunto de instrucciones (empaquetado en un cheroscript 6) despliega las gracas mostradas en la Figura 2.4

    Nota. En el comando hemos utilizado los atributos y paraespecicar la fuente y su tama no utilizada para escribir el ttulo. Otros atributos son

    : los valores posibles son . Especican el trazode los car acteres, desde no ( ) hasta negrita ( ).

    : con jamos la inclinaci on de la fuente.: especica el angulo con el que se escribe el texto. El valor por defecto, 0, es

    la escritura horizontal, mientras que con 90 se escribe el texto en vertical.

    Este tipo de atributos est an disponibles para cualquier comando que se ocupe de desplegartextos en la pantalla gr aca. Por ejemplo, , , , ,...

    Ejercicio 4 Se trata de visualizar el efecto del comando con diferentes opciones sobreel aspecto nal de un dibujo.

    Teclea6 Observa la utilizacion de para cortar lneas demasiado largas.

    #4 12

  • 7/21/2019 interpolacion matlab

    15/72

    PROYECTO #4 Cap tulo 2. Dibujos bidimensionales

    0 1 2 3 4 5 6

    -0.2

    -0.1

    0

    0.1

    0.2

    0.3

    0.4

    0.5

    Eje OX

    E j e O Y

    Algunas graficas de funciones

    exp(-x/3).*cos(x/3)exp(-x).*cos(x)

    exp(-3x)*cos(3x)exp(-9x).*cos(9x)

    Figura 2.4: Un ejemplo

    La funcion tangente presenta una asntota vertical 7 en / 2. Teclea los siguientes comandos yobserva el aspecto nal de la gura

    Intuyes que hace cada comando? Utilizando la ayuda deduce exactamente que hace cadacomando.

    2.1.5. Cuarto nivel: y

    Los comandos y permiten acceder y cambiar los atributos de cualquier objetograco. No son, por tanto, en medida alguna exclusivos de . M as bien todo objetograco, desde una simple curva hasta la propia ventana donde se despliega el dibujo

    7 Tiende a innito

    #4 13

  • 7/21/2019 interpolacion matlab

    16/72

  • 7/21/2019 interpolacion matlab

    17/72

    PROYECTO #4 Cap tulo 2. Dibujos bidimensionales

    De forma similar

    devuelve en un variable que permite a continuaci on la manipulacion de muchas de suspropiedades. Para ello se utiliza la instrucci on

    cambia alguno de los atributos de la leyenda , x,f4-3359een

  • 7/21/2019 interpolacion matlab

    18/72

    2.2 Otras salidas gracas PROYECTO #4

    accede a la estructura de la gr aca, que esencialmente es el marco donde desplegamos losdibujos. La lneas edita los atributos que especica donde colocar las marcasen el eje OX, la fuente utilizada en el dibujo, la opci on de en el eje OY, el tama no

    de la lnea para la malla y c omo dibujar esta. El resultado se puede ver en la gura 2.5

    0 0.25 0.5 1 2 4-1

    0

    1

    2

    3

    4

    5

    6x log(x)

    Figura 2.5: Salida correspondientes

    Nota

    Todas las propiedades anteriores se pueden modicar de una forma m as facil edit andolodirectamente en la ventana gr aca. Su manejo es f acil intuitivo (seleccionar, doble click,bot on derecho del rat on....).

    Con las ordenes y obtenemos la informaci on de las di-ferentes opciones para la instrucci on (y similares) y para la gura.

    Con accedemos a los diferentes par ametros de un objeto gr aco y sus valores. Por

    ejemplo

    muestran los valores para el axis y gure utilizado en ese momento ( get current axis y get current gure ).

    2.2. Otras salidas gracas

    Resenaremos a continuaci on otros comandos relacionados con dibujos y gr acas bidi-mensionales de manejo similar a

    #4 16

  • 7/21/2019 interpolacion matlab

    19/72

    PROYECTO #4 Cap tulo 2. Dibujos bidimensionales

    : curvas en polares;

    : similar a pero utilizando, respectivamente, una escala lo-

    gartmica en el eje OX y el eje OY;: escala logartmica en ambos ejes;

    : dibuja puntos uniendolos con una linea vertical al eje OX;

    : traza una gr aca en forma de escalera;

    : despliega gr acas en forma de barras. Muy apropiada para repre-sentar datos y estadsticas (estilo excel );

    : Muestra los datos en una gr aca de forma acumulada. El colorutilizado se controla mediante el comando , cuyo funcio-namiento veremos m as adelante;

    : Une puntos mediante lneas. Es una instrucci on de bajo nivel cuyofuncionamiento es similar a ;

    : una instruccion tambien de bajo nive l8, construye polgonos, ocaras en tres dimensiones y asigna un color a la cara denida;

    2.3. El comando

    Este comando permite la visualizaci on de diferentes subventanas gr acas ( ) enuna misma ventana. A modo de ejemplo,

    dene una ventana con seis zonas para salidas gr acas dispuestas en 2 3 (dos las, trescolumnas) y accede a la primera de ellas. La numeraci on es la desplegada en la gura 2.6.Por ejemplo, las instrucciones

    #4 17

  • 7/21/2019 interpolacion matlab

    20/72

    2.4 Comandos f aciles de usar PROYECTO #4

    1 2 3

    4 5 6

    Figura 2.6: Numeraci on con

    crean la gura 2.7.

    2.4. Comandos f aciles de usar

    Matlab tiene implementada una serie de comandos que permiten dibujar de formasencilla gr acas de funciones. No se tiene un control tan completo como con pero secompensa con su facil uso. En el apartado que nos ocupa (gr acas bidimensionales) sonresaltables

    La ayuda de Matlab es, en nuestra opini on, suciente para aprender su manejo

    #4 18

  • 7/21/2019 interpolacion matlab

    21/72

    PROYECTO #4 Cap tulo 2. Dibujos bidimensionales

    0 2 4 6

    -0.5

    0

    0.5

    sin(x)

    0 2 4 6

    -0.5

    0

    0.5

    1cos(x)

    0 2 4 6

    -0.5

    0

    0.5

    1sin(2x)

    0 2 4 6

    -0.5

    0

    0.5

    cos(2x)

    0 2 4 6

    -0.5

    0

    0.5

    sin(4x)

    0 2 4 6

    -0.5

    0

    0.5

    1cos(4x)

    Figura 2.7: Disposicion simult anea de gracas con

    #4 19

  • 7/21/2019 interpolacion matlab

    22/72

  • 7/21/2019 interpolacion matlab

    23/72

    Captulo 3

    Gracas en 3D

    Cualquier dibujo en 3D, ya sea curvas o supercies, y su trazado a mano conllevanuna serie de dicultades que hacen que los programas de dibujo y similares, como Matlab,se revelen especialmente utiles. Matlab incluye la posibilidad de rotar objetos y haceranimaciones en el espacio de forma que se consiga una visualizaci on.

    Hemos decidido incluir en este apartado las instrucciones relativas a curvas de ni-vel aunque hablando propiamente son dibujos bidimensionales. Su origen y su posteriorinterpretacion nos conducen de nuevo al entorno espacial.

    3.1. El comando

    Este comando sirve, a grosso modo, para dibujar curvas en el espacio. Su manejo esmuy similar a , por lo que no nos detendremos demasiado en su explicaci on. Esta essu sintaxis

    opciones

    con opciones muy similares a . He aqu un ejemplo sencillo

    cuyo resultado se muestra en la gura 3.1. Observese que los comandos relacionados conlos aspectos accesorios del dibujo ( , , , ...) funcionan exactamenteigual y que aparecen algunos nuevos cuya utilidad y manejo no debera causar sorpresa:

    #4 21

  • 7/21/2019 interpolacion matlab

    24/72

  • 7/21/2019 interpolacion matlab

    25/72

    PROYECTO #4 Cap tulo 3. Gr acas en 3D

    donde , especican una malla en el plano y la altura correspondiente. El color quese da a cada punto es por defecto igual a la altura.

    Queda pendiente, no obstante, como construir una malla. Aunque se puede hacer a

    mano ( Matlab ofrece en su ayuda informaci on detallada de c omo hacerlo), es mejor echarmano de comandos propios de Matlab, en este caso, . As, si e son dosvectores, este comando devuelve dos vectores que contienen la informaci on de la malla.La construcci on de dicha malla sigue el esquema marcado por la gura 3.3.

    x

    y

    y(3)y(2)y(1)

    y(m)

    x(1) x(2)x(3) x(4)

    y(4)

    x(n)

    Figura 3.3:

    Por ejemplo

    Las variables e forman una malla seg un la sintaxis de Matlab.El dibujo de la gura 3.4 se ha construido con el siguiente conjunto de instrucciones

    #4 23

  • 7/21/2019 interpolacion matlab

    26/72

    3.2 El comando PROYECTO #4

    Figura 3.4: Supercie creada con

    Comandos asociados

    Relacionados con se dispone de una serie de instrucciones que controlan tanto elaspecto gr aco como la visualizacion nal de la supercie. Nos limitaremos a hablar deestos cuatro comandos

    despliega una barra de colores que informa sobre la correspondencia entre valornumerico y color utilizado. Por defecto se despliega verticalmente a la derecha deldibujo, aunque puede mostrarse horizontalmente si as se desea 1.

    1 Consulta la ayuda...

    #4 24

  • 7/21/2019 interpolacion matlab

    27/72

    PROYECTO #4 Cap tulo 3. Gr acas en 3D

    especica que colores se van a utilizar en el dibujo. Existe un conjunto de formatospredenidos que listamos a continuaci on

    Para cambiar a un formato basta ejecutar

    y cambiara el color utilizado en la gr aca actual y en las siguientes. Se puedentambien denir formatos personalizados, bien mediante la lnea de comando o desdela propia ventana gr aca.

    controlamos la relacion entre los ejes del dibujo. Baste decir que

    ja que las proporciones de los ejes OX, OY y OZ sean iguales. Es decir con

    la esfera se muestra como una esfera y no como un elipsoide.

    similar al anterior pero relacionado con la caja que enmarca el dibujo.

    3.2.2. El comando : segundo y tercer nivel

    En un segundo nivel de utilizaci on del comando anterior podemos acceder a algunasopciones adicionales entre las que podramos destacar 2

    2 siempre a nuestro juicio...

    #4 25

  • 7/21/2019 interpolacion matlab

    28/72

    3.2 El comando PROYECTO #4

    : se especica un valor entre 0 y 1 que dene la transparencia quetiene la rejilla o red en el dibujo (con 0 la red es transparente ypor tanto no se ve)

    : como la opcion anterior pero relativa a las caras.

    : cuatro valores posibles: un color (en el formato habitual), ,, . Especica que color utilizar en la rejilla. Por

    defecto es negro, pero se puede eliminar la rejilla ( ),se pue-de utilizar el color marcado por el primer vertice ( ) o bienutilizar un color denido por los colores de los dos vertices de cadaeje

    : igual que la opcion anterior, con las mismas opciones. En este casoespecica el color de cada cara de la malla utilizada en el dibujo.Si no se especica, el color se calcula utilizando la altura de lospuntos, es decir, la coordenada .

    : anchura de las lneas utilizadas en el dibujo de la red

    : que marca colocar en cada punto del dibujo. Sigue el mismo for-mato que (por defecto no coloca ninguna marca).

    igual que en

    Tres opciones (defecto), y . Especica c omo des-pliega la red, entera, s olo las las o solo las columnas, respectiva-mente.

    Por ejemplo, la gura 3.5 se obtiene con

    genera la gura 3.5

    En un tercer nivel de dicultad (y de precisi on), el comando devuelve un handle quepermite modicar todas estas opciones a posteriori. As, por ejemplo,

    #4 26

  • 7/21/2019 interpolacion matlab

    29/72

    PROYECTO #4 Cap tulo 3. Gr acas en 3D

    Figura 3.5: Algunas opciones con

    devuelve en h, despues de dibujar, un puntero al dibujo.Como antes, podemos leer una propiedad determinada mediante :

    o bien ver todas con

    #4 27

  • 7/21/2019 interpolacion matlab

    30/72

    3.2 El comando PROYECTO #4

    Observamos as alguna de las opciones que hemos comentado y otras muchas m as que nohemos estudiado.

    Para cambiar una propiedad utilizamos de nuevo el comando . Por ejemplo con

    hacemos aparecer la rejilla en el dibujo con las lneas trazadas con anchura 1.

    #4 28

  • 7/21/2019 interpolacion matlab

    31/72

  • 7/21/2019 interpolacion matlab

    32/72

    3.3 Otros comandos relacionados PROYECTO #4

    3.3. Otros comandos relacionados

    Comentaremos a continuaci on otras instrucciones relacionadas con gr acas de objetostridimensionales.

    3.3.1. y

    Despliegan las lneas de nivel del dibujo. Propiamente es una gr aca en 2D. La dife-rencia entre ellas es que la primera s olo traza las curvas de nivel mientras que la segundacolorea el espacio entre ellas.

    Es posible a nadir un texto sobre cada lnea de nivel. Para ello basta hacer como en elejemplo siguiente

    El resultado es el de la gura 3.7

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

    -1

    0

    1

    2

    -0.

    0-008-006-004-0020002004006

    -2

    -0.0-0

    -0.00.0-2-0002-0.8-0.6-0.4-0.200.20.40.6

  • 7/21/2019 interpolacion matlab

    33/72

    PROYECTO #4 Cap tulo 3. Gr acas en 3D

    3.3.2. y

    Ambas son variantes de . La primera despliega la supercie y dibuja en el planoOXY (plano inferior) las curvas de nivel.

    La segunda es como pero el color que asigna a cada punto viene determinadopor una punto de iluminaci on exterior . El resultado es el de una supercie de un colordeterminado iluminado desde un punto

    3.3.3.

    Todos ellos dibujan unicamente la malla (rejilla) del dibujo. La segunda adem as a nadelas lneas de nivel, de forma semejante a como proceda .

    3.4. Comandos f aciles de usar Los comandos

    permiten trazar, de forma muy sencilla, curvas y supercies en el espacio. Su sencillez deuso (consulta la ayuda) queda lastrada con el inconveniente de que apenas se tiene controlsobre el aspecto nal.

    3.5. Dibujos sobre dominios mallados en triangulos

    Los comandos anteriores est an pensados para dibujar supercies denidas esencial-mente sobre una cuadrcula. Aunque en muchos casos esto es suciente en ocasiones setrabaja con funciones denidas sobre conjuntos, o dominios en la terminologa habitual,mucho m as generales.

    Una forma muy simple de trabajar con estos dominios es dividirlo en tri angulos yconstruir la supercie solapando planos denidos sobre cada tri angulo3. Los resultadosque se obtienen son bastante satisfactorios, puesto que los tri angulos son mas exiblesque los rectangulos o paralelogramos a la hora de adaptarse a los dominios.

    La divisi on en triangulos de un conjunto as se denomina triangulaci on o mallado

    del dominio. Se dice que un mallado se hace m as no si el tama no de los triangulosdisminuye.Una triangulacion se dice conforme si la interseccion de dos lados cualesquiera del

    mallado es o bien vaco (los tri angulos no se tocan), o un vertice o un lado entero. Es decirno se admiten que un lado de un tri angulo pueda ser parte de dos lados de dos tri angulosdiferentes (vease gura 3.8). Por otro lado, una familia de triangulaciones se dice regularsi los triangulos no se aplanan , es decir, los angulos de los tri angulos no se hacen muypequenos.

    La siguiente cuestion es c omo almacenar la informaci on de una triangulaci on. Enprimer lugar se considera una numeraci on de los nodos (vertices) de los tri angulos. Las

    3

    se utiliza el conocido resultado de que tres puntos no alineados denen un unico plano. Es f acil vertambien que la supercie as construida es continua

    #4 31

  • 7/21/2019 interpolacion matlab

    34/72

    3.5 Dibujos sobre dominios mallados en triangulos PROYECTO #4

    Figura 3.8: Triangulaci on no conforme

    coordenadas de cada vertice se guardan en dos vectores, x e y de forma que las coordenadasdel vertice vengan dados por

    (x ( ) , y ( )) .

    En segundo lugar almacenamos los nodos que componen cada tri angulo, mediante unamatriz t de tres columnas y n las con n el n umero total de tri angulos. As para saberque vertices est an en el tri angulo , basta mirar

    t ( , 1) t ( , 2) t ( , 3)

    esto es, la la de t .A modo de ejemplo, el mallado expuesto en la gura 3.9 se guarda en las siguientes

    variables

    Triangulos

    #4 32

  • 7/21/2019 interpolacion matlab

    35/72

    PROYECTO #4 Cap tulo 3. Gr acas en 3D

    -0.5 0 0.5-0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    1

    2

    3

    4

    5

    6

    78

    9 10

    1112

    1314

    15

    16

    17

    18

    19

    20

    211

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15 16

    17

    181920

    21

    22

    2324

    25

    26

    27

    28

    16728

    Figura 3.9: Ejemplo de triangulaci on. En el graco la numeracion de los triangulos serodea con un crculo

    coordenadas:

    #4 33

  • 7/21/2019 interpolacion matlab

    36/72

    3.5 Dibujos sobre dominios mallados en triangulos PROYECTO #4

    La informaci on anterior es suciente para construir la malla, la triangulaci on del do-minio. Si ademas se desea construir la supercie en cuesti on hace falta un vector adicionalz de forma que

    z( )sea el valor de la funci on en el nodo .

    Figura 3.10: Graca sobre un dominio triangulado

    Esta es una forma ya est andar de denir y trabajar con una triangulaci on que tambiensigue Matlab4 con los comandos y

    4

    La toolbox pdetool dedicada a la resolucion de ecuaciones en derivadas parciales sigue una variantealgo mas complicada que la expuesta arriba.

    #4 34

  • 7/21/2019 interpolacion matlab

    37/72

    PROYECTO #4 Cap tulo 3. Gr acas en 3D

    La primera despliega la malla triangular especicada por , la matriz conteniendo lostri angulos, y , que dan las coordenadas de los vertices:

    Se puede especicar la coordenada z de los vertices (la altura),

    con lo que se dibuja la malla 3D correspondiente.El comando es similar, pero coloreando las caras. Es propiamente hablando,

    una supercie.

    Nota

    Un tema nada trivial es la construcci on de un mallado sobre un dominio (poligonal)dado. Existen multitud de algoritmos que tratan este problema. En principio se planteala construccion de una malla gruesa, con pocos tri angulos y de area considerable, con lostri angulos lo m as regulares posibles (sin deformar, alargar , en demasa los tri angulos).

    Posteriormente, se trata de renar la malla, es decir, dividir los tri angulos en triangulosmas peque nos hasta que se alcance una precisi on adecuada.

    Esta idea se esconde detr as de aplicaciones como la interpolaci on (aproximacion deuna funci on) y especialmente el metodo de elementos nitos, probablemente el metodo 5mas utilizado en la resoluci on de problemas de contorno para ecuaciones en derivadasparciales.

    Si se desea informacion de c omo se puede inicializar un malla en Matlab, as como elalgoritmo utilizado se puede consultar el comando (incluido tema de triangu-laciones de Delaunay). Para el renamiento, vease .

    Por ultimo, y volviendo de nuevo al comando , es posible dibujar superciesdenidas sobre partes de un rect angulo. Para ello, cualquier punto cuya coordenada z seaun ( not a number ), no se dibuja. Por ejemplo

    despliega una supercie 6 con un hueco en la circunferencia centrada en el origen y de radio1/ 2 (vease Figura 3.11). De todos modos se observa la deciente aproximaci on de loscuadrados, propios de , del crculo interior.

    5 Propiamente hablando es una familia de metodos6 La tercera lnea merece un comentario, aunque instrucciones parecidas han sido tratadas en el Tema

    1. Al hacer la comparacion , Matlab devuelve una matriz logica, de 1s y 0s. El

    comando en , hace que los puntos situados dentro del crculo de radio1/ 2, que es donde la expresi on logica es 1, tomen como valor

    #4 35

  • 7/21/2019 interpolacion matlab

    38/72

    3.5 Dibujos sobre dominios mallados en triangulos PROYECTO #4

    Figura 3.11: Utilizacion de en un dibujo

    #4 36

  • 7/21/2019 interpolacion matlab

    39/72

    Parte II

    Interpolaci on

    #4 37

  • 7/21/2019 interpolacion matlab

    40/72

  • 7/21/2019 interpolacion matlab

    41/72

    Captulo 4

    Interpolaci on polin omica deLagrange

    Un problema ya cl asico es la construccion, o aproximacion de una funcion conocidosunos pocos valores. Algunas referencias a este tipo de problemas se remontan al mane-

    jo de tablas trigonometricas y posteriormente logartmicas y exponenciales donde unospocos valores estaban tabulados y para valores intermedios era necesario un proceso deinterpolaci on.

    Ciertamente la llegada de los ordenadores ha contribuido a que parte de estas aplica-ciones hayan perdido su sentido pero paralelamente han surgido nuevos problemas comoaquellos relacionados con el dise no gr aco (CAD, de computer aided design ). Un buenejemplo lo encontramos en diversas aplicaciones muy pr acticas que requeran la construc-

    cion curvas, o supercies en el espacio, que pasaran por unos puntos determinados y quetuvieran buenas propiedades geometricas.En estos apuntes nos restringiremos a la interpolaci on polin omica (esto es, a la cons-

    trucci on de polinomios que pasen por unos puntos predeterminados) y comentaremosbrevemente la interpolaci on polin omica a trozos con las funciones spline .

    Por ultimo trataremos de forma supercial las curvas Bezier. Propiamente hablando,no se trata de un problema de interpolaci on sino de trazar curvas suaves que sigan elcamino, con cierta libertad, marcado por un polgono. Su f acil construcci on anima a suexposicion como cierre de este tema.

    #4 39

  • 7/21/2019 interpolacion matlab

    42/72

  • 7/21/2019 interpolacion matlab

    43/72

    Captulo 5

    Interpolaci on polin omica

    5.1. El problemaEl problema que queremos resolver es el siguiente

    Dados un conjunto de n + 1 puntos {(x0, y0), (x1, y1), . . . (xn , yn )}, construirun polinomio pn de grado n tal que pn (x j ) = y j , j = 0 , . . . , n .

    El polinomio pn se le conoce como polinomio de interpolaci on de Lagrange. Habitualmente,y j son valores de una funci on f que por ser o bien desconocida en el resto de puntos, obien porque es cara computacionalmente de evaluar, s olo se dispone de su valor en unconjunto discreto de puntos.

    Tenemos una serie de cuestiones pendientes:

    Se puede construir siempre el polinomio de interpolaci on pn ?. Y relacionada conesta cuestion, el polinomio de interpolaci on es unico?

    Existen formas optimas para c alcular este polinomio?

    Como aproxima pn a esta funcion f ?

    y como cuestion asociada

    Cual es la mejor forma de evaluar un polinomio? Es decir, Nos interesa el poli-nomio escrito de una forma especial o simplemente poder evaluar de forma f acil,rapida y estable?

    5.2. Existencia del polinomio de interpolaci on

    Probaremos la existencia del polinomio de interpolaci on mediante un razonamiento

    directo. Tomemos P n pn (x) = a0 + a1x + a2x2 + . . . + an xn

    #4 41

  • 7/21/2019 interpolacion matlab

    44/72

    5.2 Existencia del polinomio de interpolacion PROYECTO #4

    un polinomio de grado n. Obviamente, pn cuenta con n + 1 par ametros libres que sonsimplemente sus coecientes {a j }. Si exigimos que

    pn (x j ) = y j , j = 0 , . . . , nnos encontramos con que los coecientes satisfacen el sistema lineal

    1 x0 x20 xn01 x1 x21 xn11 x2 x22 xn2. . . . . . . . . . . . . . . . . .1 xn x2n xnn

    a0a1a2...

    an

    =

    y0y1y2...

    yn

    (5.1)

    Por tanto el problema se reduce a la resoluci on de un sistema de ecuaciones lineales yla existencia y unicidad del polinomio de interpolaci on a que el sistema en cuesti on seacompatible determinado.

    El sistema anterior es una matriz de tipo Vandermonde que nos ha surgido repetidasveces en estos apuntes 1. Dado que el sistema es cuadrado, tiene el mismo n umero deecuaciones que de incognitas, se tiene que

    la existencia de solucion para cualquier dato es equivalente a la unicidad.

    Ademas, la unicidad de soluci on es equivalente a que la unica soluci on posible para eltermino independiente nulo sea el polinomio cero. Pero esto es inmediato puesto que todo

    polinomio no nulo de grado n tiene a los sumo n races.Otra forma de ver la existencia y unicidad es de tipo constructiva. Tomemos

    L j (x) := (x x0) (x x j 1)(x x j +1 ) (x xn )(x j x0) (x j x j 1)(x j x j +1 ) (x j xn )

    =i= j

    x xix j x i

    .

    Es f acil ver que L j P n y que ademas

    L j (xi ) := 1 , i = j ,0, i = j .

    Por tanto, pn (x) = y0L0(x) + y1L1(x) + . . . + yn Ln (x).

    satisface las condiciones ( 5.1). Una vez probada la existencia deducimos por los mismosargumentos la unicidad del polinomio de interpolaci on.

    La formula anterior se conoce como formula de Lagrange del polinomio de in-terpolaci on y a la base {L j } j base de Lagrange del problema de interpolaci on .Ejercicio 5 Programar una funcion que evalue el polinomio de interpolacion en un conjuntode puntos segun el siguiente prototipo

    1 Cada columna es el resultado de elevar a una potencia el vector (1 x0 x1 xn )

    #4 42

  • 7/21/2019 interpolacion matlab

    45/72

    PROYECTO #4 Cap tulo 5. Interpolacion polin omica

    Soluci on. He aqu una posible implementaci on2

    Hemos probado el programa anterior para interpolar la funci on exp(sin(6 x)) en [0 , ]en diversos puntos uniformemente distribuidos (a igual distancia). El resultado, junto conel error que comente el error de interpolaci on, se muestra en la gura 5.1.

    Ejercicio 6 Implementa la construccion del polinomio de interpolacion mediante la resoluciondirecta del sistema dado en (5.1). Que observas cuando el grado del polinomio crece?.

    2 Observa el de la lnea

    #4 43

  • 7/21/2019 interpolacion matlab

    46/72

    5.3 Formula de Newton PROYECTO #4

    0 0.5 1 1.5 2 2.5 3 3.5-1

    -0.5

    0

    0.5

    1

    1.5

    2

    0 0.5 1 1.5 2 2.5 3 3.5-1.5

    -1

    -0.5

    0

    0.5

    1

    1.5 Error

    polinomio de grado 5polinomio de grado 9polinomio de grado 13

    exp(-x).*sin(6.*x)polinomio de grado 5

    polinomio de grado 9polinomio de grado 13

    Figura 5.1: Polinomios de interpolaci on con diferentes grados

    5.3. F ormula de Newton

    Es f acil comprobar que la f ormula de Lagrange tiene un costo computacional elevado.Por ello es necesario explorar formas alternativas de construir el polinomio de interpolaci on

    y de proceder a su evaluaci on.Si observamos detenidamente la f ormula de Lagrange, esta se basa en tomar comobase de P n , los polinomios de grado n, la dada por

    {L0(x), L1(x), . . . , L n (xn )}.En esta base, las coordenadas del polinomio de interpolaci on son la solucion de un sistemaque es diagonal (de hecho es la identidad) lo que hace que la resoluci on del sistema seainmediata. El precio que se paga como contrapartida es una evaluaci on m as cara delpolinomio de interpolacion.

    Podemos explorar otras bases que, aumentando el costo de la resoluci on del sistema,den f ormulas del polinomio de interpolaci on cuya evaluacion sea m as barata.

    #4 44

  • 7/21/2019 interpolacion matlab

    47/72

    PROYECTO #4 Cap tulo 5. Interpolacion polin omica

    Planteamos as utilizar la base

    {1, (x x0), (x x1)(x x0), . . . , (x xn 1)(x xn 2) (x x0)}.Es inmediato probar que es una base de los polinomios de grado n. Dicho de otra forma,que cualquier polinomio de grado n se puede escribir

    0 + 1(x x0) + . . . + n (x xn 1)(x xn 2) (x x0). (5.2)Ademas el sistema lineal que dara los coecientes ( j ) j es ahora triangular superior, porlo que su resolucion es pr acticamente directa en O(n2) operaciones.Notese que si pn (x) interpola a f en n + 1 puntos, a nadir un punto m as ( xn +1 , yn +1 )(donde yn +1 = f (xn +1 )) es simplemente corregir el polinomio anterior en la forma siguiente

    pn +1 (x) = pn (x) + n +1 (x

    x0)

    (x

    xn ),

    concretamente n +1 =

    yn +1 pn (xn +1 )(xn +1 x0) (xn +1 xn )

    (5.3)

    Es decir, el trabajo hecho para calcular el polinomio de interpolaci on en n + 1 puntos sepuede utilizar si se desea a nadir un punto m as de interpolacion.

    5.3.1. Diferencias divididas

    Siguiendo la notacion cl asica, consideraremos que los valores y j que deseamos inter-

    polar provienen de una funci on f a priori desconocida, es decir,y j = f (x j ), j = 0 , . . . , n .

    Los coecientes del polinomio de interpolaci on dado en ( 5.4) se denotan mediante

    f [x0] + f [x0, x1](x x0) + . . . + f [x0, x1, . . . , x n ](x xn 1)(x xn 2) (x x0). (5.4)y se denomiman diferencias nitas . Esta forma de escribir el polinomio se conoce comoformula de Newton del polinomio de interpolaci on 3.

    Queda a un pendiente como calcular las diferencias divididas de forma que evitemostrabajar con el sistema lineal o con ( 5.3). Es inmediato comprobar que si

    pn interpola en {(x0, f (x0), (x1, f (x1)) , . . . , (xn , f (xn ))},q n interpola en {(x1, f (x1), (x2, f (x2)) , . . . , (xn +1 , f (xn +1 ))}

    entonces pn +1 (x) = q n (x) +

    x xn +1x0 xn +1

    ( pn (x) q n (x)) (5.5)es el polinomio que interpola en los n + 1 puntos

    {(x0, f (x0), (x1, f (x1)) , . . . , (xn +1 , f (xn +1 ))

    }3 De nuevo los nombres utilizados dan idea de la antig uedad de estas tecnicas.#4 45

  • 7/21/2019 interpolacion matlab

    48/72

    5.3 Formula de Newton PROYECTO #4

    Deteng amonos un momento a examinar el coeciente director de cada polinomio. Elcoeciente en xn de pn y q n y el de xn +1 de pn +1 son respectivamente

    f [x0, . . . , x n ], f [x1, . . . , x n ] f [x0, . . . , x n +1 ].

    Utilizando ( 5.5) deducimos que

    f [x0, x1 . . . , x n +1 ] = f [x0, . . . , x n ]f [x1, . . . , x n +1 ]

    x0 xn +1, (5.6)

    que permite expresar la diferencia dividida de n + 2 puntos en termino de dos de n + 1puntos. Finalmente, como 4

    f [x j ] = f (x j )

    obtenemos un algoritmo recursivo que nos permite calcular las diferencias divididas de

    cualquier orden. El algoritmo se puede dibujar en forma de arbolOrden 0 Orden 1 Orden 2 Orden 3

    x0 f (x0) = f [x0] f [x0, x1] f [x0, x1, x2] f [x0, x1, x2, x2]

    x1 f (x1) = f [x1]

    f [x1, x2]

    f [x1, x2, x3]

    x2 f (x2) = f [x2]

    f [x2, x3]

    x3 f (x3) = f [x3]

    dondef [x i , x i+1 , . . . , x i+ j ] =

    f [xi , . . . , x i+ j 1]f [x i+1 , . . . , x i+ j ]xi xi+ j

    se calcula utilizando ( 5.6). En forma de pseudoc odigo, el algoritmo sera el siguiente.Diferencias divididas

    0 0

    = ( 0) ( , :) = 0;

    ( , ) = ( , ) ( + , )

    0 ( ) 0( + )

    4 Simplemente porque el polinomio de grado 0 que pasa por ( x j , f (x j )) es el polinomio constante f (x j )

    #4 46

  • 7/21/2019 interpolacion matlab

    49/72

    PROYECTO #4 Cap tulo 5. Interpolacion polin omica

    y

    y = ( 0( )) .y + ( , )

    Con la notacion anterior

    ( , ) = f [x j , x j +1 , . . . , x j + i ]

    de forma que es el orden de la diferencia y el punto desde donde empieza .

    Ejercicio 7 Implementa el calculo del polinomio de interpolacion mediante diferencias divi-

  • 7/21/2019 interpolacion matlab

    50/72

    5.3 Formula de Newton PROYECTO #4

    Nuestra intencion es que, si no se especican valores donde evaluar el polinomio,devuelva el polinomio, escrito en forma de Newton utilizando una variable simb olica.

    Por otro lado y entrando ya en el tema de su implementaci on, en el algoritmo anteriortodas las entradas se numeran de a . Hay que tener en cuenta, como ya hemos hechorepetidas veces, que la numeraci on en Matlab de vectores y matrices comienza en 1 y portanto los vectores y bucles ir an de 1 a donde es ahora la longitud del vector dedatos y de puntos de interpolaci on.

    Dicho esto, una implementaci on, posible como tantas otras, es la siguiente

    #4 48

  • 7/21/2019 interpolacion matlab

    51/72

    PROYECTO #4 Cap tulo 5. Interpolacion polin omica

    Ejercicio 8 El bucle interno en las lneas se puede vectorizar. Hacedlo.

    Ejercicio 9 Un analisis mas detenido muestra que no es necesario denir toda una matrizsino que es posible realizar todo el proceso con un vector. Para ello observa que las diferencias

    (i, j ) con > 0 solo se utilizan dos veces, para construir ( , + ) y ( , + ) .Retoca el algoritmo yprograma el metodo resultante.

    Ayuda. Basta modicar las lneas del algoritmo como sigue

    Modicaci on

    = 0

    ( ) = ( ) ( )

    0 ( ) 0( )

    #4 49

  • 7/21/2019 interpolacion matlab

    52/72

    5.3 Formula de Newton PROYECTO #4

    Notese que las diferencias se sobrescriben en el vector pero de una forma tal que un

    valor no es borrado hasta que ha sido utilizado. De ah que el bucle en vaya hacia atr as . Con esta modicaci on

    ( ) = f [x0, x1, . . . , x j ].

    Implementar la evaluaci on del polinomio es ahora inmediato.

    Nota

    Observa que el metodo funciona a un cuando los puntos x0, . . . , xn no esten ordenados,aunque para una evaluaci on del polinomio mas estable es mejor que as sea. N otese que

    la denici on de las diferencias divididas no depende del orden de los puntosf [x0, . . . , x i , . . . , x j , . . . x n ] = f [x0, . . . , x j , . . . , x i , xn ].

    Se puede construir el polinomio mediante

    f [xn ] + f [xn , xn 1](x xn ) + . . . + f [xn , xn 1, . . . , x 0](x x1)(x x2) (x xn ). (5.7)En este caso se habla de diferencias regresivas , mientras que en el caso anterior, el quehemos tratado, recibe el nombre de diferencias progresivas .

    Modicar los algoritmos anteriores para trabajar con las diferencias regresivas es un

    trabajo sin demasiada complicaci on.Ejercicio 10 Hacedlo.

    Interpolaci on en Matlab

    La interpolacion polin omica esta implementada en Matlab mediante dos comandos

    La primera calcula el polinomio que se ajusta ( t ) un conjunto de datos. La sintaxis es

    donde y son los puntos a interpolar y n el polinomio utilizado. Si se toma igual a( ) , devuelve el polinomio de interpolaci on mientras que para menor calculael polinomio que aproxima a los puntos por mnimos cuadrados.

    La orden anterior devuelve un vector ( ) con los coecientes del polinomio. Su evalua-cion se lleva a cabo ahora mediante

    donde es un vector de puntos donde se desea evaluar el polinomio.

    #4 50

  • 7/21/2019 interpolacion matlab

    53/72

    PROYECTO #4 Cap tulo 5. Interpolacion polin omica

    5.4. Analisis del error

    El error entre funci on y polinomio de interpolaci on se puede estudiar utilizando algunaspropiedades de las diferencias divididas que detallaremos m as adelante. En cualquiercaso, el resultado relevante es el siguiente: si f es la funcion regular que interpolamosen {x0, x1, . . . , x n } [a, b], entonces el error en cada punto se puede escribir

    f (x) pn (x) = 1

    (n + 1)!f (n +1) ( ) (x x0)(x x1) (x xn )

    n (x)(5.8)

    donde [a, b]. Vemos que hay varias contribuciones al error nal:El factor 1 /n ! que tiende rapidamente a 0.

    Un factor que depende del crecimiento de la derivada n + 1.Un termino que depende de la colocaci on de los nodos de interpolaci on y que puedeser muy oscilante.

    En vista de lo anterior es f acil concluir que hay convergencia del polinomio de interpo-lacion a la funcion si esta es suave. Dicho de otra manera, funci on y polinomio se vuelvenindistinguibles si tomamos un n umero elevado de puntos.

    Desafortunadamente 6, la conclusi on anterior es falsa . Uno de los primeros (con-tra)ejemplos lo encontr o Runge a nales del siglo XIX 7. Se trata de interpolar la funci on

    f (x) = 1

    1 + 25 x2

    en el intervalo [ 1, 1] en un conjunto uniforme de puntos. El resultado lo vemos en lagura 5.2.Una forma de reducir el error es controlar la funci on n (x) y hacerlo lo m as peque no

    posible. As, el problema se plantea en los siguientes terminos 8

    Que elecci on de los nodos {x0, x1, . . . , x n } hace que maxx |n (x)| seamnimo?Este es un problema cl asico, fue resuelto por Chebyshev 9 en termino de las races de

    una familia de polinomios conocidos como polinomios de Chebyshev de primer tipo.6 Y contraintuitivamente. C omo entender si no que dos funciones derivables que coincidan en un

    numero cada vez mayor de puntos no acaben siendo muy similares?7 Este fue el siglo de la fundamentaci on de las matematicas. Multitud de resultados que se tena como

    evidentes se mostraron falsos y fue necesario reconstruir las matem aticas desde su base. Por ejemplo, enel mismo siglo se mostr o la existencia de funciones no continuas en ning un punto, o funciones continuasno derivables en ningun punto o con un numero innito de maximos y mnimos locales, se construyeroncurvas que rellenaban el plano, o curvas cerradas que englobando una area nita tenan una longitudinnita (fractales)... Algunas de estas construcciones, originarias esencialmente en las matem aticas purashan encontrado en el siglo XX aplicaciones a problemas de ndole esencialmente pr actico.

    8 Un problema min-max : minimizar un maximo.9 Matem atico ruso del siglo XIX. Se encontr o con este problema cuando estudiaba los primeros mo-

    tores de vapor. Concretamente, la transformaci on de un movimiento perpendicular (los pistones) en unmovimiento rotatorio (la rueda).

    #4 51

  • 7/21/2019 interpolacion matlab

    54/72

  • 7/21/2019 interpolacion matlab

    55/72

    PROYECTO #4 Cap tulo 5. Interpolacion polin omica

    -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-2

    -1.5

    -1

    -0.5

    0

    0.5

    1

    1.5

    2

    -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-4

    -3

    -2

    -1

    0

    1

    2

    3

    4Error

    1./(1+25.*x. 2)polinomio de grado 5polinomio de grado 10polinomio de grado 15polinomio de grado 20

    polinomio de grado 5polinomio de grado 10polinomio de grado 15polinomio de grado 20

    Figura 5.3: Ejemplo de Runge con otros nodos

    Ejercicio 12 Se trata de probar una serie de propiedades de las diferencias divididas de las

    que nalmente se deduce la estimacion del error del polinomio de interpolacion dada en ( 5.8).(1) Probar que f ( j )(x) p( j )(x) se anula en n + 1 j puntos para j = 0 , . . . , n + 1 .(2) Utilizando (1) , probar que existe tal que

    f [x0, . . . , x n ] = f (n )( )

    n! .

    (3) Fijemos y [a, b]. Entoncesf (y) = pn (y) + f [x0, . . . , x n , y](x x0)(x x1) (x xn ).

    Utilizad ahora (2) para probar la estimacion del error en ( 5.8)

    Ayuda: El Teorema de Rolle establece que si g es derivable en [a, b] con g(a) = g(b) entoncesexiste c (a, b) tal que g (c) = 0 .Aplicando este resultado, existe j (x j , x j +1 ) ( j = 0 , . . . , n 1) tal que

    f ( j ) p ( j ) = 0 .Se puede aplicar el mismo resultado para probar que existe n2 puntos tales que f ( j ) = p ( j )y as sucesivamente.

    #4 53

  • 7/21/2019 interpolacion matlab

    56/72

    5.4 Analisis del error PROYECTO #4

    #4 54

  • 7/21/2019 interpolacion matlab

    57/72

    Captulo 6

    Extensiones adicionales

    6.1. Interpolaci on de HermiteLa interpolacion de Hermite toma como datos adicionales valores de la derivadas.

    Concretamente

    (x0, f (x0)) , . . . , (x0, f (m 0 )(x0))(x1, f (x1)) , . . . , (x1, f (m 1 )(x1)). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(xn , f (xn )) , . . . , (xn , f (m n )(xn ))

    Observemos que no puede haber huecos en los datos. Por ejemplo, si la derivada de orden2 es dato, tambien lo es el valor de la funci on y su primera derivada. El n umero total dedatos es

    N := ( m0 + 1) + ( m1 + 1) + + ( mn + 1)por lo que el polinomio debera tener grado N 1.El an alisis de este problema no tiene mayor dicultad que el ya realizado para lainterpolaci on polin omica de Lagrange. La clave est a en la fuerte relaci on entre diferen-cias divididas y derivada, mostrada en el ejercicio 12. As, una derivada se interpretabasicamente como un nodo repetido.

    Entrando mas en detalle, la idea es ordenar los nodos tomarlos repetidos seg un elnumero de datos que consideramos en ese punto. As, consideramos

    {x0, x0, . . . , x 0

    m 0 +1

    , x1, x1, . . . , x 1

    m 1 +1

    , . . . , x n , xn , . . . , x n

    m n +1

    }y denir las diferencias divididas como sigue:

    f [x0, x1, . . . , x m ] :=

    f (m )(x0)m!

    , si x0 = xm

    f [x0, x1, . . . , x m 1]f [x1, x1, . . . , x m ]x0 xm

    , en otro caso

    El polinomio de interpolaci on se construye ahora como antes:

    f [x0] + ( x x0) f [x0, x1] + ( x x1) f [x0, x1, x2] + ( x x2) . . .+( x xn 1)f [x0, x1, . . . , x n ]

    #4 55

    http://-/?-http://-/?-http://-/?-
  • 7/21/2019 interpolacion matlab

    58/72

    6.1 Interpolacion de Hermite PROYECTO #4

    Diferencias divididas para la interpolaci on Hermite

    0 0 datos= ( 0)

    = 0

    0 ( ) == 0( )( ) = ( ) /

    ( ) = ( ) ( )

    0 ( ) 0( )

    y

    y = ( 0( )) .y + ( )

    Notese que en el algoritmo anterior la tabla de diferencias divididas se almacena de formacompacta, como se sugiri o en el Ejercicio 9.

    Ejercicio 13 Entiende bien el algoritmo anterior. Implementa la interpolacion de Hermitesegun el siguiente prototipo

    siguiendo las ideas expuestas en el ejercicio 7.

    Observa que, una vez implementada esta funci on,

    devuelve de hecho el polinomio de Taylor de orden 5 de f (x) = exp( x) en el cero. Laorden

    hace m as evidente esta identidad.

    #4 56

  • 7/21/2019 interpolacion matlab

    59/72

    PROYECTO #4 Cap tulo 6. Extensiones adicionales

    6.2. Interpolaci on de funciones peri odicas

    Si una funcion es 2 -periodica es natural reemplazar en el problema de interpolaci onlos polinomios por funciones peri odicas. Concretamente, podemos utilizar

    sin(nx ), cos(nx ), n N {0}o bien,

    exp(inx ), n Z .Las combinaciones de las funciones anteriores se denominan polinomios trigonometricos.Ambas son equivalentes, pero la utilizaci on de exponenciales complejas facilita tanto elanalisis como la manipulaci on as como la extensi on de la interpolaci on a funciones com-plejas

    Supongamos que tomamos un n umero impar 2 n + 1 de puntos de interpolaci on equi-distantes:

    xk = 2k2n + 1, k = 0 , . . . , 2n.

    El problema queda as denido: calcular

    p2n +1 (x) :=n

    j = n

    j exp(i nx )

    tal que

    yk = p2n +1 (xk ) =n

    j = n

    j exp 2i jk2n + 1

    .

    De esta forma, el problema se reduce a utilizar la transformada de Fourier Discreta, yparticularmente la FFT.Es interesante senalar que el interpolante converge a la funci on bajo hipotesis mucho

    mas debiles. Por ejemplo, basta con que la funci on sea derivable.Ejercicio 14 Comprobar como la interpolacion con exponenciales trigonometricas ycon se-nos ycosenos son equivalentes. Para ello escribir el polinomio trigonometrico en senos ycosenos, en funcion de exponenciales complejas yviceversa.

    Ejercicio 15 Comprueba que efectivamente se reduce todo a una transforma de Fourierdiscreta.

    Ayuda Observa que

    exp 2i jk2n + 1

    = exp2i(2n + 1 j )k

    2n + 1.

    Por tanto el problema es equivalente a encontrar j tales que

    yk = p2n +1 (xk ) =n

    j =0

    j exp 2i jk2n + 1

    +2n

    j = n +1

    2n +1 j exp 2i jk2n + 1

    .

    Ejercicio 16 Que pasa si se toman un numero par de puntos de interpolacion?

    #4 57

  • 7/21/2019 interpolacion matlab

    60/72

    6.3 Interpolacion polinomica a trozos PROYECTO #4

    6.3. Interpolaci on polin omica a trozos

    Los polinomios tienen un importante inconveniente que desaconseja su utilizaci on pa-

    ra un numero elevado de puntos. Observese la gura 6.1, donde el polinomio exhibe uncomportamiento ciertamente ca otico. Ello se debe a que se obliga a que el polinomio seapracticamente constante en dos zonas con un salto en medio. El polinomio es excesiva-mente rgido 1 que en ultima medida provoca que este se rompa .

    0 0.2 0.4 0.6 0.8 1-0.5

    0

    0.5

    1

    1.5

    2

    Figura 6.1: Rigidez polin omica

    Como forma de solventar estos problemas se opta por utilizar elementos m as compli-cados para interpolar pero que sean m as exibles .

    Uno de los elementos m as populares son los splines . Un spline 2 es una funcion po-linomica a trozos que tiene cierta regularidad. Es decir, los diferentes polinomios se unenexigiendo adem as sean continuas y derivables hasta cierto orden. Los representantes m assencillos son las constantes a trozos y las poligonales. En este ultimo caso, se trata senci-

    llamente de unir los puntos por segmentos obteniendose una curva poligonal. Sin embargopara las constantes a trozos no podemos exigir continuidad y para las poligonales nopodemos exigir derivabilidad en los puntos de contacto (tiene picos).

    Los splines c ubicos son probablemente los m as utilizados. Recurriendo a polinomiosde grados 3 se trata de construir una funci on sn tal que

    sn (x)|[x i ,x i +1 ] P 3, i = 0 , . . . , n 11 Es un smil con lo que sucede si se dobla una vara muy rgida. El problema en utilizar polinomios es

    que basta modicar un s olo dato para que el polinomio se cambie en todo el dominio, en muchas ocasionessin ningun control. Sin embargo, en un interpolante uno debera esperar que la modicaci on de un punto

    afectara solo al entorno de dicho punto.2 aceptaremos el anglicismo a partir de ahora.

    #4 58

  • 7/21/2019 interpolacion matlab

    61/72

    PROYECTO #4 Cap tulo 6. Extensiones adicionales

    y que tanto la funci on como sus derivadas primera y segunda sean continuas 3

    sn (x i ) = yi , lmx x +j

    s( j )n ( x) = lmx x

    j

    s ( j )n ( x), j = 0 , 1, 2.

    Es decir, sobre cada intervalo [ x j , x j +1 ] la funci on es un polinomio de grado tres (c ubico).Al tener la primera derivada continua, se preserva la existencia de recta tangente en todopunto y por tanto la velocidad de recorrido de la curva, mientras que con la continuidadde la derivada segunda podemos denir la curvatura de la curva siendo esta continua entodo el dominio de denici on.

    Dado que tenemos n intervalos, y cuatro par ametros libres sobre cada intervalo ( snes un polinomio de grado 3 en cada intervalo), disponemos de 4 n par ametros libres. Porcontra, los datos de interpolaci on jan n +1 restricciones y las condiciones de continuidaddel spline y de sus dos primeras derivadas en las interfaces de los subintervalos dan otras

    3n condiciones. En total hacen

    n + 1 + 3( n 1) = 4 n 2por lo que el problema precisa jar dos condiciones adicionales para poder hablar, siquieraplantear, la unicidad del spline.

    Estas son algunas de las elecciones posibles

    sn (x0) = sn (xn ) = 0, spline natural .

    Datos adicionales sn(x0) = y 1, s

    n(xn ) = yn +1 spline grapado .

    Condiciones de periodicidad: si los datos son peri odicos se puede imponer sn (x0) =sn (xn ), sn (x0) = sn (xn ) spline peri odico .

    No nos detendremos a detallar como se prueba la existencia y unicidad de tales splines,ni la forma de calcularlos. Baste decir que se recurre a tecnicas m as ecientes, y por tantocomplejas, que la forma directa que se deduce de su denici on.

    Entre las buenas propiedades de los splines destacamos que convergen a la funci on siesta es continua. A un es m as, si la funcion f que se interpola es regular (de hecho bastacon que su derivada cuarta sea continua)

    maxx |sn (x) f (x)| C m ax j (x j +1 x j )4

    con C una constante dependiente de f pero independiente de los puntos.

    Nota: splines en MatlabMatlab dispone de dos comandos encargados de esta tarea:

    3 Si forzaramos la continuidad de la tercera derivada tendramos globalmente un polinomio de grado 3

    #4 59

  • 7/21/2019 interpolacion matlab

    62/72

    6.3 Interpolacion polinomica a trozos PROYECTO #4

    0 0.2 0.4 0.6 0.8 1-0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    Figura 6.2: Interpolaci on con splines cubicos naturales

    El primero ( piecewise polynomial value ) eval ua una funcion polin omica a trozos. Uno desus argumentos es la propia estructura de la funci on segun una sintaxis propia de Matlab.La segunda instrucci on devuelve una estructura de este tipo que contiene el spline queinterpola a datos.

    A modo de ejemplo, he aqu el spline natural que interpola a los datos desplegados enla gura 6.14

  • 7/21/2019 interpolacion matlab

    63/72

    PROYECTO #4 Cap tulo 6. Extensiones adicionales

    Se pueden denir splines de mayor grado, siguiendo exactamente la idea anterior, estoes, pegando polinomios a trozos y dando la mayor regularidad posible.

    Ejercicio 17 Se plantea el siguiente problema: dada una serie de puntos en el plano(x0, y0), (x1, y1), . . . , (xn , yn )

    construir una curva en parametricas

    x (t) := ( x(t), y(t)) , t [0, T ] (6.1)tal que

    x (t j ) = ( x j , y j ). (6.2)

    Una buena eleccion es utilizar splines. Para ello se trata de calcular dos splines cx ( t) ycy n (t)que satisfagan, obviamente,

    cxn (t j ) = x j , cy(t j ) = y j .

    Tenemos as dos problemas de interpolacion desacoplados, esto es, cada uno se resuelve inde-pendiente del otro. Queda como cuestion pendiente la eleccion de T en (6.1) yde los puntost j en (6.2). Una buena eleccion es tomar

    h j := (x j +1 x j )2 + ( y j +1 y j )2,que coincide con la longitud del segmento que une ( x j , y j ) y (x j +1 , y j +1 ), yhacer luego

    t0 = 0 , tk := h0 + h1 + . . . + hk 1, T = tn .

    Una vezya calculados, la curva se dibuja evaluando

    x (t) := (cx( t), cy(t)) , t [0, T ].Implementa un programa que siga este prototipo

    Ejercicio 18 El comando permite leer puntos a traves del raton. Lee bien la ayudaymodica el programa anterior para que permita introducir los datos con el raton en caso deque se llame a la funcion sin argumentos.

    Entre las posibilidades que ofrece esta la de controlar que tecla del teclado o boton delrat on se ha utilizado.

    #4 61

  • 7/21/2019 interpolacion matlab

    64/72

    6.4 Curvas Bezier PROYECTO #4

    Ayuda. Deduce que realiza el siguiente c odigo...

    6.4. Curvas Bezier

    Las curvas Bezier son curvas en el plano o espacio que quedan determinadas por unconjunto de puntos. La curva en cuesti on s olo pasa por el punto inicial y nal, pero no porel resto de puntos. Sin embargo estos puntos forman un polgono de control en el siguiente

    sentido: la curva est a contenida en el polgono formado por esos puntos e imita la formade dicho polgono.Para construir la curva consideramos los polinomios de Bernstein de orden n:

    B n j ( t) =n j

    t j (1 t)n j , j = 0 , 1, . . . , nEs f acil comprobar que los polinomios verican las siguientes propiedades:

    {B n j }n j =0 son una base de P n . Dicho de otra forma, cualquier polinomio se puedeescribir como una combinaci on de estos polinomiosn

    j =0B n j ( t) = 1.

    #4 62

  • 7/21/2019 interpolacion matlab

    65/72

    PROYECTO #4 Cap tulo 6. Extensiones adicionales

    Las curvas Bezier se denen ahora como sigue: para los puntos

    x i = ( xi , yi ), con i = 0 , . . . , n .

    y construimos la curva

    S (t) :=n

    j =0

    B n j ( t)x j = n

    j =0

    B n j ( t)x j ,n

    j =0

    B n j ( t)y j , t [0, 1].

    El par ametro t se mueve de forma que para t = 0 estamos en el punto inicial y para t = 1,en el nal. Notese que los puntos utilizados para dibujar la curva estan ordenados : hayun punto inicial x0, uno nal x n y a x j le sigue x j +1 ...

    Es f acil ver que S (0) = x 0 y S (1) = x n . Podemos comprobar, gura 6.3, que la curva

    se adapta a la forma que marcan los puntos.

    0 0.2 0.4 0.6 0.8 10

    0.2

    0.4

    0.6

    0.8

    1

    0 0.2 0.4 0.6 0.8 10

    0.2

    0.4

    0.6

    0.8

    1

    0 0.2 0.4 0.6 0.8 10

    0.2

    0.4

    0.6

    0.8

    1

    0 0.2 0.4 0.6 0.8 10

    0.2

    0.4

    0.6

    0.8

    1

    Figura 6.3: Curvas Bezier para algunas conguraciones de puntos

    Ejercicio 19 Utilizando el codigo mostrado en el Ejercicio 18, programar las curvas Bezier.Comparar con las curvas que dene la interpolacion por splines yla polinomica.

    #4 63

  • 7/21/2019 interpolacion matlab

    66/72

    6.4 Curvas Bezier PROYECTO #4

    Ejercicio 20 Implementar la siguiente extension del programa anterior: permitir que el usua-rio seleccione puntos ypueda moverlos o borrarlos (por ejemplo, con el boton derecho delrat on) yas comprobar la sensibilidad de la curva al polgono de control.

    Una sugerencia sera la seguiente: una vezledos los puntos, ydibujada la correspondientecurva nos situamos de nuevo en la ventana graca con yleemos la seleccion hechapor el raton. Ahora haytres opciones

    Si pulsamos cerca de un punto, entendemos que hemos seleccionado dicho punto.

    Si se ha pulsado con el boton derecha lo eliminamos del dibujo, redibujamos lacurva yesperamos de nuevo. Si pulsamos cerca de un punto con el boton izquierdo entendemos que ese punto lovamos a mover. Esperamos otra seleccion del raton (otro ), reemplazamos

    el punto seleccionado por el nuevo yredibujamos

    Si pulsamos lejos de todos los puntos, entendemos que anadimos un nuevo punto.Llamemoslo y . En este punto hayun tema no trivial: como ordenamos el punto yrespecto a los puntes anteriores {x j }.

    y

    xx

    j+ 1 j

    x j+ 2

    j

    Figura 6.4: Ordenaci on de nodos para la curva Bezier

    Una forma de determinar5 este orden es medir el angulo entre los vectores

    u = x j y , v = x j +1 yyquedarse con aquel para el que angulo j sea mayor (vease la gura 6.4). Para ello,basta utilizar que

    |cos( j )| =u vu v

    .

    tomar j para el que |cos( j )| es maximo, yconstruir la curva Bezier con puntos{x 1, . . . , x j , y , x j +1 , . . . , x n }

    {x j , x j +1 }5 Gracias a Jon Garca por sugerirnos esta soluci on.

    #4 64

  • 7/21/2019 interpolacion matlab

    67/72

    PROYECTO #4 Cap tulo 6. Extensiones adicionales

    Nota

    Las curvas Bezier fueron introducidas por los ingenieros Bezier y Casteljou, que tra-bajaban entonces en Renault y Citr oen. Concretamente, buscaban herramientas para eldiseno de parachoques de forma que la curva que diera su forma fuera controlada por unaserie de puntos y que tuviera buenas propiedades geometricas. Los algoritmos inicialesseguan ideas muy geometricas, que todava se utilizan en la pr actica, y se tard o alguntiempo en darle la forma que hemos mostrado, m as matematica. Resultado de este es-tudio surgieron las curvas B-splines, que reemplazaban los polinomios de Bernstein porpolinomios de grados adecuados. Las curvas B-splines son m as exibles que las curvasBezier y en su caso extremos incluyen a estas.

    Por otro lado existen formas mucho m as ecientes de evaluar y calcular dichas curvasque permiten en ultima media su implementaci on en una forma m as interactiva, de formaque el usuario mueva los puntos (cambie el polgono de control ) y que la curva se redibuje

    entonces.

    #4 65

  • 7/21/2019 interpolacion matlab

    68/72

    6.4 Curvas Bezier PROYECTO #4

    #4 66

  • 7/21/2019 interpolacion matlab

    69/72

    Indice de guras

    2.1. Ventana graca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2. Ventana graca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3. Edici on de un dibujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4. Un ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.5. Salida correspondientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.6. Numeraci on con . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.7. Disposici on simult anea de gracas con . . . . . . . . . . . . . . . 19

    3.1. Un dibujo en 3D con . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2. Bot on para rotar los dibujos . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.4. Supercie creada con . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.5. Algunas opciones con . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.6. Esferas en 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    3.7. Lneas de nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.8. Triangulacion no conforme . . . . . . . . . . . . . . . . . . . . . . . . . . 323.9. Numeraci on de triangulos . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.10. Gr aca sobre un dominio triangulado . . . . . . . . . . . . . . . . . . . . . 343.11. Utilizaci on de en un dibujo . . . . . . . . . . . . . . . . . . . . . . . . 36

    5.1. Polinomios de interpolaci on con diferentes grados . . . . . . . . . . . . . . 445.2. Ejemplo de Runge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.3. Ejemplo de Runge con otros nodos . . . . . . . . . . . . . . . . . . . . . . 53

    6.1. Rigidez polin omica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    6.2. Interpolacion con splines cubicos naturales . . . . . . . . . . . . . . . . . . 606.3. Curvas Bezier para algunas conguraciones de puntos . . . . . . . . . . . . 636.4. Ordenaci on de nodos para la curva Bezier . . . . . . . . . . . . . . . . . . 64

    #4 67

  • 7/21/2019 interpolacion matlab

    70/72

  • 7/21/2019 interpolacion matlab

    71/72

    Indice general

    1. Introducci on 1

    I Matlab: Salidas gracas en Matlab 3

    2. Dibujos bidimensionales 52.1. El comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2.1.1. Primer nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.2. Segundo nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.3. Tercer nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.4. Comandos asociados . . . . . . . . . . . . . . . . . . . . . . . . . . 102.1.5. Cuarto nivel: y . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.2. Otras salidas gr acas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3. El comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.4. Comandos f aciles de usar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    3. Gracas en 3D 213.1. El comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2. El comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    3.2.1. Primer nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.2. El comando : segundo y tercer nivel . . . . . . . . . . . . . . . 25

    3.3. Otros comandos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3.1. y . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3.2. y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    3.3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . 313.4. Comandos f aciles de usar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.5. Dibujos sobre dominios mallados en tri angulos . . . . . . . . . . . . . . . . 31

    II Interpolaci on 37

    4. Interpolaci on polin omica de Lagrange 39

    5. Interpolaci on polin omica 415.1. El problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    5.2. Existencia del polinomio de interpolaci on . . . . . . . . . . . . . . . . . . . 415.3. F ormula de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    #4 69

  • 7/21/2019 interpolacion matlab

    72/72

    INDICE GENERAL PROYECTO #4

    5.3.1. Diferencias divididas . . . . . . . . . . . . . . . . . . . . . . . . . . 455.4. An alisis del error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    6. Extensiones adicionales 556.1. Interpolacion de Hermite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.2. Interpolacion de funciones periodicas . . . . . . . . . . . . . . . . . . . . . 576.3. Interpolacion polin omica a trozos . . . . . . . . . . . . . . . . . . . . . . . 586.4. Curvas Bezier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62