SlideShare une entreprise Scribd logo
1  sur  100
Télécharger pour lire hors ligne
´         ´
METODOS NUMERICOS
Una exploraci´n basada en Scheme
             o

                       Enrique Comer Barrag´n
                                           a




           24 de marzo, 2009
     → Edici´n Preliminar 0.23 ←
             o
   Instituto Tecnol´gico de Tijuana
                   o
ii




     c Licencia de uso: Esta obra se publica bajo una licencia de Creative
Commons (ver: http://creativecommons.org/licences/by-nc-nd/2.5/). B´si-   a
camente, usted puede distribuir y comunicar p´blicamente la obra, siempre
                                                  u
que se cumpla con (1) dar cr´dito al autor de la obra, (2) no la utilice para
                               e
fines comerciales y (3) no la altere, transforme o genere una obra derivada de
ella. Adem´s, al utilizar o distribuir la obra, debe especificar claramente los
            a
t´rminos de esta licencia. Estas condiciones pueden modificarse con permiso
 e
escrito del autor.




                                                       Edici´n preliminar 0.23
                                                            o
                                                           24 de marzo, 2009
´
Indice general

Prefacio                                                                                                 VII


1. Teor´ de errores
        ıa                                                                                                1
   1.1. Importancia de los m´todos num´ricos
                              e            e         .   .   .   .   .   .   .   .   .   .   .   .   .    1
   1.2. Conceptos b´sicos . . . . . . . . . . . .
                    a                                .   .   .   .   .   .   .   .   .   .   .   .   .    3
        1.2.1. Cifras significativas . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .    3
        1.2.2. Precisi´n y exactitud . . . . . .
                      o                              .   .   .   .   .   .   .   .   .   .   .   .   .    4
        1.2.3. Incertidumbre y sesgo . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .    8
   1.3. Tipos de errores . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .    9
        1.3.1. Error absoluto y relativo . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .    9
        1.3.2. Error por redondeo . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   11
        1.3.3. Error por truncamiento . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   13
        1.3.4. Error num´rico total . . . . . .
                          e                          .   .   .   .   .   .   .   .   .   .   .   .   .   17
   1.4. Software de c´mputo num´rico . . . . .
                     o             e                 .   .   .   .   .   .   .   .   .   .   .   .   .   17
        1.4.1. Software de acceso libre . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   18
        1.4.2. Software comercial . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   19
        1.4.3. Bibliotecas de funciones . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   19
   1.5. M´todos iterativos . . . . . . . . . . .
           e                                         .   .   .   .   .   .   .   .   .   .   .   .   .   20

2. M´todos de soluci´n de ecuaciones
      e                 o                                                                                25
   2.1. M´todos basados en intervalos . . . .
          e                                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   25
   2.2. M´todo de bisecci´n . . . . . . . . .
          e               o                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
   2.3. M´todo de aproximaciones sucesivas .
          e                                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
        2.3.1. Condici´n de Lipschitz . . . .
                        o                        .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
        2.3.2. Iteraci´n y convergencia . . .
                      o                          .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
   2.4. M´todos basados en interpolaci´n . .
          e                            o         .   .   .   .   .   .   .   .   .   .   .   .   .   .   35
        2.4.1. M´todo de Newton-Raphson .
                 e                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   35
        2.4.2. M´todo de la secante . . . . .
                 e                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   37

                                      iii
iv                                                                     ´
                                                                       INDICE GENERAL

          2.4.3. M´todo de Aitken . . . . . . . . . . . . . . . . . . . . . 38
                   e
     2.5. M´todo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . 39
            e
     2.6. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3. M´todos para sistemas de ecuaciones
      e                                                                                                    45
   3.1. M´todos iterativos . . . . . . . . . .
          e                                        .   .   .   .   .   .   .   .   .   .   .   .   .   .   45
        3.1.1. M´todo de Jacobi . . . . . . .
                  e                                .   .   .   .   .   .   .   .   .   .   .   .   .   .   45
        3.1.2. M´todo de Gauss-Seidel . . .
                  e                                .   .   .   .   .   .   .   .   .   .   .   .   .   .   46
   3.2. Sistemas de ecuaciones no lineales . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   47
        3.2.1. M´todo iterativo secuencial .
                  e                                .   .   .   .   .   .   .   .   .   .   .   .   .   .   47
   3.3. Iteraci´n y convergencia . . . . . . .
               o                                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   49
        3.3.1. M´todo de Newton-Raphson .
                  e                                .   .   .   .   .   .   .   .   .   .   .   .   .   .   49
   3.4. Aplicaciones . . . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   51

4. Diferenciaci´n e integraci´n num´rica
                o                o        e                                                                53
   4.1. Diferenciaci´n num´rica . . . . . . . . .
                    o       e                              .   .   .   .   .   .   .   .   .   .   .   .   53
        4.1.1. F´rmulas de diferencia . . . . . .
                 o                                         .   .   .   .   .   .   .   .   .   .   .   .   56
        4.1.2. F´rmula de tres puntos . . . . . .
                 o                                         .   .   .   .   .   .   .   .   .   .   .   .   56
        4.1.3. F´rmula de cinco puntos . . . . .
                 o                                         .   .   .   .   .   .   .   .   .   .   .   .   57
   4.2. Integraci´n num´rica . . . . . . . . . . .
                 o      e                                  .   .   .   .   .   .   .   .   .   .   .   .   58
        4.2.1. M´todo del trapecio . . . . . . .
                  e                                        .   .   .   .   .   .   .   .   .   .   .   .   58
        4.2.2. M´todos de Simpson . . . . . . .
                  e                                        .   .   .   .   .   .   .   .   .   .   .   .   59
        4.2.3. Integraci´n de Romberg . . . . .
                        o                                  .   .   .   .   .   .   .   .   .   .   .   .   61
        4.2.4. M´todo de cuadratura gaussiana
                  e                                        .   .   .   .   .   .   .   .   .   .   .   .   64
   4.3. Integraci´n m´ltiple . . . . . . . . . . .
                 o    u                                    .   .   .   .   .   .   .   .   .   .   .   .   66
   4.4. Aplicaciones . . . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   67

5. Soluci´n de ecuaciones diferenciales
          o                                                                                                69
   5.1. M´todos de un paso . . . . . . . . . . . . . .
          e                                                        .   .   .   .   .   .   .   .   .   .   69
        5.1.1. M´todo de Euler y formas mejorada .
                 e                                                 .   .   .   .   .   .   .   .   .   .   69
        5.1.2. M´todos de Runge-Kutta . . . . . . .
                 e                                                 .   .   .   .   .   .   .   .   .   .   72
   5.2. M´todos de pasos m´ltiples . . . . . . . . .
          e                  u                                     .   .   .   .   .   .   .   .   .   .   73
        5.2.1. M´todo de Adams-Bashforth . . . . .
                 e                                                 .   .   .   .   .   .   .   .   .   .   74
        5.2.2. M´todo de Adams-Moulton . . . . .
                 e                                                 .   .   .   .   .   .   .   .   .   .   76
   5.3. Sistemas de ecuaciones . . . . . . . . . . . .             .   .   .   .   .   .   .   .   .   .   76
   5.4. Aplicaciones . . . . . . . . . . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   77

Bibliograf´
          ıa                                                                                               79
´
INDICE GENERAL            v

´
Indice de algoritmos      83
´
Indice de c´digo Scheme
           o              85
´
Indice de figuras          87
´
Indice de tablas          89
´
Indice alfab´tico
            e             91
vi   ´
     INDICE GENERAL
Prefacio

                                               The purpose of computing is
                                               insight, not numbers.

                                                  R. W. Hamming. Autor de
                                               Numerical Methods for Scientist
                                                               and Engineers

   El contenido de esta obra se conforma de acuerdo al curso de M´todos e
Num´ricos en el plan de estudios actual de Ingenier´ en Sistemas Computa-
     e                                               ıa
cionales del Instituto Tecnol´gico de Tijuana. Se hace ´nfasis tanto en los as-
                              o                         e
pectos matem´ticos conceptuales como algor´
               a                              ıtmicos. Para la implementaci´n
                                                                            o
de estos ultimos se utiliza el lenguaje de programaci´n Scheme [25].
         ´                                            o
   La edici´n de este libro se realiz´ con TeXnicCenter (ambiente para La-
            o                        o
TeX/MiKTeX) y software auxiliar como WinGCLC y Asymptote.
   Agradezco a la Academia de Sistemas y Computaci´n por la revisi´n y
                                                          o               o
observaciones para mejorar esta obra, as´ como a la DGEST por el per´
                                           ı                              ıodo
sab´tico 2007-2008, gracias al cual se ha realizado este proyecto.
   a

                                                                         ECB
                                                           comer@cemati.com




                                     vii
viii   PREFACIO
Cap´
   ıtulo 1

Teor´ de errores
    ıa

1.1.     Importancia de los m´todos num´ricos
                             e         e
                                              La simulaci´n y el modelado
                                                         o
                                              matem´tico, mover´n el siglo
                                                     a           a
                                              XXI, as´ como el vapor movi´ el
                                                       ı                  o
                                              siglo XIX.

                                                   William H. Press. Autor de
                                                           Numerical Recipes

    Gran parte de la tecnolog´ actual depende de la soluci´n de modelos
                                ıa                               o
matem´ticos, desde la programaci´n empotrada de una calculadora cient´
         a                            o                                    ıfi-
ca y el c´lculo estructural de un edificio multinivel con estructuras de acero,
          a
hasta el dise˜o y simulaci´n de aeronaves y vuelos espaciales. La soluci´n
               n            o                                               o
de un modelo matem´tico relativamente sencillo puede obtenerse de manera
                      a
anal´ıtica. Sin embargo, para la gran mayor´ de los modelos matem´ticos del
                                             ıa                       a
mundo real, las soluciones anal´ ıticas pueden no existir o ser extremadamente
complejas, por lo cual se recurre a m´todos num´ricos que aproximen las
                                         e           e
soluciones dentro de ciertos m´rgenes de tolerancia.
                                 a
    El an´lisis de los m´todos num´ricos nos permite realizar estimaciones
           a             e             e
tanto de la eficiencia o complejidad de los algoritmos asociados, as´ como de
                                                                      ı
la confiabilidad de los resultados num´ricos obtenidos durante su aplicaci´n.
                                         e                                 o
    Entre las disciplinas que hacen uso intensivo de los m´todos num´ricos
                                                               e         e
podemos mencionar:
     An´lisis Estad´
       a           ıstico

                                      1
2                                             CAP´
                                                 ITULO 1. TEOR´ DE ERRORES
                                                              IA

            Matem´ticas financieras
                 a

            An´lisis de elemento finito
              a

            An´lisis estructural
              a

            Qu´
              ımica computacional

            Investigaci´n de operaciones
                       o

            Electromagnetismo computacional

            Mec´nica computacional
               a

            Procesamiento de im´genes
                               a

            Procesamiento de se˜ales
                               n

            Simulaci´n por computadora
                    o

            Computaci´n multi-escala
                     o

            Metereolog´
                      ıa

Debido a la gran variedad de aplicaciones y especialidades atendidas por los
m´todos num´ricos, podemos encontrar en la literatura t´rminos asociados
  e          e                                            e
como los siguientes:

            Matem´ticas num´ricas
                 a         e

            Algoritmos num´ricos
                          e

            Computaci´n cient´
                     o       ıfica

            An´lisis num´rico
              a         e

            Matem´ticas algor´
                 a           ıtmicas

            Matem´ticas computacionales
                 a

            Teor´ de la aproximaci´n1
                ıa                o
      1
          Esta disciplina matem´tica, forma la base te´rica de gran parte de los m´todos num´ri-
                               a                      o                           e         e
cos
´
1.2. CONCEPTOS BASICOS                                                      3

1.2.     Conceptos b´sicos
                    a
    El estudio y aplicaci´n de los m´todos num´ricos se basa en forma esencial
                         o          e          e
en la representaci´n y manipulaci´n de los n´meros reales en una computa-
                   o                o         u
dora digital. Ya que la memoria de una computadora es finita, ´sta s´lo puede
                                                               e    o
representar n´meros racionales. La estrategia para hacer funcional y eficiente
              u
la aproximaci´n de los n´meros reales por n´meros de m´quina en binario se
               o          u                  u            a
presenta en el est´ndar IEEE 754 [13]
                  a
    Los t´rminos asociados en esta secci´n incluyen:
          e                              o

     Confiabilidad

     Estabilidad y convergencia

     Propagaci´n del error
              o

     An´lisis asint´tico
       a           o

     Notaci´n cient´
           o       ıfica

     Forma decimal normalizada

     N´meros de m´quina decimales con k d´
      u          a                       ıgitos

     N´meros de punto flotante (Est´ndar IEEE 754)
      u                           a


1.2.1.    Cifras significativas
    La noci´n intuitiva de cifras significativas de un n´mero est´ directamente
           o                                           u        a
relacionada con la precisi´n de los ins-trumentos o procesos que lo generan.
                           o

Definici´n 1.2.1 (Cifras significativas). El n´mero de cifras significati-
         o                                  u
vas de un n´mero x corresponde al n´mero de cifras en la mantisa de su
             u                        u
representaci´n en notaci´n cient´
            o           o       ıfica.

Ejemplo 1.2.1. Ya que 0.00123 = 1.23·10−3 , decimos que 0.00123 tiene tres
cifras significativas.

Ejemplo 1.2.2. El n´mero 3210 = 3.210 · 103 posee cuatro cifras significa-
                   u
tivas.
4                                        CAP´
                                            ITULO 1. TEOR´ DE ERRORES
                                                         IA

    Note que en el ejemplo anterior, hemos mantenido el 0 de las unidades.
Si el origen del n´mero no garantizara el valor de sus unidades, entonces
                    u
deber´ıamos escribir directamente 3.21 · 103 lo que indicar´ que contamos con
                                                           ıa
s´lo tres cifras significativas.
 o

Definici´n 1.2.2 (Aproximaci´n con t cifras significativas). Sean xv y xc los
         o                    o
valores verdadero y calculado de una cierta cantidad, con xv = xc . Decimos
que xc aproxima a xv con t cifras significativas si t es el mayor entero no
negativo para el cual
                            xv − xc
                                     ≤ 5 × 10−t                        (1.1)
                               xv
Para el caso xv = xc , xc aproxima xv con las cifras significativas propias.

   Como se observa en [8, p´g. 53] esta definici´n dada para decimales puede
                           a                   o
                                     2
extenderse para cualquier base dada.

Ejemplo 1.2.3. El n´mero 3.1416 aproxima a 3.1415926 en 6 cifras signi-
                   u
ficativas, ya que


              |3.1415926 − 3.1416|
                                   = 2.3554932 × 10−6 ≤ 5 × 10−6
                   |3.1415926|

Como se observa, no es necesario que coincidan los d´
                                                    ıgitos de las cifras sig-
nificativas.

Ejercicio 1.2.1. Calcular el n´mero de cifras significativas con que 9.99
                              u
aproxima a 10

Ejercicio 1.2.2. Calcular el n´mero de cifras significativas con que 1005
                              u
aproxima a 1000

1.2.2.      Precisi´n y exactitud
                   o
   El estudio e implementaci´n en computadora de los m´todos num´ricos
                              o                            e           e
requiere de un cuidado especial en el manejo de los n´meros, de forma que los
                                                     u
    2
     Es importante notar que en la desigualdad (1.1) se utiliza algunas veces < como en
el caso de [5, p´g. 21]. Se recomienda resolver el ejercicio 1.2.2, para ambas definiciones y
                a
reflexionar sobre sus respuestas.
´
1.2. CONCEPTOS BASICOS                                                                 5

resultados que entregue un programa sean confiables. Para hablar de dicha
confiabilidad3 distinguiremos entre los t´rminos precisi´n y exactitud.
                                        e              o
   Aunque en las aplicaciones es necesario conocer la precisi´n de los datos
                                                              o
de entrada (a un algoritmo), que pueden depender directamente de los ins-
trumentos utilizados4 , nos concentraremos aqu´ en la precisi´n de la repre-
                                               ı              o
sentaci´n de un n´mero en la memoria de la computadora, lo cual est´ rela-
       o          u                                                    a
cionado con la siguiente representaci´n de n´meros reales.
                                     o      u

Definici´n 1.2.3 (n´meros de punto flotante). De-cimos que un n´mero x
         o          u                                           u
est´ representado como n´mero de punto flotante si se expresa como
   a                    u

                             x = ±d0 .d1 d2 · · · dp−1 × β e                       (1.2)

donde p es el n´mero de d´
               u          ıgitos en la mantisa o significando, β es la base y e
es el exponente entero. Adem´s, cuando d0 = 0 decimos que est´ en su forma
                              a                                 a
normalizada .

Ejemplo 1.2.4. El n´mero 314.159 en representaci´n de punto flotante es
                   u                            o
0.314159 × 10 y como punto flotante normalizado 3.14159 × 102 .
             3


    Ya que las computadoras digitales trabajan (en su mayor´ con el sis-
                                                             ıa)
tema binario, el est´ndar IEEE 754 especifica tanto la representaci´n como
                    a                                             o
                                                   5
el manejo de los n´meros binarios de punto flotante.
                  u

Definici´n 1.2.4 (n´meros binarios de punto flotante normalizado). De-
        o           u
cimos que un n´mero x est´ representado como n´mero binario de punto
               u            a                 u
flotante normalizado si se expresa como

                                 x = (−1)s (1 + f )2e                              (1.3)

donde s es el signo, f es la fracci´n en binario y e el exponente.
                                   o

   La precisi´n de un n´mero est´ directamente relacionada con el n´mero
             o           u        a                                u
de d´
    ıgitos en su representaci´n de punto flotante.
                             o
   3
     La revista Reliable Computing se especializa en m´todos basados en intervalos (entre
                                                      e
otros) que garantizan y acotan todos sus resultados.
   4
     El Peque˜o Larousse Ilustrado, 2002 define Precisi´n (de un instrumento de medida)
              n                                       o
como la cualidad global de un instrumento que le permite dar indicaciones que coinciden,
con mucha aproximaci´n, con el valor verdadero de la magnitud que debe medirse.
                        o
   5
     Para informaci´n adicional sobre este est´ndar puede consultar el excelente art´
                    o                         a                                     ıculo
de Goldberg en [10].
6                                          CAP´
                                              ITULO 1. TEOR´ DE ERRORES
                                                           IA

Definici´n 1.2.5 (precisi´n en formatos IEEE 754). En base a la ecuaci´n
         o                o                                             o
(1.3) el est´ndar IEEE 754 define los siguientes cuatro tipos de formatos6
            a
(ver tabla (1.1))que determinan la precisi´n de un n´mero de punto flotante
                                          o         u
(adaptaci´n de [10, pp. 173-174]):
          o

                    Tabla 1.1: Precisi´n en Formatos IEEE 754
                                      o

           par´metro
              a                              Formatos
                           sencillo s. extendido doble d. extendido
           emax              +127         ≥ 1023 +1023     > 16383
           emin              −126       ≤ −1022 −1022     ≤ −16382
           e bits                 8         ≤ 11      11       ≥ 15
           f bits               23            31      52       ≥ 63
           total bits           32          ≥ 43      64       ≥ 79


    Ya que 2−23 ≈ 1.19 · 10−7 y 2−52 ≈ 2.22 · 10−16 , el formato sencillo tiene
una fracci´n con precisi´n de 7 decimales y el formato doble, una precisi´n
           o            o                                                    o
de 15 decimales.
    Las operaciones con n´meros reales tanto en MATLAB7 como en DrScheme8
                         u
se realizan en doble precisi´n.
                            o
Ejemplo 1.2.5. Utilizando la funci´n en Scheme9 , real->ieee-doble, en la
                                     o
figura (1.1), podemos obtener la representaci´n en formato de doble precisi´n
                                            o                             o
mediante para los n´meros 0.3 y 64
                   u
    6
      Los formatos extendidos en la tabla 1.1, ofrecen flexibilidad de dise˜o para los distintos
                                                                          n
fabricantes de computadoras. Por ejemplo, para el formato doble extendido, las computa-
doras SPARC y PowerPC ofrecen los siguientes campos (en bits): e = 15, f = 112. En
cambio INTEL ofrece: e = 15 y f = 63 con un bit extra para manejo expl´         ıcito del d´ıgito
m´s significativo de la fracci´n.
  a                           o
    7
      MATLAB (MATrix LABoratory) es uno de los sistemas de software num´rico m´s ex-
                                                                                  e       a
itosos en la actualidad. Para una introducci´n sobresaliente, orientada a m´todos num´ri-
                                               o                                e            e
cos, se le invita a consultar el libro de Cleve Moler [18]
    8
      Una de las implementaciones m´s completas del lenguaje de programaci´n Scheme, el
                                       a                                          o
cual emplearemos a lo largo del texto para ilustrar e implementar los m´todos num´ricos.
                                                                            e            e
Para una excelente introducci´n se recomienda el tutorial de Dorai Sitaram [25]
                                o
    9
      Esta funci´n as´ como el resto de las utilizadas en este libro, podr´n ser obtenidas
                o     ı                                                       a
(eventualmente) visitando http://cemati.com/math/areas/scheme/, o bien el sitio de dis-
tribuci´n PLaneT Package Repository en [21]. Se recomienda instalar PLT-Scheme versi´n
        o                                                                                     o
4.1 (o superior) disponible en http://www.plt-scheme.org, y por el momento, sencillamente
copiar el archivo slab.ss (que complementa este libro) al folder PLT de su instalaci´n.  o
´
1.2. CONCEPTOS BASICOS                                                           7

> ( r e a l −>i e e e −d o b l e 0 . 3 )
(”0” ”01111111101”
  ”0011001100110011001100110011001100110011001100110011”)
> ( r e a l −>i e e e −d o b l e 6 4 )
(”0” ”10000000101”
  ”0000000000000000000000000000000000000000000000000000”)
>

   Ya que (0.3)10 = (0.10011)2 nunca podr´ representarse de forma exacta
                                         a
en un sistema binario finito.

    Como se observa en el ejemplo 1.2.5 hay n´meros reales (de hecho una
                                               u
cantidad infinita) que no podr´n ser representados en forma exacta en un
                               a
sistema num´rico de base fija. Note adem´s que el exponente e en el formato
            e                           a
IEEE 754 obedece (en el caso de doble precisi´n) a la ecuaci´n e = e − 1023.
                                             o              o

Ejercicio 1.2.3. Confirme los resultados del ejemplo 1.2.5, utilizando la
ecuacion 1.3.

Ejercicio 1.2.4. Determine las representaciones en binario de punto flotante
normalizado (en formato de doble precisi´n) de los siguientes n´meros en base
                                        o                      u
10

  a) −0.1

  b) 1024

  c) 1.1920928955078125e − 007

