Métodos Numéricos: Teoria

download Métodos Numéricos: Teoria

of 48

description

Métodos numéricos. ULPGC

Transcript of Métodos Numéricos: Teoria

  • ANLISIS NUMRICO

    Miguel Alemn Flores, Luis lvarez Len y Javier Snchez PrezDepartamento de Informtica y Sistemas

    Universidad de Las PalmasCampus de Tafira

    35017 Las Palmas, EspaaEmail: {maleman,lalvarez,jsanchez}@dis.ulpgc.es

    Contents

    1 INTRODUCCIN 2

    2 ARITMTICAS DE PRECISIN FINITAY FUENTES DE ERRORES NUMRICOS 22.1 Aritmticas de precisin finita. . . . . . . . 22.2 Prctica 1 (Aritmticas finitas). . . . . . . 62.3 Fuentes de errores numricos. . . . . . . . . 6

    3 CLCULO DE LOS CEROS DE UNA FUN-CIN 73.1 Mtodo de la biseccin. . . . . . . . . . . . 73.2 Mtodo de la Regula-falsi . . . . . . . . . . 73.3 Mtodo de Newton-Raphson . . . . . . . . . 83.4 El mtodo de la Secante . . . . . . . . . . . 83.5 Mtodo de Mller. . . . . . . . . . . . . . . 83.6 Prctica 2 (El mtodo de Newton-

    Raphson y la secante) . . . . . . . . . . . . 93.7 Clculo de las races de un polinomio. . . . 10

    3.7.1 Algoritmo de Horner para evaluarun polinomio en un punto . . . . . . 10

    4 INTERPOLACIN DE FUNCIONES I 134.1 Interpolacin por polinomios de Lagrange. . 134.2 Error de interpolacin de Lagrange y poli-

    nomios de Chebychev. . . . . . . . . . . . . 144.3 Mtodo de diferencias de Newton para el

    clculo del polinomio interpolador de La-grange. . . . . . . . . . . . . . . . . . . . . . 15

    4.4 Implementacin de funciones elementales. . 174.4.1 Aproximacin de la exponencial . 174.4.2 Prctica 3 (Aproximacin de ) . 174.4.3 Aproximacin de funciones

    trigonomtricas . . . . . . . . . . . . 184.4.4 Aproximacin de la funcin ln() . . 18

    5 ANLISIS NUMRICO MATRICIAL I 195.1 Mtodo de Gauss . . . . . . . . . . . . . . . 195.2 Estimacin del error de un mtodo para re-

    solver sistemas. . . . . . . . . . . . . . . . . 205.3 Mtodo de Cholesky . . . . . . . . . . . . . 205.4 Prctica 4 (Mtodo de Cholesky). . . . . . 205.5 Mtodo de Crout para matrices tridiagonales 21

    6 DIFERENCIACIN E INTEGRACINNUMRICA 226.1 Diferenciacin Numrica . . . . . . . . . . . 226.2 Diferenciacin numrica en dimensiones su-

    periores . . . . . . . . . . . . . . . . . . . . 236.2.1 Discretizacin del Laplaciano . . . . 236.2.2 Discretizacin del gradiente. . . . . . 24

    6.3 Integracin Numrica . . . . . . . . . . . . . 246.3.1 Mtodos de Cuadratura de Gauss . . 246.3.2 Frmulas de Integracin Numrica

    Compuestas . . . . . . . . . . . . . . 266.3.3 Prctica 5 (Implementacin

    Mtodo de Integracin de Simpson). 276.4 Integracin numrica en dimensiones supe-

    riores. . . . . . . . . . . . . . . . . . . . . . 27

    7 ANLISIS NUMRICO MATRICIAL II 297.1 Normas de vectores y matrices. . . . . . . . 297.2 Condicionamiento de una matriz. . . . . . . 317.3 Clculo de autovalores y autovectores. . . . 31

    7.3.1 Mtodo de Jacobi. . . . . . . . . . . 327.3.2 Prctica 6 (Mtodo de Jacobi para

    el clculo de autovalores y autovec-tores) . . . . . . . . . . . . . . . . . 34

    7.3.3 Mtodo de la potencia . . . . . . . . 357.3.4 Mtodo de la potencia inversa. . . . 36

    7.4 Mtodos iterativos de resolucin de sis-temas lineales. . . . . . . . . . . . . . . . . 377.4.1 Mtodo de Jacobi . . . . . . . . . . 377.4.2 Mtodo de Gauss-Seidel . . . . . . . 387.4.3 Mtodo de relajacin . . . . . . . . . 387.4.4 Convergencia de los mtodos itera-

    tivos. . . . . . . . . . . . . . . . . . 397.4.5 Prctica 7 (Mtodo de relajacin). 40

    7.5 Mtodo de Newton-Raphson para sistemasde ecuaciones no lineales . . . . . . . . . . . 41

    8 INTERPOLACIN DE FUNCIONES II 428.1 Interpolacin de Hermite. . . . . . . . . . . 428.2 Interpolacin por splines cbicos. . . . . . . 428.3 La interpolacin a travs de la funcin seno

    cardinal. . . . . . . . . . . . . . . . . . . . . 448.4 La interpolacin a travs de polinomios

    trigonomtricos. . . . . . . . . . . . . . . . . 458.5 Aproximacin por mnimos cuadrados. . . . 46

    1

  • 9 BIBLIOGRAFA BSICA 46

    10 APNDICE A: Resumen de los comandosde LINUX/UNIX 47

    11 APNDICE B: Resumen del procesador detexto 47

    12 APNDICE C: Algunos fallos comunes enProgramacin 48

    INTRODUCCIN

    El presente documento es un texto de referencia bsico so-bre los contenidos de la disciplina de Anlisis Numricoen el contexto curricular de una Ingeniera Informtica.Aunque el texto cubre los contenidos mnimos necesarios,resultar de gran inters para los alumnos complementarla informacin aqu suminisftrada con los textos de ref-erencia bsicos mencionados en la bibliografa. Muchasde las demostraciones de los resultados presentados se en-cuentran en este texto. En los casos en que las demostra-ciones no se incluyen, se suministra el libro y la pginadonde se encuentra tal demostracin, para que el alumnointeresado pueda estudiarla por su cuenta. En general, to-dos los temas presentados aparecen bien desarrollados enlos libros de texto clsicos mencionados en la bibliografa.La nica excepcin es el tema de aritmticas de precisinfinita, que se ha desarrollado en este texto con algo msde detalle y con un enfoque algo ms moderno que en loslibros clsicos, por considerar que, en el contexto de unaIngeniera Informtica, este tema es de especial relevancia.

    En el texto se proponen unas prcticas de laboratoriopara realizar a lo largo de la asignatura. El lenguaje deprogramacin que se utilizar para las prcticas es el C.Para establecer el orden de imparticin de los contenidospresentes en este documento se ha utilizado, como criteriopreferente, la coordinacin entre el programa de prcticasy el programa terico de la asignatura, de tal forma que,con un desarrollo normal de la docencia, los contenidostericos sean presentados con antelacin al desarrollo delas prcticas.

    Para el buen seguimiento de la asignatura, resulta degran inters tener cierta soltura en el manejo de los con-ceptos elementales del Anlisis Matemtico, el lgebra,y la programacin de Algoritmos. La materia expuestaen esta documentacin est programada para ser impar-tida en un cuatrimestre a razn de 3 horas/semana en elaula y 2 horas/semana en el laboratorio informtico, loque hace un total de, aproximadamente, 45 horas en aula(3 crditos tericos) y 30 horas de laboratorio (2 crditosprcticos). Dado el escaso tiempo disponible, se han elim-inado algunos temas clsicos de un curso completo anualde Anlisis Numrico como son las ecuaciones diferencialesordinarias y las ecuaciones en derivadas parciales. Nor-malmente, dichos temas se vern en detalle en asignaturasposteriores. Adems, en lugar de presentar de forma ex-haustiva todos los mtodos numricos que se pueden en-contrar en los libros de Anlisis Numrico clsicos, se ha

    optado por reducir los contenidos e impartir una seleccinde los mtodos numricos ms representativos.

    ARITMTICAS DE PRECISIN FINITA YFUENTES DE ERRORES NUMRICOS

    Aritmticas de precisin finita.

    Un nmero entero se representa en el ordenador a travsde un nmero fijo de bits (16 bits habitualmente), dondeuno de los bits se utiliza para determinar el signo y losrestantes para expresar el valor absoluto del nmero, detal manera que la secuencia de bits

    123donde = 0 o = 1, representa el valor absoluto delnmero

    | |= + 12 + 222 + + 121

    As, utilizando 16 bits, el mayor nmero entero quepodemos representar es

    1 + 2 + 22 + + 214 = 215 1 = 32767Es decir, los nmero enteros que podemos expresar

    con una aritmtica de 16 bits van desde 32767 hasta32767

    Para representar un nmero real en el ordenadornos basaremos en el siguiente resultado:

    Teorema 1 Un nmero real positivo se puede expresarcomo

    = 2X=1

    2

    donde es un nmero entero, 1 = 1 y para 1, = 0o = 1Demostracin. Dado un nmero real positivo , existeun entero tal que 21 2 y por tanto 21 2 1 Por otro lado, si definimos las sucesiones y de la siguiente forma: 1 = 21, = 1 y para 1

    = 0 1 + 12 2 = 1 1 + 12 2

    =X

    =1

    2

    entonces es claro que | 2 | 12 , y por tanto 2 lo que concluye la demostracin del teorema.Ejemplo 1 Consideremos = 10 125 podemos expresareste nmero como

    10 125 = 24(12+1

    23+1

    27)

    Es decir, = 4 1 = 3 = 7 = 1, y el resto de los es 0 En este caso, el nmero de elementos distintos de0 es un nmero finito, en general no ocurre as.

    2

  • Evidentemente, cualquier nmero que tenga unnmero finito de elementos distintos de 0 es un nmeroracional y, por tanto, los nmeros irracionales se represen-tarn siempre con un nmero infinito de elementos nonulos. Sin embargo, como muestra el siguiente problema,existen otros muchos nmeros adems de los irracionales,que no se pueden representar con un nmero finito de ele-mentos no nulos.

    Problema 1 (2 puntos) Demostrar que al representarel nmero real 01 como

    01 = 2X=1

    2

    el nmero de elementos no nulos es infinito.

    Problema 2 (2 puntos) Representar el nmero 00703 125 como

    00 703 125 = 2X=1

    2

    Para definir una aritmtica de precisin finita denmero reales, lo que se hace habitualmente es discretizarla frmula de representacin anterior, tomando un nmerofinito de valores posibles y un nmero finito de valorespara el exponente . Como puede observarse, cada valor viene representado por un bit. Adems, puesto que elvalor 1 es siempre igual a 1 no es necesario almacenar suvalor en memoria al guardar un nmero real.

    Por tanto, en una aritmtica de precisin finita, losnmeros reales distintos de cero se representan como

    e = 2 X=1

    2

    donde vara entre dos valores limites min max. Alvalor se le llama precisin de la aritmtica. A la secuencia123 (donde {0 1}) se le denomina mantisa.Hay que hacer notar aqu que, dado que hemos impuestosiempre que 1 = 1 el nmero 0 debemos aadirlo a laaritmtica, ya que 0 no se puede representar de la formaanterior.

    Problema 3 (1 punto) Calcular los valores positivosmnimo y mximo que puede tomar un nmero real enuna aritmtica de precisin finita en funcin de min max

    Problema 4 (2 puntos) Calcular todos los nmerosreales que se pueden construir tomando 5 bits de la formasiguiente: 1 bit para el signo, 2 bits para la mantisa (esdecir = 3, puesto que 1 = 1 y slo se almacenan 2y 3) y 2 bits para el exponente , tomando como rangode = 1 0 1 2 Representar dichos nmeros sobre unarecta.

    Es importante resaltar que los nmeros reales en unaaritmtica de precisin finita no estn equiespaciados, esdecir, los nmeros estn ms cercanos entre s cerca de 0,y ms alejados al alejarnos de 0

    En 1985, la sociedad I.E.E.E. present una serie deespecificaciones estndares para la definicin de una arit-mtica de precisin finita para los nmeros reales. En estetrabajo, se codifica un nmero real en simple precisin uti-lizando 32 bits de memoria, de los cuales 23 bits se utilizanpara la mantisa (es decir = 24 puesto que 1 = 1 no sealmacena), 1 bit se utiliza para el signo y 8 bits se utilizanpara el exponente lo cual da un rango de 28 = 256 val-ores posibles para el exponente . En este caso, se tomamin = 125 y max = 128 Como puede observarse, elnmero total de exponentes posibles es 254, dos menosque los 256 posibles, ello se hace as, porque se reservandos casos para tratar las denominadas excepciones, comose ver ms adelante.

    Por tanto, el valor mximo que puede tomar unnmero real en esta aritmtica es

    emax = 2128 24X=1

    1

    2 = 3 4 1038

    y el valor mnimo positivo es

    emin = 2125 12= 1 18 1038

    Adems, el nmero de combinaciones posibles quepuede tener la mantisa es 224 1 68 107 Es decir,la aritmtica tiene una precisin de 7 dgitos decimales.Esta representacin equivale a normalizar el nmero bina-rio colocando la coma detrs del primer 1, representar enla mantisa la parte fraccionaria, puesto que la parte enteraes un 1 implcito, y el exponente en exceso 127, es decir,sumando esta cantidad al exponente resultante de la nor-malizacin, de forma que el rango que va desde 1 hasta254 representa los exponentes que van desde 126 hasta127 (se reservan los valores 0 y 255 para las excepciones).

    Tambin se define en este trabajo de I.E.E.E. un es-tndar para una aritmtica en doble precisin. En estecaso, se utilizan 64 bits para almacenar un nmero real,de los cuales 52 bits se utilizan para la mantisa ( = 53)1 bit para el signo y 11 bits para el exponente, lo que dalugar a 211 = 2048 posibilidades de eleccin de exponente. En este caso, se toma min = 1021 y max = 1024.

    Por tanto, el valor mximo que puede tomar unnmero real en esta aritmtica es

    emax = 21024 53X=1

    1

    2 = 1 78 10308

    y el valor mnimo positivo es

    emin = 21021 12= 2 23 10308

    Adems, el nmero de combinaciones posibles quepuede tener la mantisa es 253 9 0 1015 Es decir, laaritmtica tiene una precisin de 15 dgitos decimales.

    3

  • Evidentemente, estos estndares no se siguen al piede la letra por los diferentes fabricantes de ordenadores.As, aunque existe bastante homogeneidad en este sentido,los valores pueden cambiar ligeramente de una mquina aotra. Por otro lado, aunque en la mayora de los orde-nadores actuales la base de representacin de los nmeroses 2 todava pueden encontrarse algunos sistemas dondela base es 10 16 Nosotros no entraremos aqu a estudiareste tipo de bases. El estudio es bsicamente el mismo,adaptndolo a la base de representacin.

    Tratamiento de las excepciones en el estndar deI.E.E.E.Denominaremos excepciones a las expresiones que no sepueden expresar en una aritmtica usual, como son el 0el infinito, operaciones no vlidas (como

    1), etc. Estasexcepciones son tratadas en el estndar de I.E.E.E. de lasiguiente forma: dentro de las posiciones de memoria ded-icadas al exponente de un nmero, se reservan dos, quecorresponden a min 1 y max+1, para trabajar con conlas excepciones. La regla que se utiliza es la siguiente:

    1. Si el valor de una variable tiene por exponentemax + 1 y todos los coeficientes de la mantisa valen0, entonces se considera infinito. Por ejemplo 10debe dar infinito.

    2. Si el valor de una variable tiene por exponentemax + 1 y algn coeficiente de la mantisa es distintode 0, entonces se considera que no es un nmero(NaN (Not a Number)). Por ejemplo

    1 debe darNaN.

    3. Si el valor de una variable tiene por exponentemin1 y todos los coeficientes de la mantisa valen 0,entonces se considera igual a 0

    4. Si el valor de una variable tiene por exponente min1 y algn coeficiente de la mantisa es distinto de 0, se considera que no est normalizado (es decir 1 = 0)y el valor de sera

    = 2min1X

    =2

    2

    Programa 1 Pseudocdigo para calcular el nmero posi-tivo (mayor que cero) ms pequeo

    Algoritmo Menor_Numero_Positivovariable real A1.variable entera M0mientras A0 hacerAA/2MM+1

    finmientrasescribir(M)

    finalgoritmo

    .

    Programa 2 Pseudocdigo para calcular el mayornmero positivo de una aritmtica. El programa devuelveun entero tal que 2 es el nmero positivo mayorposible.

    Algoritmo Mayor_Numero_Positivovariable real A1.variable real B2.variable entera M0mientras BA hacerA2*AB2*AMM+1

    finmientrasescribir(M)

    finalgoritmo

    Problema 5 (2 puntos) Dada una aritmtica de pre-cisin finita cualquiera, calcular la distancia que hay entreel nmero 1 y su inmediato superior, es decir, el nmeroque va despus de 1, y la distancia entre el nmero 1 y suinmediato inferior.

    Vamos a llamar , al conjunto de valores reales a losque da lugar una aritmtica de precisin finita, es decir

    =(2

    X=1

    2

    ) {0}

    Dado un nmero real cualquiera , al representarloen una aritmtica de precisin finita se produce un errorde redondeo, llamaremos e al nmero real que mejoraproxima a dentro de

    Definicin 1 Dada una aritmtica de precisin finita, sedefine la unidad de redondeo como

    = 2

    Por ejemplo, si = 24 (reales en simple precisin) = 224 = 5 97 108 y en doble precisin ( = 53), = 253 = 1 1 1016

    Programa 3 Pseudocdigo para calcular la unidad de re-dondeo de una aritmtica. El programa devuelve un entero tal que = 2

    Algoritmo Unidad_Redondeovariable real A1.variable real B2variable entera M1mientras B1 hacerAA/2

    4

  • B1+AMM+1

    finmientrasescribir(A)

    finalgoritmo

    Problema 6 (3 puntos) Se considera una aritmtica de16 bits donde se dedica 1 bit al signo, 9 bits a la mantisa( = 10) y 6 bits al exponente (min = 30 max = 31).Escribir, si es posible, los siguientes nmeros en esta ar-itmtica:

    1. 2 y los nmeros ms cercanos a 2 por arriba y pordebajo.

    2. El cero, el infinito y NaN.

    3. Los nmeros positivos mayor y menor de la aritmtica(teniendo en cuenta las excepciones).

    4. 19

    5. 212 1210

    Problema 7 (2 puntos) Sean =212 +

    123 +

    125

    = 23 12 + 126 + 127 Calcular + y Problema 8 (2 puntos) Sean min, max los valoresmnimo y mximo del exponente Demostrar que simin max entonces los nmeros:

    2 X=1

    2

    1

    2

    !

    pertenecen al conjunto de nmeros reales generados porla aritmtica de precisin finita.

    A continuacin, mostraremos un resultado que indicael error de redondeo mximo que se produce al aproximarun nmero real cualquiera en una aritmtica de precisinfinita.

    Teorema 2 Sean emin , emax los valores positivos menory mayor de una aritmtica de precisin finita. Sea launidad de redondeo de dicha aritmtica. Si un nmeroreal verifica que emin | | emax, entonces

    | e || | donde e es el nmero ms cercano a en la aritmtica.

    Demostracin. Un nmero real cualquiera quetomaremos positivo sin prdida de generalidad, se puedeexpresar como

    = 2X=1

    2

    donde 0 = 1 y, en general, = 0 o = 1. Adems,para un nmero natural cualquiera tenemos que

    2X

    =1

    2 2

    X=1

    2 +

    1

    2

    !

    Por el problema anterior, el nmero que est a laderecha de la desigualdad tambin pertenece a la arit-mtica de precisin finita, y por tanto

    | e | 222

    Ahora bien, como 0 = 1, se tiene que 2 2 | | y,por tanto

    | e || | 2 =| | con lo que queda demostrado el teorema.

    Problema 9 (2 puntos) Dado un nmero e =2P

    =12 en una aritmtica de precisin finita. Cal-

    cular el nmero inmediatamente inferior a l en dicha ar-itmtica.

    Un resultado importante para la comparacin de dosnmeros es el siguiente:

    Teorema 3 Si e1 e2 son distintos entonces| e1 e2 | max {| e1 | | e2 |}

    Demostracin: EjercicioEn muchos algoritmos, el test de parada incluye el

    hecho de que dos variables estn prximas entre s. paraello se fija un umbral o tolerancia que por supuestoser mayor que la unidad de redondeo y expresaremosque las variables y estn cercanas entre s con unatolerancia si se cumple que

    | | max {| | | |}o equivalententemente

    | |max {| | | |}

    Este criterio es simtrico en el sentido de que trata deigual modo los nmeros y Tambin se puede utilizarun criterio ms simple, como

    | || |

    5

  • pero en este caso le estamos dando una significacin espe-cial a con respecto a

    Estos criterios de comparacin de nmeros funcionanbien salvo cuando los nmeros y estn muy prximosa 0. Por ejemplo, si = 0, los criterios anteriores quedan

    | || |

    lo cual es imposible (si 1) Para evitar este com-portamiento, se puede aadir al criterio un valor 0 dela siguiente forma:

    | |(max {| | | |}+ )

    o bien | |(| | +)

    Asociado a cualquier aritmtica de precisin finita denmeros reales, existen 4 operaciones bsicas, que son lasuma, la resta, la multiplicacin y la divisin de nmerosreales dentro de la aritmtica. Nosotros no vamos a entraren este curso en cmo se pueden definir algortmicamenteestas operaciones. Solamente queremos mencionar que, amenudo, para minimizar el efecto de los redondeos en lasoperaciones, antes de realizarlas se aumenta la precisinde los nmeros reales (por ejemplo pasando de simple pre-cisin a doble precisin) para, a continuacin, realizar laoperacin en una aritmtica de mayor precisin y, final-mente, el resultado se redondea para pasarlo a la precisininicial.

    Prctica 1 (Aritmticas finitas).

    Para compilar los programas utilizaremos el entorno DevC++ que puede descargarse gratuitamente desde el sitioweb : http://www.bloodshed.net/dev/devcpp.html

    En la pgina de la asignatura tambin se encuentrantodos los ficheros y utilidades necesarias para hacer lasprcticas. En particular el programa 3 de clculo de launidad de redondeo est implementado.

    La prctica consiste en implementar los programas 1,2 y 3, y ejecutarlos para las diferententes aritmticas enprecisin real que ofrece el C. Concretamente las variablesen precisin real del C son de 3 tipos :

    1. float

    2. double

    3. long double

    Adems con la opcin de depuracin se seguir pasoa paso la ejecucin de los programas. Para poder utilizarlas funciones de la librera matemtica hay que incluir alprincipio del fichero #include math.h

    Para poder verificar si la prctica est bien, a contin-uacin se dan los resultados que se deben obtener:

    Precisin aritmtica : float

    unidad de redondeo = 225 59 108 Nmero menor = 2150 2 1053 Nmero mayor = 2128 1 1031

    Precisin aritmtica : double

    unidad de redondeo = 254 11 1016 Nmero menor = 21075 2 10324 Nmero mayor = 21024 2 10308

    Precisin aritmtica : long double

    unidad de redondeo = 265 542 1020 Nmero menor = 216446 4 105275 Nmero mayor = 216384 = 1 104932

    Adems calcularemos la distancia relativa entre losnmeros = 1000 y = 1001 utilizando la frmula

    | |(max {| | | |}+ 1)

    que es la frmula que utilizaremos durante el curso paracomparar nmeros.

    Para observar como gestiona las excepciones el com-piladore vamos a acumular en variables reales las opera-ciones 10, 1,0, y1 e imprimir los resultados porpantalla. En C la raiz cuadrada se calcula con la funcin().

    Fuentes de errores numricos.

    Dentro de las posibles fuentes de errores numricos,destacaremos 3 tipos:

    Errores de redondeo. Son los que se producen al re-dondear un nmero real para poder expresarlo en unaaritmtica de precisin finita. Como vimos en la sec-cin anterior, este error est controlado por la denominadaunidad de redondeo, = 2, de tal forma que, al tomarun nmero real y aproximarlo en la aritmtica por elvalor e ms prximo, el error de redondeo tiene laexpresin:

    | e || | Errores de cambio de base. Este tipo de errores seproduce al realizar un cambio de base para representar un

    6

  • nmero real. Como vimos en la seccin anterior, las arit-mticas estndares de ordenador trabajan en base 2 Sinembargo, los humanos pensamos y razonamos en trminosde nmeros en base 10 Por ejemplo, nmeros tan naturalespara nosotros como 01 no pueden representarse de formaexacta en una aritmtica en base 2. Esto quiere decir que,al representar 01 el ordenador, va a producir un pequeoredondeo, y este pequeo error de redondeo se puede ir pro-pagando hasta producir errores apreciables. Por ejemplo,parece razonable pensar que, cuando sumamos 100 vecesel nmero 001, el resultado sea exactamente 1, pero, noes as. Sin embargo, si sumamos 128 = 27 veces el nmero27 el resultado s es exactamente 1

    Como conclusin de este apartado, podemos extraerque, para ser ms precisos numricamente, cuando tra-bajamos con nmeros ms pequeos que la unidad de-beramos pensar en trminos de 2 en lugar de 10que es como solemos hacerlo.

    Errores por Cancelacin. Estos errores se producen alrestar nmeros de aproximadamente la misma magnitud.Hay que tener en cuenta que, al realizar operaciones sobreuna variable, los errores de redondeo se van acumulandoen la parte menos significativa del nmero (los dgitos demenos valor), dejando relativamente intacta la parte mssignificativa del nmero, que corresponde a los dgitos demayor valor. Por ello, al restar dos nmeros de magnitudparecida, se cancelan las partes significativas, quedandola aportacin de los dgitos de menos valor, que es dondems error hay. Por ejemplo, en el programa anterior, seha utilizado este fenmeno de cancelacin para poner demanifiesto la diferencia entre trabajar con bases distintas.En los algoritmos, muchas veces se intenta evitar la posi-bilidad de restar 2 nmeros que pudieran ser de magnitudparecida. Por ejemplo, en la conocida frmula del clculode races de un polinomio de grado 2 2 + + = 0(con 6= 0)

    = 2 42

    una forma de evitar la cancelacin que se produce cuando 2 4 consiste en calcular primero la raz demayor valor absoluto, es decir

    1 = + ()2 4

    2y despus la segunda raz 2 utilizando la relacin 12 = .

    Por lo tanto, en los algoritmos, se deber evitar, en lamedida de lo posible, la resta de variables que tengan unamagnitud cercana.

    Problema 10 (1 punto) Calcular las races del poli-nomio () = 2 2 + 001 evitando los errores decancelacin.

    Problema 11 (2 puntos) Escribir el Pseudocdigo paraimplementar el clculo de las races de 2 + + = 0evitando los errores de cancelacin y teniendo en cuentalas diferentes opciones que aparecen cuando 6= 0 y = 0

    CLCULO DE LOS CEROS DE UNAFUNCIN

    En esta seccin vamos a estudiar algunos mtodos paracalcular los ceros de una funcin de una variable, (),esto es, los valores de para los cuales () = 0

    Mtodo de la biseccin.

    Se considera un intervalo [ ] donde la funcin () cam-bia de signo, es decir ()() 0. El mtodo consiste enir dividiendo el intervalo [ ] por la mitad de la siguienteforma:

    Se toma el punto medio +2 . Si (+2 ) = 0 yahemos encontrado la raz = +2 . En caso contrario,si (+2 ) () 0 entonces hacemos = +2 y volvemosa subdividir el nuevo intervalo [ ] Si, por el contrario,() (+2 ) 0, entonces hacemos = +2 y volvemosa empezar. Las sucesivas subdivisiones del intervalo [ ]van aproximando la raz.

    Problema 12 (2 puntos) Calcular 2 iteraciones del al-goritmo de la biseccin para buscar un cero de la funcin() = 2 2 en el intervalo [2 0]

    Problema 13 (2 puntos) Escribir el Pseudocdigo paraimplementar el mtodo de la biseccin

    Mtodo de la Regula-falsi

    Este mtodo es una variacin del anterior en el sentidosiguiente: En lugar de tomar el punto medio +2 del in-tervalo, se considera el punto de interseccin de la rectaque pasa por los puntos ( ()) y ( ()) con el eje .Es decir, en el razonamiento anterior, se sustituye el valor = +2 por el valor

    = () ()()

    Problema 14 (2 puntos) Calcular 2 iteraciones del al-goritmo de la regula-falsi para buscar un cero de la funcin() = 2 2 en el intervalo [0 2]

    Problema 15 (2 puntos) Escribir el Pseudocdigo paraimplementar el mtodo de la Regula-falsi.

    7

  • Mtodo de Newton-Raphson

    ste es, sin duda, uno de los mtodos ms importantes ytiles para el clculo de races. Dada una aproximacininicial de la raz 0, se busca, a partir de 0 una aprox-imacin mejor 1 de la raz, de la siguiente forma: Sesustituye la funcin () por el valor de su desarrollo deTaylor centrado en 0 hasta el orden 1, es decir

    () (0) + 0(0)( 0)que corresponde a un polinomio de grado 1 y a contin-uacin se calcula 1 como el cero de este polinomio, esdecir:

    1 = 0 (0) 0(0)y por tanto, de forma general, obtenemos, a partir de 0una secuencia de valores que van aproximando la raz,definidos por

    +1 = () 0()A continuacin veremos una aplicacin de este mtodo

    para calcular la raz cuadrada de un nmero positivo ,teniendo en cuenta que si = entonces () = 2 = 0.

    Programa 4 Pseudocdigo para calcular una aproxi-macin de la raz cuadrada de un nmero positivo conuna tolerancia y un nmero mximo de iteraciones max

    Algoritmo Raiz_Cuadradavariables reales A,TOLvariable entera Nmaxvariables reales X0, X1leer(A,TOL)leer(Nmax)si A

  • 0(1) (1)(2)12 + 00(1)2 (1 2)

    Como veremos posteriormente, la eleccin de las fr-mulas anteriores equivale a aproximar () por la parbolaque pasa por los puntos (3 (3)) (2 (2))y (1 (1)), y calcular posteriormente las derivadasde dicha parbola.

    Prctica 2 (El mtodo de Newton-Raphson y lasecante)

    Implementar en C++ el mtodo de Newton-Raphson y elde la secante teniendo en cuenta las siguientes posibili-dades :

    1. Mtodo 1 (M1) : Newton-Raphson conociendo la fun-cin y su funcin derivada como funciones independi-entes

    2. Mtodo 2 (M2) : Newton-Raphson conociendo slo lafuncin. La derivada se calcula haciendo

    0() = (+ (+ 1)) ()(+ 1)

    donde = siendo la unidad de redondeo de laaritmtica

    3. Mtodo 3 (M3) : Mtodo de la secante. Se dan 2proximaciones y la derivada se calcula haciendo

    0(1) = (1) (0)(1 0)

    Las funciones devuelven el nmero de iteraciones re-alizadas o un nmero negativo si han fallado. La raiz sedevuelve como un parmetro de entrada/salida. Ademsse tendr como parmetros el nmero mximo de itera-ciones max y la tolerancia para determinar laigualdad entre dos nmeros. En los ejemplos se tomarsiempre = 100 donde es la unidad de redondeode la aritmtica y max = 100000

    La funcin a la que se le calculan los ceros se define enel propio cuerpo del programa. Utilizar los mtodos paracalcular los posibles ceros de las siguientes funciones:

    1. () = 22. () = 2 23. () = cos() + 14. () = 15. () = 2 + 1

    Nota: Utilizar como tolerancia = 100 donde esla unidad de redondeo de la aritmtica y max = 100000Tomar siempre como aproximacin inicial de la raiz 0 =1 (para el mtodo de la secante tomar 1 = 11). Losresultados que se deben obtener son

    1. () = 2 : Para todos los mtodos la solucinse alcanza en una iteracin y no hay diferencia conrespecto la precisin de la aritmtica

    2. () = 2 2 :(a) M1 (float) : 3 iteraciones ' 2 () '

    108

    (b) M2 (float) : 3 iteraciones ' 2 () '108

    (c) M2 (float) : 4 iteraciones ' 2 () '108

    (d) M1 (double) : 5 iteraciones ' 2() ' 1016

    (e) M2 (double) : 5 iteraciones ' 2() ' 1016

    (f) M2 (double) : 6 iteraciones ' 2() ' 1016

    (g) M1 (long double) : 5 iteraciones ' 2() ' 1019

    (h) M2 (long double) : 5 iteraciones ' 2() ' 1019

    (i) M2 (long double) : 6 iteraciones ' 2() ' 1019

    3. () = cos() + 1(a) M1 (float) : 8 iteraciones ' 313

    () ' 106(b) M2 (float) : 8 iteraciones ' 313

    () ' 106(c) M2 (float) : 12 iteraciones ' 313

    () ' 106(d) M1 (double) : 22 iteraciones '

    () ' 1014(e) M2 (double) : 22 iteraciones '

    () ' 1015(f) M2 (double) : 32 iteraciones '

    () ' 1015(g) M1 (long double) : 28 iteraciones '

    () ' 1018(h) M2 (long double) : 28 iteraciones '

    () ' 1018(i) M2 (long double) : 40 iteraciones '

    () ' 1018

    4. () = 1 (los 3 mtodos fallan)5. () = 2 + 1 (los 3 mtodos fallan)

    9

  • Clculo de las races de un polinomio.

    Los polinomios son un tipo particular de funciones que, porsu gran utilidad, requieren un anlisis algo ms detallado.Nos ocuparemos slo de las races reales de los polinomios,aunque tambin hay que indicar que existen algoritmosverstiles para el clculo de las races complejas, como,por ejemplo, el mtodo de Mller, visto anteriormente.

    A menudo, los alumnos pueden tener la impresin deque los algoritmos y tcnicas que se aprenden en una asig-natura como anlisis numrico les sern de poca utilidad enel futuro. Mi experiencia como docente en esta disciplinaes que, con frecuencia, una vez terminada la carrera y enel desarrollo de la actividad profesional, aparecen proble-mas que, para su resolucin, requieren el uso de alguna delas tcnicas presentadas en esta asignatura. El siguienteejemplo es una buena prueba de ello.

    Ejemplo 2 Actualmente estn muy de moda los planes depensiones. Las entidades financieras venden a sus clienteslos planes de pensiones de la siguiente forma, por ejemplo:si usted aporta durante 30 aos 600 euros todos los aos,aportacin que se va incrementando cada ao en un 10%es decir el primer ao 600 el segundo ao 610, etc., en-tonces, le aseguramos que al final del trigsimo ao tendra su disposicin la cantidad de 156263 de euros. Ahorabien, el dato ms importante para el futuro pensionista(que a menudo oculta la entidad financiera) es el intersnominal anual que se est aplicando ao tras ao al dinerodepositado. Si llamamos al inters nominal anual quese aplica al dinero, la ecuacin que debemos resolver paraobtener es

    29X=0

    (600) (11) (1+ )30 = 156263

    Ahora bien, para calcular debemos calcular lasraces del polinomio en dado por

    () =29X=0

    (600) (11) (1+ )30 156263

    El clculo de las races de este polinomio nos llevaa = 4487% Este ejemplo muestra como un problemafinanciero sencillo nos lleva a la necesidad de calcular losceros de un polinomio.

    Algoritmo de Horner para evaluar un polinomio en unpunto

    Dado un polinomio () = + 11 + + 0 ste se puede expresar tam-bin de la forma siguiente: () = 0 + (1 + (2 + (3 + (+ (1 + ))))) Adems, si queremos utilizar un mtodo de clculode races como el de Newton-Raphson, necesitamosevaluar tanto el polinomio como su derivada. El siguienteresultado muestra una forma rpida y sencilla de evaluarsimultneamente un polinomio y su derivada.

    Teorema 4 (Mtodo de Horner). Sea () = +11 + + 0 si definimos como

    = = + +10

    entonces se verifica que

    (0) = 0 0(0) = 10 + 120 + + 1

    Demostracin Sea el polinomio () = 1 +12 + + 1. Veamos que se verifica que

    () = ( 0)() + 0Efectivamente, dado que = +10 y = ,

    obtenemos la igualdad anterior teniendo en cuenta que

    ( 0)() + 0 = + (1 0) + + (0 10)

    Por ltimo, obtenemos

    0() = ( 0)0() +()de donde sale obviamente que 0(0) = (0).

    Este teorema permite calcular el polinomio y suderivada en un punto de forma muy sencilla, como muestrael siguiente algoritmo

    Programa 5 El siguiente algoritmo calcula la evaluacinde un polinomio y su derivada en un punto almacenn-dolos en las variables y

    Algoritmo Hornervariable entera N (Grado del Polinomio)leer(N)vector variables reales A de tamao N+1para K0 hasta N hacerleer(A(K))

    finparaPX=A(N)PPX=A(N)para KN-1 hasta 1 hacerPX=PX*X+A(K)PPX=PPX*X+PX

    finparaPX=PX*X+A(0)

    finalgoritmo

    Otros resultados interesantes de utilidad para lo-calizar en qu zonas pueden estar las races del polinomioson:

    10

  • Teorema 5 Sea un polinomio () = +11+ + 0 con 6= 0 entonces las races reales de ()estn en el intervalo1 max=01 | || | 1 +

    max=01 | || |

    Demostracin Veamos que si || 1 + max=01|||| ,entonces | ()| 0 Efectivamente,

    | ()| || max=01 ||1X=0

    || =

    = || || max=01 ||1 ||1 ||

    || || max=01 |||||| 1 =

    =|| (|| (|| 1)max=01 ||)

    || 1 0

    Teorema 6 Sea un polinomio () = +11++0 entonces el nmero de races positivas es igual alnmero de cambios de signo en los coeficientes 0(saltando los posibles coeficientes nulos), o bien ese mismonmero menos un nmero par.

    Demostracin [Is-Ke] Pg. 126.

    Para la estimacin del nmero de races reales nega-tivas, se aplica el teorema anterior cambiando por .

    Ejemplo 3 Sea () = 34 + 103 10 3, los sig-nos de los coeficientes son: + + . Por tanto, hay unnico cambio de signo y hay una raz positiva. Si cambi-amos por , los signos de los coeficientes son ++.Por tanto, hay 3 cambios de signo y hay una o tres racesnegativas. En este caso, las races son = 11313 .

    Problema 19 (1 punto) Calcular una iteracin delmtodo de Mller para calcular un cero de la funcin() = 3 3 partiendo de 0 = 1 (Calculando lasderivadas de la funcin de forma exacta) y quedndonoscon la raz ms cercana a 0

    Problema 20 (2 puntos) Dado el polinomio () =23 + 32 + 4 + 5, evaluar el polinomio y su derivadaen el punto = 2, utilizando el algoritmo de Horner.

    Problema 21 (1 punto) Calcular el nmero mximo deraces positivas y negativas del polinomio 5353+302+124 120 y localizarlas en un intervalo.

    Teorema 7 Entre dos races de una funcin derivable() hay una raz de 0().Demostracin Teorema de Rolle.

    Teorema 8 La derivada )() del polinomio () = + 11 + 0 es

    )() = !( )!

    + 1 ( 1) !( 1)!

    1+ + !1

    Demostracin Es inmediato, derivando sucesivamente elpolinomio ()

    Los dos resultados anteriores permiten aislar las posi-bles races de () de la forma siguiente: Si llamamosmax a 1+ max=01|||| entonces las races distintas1 2 de () estn intercaladas con lasraces 01 02 01 de 0(), es decirmax 1 01 2 02 01 max

    Volviendo a aplicar este razonamiento sucesivamentesobre 0() 00() etc., para intercalar los ceros de unaderivada con los ceros de la siguiente, podemos deducirel siguiente algoritmo para aislar todas las races de unPolinomio ():

    1. Se parte del intervalo [max max]2. Se calcula la raz 1)1 del Polinomio 1)() (quees un polinomio de grado 1)

    3. Para = 2 1Se calculan las races de () en los intervalos

    max +1)1 +1)2 +1)+1 maxAl final del procedimiento, habremos aislado comple-

    tamente a las races de () Este procedimiento se puedeutilizar para grados relativamente pequeos ( 30),puesto que su utilizacin requiere el clculo de factori-ales, que se dispara rpidamente. Por ejemplo, 30! = 261032 Existen mtodos mejores para el clculo de racesde polinomios, pero que utilizan tcnicas ms complejas.El mtodo presente en el siguiente programa, que combinael aislamiento de las races del polinomio a travs de losceros de sus derivadas con el mtodo de Newton-Raphson,funciona razonablemente bien para grados de polinomiospequeos. En el caso de races mltiples los resultadosacumulan mayores errores de redondeo debido a que tantoel polinomio como su derivada son cero en el mismo punto.

    Ejemplo 4 Consideremos el polinomio () = 4 372++6 que tiene por raices = 1 312 Para estepolinomio, tenemos que max = 8 Por tanto, las racesestn en el intervalo [8 8]. Por otro lado su grfica es

    1 1

  • -3 -2 -1 1 2 3

    20

    40

    60

    80

    100

    x

    y

    Polinomio () = 4 3 72 + + 6

    La derivada de este polinomio es 0() = 433214+1cuyas races son = 1 574 7 05 102 2 253 ycuya grfica es

    -3 -2 -1 1 2 3

    20

    40

    60

    80

    100

    x

    y

    Polinomio 0() = 43 32 14+ 1

    La derivada segunda de este polinomio es 00() = 122 6 14cuyas races son = 0858 1358 y cuya grfica es

    -3 -2 -1 1 2 3-20

    20

    40

    60

    80

    100

    x

    y

    Polinomio 00() = 122 6 14

    La derivada tercera de este polinomio es 000() = 24 6 cuya raz es = 025 y cuyagrfica es

    -3 -2 -1 1 2 3

    20

    40

    60

    80

    100

    x

    y

    Polinomio 000() = 24 6

    El mtodo funcionara de la siguiente forma: Primerocalculamos el cero de 000(), es decir = 025 por tantolos ceros de 00() estaran en los intervalos [2166 025]y [025 2166] Puesto que hay cambio de signo de 00()en cada uno de estos intervalos, buscamos las races de 00() en esos intervalos, utilizando cualquier mtodonumrico de los vistos anterioremente, por ejemplo, elmtodo de la Regula-falsi, obteniendo 0858 para el inter-valo [2166 025] y 1 358 para el intervalo [025 2166]Por tanto, las posibles races de 0() estarn en los in-tervalos [450858] [0858 1358] y [1358 45] Bus-camos ahora las races de 0() es esos intervalos, obte-niendo = 1 574 7 05 102 y 2 253 Por tanto, losposibles ceros de () estarn en los intervalos [81574] [1574 7 05102] [7 05102 2 253] y [2253 8]Buscamos, finalmente, las races de () en cada un deesos intervalos y obtenemos = 21 1 3

    Problema 22 (2 puntos) Aislar en intervalos las racesdel polinomio () = 203 452 + 30 1.

    Programa 6 Pseudocdigo de la funcin( ) que devuelve las racesreales de un polinomio. Dicha funcin tiene comoparmetros un vector real () donde estn los coeficientesdel polinomio, un vector real () donde se guardanlas races del polinomio una vez calculadas, la toler-ancia con la que consideramos que dos nmerosson iguales, el grado del polinomio y el nmeromximo de iteraciones max para el proceso deNewton-Raphson. Tambin se define la funcin auxiliar (12 ) que devuelve la raz delpolinomio que se obtiene aplicando el mtodo de Newton-Raphson, tomando como valor inicial el punto medio delintervalo [12]

    ICEROPOL(A,R,TOL,N)Algoritmo Clculo ceros polinomiovectores de variables reales F,AP y PI de di-

    mensin N+1

    1 2

  • CALCULAMOS LOS FACTORIALES NECE-SARIOS Y LO ALMACEMANOS EN F()

    F(0)=1.para K 1 hasta N hacerF(K)=F(K-1)*K

    finparaCALCULO INTERVALO INICIALvariable real PMAXABS(A(0))para K 1 hasta N-1 hacersi (PMAX ABS(A(K)) entoncesPMAX=ABS(A(K)

    finsifinparaPMAX=PMAX/ABS(A(N))+1.PI(0)=-PMAXPI(1)=-(A(N-1)*F(N-1))/(A(N)*F(N))para K2 hasta N hacerPI(2)=PMAX

    finparaCALCULO COEFICIENTES DEL POLINOMIO

    DERIVADApara K2 hasta N hacerPI(K)=PMAX

    finparapara KN-2 hasta 0 hacerpara L0 hasta N-K hacerAP(L)=A(L+K)*(F(K+L)/F(L))

    finparafinpara

    CALCULAR LOS CEROS DE AP EN LOS INTER-VALOS PI()

    para L 1 hasta N-K hacerPI(L)=RP(N-K,AP,PI(L-1),PI(L),TOL,R,L-1)

    finparaPASAMOS LAS RAICES AL VECTOR R()variable entera M0para K 1 hasta N hacersi (R(K-1) ES IGUAL A 0) entoncesR(M)=PI(K) M=M+1

    finsifinparadevolver(M)

    finalgoritmo

    RP(N,A,X1,X2,TOL,R,L)Algoritmo Clculo raz polinomio en un intervaloR(L)=1.si (X1 ES IGUAL A X2) entoncesdevolver(X1)

    finsiRP=(X1+X2)/2.para K 1 hasta N hacerEVALUAR POLINOMIO Y SU DERIVADA

    POR EL METODO DE HORNERsi (PPX ES IGUAL A 0.) entoncessi (PX ES IGUAL A 0.) entoncesR(L)=0.

    sinoretornar

    finsisinoRP1=RP-PX/PPXsi (RP1 ES IGUAL A RP MODULO TOL)

    entoncesRP=RP1R(L)=0.retornar

    sinoRP=RP1

    finsifinsi

    finhacerfinalgoritmo

    Problema 23 (2 puntos) Aislar en intervalos las racesdel polinomio () = 23 + 32 12+ 1

    INTERPOLACIN DE FUNCIONES I

    El problema general de la interpolacin de funciones con-siste en, a partir del conocimiento del valor de una funcin(y eventualmente de sus derivadas) en un conjunto finitode puntos, aproximar el valor de la funcin fuera de eseconjunto finito de puntos.

    Interpolacin por polinomios de Lagrange.

    Sea una funcin () que conocemos en un conjunto finitode valores {}=0 . Es decir, sabemos que () =. El polinomio interpolador de Lagrange () de ()en los puntos {}=0 , es el nico polinomio de gradomenor o igual que tal que

    () = () = 0 () se puede expresar en trmino de los denomina-

    dos polinomios base de Lagrange (), definidos como:

    () = 6=( )

    6=( )estos polinomios base tienen la propiedad fundamentalsiguiente

    () =1 = 0 6=

    Por tanto, el polinomio interpolador de Lagrangepuede expresarse como

    () =X=0

    () ()

    1 3

  • Ejemplo 5 Consideremos una funcin () = , vamosa interpolarla en los puntos 0 = 0 1 = 1 y 2 = 1Para calcular 2(), el polinomio interpolador de Lagrangeen estos puntos, calcularamos los polinomios base:

    0() = (+ 1)( 1)1 1() = ( 1)

    2

    2() = (+ 1)2

    siendo el polinomio interpolador:

    2() = 0 (+ 1)( 1)1 + 1( 1)

    2+ (+ 1)

    2

    En la siguiente figura comparamos la grfica del poli-nomio 2() (trazo continuo) con la grfica de la funcin (trazo discontinuo)

    Ejemplo 6

    -1.4-1.2-1.0-0.8-0.6-0.4-0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4

    1

    2

    3

    4

    x

    y

    Problema 24 (2 puntos) Calcular el polinomio inter-polador de Lagrange 3() de la funcin () = () enlos puntos 0 2 y 32 .

    Teorema 9 El polinomio interpolador de Lagrange es elnico polinomio de grado igual o inferior a tal que

    () = () = 0 Demostracin Sea () un polinomio de grado inferioro igual a que verifique que () = () = 0 Entonces, el polinomio () = () () es un poli-nomio de grado inferior o igual a que verifica que() = 0 y, por tanto, posee + 1 races, lo cual esimposible, salvo que () sea identicamente igual a cero.Por tanto () 0 y () = ()

    Error de interpolacin de Lagrange y polinomiosde Chebychev.

    Evidentemente, al aproximar () por el polinomio inter-polador () en un intervalo [ ] se comete, en general,un error de interpolacin, que viene determinado por elsiguiente teorema.

    Teorema 10 Sea () una funcin, y () su polinomiointerpolador de Lagrange en los puntos {}=0 [ ]y [ ] entonces

    () () = +1)()( + 1)!

    =0( )

    donde es un valor intermedio perteneciente a [ ]Demostracin Si = , el error de interpolacin es ceroy por tanto la frmula anterior es vlida. Consideremosahora distinto a los y definamos

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

    () = () () ()La funcin () tiene al menos +1 ceros en los pun-

    tos y en el punto Por tanto, su funcin derivada 0()tiene al menos ceros repartidos entre los ceros de ()Anlogamente, 00() tiene al menos 1 ceros y as suce-sivamente hasta llegar a +1() que tiene al menos 1cero. Si llamamos a dicho cero, obtenemos

    +1() = +1)() ( + 1)!de donde, despejando y sustituyendo por su valor, obten-emos el resultado del Teorema.

    Problema 25 (2 puntos) Calcular la expresin del er-ror de interpolacin al aproximar la funcin () = ()en el intervalo [0 2] interpolando en los puntos 0 2 y32 y acotarlo superiormente.

    La cuestin que vamos a abordar en este apartado es,en el caso en que queramos interpolar una funcin en unintervalo [ ] y que nosotros podamos elegir los valores deinterpolacin , cmo elegirlos de tal forma que el error deinterpolacin sea mnimo. Para ello, elegiremos los puntos tales que =0( ) sea lo ms pequeo posible en[ ]

    Teorema 11 Sea 0 y un intervalo [ ] Se consid-eran los puntos dados por

    = + 2

    1 + cos

    2+ 12 + 2

    = 0

    1 4

  • entonces

    max[] | =0( ) |=

    2

    +11

    2 max[] |

    =0( e) |para cualquier otra eleccin posible de valores de interpo-lacin e Demostracin La demostracin para el intervalo [1 1]se encuentra en [Ki-Ch] Pg. 292-294. La demostracinpara un intervalo cualquiera [ ] se obtiene fcilmentetransformando el intervalo [1 1] en [ ]

    Por tanto, utilizando este resultado, el error de inter-polacin mximo viene determinado por:

    | () () | max[] +1)()

    ( + 1)!2

    2

    +1Ejemplo 7 Se considera [ ] = [0 1] y = 5 (es decir6 puntos de interpolacin). Los puntos de interpolacindados por el teorema anterior son:

    0 = 982 961 = 853 552 = 629 413 = 370 594 = 146 455 = 1 703 7 102

    Problema 26 (2 puntos) Calcular el error mximo deinterpolacin en el intervalo [0 1] al interpolar la funcincos() en los puntos descritos en el ejemplo anterior.

    En el caso de que [ ] = [1 1] los valores pti-mos de interpolacin dados por la frmula anterior sonlas races de los denominados polinomios de Chebychev, () construidos de la manera siguiente:

    0() = 11() = () = 21() 2()

    Mtodo de diferencias de Newton para el clculodel polinomio interpolador de Lagrange.

    Numricamente, el clculo de () a travs de los poli-nomios base necesita de la evaluacin de +1 polinomiosde grado Adems, si queremos aadir un nuevo puntode interpolacin, debemos cambiar todos los polinomiosbase de Lagrange. Un mtodo ms directo para el cl-culo de () es el denominado mtodo de diferencias de

    Newton. El mtodo consiste en ir calculando progresiva-mente los polinomios () que interpolan la funcin enlos puntos 0 de la siguiente forma:0() = 01() = 0() + 1( 0)2() = 1() + 2( 0)( 1)

    () = 1() + ( 0)( 1)( 1)

    A los coeficientes los denotamos por = [0 ]

    Ejemplo 8 Vamos a interpolar la funcin () = enlos puntos 0 = 0 1 = 1 y 2 = 2

    0() = 11() = 1 + 1

    Como 1(1) debe ser igual a , despejando obtenemos1 = 1

    Por ltimo

    2() = 1() + 2( 1)Como 2(2) debe ser igual a 2 despejando obten-

    emos

    2 = 2 1(2)

    2Por tanto, el polinomio 2() lo expresamos como2() = 1 + ( 1)+

    2 2+ 12

    ( 1)

    Como veremos en el teorema siguiente, los coeficientes [0 ] que se denominan diferencias divididas deNewton, verifican las siguientes propiedades:

    [] = () [ +1] = [+1] []+1

    [ +] = [+1 +] [ +1]+

    Teorema 12 Si denotamos por = [0 ] en-tonces el polinomio de interpolacin de Lagrange ()viene dado por

    () =X=0

    1=0 ( )

    donde los coeficientes [ ] verifican [ +] = [+1 +] [ +1]+

    1 5

  • Demostracin En primer lugar, observamos que [ +] indica, para cada () el coeficiente queacompaa a la potencia en el polinomio interpolador() para los puntos + Como el polinomio in-terpolador es nico, [ +] no depende del orden enque tomemos los puntos + y, por tanto:

    [ +] = [+ ]Consideremos ahora el polinomio interpolador ()

    que interpola en los puntos + es decir, cambiandoel orden de los puntos. () se puede escribir como() = 0+ 1(+)+ 2( +)( +1)+ donde

    = [+ + ]Por la unicidad del polinomio interpolador obtenemos

    que () = () y, por tanto = [ +] = [+ ] =

    De nuevo, por la unicidad del polinomio interpolador,los coeficientes que acompaan a la potencia 1 en am-bos polinomios coinciden y, por tanto:

    1 1X=0

    + = 1 X

    =1+

    Despejando obtenemos

    = 1 1+ Finalmente obtenemos el resultado del teorema, te-

    niendo en cuenta que

    1 = [ +1]1 = [+ +1] = [+1 +]

    Ejemplo 9 Sea () = si interpolamos () en lospuntos 0 = 0 1 = 1 2 = 2 3 = 3, obtenemos elpolinomio interpolador de la siguiente forma:

    [0 1] = 1 1 [1 2] = 2 1 [2 3] = 3 2

    [0 1 2] = 2 2+ 1

    2

    [1 2 3] = 3 22 + 1

    2

    [0 1 2 3] = 3 32 + 31 1

    6

    Por tanto el polinomio interpolador de Lagrange es:

    3() = 1 + ( 1)+ 2 2+ 1

    2( 1) +

    3 32 + 31 16

    ( 1)( 2)

    En la siguiente grfica se muestra la diferencia 3() en el intervalo [0 3] :

    1 2 3

    -0.2

    -0.1

    0.0

    0.1

    x

    y

    Problema 27 (2 puntos) Interpolar la funcin () =10

    2+1 en los puntos 0 = 2 1 = 1 2 = 1 3 = 2utilizando las diferencias de Newton y evaluar el polinomioen = 0 utilizando el algoritmo de Horner.

    Problema 28 (2 puntos) Calcular el polinomio inter-polador de Lagrange 3() de la funcin () = () enlos puntos 0 2 y 32 utilizando las diferencias divididasde Newton.

    Problema 29 (3 puntos) Calcular el polinomio inter-polador de Lagrange 3() de la funcin () = 2 enlos puntos 0 1 3 y 4 utilizando las diferencias divididas deNewton. Expresar el polinomio tomando en primer lugar0 = 0 1 = 1 2 = 3 y 3 = 4 y, en segundo lugar,0 = 4 1 = 3 2 = 1 y 3 = 0

    Problema 30 (3 puntos) Dada una funcin () y unasecuencia de valores , aproximar () por la parbolaque pasa por los puntos (1 (1)) (2 (2))y (3 (3)). Calcular posteriormente las derivadasdel polinomio y comprobar que coinciden con las frmu-las dadas en el mtodo de Mller para el clculo de lasderivadas 00(1) y 0(1)

    Programa 7 Pseudocdigo donde se definen las fun-ciones IDIFNEWTON, que a partir del vector (0 : ) depuntos de interpolacin y el vector (0 : ) de valores dela funcin () en los puntos de interpolacin, devuelve elvector (0 : ) de coeficientes de diferencias divididas quedefinen el polinomio de Lagrange (() = [0 1 ]), y la funcin EVDIFNEWTON(A,X,X0,N) que a partirde los coeficientes dados por el vector (0 : ) y el con-junto de puntos de interpolacin, devuelve el valor de laevaluacin del polinomio de Lagrange en el punto 0

    1 6

  • FUNCTION IDIFNEWTON(A,X,F,N)Algoritmo Clculo polinomio interpolador por difer-

    encias de Newtonvector real B de dimensin N+1para K 0 hasta N hacerB(K)=F(K)

    finparaA(0)=F(0)para K 1 hasta N hacerpara L0 hasta N-K hacersi (X(K+L).EQ.X(L)) entoncesdevolver(1)

    finsiB(L)=(B(L+1)-B(L))/(X(K+L)-X(L))

    finparaA(K)=B(0)

    finparadevolver(0)

    finalgoritmo

    FUNCTION EVDIFNEWTON(A,X,X0,N)Algoritmo Evaluar Polinomio interpoladorEVDIFNEWTON=A(N)para K=N-1 hasta 0 hacerEVDIFNEWTON=EVDIFNEWTON*(X0-

    X(K))+A(K)finpara

    finalgoritmo

    Implementacin de funciones elementales.

    Una vez definida una aritmtica en precisin finita y las 4operaciones bsicas (suma, resta, multiplicacin, divisin),es necesario definir, a partir de estas operaciones, las fun-ciones elementales que todos usamos, como son: la razcuadrada

    , las funciones trigonomtricas: () cos() tan() la funcin ln() la funcin , la funcin etc.Las tcnicas elementales para definir estas funciones con-sisten en utilizar la interpolacin polinmica, los desarrol-los de Taylor y los algoritmos de bsqueda de ceros (comovimos anteriormente para

    )

    Aproximacin de la exponencial Un nmero real siempre se puede expresar como = + 0, donde es un nmero entero y 0 [0 1] Dadoque

    = 0

    podemos descomponer el clculo de en el clculo, porun lado, de , donde al ser un entero el clculo es in-mediato a partir de multiplicaciones sucesivas de potenciasnaturales de 1 (si 0), y por otro, en el clculo

    de 0 para 0 [0 1] Utilizando como puntos de interpo-lacin los asociados a los polinomios de Chebychev:

    = 12

    1 + cos

    2+ 12 + 2

    = 0

    obtenemos que el error relativo verifica que:

    | 0 () |0

    ( + 1)!2

    1

    2

    +1Para = 6 el error relativo es menor que 66 108

    y, por tanto, del mismo orden que la unidad de redondeo en una aritmtica de 32 bits. Asi, tomando un poli-nomio de grado = 6 es decir 7 puntos de interpolacin,obtenemos ya la mejor aproximacin posible de en elintervalo [0 1] en una aritmtica de 32 bits.

    Prctica 3 (Aproximacin de )Crear una funcin en que devuelva el valor de con [0 1] utilizando el polinomio de Lagrange 6() queinterpola a en los puntos:

    = 12

    1 + cos

    2+ 114

    = 0 6Comprobar que el polinomio esta bien construido, es

    decir que 6() = para todos los Introducir porteclado un valor , evaluar y mostrar 6() y Utilizar = 0 1 05 2 y 3Nota: Utilizar las funciones IDIFNEWTON(.), que cal-cula el polinomio interpolador a partir de los puntos y val-ores de interpolacin, y EVDIFNEWTON(.), que evaluael polinomio interpolador en un punto ya implementadasen la librera correspondiente

    Los resultados que se deben obtener son los siguientes: Para los puntos de interpolacin y para cualquierprecisin se obtiene

    | 6()|0.9874 2.6844 00.8909 2.4373 00.7169 2.0481 00.5 1.6487 00.2830 1.3271 00.109 1.1152 00.012 1.0126 0

    Para los puntos = 0 1 05 2 y 3 se obtiene

    Precisin double | 6()|0 1 4 1080.5 1.6487 01. 2.7182 6 1082. 7.3890 6 1033. 20.085 3 101

    No se aprecian diferencias apreciables en los resulta-dos al cambiar la precisin de la aritmtica

    17

  • Aproximacin de funciones trigonomtricas

    Utilizaremos como modelo las funciones () = cos() y() = () Puesto que estas funciones son 2 per-idicas, utilizando algunas relaciones trigonomtricas essuficiente definir las funciones cos() y () en el in-tervalo [0 4 ] y a partir de ellas definir las funciones paracualquier valor (en radianes). Efectivamente, denotemospor cos[04 ]() y [04 ]() a las funciones trigonomtri-cas definidas sobre el intervalo [0 4 ] Podemos definir en-tonces las siguientes funciones:

    cos[02 ]() =

    cos[04 ]() 4[04 ](2 ) 4

    [02 ]() = [04 ]() 4cos[04 ](

    2 ) 4

    cos[0]() =

    cos[02 ]() 2 cos[02 ]( ) 2[0]() =

    [02 ]() 2[02 ]( ) 2cos[02]() =

    cos[0]()

    cos[0](2 ) [02]() =

    [0]() [0](2 )

    El desarrollo en Serie de Taylor centrado en 0 delcos() es:

    cos() u () = 1 2

    2+44!+ + (1)

    2(2)!

    y el error mximo cometido por el desarrollo de Taylor enun punto [0 4 ] es

    | () cos() | () ()2+1

    (2+ 1)!La ventaja de utilizar el desarrollo de Taylor centrado

    en 0 es que las potencias impares de no aparecen, lo quesimplifica el clculo numrico. El error relativo es

    | () cos() |cos() tan()

    ()2+1(2+ 1)!

    Adems, como tan() es creciente en [0 4 ] el valormximo del error se encuentra en = 4 Por ejemplo, para = 5 obtenemos que el error relativo mximo cometidoen = 4 es del orden de

    tan(4)

    4

    25+1(2 5 + 1)! = 1 8 10

    9

    Por tanto, si trabajamos con una aritmtica de 32 bits,cuya unidad de redondeo es del orden de 108, tenemosque con = 5 obtenemos una aproximacin del cos() quees la mejor posible dentro de esta aritmtica y no tendrasentido aumentar el valor de

    Problema 31 (3 puntos) Aproximar la funcin ()en el intervalo [0 4 ] utilizando el desarrollo de Taylor ycalcular el valor de a partir del cual la aproximacin esla mejor posible dentro de una aritmtica de 32 bits.

    Problema 32 (2 puntos) Demostrar que, utilizandorelaciones trigonomtricas, es posible calcular las fun-ciones () y cos() para cualquier (en radianes), uti-lizando nicamente su valor en el intervalo [0 8 ]

    Problema 33 (3 puntos) Calcular los polinomios nece-sarios para interpolar las funciones trigonomtricas cos()y () en el intervalo [0 8 ] en una aritmtica de 32 bits.

    Aproximacin de la funcin ln()Como hemos visto anteriormente, un nmero real enuna aritmtica de precisin finita viene expresado habit-ualmente como

    = 2 X=1

    2

    !donde es un nmero entero, 1 = 1 y para 1 = 0 = 1 Por tanto, el nmero

    P=1

    2es mayor o

    igual que 12 y menor que 1 Aplicando las propiedades delln() obtenemos que

    ln() = ln(2) + ln X=1

    2

    !Dado que el nmero ln(2) es una constante que supon-

    dremos calculada anteriormente ( ln(2) = 6931471806),podemos reducir el clculo del ln() al rango de valores12 1

    Utilizaremos los puntos de interpolacin generadospor los polinomios de Chebychev, que para el intervalo[12 1] son:

    = 12+1

    4

    1 + cos

    2+ 12 + 2

    = 0

    Dado que ln(1) = 0 para minimizar el error relativoaadiremos como punto interpolante +1 = 1 El errorde interpolacin relativo entre +1() y ln() es:

    | ln() +1() || ln() | =

    | ( 1)=0( ) |+1( + 2) | ln() |

    donde [12 1] Adems se tiene que en el intervalo [12 1]| 1 || ln() | 1

    Por tanto:

    | ln() +1() || ln() |

    2+1( + 2)

    1

    4

    +11

    2

    1 8

  • Para = 10 el error mximo es 3 973 6 108 quees menor que la unidad de redondeo y, por tanto, en unaaritmtica de 32 bits tendramos la mejor aproximacinposible de la funcin ln()

    Problema 34 (1 punto) Cmo se puede obtener la fun-cin donde e son nmeros reales, utilizando lasfunciones y ln()?

    ANLISIS NUMRICO MATRICIAL I

    En esta primera seccin dedicada a la resolucin de sis-temas de ecuaciones lineales, estudiaremos los mtodos di-rectos clsicos para la resolucin de un sistema de ecua-ciones de la forma

    = donde = () es una matriz de = () es unvector de tamao que determina los trminos indepen-dientes, y = () es el vector solucin buscado.

    Mtodo de Gauss

    Este mtodo, aunque no es de los ms rpidos, tiene la granventaja de que se puede aplicar a todo tipo de matrices,algo que, como veremos en el futuro, no ocurre con otrosmtodos ms rpidos, pero que requieren, por ejemplo,que la matriz sea simtrica o definida positiva. El mtodode Gauss se basa en transformar el sistema = enun sistema equivalente 0 = 0 tal que la solucin seala misma y que la matriz 0 sea triangular superior, esdecir, que tenga valores nulos de la diagonal hacia abajo.Una vez obtenidos la matriz 0 y el vector 0 el clculode la solucin es inmediata, siguiendo un remonte de lasvariables a travs del siguiente esquema recursivo:

    = 0

    0

    = 0

    P=+1 00 = 1 1

    Problema 35 (2 puntos) Calcular el nmero de op-eraciones bsicas (sumas, restas, multiplicaciones y divi-siones) necesarias para realizar un remonte como el pre-sentado arriba en funcin de la dimensin .

    Para obtener 0 y 0 se calcula, en primer lugar, elvalor mximo en valor absoluto de la primera columna de denominado pivote. A continuacin, se intercambia laprimera fila de con la fila donde se encuentra el pivote,y se hace lo mismo con el vector para que el sistemasea equivalente. A continuacin, se multiplica la primerafila de por el valor 1 y se suma a la fila de para = 2 Se hace lo mismo para el vector

    y con ello habremos obtenido un sistema equivalentetal que la primera columna es cero de la diagonal haciaabajo. Volvemos ahora a hacer lo mismo para convertirla segunda columna cero de la diagonal para abajo, y assucesivamente hasta llegar a la mencionada matriz 0 .

    Ejemplo 10 Ejemplo de descomposicin segn el mtodode Gauss. Se considera el sistema

    2 2 06 18 123 11 7

    123

    =

    0248

    La descomposicin de la matriz lleva las siguientesfases:

    2 2 06 18 123 11 7

    6 18 122 2 03 11 7

    6 18 122 2 03 11 7

    1 mn

    6 18 120 4 40 2 1

    6 18 120 4 40 2 1

    2 mn

    6 18 120 4 40 0 1

    de la misma forma, el vector se ha transformado de laforma siguiente

    0248

    2408

    2484

    2488

    y el remonte da como solucin 1 = 6 2 = 6 3 = 8

    Problema 36 (2 puntos) Resolver por el mtodo deGauss el sistema 1 2

    2 1

    =

    30

    Problema 37 (3 puntos) Calcular el nmero de op-eraciones bsicas necesarias para descomponer el sistema = en el sistema 0 = 0 utilizando el mtodo deGauss, teniendo en cuenta la siguiente relacin:

    1X=1

    2 = 133 1

    22 + 1

    6

    Problema 38 (2 puntos) Escribir el pseudocdigo de lafuncion ( N max) que resuelve unsistema, donde es una matriz triangular inferior, esel vector de trminos independientes, el vector solucin, es la dimensin real del sistema y max la dimensinque se utiliz para reservar la memoria de la matriz Lafuncin devuelve 0 si termina correctamente y 1 en casocontrario. Nota Importante: Las lneas de cdigo tienenque ir todas numeradas y no pueden superar las 15 lneas.

    1 9

  • Problema 39 (2 puntos) Resolver por el mtodo deGauss el siguiente sistema de ecuaciones:

    0 1 21 2 12 1 0

    123

    =

    101

    Estimacin del error de un mtodo para resolversistemas.

    Para estimar la fiabilidad de la solucin numrica de unsistema de ecuaciones, haremos lo siguiente: dada una ma-triz un vector de trminos independientes y un vectorsolucin calculado utilizando alguna tcnica numrica,si la solucin es perfecta entonces = 0 Ahora bien,esto no suele suceder, porque los errores de redondeo y declculo producen que esta estimacin no sea exacta. Paraestimar el error cometido al resolver el sistema utilizaremosla expresin siguiente, donde es el vector = :

    ErrorSistema =1

    X ||

    ||+ donde es la dimensin del sistema, es un nmero quese pone para evitar posibles divisiones por cero. En to-das las prcticas utilizaremos = 1. ErrorSistema repre-senta el error relativo medio al resolver el sistema. Cuantoms pequeo sea ErrorSistema, mejor aproximada estarla solucin del sistema.

    Mtodo de Cholesky

    Este mtodo slo se puede aplicar a matrices simtricasy definidas positivas. El siguiente teorema da 3 posiblesdefiniciones equivalentes de una matriz definida positiva.

    Teorema 13 Sea una matriz simtrica, las 3 siguientesafirmaciones son definiciones equivalentes a que una ma-triz sea definida positiva

    ()

  • int an_descenso(const real **B,real *z,const real*b,const int N): Resuelve un sistema triangular in-ferior, donde B es la matriz, b es el trmino inde-pendiente y z es el vector donde devuelve la solucin.Devuelve 0 si termina bien y 1 en caso contrario.

    int an_remonte(const real **B,real *u,const real*z,const int N): Resuelve un sistema triangular su-perior, donde B es la matriz, z es el trmino inde-pendiente y u es el vector donde devuelve la solucin.Devuelve 0 si termina bien y 1 en caso contrario

    real an_error_sistema(const real **A,const real*u,const real *b,const int N): Devuelve el errorcometido al resolver el sistema dado por la expresinErrorSistema de la seccin anterior.

    int an_cholesky(const real **A,const real *b,real*u,const int N): Resuelve un sistema = por elmtodo de Cholesky . Devuelve 0 si termina bien y1 en caso contrario.Hay que resolver los sistemas ejemplo que se dan a

    continuacin y los ejemplos de dimensin 10 100 y 1000que se encuentran en el repositorio de la asignatura. Paratodos los ejemplos que tienen solucin, su solucin es elvector constante = (1 1 1 ) en todos lo casos hayque comparar con la solucin que da el mtodo de gauss(ya implementado en an_lapack.c

    1.

    1 1 41 5 64 6 26

    =

    61236

    2.

    1 1 41 1 44 4 17

    =

    61236

    3.

    2 1 01 2 10 1 4

    =

    105

    Los resultados que se deben encontrar son los sigu-ientes

    Ejemplo 1 (Precisin double )Mtodo Gauss : ErrorSistema=0Mtodo Cholesky : ErrorSistema=0

    Ejemplo 2 (Precisin double )Mtodo Gauss : ErrorSistema=0Mtodo Cholesky : No encuentra solucinEjemplo 3 (Precisin double )Mtodo Gauss : ErrorSistema=0Mtodo Cholesky : No encuentra solucin

    Matriz 10x10 (Precisin float)Mtodo Gauss : ErrorSistema=1 106Mtodo Cholesky : ErrorSistema=3 107

    Matriz 100x100 (Precisin float)Mtodo Gauss : ErrorSistema=3 105Mtodo Cholesky : ErrorSistema=3 105

    Matriz 1000x1000 (Precisin float)Mtodo Gauss : ErrorSistema=4 103Mtodo Cholesky : ErrorSistema=4 103

    Matriz 10x10 (Precisin double)Mtodo Gauss : ErrorSistema=7 1016Mtodo Cholesky : ErrorSistema=5 1016

    Matriz 100x100 (Precisin double)Mtodo Gauss : ErrorSistema=6 1014Mtodo Cholesky : ErrorSistema=8 1014

    Matriz 1000x1000 (Precisin double)Mtodo Gauss : ErrorSistema=9 1012Mtodo Cholesky : ErrorSistema=8 1012

    Matriz 10x10 (Precisin long double)Mtodo Gauss : ErrorSistema=1 1018Mtodo Cholesky : ErrorSistema=3 1019

    Matriz 100x100 (Precisin long double)Mtodo Gauss : ErrorSistema=4 1017Mtodo Cholesky : ErrorSistema=3 1017

    Matriz 1000x1000 (Precisin long double)Mtodo Gauss : ErrorSistema=3 1015Mtodo Cholesky : ErrorSistema=4 1015Los errores no tienen que ser exactamente iguales a

    los que aparecen arriba, una desviacin de un dgito enel exponente se considera admisible, es decir si arriba sale9 108 y obtenemos 4 107 se considera bien, pero5 106 se considera mal y hay que revisar el cdigo

    Mtodo de Crout para matrices tridiagonales

    El caso de sistemas de ecuaciones con matrices tridi-agonales posee una forma especialmente simple de factor-izacin. Vamos a descomponer en el producto de dosmatrices triangulares de la forma siguiente:

    1 1 01 2 00 10 1

    =

    1 0 01 2 00 00 1

    1 1 00 1 00 10 0 1

    Los vectores y se calculan utilizando el es-quema:

    1 = 11 = 11

    2 1

  • Para = 2 11 = 1 = 11 =

    Fin Para1 = 1 = 11

    Problema 44 (3 puntos) Demostrar el algoritmo deCrout para descomponer matrices tridiagonales.

    Problema 45 (2 puntos) Resolver utilizando el mtodode Crout el siguiente sistema de ecuaciones:

    2 4 01 0 40 1 0

    =

    631

    Problema 46 (2 puntos) Calcular el nmero de opera-ciones necesarias para resolver un sistema tridiagonal porel mtodo de Crout.

    DIFERENCIACIN E INTEGRACINNUMRICA

    Una frmula de diferenciacin numrica es un proced-imiento que permite aproximar la derivada de la funcin() en un punto utilizando el valor de () en otrospuntos vecinos a Por otro lado, una frmula de inte-gracin numrica es un procedimiento que permite aprox-imar el valor de la integral en un intervalo [ ] a partirde la evaluacin de () en algunos puntos incluidos en elintervalo [ ]

    Diferenciacin Numrica

    La manera habitual de aproximar la derivada de una fun-cin () en un punto consiste en utilizar el desarrollode Taylor centrado en :

    () = ()+ 0()1!

    ()+ + )() ! ()

    + Si tomamos un punto 6= , truncamos el desarrollo

    de Taylor y despejamos, obtenemos la siguiente expresin:

    0() () () +O (| |)

    donde O (| |) indica, bsicamente, que el errorcometido es una suma de potencias de | | en la quela potencia ms pequea es 1 Se denomina orden de laaproximacin a la potencia ms pequea que aparece enel trmino del error. Por lo tanto, en este caso, diremosque el orden de aproximacin es 1 Si , entonces laderivada se calcula hacia adelante, mientras que si ,la derivada se calcula hacia atrs.

    Ejemplo 11 Veremos en este ejemplo como, cuanto msprximo est el punto al punto , mejor ser el valoraproximado de la derivada. Consideremos la funcin() = 3 La derivada de () en = 1 es 0(1) = 3 Sitomamos = 1 y = 2 en la frmula anterior, obten-emos la aproximacin

    0(1) 23 132 1 = 7

    Si tomamos ahora = 11, obtenemos 0(1) 11

    3 1311 1 = 3 31

    que est mucho ms prximo al valor real.

    Problema 47 (2 puntos) Calcular analtica y numri-camente la matriz gradiente en el punto (1 1) (utilizar = 01) de la funcin:

    ( ) = 2 + 2 1

    Problema 48 (3 puntos) Dados 3 puntos distintos , demostrar que la frmula

    0() ( )()()

    + ( )()()

    aproxima la derivada de 0() con un orden de aproxi-macin de 2

    Ntese que, si = + y = , entonces lafrmula anterior resulta

    0() = ( + ) ( )2

    que es una conocida frmula de diferencias centradas.

    Ejemplo 12 Veremos en este ejemplo como, utilizando laexpresin anterior para aproximar la derivada de () =3 en = 1, la precisin es mayor que con la frmulaanterior. Por ejemplo, si tomamos = 1 y = 1 laexpresin anterior nos da

    0(1) 23 032

    = 4

    Si tomamos ahora = 01 0(1) 11

    3 09302 = 3 01

    que est ms prximo al valor real que utilizando laprimera frmula. En general, comprobamos que, cuantomayor es el orden de una frmula de aproximacin, mspreciso es el valor de la derivada.

    Nota: Utilizar el desarrollo de Taylor para aproximar 0() es equivalente a interpolar () con el polinomio deLagrange y posteriormente derivar el polinomio.

    22

  • Problema 49 (3 puntos) Dados 3 puntos distintos , calcular el polinomio de Lagrange que interpolaa () en esos 3 puntos, calcular la derivada de ese poli-nomio en , y comprobar que da la misma frmula que lapresentada en el problema anterior.

    Problema 50 (2 puntos) Calcular una aproximacin dela derivada tercera 000() de una funcin () en unpunto utilizando () (+) () (2).

    Problema 51 (3 puntos) Dados 3 puntos, demostrarque la frmula

    00() 2()()

    ()()

    aproxima la derivada segunda de () en con un ordende aproximacin de 1

    Problema 52 (2 puntos) Considerar en el problema an-terior que = y = + Deducir como quedala frmula anterior para aproximar la derivada segunda, ydemostrar que, en este caso, el orden de aproximacin es2

    Problema 53 (3 puntos) Dados 3 puntos ,calcular el polinomio de Lagrange que interpola a () enesos 3 puntos, calcular la derivada segunda de ese poli-nomio en , y comprobar que da la misma frmula queutilizando los desarrollos de Taylor.

    Problema 54 (2 puntos) Calcular una aproximacin dela derivada primera y segunda de una funcin () en =0 teniendo en cuenta que (0) = 1 (1) = 0 (4) = 9

    Diferenciacin numrica en dimensiones superiores

    Estudiaremos, en este apartado, la aproximacin de lasderivadas de una funcin de varias variables. Para sim-plificar la exposicin, supondremos que la dimensin es 2Para discretizar las derivadas de una funcin ( ), seutilizan los desarrollos de Taylor siguientes en 2 variables.Utilizaremos la siguiente nomenclatura: = () = () =

    2 ()2 =

    2 () =

    2 ()2

    1. (+ ) = + + 22 +O(3)2. ( ) = + 22 +O(3)3. ( + ) = + + 22 +O(3)4. ( ) = + 22 +O(3)

    5. (+ + ) = ++ + 12(2+2+2) +O(2 + 2 32 )

    6. ( ) = + 12(2+2+2) +O(2 + 2 32 )

    7. (+ ) = + + 12(22+2) +O(2 + 2 32 )

    8. ( + ) = + + 12(22+2) +O(2 + 2 32 )Prestaremos particular atencin a dos operadores

    diferenciales que se utilizan con frecuencia en la prctica:El gradiente ( ) = (( ) ( )), que es el vec-tor de derivadas parciales, y el Laplaciano ( ) =( ) + ( ). Utilizaremos la notacin = ( )

    Discretizacin del Laplaciano

    Para discretizar el operador en un entorno de 3 3puntos, pueden utilizarse diferentes esquemas. Para sim-plificar, supondremos que = .Problema 55 (3 puntos) Demostrar, utilizando el de-sarrollo de Taylor, que las siguientes expresiones son dis-cretizaciones del laplaciano:

    = +1+1 + 1+1 + 11 + +11 422

    = +1 + 1 + +1 + 1 42

    El resultado del anterior problema nos proporciona2 formas distintas de evaluar el laplaciano, por tanto,cualquier promediado de las dos expresiones tambin esuna discretizacin del laplaciano, es decir:

    = +1+1 + 1+1 + 1+1 + +11 422 +

    +(1 )+1 + 1 + +1 + 1 42 +Odonde es un parmetro libre a elegir. La eleccin de di-cho parmetro la haremos de forma que la discretizacinde respete lo mximo posible la invarianza por rota-ciones de la funcin ( ). Para ello, consideremos unafuncin tal que en un entorno de un punto (0 0) tienelos siguientes valores:

    1 1 10 0 00 0 0

    Si calculamos en el punto central a travs de laanterior frmula obtenemos:

    (0 0) = 222 + (1 )

    1

    2

    2 3

  • Ahora bien, si rotamos 45 grados, la funcin inicial entorno al punto (0 0) obtenemos como imagen:

    1 1 01 0 00 0 0

    Si calculamos de nuevo en el mismo punto obten-emos:

    (0 0) = 122 + (1 )

    2

    2Por lo tanto, si queremos que ambos valores de

    coincidan, debemos elegir = 23 . Hablando en trminosde teora de la seal, el calculo de nos llevara a con-volucionar la imagen con la siguiente mscara:

    1

    213

    13

    13

    13 83 1313

    13

    13

    Problema 56 (2 puntos) Calcular una aproximacindel laplaciano de una funcin ( ) en el punto ( ) =(0 0) conociendo los siguientes valores: (0 0) = 0 (12 0) = 14 (12 0) = 14 (0 12) = 14 (012 ) = 14 (12 12) = 12 (12 12) = 12 (12 12 ) = 12 ( 12 12) =12 .

    Discretizacin del gradiente.

    Siguiendo el desarrollo de Taylor mostrado anteriormente,obtenemos la siguiente expresin para el gradiente:

    () = (1 )(+1 1)

    2 +

    + (+1+1 1+1 + +11 11)4

    () = (1 )(+1 1)

    2 +

    + (+1+1 +11 + 1+1 11)4

    donde es, de nuevo, un parmetro a elegir. Teniendoen cuenta que la norma eucldea del gradiente es invari-ante por rotaciones, lo ser en particular para rotacionesde 45 grados, de donde deducimos, utilizando el mismoargumento que para el , que = 22. Por lo tanto,estamos calculando utilizando la mscara

    1

    4(22) 0 (22)2(2 1) 0 2(2 1)(22) 0 (22)

    y utilizando

    1

    4(22) 2(2 1) (22)

    0 0 0(22) 2(2 1) (22)

    Problema 57 (3 puntos) Demostrar que las mscaras

    = 14

    22 0 222 2 1 0 2 2 1 22 0 22

    = 14

    22 2 2 1 220 0 0

    22 2 2 1 22dan lugar a una discretizacin del gradiente tal que su

    norma eucldea es invariante por rotaciones de 45 grados.

    Problema 58 (2 puntos) Calcular una aproximacindel gradiente de una funcin ( ) en el punto ( ) =(0 0) conociendo los siguientes valores: (0 0) = 0 (12 0) = 12 (12 0) = 12 (0 12) = 12 (012) =12 ( 12 12) = 0 ( 12 12 ) = 0 (12 12 ) = 1 (12 12) = 1.

    Integracin Numrica

    Mtodos de Cuadratura de Gauss

    Sea () una funcin definida en un intervalo [ ] vamosa aproximar el valor de la integral de () en [ ] uti-lizando la evaluacin de () en ciertos puntos de [ ]Es decir, una frmula de integracin numrica se puedeescribir como Z

    ()

    X=1

    ()

    donde representa los puntos de evaluacin de () y el peso de cada punto de evaluacin.

    Definicin 2 Una frmula de integracin numrica se de-nomina exacta de orden si, para cualquier polinomio () de grado menor o igual que la frmula es exacta.Es decir Z

    () =

    X=1

    ()

    Definicin 3 Se denominan polinomios de Legendre() a la familia de polinomios dada por 0() = 11() = y para = 2 3

    () = (2 1)1() ( 1)2()

    Teorema 14 Sean{}=1 los ceros del polinomio deLegendre () Si definimos

    =Z 11

    6=( )6=( )

    entonces la frmula de integracin numrica generada porlos puntos y los pesos es exacta hasta el orden 21para el intervalo [1 1]

    2 4

  • Demostracin [Hu] Pg. 205-209

    Ejemplo 13 A continuacin se exponen algunos valoresde races y coeficientes en funcin del grado delpolinomio () :

    2 05773502692 1

    05773502692 13 07745966692 05555555556

    0 08888888889 07745966692 05555555556

    4 08611363116 0347854845103399810436 0625145154903399810436 06251451549 08611363116 03478548451

    Problema 59 (2 puntos) Aproximar el valor de la sigu-iente integral, utilizando las frmulas de Legendre para = 2 y = 3: Z 1

    13 4

    Cul es el valor exacto de la integral?

    Problema 60 (2 puntos) Se consideran, para el inter-valo [1 1] los puntos 0 = 05 1 = 0 2 = 05 ylos pesos 0 = 1 = 2 = 23 Estos puntos y estos pe-sos se utilizan para aproximar la integral de una funcinen [1 1] Usar esta frmula de integracin para calcularnmericamente la siguiente integral y compararla con elresultado anlitico (exacto).Z

    2

    2cos()

    Problema 61 (2 puntos) Encontrar, utilizando losceros y pesos asociados a los polinomios de Legendre, culsera la frmula de integracin numrica de Legendre uti-lizando un slo punto de interpolacin. Cul sera suexactitud?

    Problema 62 (2 puntos) A partir de los ceros y de lospesos asociados a los polinomios de Legendre, y dado unintervalo [ ] cualquiera, encontrar los puntos y lospesos que hacen exacta hasta orden 21 una frmulade integracin numrica sobre el intervalo [ ].

    Problema 63 (2 puntos) Utilizar el resultado del prob-lema anterior para calcular de forma exacta la siguienteintegral: Z 1

    0

    2 3

    Cuando el intervalo [ ] es infinito, es decir, = o = hay que emplear otros mtodos para aproximarlas integrales. En el caso [ ] = (), se utilizan losceros de los denominados polinomios de Hermite, definidoscomo 0() = 1 1() = 2 y

    () = 21() 2( 1)2()para 2 En este caso, la frmula de integracinnumrica aproxima la integral de la siguiente forma:Z

    ()2

    X=0

    ()

    Teorema 15 Si son los ceros del polinomio de Hermitey definimos

    =Z

    6=( )6=( )

    2

    entonces la frmula de integracin numrica generada porlos puntos y los pesos es exacta hasta orden 2 1para el intervalo ()Demostracin [Hu] Pg. 213-214

    Ejemplo 14 A continuacin se exponen algunos valoresde races y coeficientes en funcin del grado delpolinomio () :

    1 0 1 772 453 8512 0 707 106 781 0 886 226 925 5

    0 707 106 781 0 886 226 925 5

    Problema 64 (2 puntos) Calcular de forma exacta laintegral Z

    3 2 2

    utilizando los polinomios de Hermite.

    Problema 65 (2 puntos) Aproximar, utilizando dospuntos de aproximacin, el valor de la integral:Z

    1

    1 + 2

    Para el intervalo (0) se utilizan los polinomios deLaguerre (), definidos por 0() = 1 1() = 1 y

    () = (2 1 )1() ( 1)22()para 2 En este caso, la frmula de integracinnumrica aproxima:Z

    0

    () X=0

    ()

    2 5

  • Teorema 16 Si son los ceros del polinomio de La-guerre y definimos

    =Z 0

    6=( )6=( )

    entonces la frmula de integracin numrica generada porlos puntos y los pesos es exacta hasta orden 2 1para el intervalo (0)Demostracin [Hu] Pg. 211-213

    Ejemplo 15 A continuacin se exponen algunos valoresde races y coeficientes en funcin del grado delpolinomio () :

    1 1 12 0 585 786 438 0 853 553 390 3

    3 414 213 562 0 146 446 609 3

    Problema 66 (2 puntos) Calcular de forma exacta laintegral Z

    0

    3 2 utilizando los polinomios de Laguerre.

    Problema 67 (2 puntos) Calcular una frmula deaproximacin numrica de la integral siguiente:Z

    ()

    donde es un nmero real cualquiera.

    Frmulas de Integracin Numrica Compuestas

    Con las frmulas que hemos visto hasta ahora, para au-mentar la precisin es necesario aumentar el grado de lospolinomios, lo cual resulta complejo para valores grandesde Una alternativa consiste en dividir previamente laintegral en subintegrales de la manera siguiente:Z

    () =

    X=0

    Z +1

    ()

    donde = 0 1 +1 = A continuacin seaproxima numricamente cada una de las integralesZ +1

    ()

    Para ello, se pueden utilizar los desarrollos a partirde los polinomios de Legendre, o bien las frmulas mssimples siguientes:

    Frmula del rectnguloZ +1

    () + +1

    2

    (+1 )

    Esta frmula se obtiene fcilmente aproximando ()por el polinomio interpolador en = ++12 Es decir:

    Z +1

    () Z +1

    + +1

    2

    =

    = + +1

    2

    (+1 )

    Frmula del trapecioZ +1

    () (+1) + ()2

    (+1 )

    Esta frmula se deduce aproximando () por su poli-nomio interpolador en y +1 Es decir:

    Z +1

    ()

    Z +1

    () +1 +1 + (+1)

    +1

    =

    =(+1) + ()

    2(+1 )

    Frmula de Simpson

    Z +1

    () (+1) + () + 4

    ++12

    6

    (+1 )

    Esta frmula se deduce aproximando () por su de-sarrollo en serie de Taylor centrado en el punto =++1

    2 Es decir:Z +1

    ()

    Z +1

    () + 0()( ) +

    00()2

    ( )2 =

    = ()(+1 ) + 00()3

    +1 2

    3Ahora bien, teniendo en cuenta los resultados de

    la seccin anterior sobre derivacin numrica 00() sepuede aproximar como

    00() (+1) 2() + ()+12

    2Por tanto, sustituyendo este valor en la aproximacin

    anterior obtenemos

    26

  • Z +1

    () ()(+1 )+

    +(+1) 2() + ()

    3

    +1 2

    =

    =(+1) + () + 4

    ++12

    6

    (+1 )Aunque estas frmulas sean menos precisas que las de-

    ducidas a partir de los ceros de los polinomios de Legendre,tienen la ventaja de que pueden ser utilizadas cuando sloconocemos la funcin a integrar en un conjunto equiespa-ciado de puntos, es decir, cuando slo conocemos () enun conjunto de la forma = 0+ Ntese que, en estecaso, la integracin a partir de los ceros de los polinomiosde Legendre no puede utilizarse.

    Problema 68 (2 puntos) Aproximar, por el mtodo deSimpson, la integral Z 1

    13 4

    utilizando nicamente el valor de la funcin en los puntos:112 0 12 y 1

    Prctica 5 (Implementacin Mtodo de Integracin deSimpson).

    Crear una funcin en C++ donde se implemente el mtodode Simpson. Los parmetros de la funcin sern: Loslmites del intervalo de integracin en precisin real y elnmero de subintervalos en los que se dividir el intervaloinicial. La funcin a integrar se definir aparte (como enel caso de la prctica 1). La funcin devolver el valorde la integral obtenido. Probar el mtodo para aproxi-mar las siguientes integrales con diferentes valores para elparmetro de nmero de subintervalos y comprobar que elresultado se aproxima al valor exacto de la integral.

    1.R 0sin() = 2

    2.R 10

    12 = 1

    3.R

    12

    22 = 1

    Llamaremos a la diferencia entre el resultadoreal y el resultado obtenido con el algoritmo. Los resulta-dos que se deben obtener son :

    integralR 0sin()

    N interv. Errorfloat 23 105double 27 1010long double 28 1011

    IntegralR 10

    12 (se toma = 09999999)N interv. Error

    float 219 104double 224 104long double 224 104219

    IntegralR

    12

    22 (se toma [-10,10])N interv. Error

    float 25 107double 26 0long double 26 0

    Se puede tambin implementar una versin del al-goritmo de Simpson que calcule de forma automtica elnmero de intervalos. El siguiente pseudocdigo indicauna manera de hacerlo

    Programa 8 Algoritmo iterativo para calcular la integralpor el mtodo de Simpson. Los parmetros son la funcina integrar, el intervalo, una tolerancia

    Algoritmo Simpson iterativovariable entera N=1 (Nmero intervalos)variable real integral= Clculo Integral de Simp-

    son para N intervalosvariable real error=TOL+1 (Nmero intervalos)mientras (errorTOL)N=N*2variable real integral2= Clculo Integral de

    Simpson para N intervaloserror=an_distancia(integral,integral2)integral=integral2

    fin mientras K0 hasta N hacerfinalgoritmo

    Integracin numrica en dimensiones superiores.

    En esta seccin, estudiaremos las tcnicas de integracinnumrica sobre dominios de dimensin superior a 1 Parasimplificar la exposicin, supondremos que la dimensin es2 Es decir, pretendemos aproximarZ

    ( )

    Aproximaremos esta integral a travs de la frmulanumrica: Z

    ( ) X

    ( )

    donde debemos elegir los puntos ( ) y los pesos Para realizar esta eleccin se utilizan tcnicas decuadratura. Es decir, se exige que la frmula sea exactapara polinomios en e de hasta un cierto grado:Z

    =X

    () ()

    2 7

  • donde y determinan el grado de los polinomios. Deestas relaciones se puede deducir, en general, los valores delos puntos y los pesos. Un caso particularmente sencilloes cuando es un rectngulo [ ][ ] En este caso,podemos escribir:Z

    =

    Z

    Z

    y, por tanto, la exactitud en dimensin 2 la podemos de-ducir a partir de la exactitud en dimensin 1, que, en estecaso, viene dada, como hemos visto anteriormente, por lospolinomios de Legendre.

    Problema 69 (3 puntos) Deducir la frmula de inte-gracin numrica sobre el rectngulo [1 1][1 1] resul-tante de aplicar la integracin numrica en una variableen los intervalos [1 1] y [1 1].

    Problema 70 (2 puntos) Deducir la frmula de inte-gracin numrica sobre un rectngulo [ ][ ] resultantede aplicar la integracin numrica en una variable en losintervalos [ ] y [ ].

    Problema 71 (2 puntos) Calcular de forma exacta laintegral Z 1

    1

    Z 11

    22utilizando integracin numrica.

    Ntese que, al igual que en dimensin 1 tambinpodemos extender los resultados al caso en que los inter-valos sean infinitos, de tal forma que podemos construirfcilmente frmulas de integracin numrica para las inte-grales Z

    Z

    ( )22y Z

    0

    Z 0

    ( )

    Problema 72 (2 puntos) Calcular una aproximacinnumrica de la integralZ

    Z 20

    1 + 2

    utilizando la evaluacin de ( ) en 4 puntos.

    En el caso de que sea un tringulo, el clculo esun poco ms complejo. Consideremos un tringulo de vrtices (0 0) (1 1) (2 2) Denotaremos por

    ( ) el rea del tringulo En funcin de los vr-tices, el rea viene determinada por

    ( ) = 12

    1 1 10 1 20 1 2

    A continuacin presentaremos algunas frmulas de in-tegracin numrica sobre tringulos utilizando diferentesnmeros de puntos

    Integracin sobre tringulos utilizando unpunto.Z ( ) =

    0 + 1 + 23

    0 + 1 + 23

    ( )

    Integracin sobre tringulos utilizando 3 pun-tos. Z

    ( ) = ( )

    3X=1

    (e e)donde

    1 = 2 = 3 = 13e1 = 0 + 1

    2e1 = 0 + 1

    2e2 = 0 + 22

    e2 = 0 + 22e3 = 2 + 1

    2e3 = 2 + 1

    2

    Integracin sobre tringulos utilizando 4 pun-tos. Z

    ( ) = ( )

    4X=1

    (e e)donde

    1 = 2 = 3 = 2548

    4 = 2748e1 = 60 + 21 + 22

    10e1 = 60 + 21 + 22

    10e2 = 20 + 61 + 2210

    e2 = 20 + 61 + 2210e3 = 20 + 21 + 62

    10e3 = 20 + 21 + 62

    10e4 = 0 + 1 + 23

    e4 = 0 + 1 + 23

    Problema 73 (2 puntos) Se considera el tringulo devrtices (0 0) (1 0) y (0 1) Deducir cual debe ser el punto(0 0) y el peso 0 para que la frmula de integracinnumrica: Z

    ( ) (0 0)0

    sea exacta para polinomios de grado 1 en e Es decir ( ) = + + .

    2 8

  • Problema 74 (2 puntos) Calcular una aproximacinnumrica de la integralZ

    2

    donde es el tringulo de vrtices (0 0), (2 0) y (0 2)utilizando 1 punto, 3 puntos y 4 puntos.

    ANLISIS NUMRICO MATRICIAL II

    En esta seccin veremos algunos aspectos ms avanzadosdel anlisis matricial, incluyendo tcnicas iterativas de res-olucin de sistemas de ecuaciones y clculo de autovalores.

    Normas de vectores y matrices.

    Definicin 4 Una norma k k es una aplicacin de unespacio vectorial en + {0} que verifica las siguientespropiedades:

    k k= 0 si y slo si = 0 k k=| |k k para todo y k + kk k + k k para todo

    Bsicamente, una norma mide la magnitud o tamaode un vector Por ejemplo, en el espacio vectorial de losnmeros reales, la norma natural es el valor absoluto.Sin embargo, cuando trabajamos en varias dimensiones,esto es, = (1 2 ) existen mltiples formas dedefinir una norma. La definicin ms utilizada es la de-nominada norma donde es un nmero real positivo,que viene definida por

    k k= X=1

    | |! 1

    Un caso particularmente interesante es = 2 quecorresponde a la norma eucldea. Otro caso interesantees aqul que se produce cuando hacemos tender haciainfinito, lo que da lugar a la denominada norma infinito,definida por

    k k= max | |

    Problema 75 (4 puntos) Tomar = 2 , = 2, ydemostrar que la norma k k verifica las propiedadesde la definicin de norma.

    Problema 76 (3 puntos) Demostrar que

    k k= max | |

    Problema 77 (2 puntos) Tomar = 2 y dibujar ellugar geomtrico de los vectores = (1 2) que verificanque

    1. k k1 12. k k2 13. k k 1

    Problema 78 (2 puntos) Tomar = 2 y demostrar lasiguiente desigualdad:

    k kk k2k k1

    Dada una matriz de dimensin , se podradefinir su norma considerando la matriz como un vectorde dimensin . Sin embargo, resulta ms til definirla norma de una m