Você está na página 1de 71

Notas de Anlisis Numrico Por: Pablo V.

Negrn Marrero
Contenido: 1. Conceptos Bsicos 2. Representacin de Nmeros en la Computadora 3. Sistemas Lineales 1. Eliminacion Gaussiana y sus Variantes 2. Estabilidad de Sistemas Lineales 4. Ecuaciones Nolineales 5. Interpolacion y Aproximacion de Funciones: 1. El Problema de Interpolacin y la Representacin de Newton 2. Funciones Polinomiales por Pedazos - Splines 3. Interpolacion de Cuadrados Minimos 6. Diferenciacin e Integracin Numrica 1. Diferenciacin Numrica - Mtodos de Series de Taylor 2. Reglas del Trapezoide y Simpson 3. Anlisis de Errores y Frmulas Corregidas 4. Extrapolacin de Richardson y Reglas de Cuadratura Gaussiana 7. Ecuaciones Diferenciales Numricas - Problema de Valor Inicial 1. Mtodo de Euler - Sistemas de Ecuaciones y Ecuaciones de Orden Mayor de Uno 2. Mtodos Runge-Kutta 8. Apendices 1. Un Vistaso a Matlab

Referencias: 1. Atkinson, K., Elementary Numerical Analysis, 2nd ed., John Wiley & Sons, Inc., New York, 1993. 2. Lindfield, G. and Penny, J., Numerical Methods using MATLAB, Prentice-Hall, New York, 1995. 3. Part-Enander, E., Sjoberg, A., Melin, B., and Isaksson, P., The MATLAB Handbook, Addison-Wesley, New York, 1996. 4. Van Loan, C., Introduction to Scientific Computing: A Matrix-Vector Approach Using MATLAB, Prentice-Hall, New York, 1997. Derechos Reservados por Pablo V. Negrn Marrero.

Capitulo 1
Conceptos Bsicos de Anlisis Matemtico
En este capitulo repasaremos algunos de los conceptos ms importantes del clculo que son esenciales en el estudio de mtodos numricos. Adems discutiremos el resultado ms fundamental para aproximar funciones para hacer estimados de errores: el Teorema de Taylor. Veremos tambin otros resultados importantes como los Teoremas del Valor Medio para funciones e integrales, el Teorema del valor intermedio, y el Teorema de la funcion implicita.

Resultados Bsicos
El primer resultado bsico es el Teorema del Valor Medio para funciones. En palabras y en el contexto fsico del movimiento de una particula, este teorema dice que en cualquier intervalo finito de tiempo, la velocidad promedio de la particula en el intervalo es igual a la velocidad instatanea en algn instante de tiempo. Tenemos pues: Teorema (1.1): (Teorema del Valor Medio para funciones) Sea continua y diferenciable en (a,b) donde a,b son finitos. Entonces existe un nmero c en (a,b) tal que (1.1) Para intergrales tenemos tambin un resultado parecido. Teorema (1.2): (Teorema del Valor Medio para Integrales) Suponga que f y g son funciones continuas en el intervalo acotado [a,b] y que g(x) 0 para toda x en [a,b]. Entonces existe un punto c en [a,b] tal que

(1.2) En el caso de que g=1, el resultado se puede interpretar como que el area bajo la curva f(x) en el intervalo [a,b] es igual al area del rectangulo con base [a,b] y altura f(c). El proximo teorema establece la idea intuitiva de que si una funcin continua cambia de signo en un intervalo [a,b] entonces en algn punto del intervalo cruz el eje de x. Veamos: Teorema (1.3): (Teorema del Valor Intermedio) Suponga que es continua y que C es un nmero estrictamente entre f(a) y f(b). Entonces existe un nmero c en (a,b) tal que f(c)=C. En particular si f(a)f(b) < 0, entonces existe un c en (a,b) tal que f(c)=0.

El siguiente resultado nos provee de condiciones suficientes que garantizan que una ecuacin nolineal como f(x,y)=0 se pueda resolver digamos para "x" en terminos de "y". Teorema (1.4): (Teorema de la Funcin Implicita): Sea un conjunto abierto, continua y con derivadas parciales continuas en D. Suponga que (x0,y0) en un punto en D tal que

(1.3) Entonces existe un nmero derivada continua tal que y una funcin continua y con

(1.4) El teorema dice que dadas las condiciones (1.3) podemos resolver la ecuacin f(x,y)=0 para "x" en terminos de "y", i.e, , en un intervalo alrededor de y0. Si en (1.3) cambiamos a , entonces podemos resolver para "y" en terminos de "x". En el caso lineal f(x,y)=ax+by+c, el teorema lo que dice es que si a 0, entonces en f(x,y)=0 podemos despejar para "x" en terminos de "y" lo cal en este caso es obvio.

Teorema de Taylor
Un problema comn es el de evaluar una funcin f(x) en un argumento x=a dado. Aunque esto parece un problema sencillo, la funcin f podria ser desconocida complicada para evaluar. Lo que buscamos pues es aproximar a f con una funcin g que sea ms "fcil" de evaluar que f. Los polinomios de Taylor son una forma de hacer esto aunque veremos otras alternativas ms adelante. Polinomio de Taylor de grado uno: Suponga que conocemos f(a) y f '(a). Queremos hallar un polinomio p1(x) tal que p1(a)=f(a), p'1(a)=f '(a). Sabemos que p1(x)=a1+a2x (por qu?) de modo que:

de donde obtenemos que p1(x)=f(a)+f '(a)(x-a) lo que se conoce como el polinomio de Taylor de grado uno para f en x=a.

Polinomio de Taylor de grado dos: De igual forma, si conocemos f(a), f '(a), f "(a) podemos construir un polinomio de grado dos p2(x) tal que p2(a)=f(a), p'2(a)=f '(a), p"2(a)=f "(a). Trabajando como arriba obtenemos que p2(x)=f(a)+f '(a)(x-a)+(1/2)(x-a)2f "(a) lo que se conoce como el polinomio de Taylor de grado dos para f en x=a. En general si f(a), f '(a),,f (n)(a) son conocidas, se puede demostrar que el polinomio de grado a lo ms n que cumple con las condiciones esta dado por

lo que se conoce como el polinomio de Taylor de grado a lo ms n para f en x=a. Recuerde aqui que j! denota el factorial de j y se define en forma recursiva por:

Ejemplo 1: Considere la funcin f(x)=1/(1+x) y tomemos a=0. Entonces f '(x)=-(1+x)-2, f "(x)=2(1+x)-3, f(3)(x)=-(2)(3)(1+x)-4, de donde podemos concluir en forma inductiva que

Tenemos ahora que

En particular

Podemos ahora graficar p1, p2, y f en el mismos sistema de coordenadas con las siguientes instrucciones en MATLAB: x=linspace(-0.5,0.5,100); p1=1-x; p2=p1+x.^2; f=1./(1+x);

plot(x,p1,x,p2,x,f) xlabel('X');ylabel('Y'); title('Funcion f(x)=1/(1+x) con sus polinomios de Taylor de grados uno y dos') text(-0.4,1.8,'f'); text(-0.45,1.4,'p1'); text(-0.45,1.7,'p2'); Esto produce la grfica que se muestra a continuacin:

Note que el polinomio de grado dos aproxima mejor a f en el intervalo en cuestin pero la diferencia entre los polinomios y la funcin f (el error) aumenta segn nos alejamos del centro a=0. Queremos ahora de alguna forma cuantificar las observaciones del ejemplo anterior en cuanto al error de aproximacin de los polinomios de Taylor. Tenemos pues: Teorema (1.5) (de Taylor): Suponga que pn(x) el error en aproximar f con pn. Entonces y sea . Sea Rn(x)=f(x)-

donde cx es un nmero entre a y x. Ejemplo 2: Considere la funcin f(x)=e2x y tomamos nuevamente a=0. Aqui f(j)(x)=2je2x para toda j0. Asi que

El error de aproximacin esta dado por

donde cx esta entre cero y x. El caso especial x = nos provee de una frmula para aproximar el nmero "e":

Note que

donde usamos que como c esta entre cero y , entonces ec < e < 3. Si queremos aproximar "e" con la frmula de arriba con un error (absoluto) de 10-t entonces podemos estimar "n" mediante el siguiente programa en MATLAB: t=6; n=0; R=3; tol=10^(-t); while R>tol n=n+1; R=3/gamma(n+1); end n lo cual produce el siguiente resultado para t=6 de n = 10. Ejemplo 3: Vamos a aproximar la funcin sen(x) en el intervalo con un error de 10-4. Sabemos que f'(x)=cos(x), f ''(x)=-sen(x), f '''(x)=-cos(x), etc. Tomando a=0 obtenemos pues que f '(0)=1, f ''(0)=0, f '''(0)=-1, etc., de donde podemos concluir que

Ahora

donde cx esta en

. Note que en cualquier caso, "n" par impar, para el error satisface:

Podemos calcular la "n" que hace el error menor de 10-4 mediante el siguiente programa en MATLAB: t=4; n=0; R=pi/2; tol=10^(-t); while R>tol n=n+1; R=(pi/2)^n/gamma(n+1); end n lo cual produce el valor de n=10. En ocasiones podemos calcular polinomios de Taylor de funciones complicadas definidas en terminos de otras funciones para las cuales conocemos sus polinomios de Taylor. Antes de ver un ejemplo de esto, veamos la frmula para la serie geomtrica:

Esta frmula se demuestra facilmente por induccin y en el caso

tenemos que

Ejemplo 4: Vamos a calcular un polinomio de Taylor con su residuo para la funcin log(1+x2). Primero observamos que para t > -1

Usando la frmula de arriba podemos escribir

De modo que

Sustituyendo ahora t=x2 obtenemos

donde usamos el Teorema del Valor Medio para integrales y cx es un nmero entre cero y x2. Esta frmula nos da un polinomio para aproximar log(1+x2) con la correspondiente frmula del error.

Evaluacin de Polinomios
Considere el polinomio p(x)=2 - 3x + 4x2 - 5x3 + 7x4 + 2x5 Podemos evaluar este polinomio de tres maneras:

1. Calculamos 2x5, 7x4, -5x3, 4x2, 3x y luego sumamos los resultados. Esto requiere de 5+4+3+2+1=15 multiplicaciones. 2. Calculamos x2, x(x2)=x3, x(x3), etc. Luego multiplicamos por los coeficientes y sumamos. Esto requiere 4+5=9 multiplicaciones. 3. Escribimos p(x)=2+x(-3+x(4+x(-5+x(7+2x)))) lo cal requiere de 5 multiplicaciones. La tercera forma de evaluar el polinomio es lo que se conoce como el Mtodo de Horner y corresponde exactamente al proceso de evaluacin sinttica que aprendimos en preclculo. En general para evaluar el polinomio p(x)=a0 + a1x + a2x2 + + anxn tenemos Mtodo 1 2 Horner Nmero de Multiplicaciones n(n+1)/2 2n-1 n

Examinamos ahora en ms detalles el mtodo de Horner. Este se mtodo se puede describir por las siguientes iteraciones: dado un nmero z 1. bn = an 2. Para i=n-1,,0 3. bi=ai + z bi+1 Tenemos pues que p(z) = b0. Demostracin: Por induccin en "n" el grado del polinomio. (Paso bsico) Para n=1, p(x) = a0 + a1x, b1 = a1, b0 = a0 + z b1 = a0 + z a1 = p(z) lo cal demuestra que el resultado es cierto para n=1. (Paso inductivo) Vamos a suponer que el resultado es cierto para cualquier polinomio de grado k1. Entonces para p(x)=a0 + a1x + a2x2 + + ak+1xk+1 definimos 1. bk+1 = ak+1 2. Para i=k,,0 3. bi=ai + z bi+1 Defina el polinomio q(x) de grado k por: q(x)=a0 + a1x + a2x2 + + (ak + ak+1z)xk y los correspondientes b's por: 1. 2. Para i=k-1,,0

3. Observe que p(z)=q(z) y que para 0 i k. Como el grado de q(x) es k, tenemos y el resultado es

por la hipotesis de induccin que . Pero cierto para polinomios de grado k+1 tambin. El resultado queda pues establecido para cualquier n 1.

El mtodo de Horner lo podemos implementar en MATLAB en forma eficiente. Aqui el arreglo a(1:n) contiene los coeficientes a0, a1, etc. del polinomio. El arreglo "z" puede contener ms de un valor de modo que la funcin evalua el polinomio en el conjunto de datos dados por z: function pval=hornerV(a,z) n=length(a); m=length(z); pval=a(n)*ones(m,1); for k=n-1:-1:1 pval=a(k)+z.*pval; end Ejemplo 5: Para trazar el polinomio p(x)=2 - 3x + 4x2 - 5x3 + 7x4 + 2x5 en el intervalo de [1,1] podemos escribir: a=[2 -3 4 -5 7 2]; z=linspace(-1,1,100)'; y=hornerV(a,z); plot(z,y) xlabel('x');ylabel('y'); title('p(x)=2-3*x+4*x^2-5*x^3+7*x^4+2*x^5') lo cual produce la grfica:

Ejercicios
1. Considere la funcin a. Calcule las formulas de en el intervalo [-1,1]. ,i.e., los primeros cuatro polinomios de

Taylor de alrededor de . b. Grafque en el mismo sistema de coordenadas los cuatro polinomios. c. Estme grficamente el error para . d. Compare los resultados de la parte (c) con los predichos por la cota del Teorema de Taylor.

Captulo 2
Representacin de Nmeros en la Computadora
En este captulo estudiaremos como se representan los nmeros en la computadora. Por limitaciones fisicas, los nmeros solo se pueden representar con un nmero finito de cifras en la computadora. Al igual las operaciones aritmticas que se efectuan en la computadora no corresponden a las operaciones matemticas exactas. Veremos pues como estas limitaciones en la representacin de los nmeros y las operaciones arimticas afectan los computos y la propagacin de errores.

Bases Numricas y Cambios de Bases


Veamos primero las distintas formas de representar nmeros en terminos de bases distintas. Por ejemplo el nmero 231.12 base dies se interpreta como: (231.12)10 = 2 x 102 + 3 x 101 + 1 x 100 + 1 x 10-1 + 2 x 10-2 Otro ejemplo seria: (101.11)2 = 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 1 x 2-2 = 4 + 1 + + = (5.75)10 Un ejemplo menos trivial es el siguiente:

donde usamos que

Hemos visto aqui como convertir un nmero binario a su decimal correspondiente. Veamos ahora como convertimos de decimal a binario. Mostramos aqui el procedimiento convirtiendo (217.732)10 a binario. Trabajamos primero con la parte entera del nmero. Dividimos esta sucesivamente por dos y llevamos registro de los residuos sucesivos hasta que el cociente sea cero. Estos reciduos desde el ltimo hasta el primero, forman la representacin binaria de la parte entera. Veamos divisor 2 dividendo 217 cociente 108 residuo 1

2 2 2 2 2 2 2

108 54 27 13 6 3 1

54 27 13 6 3 1 0

0 0 1 1 0 1 1

Asi que (217)10=(11011001)2. Para la parte fraccional, multiplicamos sucesivamente por dos y llevamos cuenta cada ves que el resultado sea mayor de uno no. Veamos 2(0.732)=1.464 2(0.464)=0.928 2(0.928)=1.856 2(0.856)=1.712 2(0.712)=1.424 0.464 0.928 0.856 0.712 0.424 1 0 1 1 1

En este caso el proceso sigue indefinidamente y escribimos (0.732)10=(0.10111)2. Combinando los dos clculos tenemos (217.732)10=(11011001.10111)2. En los nmeros hexadecimales o base 16 los digitos son {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} Aqui (A)16=(10)10, (B)16=(11)10, etc. Por ejemplo (CD.B9)16=(12 x 161 + 13 x 160 + 11 x 16-1 + 9 x 16-2)10 Los mtodos para cambiar de binario a hexadecimal y viceversa son extremadamente sencillos. Historicamente las bases binaria, hexadecimal, y octal han sido las ms utilizadas para representar nmeros en la computadora. Esto es bsicamente por que el circuito electrico ms bsico se puede representar por uno si hay corriente cero si no hay

corriente. Lo que lleva naturalmente al sistema binario como forma de representar el estado del circuito. Esto con lo relativamente fcil de pasar de una base a otra hace que las bases binaria, hexadecimal, y octal sean utilizadas eficientemente para disear computadoras.

Nmeros de Punto Flotante


Sea "x" un nmero real base dies dos. Podemos representar a "x" en forma nica como sigue: (2.1) donde ejemplo , "e" es un entero positivo negativo, ,y es dies dos. Por

(-117.32)10 = -(0.11732)10 x 103 , (1101.11)2 = (0.110111)2 x 24 La representacin de punto flotante del nmero "x" se denota por fl(x) y consiste de (2.1) con alguna restriccin en el nmero de cifras en y el tamao de "e". Tenemos pues que (2.2) donde N,M son positivos y , . Los ai's se obtienen de

alguna forma a partir de . El nmero se conoce como la mantisa y "t" el nmero de cifras o largo de mantisa. Si alguna operacin aritmtica produce un resultado con e > M decimos que hubo un overflow. Por el contrario si en el resultado, e < -N decimos que hubo un underflow. Se puede verificar que "t" cifras en la mantisa equivalen aproximadamente a "t" cifras significativas en la misma base. Ademas "t" digitos binarios equivalen a "t log102" digitos base dies. Veamos ahora varias cantidades importantes del sistema (2.2):

el nmero ms grande en el sistema es:

el nmero ms pequeo es:

el nmero positivo "u" ms pequeo tal que mquina es (por qu?)

, llamado el epsilon de la

La dos formas ms comunes de calcular la mantisa son:


Truncacin: si "t" digitos Redondeo: en el caso

entonces , tenemos

. Esto es truncamos

con las reglas correspondientes base dos. Tenemos ahora el teorema que nos habla sobre el error en estas dos reglas: Teorema (2.1): donde

Note que el error en redondeo es en general la mitad del error en truncacin. Tambin se puede verificar que como los errores en redondeo varian en signo, estadisticamente "en promedio" tienden a cancelarce. Esta cancelacin no es tan probable con truncacin. A pesar de estas ventajas la truncacin es usada comunmente en el diseo de computadoras por lo fcil de su implementacion a nivel de "hardware".

Estandar de Aritmtica de Punto Flotante de la IEEE


La gran mayoria de las computadoras construidas en los ltimos quince aos utilizan lo que se conoce como el estandar de aritmtica de punto flotante de la IEEE. Esto uniformiz los procesos de representacin de nmeros en computadoras distintas facilitando asi las comparaciones y anlisis de errores. En este estandar la forma: y el flotante de un nmero tiene

(2.3) donde "f" es ahora la mantisa y satisface valores usados para t y e son como sigue: y se representa con t cifras binarias. Los

en presicin sencilla, fl(x) se almacena en una palabra de 32 bits con un bit para , ocho para "e", t = 24, y N = 126, M = 127. en presicin doble, fl(x) se almacena en una palabra de 64 bits con un bit para , once para "e", t = 52, y N = 1022, M = 1023.

La presicin sencilla economiza memoria pero no es mucho ms rapida que la presicin doble en las computadoras modernas. La distribucin de los nmeros de punto flotante en la recta numrica es una nouniforme. De hecho para un exponente "e" dado, los nmeros de punto flotante entre 2e y 2e+1 estan uniformemente distribuidos con incremento 2e-t. Ilustramos esto aqui para el estandar de la IEEE con un sistema trivial donde f y e tienen dos y tres digitos binarios respectivamente. Los nmeros de punto flotante de este sistema los podemos enumerar en la siguiente tabla: 1+f \ e 1.00 (1.01)2=1.25 (1.10)2=1.50 (1.11)2=1.75 -2 5/16 3/8 7/16 -1 5/8 7/8 0 1 5/4 3/2 7/4 1 2 5/2 3 7/2 2 4 5 6 7 3 8 10 12 14

Si ordenamos estos nmeros en forma ascendente obtenemos:

Podemos observar aqui que la densidad de los nmeros de punto flotante disminuye con su tamao. Podemos tambin observar esto grficamente en la siguiente figura:

El nmero positivo ms grande en el estandar de la IEEE esta dado por:

Este nmero se denota en MATLAB por realmax. Cualquier resultado numrico que produsca un nmero mayor que realmax se conoce como un overflow y se denota por Inf (infinito) y se representa en (2.3) tomando f=0 y e=1024 en presicin doble. El nmero Inf satisface las relaciones 1/Inf=0 y Inf+Inf=Inf. El correspondiente nmero positivo ms pequeo es:

y se denota en MATLAB por realmin. Cualquier resultado numrico que produsca un nmero menor que realmin se conoce como un underflow y en muchas computadoras el resultado se iguala a cero pero esto no es estandar. Calculos como 0/0, Inf-Inf que pueden conllevar a resultados indefinidos se denotan por NaN (not a number). El epsilon de la mquina esta dado en este sistema por 2-t y se denota en MATLAB por eps. Este nmero corresponde al incremente de los nmeros entre 1 y 2 en el sistema de

punto flotante. eps corresponde al error relativo (ver definicin ms adelante) minimo posible en cualquier computo numrico en el sistema de punto flotante. Toda operacin aritmtica en la computadora o la representacin de punto flotante de un nmero, induce un error relativo no mayor de eps. En la siguiente tabla ilustramos estas cantidades especiales con sus respectivas representaciones binarias en la computadora en presicin doble: Nmero realmax Signo 0 Exponente 111 1111 1110 (si ponemos 1 al final corresponde a overflow) 000 0000 0001 (exponente mas pequeo antes de underflow) 000 0000 0001 Mantisa 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

realmin

-realmin

eps

011 1100 1011 (-52+1023)

000 0000 0000 (exponente de underflow) 011 1111 1111 (0+1023)

realmin/2

000 0000 0000 (situacin de underflow)

Propagacin de Errores - Perdida de Cifras Significativas


Como vimos antes, el uso de un nmero finito de cifras en la representacin de punto flotante introduce errores de representacin. An cuando los nmeros en cuestin se puedan representar en forma exacta en la computadora, estos podrin contener error, por

ejemplo si son datos experimentales. Queremos ver como estos errores en los datos se propagan al usar las operaciones aritmticas usuales o ms general al evaluar funciones. Denotamos por xt el valor real o exacto de una cierta cantidad y xa una aproximacin de xt obtenida experimentalmente al truncar xt para representarlo en la computadora. Definimos los errores absolutos y relativos respectivamente en xa como aproximacin de xt por: Error(xa) = xt - xa , Rel(xa) = Error(xa)/xt Se puede demostrar que si significativas como aproximacin de xt. , entonces xa tiene por lo menos m cifras

Ejemplo 1: Si tomamos xt=exp(1) y xa=2.718, tenemos que Error(xa)=2.8183e-004 y Rel(xa)=1.0368e-004. Uno de los ejemplos ms comunes de la propagacin de errores es en el fenomeno conocido como perdida de cifras significativas. Este tipo de situacin se da cuando algn clculo numrico envuelve la resta de dos cantidades similares en el clculo de un nmero por medio de una sumatoria donde el resultado es mucho menor que los terminos de la sumatoria los cuales alternan en signo. Veamos algunos ejemplos: Ejemplo 2: Considere el clculo de la funcin para "x" grande. Suponemos que trabajamos con seis cifras significativas. Veamos el caso de calcular f(100). Note que correctos a seis cifras. Ahora calculamos . El valor exacto a seis cifras de f(100) es de modo que perdimos tres cifras en el computo. Cal fu el problema? Restamos cantidades similares! En este caso podemos evitar restar cantidades similares si rescribimos f (x) (racionalizando) como:

Podemos ahora calcular f (100) mediante:

que es correcto a seis cifras. Una situacin similar ocurre al usar la frmula cuadrtica. En particular considere la ecuacin x2+bx+c/4=0 donde b>0 y c es mucho ms pequeo que b. Entonces como el discriminante , vamos a tener cancelacin de cifras al calcular la raiz con el "+" en la frmula cuadrtica. Aqui nuevamente una racionalizacin de la frmula problemtica resuelve el asunto. Si b<0, la raiz problemtica es la del "-".

Ejemplo 3: Considere el problema de evaluar

para "x" cerca de cero, tenemos resta de cantidades para "x" cerca de cero. Como similares y por consiguiente habr perdida de cifras significativas. Ilustramos aqui el uso de polinomios de Taylor para obtener representaciones aproximaciones de la funcin que no conlleven perdida de cifras significativas. Por el Teorema de Taylor tenemos que:

donde

esta entre 0 y x. Tenemos ahora que

Note que si

, entonces

Podemos pues aproximar a f(x) mediante

con un error absoluto del orden de 10-11 y no hay perdida de cifras significativas al calcular con la frmula aproximada. Ejemplo 4: Otro caso comn de cancelacin de cifras significativas ocurre en el clculo de un nmero mediante una sumatoria donde los terminos de la sumatoria son mucho mayores que el resultado y alternan en signo. Considere el problema de evaluar el polinomio f(x) = x7-7x6+21x5-35x4+35x3-21x2+7x-1. El siguiente cdigo en MATLAB evalua el polinomio en el intervalo [0.988,1.012] y lo grafica: x=linspace(0.988,1.012,100); y=x.^7-7*x.^6+21*x.^5-35*x.^4+35*x.^3-21*x.^2+7*x-1; plot(x,y)

Lo que deberia ser una grfica suave de un polinomio aparece altamente oscilatoria y de caracter aparentemente aleatorio. Esto se debe a la cancelacin severa de cifras significativas en el clculo donde el resultado final es aproximadamente cero y se toman sumas y diferencias de nmeros del tamao de . El polinomio de este ejemplo 7 corresponde a la forma expandida de (x-1) donde graficamos cerca de x=1. Si clculamos con la frmula sin expandir no ocurre el problema de cancelacin de cifras pero claro lo importante aqui es ilustrar el fenmeno.

Propagacin de Errores - Evaluacin de Funciones


En los ejemplos anteriores la perdida de cifras significativas se debe primordialmente al uso de un nmero finito de cifras en los clculos numricos. Queremos estudiar ahora el otro aspecto, esto es, suponiendo que se hace uso de un nmero infinito de cifras en los clculos, cmo la funcin frmula que se usa propaga los errores en los datos iniciales? Estudiaremos esto para funciones de una y dos variables. Suponga que queremos evaluar una cierta funcin f (x) en un argumento cuyo valor exacto es xt. Suponga que xa es una aproximacin de xt. Cmo comparan f(xt) y f(xa)? Note que implicitamente asumimos que f se puede calcular exactamente dado un argumento y lo que nos interesa es determinar como f propaga el error en xa como aproximacin de xt. Usando el Teorema del Valor Medio (cf. Xxx) podemos escribir

para algn c entre xa y xt. Dividiendo por f(xt) en ambos lados podemos obtener la siguiente frmula para los errores relatvos:

Esta fmula nos indica que el nmero

actua como un factor de magnificacin para el error relativo en xa. K se denomina como el nmero de condicin. Si suponemos que el error absoluto en xa como aproximacin de xt es pequeo, podemos aproximar c y xt por xa y tenemos que

(2.4) Ejemplo 5: Suponga que y que xa=0.0025 con un error relatvo de 10-4. Entonces

es una aproximacin del valor exacto f(xt) con un error relativo de

En este ejemplo hay que tener cuidado porque la aproximacin (2.4) del factor de magnificacin K, deteriora segn nos acercamos a cero. Si f es una funcin de dos variables (x,y), entonces el Teorema del Valor Medio nos dice que si f tiene derivadas parciales continuas, existen c y d tal que

el cal se puede usar para estimar el error al evaluar f en un argumento aproximado. Ejemplo 6: Queremos clcular la distancia focal f de un lente usando la frmula

donde Tenemos pues que

. Aqui xa=32, ya=46 con errores absolutos de 1mm.

correcto a seis cifras. Este clculo tiene un error absoluto aproximado de

Ahora obtenemos f tomando el reciproco del resultado de arriba para obtener que tiene un error absoluto aproximado de

Propagacin de Errores en las Funciones Aritmticas


Vamos a considerar ahora los efectos en la propagacin de errores en las funciones aritmticas de la computadora. Esto es consideramos ambas fuentes de error: el uso de un nmero finito de cifras en los clculos y como la funcin en si propaga los errores en los datos. Las funciones aritmticas son funciones de dos variables de modo que denotamos por xa y ya aproximaciones de los valores exactos xt y yt. Denotamos por cualquiera de las operaciones y por la operacin aritmtica correspondiente segn se clcula en la computadora. Vamos a suponer que corresponde a la operacin exacta pero truncada a la presicin de la mquina. Esto es (2.5) Queremos estimar el error

Pero podemos escribir (2.6)

Los dos terminos de la derecha de esta ecuacin corresponden a el error propagado por la operacin exacta debido a los errores en xa y ya, mientras que el segundo termino corresponde a el error causado por el uso de la operacin aproximada . Por el Teorema (2.1) y la hipotesis (2.5) tenemos que

donde

esta acotado por el epsilon de la mquina. De aqui que

De aqui que de modo que el termino del error en (2.6) por la operacin aritmtica aproximada de la computadora es del orden del epsilon de la mquina. El termino del error propagado en (2.6) es pues el ms significativo y su comportamiento depende de la operacin aritmtica en cuestin. Veamos el caso en que . Escribimos en lugar de . Escribimos

Entonces el error propagado se puede expresar como

el cual se puede estimar con los estimados de calcular el error relativo en xaya como sigue:

y los valores de xa, ya. Podemos ms an

de donde tenemos que si Rel(xa) y Rel(ya) son pequeos, entonces Rel(xaya) ser pequeo y se puede aproximar por

Decimos pues que la multiplicacin es una operacin estable. En forma similar se demuestra que

obteniendo asi que la divisin es tambin una operacin estable. Para la suma y la resta la situacin es distinta. Es fcil ver que

que es pequeo dado que

lo son. Pero para el error relativo tenemos que

el cual puede ser bien grande aunque sean pequeos si de perdida de cifras significativas que vimos anteriormente.

. Este es el fenmeno

Sumatorias
En esta seccin estudiamos el problema de sumar muchos nmeros en la computadora. Como cada suma introduce un error, proporcional al epsilon de la mquina, queremos ver como estos errores se acumulan durante el proceso. El anlisis que presentamos generaliza al problema del clculo de productos interiores. El problema es pues clcular la sumatoria

usando aritmtica de punto flotante. Definimos pues

Queremos determinar el error S - Sn. Motivados por el Teorema (2.1) definimos por

donde tomamos S1=a1. Tenemos ahora:

Teorema (2.2): Demostracin: Procedemos por induccin en el nmero de terminos en la sumatoria.

1. Paso bsico: Aqui cal concide con la frmula del teorema. 2. Paso inductivo: Suponemos que el resultado es cierto para n = m, i.e.,

lo

Ahora verificamos que el resultado tambin es cierto para n = m+1. Pero