Problema 1.2.1. Ya que la recta de los flotantes no “cubre” la recta real,
calcular la distancia que existe entre los siguientes n´meros reales y sus dos
                                                       u
                           10
n´meros flotantes vecinos bajo el formato de doble precisi´n del est´ndar
 u                                                            o         a
IEEE 754:

  a) 2008.09 · 1077

  b) 64.3

  c) −444.7 · 10−27
 10
  Esto ser´ equivalente a encontrar para un n´mero real x, funciones piso x y techo
          ıa                                  u
x pero en el edificio de los n´meros flotantes.
                             u
8                                        CAP´
                                                 ITULO 1. TEOR´ DE ERRORES
                                                              IA

     Problema 1.2.2. Generalice el resultado del problema 1.2.1 y descubra una
     expresi´n o modelo matem´tico para determinar la distancia entre n´meros
            o                   a                                      u
                                                       k k+1
     flotantes consecutivos en intervalos de la forma [2 , 2 ], donde k es un
     entero en el rango permitido.

         En contraste con el concepto de precisi´n que se asocia a la representaci´n
                                                o                                  o
     de un n´mero en particular (p. ej. bajo el formato de doble precisi´n del
              u                                                               o
     est´ndar IEEE 754), la exactitud de un n´mero hace referencia a una cantidad
        a                                     u
     objetivo, y busca el m´ximo acercamiento posible a dicho objetivo11 , en el
                             a
     sentido de la definici´n 1.2.2.
                           o
         Obtener resultados rigurosos y confiables, con la precisi´n y exactitud ade-
                                                                 o
     cuadas para cada aplicaci´n es uno de los prop´sitos principales del dise˜o,
                                 o                      o                         n
     an´lisis e implementaci´n de los m´todos num´ricos.
        a                     o           e           e
         Conceptos como convergencia y acotaci´n del error mediante el an´lisis
                                                  o                             a
     asint´tico, son claves y se considerar´n en diferentes partes de nuestro texto.
          o                                 a

                         C´digo Scheme 1.1: Funci´n real->ieee-doble
                           o                               o
     ; r e a l a i e e e de 64− b i t
 2   ; numero r e a l −> l i s t a de s t r i n g s
     ; entrada : r
 4   ; salida : ( s e ’ f )
     ;      donde : s c o n t i e n e e l b i t d e l s i g n o
 6   ;               : e ’ t a l que e=e ’ −1023 , r e p r e s e n t a e l exponente
     ;               : f contiene la fraccion
 8   ( define ( r e a l −>i e e e −d o b l e r )
        ( i e e e 8 −>i e e e −d o b l e
10        (map f i l l −byte
                    (map (lambda( n ) ( number−>s t r i n g n 2 ) )
12                          ( bytes −> l i s t
                              ( r e a l −>f l o a t i n g −p o i n t −b y t e s r 8 #t ) ) ) ) ) )


     1.2.3.      Incertidumbre y sesgo
         En el an´lisis de datos num´ricos generalmente podemos tener errores que
                 a                  e
     tienen que ver con la falta ya sea de precisi´n o de exactitud.
                                                  o
         11
         Peque˜o Larousse Ilustrado: exactitud : Cualidad de ser medido, calculado o expresado
               n
     con todo rigor: hora exacta.
1.3. TIPOS DE ERRORES                                                         9

Definici´n 1.2.6 (incertidumbre y sesgo). Llamamos incertidumbre o impre-
          o
cisi´n a la falta de precisi´n, y sesgo o inexactitud, a la falta sistem´tica de
    o                       o                                           a
exactitud, ya sea por debajo o bien por arriba de la cantidad exacta.
    El manejo de la incertidumbre o imprecisi´n puede realizarse mediante
                                             o
distribuciones de probabilidad, en tanto que el manejo de la inexactitud,
mediante rangos o intervalos.
Ejemplo 1.2.6. Supongamos que un profesor debe iniciar siempre sus clases
a las 7 : 00 am. Si existe incertidumbre, podr´ iniciar con una distribuci´n
                                              ıa                            o
normal con media de 7 : 05 y desviaci´n est´ndar de 1 minuto, lo cual indica
                                       o    a
que el 99.7 % de las veces iniciar´ en el intervalo [7 : 02, 7 : 08]. Por otro
                                   ıa
lado, si existe (solamente) sesgo, entonces empezar´ sistem´ticamente (por
                                                    ıa        a
ejemplo) a las 7 : 07.
Ejemplo 1.2.7. Si especificamos que el valor de una resistencia el´ctrica es
                                                                    e
de 100 ± 5 % Ω, estamos indicando que su valor real debe estar en el intervalo
[95, 105].
    Existe actualmente una nueva generaci´n de m´todos num´ricos basados
                                             o       e          e
en intervalos, rect´ngulos, cajas e hipercajas (para espacios mayores que 3D),
                   a
cuyo prop´sito es obtener soluciones num´ricas precisas y exactas. Para may-
          o                                e
or informaci´n puede consultar el texto de Aberth [2] y el curso de Warwick
             o
Tucker en [27].


1.3.      Tipos de errores
    En esta secci´n veremos los tipos esenciales de errores presentes (en mayor
                 o
o menor grado) en la aplicaci´n de los m´todos num´ricos. Adem´s de estos
                              o           e            e             a
errores, podemos considerar: el error humano, observaciones inexactas pro-
pios del equipo experimental y errores de modelado. Ver el texto de Friedman
y Kolman [8, pp. 54-55] para ejemplos.

1.3.1.     Error absoluto y relativo
Definici´n 1.3.1 (Error absoluto y relativo). Sea xv un valor num´rico
         o                                                                 e
verdadero y sea xc el valor calculado que aproxima el verdadero, entonces
definimos al error er(xc ) y al error relativo rel(xc ), as´ como sus correspon-
                                                          ı
dientes en valores absolutos, como sigue:
10                                        CAP´
                                             ITULO 1. TEOR´ DE ERRORES
                                                          IA



                                    er(xc ) = xv − xc                                  (1.4)


                                   era (xc ) = |xv − xc |                              (1.5)

                                                 xv − xc
                                    rel(xc ) =                                         (1.6)
                                                    xv


                                                 xv − xc
                                  rela (xc ) =                                         (1.7)
                                                    xv
      Asumiendo claro, que en las ecuaciones (1.6) y (1.7) se cumple xv = 0.

Ejemplo 1.3.1. Calculemos los errores en la definici´n (1.3.1) para el caso de
                     √                              o
aproximar el valor de 11 con 3.31. Consideraremos que el valor verdadero de
√
  11 est´ redondeado12 a siete decimales, es decir xv = 3.3166248, entonces:
        a

                          er(3.31) = 3.3166248 − 3.31
                                    = 0.0066248
                         era (3.31) = |0.0066248| = 0.0066248
                                      3.3166248 − 3.31
                         rel(3.31) =
                                          3.3166248
                                    = 0.0019975
                        rela (3.31) = |0.0019975| = 0.0019975

Los errores relativos tambi´n pueden ser expresados en %. En nuestro caso,
                           e
rel(3.31) ≈ 0.20 %.

Ejercicio 1.3.1. Calcule los cuatro errores de la definici´n (1.3.1) para el ca-
                                                         o
so de aproximar el valor verdadero de π/2 con 11/7. Para iniciar sus c´lculos,
                                                                      a
favor de utilizar redondeo a siete decimales.

Problema 1.3.1. Extienda la definici´n (1.3.1) especificando c´mo manejar
                                   o                        o
el caso xv = 0.
 12
      La operaci´n de redondeo aqu´ es distinta a la que veremos en la secci´n 1.3.2
                o                 ı                                         o
1.3. TIPOS DE ERRORES                                                              11

1.3.2.     Error por redondeo
    A diferencia del error “externo” que provocamos cuando redondeamos a
cierto n´mero de decimales (p. ej. 9.9 a 10), el error por redondeo que interesa
        u
en c´lculo num´rico es el que ocurre en la computadora o calculadora debido
     a         e
a las limitaciones propias de la representaci´n del n´mero (digamos en el
                                               o         u
sistema de punto flotante de precisi´n sencilla o de doble precisi´n en el
                                      o                                o
est´ndar IEEE 754)
   a
Definici´n 1.3.2 (Error por redondeo). Dado un n´mero real x y un sistema
         o                                        u
de representaci´n de punto flotante que “almacena” x como f l(x), el error
               o
por redondeo es
                           erf l (x) = x − f l(x)                   (1.8)
El error por redondeo acumulado erf lops (x, y) es el que resulta despu´s de
                                                                       e
realizar una serie de operaciones aritm´ticas de punto flotante (o flops13 ),
                                        e
donde cada operaci´n contribuye su ”cuota” de error por redondeo. Estas
                    o
operaciones aritm´ticas podemos definirlas como:
                  e
                            x⊕y    = f l(f l(x) + f l(y))
                            x y    = f l(f l(x) − f l(y))
                                                                                (1.9)
                            x⊗y    = f l(f l(x) × f l(y))
                            x y    = f l(f l(x) / f l(y))

    Para calcular erf lops (x, y) es necesario realizar en secuencia cada una de
las flops y en cada etapa (como lo indican las ecuaciones en (1.9)) calcular
el error por redondeo resultante.
Ejemplo 1.3.2 (Moler [17]). Calculemos los resultados de la siguiente se-
cuencia:
                                   a = 4/3
                                   b=a−1
                                   c=b+b+b
                                   e=1−c
Una implementaci´n en Scheme resulta en el c´digo y su ejecuci´n indicado
                 o                          o                 o
en la figura 1.1.
  13
    flops: (del ingl´s) floating point operations. Algunos sistemas (como MATLAB) tienen
                   e
la capacidad de contar las flops realizadas durante una serie de c´lculos.
                                                                  a
12                                        CAP´
                                             ITULO 1. TEOR´ DE ERRORES
                                                          IA


                    Figura 1.1: Ejemplo de error por redondeo

           C´digo
            o                         =⇒      Resultado

           (define a (/ 4. 3))                 {a=1.3333333333333333}

           (define b (- a 1))                  {b= 0.33333333333333326}

           (define c (+ b b b))                {c= 0.9999999999999998}

           (define e (- 1 c))                  {e=2.220446049250313e-016}

           e                                  2.220446049250313e-016



    Note que la primera linea del c´digo anterior utiliza (define a (/ 4. 3)) para
                                   o
indicar (con el punto) que 4 es un n´mero real, simplemente quitando el punto
                                     u
                                  14
obtenemos el resultado indicado en la figura 1.2, donde se ha eliminado el
error, debido a que en el lenguaje Scheme, las operaciones aritm´ticas con
                                                                      e
enteros y racionales son exactas.

   Hay dos errores de redondeo especiales: error de underflow (o bajoflujo,)
cuando x(= 0) es m´s peque˜o que el menor (en magnitud ) de los n´meros
                     a       n                                        u
de punto flotante disponibles y el sistema lo representa como cero (o bien
genera una excepci´n durante el c´lculo).
                   o              a
   Por otra parte, se genera un error de overflow (o sobreflujo,) cuando x
excede el m´ximo (en magnitud) de los n´meros representables como punto
            a                             u
flotante y el sistema lo representa como +inf o -inf seg´n sea el caso.
                                                       u

Ejercicio 1.3.2. Explore y descubra cu´les son los n´meros que generan
                                        a             u
underflow o bien overflow bajo diferentes sistemas (p. ej. en MATLAB y PLT
Scheme).

    Para medir el error por redondeo utilizamos ya sea el error relativo o bien
las ulps15 . En general (como lo indica Goldberg en [10]) si el n´mero de punto
                                                                 u
  14
      Los resultados entre llaves, indican que no hay resultado en pantalla; s´lo se actualiza
                                                                              o
la tabla de asociaciones entre variables y valores.
   15
      ulps: units of the last place, unidades de la ultima posici´n.
                                                    ´            o
1.3. TIPOS DE ERRORES                                                                  13


Figura 1.2: Ejemplo de eliminaci´n del error por redondeo, al utilizar n´meros
                                o                                       u
racionales

                      C´digo
                       o                         =⇒      Resultado

                      (define a (/ 4 3))                  {a = 1 1 }
                                                                3


                      (define b (- a 1))                  {b = 1 }
                                                              3


                      (define c (+ b b b))                {c = 1}

                      (define e (- 1 c))                  {e = 0}

                      e                                  0


flotante d0 .d1 · · · dp−1 ×β e se utiliza para representar x, entonces se tendr´ un
                                                                               a
error en ulps de:
                      erf l (x) = |d0 .d1 · · · dp−1 − (x/β e )| β p−1             (1.10)
Ejercicio 1.3.3. Utilizando la ecuaci´n (1.10) calcule el error por redondeo
                                     o
en ulps para el caso de aproximar 0.0123456 con 1.23 × 10−2 .
Proyecto 1.1. Dise˜e e implemente un programa en Scheme (o en el lenguaje
                    n
de su preferencia) que ofrezca la funcionalidad de definir un sistema de punto
flotante parametrizado, y permita realizar experimentos y c´lculo de errores,
                                                             a
en secuencias de operaciones aritm´ticas.
                                     e

1.3.3.      Error por truncamiento
    De forma similar al caso del error por redondeo, hay que distinguir entre
el error “externo” que provocamos cuando truncamos un n´mero a cierta
                                                                 u
cantidad de decimales (p. ej. 9.99 a 9.9) y el error de truncamiento que interesa
fundamentalmente en el an´lisis num´rico. Este ultimo tiene que ver con la
                            a           e            ´
famosa serie de Taylor16 y la propiedad de que toda funci´n anal´
                                                              o       ıtica puede
ser aproximada mediante polinomios.
  16
    Brook Taylor (1685-1731). Analista, ge´metra y fil´sofo ingl´s. Public´ libros de pers-
                                          o          o         e         o
pectiva y diferencias finitas.
14                                           CAP´
                                                ITULO 1. TEOR´ DE ERRORES
                                                             IA

Teorema 1.3.1 (Teorema de Taylor). Sea f (x) una funci´n en los reales
                                                      o
definida en el intervalo [a, b] y que satisface
     1. f (x) ∈ C n [a, b]
     2. f n+1 (x) existe para x ∈ (a, b)
Entonces, para cualesquier x0 , x en [a, b],
                                    n
                                         f (k) (x0 )
                        f (x) =                      (x − x0 )k + Rn (x)           (1.11)
                                   k=0
                                             k!
                      (n+1)
donde Rn (x) = f (n+1)!x ) (x − x0 )n+1 (para cx entre x0 y x inclusive) se de-
                     (c

nomina residuo y a la sumatoria llamamos polinomio de Taylor17 de orden
n, denotado por Pn (x). Cuando fijamos x0 , la ecuaci´n (1.11) se denomina
                                                        o
expansi´n de Taylor de orden n de f (x) alrededor de x0 . Adem´s si hacemos
       o                                                         a
                                                           18
h = x − x0 podemos expresar el orden de crecimiento del residuo como
Rn (x) = O(hn+1 )                                                            3
Demostraci´n. (Adaptada de Banach [3] pp. 114-116) Consideremos la ecuaci´n:
          o                                                              o

                             x − x0            (x − x0 )2
               f (x) = f (x0 ) +     f (x0 ) +            f (x0 ) + · · ·
                                1!                 2!
                      (x − x0 )n (n)
                   +            f (x0 ) + w(x − x0 )n+1
                          n!
Si la ecuaci´n anterior ha de cumplirse, encontraremos que w deber´ ser igual
              o                                                           a
  f (n+1) (ξ)
a (n+1)! (que corresponde al factor correspondiente en Rn (x)) para un valor
de ξ entre x0 y x.
     Definamos ϕ(t) como sigue:
                                           x−t         (x − t)2
               ϕ(t) = f (x) − f (t) −          f (t) −          f (t) − · · ·
                                            1!            2!
                          (x − t)n (n)
                      −           f (t) − w(x − t)n+1
                             n!
  17
      Cuando x0 = 0 el nombre de la serie cambia a serie de MacLaurin, en honor a Colin
MacLaurin (1698-1746) matem´tico y f´
                                 a       ısico escoc´s.
                                                    e
   18
      La notaci´n b´sica para orden de crecimiento es (usando nuestra “variable” h) O(g(h))
               o a
(pron. “O grande” de g(h)) y nos proporciona una estimaci´n del error. Si escribimos
                                                                o
f (h) = O(g(h)) (para toda h) esto significa que existe una constante C tal que se cumple
|f (h)| ≤ C|g(h)| (para toda h). Para un excelente tratamiento de este tema y del an´lisis
                                                                                      a
asint´tico se recomienda el libro de Graham, Knuth y Patashnik [11, pp. 443-463].
      o
1.3. TIPOS DE ERRORES                                                                 15

Observamos que se cumple ϕ(x0 ) = ϕ(x) = 0. Si ahora derivamos ϕ(t) con
respecto a t obtenemos:

                                  x−t
               ϕ (t) = −f (t) −        f (t) − f (t)
                                    1!
                          (x − t)2 (3)       x−t
                       −          f (t) −         f (t) − · · ·
                             2!               1!
                          (x − t)n (n+1)       (x − t)(n−1) (n)
                       −          f      (t) −             f (t)
                             n!                  (n − 1)!
                       + w(n + 1)(x − t)n

Simplificando la ecuaci´n anterior (cancelando t´rminos iguales) obtenemos:
                      o                        e
                             (x − t)n (n+1)
                 ϕ (t) = −           f      (t) + w(n + 1)(x − t)n
                                n!
Aplicando ahora el teorema de Rolle19 , sabemos que existe una ξ entre x y
x0 tal que ϕ (ξ) = 0, por tanto:
                                                   (x − t)n (n+1)
                       w(n + 1)(x − t)n =                  f      (t)
                                                      n!
de donde obtenemos el resultado deseado:
                               f (n+1) (ξ)
                         w=      (n+1)!
                                           ,   con ξ entre x y x0 .


   Nota: La f´rmula para el residuo en el teorema anterior garantiza que
               o
            ˆ
|Rn (x)| ≤ |Rn (x)|, donde:

                           ˆ               Mx
                           Rn (x) =               (x − x0 )n+1                    (1.12)
                                         (n + 1)!

donde Mx = max{f (n+1) (cx )} tal que cx est´ entre x0 y x inclusive. De esta
                                             a
forma, |Rˆ n (x)| nos proporciona una cota superior efectiva para la magnitud
del residuo.
  19
    Michel Rolle (1652-1719). Matem´tico franc´s, especialista en an´lisis, ´lgebra y ge-
                                     a          e                    a      a
ometr´ El teorema de Rolle nos dice que si una curva continua cruza el eje x en dos
     ıa.
puntos y tiene una tangente en todos sus puntos intermedios, entonces tiene al menos una
tangente paralela al eje x.
16                                 CAP´
                                      ITULO 1. TEOR´ DE ERRORES
                                                   IA

Ejemplo 1.3.3. Calculemos P3 (x) alrededor de x0 = 0 para la funci´n ex , y
                                                                  o
          ˆ 3 (x).
estimemos R

                              e0 0 e0 1 e0 2 e0 3
                     P3 (x) =    x + x + x + x
                              0!    1!  2!   3!
                                    1 2 1 3
                            =1+x+ x + x
                                    2   6
                              ecx 4
                     R3 (x) =     x
                              4!
                     ˆ        Mx 4
                     R3 (x) =     x
                              24
donde, debido a que la funci´n ex es creciente, tenemos:
                            o

                                      1    x≤0
                            Mx =
                                      ex   x>0

Ejercicio 1.3.4. Calcule P3 (x), el polinomio de aproximaci´n de Taylor de
                                                           o
orden 3, alrededor de x0 = 0, as´ como el residuo Re (x), para la funci´n
                                  ı                                     o
f (x) = cos(x/2),

Definici´n 1.3.3 (Error por truncamiento). Decimos que existe un error por
         o
truncamiento, cuando no podemos calcular un valor verdadero yv de forma
expl´
    ıcita y tenemos que reemplazarlo por un c´lculo aproximado yc , y lo
                                                  a
denotamos por ertr (yv ) = yv −yc . Normalmente, la aproximaci´n yc se obtiene
                                                              o
mediante la suma de los primeros t´rminos de una serie infinita convergente.
                                     e

Ejemplo 1.3.4. Utilizando el resultado del ejemplo (1.3.3), calculemos los
errores de truncamiento, cuando:

     a) Aproximamos e con P3 (1)

     b) Aproximamos e−1 con P3 (−1)

Para el caso (a), tenemos yv = e y yc = P3 (1), por lo cual, utilizando siete
decimales obtenemos: yv = 2.7182818, y
                                      1     1
                         yc = 1 + 1 + (1)2 + (1)3
                                      2     6
                            = 2 + 1/2 + 1/6
                            = 8/3
´         ´
1.4. SOFTWARE DE COMPUTO NUMERICO                                                17

Ya que 8/3 = 2.6666667 (redondeando a siete decimales,) entonces
    ertr (2.7182818) = 2.7182818 − 2.6666667 = 0.0516151.
    Para el caso (b) tenemos yv = e−1 y yc = P3 (−1), por lo cual, utilizando
siete decimales obtenemos: yv = 0.3678794, y
                                       1      1
                       yc = 1 + (−1) + (−1)2 + (−1)3
                                       2      6
                          = 0 + 1/2 − 1/6
                          = 1/3
Ya que 1/3 = 0.3333333 (redondeando a siete decimales,) entonces
   ertr (0.3678794) = 0.3678794 − 0.3333333 = 0.0345461.
Ejercicio 1.3.5. Verifique que los errores de truncamiento encontrados en el
                                         ˆ
ejemplo (1.3.4), estan por debajo de los R3 (x) correspondientes encontrados
en el ejemplo (1.3.3).

1.3.4.     Error num´rico total
                    e
   Por lo visto hasta este punto, los m´todos num´ricos requieren un cuida-
                                       e           e
doso reconocimiento y estudio de los errores involucrados.
Definici´n 1.3.4 (Error num´rico total). El error num´rico total es la suma
         o                    e                        e
de los errores por redondeo y los errores por truncamiento.
    Los errores por redondeo y por truncamiento guardan una relaci´n muy
                                                                      o
interesante que se˜ala Chapra y Canale [6, pp. 97-99] y denominan princi-
                   n
pio de incertidumbre num´rica, ya que conforme aumenta el incremento h
                           e
(p. ej. (x − x0 ) en la expansi´n de Taylor) tambi´n aumenta el error por
                               o                     e
truncamiento, y para reducirlo es necesario aumentar el n´mero de t´rminos
                                                           u          e
en la sumatoria, pero al hacerlo aumenta el n´mero de operaciones de punto
                                                u
flotante, lo que aumenta el error por redondeo. Se trata entonces de encontrar
un punto de equilibrio a partir del cual, se tienen rendimientos decrecientes.


1.4.      Software de c´mputo num´rico
                       o         e
   El software num´rico actual20 ofrece un panorama muy prometedor, ya
                    e
que adem´s de la calidad en los programas y la b´squeda de conectividad en-
         a                                      u
  20
   Que incluye con frecuencia funcionalidad propia de los CAS (Computer Algebra Sys-
tems).
18                                 CAP´
                                      ITULO 1. TEOR´ DE ERRORES
                                                   IA

tre los diferentes sistemas, tambi´n se busca estandarizar algunos aspectos de
                                   e
la sem´ntica (ver p. ej. la iniciativa del Numerical Mathematics Consortium
       a
[20]).

1.4.1.    Software de acceso libre
  Entre los sistemas de acceso libre orientados al software num´rico se pode-
                                                               e
mos incluir:

     Axiom: sistema de ´lgebra computacional (con MathAction)
                       a

     Calc3D: software para c´lculo y graficaci´n orientado a geometr´ y
                            a                o                     ıa
     estad´
          ıstica

     EULER: poderoso laboratorio de computaci´n num´rica (con Yacas)
                                             o     e

     FreeMat: Colecci´n de funciones b´sicas para matem´ticas
                     o                a                a

     GnuPlot: Excelente graficador de dominio p´blico (no GNU)
                                              u

     Jacal: Sistema de ´lgebra computacional basado en Scheme
                       a

     Mathscribe: herramientas para mentes cient´
                                               ıficas

     NonEuclid: software interactivo en Java para geometr´ hiperb´lica
                                                         ıa      o

     Octave: excelente sistema afin a MATLAB

     PyLab: una colecci´n de funciones para c´lculo num´rico y visualizaci´n.
                       o                     a         e                  o
     Basado en Python

     RLab: laboratorio para computaci´n num´rica
                                     o     e

     Sage: Sistema integrador de gran potencia y versatilidad que incluye
     otros paquetes matem´ticos Open Source de alta calidad.
                          a
     http://www.sagemath.org

     Scilab: uno de los paquetes de computaci´n num´rica y cient´
                                               o       e            ıfica m´s
                                                                          a
     importantes y exitosos (desarrollado en el instituto franc´s INRIA)
                                                               e

     Singular: un sistema de ´lgebra computacional para computaci´n con
                             a                                   o
     polinomios
´         ´
1.4. SOFTWARE DE COMPUTO NUMERICO                                             19

      Surf: software para visualizaci´n de geometr´ algebraica real
                                     o            ıa

      Winplot: un programa sencillo pero muy vers´til para graficar funciones
                                                 a
      matem´ticas
            a

      wxMaxima: un paquete cl´sico para matem´ticas num´ricas y com-
                                a                a     e
      putaci´n simb´lica. Sistema basado en Lisp
            o      o

1.4.2.     Software comercial
   Entre los sistemas m´s relevantes tenemos:
                       a
      Derive: Sistema shareware para c´mputo num´rico y simb´lico.
                                      o         e           o

      LabView: Plataforma de c´mputo num´rico y simulaci´n con ´nfasis en
                               o            e             o       e
      sistemas electr´nicos empotrados, de gran importancia en la industria
                     o

      MAPLE: Sistema preferido en ambientes acad´micos y cuyo n´cleo de
                                                   e              u
      procesamiento simb´lico se incorpora en otros sistemas comerciales
                        o

      MathCAD: Editor de documentos que integra valiosas capacidades de
      c´mputo num´rico y de visualizaci´n
       o         e                     o

      Mathematica: Sofisticado y muy exitoso sistema de c´mputo num´rico
                                                           o      e
      y simb´lico, con grandes capacidades de visualizaci´n
            o                                            o

      MATLAB: Abreviaci´n de “MATrix LABoratory”, este es el sistema
                           o
      est´ndar en aplicaciones de ingenier´
         a                                ıa

      Scientific Workplace: Excelente editor cient´
                                                 ıfico de gran flexibilidad y
      que integra MAPLE como su n´cleo de computaci´n simb´lica
                                    u                  o       o

1.4.3.     Bibliotecas de funciones
    Orientadas principalmente a la eficiencia en la soluci´n de sistemas lin-
                                                             o
eales de dimensi´n muy grande, estas bibliotecas son esenciales para el desar-
                 o
rollo de aplicaciones en la industria, as´ como en laboratorios de investigaci´n.
                                         ı                                    o
Entre las m´s recomendadas podemos mencionar:
             a
      IMSL

      JavaNumerics
20                                       CAP´
                                            ITULO 1. TEOR´ DE ERRORES
                                                         IA

        LAPACK/BLAS

        EISPACK

        LINPACK

        NAG

    En las pr´ximas revisiones se presentar´n referencias y una breve descrip-
             o                             a
ci´n de estos importantes sistemas de apoyo a la computaci´n num´rica.
  o                                                          o       e


1.5.        M´todos iterativos
             e
    A diferencia de los m´todos directos donde la soluci´n a una ecuaci´n
                         e                                o              o
o sistema de ecuaciones se logra siempre “al primer intento” siguiendo paso
a paso un procedimiento determinado21 , los m´todos iterativos obtienen
                                               e
la soluci´n como resultado de una serie de aproximaciones generadas sucesi-
         o
vamente a partir de una “aproximaci´n inicial a la soluci´n”.
                                     o                   o

Definici´n 1.5.1 (M´todo iterativo). Llamamos M´todo iterativo (uni-
         o            e                       e
variable) a un procedimiento que acepta:

     a) f (x), la funci´n a iterar22 , tal que ran(f ) ⊆ dom(f ) y adem´s cumple
                       o                                               a
        cierto criterio de convergencia23

     b) x0 ∈ dom(f ), la aproximaci´n inicial a la soluci´n
                                   o                     o

     c) , la tolerancia del error

y encuentra, mediante un n´mero finito de iteraciones, una soluci´n aproxi-
                           u                                    o
        ∗
mada x (con error ≤ ) , para la ecuaci´n x = f (x). Llamamos punto fijo
                                      o
al valor x que cumple x = f (x).

   Normalmente, la implementaci´n de un m´todo iterativo incluye como
                                o          e
par´metro adicional, el n´mero m´ximo de iteraciones permitidas, para el
   a                     u      a
  21
     Como ejemplo podemos mencionar el procedimiento para calcular la derivada de una
funci´n que veremos en la secci´n 4.1
      o                          o
  22
     Iterar una funci´n significa aqu´ aplicarla repetidamente, p. ej. x3 := f (f (f (x0 )))
                       o               ı,
asigna a x3 el valor de la tercera iteraci´n de f aplicada a x0
                                          o
  23
     P. ej. la condici´n de Lipschitz, que veremos en la secci´n 2.3.1
                      o                                       o
´
1.5. METODOS ITERATIVOS                                                    21

caso en que se utilice una funci´n que no cumpla con el criterio de conver-
                                 o
gencia.
    En la figura 1.2 presentamos el c´digo Scheme para una m´quina itera-
                                     o                         a
tiva b´sica, que utilizando el enfoque de programaci´n orientada a objetos,
      a                                             o
implementa el m´todo iterativo univariable de la definici´n 1.5.1 anterior.
                 e                                      o
                                                  1
Ejemplo 1.5.1. Resolvamos la ecuaci´n x = cos(x + 4 ) con ayuda de la
                                   o
funci´n crea-mit.
     o

> ( define mit ( c r e a −mit ’ g (lambda( x )
                                                (+ ( c o s x ) 1 / 4 ) )
                                           0.01 15))
> ( mit ’ i t e r a 0 . 7 )
(0 : 0 . 7 )
(1 : 1.0148421872844886)
(2 : 0.7777539838103506)
(3 : 0.9624913205131414)
(4 : 0.8214773395993339)
(5 : 0.9311403125086086)
(6 : 0.8469194965541674)
(7 : 0.9122943326484682)
(8 : 0.8619327515053936)
(9 : 0.900971529122722)
(1 0 : 0 . 8 7 0 8 4 8 6 5 0 1 2 5 9 5 1 8 )
(1 1 : 0 . 8 9 4 1 7 7 6 6 7 2 6 4 8 9 1 7 )
(1 2 : 0 . 8 7 6 1 6 0 1 9 6 2 8 8 8 2 5 2 )
(1 3 : 0 . 8 9 0 1 0 5 9 2 5 8 3 1 6 9 4 3 )
(0.7
  converge
 a
  0.8793297110716177
  en
  14
  iteraciones )
>
22                                       CAP´
                                                 ITULO 1. TEOR´ DE ERRORES
                                                              IA

     C´digo Scheme 1.2: Funci´n crea-mit para crear una m´quina iterativa b´sica
       o                                 o                                 a                     a
     ; ; f u n c i ´ n c r e a −mit ( r e v . 0 2 , 2008 −05 −27; en mit . scm )
                   o
 2   ; ; p r o p ´ s i t o : : c r e a r una M´ quina I T e r a t i v a (MIT) b ´ s i c a
                  o                                   a                                      a
     ; ; atributos : : idf : string                                   ; i d de l a f u n c i ´ n o
 4   ;;                                f : procedimiento ; funci´n a i t e r a r
                                                                               o
     ;;                         epsi : real                           ; tolerancia
 6   ;;                               n : e n t e r o p o s i t i v o ; m´x de i t e r a c i o n e s
                                                                           a
     ; ; m´ todos : : ’ show
              e                                       −> p r e s e n t a l o s a t r i b u t o s
 8   ;;                       ’ i t e r a <r e a l > −> i t e r a empezando con <r e a l >
     ;;                       ’ fun <proced> −> r e d e f i n e l a f u n c i ´ n f    o
10   ;;                       ’ i d f <s t r i n g > −> r e d e f i n e nombre f u n c i ´ n  o
     ;;
12   ( define ( c r e a −mit i d f f e p s i n )
         ( l e t ( ( i m i t i d f ) ( f m i t f ) ( emit e p s i ) ( nmit n ) )
14           (lambda( mensaje . param )
                ( c a s e mensaje
16                  (( itera )
                      ( d i s p l a y ‘ ( 0 : , ( c a r param ) ) ) ( n e w l i n e )
18                    (do ( ( k 1 (+ k 1 ) )
                                ( xp ( c a r param ) ( f m i t xp ) )
20                              ( x ( f m i t ( c a r param ) ) ( f m i t x ) ) )
                          ( ( o r (<= ( abs (− x xp ) ) emit )
22                                  (>= k nmit ) )
                            ( i f (<= k nmit )
24                                   ‘ ( , ( c a r param ) c o n v e r g e a , x en
                                           ,k iteraciones )
26                                   ‘ ( , ( c a r param ) no c o n v e r g e en
                                           ,k iteraciones )))
28                        ( d i s p l a y ‘ ( , k : , x , ( f m i t x ) , ( abs (− x xp ) ) ) )
                          ( newline ) ) )
30                  ( ( fun ) ( s e t ! f m i t ( c a r param ) ) )
                    ( ( e ps ) ( s e t ! emit ( c a r param ) ) )
32                  ( ( i d ) ( s e t ! i m i t ( c a r param ) ) )
                    ( ( show ) ( d i s p l a y ‘ ( ”MIT” i d f =, i m i t eps=
34                                                                      , emit n=, nmit ) )
                                    ( newline ))
36                  ( e l s e ‘ ( no conozco e l mensaje , mensaje ) ) ) ) ) )
´
1.5. METODOS ITERATIVOS                                                 23

Nota: en la secci´n 3.1, veremos m´todos iterativos aplicados a la soluci´n
                 o                  e                                    o
de sistemas de ecuaciones lineales de la forma Ax = b.
24   CAP´
        ITULO 1. TEOR´ DE ERRORES
                     IA
Cap´
   ıtulo 2

M´todos de soluci´n de
  e              o
ecuaciones

    Presentamos aqu´ algunos m´todos num´ricos fundamentales para la solu-
                     ı           e           e
ci´n de una ecuaci´n no lineal univariable. Los sistemas de ecuaciones
  o                  o
no lineales ser´n tratados en el siguiente cap´
               a                               ıtulo.




2.1.     M´todos basados en intervalos
          e
    Cuando para encontrar la soluci´n a una ecuaci´n, digamos f (x) = 0
                                     o               o
partimos de un intervalo [a, b] dentro del cual sabemos que se encuentra la
soluci´n, y paso a paso reducimos dicho intervalo hasta obtener [an , bn ] tal
      o
que |bn − an | < , para > 0 como la tolerancia, decimos que hemos utilizado
un m´todo de intervalo o m´todo cerrado.
     e                    e
   El m´todo de intervalo cl´sico es el m´todo de bisecci´n de Bolzano, que
       e                     a           e               o
veremos en la secci´n siguiente (2.2).
                   o
    Como se mencion´ en la secci´n 1.2.2, recientemente se han desarrollado
                     o           o
m´todos basados en intervalos (en general hiper-cajas) que van “encerrando”
  e
la soluci´n en regiones cada vez m´s peque˜as, logrando con ello lo que ac-
         o                         a       n
tualmente se conoce como computaci´n confiable (en ingl. reliable computing).
                                     o
Para mayores detalles sobre estos nuevos m´todos se recomienda consultar
                                            e
[27].

                                     25
26             CAP´         ´               ´
                  ITULO 2. METODOS DE SOLUCION DE ECUACIONES

2.2.           M´todo de bisecci´n
                e               o
         El m´todo de bisecci´n se basa en el siguiente teorema de Bolzano1
             e               o
Teorema 2.2.1 (Teorema de Bolzano). Una funci´n f : R → R es cero de
                                                  o
al menos un valor de x entre a y b si f es continua en el intervalo cerrado
[a, b] y f (a) y f (b) tienen signos opuestos.
    La estrategia de este m´todo, es partir de un intervalo [a, b] que cumple la
                             e
condici´n f (a)f (b) < 0 y en cada iteraci´n bisectarlo para obtener un nuevo
       o                                      o
intervalo [a1 , b1 ] que tambi´n cumple con f (a1 )f (b1 ) < 0 , hasta obtener un
                              e
intervalo [an , bn ] que cumple f (an )f (bn ) < 0 pero adem´s |b − a| ≤ , para
                                                              a
un correspondiente a la tolerancia del error.
    Presentamos a continuaci´n el algoritmo resultante:
                                o

Algoritmo 2.1 M´todo de bisecci´n
                     e               o
Dado: f : funci´n asociada a la ecuaci´n f (x) = 0 a resolver, a y b: valores
                  o                     o
    iniciales que cumplen f (a)f (b) < 0, : tolerancia del error.
Entrega: c: la soluci´n aproximada a la ecuaci´n f (x) = 0 con un error ≤ .
                        o                        o
     Biseccion(f, a, b, )
               ´
 2:     repeat
            s ← (a + b)/2
 4:         if f (s) = 0 then                                 caso excepcional
                return s
 6:         else if f (a)f (s) < 0 then
                b←s
 8:         else
                a←s
10:         end if
        until |b − a| ≤
12:     return s
    end


Ejemplo 2.2.1. La siguiente interacci´n con la funci´n biseccion (ver c´di-
                                      o              o                 o
go 2.1) nos permite resolver cos(x) = 0 con una tolerancia de 10−3 mediante
el m´todo de bisecci´n, utilizando a = 0 y b = 2.
    e               o
     1
    Bernhard Bolzano (1781-1848), matem´tico checoescovaco especializado en an´lisis,
                                          a                                        a
cuyo trabajo ayud´ a establecer la importancia de las demostraciones rigurosas [14].
                 o
´               ´
     2.2. METODO DE BISECCION                                                              27


            C´digo Scheme 2.1: Funci´n biseccion asociada al algoritmo 2.1
              o                              o
     ; ; implementa e l m´todo de b i s e c c i ´ n
                                    e                         o
 2   ; ; asume : f ( a0 ) f ( b0)<0
     ( define ( b i s e c c i o n f a0 b0 ep )
 4      ( l e t c i c l o ( ( a a0 ) ( b b0 ) )
            ( l e t ( ( s ( / (+ a b ) 2 ) ) )               ; b i s e c c i o n de [ a , b ]
 6              ( cond [ ( z e r o ? ( f s ) ) s ]           ; f ( s )=0? => e n t r e g a s
                         [( < ( abs (− b a ) ) ep ) ; cumple t o l e r a n c i a ?
 8                         s]                                   ;      entrega s
                         [( < (∗ ( f a ) ( f s ) ) 0 ) ; f ( a ) f ( s )<0?
10                         ( ciclo a s )]                       ;      busca en [ a , s ]
                         [ e l s e ( c i c l o s b ) ] ) ) ) ) ; busca en [ s , b ]


     > ( b i s e c c i o n cos 0 2. .001)
     1.57080078125

        A continuaci´n presentamos las interacciones resultantes al resolver este
                    o
     problema mediante la funci´n biseccion-data (presentada en el c´digo 2.2)
                               o                                       o
     > ( b i s e c c i o n −data c o s 0 2 . . 0 0 1 6 )
     (1.57080078125
      −4.454455103366037 e −006
      (0 0 2 . 0 )
      (1 1.0 2 . 0 )
      (2 1.5 2 . 0 )
      (3 1.5 1 . 7 5 )
      (4 1.5 1.625)
      (5 1.5625 1.625)
      (6 1.5625 1.59375)
      (7 1.5625 1.578125)
      (8 1.570312 1.578125)
      (9 1.570312 1.574219)
      (1 0 1 . 5 7 0 3 1 2 1 . 5 7 2 2 6 6 )
      (1 1 1 . 5 7 0 3 1 2 1 . 5 7 1 2 8 9 ) )

     Note que en este caso, la funci´n entrega una lista que contiene respectiva-
                                      o
     mente, la soluci´n s, el error f (s) y los datos de las iteraciones en la forma
                     o
28             CAP´         ´               ´
                       ITULO 2. METODOS DE SOLUCION DE ECUACIONES

     (ki ai bi ).

        C´digo Scheme 2.2: Funci´n biseccion-data asociada al algoritmo 2.1
          o                               o
     ; ; implementa e l m´todo de b i s e c c i ´ n
                                      e                        o
 2   ; ; e n t r e g a ( s o l u c i o n e r r o r data )
     ; ; donde : data = { i a ( i ) b ( i )}
 4   ; ; asume : f ( a0 ) f ( b0)<0
     ( define ( b i s e c c i o n −data f a0 b0 ep d e c s )
 6      ( l e t ( ( f t ( make−f o r m a t e r −round−d e c s d e c s ) )
                    ( data ’ ( ) ) )
 8          ( l e t c i c l o ( ( a a0 ) ( b b0 ) ( k 0 ) )
                ( s e t ! data ( cons ( l i s t k ( f t a ) ( f t b ) )
10                                             data ) )
                ( l e t ( ( s ( / (+ a b ) 2 ) ) )
12                  ( cond [ ( z e r o ? ( f s ) )                  ; caso excepcional
                               ( cons s ( cons 0 ( r e v e r s e data ) ) ) ]
14                           [( < ( abs (− b a ) ) ep ) ; cumple t o l e r a n c i a ?
                               ( cons s ( cons ( f s ) ; e n t r e g a s , f ( s )
16                                         ( r e v e r s e data ) ) ) ] ; y data en orden
                             [( < (∗ ( f a ) ( f s ) ) 0 ) ; f ( a ) f ( s )<0?
18                             ( c i c l o a s (+ k 1 ) ) ]             ; busca en [ a , s ]
                             [ else ( c i c l o s b                     ; busca en [ s , b ]
20                                                     (+ k 1 ) ) ] ) ) ) ) )

     Sugerencia 2.1. Si la funci´n f (x) de nuestro problema no es muy conoci-
                                  o
     da, o demasiado laboriosa para bosquejar “a mano”, se recomienda utilizar
     alguno de los paquetes de software matem´tico vistos en la secci´n 1.4, y
                                                  a                      o
     hacer un an´lisis gr´fico de la funci´n, para determinar el n´mero de ceros
                 a        a                o                      u
     dentro de cierto intervalo, as´ como para determinar los valores cercanos a
                                    ı
     dicho cero(s). Este an´lisis ser´ especialmente importante para el m´todo de
                            a         a                                   e
     Newton-Raphson que veremos en la secci´n 2.4.1.
                                                o

     Ejemplo 2.2.2. Resolvamos ahora la ecuaci´n 3cos( x ) + 2 = 0 con una
                                                o       2
                     −2
     tolerancia de 10 , llamando a la funci´n biseccion-data para a = 1 y
                                           o
     b = 6.
     >( b i s e c c i o n −data (lambda( x)(+ (∗ 3 ( c o s ( / x 2 ) ) ) 2 ) )
                                1 6 . 0.01 6)
´               ´
2.2. METODO DE BISECCION                                            29

(4.5986328125
 0.002701681335155026
 (0 1 6 . 0 )
 (1 3.5 6 . 0 )
 (2 3.5 4 . 7 5 )
 (3 4.125 4 . 7 5 )
 (4 4.4375 4 . 7 5 )
 (5 4.59375 4 . 7 5 )
 (6 4.59375 4.671875)
 (7 4.59375 4.632812)
 (8 4.59375 4.613281)
 (9 4.59375 4.603516))

La figura 2.2 nos permite visualizar el proceso para este ejemplo.




               Figura 2.1: Bisecciones para el ejemplo 2.2.2
30         CAP´         ´               ´
              ITULO 2. METODOS DE SOLUCION DE ECUACIONES

Ejercicio 2.2.1. Encuentre todos los ceros de las siguientes funciones en el
intervalo indicado y para la precisi´n indicada.
                                    o

                  2
  a). f (x) =    πx
                    cos(x   − π ) en [1, 7], con = 0.001
                              4


 b). f (x) = xsenh(x − 2) − 100, en [−4, 8], con = 10−7

