Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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:
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
De modo que
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.
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.
(-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):
, llamado el epsilon de la
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".
(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
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:
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
realmin/2
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:
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 "-".
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
Note que si
, entonces
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.
para algn c entre xa y xt. Dividiendo por f(xt) en ambos lados podemos obtener la siguiente frmula para los errores relatvos:
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
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
Ahora obtenemos f tomando el reciproco del resultado de arriba para obtener que tiene un error absoluto aproximado de
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
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
el cual se puede estimar con los estimados de calcular el error relativo en xaya como sigue:
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
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
Queremos determinar el error S - Sn. Motivados por el Teorema (2.1) definimos por
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
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
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
Obtenga los estimados de los errores "forward" y "backward" para este cmputo. 2. El polinomio se evala en un sistema de punto flotante satisface
donde
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
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
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.
(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.
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.4) donde
y definimos
donde
Paso 3: Hacemos ahora la sustitucin para atrs para obtener la solucin. Suponemos aqui que :
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.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
n-1 TOTAL
1 n(n-1)(2n-1)/6
1 n(n-1)(2n-1)/6
1 n(n-1)/2
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.
Multiplicaciones y Divisiones = n-1 + (n-2) + + 1 = Las frmulas (3.8) de la sustitucin para atrs conllevan los siguientes totales de operaciones:
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
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.
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
un anlisis similar al de arriba nos da aproximadamente (1/3)n3+n2+n lo cual es mucho mejor que la frmula directa.
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
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
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
(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:
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:
, 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.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)
. Usando la propiedad (4) de las normas obtenemos que . Dividiendo por en ambos lados obtenemos
Pero
Si definimos
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.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.
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:
lo cal es mejor que x(0). El proceso se puede repetir una o dos veces mas.
(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
,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
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.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)
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.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.
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).
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,
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
(4.20) el cual existe y es finito (por qu?). Si obteniendo asi que , podemos despejar para en (4.19)
(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
, 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
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.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.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:
(4.39) Demostracin: Supongamos que (4.39) es cierta. Por el Teorema de Taylor tenemos que podemos escribir:
Como
esta entre y x, y
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,
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
como la solucin de
i.e.,
De esta forma continuamos obteniendo asi la versin para sistemas del Mtodo de Newton dada por
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:
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
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
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.