lo cual es el resultado para n = m+1. 3. Por el Principio de Induccin Matemtica, el resultado del teorema es cierto para toda n2. Como los i's son pequeos, podemos aproximar

Asi que por el resultado del teorema

De aqui que

Asi que si queremos minimizar el error en la sumatoria calculada, debemos ordenar los ai's de modo que

i.e., debemos sumar los neros ms pequeos primero y luego los grandes. Note pues que la suma no es una operacin conmutativa en la computadora. Un anlisis similar pero ms complicado matemticamente se puede hacer para el producto interior

Note que en el anlisis de arriba no se tomaron en consideracin posibles errores en los datos ai's. Estos efectos se pueden incluir tambin en el anlisis. (Ver ejercicio (7)).

Ejercicios
1. Suponga que y que calculamos

en el orden de la siguiente figura (para

Obtenga los estimados de los errores "forward" y "backward" para este cmputo. 2. El polinomio se evala en un sistema de punto flotante satisface

mediante la regla de Horner. Muestre que el valor calculado

donde

es el epsilon de la mquina. (Los terminos

se pueden descartar).

3. Con canta precisin necesitamos conocer a para poder calcular cuatro cifras? 4. Trace la grfica de la funcin
o o

correcto a para

en el intervalo

. Evale la funcin de dos formas: normal: anidada:

Observe cualquier diferencia o caractersticas particulares en las grficas. Comente. 5. Considere la recurrencia Verfique que la solucin exacta de esta recurrencia es: donde .

Resuelva esta recurrencia en la computadora. Haga una grfica de k vs Explque la grfica. 6. Sean donde . Defina

Suponiendo que

y que r t, calcule el error

Captulo 3
Sistemas Lineales
Los sistemas de ecuaciones lineales son una de las herramientas matemticas de modelaje ms comunes en las aplicaciones. Una clasificacin comn de los sistemas lineales es por su tamao. Los sistemas con O(100) variables se consideran pequeos y usualmente se utilizan los llamados mtodos directos para su solucin. Los sistemas de O(1000) ms variables se consideran grandes o de gran escala y los mtodos de solucin ms eficientes por lo general son los llamados mtodos iterativos o indirectos. Otra clasificacin importante de los sistemas lineales es por la cantidad o densidad de ceros de la matriz de coeficientes. Los sistemas con pocas entradas distintas de cero se llaman escasos. De lo contrario decimos que el sistema es denso. El aprovechar la estructura de ceros de la matriz de coeficientes nos lleva por lo general a algortmos mucho ms eficientes que los convencionales. La solucin directa de sistemas de ecuaciones lineales conlleva esencialmente dos etapas: transformacin del sistema original a otro sistema equivalente ms "simple" y luego la solucin del nuevo sistema equivalente. La transformacin del sistema original a uno ms simple toma muchas formas la ms comn de ellas siendo el proceso de Eliminacin Gaussiana. En este mtodo, en su forma bsica, si ninguno de los pivotes se hace cero, se producen como resultado matrices L y U triangulares inferior unitaria y superior respectivamente tal que A=LU donde A es la matriz de coeficientes del sistema original. El sistema Ax=b se puede resolver ahora en dos etapas adicionales.

Problema Bsico y Notacin


Un sistema lineal de n ecuaciones en n desconocidas se puede escribir de la forma

(3.1) son dados y x1,x2,,xn son desconocidas. Si definimos la matriz A y donde los los vectores b, x por

(3.2) Entonces podemos escribir el sistema (3.1) en forma matricial como Ax=b. La matriz A se conoce como la matriz de coeficientes del sistema y b como el lado derecho. Si b=0, i.e., bi=0, 1 i n, entonces decimos que el sistema es homogeneo. De lo contrario se dice que es nohomogeneo. Ejemplo 1: Considere el sistema

Si definimos

Entonces podemos escribir el sistema en forma matricial como Ax=b. Cando tiene (3.1) solucin y que esta sea nica? Teorema (3.1): Sea A una matriz n n y b un vector. Las siguientes aseveraciones para el sistema Ax=b son todas equivalentes: a. b. c. d. e. El sistema tiene solucin que es nica para todo lado derecho b. El sistema tiene por lo menos una solucin para todo lado derecho b. El sistema homogeneo asociado tiene x=0 como nica solucin. det(A) 0 A es invertible

Eliminacin Gaussiana
Vamos ahora a estudiar el mtodo ms bsico y a la ves ms importante para la solucin directa de sistemas lineales. Primero ilustramos el mtodo con un ejemplo y despes lo generalizamos.

Ejemplo 2: Considere el sistema de ecuaciones siguiente:

Podemos resolver esto mediante eliminacin Gaussisana como sigue:

Con este ltimo sistema equivalente podemos obtener la solucin sustituyendo para atrs: a. b. c. Vamos a generalizar este ejemplo a un sistema 33 general. Escribimos el sistema original como

(3.3) Paso 1: Suponemos que y definimos

se llama el pivote en este paso. El sistema (3.3) reduce ahora a:

(3.4) donde

Paso 2: Suponemos ahora que

y definimos

Ahora (3.4) reduce a:

donde

Paso 3: Hacemos ahora la sustitucin para atrs para obtener la solucin. Suponemos aqui que :

Pasamos ahora al caso general del sistema:

Primero pasamos por la etapa de eliminacin. Esto es, para k=1,2,,n-1: Paso k: Suponemos que forma: (pivote). El sistema en este paso se reduce a uno de la

donde

(3.5) En el ltimo paso llegamos a un sistema triangular superior de la forma:

(3.6) donde (3.7) Paso n: Calculamos finalmente la solucin del sistema haciendo sustitucin para atrs:

(3.8) Las frmulas (3.5), (3.7), (3.8) definen el Mtodo de Eliminacin Gaussiana en su forma bsica. Las formulas (3.5) definen la parte de eliminacin del mtodo mientras que (3.8) nos da la sustitucin para atrs. Antes de entrar en las variantes de el mtodo bsico vamos a hacer un estudio de la cantidad de operaciones envueltas en el mtodo. Esto se conoce como un conteo operacional. Examinando las frmulas para los siguiente: Paso 1 2 Sumas (n-1)2 (n-2)2 en (3.5) podemos construir la tabla

Multiplicaciones (n-1)2 (n-2)2

Divisiones n-1 n-2

n-1 TOTAL

1 n(n-1)(2n-1)/6

1 n(n-1)(2n-1)/6

1 n(n-1)/2

donde usamos las frmulas

Es costumbre contar las operaciones de multiplicacin y divisin juntas. De modo que la tabla de arriba la podemos resumir diciendo que en la parte de eliminacin del mtodo de eliminacin Gaussiana el total de:

Sumas y Restas =

Multiplicaciones y Divisiones = Las frmulas para los Estas conllevan: en (3.5) se conocen como la modificacin del lado derecho.

Sumas y Restas = n-1 + (n-2) + + 1 =

Multiplicaciones y Divisiones = n-1 + (n-2) + + 1 = Las frmulas (3.8) de la sustitucin para atrs conllevan los siguientes totales de operaciones:

Sumas y Restas = 1 + 2 + + (n-1) =

Multiplicaciones y Divisiones = 1 + 2 + + n = Combinando todos los totales parciales hasta ahora obtenemos que el proceso completo de eliminacin Gaussiana conlleva un total de:

Sumas y Restas =

Multiplicaciones y Divisiones = Note que para n "grande" ambos resultados son aproximadamente (1/3)n3. Asi que por ejemplo doblar n equivale a aproximadamente ocho veces ms tiempo computacional. Observe tambin que la parte de eliminacin es la que contribuye el termino proporcional a

n3. La modificacin del lado derecho y la sustitucin para atrs son ambas proporcionales a n2. Note que estos tres procesos son independientes uno del otro. Por consiguiente si hay la necesidad de resolver varios sistemas todos con la misma matriz de coeficientes, la parte de eliminacin debe hacerse una sola ves. Al derivar las frmulas (3.5), (3.7), (3.8) asumimos que los pivotes contrario algn . Si por el

, entonces podemos argumentar matemticamente que algn

si la matriz de coeficientes del sistema original es nosingular. En tal caso podemos intercambiar la fila "i" con la "k" y continuar el proceso. A pesar de esto un pivote pequeo, aunque distinto de cero, puede causar que los efectos de redondeo debido a la aritmtica finita de la computadora se propagen rpidamente. Ejemplo 3: Considere el sistema

El determinante de la matriz de coeficientes es -20/3 de modo que es nosingular. Vamos a resolver el sistema pero usando solo cuatro cifras decimales. Representamos el sistema con la matriz aumentada:

De donde obtenemos que z = 1, y = 0, x = 0.6667. La solucin exacta del sistema es x=, y=, z=1! Para evitar el problema de pivotes distintos de cero pero pequeos usamos lo que se denomina como pivoteo parcial. Esto es, definimos el indice i0 por: (3.9) Si i0k, entonces intercambiaamos las filas i0 y k. Note que estamos haciendo el pivote mximo en valor absoluto. De esta forma los multiplicadores mik satisfacen

lo cal es lo que ayuda con la propagacin de errores. Existe otra variante del pivoteo. En este caso se determinan los indices i0 y j0 tal que: (3.10) y se intercambian las filas i0 y k y las columnas j0 y k si i0k j0k respectivamente. Esto se conoce como pivoteo total y se puede demostrar que es ms efectivo que el pivoteo parcial en el control de la propagacin de errores. Pero el clculo del mximo en (3.10) es mucho ms costoso que en (3.9) por lo que en la practica se prefiere el pivoteo parcial. Adems se ha observado en pruebas usando matrices generadas aleatoriamente, que la diferencia entre ambos mtodos no es significativa en terminos de la propagacin del error.

Clculo de la Inversa de una Matriz


Suponga que A es una matriz nosingular y A-1 su inversa. Escribimos A-1 y la matriz identidad I en forma particionada como A-1 = (x1,x2,,xn) , I = (e1,e2,,en) donde los ei's forman la base estandar de . Ahora como A A-1 = I, tenemos que (3.11)

Axi = ei , 1 i n

Asi que para calcular A-1 debemos resolver n sistemas distintos pero con la misma matriz de coeficientes A. La eliminacin de A la hacemos una ves lo cual requiere (1/3)n3 operaciones aproximadamente. La modificacin del lado derecho y la sustitucin para atrs de cada uno de los sistemas en (3.11) conlleva aproximadamente n2 operaciones cada uno. Asi que en total tenemos (1/3)n3+n(n2) = (4/3)n3 aproximadamente. (Este conteo se puede mejorar a (5/6)n3). En muchas ocaciones las frmulas que envuelven inversos de matrices se pueden rescribir en terminos de sistemas lineales intermedios. Por el conteo operacional

de arriba, las frmulas con los sistemas lineales son preferibles ya que la solucin de cada sistema envuelve aproximadamente (1/3)n3 operaciones mientras que calcular los inversos toma (4/3)n3 operaciones. Como regla general tenemos pues que: LOS INVERSOS DE MATRICES NO SE CALCULAN A MENOS QUE SE NECESITEN EXPLICITAMENTE. Veamos una aplicacin de esta regla. Supongamos que desamos calcular la expresin donde c, b son vectores en y A es nn. Si calculamos A-1, luego multiplicamos por b y finalmente el producto interior con c tenemos aproximadamente Clculo A-1 Multiplicacin A-1 por b Producto interior con c TOTAL Si en lugar de esto calculamos mediante:

(4/3)n3 n2 n (4/3)n3+n2+n

Halle la solucin x del sistema Ax=b Calcule

un anlisis similar al de arriba nos da aproximadamente (1/3)n3+n2+n lo cual es mucho mejor que la frmula directa.

Factorizacin LU de una Matriz


Para discutir la factorizacin LU de una matriz necesitamos priemro definir dos tipos especiales de matrices. Una matriz A=(aij) se dice que es triangular superior si aij=0 para toda i > j. A es triangular inferior si aij=0 para toda i < j. El adjetivo unitaria se aade en ambos casos si en adicin aii=1 para toda i. Una matriz que es ambas triangular superior e inferior se llama diagonal. Note que una matriz diagonal satisface aij=0 para toda i j. Ejemplo 4: Las matrices

son triangular superior, inferior y diagonal respectivamente.

La matriz de coeficientes del sistema (3.6) es triangular superior y la denotamos por U=(uij). Usando los multiplicadores mik en (3.5) podemos definir la matriz triangular inferior unitaria L por:

Teorema (3.2): Sea A una matriz nn nosingular. Defina las matrices L y U como arriba. Entonces si no se hace pivoteo en el proceso de eliminacin Gaussiana, tenemos que A=LU. Demostracin: El elemento (i,j) del producto LU consiste del producto interior de la fila i de L con la columna j de U. Esto es

Si i j, tenemos que

Usando las frmulas (3.5) y la definicin de U podemos escribir esto como

donde para simplificar la segunda sumatoria usamos que esta es telescpica. Ahora si i > j

Como (LU)ij=aij para toda i,j tenemos que A=LU. Ejemplo 5: Para la matriz

tenemos que mediante eliminicin Gaussiana

Si definimos ahora

tenemos que A=LU. Dado que A=LU, el sistema Ax=b se puede escribir como LUx=b. La solucin del sistema Ax=b se puede ver entonces en tres etapas: 1. (Eliminacin) Calcular la factorizacin A=LU. 2. (Modificacin del lado derecho) Resolver el sistema triangular inferior Lg=b para el vector g. 3. (Sustitucin para atras) Resolver el sistema triangular superior Ux=g para el vector x. Ejemplo 5: Resuelva el sistema

La matriz de coeficientes de este sistema coincide con la del ejemplo anterior de modo que

La solucin de Lg=b con b=(1,-1,0)t esta dada por:

Ahora Ux=g nos da la solucin del sistema original:

Variantes del Mtodo de Eliminacin Gaussiana


Vamos ahora a discutir dos mtodos alternos para calcular la factorizacin LU de una matriz pero que aprovechan alguna estructura particluar de la matriz. El primero de ellos es la Factorizacin de Cholesky que se usa para matrices simtricasy positivas definidas. El otro mtodo aprovecha la estructura escasa de la matriz en el caso que esta sea tridiagonal. Factorizacin de Cholesky Una matriz A es simtrica si At=A. Decimos que A es positiva definida si xtAx>0 para todo x0. Se puede demostrar que una matriz simtrica es positiva definida si y solo si todos sus valores propios son positivos. Tambin se puede demostrar que existe una matriz triangular inferior L tal que A = L Lt lo cual se conoce como la factorizacin de Cholesky de A. De hecho las entradas de L=(lij) de pueden calcular mediante las frmulas: 1. Para i=1,2,,n a. b. Para j=1,2,,i-1

(3.12)

a. Estas frmulas se obtienen multiplicando las filas de L por las columnas de Lt e igualando a las entradas correspondientes de A. Un conteo operacional de estas frmulas muestra que el total de operaciones es aproximadamente (1/6)n3, i.e., la mitad que en eliminacin Gaussiana bsico. (Note sin embargo que hay que calcular n racies cuadradas). La ganacia aqui se debe a que se utiliz la simetra de la matriz A. Note tambin que como A es simtrica solo hay que almacenar en la computadora la mitad de la matriz al igual que para L que es triangular inferior. Sistemas Tridiagonales Una matriz A se llama tridiagonal si aij=0 para toda i,j tal que i - j > 1. Esto es, todas las entradas de A son cero excepto posiblemente en las diagonales inferior, superior y principal. Podemos pues escribir A de la siguiente forma:

(3.13) Para almacenar A en la computadora usamos tres vectores de tamao n lo que da un total de 3n lugares de memoria en comparacin con n2 para una matriz densa. Vamos ahora a resolver el sistema Ax=b aprovechando la estructura de ceros de A. Primero buscamos la factorizacin LU de A. Para esto buscamos L y U de la forma:

(3.14) Multiplicando e igualando a las entradas correspondientes de A obtenemos:


fila uno de L por columna uno de U: fila dos de L por columna uno de U: fila dos de L por columna dos de U: fila tres de L por columna dos de U:

fila tres de L por columna tres de U:

, etc.

De esta forma obtenemos las frmulas: 1. 2. Para j=2,3,n a. b. El total de multiplicaciones y divisiones en estas frmulas es 2n-2 (compare con (1/3)n3 para eliminacin Gaussiana bsico). Para resolver Lg=b es fcil ver que las frmulas son: 1. 2. Para j=2,3,,n a. El total de multiplicaciones y divisiones en este clculo es de n-1. Finalmente la solucin de Ux=g se obtinene mediante las frmulas: (3.15)

(3.16)

1. 2. Para j=n-1,n-2,,1 a.

(3.17)

El conteo aqui de multiplicaciones y divisiones es de 2n-1. Asi que en total para resolver el sistema Ax=b donde A es tridiagonal se requieren de 5n-4 multiplicaciones y divisiones. En todo este proceso necesitamos que los pivotes menor de uno en valor absoluto. Esto se cumple si y es conveniente que los 's sean

(3.18) Ejemplo 6: Considere la matriz tridiagonal

Aqui aj=1, j=2,3, bj=3, j=1,2,3, cj=1, j=1,2. Asi que

de donde obtenemos que

Estabilidad de Sistemas Lineales


En esta seccin estudiaremos can sensitiva es la solucin del sistema lineal Ax=b a cambios o perturbaciones en los datos A y b. Note que A B pueden contener errores ya sea por las truncaciones envueltas al entrar estos en la computadora o porque sean datos experimentales. De modo que queremos ver como esto puede afectar la solucin calculada x. Primero estudiamos variaciones en b unicamente. Sea solucin del sistema (aproximado) diferencia . Para esto definimos: una aproximacin de b y la . Queremos estimar el error en terminos la

(3.19) Estas se conocen como la norma vectorial infinita y la norma matricial asociada respectivamente. Estas normas satisfacen las siguientes propiedades para cualesquieras vectores x,y y matrices A,B: 1. 2. 3. 4. Tenemos ahora el siguiente teorema: Teorema (3.3): Sea A una matriz nosingular. Sean x, y . Entonces las soluciones de los sistemas Ax=b (desigualdad triangular)

(3.20) Demostracin: De Ax=b y entonces obtenemos que . Como A es nosingular,

. Usando la propiedad (4) de las normas obtenemos que . Dividiendo por en ambos lados obtenemos

Pero

. Usando esto arriba obtenemos el resultado.

Si definimos

, y el nmero de condicin de A por (3.21)

entonces podemos escribir el resultado del teorema como (3.22) De modo que si es "grande", entonces se puede magnificar por un factor hasta de . Decimos pues que el sistema Ax=b es mal acondicionado si es "grande". De lo contrario el sistema se dice que es bien acondicionado. Note que como , entonces

i.e., para toda matriz A. En MATLAB podemos calcular el nmero de condicin de A con la instruccin cond(A). Este no es el nmero de condicin en la norma (3.19) pero si en lo que se conoce como la norma dos de A. La instruccin rcond(A) nos da una aproximacin del inverso de cond(A). rcond es mucho ms rpida que cond para matrices de tamao grande. En forma similar se puede demostrar el resultado que incluye variaciones en A y b ambas. Simplemente enunciamos el resultado. Teorema (3.4): Sea A una matriz nosingular y otra matriz tal que

(3.23) Entonces es nosingular y

(3.24) Ejemplo 7: La matriz de Hilbert de orden n se define por

(3.25) Note que Hn es simtrica para toda n 1. Usando la instruccin de MATLAB, hilb(n) podemos generar la matriz de Hilbert de orden n. La instruccin invhilb(n) calcula el inverso exacto de Hn. Por ejemplo hilb(5) ans = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 que es la matriz de Hilbert de orden 5 truncada a cuatro cifras aunque MATLAB guarda ms cifras internamente. Mientras que invhilb(5) ans = 25 -300 1050 -1400 630

-300 4800 -18900 26880 -12600 1050 -18900 79380 -117600 56700 -1400 26880 -117600 179200 -88200 630 -12600 56700 -88200 44100 produce el inverso exacto de H5. Podemos calcular el nmero de condicin de H5 segn definido en (3.21) mediante:

norm(hilb(5),inf)*norm(invhilb(5),inf) ans = 943656 lo que indica el mal acondicionamiento de la matriz de Hilbert apenas para n=5. Este nmero compara con cond(hilb(5)) ans = 4.7661e+005 y con 1/rcond(hilb(5)) ans = 6.9409e+005 Usando la instruccin flops de MATLAB podemos estimar que el computo con cond requiere de 937 operaciones de punto flotante mientras que el clculo con rcond toma 296 operaciones.

Refinamiento Iteratvo - Mtodo de Residuos


El Mtodo de Eliminacin Gaussiana produce la solucin exacta de un sistema lineal en aproximadamente (1/3)n3 operaciones aritmticas donde n es el orden de la matriz de coeficientes A. En general, debido a que los cmputos se hacen con precisin finita, la solucin obtenida por Eliminacin Gaussiana no es la solucin exacta del sistema (aunque esta cerca de serlo si el sistema es bien acondicionado). Veamos ahora un proceso iteratvo que toma la solucin calculada por el Mtodo de Eliminacin Gaussiana y trata de mejorarla. Sea x(0) la solucin calculada por Eliminacin Gaussiana y x la solucin exacta del sistema, i.e., Ax=b. Para cualquier defina (error exacto) y (los residuos). Entonces es fcil ver que , de modo que (0) utilizando la factorizacin LU de A ya calculada para obtener x , podemos resolver . Este sistema tampoco se puede resolver en forma exacta obteniendo asi una aproximacin e(k) de . Definimos ahora la cual debe ser una mejor aproximacin de x que . El proceso continua de esta manera en forma inductiva hasta

que un cierto criterio de "paro" se cumple y el proceso termina. En forma algortmica tenemos: 1. Sea L y U los factores (aproximados) de A. 2. Sea x(0) la solucin aproximada de Ax=b obtenida mediante Eliminacin Gaussiana. 3. Para k=0, 1, 2, a. Calcule . b. Resuelva . c. Ponga . Note que en el clculo del residuo r(k) en el paso (3a) tenemos cancelacin de cifras significativas ya que Ax(k)b. Para evitar esto el clculo debe hacerse en presicin extendida y el resto de los clculos en presicin normal. El ciclo en (3) se puede detener con un criterio como (3.26) lo que garantiza t cifras correctas en la solucin calculada en caso de convergencia. Normalmente sin embargo el ciclo no debe ejecutarse ms de dos veces. Note que el clculo de r(k) en (3a) requiere de n2 multiplicaciones con aproximadamente la misma cantidad de sumas y restas. Para la solucin del sistema en (3b) se usa la factorizacin LU de A del paso (1) de modo que esto toma aproximadamente n2 operaciones. Asi que cada pasada por el ciclo (3) conlleva aproximadamente 2n2 multiplicaciones y divisiones. Ejemplo 8: Considere el sistema lineal

La solucin exacta a tres cifras significativas es x1=15.2, x2=-18.7. Si resolvemos el sistema mediante eliminacin Gaussiana sin pivoteo y usando aritmtica de tres cifras tenemos:

de donde obtenemos dado por:

. El residual de esta solucin calculada esta

correcto a tres cifras. Podemos calcular e(0) mediante:

de donde obtenemos que

. La solucin mejorada es:

lo cal es mejor que x(0). El proceso se puede repetir una o dos veces mas.

Propagacin de Errores en la Solucin de Sistemas Lineales


Cuando usamos Eliminacin Gaussiana para resolver el sistema Ax=b en una computadora normal, ocurren errores de redondeo en cada paso del proceso debido a la aritmtica finita de la mquina. Queremos estudiar como estos errores se propagan o acumulan durante todo el proceso y estimar el error en la solucin calculada. En realidad al final del proceso de eliminacin Gaussiana obtenemos un vector tal que . En el anlisis de errores hacia atras nos interesa saber si es la solucin exacta de otro problema que este cerca del problema original en cierto sentido. Primero repasamos algunas de las frmulas del Captulo 2. En particular recordamos que las operaciones aritmticas de la computadora se asumen que corresponden a la operacin exacta pero truncada al nmero de cifras de la mquina. Esto es si denota la operacin aritmtica en la computadora, entonces (3.27) para el sistema de punto flotante (2.2) y para donde el estandar de la IEEE (2.3). Usando estas frmulas repetidamente en (3.5), (3.8), similar al anlisis que hicimos de la sumatoria de n numros, obtenemos el siguiente resultado. Teorema (3.5): Sea la solucin calculada del sistema Ax=b mediante eliminacin Gaussiana usando aritmtica de punto flotante base con una mantisa de t cifras. Sea u el epsilon de la mquina. Entonces H=(hij) y es la solucin exacta del sistema donde

(3.28) donde n es el tamao de A y

(3.29) El factor del teorema mide la razn de crecimiento de las entradas de la matriz de coeficientes segn el mtodo numrico progresa. La cota superior de este factor depende de la estrategia de pivoteo que se use. En particular , para pivoteo parcial (3.30)

, para pivoteo completo o total En cualquiera de los dos casos, si n no es muy grande, el teorema lo que dice es que es solucin exacta de un problema que esta cerca del original. En este sentido es que decimos que Eliminacin Gaussiana es un mtodo estable. Esto no implica que est cerca de la solucin exacta x. De hecho si tomamos en el Teorema (3.4) y usamos las cotas del Teorema (3.5) obtenemos que

(3.31) lo que dice que estar cerca de x si A es una matriz bien acondicionada.

El Teorema de Gerschgorin
Dada una matriz A nxn de entradas complejas, un nmero C (conjunto de los nmeros complejos) es un valor propio de A si existe un vector tal que . Usando propiedades de determinantes, es fcil ver que el problema de hallar los valores propios de una matriz es equivalente al de hallar las raices de un polinomio con coeficientes complejos. Por el Teorema Fundamental del Algebra, tenemos ahora que toda matriz nxn tiene exactamente n valores propios contando multiplicidades. Tambin tenemos, por un teorema famoso de Galois, que el clculo de los valores propios de una matriz no se puede hacer utilizando unicamente formulas algebraicas. Por tal razn el clculo de los valores propios de matrices es un problema computacionalmente complejo y el poder estimar los mismos es de vitl importancia. El estimado ms crudo de los valores propios de una matriz esta dado por la desigualdad , donde es valor propio de A} (3.32)