Problema 2.2.1. ¿Cu´l es el n´mero m´ximo posible de iteraciones del
                       a        u          a
m´todo de bisecci´n, dado un intervalo [a, b] y un valor para ?
 e               o

Problema 2.2.2. Una vez resuelto el problema 2.2.1, encuentre una funci´no
f (x) as´ como su intervalo [a, b] y asociado, de manera que se encuentre el
        ı
cero justo en el n´mero m´ximo de iteraciones.
                  u        a

Sugerencia 2.2. Explore algunas otras implementaciones del m´todo de bisec-
                                                            e
ci´n. Se recomienda especialmente revisar ejemplos en MATLAB o si-milares.
  o


2.3.      M´todo de aproximaciones sucesivas
           e
    Este m´todo, conocido tambi´n como m´todo de punto fijo o m´todo itera-
           e                     e         e                    e
tivo est´ndar es uno de los m´todos recomendados cuando queremos resolver
        a                    e
una ecuaci´n de la forma x = f (x) y la funci´n f (x) cumple ciertas condi-
           o                                  o
ciones como lo veremos en las siguientes dos secciones.


2.3.1.     Condici´n de Lipschitz
                  o
Definici´n 2.3.1 (Condici´n de Lipschitz). Una funci´n f (x) definida en el
         o                   o                           o
