me todos numeric os

209
M ´ ETODOS NUM ´ ERICOS ıctor Jim´ enez L´opez y Antonio Pallar´ es Ruiz

Upload: sonygarcia95

Post on 14-Nov-2015

31 views

Category:

Documents


5 download

DESCRIPTION

se presentan los metodos en los cuales contiene distinta informacion para que de esta manera sean más utiles

TRANSCRIPT

  • METODOS NUMERICOS

    Vctor Jimenez Lopez y Antonio Pallares Ruiz

  • Captulo

    1

    Nmeros y Errores

    Nmeros y Errores

    #

    "

    !

    Interrogantes centrales del captulo

    Conocer la presencia de errores en cualquier procedimiento de clculo nu-mrico.

    Conocer cmo se representan los nmeros en una mquina y los erroresde redondeo que conlleva esta representacin.

    Aprender a decidir entre uno y otro mtodo numrico para resolver unmismo problema atendiendo a la estabilidad del mtodo y al condicio-

    namiento del problema.

    Destrezas a adquirir en el captulo

    Calcular utilizando aritmticas de punto jo y otante con un nmeropequeo de dgitos midiendo los errores absolutos y relativos que produce

    el redondeo.

    Encontrar alternativas estables a clculos inestables. Medir nmeros de condicin de procesos sencillos.

    En esta unidad vamos a analizar los distintos tipos de errores que se producen en los clculos

    numricos. Presentaremos los sistemas de numeracin y la aritmtica que utilizan las mqui-

    nas. Mediremos como se propagan los errores de redondeo. Y, por ltimo, estudiaremos los

    conceptos de estabilidad de un algoritmo y condicionamiento de un problema.

  • 4 UMU Mtodos Numricos, 2007-2008

    Desarrollo de los contenidos fundamentales

    Nmeros y su representacin.

    Errores.

    Nmeros de mquina. Redondeo.

    Clculos estables e inestables.

    Problemas mal condicionados. Nmero de condicin.

    Prcticas I y II.

    Temporalizacin: 6HTe + 2HPb + 6HLab = 14HPres

    1.1. Introduccin

    Ejemplo 1.1.1 Probad a realizar la siguiente operacin(pi)2.

    Si hacemos clculo simblico, la misma denicin de raz cuadrada nos dice que (pi)

    2= pi.

    Pero si hacemos los clculos con las representaciones numricas de pi en una calculadora, larealidad puede que sea distinta, y el resultado de la operacin no coincida exactamente con la

    representacin de pi en nuestra calculadora.

    Qu ocurre con el resultado en tu calculadora?

    Ejemplo 1.1.2 Probad a realizar la siguientes operaciones en vuestras calculadoras utilizando

    las representaciones numricas de las soluciones

    (i) 2 3(ii) Ans 0.6666666667

    Qu ocurre con el resultado en tu calculadora?

    Prueba ahora con

    (i) 2 3(ii) Ans 0.666666666666666

    Qu ocurre ahora con el resultado en tu calculadora?

    Ejemplo 1.1.3 Probad la siguientes operaciones en las calculadoras

    (i) 1050 1040

    (ii) 1050 1050/3(iii) 1050 (1050/3)

  • Nmeros y Errores 5

    (iv) (1019 + 1) 1019

    Qu ocurre con los resultados en tu calculadora?

    Cualquier procedimiento numrico debe considerar el control de errores para medir cmo

    afectan al resultado

    Es muy importante que en cada problema numrico hagamos un seguimiento de los errores

    cometidos con el n de poder estimar el grado de aproximacin de la solucin que proporciona.

    1.1.1. Fuentes del Error

    Hay diferentes fuentes/tipos de error que pueden afectar a la solucin numrica de un pro-

    blema:

    Errores en los datos de entrada:

    (i) Errores en la medicin de los datos iniciales, que pueden ser aleatorios y entonces

    hacen necesario acudir a tcnicas estadsticas o de control de calidad, y errores siste-

    mticos de procedimiento que hay que descubrir y subsanar.

    Errores de redondeo en los datos y en el clculo:

    (i) Los producidos al introducir los datos en las mquinas de clculo. En ellas los nmeros

    tienen una representacin nita. Estos errores son INEVITABLES.

    (ii) Los producidos al hacer clculos en las mquinas. Otra vez chocamos con la nitud de

    la representacin de los nmeros. Estos errores tambin son INEVITABLES, aunque

    son PREVISIBLES y a veces, es posible esquivarlos sustituyendo los clculos por

    otros equivalentes (ya iremos viendo cmo).

    Errores de truncamiento en el mtodo:

    Como la resolucin numrica de un problema consiste en obtener una aproximacin num-

    rica de la solucin exacta. Siempre debemos asumir este error de aproximacin, que recibe

    el nombre de error de truncamiento.

    Errores de inestabilidad y control.

    Se trata de analizar cmo afectan los errores en los datos de entrada o en los clculos a la

    solucin nal. Si un mtodo permite que pequeos errores en los datos de entrada o en los

    clculos se traduzcan en errores grandes de la solucin se dice que el mtodo es inestable.

    En esta unidad analizaremos algunos clculos que pueden ser causa de inestabilidad y

    propondremos clculos alternativos.

    En algunas ocasiones, la inestabilidad de un mtodo no proviene de los clculos sino que es

    intrnseca al mtodo, es decir al modelo empleado para resolver un problema. En estos casos

    se dice que el mtodo, o el problema, est mal condicionado. Para evitar esta situacin

    es necesario analizar el problema real e intentar sustituir el modelo o el mtodo numrico

    empleado.

    Tambin en la unidad, veremos como cuanticar (medir con nmeros) el condicionamiento

    de un problema para poder predecir mtodos mal condicionados y proponer su sustitucin

    por otros.

  • 6 UMU Mtodos Numricos, 2007-2008

    1.1.2. Ejemplos

    Ejemplo 1.1.4 Utilizando la calculadora

    1

    vamos a evaluar las expresiones de la igualdad

    18817 108643 =

    1

    18817 + 108643

    Si se quiere comprobar la igualdad anterior bastar recordar la identidad

    a2 b2 = (a b)(a+ b)y poner a = 18817 y b = 10864

    3 y constatar que a2 b2 = 1.Si hacemos los clculos, nuestra calculadora proporciona los siguientes valores:

    18817 108643 = 2.65718 1005

    1

    18817 + 108643= 2.657171708 1005

    Hemos obtenidos dos valores distintos, lo que nos plantea algunas cuestiones:

    Cal es la causa por la que la calculadora no respeta la igualdad?

    Las calculadoras estn trucadas para fastidiarnos

    Se han producido ERRORES

    Si repitiramos las operaciones con la calculadora, obtendriamos los mismos valores?

    Si No

    Si los resultados son aproximados Cal de los dos valores se aproxima ms al verda-

    dero valor de la expresin?

    Al nalizar la unidad debis tener la respuesta.

    Ejemplo 1.1.5 Consideremos el sistema de ecuaciones{x + y = 2

    x +1.00001y = 2.00001.

    Su solucin, es x = 1 e y = 1.

    Consideremos ahora el sistema perturbando un poco los trminos independientes.{x + y = 2

    x +1.00001y = 2.

    Este sistema perturbado tiene como solucin x = 2 e y = 0.

    Un error pequeo en los datos iniciales (en el trmino independiente) ha producido

    un error grande en la solucin.

    En este caso, no se ha producido ningn error de clculo.

    Este es un ejemplo de un problema (sistema lineal)mal condicionado. No podemos

    evitar que pequeos errores en los datos iniciales se conviertan en errores grandes en

    las soluciones.

    Cmo afrontamos situaciones en las que aparezcan sistemas mal condicionados?

    1

    Casio fx-991ES

  • Nmeros y Errores 7

    1.2. Nmeros y su representacin

    A la vista del ejemplo 1.1.4 , podemos hacer una primera armacin: La aritmtica con la

    que calcula un ordenador o una calculadora no es la que hemos aprendido en el colegio y en

    los cursos de lgebra (grupos, anillos, cuerpos, lgebras, etc...). Con nuestra calculadora hemos

    constatado que (a b) puede ser distinto de (a2 b2)/(a+ b).La mayora de los procesadores que realizan los clculos en un ordenador trabajan con nme-

    ros que se escriben en binario (con 0 y 1) en registros de 8, 16, 32 o 64 dgitos (bits). Nosotros

    mismos, al representar los nmeros en el sistema decimal (con las cifras 0, 1,. . . ,9) utilizamos

    secuencias nitas de dgitos. Es decir, a la hora de trabajar con representaciones de nme-

    ros en una mquina slo lo podemos hacer con una cantidad nita de ellos. Vamos a poder

    trabajar con exactitud cuando trabajemos con nmeros enteros que puedan ser representados

    en la mquina, y tambin (cuando el procesador est especialmente programado

    2

    ) con algunos

    nmeros racionales. Pero, a la hora de representar nmeros reales cmo nmeros de mquina

    siempre tendremos que utilizar aproximaciones .

    1.2.1. Nmeros enteros

    1.2.1.1. Representacin de enteros en un sistema de base b

    Para representar enteros, usualmente utilizamos el sistema de numeracin decimal (en base

    10) que es un sistema posicional en el que cada nmero viene expresado por una sucesin nita

    de dgitos (cifras del 0 al 9) cuyos valores dependen de la posicin que ocupan

    Pon ejemplo 12879 = 9 100 + 7 101 + 8 102 + 2 103 + 1 104,

    Proposicin 1.2.1 Elegida una base natural b N, b 2, cualquier nmero entero positivo padmite una nica representacin en la forma

    p = anbn + an1bn1 + + a1b1 + a0

    con aj N, 0 aj (b 1) y an > 0.Se utiliza la representacin:

    p = anan1 . . . a1a0(b)

    y se llama representacin digital de p en base b.

    Los coecientes aj se denominan dgitos o cifras.

    Cul es el algoritmo

    3

    para encontrar la representacin en base b de un nmero entero? Esealgoritmo probar la proposicin anterior.

    Ejercicio 1.2.1 Describe los algoritmos para pasar de la representacin en base 2 (binario) de

    un nmero entero a sus representaciones en las bases 4 y 8 (octal).

    Describe tambin los reciprocos que pasen de las representaciones en las bases 4 y 8 a binario.

    2

    Este es el caso para algunos nmeros en la calculadora Casio f x-991ES. Revisad el manual.

    3

    algoritmo: Sucesin nita de instrucciones claras y preci sas, especicando cuales son los datos de entrada,

    el ujo (la sucesin) de instrucciones, las condiciones de parada y los datos de salida.

  • 8 UMU Mtodos Numricos, 2007-2008

    1.2.1.2. Tipos de enteros de mquina

    Como hemos dicho la mayora de los procesadores que realizan los clculos en un ordenador

    trabajan con nmeros que se escriben en binario (base 2) utilizando registros de 8, 16, 32 o 64

    dgitos (bits). En ellos se utiliza el primer dgito para sealar el signo del nmero.

    (byte) 8 bits

    (short) 16 bits

    (int) 32 bits

    (large) 64 bits

    Cules son el mayor y el menor entero (int) de una mquina?

    Qu errores puede producir la aritmtica de la mquina al trabajar con enteros (int)?

    Resp: Los clculos con nmeros enteros se pueden hacer de forma exacta. El nico error que

    podemos tener al operar con ellos es que el resultado no quepa en los registros utilizados para

    guardarlo. En estos casos obtendremos Errores por Desbordamiento (Overflow).

    Por cierto, cmo se suman o se multiplican dos nmeros en base 2?, por supuesto que con

    las tablas de sumar o multiplicar correspondientes, descrbelas!

    Ejercicio 1.2.2 Si tu calculadora tiene la funcin de representar nmeros en distintas bases,

    encuentra los mayores enteros que se pueden escribir en hexadecimal (base 16), binario (base 2)

    u octal (base 8).

    1.2.2. Nmeros reales

    Tambin decamos en la introduccin que cuando el procesador est especialmente progra-

    mado, podemos representar algunos nmeros racionales como pares de nmeros enteros. Pero

    desde el punto de vista numrico, esto no es muy operativo: nmeros racionales acotados pueden

    venir representados mediante fracciones de nmeros enteros muy grandes.

    As, que para representar nmeros racionales o reales en una mquina siempre tendre-

    mos utilizar aproximaciones, escritas en base 2 y almacenadas en unos registros de tamao

    prejado.

    Aqu el hecho de jar el tamao de los registros que han de ocupar los nmeros en la mquina,

    nos anuncia la aparicin de errores de aproximacin o redondeo, errores que no podremos evitar.

    Por esta razn debemos aprender a controlarlos en el sentido de prever su efecto en un proceso

    numrico conociendo como se transmiten en los distintos pasos del mismo.

    1.2.2.1. Sistemas de representacin de punto jo

    Proposicin 1.2.2 Elegida una base natural b N, b 2, cualquier nmero real positivo xadmite una representacin en la forma

    x = anbn + + a1b1 + a0 + a1 1

    b+ a2

    1

    b2+ + an 1

    bn+ . . .

  • Nmeros y Errores 9

    con aj N, 0 aj (b 1) y an > 0.Se utiliza la representacin:

    x = anan1 . . . a1a0, a1a2 . . . an . . .(b)

    y se llama representacin digital de punto jo de x en base b.

    Cul es el algoritmo para encontrar una representacin de punto jo en base b de un nmeroreal?

    Es nica esta representacin?

    Resp: Si excepto para nmeros racionales de la forma x = kbn.

    Ejemplo 1.2.3

    (i)

    173 = 5.6666 . . .(10)

    (ii) 1(10) = .99999 . . .(10) = .111111 . . .(2)

    (iii) .1(10) = .0001 1001 1001 . . .(2)

    En base 10 el nmero .1 es decimal exacto (tiene una cantidad nita de dgitos no nulos)

    mientras que en base 2 ese mismo nmero tiene una representacin digital peridica

    mixta (con innitos dgitos no nulos que se van repitiendo de forma peridica).

    (iv) pi = 3.141592....

    A la hora de trabajar en una mquina, tenemos que jar el tamao de los registros a usar

    para guardar los nmeros. Esto se traduce inmediatamente en una limitacin en el nmero de

    dgitos que podemos utilizar

    Ejemplo 1.2.4 Supongamos que trabajamos con una mquina que utiliza nmeros escritos en

    base 10, con un mximo de 6 dgitos adems de la coma.

    Consideremos los nmeros: x = 0.00001, y = 0.1, z = 10000.

    Vamos a simular como podramos operar con ellos utilizando la mquina.

    Para multiplicar x y:Suponemos que dentro de la mquina se puede realizar el producto exacto

    p = x y = 0.000001.Como este nmero tiene 7 dgitos, para guardarlo en un registro de la mquina, vamos a

    aproximarlo por el nmero ms prximo de entre los de la mquina, es decir, de entre los

    que se pueden escribir con 6 dgitos. Esta aproximacin es 0.00000.

    As el resultado debe ser x y = 0.Si multiplicamos x y por z, tendremos (x y) z = 0.Si hacemos lo mismo con y z, obtenemos y z = y z = 1000. Y si multiplicamos por xtendremos x (y z) = 0.01.

    0 = (x y) z 6= x (y z) = 0.01A la hora de trabajar con nmeros en mquinas, este sistema de representacin puede no ser

    conveniente al operar con nmeros con muchos ceros.

    Para evitar estos problemas que representan los ceros a la izquierda o a la derecha de la coma,

    se utiliza el sistema de representacin de coma otante.

  • 10 UMU Mtodos Numricos, 2007-2008

    1.2.2.2. Representacin de nmeros reales en coma otante

    Proposicin 1.2.5 Elegida una base natural b N, b 2, cualquier nmero real x 6= 0 admiteuna representacin en la forma

    x = bNn=1

    an1

    bn

    con = + si x es positivo, y = si x es negativo, aj N, 0 aj (b 1) y a1 > 0.Se utiliza la representacin:

    x = .a1a2 . . . an . . . E Ny se llama representacin digital de punto otante de x en base b.

    Al nmero N se le llama exponente de la representacin de x, y al nmerom =

    n=1 an1bn

    =.a1a2 . . . an . . .(b) se le llama mantisa.

    Cul es el algoritmo para encontrar una representacin de punto otante en base b de un nmeroreal?

    Es nica esta representacin?

    Resp: Si, excepto para nmeros racionales de la forma x = kbn. O si se aade la condicin de

    que para cada n existe un k > n tal que ak 6= b 1Ejemplo 1.2.6

    (i)

    173 = 5.6666 . . .(10) = 10

    1.56666 . . .(10) = .56666 . . . E 1(10)(ii) 1(10) = 2

    0.111111 . . .(2) = .111111 . . . E0(2)

    (iii) .1(10) = .0001 1001 1001 . . .(2) = 23.1 1001 1001 . . .(2) = .1 1001 1001 . . . E 3(2)(iv) pi = 3.141592... = .314151592...(10)

    Observad que a la hora de guardar las representaciones de nmeros en coma otante no

    es necesario dejar sitio para la coma (el punto) porque siempre est en la misma posicin. Si

    trabajamos con representaciones binarias tampoco es necesario dejar ningn sitio para a1 queforzosamente slo puede tomar el valor 1 (es distinto de cero y menor que 2).

    Volvamos al problema planteado en el ejemplo 1.2.4 y veamos que operando con los nmeros

    en coma otante no se producen los mismos errores en el clculo.

    Ejemplo 1.2.7 Supongamos que trabajamos con una mquina que utiliza nmeros escritos en

    coma otante de base 10, con un mximo de 6 dgitos en la mantisa.

    Consideremos los nmeros: x = 0.00001 = .1E 4, y = .1E0, z = 10000 = .1E5.Vamos a simular como podramos operar con ellos utilizando la mquina.

    Para multiplicar x y: Ahora dentro de la mquina se puede realizar el producto exactop = x y = .1E 5.Si multiplicamos por z, tendremos (x y) z = .1E 1.Si hacemos lo mismo con y z, obtenemos y z = y z = .1E4. Y si multiplicamos por xvolvemos a obtener x (y z) = .1E 1.Cmo se multiplican dos nmeros en coma otante?

    (no es necesario guardar el punto)

    Cmo se suman?

    Cmo se representan los nmeros en tu calculadora?

  • Nmeros y Errores 11

    1.2.2.3. Tipos de reales en los ordenadores

    En la actualidad la mayora de los procesadores que realizan los clculos en un ordenador

    trabajan con nmeros reales que se representan en coma otante en binario (base 2) utilizando

    registros de 32 o 64 dgitos (bits). En ellos se utiliza el primer dgito para sealar el signo del

    nmero.

    (float) 32 bits

    (double) 64 bits

    El Institute for Electrical and Electronic Engineers estableci en 1985 un protocolo de

    representacin de nmeros reales en los ordenadores que vienen observando desde entonces los

    fabricantes de los procesadores donde los ordenadores realizan las operaciones.

    En el libro de Burden y Faires [2] encontraris una breve descripcin de este protocolo,

    conocido como el IEEE754-1985. No pienso copiarla aqu!

    Cul es el menor real (double) positivo en un ordenador?

    Cul es el mayor real (double) positivo en un ordenador?

    Ejercicio 1.2.3 Haz los ejercicios 1, 2 y 4 de la Hoja de problemas 1.

    1.3. Errores

    Denicin 1.3.1 Si el nmero real p es una aproximacin del nmero p, para medir el tamaodel error cometido en esta aproximacin podemos utilizar:

    Error exacto en la aproximacin e = p p.Error absoluto: ea = |e| = |p p|.Errores relativos (si p 6= 0): er = ea|p| = |pp

    ||p| y er =

    ea|p| =

    |pp||p| .

    A la hora de expresar el error relativo hemos utilizado dos cuanticaciones porque no siempre

    estaremos en disposicin de conocer el valor exacto de un nmero aunque si que podamos conocer

    aproximaciones y estimaciones del error absoluto cometido.

    Utilizando la desigualdad triangular, |p| |p| |p p|. Trasladando est acotacin a ladenicin de er se obtiene la acotacin:

    er er1 er .

    De la misma forma, como |p| |p| |p p|, tambin se tiene la acotaciner er

    1 er .

    As, para valores pequeos de er (respectivamente de er) los valores de er y er estn muyprximos (

    ereer 1).En el caso de tener errores relativos pequeos podemos utilizar indistintamente er o er.

    No siempre (por no decir casi nunca) tendremos conocimiento exacto del valor real p y sque lo tendremos de p. Por eso, ser ms fcil obtener estimaciones del valor de er a partir deestimaciones de ea que intentar trabajar con er.

  • 12 UMU Mtodos Numricos, 2007-2008

    Utilizando el error absoluto, podemos escribir:

    p = p + e = p ea y tambin p ea p p + ea.

    Si tenemos una acotacin de ea, ea < , entonces podemos asegurar que

    p < p < p + .

    Utilizando el error relativo, si tenemos una acotacin de er, er < , entonces podemosasegurar que ea = |p|er < |p|, y

    p |p| < p < p + |p|.

    En general, podemos escribir:

    p = p + e = p(1 er) y tambin p = p(1 er).

    Ejercicio 1.3.1

    (i) Calcula el error relativo que se comete cuando el nmero 1.503 aparece redondeado a 1.5.

    (ii) Calcula los errores absoluto y relativo cuando el nmero .abcE7 aparece escrito comoa.bcE7

    (iii) Supn que en un clculo aparece el nmero 0.0001 cuando deba aparecer el 0. Qu frmula

    utilizaras para calcular el error relativo? Utilizando esa frmula qu valor obtienes?

    (iv) Determina el mayor intervalo en el que debe estar p para aproximar a p =2 con unerror relativo de a lo sumo 106.

    1.4. Nmeros de mquina. Redondeo

    Denicin 1.4.1 (Nmeros de mquina) Vamos a llamar mquina de t dgitos en lamantisa y k dgitos en el exponente en base b al conjunto de nmeros que se pueden representaren coma otante utilizando esta base y los referidos dgitos para la mantisa y el exponente.

    A estos nmeros los llamaremos nmeros de mquina de t dgitos en la mantisa y k dgitosen el exponente en base b.

    (Salvo que expresemos lo contrario, no nos vamos a preocupar mucho por el exponente, que

    es entero y slo puede producir errores de desbordamiento)

    1.4.0.4. Redondeo

    Por redondeo vamos a entender el proceso de introducir un nmero p en una mquina ,en el que se procurar utilizar el nmero de mquina p que est ms prximo a p (o uno de losque estn ms prximos si es que hay varios).

    Existen distintos tipos de redondeo, nosotros nos vamos a jar en el siguiente:

  • Nmeros y Errores 13

    Denicin 1.4.2 (Redondeo) Sean b 2 un nmero natural, t N t > 0, y x R \ {0}descrito en coma otante y base b por:

    x = bNj=1

    aj1

    bj= .a1a2 . . .EN(b),

    ak {0, 1, ..., (b 1)}.Sean x = bN tj=1 aj 1bj = .a1a2 . . . atEN(b) el nmero de mquina que resulta altruncar la mantisa a los t primeros dgitos y x+ = bN

    ((tj=1 aj

    1bj

    )+ 1

    bt

    ). Los nmeros

    x y x+ son los dos de la mquina de base b y t dgitos en la mantisa, que estn ms prximosa x.

    Vamos a denir el nmero redondeado de x con t dgitos en la mantisa como el nmero real

    flt(x) =

    {x. si |x x| < |xx+|2 = 0.5bNtx+ si |x x| |xx+|2 = 0.5bNt

    Cuando el nmero de dgitos t este jado en el entorno de trabajo podemos escribir solamentefl(x).

    Observad que si b es par (por ejemplo si b = 2 o b = 10), entonces |x x| < |xx+|2 si, yslo si at1 < b2 .Podis leer sobre otros tipos de redondeo en Kincaid-Cheney [3]:

    (i) Redondeo por paridad (Roud to even), redondeo equidistribuido

    (ii) Redondeo por truncamiento.

    Proposicin 1.4.3 (Errores de redondeo) Sean b 2 un nmero natural, t N t > 0, yx R \ {0}. Entonces(i) flt(x) = bN

    tj=1 a

    j

    1bj

    = .a1a2 . . . atEN(b), con N N N + 1.(ii) El error absoluto en el redondeo satisface la acotacin

    |x flt(x)| 0.5bNt

    (iii) Los errores relativoa en el redondeo satisfacen la acotacin

    |x flt(x)||x| 0.5b

    t+1y

    |x flt(x)||flt(x)| 0.5b

    t+1

    El nmero 0.5bt+1 se denomina la precisin relativa en la aritmtica de t dgitos en comaotante.

    Demostracin:

    |x flt(x)| = |x x| < 0.5bNt si |x x| < |x x+|

    2=

    bNbt

    2= 0.5bNt

    |x flt(x)| = |x x+| si |x x| |x x+|

    2y en este caso

    |x x+| = |(x x) + (x x+)| (1)= |x x+| |x x| |x x+|

    2= 0.5bNt.

    (1) x x+ y x x tienen distinto signo tanto si x es positivo como si es negativo.

  • 14 UMU Mtodos Numricos, 2007-2008

    Ejercicio 1.4.1

    (i) Mide los errores relativos del redondeo del nmero pi en una mquina de cuatro dgitos demantisa y base 10

    (ii) En una mquina de nmeros escritos en coma otante con 13 dgitos en la mantisa (enbase 10), cul es el mximo error relativo posible?

    Denicin 1.4.4 (Precisin de k dgitos) Se dice que el nmero p es una aproximacin delnmero p 6= 0 con una precisin de, al menos, m cifras signicativas en la base b, siempre queel error relativo

    |p p||p| .5 b

    m+1.

    Cuando m es el mayor entero para el que se cumple la desigualdad anterior, se dice que p

    aproxima a p con m cifras signicativas.

    Ejemplo 1.4.5 Sea

    e = .27182818284590452353602874713527...E1

    y app1(e) = .2718287E1 una aproximacin de e.

    |e app1(e)||e| =

    .5171540 . . . E 5.271828182E1

    1.90250E 6 = .19025E 5,

    .5E(7 + 1) < .190250E 5 < .5E(6 + 1)En este caso, app1(e) aproxima a e con 6 cifras signicativas y en las mantisas de e y app(e)coinciden las 6 primeras cifras.

    No siempre sucede esto. Por ejemplo, sea x = .1E0 y app(x) = .9999E0, en este caso

    |x app(x)||x| = .1E 3.

    Con la denicin anterior app(x) es una aproximacin de x con 4 cifras signicativas, aunqueno coinciden ninguna de las cifras de la mantisa.

    Ejercicio 1.4.2 Una calculadora, A, trabaja en base 2 con mantisa de 22 bits y otra, B, trabaja

    en base 16 con 6 dgitos de precision (24 bits). Cul de las dos es ms precisa?

    1.4.0.5. Distribucin de Nmeros de Mquina

    Cmo estn distribuidos los nmeros de mquina?

    Resp: Hay muchos cerca del cero, muy pocos en el , y sucientes alrededor de los nmerosrazonables (.1, 1, 10, ...).

    Denicin 1.4.6 (psilon de la Mquina) SiM es una mquina ideal de nmeros (t dgitosen mantisa y base b), se denomina psilon de la Mquina al menor nmero positivo e M talque fl(1+ e) > 1. O en otros trminos, al menor nmero positivo tal que fl(1+ e) es el nmerode mquina siguiente al 1, 1+ 1

    bt

  • Nmeros y Errores 15

    En doble precisin (IEEE-754) el psilon de la mquina es del orden de

    1252

    1016. Enprcticas lo precisaremos con exactitud.

    El psilon de la mquina nos indica la mxima precisin relativa que cabe esperar en la

    mquina. As, a la hora de preguntar si dos nmeros de mquina estn prximos debemos de

    tener en cuenta no pedir que el error relativo sea menor que el psilon de la mquina, porque en

    ese caso estaremos pidiendo que sean idnticos.

    1.5. Aritmetica de la mquina. Propagacin de errores

    Cmo suma, resta, multiplica, divide, etc... una mquina?

    Denotemos por cualquiera de las operaciones +,,, /. Si x e y son dos nmeros demquina con t dgitos en la mantisa, en general xy no tiene porque ser un nmero de mquinacon t dgitos en la mantisa:

    Por ejemplo, supongamos que trabajamos en una mquina de 6 dgitos en la mantisa y que

    x = .700001E1 e y = .600002E0 son dos nmeros de la mquina. Su suma, x+y = .7600012E1,es un nmero de 8 dgitos en la mantisa que debe ser redondeado por un nmero de la mquina

    si se quiere guardar en la misma, x y := fl(x+ y) = .760001E1.As, para realizar operaciones aritmticas en una mquina ideal, pensaremos siempre que

    estas se realizan en dos etapas

    (i) Primero se calcula xy con la mayor precisin posible;

    (ii) despus se redondea el resultado a un nmero de la mquina.

    Cmo se multiplican dos nmeros de mquina? Cmo afectan los errores de redondeo en

    los factores en el producto?

    Cmo se suman dos nmeros de mquina del mismo signo? Cmo afectan los errores de

    redondeo en los sumandos a la suma?

    Ahora que sabemos como se deben realizar las operaciones dentro de nuestra calculadora, es

    buen momento para volver sobre el ejemplo 1.1.4 :

    Ejemplo 1.5.1 Utilizamos la calculadora

    4

    para evaluar las expresiones de la igualdad

    18817 108643 =

    1

    18817 + 108643.

    Hicimos los clculos,obteniendo dos valores distintos y nos preguntbamos cual de los dos era el

    ms preciso.

    Vamos a ir detallando las operaciones

    (i) fl(3) = 1.732050808, y

    3 = 1.732050808(1 ered)(ii) ered .5E 10(iii) 10864 fl(3) = 18816.9997,4

    Casio fx-991ES: presenta 10 dgitos en pantalla, presupondr emos que es una mquina de nmeros de 10

    dgitos en la mantisa.

  • 16 UMU Mtodos Numricos, 2007-2008

    (iv) 108643 = 10864 (fl(3) ea) = (18816.9997 ered) (10864 ered)(v) e1 = (10864 ered) ered .54E 6, e1 es una estimacin del error en la operacin

    108643.(vi) x1 = 18817 (10864 fl(

    3)) = 2.65718E 5(vii) x = 18817 (108643) = 18817 18816.9997 e1(viii) e1 = |x x1| .54E 6 y |xx1||x1| .20E 1. As, slo podemos armar que x1 aproximaal valor de x con una precisin de dos dgitos.

    De forma anloga podemos escribir

    (ix) d = 18817 (10864fl(3)) = 37633.99997, y 18817+(108643) = 37633.99997 e1.(x) x2 = 1 (18817 (10864 fl(

    3))) = 2.657171708E 5(xi) 1/(18817 + (10864 fl(3))) = 2.657171708E 5(1 ered2)(xii) ered2 .5E(10)(xiii)

    x = 1/(18817 + (108643)) =

    1

    18817 (10864 fl(3))18817 (10864 fl(3))18817 + (108643)

    = (2.657171708E 5)(1 ered2) 37633.9999737633.99997 e1

    (2.657171708E 5) (1 + (.54E 6)37633.99997 (.54E 6))

    2.657171708E 5 (1 .1435E 10)

    (xiv)

    |xx2||x2| .1435E 10. Ahora podemos asegurar que x2 aproxima a x con los 10 dgitos deprecisin.

    Cuando se restan dos nmeros de mquina prximos, cal es la precisin en la diferencia?

    Proposicin 1.5.2 Sea M una mquina de nmeros de base b y k dgitos en la mantisa. Seanx > y > 0 dos nmeros de M en cuyas representaciones coinciden el exponente y los p primerosdgitos de las mantisas. Entonces el nmero x y a lo ms tiene en su mantisa, k p dgitossignicativos. Se pierden p dgitos de precisin.

    Ejercicio 1.5.1 Consideremos los nmeros p = 0.54619 y q = 0.54601. Redondeando los nme-ros en una mquina de cuatro dgitos de precisin (base 10), mide el error relativo cometido al

    aproximar p q por fl(p) fl(q). cantas cifras signicativas tiene fl(p) fl(q).Analiza el resultado! Podemos mejorarlo?

    Ejercicio 1.5.2 Utilizando aritmtica de cuatro dgitos (base 10), encuentra aproximaciones a

    las races x1 y x2 de la ecuacin de segundo grado

    x2 200x+ 1 == 0.Comprueba la bondad de las aproximaciones reconstruyendo el polinomio de segundo grado

    (x x1)(x x2).Analiza el resultado! Podemos mejorarlo?

  • Nmeros y Errores 17

    1.6. Clculos estables e inestables

    Denicin 1.6.1 Diremos que un proceso numrico, o una operacin, es inestable cuando

    pequeos errores en los datos de entrada, o errores de redondeo en alguna de las etapas el proceso,

    producen errores grandes en los datos de salida

    Diremos que un proceso numrico, es estable cuando no es inestable.

    Un mismo algoritmo puede ser estable para algunos datos iniciales e inestable para otros.

    Entonces se dice que el algoritmo es condicionalmente estable

    Ejercicio 1.6.1 Evala la expresin z = 1. 1.208xen x = 1.209 y en x = 3.1, trabajando con

    4 dgitos de precisin en base 10.

    Analiza los algoritmos:

    x (y = 1.208/x) (z = 1 y),x (u = x 1.208) (z = u/x).

    Despus de ver cmo se realizan las operaciones aritmticas en una mquina de nmeros,

    podemos quedarnos con el siguiente resumen:

    El producto de dos nmeros de mquina es un clculo estable, slo se puedenproducir errores de desbordamiento (overow).

    La divisin de dos nmeros de mquina es un clculo estable, tambin slo sepueden producir errores de desbordamiento (overow).

    La suma de dos nmeros de mquina es estable cuando los dos nmeros tienen elmismo signo, y puede ser inestable cuando los dos nmeros tienen signo distinto.

    La resta de dos nmeros de mquina es inestable cuando los dos nmeros estnmuy prximos, y es estable cuando los dos nmeros tienen distinto signo (en este caso

    es una suma de nmeros del mismo signo).

    Hay que prestar atencin a las operaciones con nmeros grandes o excesivamente

    pequeos para evitar errores de desbordamiento (overow).

    Ejercicio 1.6.2 En relacin con el ltimo punto, Cmo se puede realizar el clculo

    ex

    ex 1para valores grandes de x (x > 250)?

    Comprubalo con la calculadora!

    1.6.1. Propagacin de errores

    Cmo afecta el nmero de operaciones al resultado nal?

    Si las operaciones son estables, lo menos que podemos esperar es que si en cada operacin

    efectuamos un redondeo er 0.5bt+1, despus de n operaciones, tengamos un error acumuladodel orden de ner, proporcional al nmero de operaciones.

  • 18 UMU Mtodos Numricos, 2007-2008

    Proposicin 1.6.2 Sean xi 0, nmeros de mquina (base b y t-dgitos en la mantisa). Sean

    Sn = x0 + x1 + + xn = Sn1 + xn,

    Sn = Sn1 xn (S0 = x0).Entonces:

    |Sn Sn||Sn| (1 + eM )

    n 1 neM ,

    donde eM = .5bt+1es la precisin de la mquina.

    (ver prueba en el libro de Kincaid-Cheney [3])

    Ejercicio 1.6.3 Sea n tal que neM 0, nmeros de mquina (base b y t-dgitos en la mantisa). Sean

    Pn = x0x1 xn = Pn1xn,

    P n = Pn1 xn (P 0 = x0).Entonces:

    |Pn P n ||Pn| (1 + eM )

    n 1 neM ,

    donde eM = .5bt+1es la precisin de la mquina.

    Ejercicio 1.6.5 Para evaluar un polinomio p(x) = anxn+an1xn1+ ...+a1x+a0 disponemosde los dos algoritmos siguientes

    (i) p=a0; z=1;

    para (k=1, hasta n, )z=z*x; p=p+ak *x;

    (ii) (Horner)

    p=an;

    para (k=(n-1), hasta 0, )p=p*x +ak;

    Si es una cota del error relativo al hacer las operaciones aritmticas y no consideramos loserrores de redondeo al introducir el valor de los parmetros, Cul de los dos algorimos acumula

    menos errores?

    Ejercicio 1.6.6 Haz los ejercicios 7 y 10 de la hoja de problemas 1.

    A la hora de escribir un algoritmo o un proceso numrico, debemos intentar minimizar

    el nmero de operaciones para evitar acumulacin de errores de redondeo.

  • Nmeros y Errores 19

    1.6.2. Propagacin de Errores en Procesos Iterativos

    Un algoritmo o un mtodo iterativo, es un procedimiento por el que se construye una sucesin

    xn por etapas. Cada xn depender de unos primeros datos iniciales a los que se van agregandoen cada etapa los trminos de la sucesin que ya se han calculado. En general,

    xn = f(x0, x1, ..., xn1) :

    Normalmente, en los procesos iterativos esperamos que xn sea una sucesin convergente haciala solucin de un problema x.

    En principio, desconocemos el valor exacto de x y, ante la presencia de errores inevitables(como los de redondeo), deberemos parar la iteracin cuando creamos que xn es una buenaaproximacin de x.

    En general, la condicin de parada viene dada en trminos de los errores absolutos o relativos

    pidiendo que :

    n = |xn xn1| < prec o que n|xn| =1 xn1xn

    < prec,donde prec > 0 es una precisin dada.

    Normalmente, este tipo de condicin de parada se complementa con un control sobre la

    ecuacin o sistema de ecuaciones que modelizan el problema que se est intentando resolver. Por

    ejemplo si F (x) == 0, podemos agregar a la condicin de parada que |F (xn)| < prec.Recordemos que si x = 0 slo podemos usar errores absolutos, Y que si xn es convergente laevaluacin de n es inestable porque xn y xn1 pueden estar muy prximos.

    Denicin 1.6.3 Supongamos que xn est denida por un mtodo iterativo y que xn x. Alimplementar el mtodo en una mquina, vamos construyendo una sucesin xn que va acumulandolos errores de redondeo y de propagacin segn las operaciones que intervienen.

    Denotamos en = |xn xn| si x = 0, y en = |xnfxn||xn| =1 xn

    fxn

    si x 6= 0, a los errores absolutoy relativo en cada etapa.

    (i) Se dice que la propagacin de errores en la iteracin es lineal, cuando existe C > 0 talque

    en Cne0,n.(ii) Se dice que la propagacin de errores en la iteracin es de tipo exponencial cuando existen

    C > 1 y M > 0 tal queen MCne0,n.(iii) A veces encontraremos ejemplos en los que

    en Kn!e0,n. (K > 0constante)En estos casos, si recordamos la frmula de Stirling (n! 2pin (n

    e

    )n), la propagacin de

    errores es de tipo exponencial con cualquier constante C > 1.

    Admitiremos que un proceso iterativo con propagacin de error lineal va a ser estable

    si no requiere demasiadas iteraciones para pararse.

    Debemos de establecer nmeros mximos de iteraciones para evitar problemas de

    acumulacin de errores que desvirten la solucin aproximada propuesta.

    Los procesos iterativos con propagacin de errores exponencial van a ser muy inesta-

    bles. Debemos intentar evitarlos.

  • 20 UMU Mtodos Numricos, 2007-2008

    Observad los dos ejemplos siguientes que muestran dos procesos iterativos algo perversos. En

    la practica 2 os propongo un ejemplo ms para que lo analicis.

    Ejemplo 1.6.4 Sea yn = n!(ex(1+x+ x

    2

    2!+ + x

    n

    n!)). Sabemos, por la expresin de Lagrange

    del resto de la frmula de Taylor, que

    yn = n!etx

    (n+ 1)!xn+1 =

    etx

    (n+ 1)xn+1.

    De donde podemos concluir que para x 1 yn 0.Tambin sabemos que se cumple la frmula de recurrencia lineal:

    yn = nyn1 xn.

    Si evaluamos los 21 primeros trminos de esta iteracin comenzando en x0 = 1 e y0 = e 1,en una mquina que trabaja con reales de tipo double obtenemos:

    y0 =1.71828 y11=0.090234

    y1 =0.718282 y12=0.0828081

    y2 =0.436564 y13=0.0765057

    y3 =0.309691 y14=0.0710802

    y4 =0.238764 y15=0.066203

    y5 =0.193819 y16=0.0592478

    y6 =0.162916 y17=0.00721318

    y7 =0.140415 y18=0.870163y8 =0.123323 y19=17.5331y9 =0.109911 y20=351.662y10=0.0991122 y21=7385.9Qu ocurri?

    Si denotamos yn = n yn1 1, podemos estimar queyn yn = n(yn1 yn1) = ... = n!(y0 y0).Aqu podemos observar como el pequeo error de redondeo al escribir el nmero e en la mquinay evaluar y0, se ha propagado de forma exponencial (n! > M(3/e)

    nsi n 3).

    Ejemplo 1.6.5 Sea xn = 10 x

    nex dx. Sabemos que 0 xn e 10 x

    n dx = en+1 0.Integrando por partes se tiene que xn viene dada por la frmula de recurrencia lineal:

    xn = e nxn1,comenzando con x0 = e 1.Razonando como en el ejemplo precedente, si xn = e n xn1 podemos estimar que

    |xn xn| = n|xn1 xn1| = ... = n!|y0 y0)|,y predecir que la sucesin xn es muy inestable y no converge a 0, en absoluto.

    En efecto, si trabajis en doble precisin con nmeros de tipo double podris observar que

    con 25 iteraciones x25 8.2E8 muy lejos del lmite 0.Evala los 25 primeros trminos de la sucesin xn en el ordenador!

  • Nmeros y Errores 21

    1.7. Condicionamiento de un problema

    Los trminos condicionamiento y/o problema bien o mal condicionado se utilizan de

    manera informal para indicar la sensibilidad de la solucin del problema con respecto a pequeos

    errores relativos en los datos de entrada.

    Una posibilidad para hacer este tipo de apreciaciones es intentar cuanticar a priori esta

    sensibilidad, utilizando para ello un modelo apropiado del problema.

    A continuacin vamos a ver distintos modelizaciones de problemas en los que se pueden

    hacer esas cuanticaciones.

    1.7.1. Funciones de una variable.

    Este es el caso en el que el algoritmo consiste simplemente en dado un nmero x como datode entrada, evaluar f(x) como dato de salida, donde f : R R es una funcin real.Si adems f es derivable, con derivada continua, podemos cuanticar el condicionamiento delalgoritmo como sigue:

    Sea x el dato de entrada, y x = x+ h una perturbacin de x como dato de entrada.

    En la salida obtenemos f(x+ h) en lugar de f(x).

    El error en salida se puede estimar en trminos de la derivada:

    |f(x+ h) f(x)| = |f (x+ th)||h| |f (x)||h|donde 0 < t < 1 y para h pequeo, |f (x+ th)| |f (x)|.El error relativo en el dato de salida es

    |f(x+ h) f(x)||f(x)|

    |f (x)||h||f(x)|

    Si medimos la razn entre los errores relativos en los datos de salida y los datos de entrada,

    tenemos

    er(f(x))

    er(x)=

    |f(x+h)f(x)||f(x)||h||x|

    |f(x)||x||f(x)| .

    Esta ltima estimacin slo depende de x y de f y se puede preveer antes de ejecutar elalgoritmo de evaluacin.

    Denicin 1.7.1 Sea f : [a, b] R una funcin derivable con derivada continua. y sea x [a, b]con f(x) 6= 0. El nmero de condicin de f en x se dene por la frmula

    nc(f, x) :=|f (x)||x||f(x)|y mide la razn entre los errores relativos en f(x) y en x ante variaciones de este ltimo valor.

    Cuando el nmero de condicin es pequeo, o menor que una cota razonable, pequeos errores

    en x se propagan a pequeos errores en f(x) y el algoritmo es estable. Pero si los nmeros decondicin son muy grandes o tienden a innito cerca de un valor de x el algoritmo ser inestablecerca de este valor.

  • 22 UMU Mtodos Numricos, 2007-2008

    Ejemplo 1.7.2

    (i) f(x) = xex2 (f (x) = ex2 2x2ex2)

    nc(xex2

    , x) =|f (x)||x||f(x)| =

    |(ex2 2x2ex2)x||xex2| = |1 2x

    2ex2 | 1

    La evaluacin de f(x) = xex2 es estable en todo x: los errores relativos en x y f(x) sondel mismo tamao.

    (ii) f(x) = arc sen(x) (f (x) = 11x2 )

    nc(arc sen(x), x) =|f (x)||x||f(x)| =

    |x|1x2

    arc sen(x)=

    |x|arc sen(x)

    1 x2

    lmx1

    nc(arc sen(x), x) = +

    La evaluacin de arc sen(x) cerca de x = 1 (arc sen(1) = pi2 ) es muy inestable: pequeoserrores en x producen errores grandes en arc sen(x).

    (iii) f(x) = log(x) (f (x) = 1x)

    nc(log(x), x) =|f (x)||x||f(x)| =

    1

    | log(x)|Si x est lejos de 1 la evaluacin de log(x) es estable, pero si x esta cerca de x = 1 estaevaluacin es inestable.

    1.7.2. Funciones de varias variables

    Este es el caso en el que el algoritmo consiste simplemente en dado un vector ~x Rn comodato de entrada, evaluar f(~x) como dato de salida, donde f : Rn R es una funcin real devarias variables.

    Si adems f es diferenciable con derivadas parciales5 continuas podemos cuanticar elcondicionamiento del algoritmo como sigue:

    (Para simplicar las expresiones vamos a utilizar el caso n = 3)

    Sea ~x = (x0, y0, z0) el dato de entrada, y ~x = ~x + ~h = (x0 + hx, y0, z0) una perturbacinen la primera coordena de ~x como dato de entrada.

    En la salida obtenemos f(~x+ ~h) en lugar de f(~x).

    5

    Sea f(x, y, x) una funcin de tres variables reales con valores en R, si para cada par (y0, z0) jo, la funcinde una variable fy0,z0(x) es derivable en x0, se dene la derivada parcial

    f(x0, y0, z0)

    x= f y0,z0(x0)

    De forma anloga se denen las derivadas parciales de f en ~x0 con respecto a cada una de las coordenadas,

    derivando la funcin de una variable que resulta al jar el re sto de las coordenadas.

    Si existen todas las derivadas parciales en ~x0 y son continuas, entonces f es diferenciable en ~x0 en el sentido

    de que f(~x) f(~x0) se aproxima bien por una aplicacin lineal.

  • Nmeros y Errores 23

    El error en salida se puede estimar en trminos de las derivadas parciales:

    |f(~x+ ~h) f(~x)| = |f(x0 + hx, y0, z0) f(x0, y0, z0)|

    = |f(x0 + t1hx, y0, z0)x

    ||hx|

    donde 0 < t1 < 1 y para hx pequeo, |f(x0+t1hx,y0,z0)x | |f(x0,y0,z0)x |.El error relativo en el dato de salida es

    |f(~x+ ~h) f(~x)||f(~x)|

    |f(x0,y0,z0)x

    ||hx||f(~x)|

    Si medimos la razn entre los errores relativos en los datos de salida y los datos de entrada,

    tenemos

    er(f(~x)), x0er(x0)

    |f(x0,y0,z0)

    x||x0|

    |f(~x)| .

    Como antes, esta ltima estimacin slo depende de ~x y de f y se puede preveer antes deejecutar el algoritmo de evaluacin.

    De la misma forma se pueden obtener estimaciones de las razones entre los errores relativos

    cuando se van perturbando de forma independiente cada una de las coordenadas.

    Denicin 1.7.3 Sea f : A Rn R una funcin diferenciable con derivadas parcialescontinuas continua. y sea ~x A con f(~x) 6= 0. Los nmeros

    nc(f, ~x, i) :=|f(~x)xi

    ||xi||f(~x)| , i = 1, 2, ..., n

    se llaman nmeros de condicin f en ~x y mide la razn entre los errores relativos en f(~x) y en~x ante variaciones en cada una de las coordenadas de este vector.

    Cuando todos los nmeros de condicin son pequeo, o menores que una cota razonable,

    pequeos errores en x se propagan a pequeos errores en f(x) y el algoritmo es estable. Pero sialguno de los nmeros de condicin es muy grande o tiende a innito cerca de un valor de ~x elalgoritmo ser inestable cerca de este valor.

    Ejemplo 1.7.4 Vamos a estimar el error mximo de f(x, y) = x2y cuando x = 2 0.3 ey = 1.5 0.2 y analizaremos la estabilidad de f en (2, 1.5).

    f(x,y)x

    = 2xy y f(x,y)y

    = x2,

    Si x [2 0.3, 2 + 0.3] e y [1.5 0.2, 1.5 + 0.2], |f(x,y)x

    | 2 2.3 1.7 = 7.82 y|f(x,y)

    y| 2.32 = 5.29

    |f(x, y) f(2, 1.5)| |f(x, y) f(2, y)|+ |f(2, y) f(2, 1.5)|

    = |f(2 + t(x 2), y)x

    (x 2)|+ |f(2, 1.5 + t(y 1.5))y

    (y 1.5)| 7.28 |x 2|+ 5.29 |y 1.5| 7.18 0.3 + 5.29 0.2 = 3.212

  • 24 UMU Mtodos Numricos, 2007-2008

    El error mximo al evaluar f(2, 1.5) = 6 est acotado por 3.212 ( el error relativo est acotadopor 0.536).

    Los nmeros de condicin con respecto a cada variable son:

    nc(f, (x, y), 1) :=|f(x,y)

    x||x|

    |f(x, y)| =2x2y

    x2y= 2, y

    nc(f, (x, y), 2) :=|f(x,y)

    y||y|

    |f(x, y)| =x2y

    x2y= 1.

    Podemos armar que el error en la coordenada x inuye ms que el error en la coordenaday al evaluar f(x, y).

    Observad tambin que los nmeros de condicin en este caso son independientes del vector

    (x, y).

    1.7.3. Aplicaciones lineales

    Cuando estudiemos los sistemas de ecuaciones linealesA~x = ~b (Amatriz nn, consideraremosdistintas normas para las matrices A y veremos que el nmero nc(A) = A A1 servir comonmero de condicin del sistema en el sentido de que mide la razn entre el error cometido en

    los datos iniciales del sistema A o b y el error que se propaga a la solucin del sistema.Matrices como las de Hilbert

    Hn =

    (1

    i+ j 1)

    1in1jn

    que aparecen de forma natural en ajustes funciones por polinomios de grado n, estn muy malcondicionadas nc(Hn) e3.5n .

    1.7.4. Races de Polinomios

    Vamos a analizar en el siguiente modelo (muy simple) cmo cuanticar el condicionamiento

    en el problema de aproximacin de races de polinomios

    Denotemos por p(x) a un polinomio y supongamos que algR(p) es un algoritmo que propor-ciona una raz r = algR(p) de p(x) (p(r) = 0). Supongamos adems que r es una raz simple dep, e.d. p(r) 6= 0.Si se perturba el polinomio p de entrada, tomando una aproximacin p(x) = p(x) + q(x),donde q(x) es otro polinomio, y se aplica el algoritmo encontraremos una raz r + h = algR(p).

    Si suponemos que h es pequeo, h2, h3, ... seran mucho mas pequeos que h y podramosdespreciarlas frente a h. As, utilizando el desarrollo de Taylor de p, como p(r) = 0, podemosmodelizar

    p(r + h) = p(r) + p(r)h+p(r)2

    h2 + ...+p(n)(r)

    n!h2 p(r)h.Tambin si h es pequeo q(r + h) q(r). As

    0 = p(r + h) = p(r + h) + q(r + h) hp(r) + q(r).

  • Nmeros y Errores 25

    Despejando queda h q(r)p(r) .

    Con este modelo, el nmero q(r)p(r) puede servir para prever el error absoluto en el clculo de

    la raz en trminos de la perturbacin en el polinomio original.

    Ejemplo 1.7.5 (Polinomios de Wilkinson) Cuando tengamos construidos e implementados

    algunos mtodos de aproximacin de races de polinomios, constataremos los hechos que ahora

    vamos a pronosticar en base al modelo propuesto ms arriba.

    Los polinomios de Wilkinson son los polinomios mnicos con races simples en los enteros

    {1, 2, ..., n}:pn(x) = (x 1)(x 2)...(x n).Consideremos la perturbacin de p20 dada por p20(x) = p20(x) + x

    20.

    Si algR20 es un algoritmo que nos proporciona la raz r = 20 de p20, y r+h20 = algR20(p20).

    La estimacin propuesta para el tamao de h20 es

    h20 2020

    p20(20)=

    2020

    19! 109.

    Observad que una pequea perturbacin () en el coeciente de x20 se multiplica por 109 alintentar aproximar la raz r = 20. Los polinomios de Wilkinson son un ejemplo de polinomiosmal condicionados para la busqueda de races grandes.

    Como ejercicio, podis jugar con este polinomio y el modelo propuesto para estimar los errores

    que resultan al utilizar algoritmos algR15 o algR10 que proporcionen respectivamente las racesr = 15 o r = 10.

    1.8. Actividades complementarias del captulo

    Los documentos se pueden descargar de la Zona Compartida de SUMA.

    Hoja de problemas n

    o

    1 (25/09/2007).

    Practica n

    o

    1 . Fenmenos extraos.

    Prctica n

    o

    2 Mquinas ideales.

  • Bibliografa

    Bibliografa

    [1] A. Delshams A. Aubanell, A. Benseny, tiles bsicos de clculo numrico, Ed. Labor - Univ.

    Aut. de Barcelona, Barcelona, 1993.

    [2] R.L. Burden and J.D. Faires, Anlisis numrico, 7

    aedicin, Thomson-Learning, Mexico,

    2002.

    [3] D. Kincaid and W. Cheney, Anlisis numrico, Ed. Addison-Wesley Iberoamericana,

    Reading, USA, 1994.

  • Captulo 2 Algoritmos e IteracionesAlgoritmos e Iteraciones

    '

    &

    $

    %

    '

    &

    $

    %

    Interrogantes centrales del captulo

    Conocer la estructura general de los algoritmos y establecer criterios paracompararlos.

    Aproximar soluciones de ecuaciones no lineales f(x) == 0. con mtodoselementales:

    Mtodo de la biseccin.

    Mtodos de Regula-Falsi y Newton.

    Conocer y analizar las iteraciones de punto fijo. Analizar la convergencia y el error en los mtodos iterativos. Acelerar la convergencia de una sucesin.

    '

    &

    $

    %

    '

    &

    $

    %

    Destrezas a adquirir en el captulo

    Ser capaz de describir algoritmos sencillos y, en particular, los algoritmoscorrespondientes a los distintos mtodos del captulo.

    Saber implementar en el ordenador los programas de los mtodos del ca-ptulo.

    Conocer el enunciado y la demostracin del teorema del punto fijo de Ba-nach as como condiciones suficientes que garanticen sus hiptesis.

    Aplicar los programas construidos de forma efectiva en la localizacin yaproximacin nmerica de races de algunas ecuaciones no lineales.

    Analizar la convergencia de las aproximaciones proporcionadas por los dis-tintos mtodos y la conveniencia de utilizar uno u otro mtodo numrico.

    En la unidad anterior hemos trabajado con algunos algoritmos de una forma ms o menosinformal. Para escribir los algoritmos de forma que se puedan implementar fcilmente en unordenador debemos ser ms precisos, considerar siempre que tienen que construirse sobre unaestructura clara y ordenada.

  • 28 UMU Mtodos Numricos, 2007-2008

    En este captulo describiremos la forma general de los algoritmos, cmo se evalan y cmomedir su complejidad para poder compararlos. Prestaremos especial atencin a los algoritmositerativos y al orden de su convergencia. Trabajaremos con algunos algoritmos elementales deresolucin de ecuaciones, estudiaremos el teorema del punto fijo de Banach y el algoritmo deAitken para acelerar la convergencia de sucesiones.

    Desarrollo de los contenidos fundamentales

    Algoritmos: forma, evaluacin y complejidad.

    Algoritmos iterativos. Mtodos iterativos elementales de resolucin de ecuaciones no linea-les:

    Mtodo de la biseccin. Mtodo de regula-falsi. Mtodo de Newton.

    Iteracin de punto fijo. Atractores y repulsores

    Orden de convergencia de una sucesin y constante asinttica del error.

    Aceleracin de la convergencia: algoritmos de Aitken y Steffensen.

    Temporalizacin: 8HTe + 2HPb + 2HLab = 12 H

    2.1. Introduccin

    Algunos autores aseguran que la palabra algoritmo proviene del nombre del matemticopersa Abu Jafar Mohamemed ibn Musa al-Khowarizmi, que trabajo en Bagdad alrededor del ao840. Aunque si acudimos al diccionario de la Real Academia Espaola encontramos la siguientedefinicin que se corresponde con nuestras intenciones:

    algoritmo: (Quiz del lat. tardo algobarismus, y este abrev. del r. cls. lisabu lubar,clculo mediante cifras arbigas).

    (i) m. Conjunto ordenado y finito de operaciones que permite hallar la solucin de unproblema.

    (ii) m. Mtodo y notacin en las distintas formas del clculo.

    Comencemos este captulo con una visita a un prototipo tpico de un algoritmo:El algoritmo de Euclides para encontrar el mximo comn divisor de dos nmeros naturales

    que fue descrito alrededor del ao 350 a.C. y se puede visitar en el libro de los Elementos deEuclides.

  • Algoritmos-Iteraciones 29

    Algoritmo 2.1 El algoritmo de EuclidesDatos de entrada: m, n NDatos de salida: El mximo comn divisor de m y n: MCD(m,n) NVariables:

    m;n; // para operar sin cambiar los nmeros.auxiliar; // para hacer cambios.

    Fujo del programa:if(m >= n){ m = m; n = n; }

    else{ m = n; n = m;}while(n 6= 0){auxiliar = n;n = Resto(m n);m = auxiliar}

    Parada: MCD(m,n) = m

    Cmo encuentra este algoritmo el mximo comn divisor?Simplemente, basta con observar que los divisores comunes de m y n (m n)tambin son

    los divisores comunes de n y Resto(m n), si adems este resto es cero n es el mximo comndivisor .

    El algoritmo de Euclides trabaja reduciendo el tamao de m y n hasta que el resto sea cero,momento en el que habremos encontrado el mximo comn divisor.

    Ejemplo 2.1.1 Utilizando el algoritmo de Euclides calcula el MCD(18981, 34560).

    El algoritmo de Euclides muestra varias propiedades tpicas de los algoritmos:

    Los pasos del algoritmo estn definidos con claridad.

    Un cierto nmero de etapas se repiten en un bucle (while) y est claro que slo se realizanuna cantidad finita de repeticiones.

    Una vez que se introducen los nmeros m y n en el algoritmo los clculos se realizan deforma automtica hasta producir el MCD como respuesta.

    El algoritmo puede implementarse fcilmente en una mquina programable (ordenador).

    2.2. Algoritmos: forma, evaluacin y complejidad

    El anlisis del algoritmo de Euclides nos ha dada una idea de lo que es un algoritmo, queestructura tiene y cmo podemos juzgar razonable su implementacin.

    Definicin 2.2.1 (Algoritmo) Un algoritmo es un procedimento de clculo que consiste enun conjunto de instrucciones precisas. Estas instrucciones especifican una sucesin finita deoperaciones que una vez ejecutadas proporcionan la solucin a un problema de entre los deuna clase especial de problemas.

  • 30 UMU Mtodos Numricos, 2007-2008

    Mirando el algoritmo de Euclides observamos que tiene una estructura (forma) que vamos arequerir a los dems algoritmos:Estructura de un lgoritmo.(forma)

    Los Datos de Entrada son los valores de inicio que deben de aportarse al algoritmoantes de su ejecucin. Estos datos iniciales deben de pertenecer a unos tipos de datospredeterminados.

    LosDatos de Salida son los datos esperados como respuesta de la ejecucin del algoritmo.En algunos casos el algoritmo puede acabar enviando un mensaje de ERROR sealandola imposibilidad de alcanzar la solucin esperada.

    El Flujo del algoritmo consiste en una sucesin de instrucciones aritmticas que debenser realizadas. Estas instrucciones deben de cumplir las siguientes propiedades:

    (i) Cada etapa debe estar definida de forma precisa y sin ambigedades. Todas las posi-bles situaciones deben de ser tenidas en cuenta.

    (ii) El flujo debe terminar despus de un nmero finito de etapas.

    (iii) El flujo debera de ser eficaz para un conjunto amplio de problemas. Debe de tenerseen cuenta su aplicabilidad en situaciones generales.

    (iv) El flujo debe de poder ser implementado en una mquina de clculo.

    Adems de las operaciones aritmticas habituales (+,,,, ...) y las funciones elementales(exp, sen, cos,

    , ...) en los algoritmos tambin se utilizan operaciones lgicas (comparaciones,

    asignaciones y bucles). En funcin de las posibilidades del lenguaje de programacin a utilizaren el proceso de implantacin del algoritmo se puede simplificar, ms o menos, la descripcindel flujo.

    Cuando un algoritmo est traducido en un lenguaje de programacin concreto para ser im-plementado en la mquina, nos referiremos a l llamndolo programa.

    El proceso de evaluar un algoritmo consiste en seguir su desarrollo (etapa por etapa) paraasegurarnos que cumple con las propiedades que acabamos de describir. En muchos casos, bastacon realizar los distintos clculos de forma ordenada con un ejemplo concreto para detectarposibles fallos.

    Frecuentemente, existen distintos algoritmos que pueden usarse para resolver un mismo pro-blema. Es necesario disponer de criterios para comparar distintos algoritmos. Estos criteriosdeben de ser independientes de implementaciones particulares en computadoras concretas y deejemplos de aplicaciones con unas condiciones iniciales concretas. Tambin deben poder aportarafirmaciones objetivas y concretas.

    Existe una teora en Matemticas y Ciencias de la Computacin, la teora de la Complejidad(Complexity theory), cuyo objetivo es responder a cuestiones como:

    Cmo se puede cuantificar la calidad y la ejecucin de un algoritmo?

    Qu criterios pueden construirse para comparar algoritmos?

    Se pueden mejorar los algoritmos existentes?

    En que sentido se puede afirmar que un algoritmo es el mejor posible?

    Son tiles los mejores algoritmos?

  • Algoritmos-Iteraciones 31

    En esta teora se abordan dos tipos distintos de criterios para medir la complejidad de un algo-ritmo: criterios relativos a la complejidad esttica como pueden ser la longitud del algoritmo,el nmero de ordenes que contiene o la estabilidad y el condicionamiento de las operaciones pre-vistas; y criterios de complejidad dinmica relativos al tiempo de ejecucin y a requerimientode memoria en el sentido de la adecuacin de la implantacin del algoritmo a las condicionesreales de espacio y tiempo.

    Nosotros nos fijaremos en las siguientes tres cualidades de los algoritmos para compararlos:

    (i) el nmero de operaciones previstas en el algoritmo,

    (ii) la previsibilidad de la convergencia de los distintos mtodos iterativos, y

    (iii) la velocidad de esa convergencia (orden de convergencia).

    En los apartados siguientes vamos a analizar esa dos ltimas cualidades de los procesositerativos. Ahora, para finalizar esta seccin vamos a recordar el algoritmo de Horner para evaluarpolinomios comparndolo con las evaluaciones usuales. Utilizamos el nmero de operacionescomo criterio de comparacin.

    El algoritmo de Horner

    En el ejercicio 1.6.5 proponamos contar el nmero de operaciones necesarias para evaluarun polinomio. En este apartado vamos a hacer los clculos vamos a escribir correctamente elalgoritmo de Horner.

    Un polinomio complejo es una combinacin lineal de potencias naturales de z:

    p(z) = a0 + a1z + + anzn (2.1)

    donde los coeficientes ak C son nmeros complejos y an 6= 0. En estas condiciones se dice queel polinomio p(z) tiene grado n N.

    Para calcular el valor del polinomio p en un punto z0, si usamos la relacin zk+10 = z0.zk0 y

    la frmula (2.1), necesitaremos hacer 2n 1 multiplicaciones (1 en a1z0 y 2 multiplicaciones encada sumando akzk0 para k 2) y n sumas. En total 3n 1 operaciones.

    Sin embargo, existe un procedimiento ms econmico, y por lo tanto ms estable para elclculo, conocido como Esquema de Horner que alguno conoceris como la Regla de Rufini:

    p(z0) = (. . . ((anz0 + an1) z0 + an2) z0 + + a1) z0 + a0.

    Los multiplicadores de z0 en esta frmula se van obteniendo de forma recursiva siguiendo elesquema

    an an1 an2 . . . . . . a1 a0z0 z0bn z0bn1 . . . . . . z0b2 z0b1

    bn bn1 bn2 . . . . . . b1 b0

    con bn = an y, bk = bk+1z0 + ak para k = (n 1), . . . , 1, 0.Con estas operaciones, slo se necesitan 2(n 1) operaciones para calcular b0 = p(z0).Adms, los coeficientes bk tambin determinan el cociente q(z) de la divisin de p(z) entre

    (z z0),p(z) = q(z)(z z0) + p(z0). (2.2)

  • 32 UMU Mtodos Numricos, 2007-2008

    En efecto, si escribimos

    q(z) = bnzn1 + bn1zn2 + + b2z + b1.q(z)(z z0) = bnzn + bn1zn1 + + b2z2 + b1z

    (bnz

    n1z0 + + b2z0 + b1z0),

    q(z)(z z0) + b0 = bnzn + (bn1 bnz0)zn1 + + (b1 b2z0)z + (b0 b1z0).Tal y como tenemos definidos los coeficientes bk, tenemos bn = an y (bkbk+1z0) = ak, de donderesulta la igualdad 2.2.

    El siguiente algoritmo reproduce el esquema de Horner que hemos expuesto, y lo implemen-taremos en el correspondiente programa de clculo en las sesiones de prcticas.

    Algoritmo 2.2 Esquema de HornerDatos de entrada:a0, a1, . . . , an(coeficientes del polinomio p); zFujo del programa:

    bn = anfor(k=n-1;k>=0;k- -){bk = bk+1z + ak}

    Datos de salida:(valor de p(z)) b0; (coeficientes de q(z)) b1, . . . , bn

    Observad que si slo necesitamos obtener el valor de p(z) podemos acelerar el algoritmo utili-zando una nica variable b en lugar de una lista bk. Se inicia b con el valor de an y en el bucle(for) se hace la asignacin b = bz + ak.

    Ejemplo 2.2.2 z = 2 es raz del polinomio p(z) = z4 4z3 + 7z2 5z 21 4 7 5 2

    2 2 4 6 2b4 = 1 b3 = 2 b2 = 3 b1 = 1 b0 = 0

    p(2) = 0 y p(z) = (z 2)(1z32z2 + 3z + 1).

    2.3. Mtodos elementales de resolucin de ecuaciones no lineales

    Vamos a analizar tres algoritmos sencillos para la bsqueda de soluciones de ecuaciones dela forma

    f(x) == 0,

    donde f : (a, b) R es una funcin real de variable real

    2.3.1. El Mtodo de la Biseccin

    Teorema 2.3.1 (Bolzano) Sea f : [a, b] R una funcin continua tal quef(a) f(b) < 0.

    Entonces existe x [a, b] tal que f(x) = 0.

  • Algoritmos-Iteraciones 33

    Recuerdas la demostracin constructiva representada en el grfico:

    0.25 0.5 0.75 1 1.25 1.5

    -1.5

    -1

    -0.5

    0.5

    1

    0.25 0.5 0.75 1 1.25 1.5

    -1.5

    -1

    -0.5

    0.5

    1

    0.25 0.5 0.75 1 1.25 1.5

    -1.5

    -1

    -0.5

    0.5

    1

    0.25 0.5 0.75 1 1.25 1.5

    -1.5

    -1

    -0.5

    0.5

    1

    0.25 0.5 0.75 1 1.25 1.5

    -1.5

    -1

    -0.5

    0.5

    1

    Escribe la demostracin!

  • 34 UMU Mtodos Numricos, 2007-2008

    En si misma esa prueba es el algoritmo de la biseccin:

    Algoritmo 2.3 Mtodo de la biseccinDatos de entrada:Funcion f ; a, b R; precision R; nmaxiter ZDatos de salida: solucin x (f(x) = 0) o mensaje de errorVariables:

    aa, bb, h, c, u, v, w R // auxiliares para operar sin cambiar los nmeros.Fujo del programa:

    aa = a; bb = b; u = f(aa); v = f(bb);if(u v > 0){ Parada: Error- No hay cambio de signo}for(k=1;k 0){ aa = c; u = w; }

    else{ bb = c; v = w;}}

    Parada: Error- No hay convergencia

    las sucesiones ak = aa y bk == bb (en la etapa k) son montonas acotadas, encierranla sucesin ck = c (en la etapa k), y convergen hacia una solucin x de la ecuacinf(x) == 0.

    El algoritmo de la biseccin proporciona en cada etapa k una aproximacin ck = c ala raz x de manera que

    |x ck| b a2k+1 .

    En el algoritmo de la biseccin tenemos asegurada la convergencia del mtodo aunque lavelocidad de las iteradas es constante: en cada etapa se reduce el error en la aproximacin a lamitad.

    Ejemplo 2.3.2 En la tabla que sigue se pueden observar valores de las 37 primeras iteracionesdel mtodo de la biseccin aplicado a la funcin f(x) = ex x2 x 1 en el intervalo [1,2],tomando precision = 1010.

    k= 1 aa= 1.0 bb= 2.0 u=-0.28171817154095447 v=0.3890560989306504k= 2 aa= 1.5 bb= 2.0 u=-0.2683109296619355 v=0.3890560989306504k= 3 aa= 1.75 bb= 2.0 u=-0.05789732399427017 v=0.3890560989306504k= 4 aa= 1.75 bb= 1.875 u=-0.05789732399427017 v=0.13019412033011246k= 5 aa= 1.75 bb= 1.8125 u=-0.05789732399427017 v=0.02808641188198635

    k= 11 aa= 1.79296875 bb= 1.7939453125 u=-4.456149959981559E-4 v=9.443070728494263E-4k= 12 aa= 1.79296875 bb= 1.79345703125 u=-4.456149959981559E-4 v=2.4886798603152016E-4k= 13 aa= 1.793212890625 bb= 1.79345703125 u=-9.849297435415849E-5 v=2.4886798603152016E-4k= 14 aa= 1.793212890625 bb= 1.7933349609375 u=-9.849297435415849E-5 v=7.515763303089784E-5k= 15 aa= 1.79327392578125 bb= 1.7933349609375 u=-1.1675138180677891E-5 v=7.515763303089784E-5

  • Algoritmos-Iteraciones 35

    k= 21 aa= 1.7932815551757812 bb= 1.7932825088500977 u=-8.21858566979472E-7 v=5.348177927189113E-7k= 22 aa= 1.7932820320129395 bb= 1.7932825088500977 u=-1.4352084320989889E-7 v=5.348177927189113E-7k= 23 aa= 1.7932820320129395 bb= 1.7932822704315186 u=-1.4352084320989889E-7 v=1.9564836062357926E-7k= 24 aa= 1.7932820320129395 bb= 1.793282151222229 u=-1.4352084320989889E-7 v=2.606373072921997E-8k= 25 aa= 1.7932820916175842 bb= 1.793282151222229 u=-5.8728563345766815E-8 v=2.606373072921997E-8

    k= 32 aa= 1.7932821325957775 bb= 1.7932821330614388 u=-4.338631676148452E-10 v=2.2857626902350603E-10k= 33 aa= 1.7932821328286082 bb= 1.7932821330614388 u=-1.0264278316185482E-10 v=2.2857626902350603E-10k= 34 aa= 1.7932821328286082 bb= 1.7932821329450235 u=-1.0264278316185482E-10 v=6.296652088622068E-11k= 35 aa= 1.7932821328868158 bb= 1.7932821329450235 u=-1.9838353182421997E-11 v=6.296652088622068E-11k= 36 aa= 1.7932821328868158 bb= 1.7932821329159196 u=-1.9838353182421997E-11 v=2.156363976268949E-11

    El mtodo de encuentra c = 1.7932821329013677, f(c) = 8.633094239485217E 13, comoraz, en 36 etapas (pasos).

    En los dos apartados siguientes vamos a ver dos intentos de aceleracin de esta convergencia:los mtodos de la regla falsa y de Newton.

    2.3.2. El mtodo de la Regula Falsi

    El mtodo de la Regula Falsi (regla falsa), es una modificacin del mtodo de la biseccincon la esperanza de obtener una aproximacin de la raz de forma ms rpida.

    Consiste en utilizar el punto de corte c de la secante que une los extremos de la curva y = f(x)en a y b en vez del punto medio, para dividir el intervalo y despus iterar el proceso quedndonoscon los subintervalos en los que f cambie de signo.

    En los siguientes grficos podemos observar distintas etapas de este mtodo:

    1.2 1.4 1.6 1.8

    -0.25

    0.25

    0.5

    0.75

    1

    1.25

    1.2 1.4 1.6 1.8

    -0.25

    0.25

    0.5

    0.75

    1

    1.25

    1.2 1.4 1.6 1.8

    -0.25

    0.25

    0.5

    0.75

    1

    1.25

    1.2 1.4 1.6 1.8

    -0.25

    0.25

    0.5

    0.75

    1

    1.25

    Para describir el algoritmo, recordar que la ecuacin de la recta que pasa por los puntos (a, u)y (b, v) es

    y = u+v ub a (x a).

  • 36 UMU Mtodos Numricos, 2007-2008

    Si ahora hacemos y = 0 en esa expresin para determinar la abscisa de corte de la recta con eleje de abscisas se tiene

    x = a u b av u.

    Modificando el algoritmo del mtodo de la biseccin en la definicin de c tomando el cortede la secante a la curva y = f(x) en los extremos de los intervalos con el eje de abscisas en vezde considerar el centro del intervalo, obtenemos el siguiente algoritmo:

    (Enmarcada sobre fondo gris, est la modificacin efectuada)

    Algoritmo 2.4 Algoritmo de la regula falsiDatos de entrada:Funcion f ; a, b R; precision R; nmaxiter ZDatos de salida: solucin x (f(x) = 0) o mensaje de errorVariables:

    aa, bb, h, c, u, v, w R // auxiliares para operar sin cambiar los nmeros.Fujo del programa:

    aa = a; bb = b; u = f(aa); v = f(bb);if(u v > 0){ Parada: Error- No hay cambio de signo}for(k=1;k

  • Algoritmos-Iteraciones 37

    Ejemplo 2.3.4 Si consideramos la funcin g(x) = x3 x 1 que tambin cambia de signoen [1,2], y tomamos la precision = 1010, el mtodo de la biseccin nos da la raz c =1.324717957242683 con g(c) = 8.79785133633959E 12 en 37 etapas.

    Si aplicamos la regula falsi a esta misma funcin, en el mismo intervalo, y con la mismaprecisin, obtenemos la misma raz en 31 etapas, que slo es unas cuantas iteraciones menos queel de la biseccin.

    Ejercicio 2.3.1 Trabajando sobre la siguiente grfica. Dad una estimacin del nmero de etapasque necesitan los mtodos de la biseccin y de la regula falsi para alcanzar buenas estimacionesde la raz. Observad que en este caso el mtodo de la biseccin parece ser bastante ms rpidoque el de la regula falsi.

    Observando la grfica del ejercicio podemos conjeturar (sin equivocarnos demasiado) que elralentizamiento de la regula falsi se debe a la presencia de regiones donde la curva tiene pocapendiente donde la secante aproxima mal a la curva, para pasar al final a una regin con muchapendiente donde las secantes aproximan bien a la curva.

    Para evadir esta situacin se puede utilizar el siguiente truco que consiste en reducir lapendiente de las secante en las etapas en las que se sea consciente de que podemos estar ralen-tizandonos.

    La modificacin esencialmente consiste en guardar memoria del signo de f en el punto decorte de la secante con el eje de abscisas y en caso de que el signo se repita en la siguienteiteracin, se inclinar ms la secante buscando una mejor aproximacin del cero de f .

    En la primera etapa, se utiliza f(a) para comparar con el signo de f(c) en el punto de corte,c, de la secante con el eje de abscisas.

    Grficamente hacemos lo siguiente:

  • 38 UMU Mtodos Numricos, 2007-2008

    1.2 1.4 1.6 1.8

    -0.25

    0.25

    0.5

    0.75

    1

    1.25

    1.2 1.4 1.6 1.8

    -0.25

    0.25

    0.5

    0.75

    1

    1.25

    1.2 1.4 1.6 1.8

    -0.25

    0.25

    0.5

    0.75

    1

    1.25

    1.2 1.4 1.6 1.8

    -0.25

    0.25

    0.5

    0.75

    1

    1.25

    (Enmarcadas sobre fondo gris, estn la modificaciones efectuadas sobre el mtodo de la regulafalsi)

    Algoritmo 2.5 Regula falsi modificadoDatos de entrada:Funcion f ; a, b R; precision R; nmaxiter ZDatos de salida: solucin x (f(x) = 0) o mensaje de errorVariables:

    aa, bb, h, c, u, v, w, w1 R // auxiliares para operar sin cambiar los nmeros.Fujo del programa:

    aa = a; bb = b; u = f(aa); v = f(bb);if(u v > 0){ Parada: Error- No hay cambio de signo}w1 = ufor(k=1;k 0)){ v = 0.5 v}aa = c; u = w; w1 = w }

    else{if((w w1 > 0)){ u = 0.5 u}bb = c; v = w; w1 = w }}

    Parada: Error- No hay convergencia

  • Algoritmos-Iteraciones 39

    Ejemplo 2.3.5 Volviendo a retomar los ejemplos anteriores, para f(x) = ex x2 x 1en [1,2], el mtodo de la regula falsi modificado proporciona la raz c = 1.7932821329006305f(c) = 1.8562928971732617E 13 en slo 8 etapas.

    Para la funcin g(x) = x3 x 1 que tambin cambia de signo en [1,2], la modificacin dela regula falsi proporciona la raz c = 1.324717957244746 f(c) = 2.220446049250313E 16 en 7etapas.

    Con el truco propuesto, podemos pensar en que vamos a tener mejor convergencia.

    2.3.3. Mtodo de Newton

    Una variacin a los mtodos anteriores aparece cuando utilizamos rectas tangentes a la curvay = f(x) para aproximarnos a la raz. Este es el conocido como mtodo de Newton.

    Consiste en iterar el proceso siguiente:

    Dada una aproximacin xi de la raz de f , consideramos g(x) = f(xi) + f (xi)(x xi)la ecuacin de la tangente a y = f(x) en xi.

    resolvemos la ecuacin lineal g(x) == 0, tomando h = f(xi)f (xi) y xf = xi+ h.

    la solucin xf de la ecuacin aproximada, ser la nueva aproximacin de la raz de laecuacin inicial.

    Grficamente se puede representar como sigue:

    1.25 1.5 1.75 2.25 2.5 2.75 3

    2

    4

    6

    8

    10

    1.25 1.5 1.75 2.25 2.5 2.75 3

    2

    4

    6

    8

    10

    1.25 1.5 1.75 2.25 2.5 2.75 3

    2

    4

    6

    8

    10

    1.25 1.5 1.75 2.25 2.5 2.75 3

    2

    4

    6

    8

    10

    El algoritmo es muy simple:

  • 40 UMU Mtodos Numricos, 2007-2008

    Algoritmo 2.6 Mtodo de NewtonDatos de entrada:Funcin f ; x0 R; precision R; nmaxiter ZDatos de salida: solucin x (f(x) = 0) o mensaje de errorVariables:

    xi = x0 // la aproximacin inicial.fi; dfi;// Para almacenar el valor de f y el de f en la aproximacin.hi = 1+ precision; // Para almacenar el incremento de xi, con un valor inicial grande.

    Fujo del programa:

    for(k=1;k

  • Algoritmos-Iteraciones 41

    Ejemplo 2.3.7 Puntos peridicos

    -1 -0.5 0.5 1

    -10

    -5

    5

    10

    15

    -1 -0.5 0.5 1

    -10

    -5

    5

    10

    15

    -1 -0.5 0.5 1

    -10

    -5

    5

    10

    15

    Cuando la derivada de f se anula, aparecen problemas:

    Ejemplo 2.3.8 Sucesin divergente (asintotas)

    -8 -6 -4 -2

    -50

    -40

    -30

    -20

    -10

    10

    -8 -6 -4 -2

    -50

    -40

    -30

    -20

    -10

    10

    Ejemplo 2.3.9 Extremos relativos (empezamos cerca del mnimo)

    -1 -0.5 0.5 1 1.5 2 2.5

    1

    2

    3

    4

    5

  • 42 UMU Mtodos Numricos, 2007-2008

    Referencias para la seccin

    Mtodo de la Biseccin: Libro de Burden-Faires [2], seccin 2.1, algoritmo 2.1.

    Mtodo de la regula falsi: Libro de Burden-Faires [2], seccin 2.3, algoritmo 2.5.

    Mtodo de Newton: Libro de Burden-Faires [2], seccin 2.3, algoritmo 2.3.

    2.4. Iteracin de punto fijo

    Definicin 2.4.1 Un punto fijo de una funcin f : C C es cualquier punto x C para elcual

    f(x) = x.

    En esta seccin vamos a estudiar los problemas de punto fijo, es decir, problemas deresolucin de ecuaciones

    f(x) == x,

    donde f : C C es una funcin del conjunto C en si mismo. Vamos a poner ejemplos defunciones reales de variable real aunque el resultado principal de la seccin lo probaremos en elcontexto de espacios mtricos completos.

    Los problemas de bsqueda de races de funciones g(x) == 0 son equivalentes a los debsqueda de puntos fijos f(x) == x, considerando funciones auxiliares:

    Si f(x) tiene un punto fijo en x, entonces g(x) = f(x) x tiene una raz en x.

    Reciprocamente, si g tiene una raz en x, entonces f(x) = h(x)g(x)+x tiene un punto fijoen x.

    Vamos a buscar puntos fijos viendo el comportamiento (la dinmica) de las iteradas defunciones, es decir, sucesiones de la forma

    xn = f(xn1).

    A estas sucesiones se les llama rbitas del punto x[0] y la funcin f ,

    Proposicin 2.4.2 Si f es una funcin continua y xn converge, entonces su lmite x es unpunto fijo de f .

    La prueba de la proposicin es la siguiente cadena de igualdades

    f(x) = lmnf(xn) = lm

    nxn = lm

    nxn+1 = x.

    Esta tcnica de considerar sucesiones de iteradas, xn = f(xn1), para buscar puntos fijos,recibe el nombre de iteracin de punto fijo o iteracin funcional. El algoritmo correspon-diente es:

  • Algoritmos-Iteraciones 43

    Algoritmo 2.7 Iteracin de punto fijoDatos de entrada:Funcin f ; x0 R; precision R; nmaxiter ZDatos de salida: solucin x (f(x) = x) o mensaje de errorVariables:

    xx = x0 // los puntos de la rbita.fx = f(xx); // el siguiente punto de la rbita f.

    Fujo del programa:

    for(k=1;k

  • 44 UMU Mtodos Numricos, 2007-2008

    0.2 0.4 0.6 0.8 1

    0.2

    0.4

    0.6

    0.8

    1

    0.2 0.4 0.6 0.8 1

    0.2

    0.4

    0.6

    0.8

    1

    Recordis resultados del curso Analisis I que garanticen la existencia de puntos fijos y suunicidad?

    Echad un vistazo al Teorema 2.2 del libro de Burden-Faires [2] y seguro que recordis unaaplicacin del teorema de Bolzano y otra de la frmula de los incrementos finitos.

    El siguiente teorema da una condicin suficiente para la convergencia de las iteraciones depunto fijo. Vamos e enunciarlo para funciones definidas en espacios mtricos completos (X, d),que contiene como caso particular a R, Rn, a los espacios de Banach (espacios normados com-pletos) (X, ) y a sus subconjuntos cerrados.

    Definicin 2.4.4 Sea (X, d) un espacio mtrico completo, se dice que una funcin f : X X,es una funcin contractiva cuando existe una constante c, 0 < c < 1, verificando :

    d(f(x), f(y)) c d(x, y) para cada x e y en X.

    Teorema 2.4.5 (Teorema del Punto Fijo de Banach) Sea (X, d) un espacio mtrico com-pleto y f : X X una funcin (contractiva) tal que existe una constante c, 0 < c < 1,verificando :

    d(f(x), f(y)) c d(x, y) para cada x e y en X.Entonces la ecuacin f(x) == x tiene una nica solucin xs X.

    Esta solucin se encuentra como el lmite de la sucesin de iteradas

    xs = lmnx(n), x(n) = f(x(n 1)).

    para un x(0) en X arbitrario.Adems, el error en cada etapa est acotado por

    e(n) = d(x(n), xs) cn

    1 cd(x(1), x(0))

    Demostracin:Ideas que intervienen

    Como f es contractiva si tiene un punto fijo este es nico.

    En efecto, si f(x) = x y f(y) = y, entonces

    d(x, y) = d(f(x), f(y)) cd(x, y),y como 0 < c < 1, esto slo es posible si d(x, y) = 0, e. d. si x = y.

  • Algoritmos-Iteraciones 45

    Como f es contractiva, f es continua. Si la iterada funcional xn = f(xn1) converge, sulmite es el punto fijo de f (Proposicin 2.4.2).

    Como f es contractiva las iteradas funcionales xn son sucesiones de Cauchy y en conse-cuencia son convergentes ya que X es un espacio mtrico completo.

    (i) d(xn, xn1) c d(xn1, xn2) c2 d(xn1, xn3) ... cn1d(x1, x0).(ii) d(xn+p, xn) d(xn+p, xn+p1) + d(xn+p1, xn) ...

    d(xn+p, xn+p1) + d(xn+p1, xn+p2) + ...+ d(xn+1, xn) (cn+p1 + cn+p2 + ...+ cn)d(x1, x0) = c

    ncn+p1c d(x1, x0) 0.

    La frmula de los incrementos finitos nos ofrece condiciones para que una funcin seacontractiva y se cumpla el teorema del punto fijo:

    |f(x) f(y)| = |f (x+ t(y x))||x y| c|x y|,donde (0 < t < 1), y |f (s)| c para todo s [a, b] (x+ t(y x) [a, b]).

    Corolario 2.4.6 Sea f : [a, b] [a, b] una funcin derivable para la que existe una constantec, 0 < c < 1 tal que:

    |f (x)| c para todo x [a, b].Entonces la ecuacin f(x) == x tiene una nica solucin xs en [a, b]. Esta solucin es el lmitede la sucesin de iteradas

    xn = f(xn1)

    definida a partir de cualquier punto x0 [a, b]. Adems:

    en = |xn xs| cn

    1 c |x1 x0|.

    Ejemplo 2.4.7 (Ejemplos 3 y 4 del apartado 2.2 de Burden-Faires [2]) La nica raz dep(x) = x3 + 4x2 10 en el intervalo [1, 2] se puede convertir en punto fijo x == g(x), de unafuncin g de diferentes formas.

    Vamos a relacionar 5 elecciones distintas de g, y describiremos el comportamiento de lasiteradas funcionales empezando en x0 = 1.5

    (i) x = g1(x) = x x3 4x2 + 10xn = g1(xn1) es divergente.

    g1 no es contractiva, |g(x)| > 1 en todo x [1, 2].

    (ii) x = g2(x) =(10x 4x

    ) 12

    g2 no lleva el intervalo [1,2] al intervalo [1,2]. La iterada x3 no est definida.

    (iii) x = g3(x) = 12(10 x3)12

    xn = g3(xn1) es convergente.

    g3 es estrictamente decreciente en [1,2]. Lleva el intervalo [1,1.5] al intervalo [1.28,1.5].Adems como |g3(x)| |g3(1.5)| 0.66 < 1 para todo x [1.28, 1.5], podemos concluirque g3 es contractiva en ese intervalo.

  • 46 UMU Mtodos Numricos, 2007-2008

    (iv) x = g4(x) =(

    104+x

    ) 12

    xn = g4(xn1) es convergente, y converge ms rpido que la anterior.

    g4 es decreciente, lleva el intervalo [1,2] al intervalo [1,2] y |g4(x)| = 5

    10 53

    < 0.15 paratodo x [1, 2].g4 es contractiva con constante menor que la de g3. Esta es la razn por la iterada para g4converge ms rpidamente que la de g4.

    (v) x = g5(x) = x x3+4x2103x2+8x .La iterada funcional para g5 es la iterada del mtodo de Newton para p(x) y es ms rpidaque las dos iteradas anteriores. Enseguida vamos a ver porqu.

    2.4.1. Atractores y repulsores

    Sea f : [a, b] R es una funcin derivable con derivada continua y x [a, b] un punto fijode f (f(x) = x)

    El tamao de la derivada |f (x)| indica el comportamiento de las iteradas funcionales en lasprximidades de x.

    Proposicin 2.4.8 Si |f (x)| < 1 entonces, en un entorno de x se cumplen las hiptesis delteorema del punto fijo. Se dice que x es un punto atractor (o sumidero) de f .

    Las iteradas xn = f(xn1) convergen a x, para x0 prximo a x.

    Demostracin:

    Ideas que intervienen

    |f (x)| < c < 1 y f continua que existe > 0 tal que |f (x)| < c para x [x , x+ ].

    f : [x , x+ ] [x , x+ ] En efecto:

    |f(x) x| = |f(x) f(x)| = |f ()||x x| < c < .

    ( est entre x y x, [x , x+ ])

    Se cumplen las hiptesis del teorema del punto fijo para f definida en [x , x+ ].

    Ejemplo 2.4.9 (El mtodo de Newton) El mtodo de Newton consiste en iterar el pro-ceso siguiente:

    Dada una raz x de una funcin derivable f , (f(x) = 0). Si xn es una aproximacinde x consideramos aux(x) = f(xi) + f (xi)(x xi) la ecuacin de la tangente a y = f(x)en xn, resolvemos la ecuacin lineal aux(x) == 0, y tomamos la solucin como nuevaaproximacin xn+1 = xn f(xn)f (xn) .

  • Algoritmos-Iteraciones 47

    Considerando la funcin

    g(x) = x f(x)f (x)

    .

    Esperamos encontrar x como lmite de xn+1 = g(xn), e.d., como punto fijo de g.

    Si f es dos veces derivable con f continua y f (x) 6= 0, g es derivable en un entorno de xy

    g(x) = 0(< 1) y g(x) =f (x)f (x)

    .

    x es un atractor.

    Como corolario de la proposicin 2.4.8 tenemos el siguiente teorema de convergencia localpara el mtodo de Newton.

    Proposicin 2.4.10 Sea f : (a, b) R una funcin dos veces derivable con f continua. Seax (a, b) una raz simple de f , e.d. f(x) = 0 y f (x) 6= 0. Entonces existe > 0 tal que six0 (a, b), y |x0 x| < , la sucesin de iteradas de Newton, xn+1 = xn f(xn)f (xn) , est biendefinida para todo n N y converge hacia x.

    Ejemplo 2.4.11 f(x) = 0.25 ex tiene una atractor cerca de 0.4, si hacemos las iteradasfuncionales grficamente desde x0 = 0.9 tenemos:

    0.2 0.4 0.6 0.8 1

    0.2

    0.4

    0.6

    0.8

    1

    0.2 0.4 0.6 0.8 1

    0.2

    0.4

    0.6

    0.8

    1

    0.2 0.4 0.6 0.8 1

    0.2

    0.4

    0.6

    0.8

    1

    0.2 0.4 0.6 0.8 1

    0.2

    0.4

    0.6

    0.8

    1

  • 48 UMU Mtodos Numricos, 2007-2008

    Cuando la derivada de la funcin en el punto fijo es mayor que 1, el comportamiento de lasiteradas funcionales cerca de este punto fijo es todo lo contrario a lo que ocurre con los atractores.

    Ejemplo 2.4.12 f(x) = 0.25 ex, tiene punto fijo cerca de 2.15, si hacemos las iteradas fun-cionales grficamente desde x0 = 2.1 tenemos:

    0.5 1 1.5 2 2.5 3

    1

    2

    3

    4

    5

    0.5 1 1.5 2 2.5 3

    1

    2

    3

    4

    5

    0.5 1 1.5 2 2.5 3

    1

    2

    3

    4

    5

    0.5 1 1.5 2 2.5 3

    1

    2

    3

    4

    5

    Proposicin 2.4.13 Si |f (x)| > 1 entonces, en ningn entorno de x se cumplen las hiptesisdel teorema del punto fijo. Se dice que x es un punto repulsor (o fuente) de f .

    Las iteradas xn = f(xn1) no convergen a x, para x0 prximo a x, salvo que xn = x paraalgn n.

    Demostracin:Ideas que intervienen

    |f (x)| > C > 1 + f continua que existe > 0 tal que |f (x)| > C para x [x, x+].Si xn = f(xn1), entonces xn 6 x salvo si para algn n0, xn0 = x (xn = x,n > n0).

    En efecto: si fuese convergente existira n0 tal que 0 < |xn x| < para n n0. Pero|xn x| = |f(xn1) f(x)|

    = |f ()||xn1 x|> C |xn1 x| > ...> Cnn0 |xn0 x|

  • Algoritmos-Iteraciones 49

    (C > 1 Cnn0 ) ABSURDO

    2.5. Orden de convergencia de una sucesin

    Para formalizar la idea de velocidad en la convergencia de una sucesin y poder cuantificarel que una sucesin converge hacia su lmite ms rpidamente que otra, vamos a considerar lasiguiente definicin:

    Definicin 2.5.1 Si xn x, existen C > 0 y m > 0 tales que

    |xn x| C|xn1 x|m n,

    entonces se dice que xn x con convergencia de orden al menos mSi xn x con xn 6= x, existe > 0 y m > 0 tales que

    lmn

    |xn x||xn1 x|m = ,

    entonces se dice que xn x con convergencia de orden m. A se le llama la constanteasinttica del error.

    Si xn es una sucesin convergente con convergencia de orden m = 1, se dice que xn eslinealmente convergente.

    Cuando xn es una sucesin convergente con convergencia de orden m = 2, se de que lasucesin es cuadrticamente convergente.

    Observad que para si n es grande xn aproxima a x con k dgitos en el sentido que1 |xnx| 1) Como f (x) = 0 < 1 la sucesin de iteradas xn+1 = f(xn) converge hacia xsiempre que x0 est cerca de x.

    Considera la frmula del desarrollo de Taylor de f en x de orden m:

    f(x) f(x) = f(m)(x)m!

    (x x)m + o((x x)m).

    As tenemos

    xn+1 x(xn x)m =

    f(xn) f(x)(xn x)m =

    f (m)(x)

    m!+o((xn x)m)(xn x)m

    f (m)(x)

    m!.

    Como corolario de este resultado y de la proposicin 2.4.10, se tiene el siguiente teorema deconvergencia local del mtodo de Newton,

    Teorema 2.5.3 Sea f : (a, b) R una funcin dos veces derivable con f continua. Sea x (a, b) una raz simple de f , e.d. f(x) = 0 y f (x) 6= 0. Entonces existe > 0 tal que si x0 (a, b),y |x0 x| < , la sucesin de iteradas de Newton, xn+1 = xn f(xn)f (xn) , est bien definida paratodo n N y converge hacia x con convergencia de orden al menos 2.

    Cal es el orden de convergencia y la constante asinttica del error en el mtodo de Newtonsi f (x) 6= 0 y f (x) 6= 0?

    Volved al ejemplo 2.4.7 y comparar los ordenes de convergencia de los distintos procesositerativos que se estudiaron all.

    2.6. Acelerando la convergencia: mtodo 2 de Aitken y mtodode Steffensen

    No siempre tenemos la suerte de construir iteradas que converjan cuadrticamente. Pero side antemano sabemos que nuestra sucesin de iteradas converge linealmente, podemos acelerarla convergencia de la sucesin con el mtodo de aceleracin de Aitken.

    Supongamos que xn x con convergencia de orden al menos 1, y que existe

    lmn

    xn+1 xxn x = A 6= 1.

    Remarcad la hiptesis de que la constante asinttica A 6= 1. Esto ocurre en los puntos fijos queson atractores A = |f (x)| < 1.

    Entonces, para n suficientemente grande podemos escribir{xn+1 x A(xn x)xn+2 x A(xn+1 x).

    (2.3)

  • Algoritmos-Iteraciones 51

    Restando esas dos expresiones tenemosxn+2 xn+1 A(xn+1 xn)A xn+2xn+1xn+1xn , y1A (xn+2xn+1)(xn+1xn)xn+1xn

    (2.4)

    Despejando x en (2.3) y sustituyendo 1A por la aproximacin dada en (2.4) queda

    x xn+1 Axn1A = xn +

    xn+1 xn1A xn

    (xn+1 xn)2(xn+2 xn+1) (xn+1 xn) . (2.5)

    Se utiliza la notacin de Aitken:

    xn := (xn+1 xn)2xn := (xn) = (xn+2 xn+1) (xn+1 xn) = xn+2 2xn+1 + xn.

    Con lo que la estimacin dada en (2.5) queda

    x xn (xn+1 xn)2

    (xn+2 xn+1) (xn+1 xn) = xn (xn)2

    2xn

    El mtodo de aceleracin 2 de Aitken, consiste en ir construyendo la sucesin

    xn = xn (xn)2

    2xn

    con la esperanza de que xn converja hacia x ms rpidamente que xn.

    Teorema 2.6.1 (Aceleracin de Aitken) Supongamos que xn x con convergencia de or-den al menos 1, que para todo n xn x 6= 0, y que

    lmn

    xn+1 xxn x = A 6= 1.

    Entonces la sucesin del mtodo de Aitken xn = xn (xn)2

    2xnconverge hacia x ms rpidamente

    que xn en el sentido de que

    lmn

    xn xxn x = 0

    Demostracin:

    Ideas que intervienen

    Expresar xn x en trminos de xn x y A 1 6= 0.

    (i) n :=xn+1 xxn x A 0

    (ii) xn+1 x = (xn x) + xn = (xn x)(n +A)(iii) xn := xn+1 xn = (xn+1 x) (xn x) = (n + (A 1))(xn x).(iv) 2xn = xn+1xn = (n+1+(A1))(xn+1x) (n+(A1))(xnx) = n(xnx),

    donde n = (n+1 + (A 1))(n +A) (n + (A 1)) (A 1)2 6= 0.

  • 52 UMU Mtodos Numricos, 2007-2008

    (v) xn x = (xn x) (xn)2

    2xn=

    n(xn x)2 (n + (A 1))2(xn x)2n(xn x) =

    =n(xn x) (n + (A 1))2(xn x)

    n.

    (vi)xn xxn x =

    n (n + (A 1))2n

    (A 1)2 (A 1)2

    (A 1)2 = 0.

    Las hiptesis del teorema anterior se cumplen para iteraciones funcionales

    xn = f(xn1)

    que convergen hacia un punto fijo atractor x, |A| = |f (x)| < 1.El algoritmo correspondiente a la aceleracin de Aitken para iteraciones de punto fijo es el

    siguiente. En recuadros grises con texto en blanco tenis las modificaciones al algoritmo de puntofijo:

    Algoritmo 2.8 Iteracin de punto fijo con Aceleracin de AitkenDatos de entrada:Funcin f ; x0 R; precision R; nmaxiter ZDatos de salida: solucin x (f(x) = x) o mensaje de errorVariables:

    xx = x0 // los puntos de la rbita.fx = f(xx); // el siguiente punto de la rbita f.

    ffx; // para el siguiente punto de la rbita f(fx).

    xxacelerado; // para guardar los terminos de la iteracin acelerada por Aitken.Fujo del programa:

    for(k=1;k

  • Algoritmos-Iteraciones 53

    de g en el punto fijo, g(x) = 0.9898926649877118, tiene valor absoluto menor pero prximo a1. Esto confirma que el punto fijo es un atractor y que la convergencia no es de las ms rpidas.

    Si aceleramos la convergencia de la iteracin de punto fijo iniciada en el mismo punto x0,el mtodo de Aitken proporciona la aproximacin al punto fijo x 1.585471801571905 en 476pasos.

    Si consideramos la funcin f(x) = 0.25ex analizada en los ejemplos 2.4.11 y 2.4.12, y ha-cemos la iteracin de punto fijo para f , con inicio x0 = 0.1 aproximamos el punto fijo x =0.35740295618138784 en 33 pasos. Observad que