se conoce como el radio espectral de A. Este estimado aunque til en muchas ocaciones, no es muy preciso en cuanto a la localizacin de los valores propios de A. El Teorema de Gerschgorin va ms all en este sentido. Para A=(aij) definimos los radios

(3.33) y los discos (3.34) El Teorema de Gerschgorin establece que cada valor propio de A pertenece al menos a uno de los Dis y que si k de los discos de Gerschgorin se intersecan entre si y estan aislados de los otros discos, entonces su unin contiene exactamente k de los valores propios de A.

Ejercicios
1. Al resolver un sistema del tipo

es conveniente intercambiar primero las filas uno y cinco y luego las columnas uno y cinco (por qu?). Resuelva el sistema luego de permutar y calcle la factorizacin LU de la matrz permutada. 2. Calcule la factorizacin LU de la matrz

usando aritmtica finita con dos cifras decimales. El sistema tiene la solucin aproximada mejor aproximacin mediante un paso de refinamiento iterativo. 3. Dados

donde . Calcle una

,b= calcule una solucin aproximada de Ax=b primero redondeando las entradas de b al entero ms cercano y luego resolviendo el resultante. Verifique que la solucin calculada es = (12, 4, 2, 1)t. Sea el vector residual.

. a. Determine los valores de ||r|| y b. Utilize su respuesta a la parte (a) para hallar una cota superior para el error relativo en la solucin aproximada. c. Calcule la solucin exacta x y determine el error relativo exacto 4. Defina los siguientes: A = round(10 * rand(6)) , s = ones(6, 1) , b= A*s. La solucin al sistema lineal Ax = b es claramente s. Resuelva el sistema utilizando la operacin \ de MATLAB. Calcule el error x - s. Ahora perturbamos el sistema como sigue. Deje que t = 1.0e-12, E = rand(6) - 0.5, r = rand(6, 1) - 0.5 y sean M = A + t * E, c = b + t * r Resuelva el nuevo sistema perturbado Mz = c para z. Compare la solucin z con la solucin del sistema original calculando z - 1. Cmo se compara el tamao de la perturbacin en la solucin a el tamao de las perturbaciones en A y b? Repita el anlisis de perturbacin con t =1.0e-04 y t =1.0e-02. Es no el sistema Ax = b bien acondicionado? Explique. Utilice MATLAB para calcular el nmero de condicin de A. 5. Defina A = round(10 * rand(5)). Calcule el radio de los discos de Gerschgorin de A y gurdelos en un vector r. Para graficar los discos usamos el parmetro t = [0:0.1:6.3]'. Podemos generar dos matrices X y Y cuyas columnas contengan las coordenadas x-y de los discos. Primero inicializamos X y Y a cero (por qu?):