intervalo [a, b] se dice que satisface una condici´n de Lipschitz, si existe una
                                                  o
constante L > 0 tal que

                            |f (x1 ) − f (x2 )| ≤ L |x1 − x2 |                (2.1)

para cualquier par de n´meros x1 , x2 ∈ [a, b].
                       u

   Observamos que cualquier funci´n f (x) donde la expresi´n |f (x11 −x2 | 2 )| se
                                      o                         o     |x
                                                                         )−f (x

pueda simplificar a g(xK,x2 ) , donde K es una constante y el valor de g(x1 , x2 ) se
                      1
pueda hacer arbitrariamente peque˜o para x1 , x2 ∈ [a, b], no puede satisfacer
                                      n
una condici´n de Lipschitz.
           o
´
2.3. METODO DE APROXIMACIONES SUCESIVAS                                           31

    Si f (x) ∈ C 1 [a, b] (es decir, si f (x) existe y es continua) entonces f (x)
satisface tambi´n una condici´n de Lipschitz. Esto se cumple ya que, por el
                e                 o
teorema del valor medio para derivadas existe una c entre x1 y x2 tal que:

                                        f (x1 ) − f (x2 )
                              f (c) =                                          (2.2)
                                            x1 − x2

y entonces, |f (x1 ) − f (x2 )| = |f (c)(x1 − x2 )| ≤ L |x1 − x2 |, para cualesquiera
x1 , x2 ∈ [a, b].



2.3.2.     Iteraci´n y convergencia
                  o

    El m´todo de aproximaciones sucesivas, m´todo iterativo y tambi´n
         e                                       e                       e
conocido como m´todo de punto fijo, es uno de los m´todos m´s sencillos
                   e                                    e       a
e ilustra (a diferencia del m´todo de bisecci´n) el caso cuando no se tiene
                             e               o
garant´ de obtener la soluci´n. Por tal motivo, el tema central aqu´ es el
       ıa                     o                                      ı
concepto de convergencia de una sucesi´n de aproximaciones.
                                      o


Definici´n 2.3.2 (Velocidad de convergencia). Sea {xn }∞ una sucesi´n
         o                                              n=1        o
de aproximaciones que convergen a s, de forma que l´ n→∞ xn = s. Si la
                                                     ım
sucesi´n de errores { n }∞ (donde n = xn − s) satisface
      o                  n=1



                                | n+1 |
                             l´
                              ım     α = K, K > 0                              (2.3)
                            n→∞ | n |



para algunos n´meros fijos α, K, entonces α es el orden de convergencia para
               u
{xn }, y K es la constante asint´tica o factor de convergencia.
                                o


   En base a la definici´n anterior, destacamos los casos para cuando α = 1,
                       o
y α = 2 que corresponden a convergencia lineal, y convergencia cuadr´tica
                                                                      a
respectivamente.
   El algoritmo 2.2 describe el m´todo.
                                 e
32         CAP´         ´               ´
              ITULO 2. METODOS DE SOLUCION DE ECUACIONES

Algoritmo 2.2 M´todo de punto fijo
                     e
Dado: f : funci´n asociada a la ecuaci´n f (x) = x a resolver, x0 : valor inicial
                  o                    o
    de la soluci´n, : tolerancia del error, m: n´mero m´ximo de iteraciones
                  o                             u        a
    permitidas.
Entrega: s: la soluci´n aproximada a la ecuaci´n f (x) = x con un error ≤ ,
                        o                       o
    o bien el mensaje: “sin convergencia en m iteraciones” si la soluci´n no
                                                                          o
    converge en las iteraciones y la precisi´n deseada.
                                            o
     Punto-Fijo(f, x0 , , m)
 2:     if f (x0 ) = x0 then                                 caso excepcional
            return x0
 4:     else
            n←0
 6:         repeat
                xn+1 ← f (xn )
 8:             n←n+1
            until |xn − xn−1 | ≤ ´ n > m
                                  o
10:         if |xn − xn−1 | ≤ then
                return xn
12:         else
                return “sin convergencia en m iteraciones”
14:         end if
        end if
16: end


     Presentamos en el listado 2.3, una implementaci´n b´sica del m´todo.
                                                    o a            e
´
     2.3. METODO DE APROXIMACIONES SUCESIVAS                                                 33

           C´digo Scheme 2.3: Funci´n punto-fijo asociada al algoritmo 2.2
             o                              o
     ; ; implementa e l m´todo de punto f i j o
                                       e
 2   ( define ( punto− f i j o f x0 e ps m)
        ( i f (= (− ( f x0 ) x0 ) 0 )                             ; f ( x0)=x0 ?
 4             x0                                                 ; e n t r e g a x0
               ( l e t c i c l o ( ( k 1 ) ( x ( f x0 ) ) ) ; x1=f ( x0 )
 6                 ( cond
                      ((<= ( abs (− x ( f x ) ) ) ep s ) ; | f ( x)−x|< e ps
 8                      ( f x))                                   ; entrega f (x)
                      ((> k m)                                    ; k> m?
10                      ( s t r i n g −append
                          ” s i n c o n v e r g e n c i a en ” ( number−>s t r i n g m)
12                        ” iteraciones ”))                       ; mensaje
                      ( else                                      ; e oc
14                      ( c i c l o (+ k 1 ) ( f x ) ) ) ) ) ) ) ; x ( k+1)= f [ x ( k ) ]

        Una variante de la funci´n punto-fijo que nos da informaci´n adicional se
                                 o                               o
     presenta en el listado 2.4.
34         CAP´         ´               ´
                   ITULO 2. METODOS DE SOLUCION DE ECUACIONES


        C´digo Scheme 2.4: Funci´n punto-fijo-data asociada al algoritmo 2.2
          o                               o
     ; ; implementa e l m´todo de punto f i j o
                                      e
 2   ; ; e n t r e g a ( ( s o l u c i o n | mensaje ) e r r o r data )
     ; ; donde : data = { i f [ x ( i ) ] }
 4   ( define ( punto−f i j o −data f x0 eps m d e c s )
         ( l e t ( ( f t ( make−f o r m a t e r −round−d e c s d e c s ) )
 6                 ( data ( l i s t ( l i s t 0 x0 ) ) ) )
             ( i f (= (− ( f x0 ) x0 ) 0 )
 8                 ( cons x0 ( cons 0 data ) )
                   ( l e t c i c l o ( ( k 1 ) ( x ( f x0 ) ) )
10                     ( s e t ! data ( cons ( l i s t k ( f t x ) )
                                                        data ) )
12                     ( cond ((<= ( abs (− x ( f x ) ) ) ep s )
                                   ( cons ( f x )
14                                              ( cons (− ( f x ) x )
                                                            ( r e v e r s e data ) ) ) )
16                               ((>= k m)
                                   ( cons
18                                   ( s t r i n g −append
                                       ” s i n c o n v e r g e n c i a en ”
20                                     ( number−>s t r i n g m)
                                       ” i t e r a c i o n e s ”)
22                                   ( cons (− ( f x ) x )
                                                  ( r e v e r s e data ) ) ) )
24                               ( else
                                   ( c i c l o (+ k 1 ) ( f x ) ) ) ) ) ) ) )
´                            ´
2.4. METODOS BASADOS EN INTERPOLACION                                                 35

2.4.       M´todos basados en interpolaci´n
            e                            o
2.4.1.      M´todo de Newton-Raphson
             e
     Entre los m´todos m´s populares en matem´ticas computacionales ten-
                 e         a                         a
emos al creado por Isaac Newton y Joseph Raphson3 .
                                   2

     El atractivo de ´ste m´todo es su rapidez cuadr´tica de convergencia,
                      e      e                            a
como veremos m´s adelante. Una desventaja es que para la aplicaci´n del
                   a                                                       o
m´todo se requiere tener tanto la funci´n f (x) que quiere resolverse, as´ como
   e                                     o                                ı
su derivada.
     Dada una funci´n f (x) definida en un intervalo [a, b], tal que
                     o
           2
f (x) ∈ C [a, b] y existe una s ∈ [a, b] tal que f (s) = 0 entonces si escojemos
un valor inicial de x cercano a s, podemos utilizar un polinomio interpolador
de Taylor para aproximar la funci´n f (x) por:
                                    o

                                    f (x0 )             f (c)
                f (s) = f (x0 ) +           (s − x0 ) +       (s − x0 )2
                                      1!                 2!
Haciendo f (s) = 0 y asumiendo que el t´rmino de segundo grado es muy
                                          e
peque˜o, se tiene:
     n
                                     f (x0 )
                       0 ≈ f (x0 ) +         (s − x0 )
                                       1!
Ahora podemos despejar s para obtener:

                                               f (x0 )
                                    s ≈ x0 −
                                               f (x0 )

    Si lo expresamos en t´rminos del m´todo iterativo univariable, la funci´n
                         e            e                                    o
a iterar es:
                                         f (xn )
                            xn+1 = xn −                                 (2.4)
                                         f (xn )
   El pseudoc´digo para el m´todo de Newton-Raphson est´ndar se presenta
              o             e                          a
en el algoritmo 2.3
   2
     Sir Isaac Newton (1642-1727), reconocido matem´tico, f´
                                                      a      ısico y astr´nomo ingl´s, su
                                                                         o         e
obra maestra Philosophae Naturalis Principia Mathematica es considerada como uno de
los libros cient´
                ıficos m´s importantes de todos los tiempos. Destaca junto con (Gottfried
                       a
Wilhelm von) Leibniz (1646-1716), por su invenci´n independiente del C´lculo.
                                                  o                      a
   3
     Joseph Raphson (1648-1715), matem´tico ingl´s
                                         a         e
36         CAP´         ´               ´
              ITULO 2. METODOS DE SOLUCION DE ECUACIONES

Algoritmo 2.3 M´todo de Newton-Raphson est´ndar
                     e                              a
Dado: f : funci´n asociada a la ecuaci´n f (x) = 0 a resolver, f : derivada de
                   o                     o
    f (x), x0 : aproximaci´n inicial a la soluci´n, : tolerancia del error, y m:
                           o                    o
    n´mero m´ximo de iteraciones
      u          a
Entrega: s: la soluci´n aproximada a la ecuaci´n f (x) = 0, o bien el men-
                        o                          o
    saje “sin soluci´n aceptable en m iteraciones”, o bien “f (xn ) = 0 en la
                      o
    iteraci´n n”
           o
     Newton-Raphson(f, f , x0 , , m)
 2:     n←0
        repeat
 4:         if f (xn ) = 0 then return “f (xn ) = 0 en la iteraci´n n”
                                                                  o
            else
 6:              xn+1 = xn − f (xn )/f (xn )
                 n←n+1
 8:         end if
        until |xn − xn−1 | ≤ ´ n > m
                                o
10:     if |xn − xn−1 | ≤ then return xn
        else return “sin soluci´n aceptable en m iteraciones”
                                  o
12:     end if
    end
´                            ´
     2.4. METODOS BASADOS EN INTERPOLACION                                                 37

        Presentamos a continuaci´n una implementaci´n en Scheme:
                                o                  o

            C´digo Scheme 2.5: Funci´n para el m´todo de Newton-Raphson
              o                                   o             e
     ( define ( newton−raphson f d f x0 eps m)
 2      ( d i s p l a y ‘ ( x ( ,0)= , x0 ) ) ( n e w l i n e )
        ( l e t c i c l o ( ( xp x0 ) ( dfp ( d f x0 ) ) ( k 1 ) )
 4          ( i f (= dfp 0 )
                     ‘ ( l o s i e n t o : l a d e r i v a d a de f en , x0
 6                            e s 0 en l a , k i t e r a c i o n )
                    ( l e t ( ( x (− xp ( / ( f xp ) dfp ) ) ) )
 8                       ( cond
                            ((<= ( abs (− x xp ) ) eps )
10                            ( d i s p l a y ‘ ( x ( , k)= , x d e l t a= , ( abs (− x xp ) ) ) )
                              ( newline )
12                            ‘ ( s o l u c i o n , x en , k i t e r a c i o n e s ) )
                            ((> k m) ‘ ( s i n s o l u c i o n en
14                                                      ,( − k 1 ) i t e r a c i o n e s ) )
                            ( e l s e ( d i s p l a y ‘ ( x ( , k)= , x d e l t a=
16                                                          , ( abs (− x xp ) ) ) )
                                        ( newline )
18                                      ( c i c l o x ( d f x ) (+ k 1 ) ) ) ) ) ) ) )


     Ejercicio 2.4.1. Aplique el m´todo de Newton-Raphson para encontrar una
                                    e
     raiz de la ecuaci´n x3 + x − 2 = 0. Utilice x0 = 2 y = 10−5 . Compruebe la
                      o
     soluci´n encontrada.
           o


     2.4.2.      M´todo de la secante
                  e
        Este m´todo se basa en la utilizaci´n de dos puntos x0 y x1 como apro-
                 e                            o
     xi-maciones iniciales a la soluci´n de la ecuaci´n f (x) = 0, y calcula el tercer
                                      o              o
     punto x2 , resolviendo la siguiente ecuaci´n de la secante, para y = 0 y x2 = x:
                                               o

                                            f (x1 ) − f (x0 )
                            y − f (x1 ) =                     (x − x1 )                 (2.5)
                                                x1 − x0

     para obtener:
                                               (x1 − x0 )f (x1 )
                                  x2 = x1 −
                                               f (x1 ) − f (x0 )
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos
M´etodos num´ericos

Contenu connexe

Tendances

43392462 analisis-matematico-ii-derivacion-de-funciones-de-varias-variables
43392462 analisis-matematico-ii-derivacion-de-funciones-de-varias-variables43392462 analisis-matematico-ii-derivacion-de-funciones-de-varias-variables
43392462 analisis-matematico-ii-derivacion-de-funciones-de-varias-variablesmarcopazo
 
Fractales.minimonograph
Fractales.minimonographFractales.minimonograph
Fractales.minimonographcheliitaa
 
Intr a la matematica discreta
Intr a la matematica discretaIntr a la matematica discreta
Intr a la matematica discretaroyvelarde
 

Tendances (6)

43392462 analisis-matematico-ii-derivacion-de-funciones-de-varias-variables
43392462 analisis-matematico-ii-derivacion-de-funciones-de-varias-variables43392462 analisis-matematico-ii-derivacion-de-funciones-de-varias-variables
43392462 analisis-matematico-ii-derivacion-de-funciones-de-varias-variables
 
Modulo fisica-i1
Modulo fisica-i1Modulo fisica-i1
Modulo fisica-i1
 
Fractales.minimonograph
Fractales.minimonographFractales.minimonograph
Fractales.minimonograph
 
Librotmed
LibrotmedLibrotmed
Librotmed
 
Intr a la matematica discreta
Intr a la matematica discretaIntr a la matematica discreta
Intr a la matematica discreta
 
Introducción a la Informática
Introducción a la InformáticaIntroducción a la Informática
Introducción a la Informática
 

En vedette

La medida y las cifras significativas. Composición vectorial: método gráfico
La medida y las cifras significativas. Composición vectorial: método gráficoLa medida y las cifras significativas. Composición vectorial: método gráfico
La medida y las cifras significativas. Composición vectorial: método gráficoYuri Milachay
 
Todo sobre las cifras significativas
Todo sobre las cifras significativasTodo sobre las cifras significativas
Todo sobre las cifras significativasNicolas Torres Brauer
 
Cifras significativas
Cifras significativasCifras significativas
Cifras significativasJulio Rivera
 
Cifras significativas y Redondeo de numeros
Cifras significativas y Redondeo de numerosCifras significativas y Redondeo de numeros
Cifras significativas y Redondeo de numerosWilmer Fabian N
 
Cifras Significativas
Cifras SignificativasCifras Significativas
Cifras SignificativasMiriam Gil
 
Átomos, moléculas y iones
Átomos, moléculas y iones Átomos, moléculas y iones
Átomos, moléculas y iones Ângel Noguez
 
Notación cientif,cifras significativas y redondeo
Notación cientif,cifras significativas y redondeoNotación cientif,cifras significativas y redondeo
Notación cientif,cifras significativas y redondeolinjohnna
 
Libro de fisica basica
Libro de fisica basicaLibro de fisica basica
Libro de fisica basicaWritePen
 

En vedette (12)

La medida y las cifras significativas. Composición vectorial: método gráfico
La medida y las cifras significativas. Composición vectorial: método gráficoLa medida y las cifras significativas. Composición vectorial: método gráfico
La medida y las cifras significativas. Composición vectorial: método gráfico
 
Todo sobre las cifras significativas
Todo sobre las cifras significativasTodo sobre las cifras significativas
Todo sobre las cifras significativas
 
Cifras significativas
Cifras significativasCifras significativas
Cifras significativas
 
Cifras significativas
Cifras significativasCifras significativas
Cifras significativas
 
Cifras significativas
Cifras significativasCifras significativas
Cifras significativas
 
1.2 aproximacion numerica
1.2 aproximacion numerica1.2 aproximacion numerica
1.2 aproximacion numerica
 
Cifras significativas y Redondeo de numeros
Cifras significativas y Redondeo de numerosCifras significativas y Redondeo de numeros
Cifras significativas y Redondeo de numeros
 
Cifras Significativas
Cifras SignificativasCifras Significativas
Cifras Significativas
 
Átomos, moléculas y iones
Átomos, moléculas y iones Átomos, moléculas y iones
Átomos, moléculas y iones
 
Notación cientif,cifras significativas y redondeo
Notación cientif,cifras significativas y redondeoNotación cientif,cifras significativas y redondeo
Notación cientif,cifras significativas y redondeo
 
Libro de fisica basica
Libro de fisica basicaLibro de fisica basica
Libro de fisica basica
 
41837 1
41837 141837 1
41837 1
 

Similaire à M´etodos num´ericos (20)

Tutorial de maxima
Tutorial de maximaTutorial de maxima
Tutorial de maxima
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
Matematicas
MatematicasMatematicas
Matematicas
 
Guia de mate
Guia de mateGuia de mate
Guia de mate
 
Heuristicos Para Vrp
Heuristicos Para VrpHeuristicos Para Vrp
Heuristicos Para Vrp
 
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosdHeuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
 
Informatica3
Informatica3Informatica3
Informatica3
 
Introduccion a la informatica
Introduccion a  la informaticaIntroduccion a  la informatica
Introduccion a la informatica
 
Librocompleto
LibrocompletoLibrocompleto
Librocompleto
 
Librocompleto
LibrocompletoLibrocompleto
Librocompleto
 
Inforrmatica pdf 1
Inforrmatica pdf 1Inforrmatica pdf 1
Inforrmatica pdf 1
 
Librocompleto
LibrocompletoLibrocompleto
Librocompleto
 
Librocompleto
LibrocompletoLibrocompleto
Librocompleto
 
Librocompleto
LibrocompletoLibrocompleto
Librocompleto
 
Teoria de la medida
Teoria de la medidaTeoria de la medida
Teoria de la medida
 
Dr Geo
Dr GeoDr Geo
Dr Geo
 
Manual dr geo
Manual dr geoManual dr geo
Manual dr geo
 
Guia de matematicas
Guia de matematicasGuia de matematicas
Guia de matematicas
 
Algebra[ufro]
Algebra[ufro]Algebra[ufro]
Algebra[ufro]
 

M´etodos num´ericos

  • 1. ´ ´ METODOS NUMERICOS Una exploraci´n basada en Scheme o Enrique Comer Barrag´n a 24 de marzo, 2009 → Edici´n Preliminar 0.23 ← o Instituto Tecnol´gico de Tijuana o
  • 2. ii c Licencia de uso: Esta obra se publica bajo una licencia de Creative Commons (ver: http://creativecommons.org/licences/by-nc-nd/2.5/). B´si- a camente, usted puede distribuir y comunicar p´blicamente la obra, siempre u que se cumpla con (1) dar cr´dito al autor de la obra, (2) no la utilice para e fines comerciales y (3) no la altere, transforme o genere una obra derivada de ella. Adem´s, al utilizar o distribuir la obra, debe especificar claramente los a t´rminos de esta licencia. Estas condiciones pueden modificarse con permiso e escrito del autor. Edici´n preliminar 0.23 o 24 de marzo, 2009
  • 3. ´ Indice general Prefacio VII 1. Teor´ de errores ıa 1 1.1. Importancia de los m´todos num´ricos e e . . . . . . . . . . . . . 1 1.2. Conceptos b´sicos . . . . . . . . . . . . a . . . . . . . . . . . . . 3 1.2.1. Cifras significativas . . . . . . . . . . . . . . . . . . . . 3 1.2.2. Precisi´n y exactitud . . . . . . o . . . . . . . . . . . . . 4 1.2.3. Incertidumbre y sesgo . . . . . . . . . . . . . . . . . . 8 1.3. Tipos de errores . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.1. Error absoluto y relativo . . . . . . . . . . . . . . . . . 9 1.3.2. Error por redondeo . . . . . . . . . . . . . . . . . . . . 11 1.3.3. Error por truncamiento . . . . . . . . . . . . . . . . . . 13 1.3.4. Error num´rico total . . . . . . e . . . . . . . . . . . . . 17 1.4. Software de c´mputo num´rico . . . . . o e . . . . . . . . . . . . . 17 1.4.1. Software de acceso libre . . . . . . . . . . . . . . . . . 18 1.4.2. Software comercial . . . . . . . . . . . . . . . . . . . . 19 1.4.3. Bibliotecas de funciones . . . . . . . . . . . . . . . . . 19 1.5. M´todos iterativos . . . . . . . . . . . e . . . . . . . . . . . . . 20 2. M´todos de soluci´n de ecuaciones e o 25 2.1. M´todos basados en intervalos . . . . e . . . . . . . . . . . . . . 25 2.2. M´todo de bisecci´n . . . . . . . . . e o . . . . . . . . . . . . . . 26 2.3. M´todo de aproximaciones sucesivas . e . . . . . . . . . . . . . . 30 2.3.1. Condici´n de Lipschitz . . . . o . . . . . . . . . . . . . . 30 2.3.2. Iteraci´n y convergencia . . . o . . . . . . . . . . . . . . 31 2.4. M´todos basados en interpolaci´n . . e o . . . . . . . . . . . . . . 35 2.4.1. M´todo de Newton-Raphson . e . . . . . . . . . . . . . . 35 2.4.2. M´todo de la secante . . . . . e . . . . . . . . . . . . . . 37 iii
  • 4. iv ´ INDICE GENERAL 2.4.3. M´todo de Aitken . . . . . . . . . . . . . . . . . . . . . 38 e 2.5. M´todo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . 39 e 2.6. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3. M´todos para sistemas de ecuaciones e 45 3.1. M´todos iterativos . . . . . . . . . . e . . . . . . . . . . . . . . 45 3.1.1. M´todo de Jacobi . . . . . . . e . . . . . . . . . . . . . . 45 3.1.2. M´todo de Gauss-Seidel . . . e . . . . . . . . . . . . . . 46 3.2. Sistemas de ecuaciones no lineales . . . . . . . . . . . . . . . . 47 3.2.1. M´todo iterativo secuencial . e . . . . . . . . . . . . . . 47 3.3. Iteraci´n y convergencia . . . . . . . o . . . . . . . . . . . . . . 49 3.3.1. M´todo de Newton-Raphson . e . . . . . . . . . . . . . . 49 3.4. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4. Diferenciaci´n e integraci´n num´rica o o e 53 4.1. Diferenciaci´n num´rica . . . . . . . . . o e . . . . . . . . . . . . 53 4.1.1. F´rmulas de diferencia . . . . . . o . . . . . . . . . . . . 56 4.1.2. F´rmula de tres puntos . . . . . . o . . . . . . . . . . . . 56 4.1.3. F´rmula de cinco puntos . . . . . o . . . . . . . . . . . . 57 4.2. Integraci´n num´rica . . . . . . . . . . . o e . . . . . . . . . . . . 58 4.2.1. M´todo del trapecio . . . . . . . e . . . . . . . . . . . . 58 4.2.2. M´todos de Simpson . . . . . . . e . . . . . . . . . . . . 59 4.2.3. Integraci´n de Romberg . . . . . o . . . . . . . . . . . . 61 4.2.4. M´todo de cuadratura gaussiana e . . . . . . . . . . . . 64 4.3. Integraci´n m´ltiple . . . . . . . . . . . o u . . . . . . . . . . . . 66 4.4. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5. Soluci´n de ecuaciones diferenciales o 69 5.1. M´todos de un paso . . . . . . . . . . . . . . e . . . . . . . . . . 69 5.1.1. M´todo de Euler y formas mejorada . e . . . . . . . . . . 69 5.1.2. M´todos de Runge-Kutta . . . . . . . e . . . . . . . . . . 72 5.2. M´todos de pasos m´ltiples . . . . . . . . . e u . . . . . . . . . . 73 5.2.1. M´todo de Adams-Bashforth . . . . . e . . . . . . . . . . 74 5.2.2. M´todo de Adams-Moulton . . . . . e . . . . . . . . . . 76 5.3. Sistemas de ecuaciones . . . . . . . . . . . . . . . . . . . . . . 76 5.4. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Bibliograf´ ıa 79
  • 5. ´ INDICE GENERAL v ´ Indice de algoritmos 83 ´ Indice de c´digo Scheme o 85 ´ Indice de figuras 87 ´ Indice de tablas 89 ´ Indice alfab´tico e 91
  • 6. vi ´ INDICE GENERAL
  • 7. Prefacio The purpose of computing is insight, not numbers. R. W. Hamming. Autor de Numerical Methods for Scientist and Engineers El contenido de esta obra se conforma de acuerdo al curso de M´todos e Num´ricos en el plan de estudios actual de Ingenier´ en Sistemas Computa- e ıa cionales del Instituto Tecnol´gico de Tijuana. Se hace ´nfasis tanto en los as- o e pectos matem´ticos conceptuales como algor´ a ıtmicos. Para la implementaci´n o de estos ultimos se utiliza el lenguaje de programaci´n Scheme [25]. ´ o La edici´n de este libro se realiz´ con TeXnicCenter (ambiente para La- o o TeX/MiKTeX) y software auxiliar como WinGCLC y Asymptote. Agradezco a la Academia de Sistemas y Computaci´n por la revisi´n y o o observaciones para mejorar esta obra, as´ como a la DGEST por el per´ ı ıodo sab´tico 2007-2008, gracias al cual se ha realizado este proyecto. a ECB comer@cemati.com vii
  • 8. viii PREFACIO
  • 9. Cap´ ıtulo 1 Teor´ de errores ıa 1.1. Importancia de los m´todos num´ricos e e La simulaci´n y el modelado o matem´tico, mover´n el siglo a a XXI, as´ como el vapor movi´ el ı o siglo XIX. William H. Press. Autor de Numerical Recipes Gran parte de la tecnolog´ actual depende de la soluci´n de modelos ıa o matem´ticos, desde la programaci´n empotrada de una calculadora cient´ a o ıfi- ca y el c´lculo estructural de un edificio multinivel con estructuras de acero, a hasta el dise˜o y simulaci´n de aeronaves y vuelos espaciales. La soluci´n n o o de un modelo matem´tico relativamente sencillo puede obtenerse de manera a anal´ıtica. Sin embargo, para la gran mayor´ de los modelos matem´ticos del ıa a mundo real, las soluciones anal´ ıticas pueden no existir o ser extremadamente complejas, por lo cual se recurre a m´todos num´ricos que aproximen las e e soluciones dentro de ciertos m´rgenes de tolerancia. a El an´lisis de los m´todos num´ricos nos permite realizar estimaciones a e e tanto de la eficiencia o complejidad de los algoritmos asociados, as´ como de ı la confiabilidad de los resultados num´ricos obtenidos durante su aplicaci´n. e o Entre las disciplinas que hacen uso intensivo de los m´todos num´ricos e e podemos mencionar: An´lisis Estad´ a ıstico 1
  • 10. 2 CAP´ ITULO 1. TEOR´ DE ERRORES IA Matem´ticas financieras a An´lisis de elemento finito a An´lisis estructural a Qu´ ımica computacional Investigaci´n de operaciones o Electromagnetismo computacional Mec´nica computacional a Procesamiento de im´genes a Procesamiento de se˜ales n Simulaci´n por computadora o Computaci´n multi-escala o Metereolog´ ıa Debido a la gran variedad de aplicaciones y especialidades atendidas por los m´todos num´ricos, podemos encontrar en la literatura t´rminos asociados e e e como los siguientes: Matem´ticas num´ricas a e Algoritmos num´ricos e Computaci´n cient´ o ıfica An´lisis num´rico a e Matem´ticas algor´ a ıtmicas Matem´ticas computacionales a Teor´ de la aproximaci´n1 ıa o 1 Esta disciplina matem´tica, forma la base te´rica de gran parte de los m´todos num´ri- a o e e cos
  • 11. ´ 1.2. CONCEPTOS BASICOS 3 1.2. Conceptos b´sicos a El estudio y aplicaci´n de los m´todos num´ricos se basa en forma esencial o e e en la representaci´n y manipulaci´n de los n´meros reales en una computa- o o u dora digital. Ya que la memoria de una computadora es finita, ´sta s´lo puede e o representar n´meros racionales. La estrategia para hacer funcional y eficiente u la aproximaci´n de los n´meros reales por n´meros de m´quina en binario se o u u a presenta en el est´ndar IEEE 754 [13] a Los t´rminos asociados en esta secci´n incluyen: e o Confiabilidad Estabilidad y convergencia Propagaci´n del error o An´lisis asint´tico a o Notaci´n cient´ o ıfica Forma decimal normalizada N´meros de m´quina decimales con k d´ u a ıgitos N´meros de punto flotante (Est´ndar IEEE 754) u a 1.2.1. Cifras significativas La noci´n intuitiva de cifras significativas de un n´mero est´ directamente o u a relacionada con la precisi´n de los ins-trumentos o procesos que lo generan. o Definici´n 1.2.1 (Cifras significativas). El n´mero de cifras significati- o u vas de un n´mero x corresponde al n´mero de cifras en la mantisa de su u u representaci´n en notaci´n cient´ o o ıfica. Ejemplo 1.2.1. Ya que 0.00123 = 1.23·10−3 , decimos que 0.00123 tiene tres cifras significativas. Ejemplo 1.2.2. El n´mero 3210 = 3.210 · 103 posee cuatro cifras significa- u tivas.
  • 12. 4 CAP´ ITULO 1. TEOR´ DE ERRORES IA Note que en el ejemplo anterior, hemos mantenido el 0 de las unidades. Si el origen del n´mero no garantizara el valor de sus unidades, entonces u deber´ıamos escribir directamente 3.21 · 103 lo que indicar´ que contamos con ıa s´lo tres cifras significativas. o Definici´n 1.2.2 (Aproximaci´n con t cifras significativas). Sean xv y xc los o o valores verdadero y calculado de una cierta cantidad, con xv = xc . Decimos que xc aproxima a xv con t cifras significativas si t es el mayor entero no negativo para el cual xv − xc ≤ 5 × 10−t (1.1) xv Para el caso xv = xc , xc aproxima xv con las cifras significativas propias. Como se observa en [8, p´g. 53] esta definici´n dada para decimales puede a o 2 extenderse para cualquier base dada. Ejemplo 1.2.3. El n´mero 3.1416 aproxima a 3.1415926 en 6 cifras signi- u ficativas, ya que |3.1415926 − 3.1416| = 2.3554932 × 10−6 ≤ 5 × 10−6 |3.1415926| Como se observa, no es necesario que coincidan los d´ ıgitos de las cifras sig- nificativas. Ejercicio 1.2.1. Calcular el n´mero de cifras significativas con que 9.99 u aproxima a 10 Ejercicio 1.2.2. Calcular el n´mero de cifras significativas con que 1005 u aproxima a 1000 1.2.2. Precisi´n y exactitud o El estudio e implementaci´n en computadora de los m´todos num´ricos o e e requiere de un cuidado especial en el manejo de los n´meros, de forma que los u 2 Es importante notar que en la desigualdad (1.1) se utiliza algunas veces < como en el caso de [5, p´g. 21]. Se recomienda resolver el ejercicio 1.2.2, para ambas definiciones y a reflexionar sobre sus respuestas.
  • 13. ´ 1.2. CONCEPTOS BASICOS 5 resultados que entregue un programa sean confiables. Para hablar de dicha confiabilidad3 distinguiremos entre los t´rminos precisi´n y exactitud. e o Aunque en las aplicaciones es necesario conocer la precisi´n de los datos o de entrada (a un algoritmo), que pueden depender directamente de los ins- trumentos utilizados4 , nos concentraremos aqu´ en la precisi´n de la repre- ı o sentaci´n de un n´mero en la memoria de la computadora, lo cual est´ rela- o u a cionado con la siguiente representaci´n de n´meros reales. o u Definici´n 1.2.3 (n´meros de punto flotante). De-cimos que un n´mero x o u u est´ representado como n´mero de punto flotante si se expresa como a u x = ±d0 .d1 d2 · · · dp−1 × β e (1.2) donde p es el n´mero de d´ u ıgitos en la mantisa o significando, β es la base y e es el exponente entero. Adem´s, cuando d0 = 0 decimos que est´ en su forma a a normalizada . Ejemplo 1.2.4. El n´mero 314.159 en representaci´n de punto flotante es u o 0.314159 × 10 y como punto flotante normalizado 3.14159 × 102 . 3 Ya que las computadoras digitales trabajan (en su mayor´ con el sis- ıa) tema binario, el est´ndar IEEE 754 especifica tanto la representaci´n como a o 5 el manejo de los n´meros binarios de punto flotante. u Definici´n 1.2.4 (n´meros binarios de punto flotante normalizado). De- o u cimos que un n´mero x est´ representado como n´mero binario de punto u a u flotante normalizado si se expresa como x = (−1)s (1 + f )2e (1.3) donde s es el signo, f es la fracci´n en binario y e el exponente. o La precisi´n de un n´mero est´ directamente relacionada con el n´mero o u a u de d´ ıgitos en su representaci´n de punto flotante. o 3 La revista Reliable Computing se especializa en m´todos basados en intervalos (entre e otros) que garantizan y acotan todos sus resultados. 4 El Peque˜o Larousse Ilustrado, 2002 define Precisi´n (de un instrumento de medida) n o como la cualidad global de un instrumento que le permite dar indicaciones que coinciden, con mucha aproximaci´n, con el valor verdadero de la magnitud que debe medirse. o 5 Para informaci´n adicional sobre este est´ndar puede consultar el excelente art´ o a ıculo de Goldberg en [10].
  • 14. 6 CAP´ ITULO 1. TEOR´ DE ERRORES IA Definici´n 1.2.5 (precisi´n en formatos IEEE 754). En base a la ecuaci´n o o o (1.3) el est´ndar IEEE 754 define los siguientes cuatro tipos de formatos6 a (ver tabla (1.1))que determinan la precisi´n de un n´mero de punto flotante o u (adaptaci´n de [10, pp. 173-174]): o Tabla 1.1: Precisi´n en Formatos IEEE 754 o par´metro a Formatos sencillo s. extendido doble d. extendido emax +127 ≥ 1023 +1023 > 16383 emin −126 ≤ −1022 −1022 ≤ −16382 e bits 8 ≤ 11 11 ≥ 15 f bits 23 31 52 ≥ 63 total bits 32 ≥ 43 64 ≥ 79 Ya que 2−23 ≈ 1.19 · 10−7 y 2−52 ≈ 2.22 · 10−16 , el formato sencillo tiene una fracci´n con precisi´n de 7 decimales y el formato doble, una precisi´n o o o de 15 decimales. Las operaciones con n´meros reales tanto en MATLAB7 como en DrScheme8 u se realizan en doble precisi´n. o Ejemplo 1.2.5. Utilizando la funci´n en Scheme9 , real->ieee-doble, en la o figura (1.1), podemos obtener la representaci´n en formato de doble precisi´n o o mediante para los n´meros 0.3 y 64 u 6 Los formatos extendidos en la tabla 1.1, ofrecen flexibilidad de dise˜o para los distintos n fabricantes de computadoras. Por ejemplo, para el formato doble extendido, las computa- doras SPARC y PowerPC ofrecen los siguientes campos (en bits): e = 15, f = 112. En cambio INTEL ofrece: e = 15 y f = 63 con un bit extra para manejo expl´ ıcito del d´ıgito m´s significativo de la fracci´n. a o 7 MATLAB (MATrix LABoratory) es uno de los sistemas de software num´rico m´s ex- e a itosos en la actualidad. Para una introducci´n sobresaliente, orientada a m´todos num´ri- o e e cos, se le invita a consultar el libro de Cleve Moler [18] 8 Una de las implementaciones m´s completas del lenguaje de programaci´n Scheme, el a o cual emplearemos a lo largo del texto para ilustrar e implementar los m´todos num´ricos. e e Para una excelente introducci´n se recomienda el tutorial de Dorai Sitaram [25] o 9 Esta funci´n as´ como el resto de las utilizadas en este libro, podr´n ser obtenidas o ı a (eventualmente) visitando http://cemati.com/math/areas/scheme/, o bien el sitio de dis- tribuci´n PLaneT Package Repository en [21]. Se recomienda instalar PLT-Scheme versi´n o o 4.1 (o superior) disponible en http://www.plt-scheme.org, y por el momento, sencillamente copiar el archivo slab.ss (que complementa este libro) al folder PLT de su instalaci´n. o
  • 15. ´ 1.2. CONCEPTOS BASICOS 7 > ( r e a l −>i e e e −d o b l e 0 . 3 ) (”0” ”01111111101” ”0011001100110011001100110011001100110011001100110011”) > ( r e a l −>i e e e −d o b l e 6 4 ) (”0” ”10000000101” ”0000000000000000000000000000000000000000000000000000”) > Ya que (0.3)10 = (0.10011)2 nunca podr´ representarse de forma exacta a en un sistema binario finito. Como se observa en el ejemplo 1.2.5 hay n´meros reales (de hecho una u cantidad infinita) que no podr´n ser representados en forma exacta en un a sistema num´rico de base fija. Note adem´s que el exponente e en el formato e a IEEE 754 obedece (en el caso de doble precisi´n) a la ecuaci´n e = e − 1023. o o Ejercicio 1.2.3. Confirme los resultados del ejemplo 1.2.5, utilizando la ecuacion 1.3. Ejercicio 1.2.4. Determine las representaciones en binario de punto flotante normalizado (en formato de doble precisi´n) de los siguientes n´meros en base o u 10 a) −0.1 b) 1024 c) 1.1920928955078125e − 007 Problema 1.2.1. Ya que la recta de los flotantes no “cubre” la recta real, calcular la distancia que existe entre los siguientes n´meros reales y sus dos u 10 n´meros flotantes vecinos bajo el formato de doble precisi´n del est´ndar u o a IEEE 754: a) 2008.09 · 1077 b) 64.3 c) −444.7 · 10−27 10 Esto ser´ equivalente a encontrar para un n´mero real x, funciones piso x y techo ıa u x pero en el edificio de los n´meros flotantes. u
  • 16. 8 CAP´ ITULO 1. TEOR´ DE ERRORES IA Problema 1.2.2. Generalice el resultado del problema 1.2.1 y descubra una expresi´n o modelo matem´tico para determinar la distancia entre n´meros o a u k k+1 flotantes consecutivos en intervalos de la forma [2 , 2 ], donde k es un entero en el rango permitido. En contraste con el concepto de precisi´n que se asocia a la representaci´n o o de un n´mero en particular (p. ej. bajo el formato de doble precisi´n del u o est´ndar IEEE 754), la exactitud de un n´mero hace referencia a una cantidad a u objetivo, y busca el m´ximo acercamiento posible a dicho objetivo11 , en el a sentido de la definici´n 1.2.2. o Obtener resultados rigurosos y confiables, con la precisi´n y exactitud ade- o cuadas para cada aplicaci´n es uno de los prop´sitos principales del dise˜o, o o n an´lisis e implementaci´n de los m´todos num´ricos. a o e e Conceptos como convergencia y acotaci´n del error mediante el an´lisis o a asint´tico, son claves y se considerar´n en diferentes partes de nuestro texto. o a C´digo Scheme 1.1: Funci´n real->ieee-doble o o ; r e a l a i e e e de 64− b i t 2 ; numero r e a l −> l i s t a de s t r i n g s ; entrada : r 4 ; salida : ( s e ’ f ) ; donde : s c o n t i e n e e l b i t d e l s i g n o 6 ; : e ’ t a l que e=e ’ −1023 , r e p r e s e n t a e l exponente ; : f contiene la fraccion 8 ( define ( r e a l −>i e e e −d o b l e r ) ( i e e e 8 −>i e e e −d o b l e 10 (map f i l l −byte (map (lambda( n ) ( number−>s t r i n g n 2 ) ) 12 ( bytes −> l i s t ( r e a l −>f l o a t i n g −p o i n t −b y t e s r 8 #t ) ) ) ) ) ) 1.2.3. Incertidumbre y sesgo En el an´lisis de datos num´ricos generalmente podemos tener errores que a e tienen que ver con la falta ya sea de precisi´n o de exactitud. o 11 Peque˜o Larousse Ilustrado: exactitud : Cualidad de ser medido, calculado o expresado n con todo rigor: hora exacta.
  • 17. 1.3. TIPOS DE ERRORES 9 Definici´n 1.2.6 (incertidumbre y sesgo). Llamamos incertidumbre o impre- o cisi´n a la falta de precisi´n, y sesgo o inexactitud, a la falta sistem´tica de o o a exactitud, ya sea por debajo o bien por arriba de la cantidad exacta. El manejo de la incertidumbre o imprecisi´n puede realizarse mediante o distribuciones de probabilidad, en tanto que el manejo de la inexactitud, mediante rangos o intervalos. Ejemplo 1.2.6. Supongamos que un profesor debe iniciar siempre sus clases a las 7 : 00 am. Si existe incertidumbre, podr´ iniciar con una distribuci´n ıa o normal con media de 7 : 05 y desviaci´n est´ndar de 1 minuto, lo cual indica o a que el 99.7 % de las veces iniciar´ en el intervalo [7 : 02, 7 : 08]. Por otro ıa lado, si existe (solamente) sesgo, entonces empezar´ sistem´ticamente (por ıa a ejemplo) a las 7 : 07. Ejemplo 1.2.7. Si especificamos que el valor de una resistencia el´ctrica es e de 100 ± 5 % Ω, estamos indicando que su valor real debe estar en el intervalo [95, 105]. Existe actualmente una nueva generaci´n de m´todos num´ricos basados o e e en intervalos, rect´ngulos, cajas e hipercajas (para espacios mayores que 3D), a cuyo prop´sito es obtener soluciones num´ricas precisas y exactas. Para may- o e or informaci´n puede consultar el texto de Aberth [2] y el curso de Warwick o Tucker en [27]. 1.3. Tipos de errores En esta secci´n veremos los tipos esenciales de errores presentes (en mayor o o menor grado) en la aplicaci´n de los m´todos num´ricos. Adem´s de estos o e e a errores, podemos considerar: el error humano, observaciones inexactas pro- pios del equipo experimental y errores de modelado. Ver el texto de Friedman y Kolman [8, pp. 54-55] para ejemplos. 1.3.1. Error absoluto y relativo Definici´n 1.3.1 (Error absoluto y relativo). Sea xv un valor num´rico o e verdadero y sea xc el valor calculado que aproxima el verdadero, entonces definimos al error er(xc ) y al error relativo rel(xc ), as´ como sus correspon- ı dientes en valores absolutos, como sigue:
  • 18. 10 CAP´ ITULO 1. TEOR´ DE ERRORES IA er(xc ) = xv − xc (1.4) era (xc ) = |xv − xc | (1.5) xv − xc rel(xc ) = (1.6) xv xv − xc rela (xc ) = (1.7) xv Asumiendo claro, que en las ecuaciones (1.6) y (1.7) se cumple xv = 0. Ejemplo 1.3.1. Calculemos los errores en la definici´n (1.3.1) para el caso de √ o aproximar el valor de 11 con 3.31. Consideraremos que el valor verdadero de √ 11 est´ redondeado12 a siete decimales, es decir xv = 3.3166248, entonces: a er(3.31) = 3.3166248 − 3.31 = 0.0066248 era (3.31) = |0.0066248| = 0.0066248 3.3166248 − 3.31 rel(3.31) = 3.3166248 = 0.0019975 rela (3.31) = |0.0019975| = 0.0019975 Los errores relativos tambi´n pueden ser expresados en %. En nuestro caso, e rel(3.31) ≈ 0.20 %. Ejercicio 1.3.1. Calcule los cuatro errores de la definici´n (1.3.1) para el ca- o so de aproximar el valor verdadero de π/2 con 11/7. Para iniciar sus c´lculos, a favor de utilizar redondeo a siete decimales. Problema 1.3.1. Extienda la definici´n (1.3.1) especificando c´mo manejar o o el caso xv = 0. 12 La operaci´n de redondeo aqu´ es distinta a la que veremos en la secci´n 1.3.2 o ı o
  • 19. 1.3. TIPOS DE ERRORES 11 1.3.2. Error por redondeo A diferencia del error “externo” que provocamos cuando redondeamos a cierto n´mero de decimales (p. ej. 9.9 a 10), el error por redondeo que interesa u en c´lculo num´rico es el que ocurre en la computadora o calculadora debido a e a las limitaciones propias de la representaci´n del n´mero (digamos en el o u sistema de punto flotante de precisi´n sencilla o de doble precisi´n en el o o est´ndar IEEE 754) a Definici´n 1.3.2 (Error por redondeo). Dado un n´mero real x y un sistema o u de representaci´n de punto flotante que “almacena” x como f l(x), el error o por redondeo es erf l (x) = x − f l(x) (1.8) El error por redondeo acumulado erf lops (x, y) es el que resulta despu´s de e realizar una serie de operaciones aritm´ticas de punto flotante (o flops13 ), e donde cada operaci´n contribuye su ”cuota” de error por redondeo. Estas o operaciones aritm´ticas podemos definirlas como: e x⊕y = f l(f l(x) + f l(y)) x y = f l(f l(x) − f l(y)) (1.9) x⊗y = f l(f l(x) × f l(y)) x y = f l(f l(x) / f l(y)) Para calcular erf lops (x, y) es necesario realizar en secuencia cada una de las flops y en cada etapa (como lo indican las ecuaciones en (1.9)) calcular el error por redondeo resultante. Ejemplo 1.3.2 (Moler [17]). Calculemos los resultados de la siguiente se- cuencia: a = 4/3 b=a−1 c=b+b+b e=1−c Una implementaci´n en Scheme resulta en el c´digo y su ejecuci´n indicado o o o en la figura 1.1. 13 flops: (del ingl´s) floating point operations. Algunos sistemas (como MATLAB) tienen e la capacidad de contar las flops realizadas durante una serie de c´lculos. a
  • 20. 12 CAP´ ITULO 1. TEOR´ DE ERRORES IA Figura 1.1: Ejemplo de error por redondeo C´digo o =⇒ Resultado (define a (/ 4. 3)) {a=1.3333333333333333} (define b (- a 1)) {b= 0.33333333333333326} (define c (+ b b b)) {c= 0.9999999999999998} (define e (- 1 c)) {e=2.220446049250313e-016} e 2.220446049250313e-016 Note que la primera linea del c´digo anterior utiliza (define a (/ 4. 3)) para o indicar (con el punto) que 4 es un n´mero real, simplemente quitando el punto u 14 obtenemos el resultado indicado en la figura 1.2, donde se ha eliminado el error, debido a que en el lenguaje Scheme, las operaciones aritm´ticas con e enteros y racionales son exactas. Hay dos errores de redondeo especiales: error de underflow (o bajoflujo,) cuando x(= 0) es m´s peque˜o que el menor (en magnitud ) de los n´meros a n u de punto flotante disponibles y el sistema lo representa como cero (o bien genera una excepci´n durante el c´lculo). o a Por otra parte, se genera un error de overflow (o sobreflujo,) cuando x excede el m´ximo (en magnitud) de los n´meros representables como punto a u flotante y el sistema lo representa como +inf o -inf seg´n sea el caso. u Ejercicio 1.3.2. Explore y descubra cu´les son los n´meros que generan a u underflow o bien overflow bajo diferentes sistemas (p. ej. en MATLAB y PLT Scheme). Para medir el error por redondeo utilizamos ya sea el error relativo o bien las ulps15 . En general (como lo indica Goldberg en [10]) si el n´mero de punto u 14 Los resultados entre llaves, indican que no hay resultado en pantalla; s´lo se actualiza o la tabla de asociaciones entre variables y valores. 15 ulps: units of the last place, unidades de la ultima posici´n. ´ o
  • 21. 1.3. TIPOS DE ERRORES 13 Figura 1.2: Ejemplo de eliminaci´n del error por redondeo, al utilizar n´meros o u racionales C´digo o =⇒ Resultado (define a (/ 4 3)) {a = 1 1 } 3 (define b (- a 1)) {b = 1 } 3 (define c (+ b b b)) {c = 1} (define e (- 1 c)) {e = 0} e 0 flotante d0 .d1 · · · dp−1 ×β e se utiliza para representar x, entonces se tendr´ un a error en ulps de: erf l (x) = |d0 .d1 · · · dp−1 − (x/β e )| β p−1 (1.10) Ejercicio 1.3.3. Utilizando la ecuaci´n (1.10) calcule el error por redondeo o en ulps para el caso de aproximar 0.0123456 con 1.23 × 10−2 . Proyecto 1.1. Dise˜e e implemente un programa en Scheme (o en el lenguaje n de su preferencia) que ofrezca la funcionalidad de definir un sistema de punto flotante parametrizado, y permita realizar experimentos y c´lculo de errores, a en secuencias de operaciones aritm´ticas. e 1.3.3. Error por truncamiento De forma similar al caso del error por redondeo, hay que distinguir entre el error “externo” que provocamos cuando truncamos un n´mero a cierta u cantidad de decimales (p. ej. 9.99 a 9.9) y el error de truncamiento que interesa fundamentalmente en el an´lisis num´rico. Este ultimo tiene que ver con la a e ´ famosa serie de Taylor16 y la propiedad de que toda funci´n anal´ o ıtica puede ser aproximada mediante polinomios. 16 Brook Taylor (1685-1731). Analista, ge´metra y fil´sofo ingl´s. Public´ libros de pers- o o e o pectiva y diferencias finitas.
  • 22. 14 CAP´ ITULO 1. TEOR´ DE ERRORES IA Teorema 1.3.1 (Teorema de Taylor). Sea f (x) una funci´n en los reales o definida en el intervalo [a, b] y que satisface 1. f (x) ∈ C n [a, b] 2. f n+1 (x) existe para x ∈ (a, b) Entonces, para cualesquier x0 , x en [a, b], n f (k) (x0 ) f (x) = (x − x0 )k + Rn (x) (1.11) k=0 k! (n+1) donde Rn (x) = f (n+1)!x ) (x − x0 )n+1 (para cx entre x0 y x inclusive) se de- (c nomina residuo y a la sumatoria llamamos polinomio de Taylor17 de orden n, denotado por Pn (x). Cuando fijamos x0 , la ecuaci´n (1.11) se denomina o expansi´n de Taylor de orden n de f (x) alrededor de x0 . Adem´s si hacemos o a 18 h = x − x0 podemos expresar el orden de crecimiento del residuo como Rn (x) = O(hn+1 ) 3 Demostraci´n. (Adaptada de Banach [3] pp. 114-116) Consideremos la ecuaci´n: o o x − x0 (x − x0 )2 f (x) = f (x0 ) + f (x0 ) + f (x0 ) + · · · 1! 2! (x − x0 )n (n) + f (x0 ) + w(x − x0 )n+1 n! Si la ecuaci´n anterior ha de cumplirse, encontraremos que w deber´ ser igual o a f (n+1) (ξ) a (n+1)! (que corresponde al factor correspondiente en Rn (x)) para un valor de ξ entre x0 y x. Definamos ϕ(t) como sigue: x−t (x − t)2 ϕ(t) = f (x) − f (t) − f (t) − f (t) − · · · 1! 2! (x − t)n (n) − f (t) − w(x − t)n+1 n! 17 Cuando x0 = 0 el nombre de la serie cambia a serie de MacLaurin, en honor a Colin MacLaurin (1698-1746) matem´tico y f´ a ısico escoc´s. e 18 La notaci´n b´sica para orden de crecimiento es (usando nuestra “variable” h) O(g(h)) o a (pron. “O grande” de g(h)) y nos proporciona una estimaci´n del error. Si escribimos o f (h) = O(g(h)) (para toda h) esto significa que existe una constante C tal que se cumple |f (h)| ≤ C|g(h)| (para toda h). Para un excelente tratamiento de este tema y del an´lisis a asint´tico se recomienda el libro de Graham, Knuth y Patashnik [11, pp. 443-463]. o
  • 23. 1.3. TIPOS DE ERRORES 15 Observamos que se cumple ϕ(x0 ) = ϕ(x) = 0. Si ahora derivamos ϕ(t) con respecto a t obtenemos: x−t ϕ (t) = −f (t) − f (t) − f (t) 1! (x − t)2 (3) x−t − f (t) − f (t) − · · · 2! 1! (x − t)n (n+1) (x − t)(n−1) (n) − f (t) − f (t) n! (n − 1)! + w(n + 1)(x − t)n Simplificando la ecuaci´n anterior (cancelando t´rminos iguales) obtenemos: o e (x − t)n (n+1) ϕ (t) = − f (t) + w(n + 1)(x − t)n n! Aplicando ahora el teorema de Rolle19 , sabemos que existe una ξ entre x y x0 tal que ϕ (ξ) = 0, por tanto: (x − t)n (n+1) w(n + 1)(x − t)n = f (t) n! de donde obtenemos el resultado deseado: f (n+1) (ξ) w= (n+1)! , con ξ entre x y x0 . Nota: La f´rmula para el residuo en el teorema anterior garantiza que o ˆ |Rn (x)| ≤ |Rn (x)|, donde: ˆ Mx Rn (x) = (x − x0 )n+1 (1.12) (n + 1)! donde Mx = max{f (n+1) (cx )} tal que cx est´ entre x0 y x inclusive. De esta a forma, |Rˆ n (x)| nos proporciona una cota superior efectiva para la magnitud del residuo. 19 Michel Rolle (1652-1719). Matem´tico franc´s, especialista en an´lisis, ´lgebra y ge- a e a a ometr´ El teorema de Rolle nos dice que si una curva continua cruza el eje x en dos ıa. puntos y tiene una tangente en todos sus puntos intermedios, entonces tiene al menos una tangente paralela al eje x.
  • 24. 16 CAP´ ITULO 1. TEOR´ DE ERRORES IA Ejemplo 1.3.3. Calculemos P3 (x) alrededor de x0 = 0 para la funci´n ex , y o ˆ 3 (x). estimemos R e0 0 e0 1 e0 2 e0 3 P3 (x) = x + x + x + x 0! 1! 2! 3! 1 2 1 3 =1+x+ x + x 2 6 ecx 4 R3 (x) = x 4! ˆ Mx 4 R3 (x) = x 24 donde, debido a que la funci´n ex es creciente, tenemos: o 1 x≤0 Mx = ex x>0 Ejercicio 1.3.4. Calcule P3 (x), el polinomio de aproximaci´n de Taylor de o orden 3, alrededor de x0 = 0, as´ como el residuo Re (x), para la funci´n ı o f (x) = cos(x/2), Definici´n 1.3.3 (Error por truncamiento). Decimos que existe un error por o truncamiento, cuando no podemos calcular un valor verdadero yv de forma expl´ ıcita y tenemos que reemplazarlo por un c´lculo aproximado yc , y lo a denotamos por ertr (yv ) = yv −yc . Normalmente, la aproximaci´n yc se obtiene o mediante la suma de los primeros t´rminos de una serie infinita convergente. e Ejemplo 1.3.4. Utilizando el resultado del ejemplo (1.3.3), calculemos los errores de truncamiento, cuando: a) Aproximamos e con P3 (1) b) Aproximamos e−1 con P3 (−1) Para el caso (a), tenemos yv = e y yc = P3 (1), por lo cual, utilizando siete decimales obtenemos: yv = 2.7182818, y 1 1 yc = 1 + 1 + (1)2 + (1)3 2 6 = 2 + 1/2 + 1/6 = 8/3
  • 25. ´ ´ 1.4. SOFTWARE DE COMPUTO NUMERICO 17 Ya que 8/3 = 2.6666667 (redondeando a siete decimales,) entonces ertr (2.7182818) = 2.7182818 − 2.6666667 = 0.0516151. Para el caso (b) tenemos yv = e−1 y yc = P3 (−1), por lo cual, utilizando siete decimales obtenemos: yv = 0.3678794, y 1 1 yc = 1 + (−1) + (−1)2 + (−1)3 2 6 = 0 + 1/2 − 1/6 = 1/3 Ya que 1/3 = 0.3333333 (redondeando a siete decimales,) entonces ertr (0.3678794) = 0.3678794 − 0.3333333 = 0.0345461. Ejercicio 1.3.5. Verifique que los errores de truncamiento encontrados en el ˆ ejemplo (1.3.4), estan por debajo de los R3 (x) correspondientes encontrados en el ejemplo (1.3.3). 1.3.4. Error num´rico total e Por lo visto hasta este punto, los m´todos num´ricos requieren un cuida- e e doso reconocimiento y estudio de los errores involucrados. Definici´n 1.3.4 (Error num´rico total). El error num´rico total es la suma o e e de los errores por redondeo y los errores por truncamiento. Los errores por redondeo y por truncamiento guardan una relaci´n muy o interesante que se˜ala Chapra y Canale [6, pp. 97-99] y denominan princi- n pio de incertidumbre num´rica, ya que conforme aumenta el incremento h e (p. ej. (x − x0 ) en la expansi´n de Taylor) tambi´n aumenta el error por o e truncamiento, y para reducirlo es necesario aumentar el n´mero de t´rminos u e en la sumatoria, pero al hacerlo aumenta el n´mero de operaciones de punto u flotante, lo que aumenta el error por redondeo. Se trata entonces de encontrar un punto de equilibrio a partir del cual, se tienen rendimientos decrecientes. 1.4. Software de c´mputo num´rico o e El software num´rico actual20 ofrece un panorama muy prometedor, ya e que adem´s de la calidad en los programas y la b´squeda de conectividad en- a u 20 Que incluye con frecuencia funcionalidad propia de los CAS (Computer Algebra Sys- tems).
  • 26. 18 CAP´ ITULO 1. TEOR´ DE ERRORES IA tre los diferentes sistemas, tambi´n se busca estandarizar algunos aspectos de e la sem´ntica (ver p. ej. la iniciativa del Numerical Mathematics Consortium a [20]). 1.4.1. Software de acceso libre Entre los sistemas de acceso libre orientados al software num´rico se pode- e mos incluir: Axiom: sistema de ´lgebra computacional (con MathAction) a Calc3D: software para c´lculo y graficaci´n orientado a geometr´ y a o ıa estad´ ıstica EULER: poderoso laboratorio de computaci´n num´rica (con Yacas) o e FreeMat: Colecci´n de funciones b´sicas para matem´ticas o a a GnuPlot: Excelente graficador de dominio p´blico (no GNU) u Jacal: Sistema de ´lgebra computacional basado en Scheme a Mathscribe: herramientas para mentes cient´ ıficas NonEuclid: software interactivo en Java para geometr´ hiperb´lica ıa o Octave: excelente sistema afin a MATLAB PyLab: una colecci´n de funciones para c´lculo num´rico y visualizaci´n. o a e o Basado en Python RLab: laboratorio para computaci´n num´rica o e Sage: Sistema integrador de gran potencia y versatilidad que incluye otros paquetes matem´ticos Open Source de alta calidad. a http://www.sagemath.org Scilab: uno de los paquetes de computaci´n num´rica y cient´ o e ıfica m´s a importantes y exitosos (desarrollado en el instituto franc´s INRIA) e Singular: un sistema de ´lgebra computacional para computaci´n con a o polinomios
  • 27. ´ ´ 1.4. SOFTWARE DE COMPUTO NUMERICO 19 Surf: software para visualizaci´n de geometr´ algebraica real o ıa Winplot: un programa sencillo pero muy vers´til para graficar funciones a matem´ticas a wxMaxima: un paquete cl´sico para matem´ticas num´ricas y com- a a e putaci´n simb´lica. Sistema basado en Lisp o o 1.4.2. Software comercial Entre los sistemas m´s relevantes tenemos: a Derive: Sistema shareware para c´mputo num´rico y simb´lico. o e o LabView: Plataforma de c´mputo num´rico y simulaci´n con ´nfasis en o e o e sistemas electr´nicos empotrados, de gran importancia en la industria o MAPLE: Sistema preferido en ambientes acad´micos y cuyo n´cleo de e u procesamiento simb´lico se incorpora en otros sistemas comerciales o MathCAD: Editor de documentos que integra valiosas capacidades de c´mputo num´rico y de visualizaci´n o e o Mathematica: Sofisticado y muy exitoso sistema de c´mputo num´rico o e y simb´lico, con grandes capacidades de visualizaci´n o o MATLAB: Abreviaci´n de “MATrix LABoratory”, este es el sistema o est´ndar en aplicaciones de ingenier´ a ıa Scientific Workplace: Excelente editor cient´ ıfico de gran flexibilidad y que integra MAPLE como su n´cleo de computaci´n simb´lica u o o 1.4.3. Bibliotecas de funciones Orientadas principalmente a la eficiencia en la soluci´n de sistemas lin- o eales de dimensi´n muy grande, estas bibliotecas son esenciales para el desar- o rollo de aplicaciones en la industria, as´ como en laboratorios de investigaci´n. ı o Entre las m´s recomendadas podemos mencionar: a IMSL JavaNumerics
  • 28. 20 CAP´ ITULO 1. TEOR´ DE ERRORES IA LAPACK/BLAS EISPACK LINPACK NAG En las pr´ximas revisiones se presentar´n referencias y una breve descrip- o a ci´n de estos importantes sistemas de apoyo a la computaci´n num´rica. o o e 1.5. M´todos iterativos e A diferencia de los m´todos directos donde la soluci´n a una ecuaci´n e o o o sistema de ecuaciones se logra siempre “al primer intento” siguiendo paso a paso un procedimiento determinado21 , los m´todos iterativos obtienen e la soluci´n como resultado de una serie de aproximaciones generadas sucesi- o vamente a partir de una “aproximaci´n inicial a la soluci´n”. o o Definici´n 1.5.1 (M´todo iterativo). Llamamos M´todo iterativo (uni- o e e variable) a un procedimiento que acepta: a) f (x), la funci´n a iterar22 , tal que ran(f ) ⊆ dom(f ) y adem´s cumple o a cierto criterio de convergencia23 b) x0 ∈ dom(f ), la aproximaci´n inicial a la soluci´n o o c) , la tolerancia del error y encuentra, mediante un n´mero finito de iteraciones, una soluci´n aproxi- u o ∗ mada x (con error ≤ ) , para la ecuaci´n x = f (x). Llamamos punto fijo o al valor x que cumple x = f (x). Normalmente, la implementaci´n de un m´todo iterativo incluye como o e par´metro adicional, el n´mero m´ximo de iteraciones permitidas, para el a u a 21 Como ejemplo podemos mencionar el procedimiento para calcular la derivada de una funci´n que veremos en la secci´n 4.1 o o 22 Iterar una funci´n significa aqu´ aplicarla repetidamente, p. ej. x3 := f (f (f (x0 ))) o ı, asigna a x3 el valor de la tercera iteraci´n de f aplicada a x0 o 23 P. ej. la condici´n de Lipschitz, que veremos en la secci´n 2.3.1 o o
  • 29. ´ 1.5. METODOS ITERATIVOS 21 caso en que se utilice una funci´n que no cumpla con el criterio de conver- o gencia. En la figura 1.2 presentamos el c´digo Scheme para una m´quina itera- o a tiva b´sica, que utilizando el enfoque de programaci´n orientada a objetos, a o implementa el m´todo iterativo univariable de la definici´n 1.5.1 anterior. e o 1 Ejemplo 1.5.1. Resolvamos la ecuaci´n x = cos(x + 4 ) con ayuda de la o funci´n crea-mit. o > ( define mit ( c r e a −mit ’ g (lambda( x ) (+ ( c o s x ) 1 / 4 ) ) 0.01 15)) > ( mit ’ i t e r a 0 . 7 ) (0 : 0 . 7 ) (1 : 1.0148421872844886) (2 : 0.7777539838103506) (3 : 0.9624913205131414) (4 : 0.8214773395993339) (5 : 0.9311403125086086) (6 : 0.8469194965541674) (7 : 0.9122943326484682) (8 : 0.8619327515053936) (9 : 0.900971529122722) (1 0 : 0 . 8 7 0 8 4 8 6 5 0 1 2 5 9 5 1 8 ) (1 1 : 0 . 8 9 4 1 7 7 6 6 7 2 6 4 8 9 1 7 ) (1 2 : 0 . 8 7 6 1 6 0 1 9 6 2 8 8 8 2 5 2 ) (1 3 : 0 . 8 9 0 1 0 5 9 2 5 8 3 1 6 9 4 3 ) (0.7 converge a 0.8793297110716177 en 14 iteraciones ) >
  • 30. 22 CAP´ ITULO 1. TEOR´ DE ERRORES IA C´digo Scheme 1.2: Funci´n crea-mit para crear una m´quina iterativa b´sica o o a a ; ; f u n c i ´ n c r e a −mit ( r e v . 0 2 , 2008 −05 −27; en mit . scm ) o 2 ; ; p r o p ´ s i t o : : c r e a r una M´ quina I T e r a t i v a (MIT) b ´ s i c a o a a ; ; atributos : : idf : string ; i d de l a f u n c i ´ n o 4 ;; f : procedimiento ; funci´n a i t e r a r o ;; epsi : real ; tolerancia 6 ;; n : e n t e r o p o s i t i v o ; m´x de i t e r a c i o n e s a ; ; m´ todos : : ’ show e −> p r e s e n t a l o s a t r i b u t o s 8 ;; ’ i t e r a <r e a l > −> i t e r a empezando con <r e a l > ;; ’ fun <proced> −> r e d e f i n e l a f u n c i ´ n f o 10 ;; ’ i d f <s t r i n g > −> r e d e f i n e nombre f u n c i ´ n o ;; 12 ( define ( c r e a −mit i d f f e p s i n ) ( l e t ( ( i m i t i d f ) ( f m i t f ) ( emit e p s i ) ( nmit n ) ) 14 (lambda( mensaje . param ) ( c a s e mensaje 16 (( itera ) ( d i s p l a y ‘ ( 0 : , ( c a r param ) ) ) ( n e w l i n e ) 18 (do ( ( k 1 (+ k 1 ) ) ( xp ( c a r param ) ( f m i t xp ) ) 20 ( x ( f m i t ( c a r param ) ) ( f m i t x ) ) ) ( ( o r (<= ( abs (− x xp ) ) emit ) 22 (>= k nmit ) ) ( i f (<= k nmit ) 24 ‘ ( , ( c a r param ) c o n v e r g e a , x en ,k iteraciones ) 26 ‘ ( , ( c a r param ) no c o n v e r g e en ,k iteraciones ))) 28 ( d i s p l a y ‘ ( , k : , x , ( f m i t x ) , ( abs (− x xp ) ) ) ) ( newline ) ) ) 30 ( ( fun ) ( s e t ! f m i t ( c a r param ) ) ) ( ( e ps ) ( s e t ! emit ( c a r param ) ) ) 32 ( ( i d ) ( s e t ! i m i t ( c a r param ) ) ) ( ( show ) ( d i s p l a y ‘ ( ”MIT” i d f =, i m i t eps= 34 , emit n=, nmit ) ) ( newline )) 36 ( e l s e ‘ ( no conozco e l mensaje , mensaje ) ) ) ) ) )
  • 31. ´ 1.5. METODOS ITERATIVOS 23 Nota: en la secci´n 3.1, veremos m´todos iterativos aplicados a la soluci´n o e o de sistemas de ecuaciones lineales de la forma Ax = b.
  • 32. 24 CAP´ ITULO 1. TEOR´ DE ERRORES IA
  • 33. Cap´ ıtulo 2 M´todos de soluci´n de e o ecuaciones Presentamos aqu´ algunos m´todos num´ricos fundamentales para la solu- ı e e ci´n de una ecuaci´n no lineal univariable. Los sistemas de ecuaciones o o no lineales ser´n tratados en el siguiente cap´ a ıtulo. 2.1. M´todos basados en intervalos e Cuando para encontrar la soluci´n a una ecuaci´n, digamos f (x) = 0 o o partimos de un intervalo [a, b] dentro del cual sabemos que se encuentra la soluci´n, y paso a paso reducimos dicho intervalo hasta obtener [an , bn ] tal o que |bn − an | < , para > 0 como la tolerancia, decimos que hemos utilizado un m´todo de intervalo o m´todo cerrado. e e El m´todo de intervalo cl´sico es el m´todo de bisecci´n de Bolzano, que e a e o veremos en la secci´n siguiente (2.2). o Como se mencion´ en la secci´n 1.2.2, recientemente se han desarrollado o o m´todos basados en intervalos (en general hiper-cajas) que van “encerrando” e la soluci´n en regiones cada vez m´s peque˜as, logrando con ello lo que ac- o a n tualmente se conoce como computaci´n confiable (en ingl. reliable computing). o Para mayores detalles sobre estos nuevos m´todos se recomienda consultar e [27]. 25
  • 34. 26 CAP´ ´ ´ ITULO 2. METODOS DE SOLUCION DE ECUACIONES 2.2. M´todo de bisecci´n e o El m´todo de bisecci´n se basa en el siguiente teorema de Bolzano1 e o Teorema 2.2.1 (Teorema de Bolzano). Una funci´n f : R → R es cero de o al menos un valor de x entre a y b si f es continua en el intervalo cerrado [a, b] y f (a) y f (b) tienen signos opuestos. La estrategia de este m´todo, es partir de un intervalo [a, b] que cumple la e condici´n f (a)f (b) < 0 y en cada iteraci´n bisectarlo para obtener un nuevo o o intervalo [a1 , b1 ] que tambi´n cumple con f (a1 )f (b1 ) < 0 , hasta obtener un e intervalo [an , bn ] que cumple f (an )f (bn ) < 0 pero adem´s |b − a| ≤ , para a un correspondiente a la tolerancia del error. Presentamos a continuaci´n el algoritmo resultante: o Algoritmo 2.1 M´todo de bisecci´n e o Dado: f : funci´n asociada a la ecuaci´n f (x) = 0 a resolver, a y b: valores o o iniciales que cumplen f (a)f (b) < 0, : tolerancia del error. Entrega: c: la soluci´n aproximada a la ecuaci´n f (x) = 0 con un error ≤ . o o Biseccion(f, a, b, ) ´ 2: repeat s ← (a + b)/2 4: if f (s) = 0 then caso excepcional return s 6: else if f (a)f (s) < 0 then b←s 8: else a←s 10: end if until |b − a| ≤ 12: return s end Ejemplo 2.2.1. La siguiente interacci´n con la funci´n biseccion (ver c´di- o o o go 2.1) nos permite resolver cos(x) = 0 con una tolerancia de 10−3 mediante el m´todo de bisecci´n, utilizando a = 0 y b = 2. e o 1 Bernhard Bolzano (1781-1848), matem´tico checoescovaco especializado en an´lisis, a a cuyo trabajo ayud´ a establecer la importancia de las demostraciones rigurosas [14]. o
  • 35. ´ ´ 2.2. METODO DE BISECCION 27 C´digo Scheme 2.1: Funci´n biseccion asociada al algoritmo 2.1 o o ; ; implementa e l m´todo de b i s e c c i ´ n e o 2 ; ; asume : f ( a0 ) f ( b0)<0 ( define ( b i s e c c i o n f a0 b0 ep ) 4 ( l e t c i c l o ( ( a a0 ) ( b b0 ) ) ( l e t ( ( s ( / (+ a b ) 2 ) ) ) ; b i s e c c i o n de [ a , b ] 6 ( cond [ ( z e r o ? ( f s ) ) s ] ; f ( s )=0? => e n t r e g a s [( < ( abs (− b a ) ) ep ) ; cumple t o l e r a n c i a ? 8 s] ; entrega s [( < (∗ ( f a ) ( f s ) ) 0 ) ; f ( a ) f ( s )<0? 10 ( ciclo a s )] ; busca en [ a , s ] [ e l s e ( c i c l o s b ) ] ) ) ) ) ; busca en [ s , b ] > ( b i s e c c i o n cos 0 2. .001) 1.57080078125 A continuaci´n presentamos las interacciones resultantes al resolver este o problema mediante la funci´n biseccion-data (presentada en el c´digo 2.2) o o > ( b i s e c c i o n −data c o s 0 2 . . 0 0 1 6 ) (1.57080078125 −4.454455103366037 e −006 (0 0 2 . 0 ) (1 1.0 2 . 0 ) (2 1.5 2 . 0 ) (3 1.5 1 . 7 5 ) (4 1.5 1.625) (5 1.5625 1.625) (6 1.5625 1.59375) (7 1.5625 1.578125) (8 1.570312 1.578125) (9 1.570312 1.574219) (1 0 1 . 5 7 0 3 1 2 1 . 5 7 2 2 6 6 ) (1 1 1 . 5 7 0 3 1 2 1 . 5 7 1 2 8 9 ) ) Note que en este caso, la funci´n entrega una lista que contiene respectiva- o mente, la soluci´n s, el error f (s) y los datos de las iteraciones en la forma o
  • 36. 28 CAP´ ´ ´ ITULO 2. METODOS DE SOLUCION DE ECUACIONES (ki ai bi ). C´digo Scheme 2.2: Funci´n biseccion-data asociada al algoritmo 2.1 o o ; ; implementa e l m´todo de b i s e c c i ´ n e o 2 ; ; e n t r e g a ( s o l u c i o n e r r o r data ) ; ; donde : data = { i a ( i ) b ( i )} 4 ; ; asume : f ( a0 ) f ( b0)<0 ( define ( b i s e c c i o n −data f a0 b0 ep d e c s ) 6 ( l e t ( ( f t ( make−f o r m a t e r −round−d e c s d e c s ) ) ( data ’ ( ) ) ) 8 ( l e t c i c l o ( ( a a0 ) ( b b0 ) ( k 0 ) ) ( s e t ! data ( cons ( l i s t k ( f t a ) ( f t b ) ) 10 data ) ) ( l e t ( ( s ( / (+ a b ) 2 ) ) ) 12 ( cond [ ( z e r o ? ( f s ) ) ; caso excepcional ( cons s ( cons 0 ( r e v e r s e data ) ) ) ] 14 [( < ( abs (− b a ) ) ep ) ; cumple t o l e r a n c i a ? ( cons s ( cons ( f s ) ; e n t r e g a s , f ( s ) 16 ( r e v e r s e data ) ) ) ] ; y data en orden [( < (∗ ( f a ) ( f s ) ) 0 ) ; f ( a ) f ( s )<0? 18 ( c i c l o a s (+ k 1 ) ) ] ; busca en [ a , s ] [ else ( c i c l o s b ; busca en [ s , b ] 20 (+ k 1 ) ) ] ) ) ) ) ) Sugerencia 2.1. Si la funci´n f (x) de nuestro problema no es muy conoci- o da, o demasiado laboriosa para bosquejar “a mano”, se recomienda utilizar alguno de los paquetes de software matem´tico vistos en la secci´n 1.4, y a o hacer un an´lisis gr´fico de la funci´n, para determinar el n´mero de ceros a a o u dentro de cierto intervalo, as´ como para determinar los valores cercanos a ı dicho cero(s). Este an´lisis ser´ especialmente importante para el m´todo de a a e Newton-Raphson que veremos en la secci´n 2.4.1. o Ejemplo 2.2.2. Resolvamos ahora la ecuaci´n 3cos( x ) + 2 = 0 con una o 2 −2 tolerancia de 10 , llamando a la funci´n biseccion-data para a = 1 y o b = 6. >( b i s e c c i o n −data (lambda( x)(+ (∗ 3 ( c o s ( / x 2 ) ) ) 2 ) ) 1 6 . 0.01 6)
  • 37. ´ ´ 2.2. METODO DE BISECCION 29 (4.5986328125 0.002701681335155026 (0 1 6 . 0 ) (1 3.5 6 . 0 ) (2 3.5 4 . 7 5 ) (3 4.125 4 . 7 5 ) (4 4.4375 4 . 7 5 ) (5 4.59375 4 . 7 5 ) (6 4.59375 4.671875) (7 4.59375 4.632812) (8 4.59375 4.613281) (9 4.59375 4.603516)) La figura 2.2 nos permite visualizar el proceso para este ejemplo. Figura 2.1: Bisecciones para el ejemplo 2.2.2
  • 38. 30 CAP´ ´ ´ ITULO 2. METODOS DE SOLUCION DE ECUACIONES Ejercicio 2.2.1. Encuentre todos los ceros de las siguientes funciones en el intervalo indicado y para la precisi´n indicada. o 2 a). f (x) = πx cos(x − π ) en [1, 7], con = 0.001 4 b). f (x) = xsenh(x − 2) − 100, en [−4, 8], con = 10−7 Problema 2.2.1. ¿Cu´l es el n´mero m´ximo posible de iteraciones del a u a m´todo de bisecci´n, dado un intervalo [a, b] y un valor para ? e o Problema 2.2.2. Una vez resuelto el problema 2.2.1, encuentre una funci´no f (x) as´ como su intervalo [a, b] y asociado, de manera que se encuentre el ı cero justo en el n´mero m´ximo de iteraciones. u a Sugerencia 2.2. Explore algunas otras implementaciones del m´todo de bisec- e ci´n. Se recomienda especialmente revisar ejemplos en MATLAB o si-milares. o 2.3. M´todo de aproximaciones sucesivas e Este m´todo, conocido tambi´n como m´todo de punto fijo o m´todo itera- e e e e tivo est´ndar es uno de los m´todos recomendados cuando queremos resolver a e una ecuaci´n de la forma x = f (x) y la funci´n f (x) cumple ciertas condi- o o ciones como lo veremos en las siguientes dos secciones. 2.3.1. Condici´n de Lipschitz o Definici´n 2.3.1 (Condici´n de Lipschitz). Una funci´n f (x) definida en el o o o intervalo [a, b] se dice que satisface una condici´n de Lipschitz, si existe una o constante L > 0 tal que |f (x1 ) − f (x2 )| ≤ L |x1 − x2 | (2.1) para cualquier par de n´meros x1 , x2 ∈ [a, b]. u Observamos que cualquier funci´n f (x) donde la expresi´n |f (x11 −x2 | 2 )| se o o |x )−f (x pueda simplificar a g(xK,x2 ) , donde K es una constante y el valor de g(x1 , x2 ) se 1 pueda hacer arbitrariamente peque˜o para x1 , x2 ∈ [a, b], no puede satisfacer n una condici´n de Lipschitz. o
  • 39. ´ 2.3. METODO DE APROXIMACIONES SUCESIVAS 31 Si f (x) ∈ C 1 [a, b] (es decir, si f (x) existe y es continua) entonces f (x) satisface tambi´n una condici´n de Lipschitz. Esto se cumple ya que, por el e o teorema del valor medio para derivadas existe una c entre x1 y x2 tal que: f (x1 ) − f (x2 ) f (c) = (2.2) x1 − x2 y entonces, |f (x1 ) − f (x2 )| = |f (c)(x1 − x2 )| ≤ L |x1 − x2 |, para cualesquiera x1 , x2 ∈ [a, b]. 2.3.2. Iteraci´n y convergencia o El m´todo de aproximaciones sucesivas, m´todo iterativo y tambi´n e e e conocido como m´todo de punto fijo, es uno de los m´todos m´s sencillos e e a e ilustra (a diferencia del m´todo de bisecci´n) el caso cuando no se tiene e o garant´ de obtener la soluci´n. Por tal motivo, el tema central aqu´ es el ıa o ı concepto de convergencia de una sucesi´n de aproximaciones. o Definici´n 2.3.2 (Velocidad de convergencia). Sea {xn }∞ una sucesi´n o n=1 o de aproximaciones que convergen a s, de forma que l´ n→∞ xn = s. Si la ım sucesi´n de errores { n }∞ (donde n = xn − s) satisface o n=1 | n+1 | l´ ım α = K, K > 0 (2.3) n→∞ | n | para algunos n´meros fijos α, K, entonces α es el orden de convergencia para u {xn }, y K es la constante asint´tica o factor de convergencia. o En base a la definici´n anterior, destacamos los casos para cuando α = 1, o y α = 2 que corresponden a convergencia lineal, y convergencia cuadr´tica a respectivamente. El algoritmo 2.2 describe el m´todo. e
  • 40. 32 CAP´ ´ ´ ITULO 2. METODOS DE SOLUCION DE ECUACIONES Algoritmo 2.2 M´todo de punto fijo e Dado: f : funci´n asociada a la ecuaci´n f (x) = x a resolver, x0 : valor inicial o o de la soluci´n, : tolerancia del error, m: n´mero m´ximo de iteraciones o u a permitidas. Entrega: s: la soluci´n aproximada a la ecuaci´n f (x) = x con un error ≤ , o o o bien el mensaje: “sin convergencia en m iteraciones” si la soluci´n no o converge en las iteraciones y la precisi´n deseada. o Punto-Fijo(f, x0 , , m) 2: if f (x0 ) = x0 then caso excepcional return x0 4: else n←0 6: repeat xn+1 ← f (xn ) 8: n←n+1 until |xn − xn−1 | ≤ ´ n > m o 10: if |xn − xn−1 | ≤ then return xn 12: else return “sin convergencia en m iteraciones” 14: end if end if 16: end Presentamos en el listado 2.3, una implementaci´n b´sica del m´todo. o a e
  • 41. ´ 2.3. METODO DE APROXIMACIONES SUCESIVAS 33 C´digo Scheme 2.3: Funci´n punto-fijo asociada al algoritmo 2.2 o o ; ; implementa e l m´todo de punto f i j o e 2 ( define ( punto− f i j o f x0 e ps m) ( i f (= (− ( f x0 ) x0 ) 0 ) ; f ( x0)=x0 ? 4 x0 ; e n t r e g a x0 ( l e t c i c l o ( ( k 1 ) ( x ( f x0 ) ) ) ; x1=f ( x0 ) 6 ( cond ((<= ( abs (− x ( f x ) ) ) ep s ) ; | f ( x)−x|< e ps 8 ( f x)) ; entrega f (x) ((> k m) ; k> m? 10 ( s t r i n g −append ” s i n c o n v e r g e n c i a en ” ( number−>s t r i n g m) 12 ” iteraciones ”)) ; mensaje ( else ; e oc 14 ( c i c l o (+ k 1 ) ( f x ) ) ) ) ) ) ) ; x ( k+1)= f [ x ( k ) ] Una variante de la funci´n punto-fijo que nos da informaci´n adicional se o o presenta en el listado 2.4.
  • 42. 34 CAP´ ´ ´ ITULO 2. METODOS DE SOLUCION DE ECUACIONES C´digo Scheme 2.4: Funci´n punto-fijo-data asociada al algoritmo 2.2 o o ; ; implementa e l m´todo de punto f i j o e 2 ; ; e n t r e g a ( ( s o l u c i o n | mensaje ) e r r o r data ) ; ; donde : data = { i f [ x ( i ) ] } 4 ( define ( punto−f i j o −data f x0 eps m d e c s ) ( l e t ( ( f t ( make−f o r m a t e r −round−d e c s d e c s ) ) 6 ( data ( l i s t ( l i s t 0 x0 ) ) ) ) ( i f (= (− ( f x0 ) x0 ) 0 ) 8 ( cons x0 ( cons 0 data ) ) ( l e t c i c l o ( ( k 1 ) ( x ( f x0 ) ) ) 10 ( s e t ! data ( cons ( l i s t k ( f t x ) ) data ) ) 12 ( cond ((<= ( abs (− x ( f x ) ) ) ep s ) ( cons ( f x ) 14 ( cons (− ( f x ) x ) ( r e v e r s e data ) ) ) ) 16 ((>= k m) ( cons 18 ( s t r i n g −append ” s i n c o n v e r g e n c i a en ” 20 ( number−>s t r i n g m) ” i t e r a c i o n e s ”) 22 ( cons (− ( f x ) x ) ( r e v e r s e data ) ) ) ) 24 ( else ( c i c l o (+ k 1 ) ( f x ) ) ) ) ) ) ) )
  • 43. ´ ´ 2.4. METODOS BASADOS EN INTERPOLACION 35 2.4. M´todos basados en interpolaci´n e o 2.4.1. M´todo de Newton-Raphson e Entre los m´todos m´s populares en matem´ticas computacionales ten- e a a emos al creado por Isaac Newton y Joseph Raphson3 . 2 El atractivo de ´ste m´todo es su rapidez cuadr´tica de convergencia, e e a como veremos m´s adelante. Una desventaja es que para la aplicaci´n del a o m´todo se requiere tener tanto la funci´n f (x) que quiere resolverse, as´ como e o ı su derivada. Dada una funci´n f (x) definida en un intervalo [a, b], tal que o 2 f (x) ∈ C [a, b] y existe una s ∈ [a, b] tal que f (s) = 0 entonces si escojemos un valor inicial de x cercano a s, podemos utilizar un polinomio interpolador de Taylor para aproximar la funci´n f (x) por: o f (x0 ) f (c) f (s) = f (x0 ) + (s − x0 ) + (s − x0 )2 1! 2! Haciendo f (s) = 0 y asumiendo que el t´rmino de segundo grado es muy e peque˜o, se tiene: n f (x0 ) 0 ≈ f (x0 ) + (s − x0 ) 1! Ahora podemos despejar s para obtener: f (x0 ) s ≈ x0 − f (x0 ) Si lo expresamos en t´rminos del m´todo iterativo univariable, la funci´n e e o a iterar es: f (xn ) xn+1 = xn − (2.4) f (xn ) El pseudoc´digo para el m´todo de Newton-Raphson est´ndar se presenta o e a en el algoritmo 2.3 2 Sir Isaac Newton (1642-1727), reconocido matem´tico, f´ a ısico y astr´nomo ingl´s, su o e obra maestra Philosophae Naturalis Principia Mathematica es considerada como uno de los libros cient´ ıficos m´s importantes de todos los tiempos. Destaca junto con (Gottfried a Wilhelm von) Leibniz (1646-1716), por su invenci´n independiente del C´lculo. o a 3 Joseph Raphson (1648-1715), matem´tico ingl´s a e
  • 44. 36 CAP´ ´ ´ ITULO 2. METODOS DE SOLUCION DE ECUACIONES Algoritmo 2.3 M´todo de Newton-Raphson est´ndar e a Dado: f : funci´n asociada a la ecuaci´n f (x) = 0 a resolver, f : derivada de o o f (x), x0 : aproximaci´n inicial a la soluci´n, : tolerancia del error, y m: o o n´mero m´ximo de iteraciones u a Entrega: s: la soluci´n aproximada a la ecuaci´n f (x) = 0, o bien el men- o o saje “sin soluci´n aceptable en m iteraciones”, o bien “f (xn ) = 0 en la o iteraci´n n” o Newton-Raphson(f, f , x0 , , m) 2: n←0 repeat 4: if f (xn ) = 0 then return “f (xn ) = 0 en la iteraci´n n” o else 6: xn+1 = xn − f (xn )/f (xn ) n←n+1 8: end if until |xn − xn−1 | ≤ ´ n > m o 10: if |xn − xn−1 | ≤ then return xn else return “sin soluci´n aceptable en m iteraciones” o 12: end if end
  • 45. ´ ´ 2.4. METODOS BASADOS EN INTERPOLACION 37 Presentamos a continuaci´n una implementaci´n en Scheme: o o C´digo Scheme 2.5: Funci´n para el m´todo de Newton-Raphson o o e ( define ( newton−raphson f d f x0 eps m) 2 ( d i s p l a y ‘ ( x ( ,0)= , x0 ) ) ( n e w l i n e ) ( l e t c i c l o ( ( xp x0 ) ( dfp ( d f x0 ) ) ( k 1 ) ) 4 ( i f (= dfp 0 ) ‘ ( l o s i e n t o : l a d e r i v a d a de f en , x0 6 e s 0 en l a , k i t e r a c i o n ) ( l e t ( ( x (− xp ( / ( f xp ) dfp ) ) ) ) 8 ( cond ((<= ( abs (− x xp ) ) eps ) 10 ( d i s p l a y ‘ ( x ( , k)= , x d e l t a= , ( abs (− x xp ) ) ) ) ( newline ) 12 ‘ ( s o l u c i o n , x en , k i t e r a c i o n e s ) ) ((> k m) ‘ ( s i n s o l u c i o n en 14 ,( − k 1 ) i t e r a c i o n e s ) ) ( e l s e ( d i s p l a y ‘ ( x ( , k)= , x d e l t a= 16 , ( abs (− x xp ) ) ) ) ( newline ) 18 ( c i c l o x ( d f x ) (+ k 1 ) ) ) ) ) ) ) ) Ejercicio 2.4.1. Aplique el m´todo de Newton-Raphson para encontrar una e raiz de la ecuaci´n x3 + x − 2 = 0. Utilice x0 = 2 y = 10−5 . Compruebe la o soluci´n encontrada. o 2.4.2. M´todo de la secante e Este m´todo se basa en la utilizaci´n de dos puntos x0 y x1 como apro- e o xi-maciones iniciales a la soluci´n de la ecuaci´n f (x) = 0, y calcula el tercer o o punto x2 , resolviendo la siguiente ecuaci´n de la secante, para y = 0 y x2 = x: o f (x1 ) − f (x0 ) y − f (x1 ) = (x − x1 ) (2.5) x1 − x0 para obtener: (x1 − x0 )f (x1 ) x2 = x1 − f (x1 ) − f (x0 )