X = zeros(lenght(t), 5) , Y = X . Las matrices X y Y se generan utilizando los siguientes comandos de MATLAB: for i = 1 : 5 X (: , i) = r(i) * cos(t) + real (A (i, i)); Y (: , i) = r(i) * sin(t) + imag (A (i, i)); end Sea e = eig(A). Podemos ahora graficar los valores propios y los discos de Gerschgorin con el comando plot(X, Y, real(e), imag(e), 'x') . 6. Defina B = [3 0.1 2; 0.1 7 2; 2 2 50] a. Utilice el mtodo descrito en el problema (5) para calcular y graficar los discos Gerschgorin de B. b. Como B es simtrica, sus valores propios son todos reales y por esto deben estar en el eje real. Sin computar los valores propios, explique porqu B debe tener exactamente un valor propio en el intervalo [46, 54]. Multiplique las primeras dos filas de B por 0.1 y luego multiplique las primeras dos columnas por 10. Esto se logra mediante la transformacin de similitud D = diag([0.1, 0.1, 1]) , .

La nueva matriz C tiene los mismos valores propios que B. Por qu? Explique. Utilice C para hallar intervalos que contengan los otros dos valores propios de B. Calcule y grafique los discos de Gerschgorin de C.

Captulo 4
Solucin de Ecuaciones Nolineales
Suponga que f es una funcin continua digamos de la ecuacin escalar nolineal f(x) = 0 (4.1) . Deseamos calcular soluciones

donde n1. Entonces Ms general an, podemos considerear el caso en que (4.1) representa un sistema de ecuaciones nolineales. Problemas del tipo (4.1) aparecen en la optimizacin de funciones y en la solucin numrica de problemas de frontera nolineales. En este captulo enfocaremos ms en el problema escalar y discutiemos los apectos bsicos del caso de sistemas de ecuaciones.

Mtodo de la Biseccin
Este mtodo tiene como base motivavin el Teorema (1.3), Teorema del Valor Intermedio. En particular, si f es una funcin continua digamos , y a, b son dados tales que f(a)f(b)0, entonces definimos c=(a+b)/2. Si f(c)=0, entonces terminamos. De lo contrario remplazamos a b con c manteniendo la diferencia en signos, etc. Esto nos lleva al siguiente pseudo algortmo llamado el Mtodo de la Biseccin: Suponga que es una funcin continua y que a, b son dados tales que f(a)f(b)0 y >0 es tambin dado (criterio de paro). 1. 2. 3. 4. Sean a1=a, b1=b, n=1. Defina cn=(an+bn)/2. Si bn-cn, entonces aceptamos cn como una raiz aproximada y paramos el proceso. Si signo(f(bn))signo(f(cn))0, entonces ponemos an+1=cn. De lo contrario ponemos bn+1=cn. 5. Ponga n=n+1, y vuelva a (2).

Ejemplo 1: Considere la funcin f(x)=x2+x-1. Note que como f(0)=-1 y f(1)=1, tenemos que existe una raiz de la ecuacin f(x)=0 en el intervalo (0,1). Vamos a aproximar esta raiz con el mtodo de la biseccin. Los resultados son como sigue: n 1 2 an 0 0 bn 1 0.5 cn 0.5 0.25 f(an) -1 -1 f(bn) 1 0.25 f(cn) 0.25 -0.69

3 4 5

0.25 0.375 0.4375

0.5 0.5 0.5

0.375 0.4375 0.46875

-0.69 -0.48 -0.37

0.25 0.25 0.25

-0.48 -0.37 -0.31

La solucin correcta a seis cifras calculada con la funcin fzero de MATLAB es 0.618034. Podemos ver que el mtodo de la biseccin aunque progresa hacia la solucin, lo hace un tanto lento. Veamos ahora por que esto es asi analizando la convergencia del mtodo. Anlisis de Error: Como f(a)f(b)0, sabemos que existe un nmero f()=0. Mediante induccin matemtica es fcil ver que tal que

(4.2) Esto es asi ya que el largo del intervalo se divide a la mitad cada ves que pasamos por el paso (2) del algortmo. Nuevamente usando induccin matemtica obtenemos que

(4.3) Observe que como tenemos que

(4.4) Combinando (4.3) y (4.4) obtenemos que

(4.5) lo cual implica que segn . La convergencia en (4.5) es lo que se conoce como convergencia lineal con taza razn de convergencia . De la desigualdad (4.5) podemos estimar el nmero de iteraciones necesarias para obtener que particular si requerimos que , obtenemos que . En

(4.6)

Basados en este anlisis de convergencia podemos hacer las siguientes observaciones:

El mtodo tiene convergencia segura! Esto es dada la condicin inicial f(a)f(b)0, el mtodo converge a una raiz en [a,b]. Esta propiedad conocida como convergencia global es una de las caractersticas fuertes del mtodo de la biseccin y la mayoria de los mtodos no la poseen. El error en las aproximaciones generadas por el mtodo se reduce a la mitad en cada paso. La convergencia lineal caracterizada por la ecuacin (4.5) es lenta comparada con otros mtodos. Esto es asi ya que el mtodo solo usa evaluaciones de la funcin y comparaciones. Veremos que usando derivadas mas infoormacin de la funcin f, podemos asi obtener mtodos ms rpidos.

El mtodo de la biseccin no generaliza al caso de sistemas nolineales debido a que no es posible una generalizacin del Teorema (1.3) a funciones vectoriales de variable vectorial.

Mtodo de Newton
Suponemos ahora que la funcin f es diferenciable e incorporamos informacin de la derivada en el mtodo. Sea pues f C1. La recta tangente a f en el punto (x0,f(x0)) esta dada por la ecuacin . Ahora aproximamos a f con esta recta y definimos x1 como el intercepto en x de la recto, esto es:

(4.7) Este proceso lo podemos repetiir ahora con el punto (x1,f(x1)), etc., obteniendo asi la recursin

(4.8) Esta recursin define el Mtodo de Newton y es un ejemplo de una iteracin de punto fijo.

Aplicacin 1
Vamos a suponer que queremos calcular el cociente a/b usando solo las operaciones . En la mayoria de las computadoras las operaciones se implementan a nivel de "hardware" mientras que la divisin se hace mediante programado (software) . Note que como , entonces es suficiente discutir el utilizando computo de reciprocos. Si definimos la funcin f(x) por

(4.9) es la raiz de f(x)=0. Usando que entonces para la ecuacin f(x)=0 toma la forma: , el mtodo de Newton

(4.10) la cal envuelve unicamente . Note que

de donde obtenemos la frmula

(4.11) i.e, (4.12) Esta frmula, exacta en este caso, aplica en general al mtodo de Newton pero asintoticamente segn se converge a la raiz (demostracin ms adelante). De la ecuacin (4.12) obtenemos que segn si y solo si , i.e.,

(4.13) Cmo seleccionamos x0 para que cumpla con (4.13)? Bueno la parte de x0>0 es simple de verificar. Cmo saber si x0<(2/b) cuando no conocemos 2/b? Note que si x0>0, entonces

Asi que si , entonces sabemos que . En esta caso reducimos x0, digamos a x0/2, y empezamos las iteraciones de nuevo. Note que despes de esta etapa inicial, la convergencia es bin rpida, de hecho cuadrtica de acuerdo a la ecuacin (4.12). Esto es, en cada iteracin el nmero de cifras significativas se duplica. Vamos ahora a precisar la nocin de rpidez o orden de convergencia de una sucesin.

Definicin (4.1): Suponga que la sucesin

converge al nmero . Decimos que

converge a con orden p1 si existen M,N0 tales que (4.14) El nmero p, que no tiene que ser un entero, se llama el orden de convergencia. Si p=2 la convergencia se llama cuadrtica. Si p=1 y M<1 la convergencia se llama lineal con taza o razn de convergencia M. Nota: Mientras ms grande sea p, ms rpido converge la sucesin mientras ms pequeo sea M, ms rpido converge la sucesin. a . Si p=1,

Aplicacin 2
Vamos a discutir ahora el problema de calcular raices cuadradas. Defina para a>0 la funcin la cual tiene como una de sus raices . Dado que tenemos que el mtodo de Newton aplicado a la ecuacin f(x)=0 toma la forma:

(4.15) Tenemos ahora el siguiente resultado sobre la convergencia de estas iteraciones. Teorema (4.1): La sucesin (xn) definida por la iteracin (4.15) converge a cualquier x0>0 con orden de convergencia de dos. para

Demostracin: Si x0>0 y a>0 entonces sigue de (4.15) que xn>0 para toda n0. Adems

(4.16) De aqui y como xn>0, obtenemos que rescribir como para toda n1. Ahora (4.15) se puede

(4.17)

Esto combinado con Falta ver que converge a tenemos que , i.e., la expresin (4.16).

para toda n1 implica que

para toda n1. Tenemos en la

pues que (xn) esta acota inferiormente por ecuacin (4.17) obtenemos que , i.e,

y es decreciente de modo que es convergente. . Pero como xn>0 para toda n0,

. Sea el limite de (xn). Entonces dejando

. La convergencia cuadrtica de la sucesin sigue ahora de

Nuevamente vemos convergencia cuadrtica del mtodo de Newton. Veamos ahora el resultado general. Teorema (4.2) (Convergencia Local del Mtodo de Newton): Suponga que es

. Entonces si una funcin C2 en una vecindad del nmero para el cual x0 se selecciona suficientemente cerce de , las iteraciones del Mtodo de Newton convergen a . Adems

(4.18) es decir, (xn) converge a con orden de convergencia p=2. Demostracin: Usando el Teorema de Taylor podemos escribir

(4.19) donde esta entre y xn. Como para y es continua, existe un intervalo I alrededor

de x= tal que

. Defina ahora el nmero M por

(4.20) el cual existe y es finito (por qu?). Si obteniendo asi que , podemos despejar para en (4.19)

(4.21) Definimos ahora el intervalo por

(4.22) Veamos ahora que si que si , entonces obtenemos que , entonces para toda n0. De hecho de (4.21) tenemos . Multiplicando por M ambos lados

(4.23) Ahora como , i.e, , tenemos que . Combinando esto con . Tambin de (4.23) obtenemos que obtenemos que

. De aqui que si entonces las iteraciones del Mtodo de Newton estan bien definidas, permanecen en , y (4.23) implica que

(4.24) Si de modo que , entonces (4.24) implica que y la convergencia

es de orden dos ya que escribir como

. Para terminar note que (4.21) se puede

(4.25) Dejando y usando que , y por consiguiente , y la continuidad de

, obtenemos la expresin (4.18). La seleccin del punto inicial x0 que garantice la convergencia del Mtodo de Newton es un asunto notrivial. Cualquier estimado o conocimiento previo de la localizacin de la raiz debe utilizarce para asegurar la convergencia del mtodo. Por ejemplo una grfica de la funcin f podria arrojar una idea sobre la raiz. Luego de esto se puede utilizar un mtodo como la biseccin para corregir la aproximacin y pasarla entonces al mtodo de Newton. Esto asemeja a los mtodos predictor-corrector comunes en la solucin numrica de ecuaciones diferenciales ordinarias. Una ves tenemos un mtodo iterativo como el de Newton que no tiene en general una expresin como (4.6) para predecir el nmero de iteraciones necesarias para lograr un error pre-determinadado, cmo detenemos las iteraciones? Veamos ahora un criterio heurstico

para detener el mtodo. Suponiendo que las iteraciones (xn) estan "cerca" de la raiz , podemos escribir

(4.26) Asi que si como aproximacin de . tenemos aproximadamente t cifras significativas en xn

Mtodo de la Secante
La motivacin del mtodo de la secante viene de que en ocaciones es complicado quizas imposible calcular la derivada de la funcin f en el mtodo de Newton. Por ejemplo la funcin f podra estar especificada por un nmero discreto de puntos dada por un programa de computadora. En tales situaciones el mtodo de Newton se hace impractico y buscamos un mtodo intermedio entre el de la biseccin y el de Newton. Para esto suponemos que tenemos dos aproximaciones x0, x1 de la raiz . Podemos ahora construir la secante a la funcin f en los punto (x0,f(x0)), (x1,f(x1)), la cual esta dada por:

(4.27) Definimos la nueva aproximacin x2 como el intercepto en x de esta secante, i.e.,

(4.28) Este proceso lo podemos repetir ahora con x1, x2 para generar x3, etc. Obtenemos asi la recurcin que define el Mtodo de la Secante:

(4.29) El mtodo de la secante es un ejemplo de un mtodo iterativo de dos puntos ya que predice en el paso n+1 basado en la informacin obtenida en los pasos n, n-1. Note tambin que

(4.30) de modo que el mtodo de la secante se puede ver como una discretizacin del mtodo de Newton.

El anlisis de convergencia del mtodo de la secante es un tanto ms complicado que el del mtodo de Newton y requiere del concepto de diferencias divididas las cuales se discuten en el Cpitulo 5. Usando propiedades de las diferencias dividas se puede demostrar que las iteraciones del mtodo de la secante satisfacen:

(4.31) donde esta entre xn-1, xn y y pertenece al intervalo minimo que contiene a xn-1, xn, .Usando esta frmula se puede demostrar el siguiente teorema. Teorema (4.3) (Convergencia Local del Mtodo de la Secante): Suponga que es

una funcin C2 en una vecindad del nmero para el cual . Entonces si x0, x1 se seleccionan suficientemente cerce de , las iteraciones del Mtodo de la Secante convergen a . Adems

(4.32) donde .

Demostracin (borrador): Vamos a suponer que las iteraciones convergen. Entonces de (4.31), para n suficientemente grande, podemos escribir

(4.33) Multiplicando esta aproximacin por M en ambos lados, definiendo y convirtiendo la aproximacin en una igualdad, obtenemos la relacin: (4.34) donde por conveniencia hemos tomado F0=F1=1. La iteracin (4.34) define los nmeros de Fibonachi y es bien conocido que para n grande: ,

(4.35) Asi que

(4.36) donde usamos la notacin . Ahora podemos escribir

(4.37) lo cual nos da en forma asinttica la frmula (4.32). En la siguiente tabla resumimos las propiedades de los mtodos de Newton y de la Secante: Mtodo Newton Secante Taza de convergencia Dos 1.62 Evaluaciones (funcin y/o derivada) 1 para f; 1 para 1 para f

Si es dificil o imposible de evaluar, entonces el mtodo de la secante podra ser ms conveniente que el de Newton. Muchas veces f esta dada por una tabla o programa de computadora lo que hace el calculo de imposible. Si es accesible y computacionalmete viable, entonces el mtodo de Newton es preferible por su convergencia rpida. Note que en ambos mtodos aproximamos la funcin original por una funcin lineal a la cual es fcil de calcular sus raices.

Raices Multiples
En ambos de los Teoremas (4.2) y (4.3) tenemos la condicin que garantiza que la funcin f(x) corta el eje de "x" en en forma transversal. Cuando esta condicin de transversalidad no se cumple en la raiz , entonces el mtodo numrico puede diverger o si converge lo hace ms lento que en el caso transversal. Vamos a estudiar esta situacin en mas detalles en particular para el mtodo de Newton. Sea f una funcin, un nmero real tal que , y m un entero positivo. Decimos que es una raiz de f de multiplicidad m si existe una funcin g(x) tal que (4.38) Si m=1 decimos que la raiz es simple. Tenemos ahora:

Teorema (4.4): Sea solo si

. Entonces es raiz de f de multiplidad m si y

(4.39) Demostracin: Supongamos que (4.39) es cierta. Por el Teorema de Taylor tenemos que podemos escribir:

Como

esta entre y x, y

, tenemos que para x , la

suficientemente cerca de la funcin . Asi que con ecuacin (4.38) se cumple, i.e., es raiz de f de multiplicidad m. Suponga que por el contrario, (4.38) es dado donde regla de Leibnitz obtenemos que

. Entonces usando la

(4.40) Si y , entonces entonces (4.40) se puede escribir como y (4.40) implica que Si k=m,

Note que al evaluar en

los terminos en la sumatoria son todos cero ya que las .

potencias de son todas positivas. De modo que tenemos que Combinando esto con lo anterior, obtenemos (4.39).

Ejemplo 2: Para f(x)=(x-2)3(x-1)2 tenemos que =2 es raiz de f de multiplicidad 3 y que =1 es raiz de multiplicidad 2. Para la funcin f(x)=sen(x) tenemos que =0 es una raiz de f. Ademas con

tenemos que =0 es raiz simple de f. Cuando los mtodos de Newton la Secante se utilizan en problemas con raices multiples, la convergencia si alguna se hace ms lenta. Por ejemplo si consideramos el problema de buscar las raices de la ecuacin x3=0 usando el mtodo de Newton, entonces las iteraciones de Newton estan dadas por la recursin:

Como =0 es la nica solucin en este caso, vemos que el mtodo tiene convergencia lineal en este problema. En general se puede demostrar que si x= es una raiz de multiplicidad m de la ecuacin f(x)=0, entonces las iteraciones del mtodo de Newton convergen localmente a la raiz x= y satisfacen

(4.41) i.e., la convergencia es lineal si m>1 con taza o razn de convergencia . Note que si m>2, entonces >1/2 y el mtodo de la biseccin es en general ms rpido que el de Newton. Otro problema con el clculo de raices multiples es provocado por la aritmtica finita de la computadora y el hecho de que la funcin f no cruza el eje de x transversalmente en x= . Esto hace que el intervalo de incertidumbre para el clculo de la raiz sea mucho mayor de lo que sera para una raiz simple. Cmo podemos entonces calcular raices multiples en forma efectiva? Si la multiplicidad m de la raiz es conocida, entonces podemos mejorar la convergencia del mtodo de Newton de dos formas: 1. Calculamos la sucesin (xn) mediante la recurrencia

(4.42) con orden p=2. Pero el problema de la Se puede demostrar (ver ) que incertidumbre mencionado arriba, no mejora debido a que la raiz multiple de f esta todavia presente.

2. Calculamos analiticamente f(m-1)(x) y le aplicamos el mtodo de Newton a la funcin F(x)= f(m-1)(x). Note que ahora es raiz simple de F, tenemos convergencia cuadrtica y no hay el problema de un intervalo de incertidumbre grande. Este mtodo es efectivo si las derivadas de f son fciles de calcular. Para estimar m si este no es conocido, usamos el mtodo de Newton aplicado a la funcin original f y vamos calculando los cocientes

(4.43) . Usando esto los cuales de acuerdo a la frmula (4.41) aproximan a podemos aproximar "m" y luego procedemos con uno de los mtodos (1) (2) descritos arriba.

Sistemas Nolineales
Consideramos ahora el problema de resolver un sistema de ecuaciones nolineales de n ecuaciones en n desconocidas. Sean funciones (nolineales) suficientemente diferenciables. Un sistema nolineal n n consiste de:

(4.44) Si definimos forma vectorial como: por , entonces podemos escribir (4.44) en

(4.45) Sea por tal que , i.e., una solucin de (4.45). Defina la siguiente matriz n n

(4.46) es una aproximacin de . Entonces usando el Teorema de Taylor para Suponga que funciones de varias variables, podemos escribir

Definimos ahora la siguiente aproximacin

como la solucin de

i.e.,

De esta forma continuamos obteniendo asi la versin para sistemas del Mtodo de Newton dada por

(4.47) Si es nosingular, y se toma suficientemente cerca de , entonces se puede

demostrar que las iteraciones convergen a la raiz . Las iteraciones (4.47) se pueden rescribir para que no haya que calcular el inverso de una matriz. Esto se hace de la forma:

(4.48) Ejemplo 3: Considere el problema de aproximar una solucin del sistema:

Tenemos que

Estas dos expresiones las calculamos en MATLAB mediante las siguientes funciones: function z=f(w) z=zeros(2,1); x=w(1);y=w(2); z(1)=x^3-x*y^2+y^3; z(2)=x*sin(x*y)+1;

function z=fp(w) z=zeros(2,2); x=w(1);y=w(2); z(1,1)=3*x^2-y^2; z(1,2)=-2*x*y+3*y^2; z(2,1)=sin(x*y)+x*y*cos(x*y); z(2,2)=x^2*cos(x*y); Tomando como (4.48): , tenemos el siguiente programa que implementa la recursin

x0=[1,0]'; normx=1; normz=1; while normz > 1.0e-6*normx f0=f(x0); fp0=fp(x0); z=-fp0\f0; normz=norm(z,2); normx=norm(x0,2); x0=x0+z; end x0 con el cual obtenemos (1.1674,-0.8812) como una raiz aproximada del sistema.

Ejercicios

1. Calcle la raiz ms grande de la ecuacin

Despes de haber calculado la raiz mayor, use divisin sinttica y calcle las raices restantes. 2. La siguiente ecuacin tiene una raiz nica en el intervalo (-1,0):

Use el Mtodo de Newton para calcular la raiz lo ms preciso posible para los valores de B=1, 5, 10, 25, 50. Como punto inicial puede tomar entre otros x0=0. Explique cualquier diferencia en el comportamiento del mtodo segn aumenta el

valor de B. Utilice la grfica de argumentos.

para sustentar sus

3. Implemente el Mtodo de Newton para buscar todas las raices de un polinomio p(x). Debe utilizar el Mtodo de Horner para evaluar p(x) y su derivada . Si es una raiz, como resultado del Mtodo de Horner, se obtiene un polinomio q(x) tal que p(x)=(x- )q(x). Usando q(x) podemos calcular las raices restantes de p(x). Uttilice su programa para resolver las ecuaciones: a. b. c. 4. Sea A la matriz 3x3 y b el vector 3x1 dados por:

Escriba un algortmo (en MATLAB) basado en el mtodo de la biseccin, que tal que la solucin x de aproxime a 12 cifras significativas el valor de satisfaga . Puede suponer la existencia de una subrutina solve que dada una matriz C y un vector d, solve(C,d) devuelve como resultado la solucin z de Cz=d. Ayuda: La solucin x de al sustituirse en la ecuacin se puede ver como una funcin produce la ecuacin (nolineal) en : . 5. La ecuacin define a y implicitamente como funcin de x. La funcin tiene un mximo para . Demuestre que las coordenadas del mximo satisfacen las ecuaciones: la cual

Calcule una solucin aproximada de este sistema usando el Mtodo de Newton. 6. Considere el problema de resolver la ecuacin integral

para la funcin desconocida z(s). Usando una regla de cuadratura apropiada para discretizar el integral en esta ecuacin, obtenga un sistema de ecuaciones nolineales cuya solucin es una aproximacin de z(s). Resuelva el sistema resultante usando el Mtodo de Newton.

Você também pode gostar