Você está na página 1de 139

Notas MATE 4061

Notas de Anlisis Numrico (MATE 4061) 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 2. Reglas para la entrega de proyectos 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, AddisonWesley, New York, 1996. 4. Van Loan, C., Introduction to Scientific Computing: A Matrix-Vector Approach Using MATLAB, Prentice-Hall, New York, 1997.
http://uprhmate01.upr.clu.edu/~pnm/notas4061/ (1 de 2) [04/08/2002 0:27:22]

Notas MATE 4061

Derechos Reservados por Pablo V. Negrn Marrero.

Este documento puede ser copiado y distribuido a gusto sujeto a las siguientes restricciones: 1. El documento no puede ser alterado en ninguna manera. 2. Ninguna parte del manuscrito o su totalidad puede ser distribuido comercialmente como parte de otro documento.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/ (2 de 2) [04/08/2002 0:27:22]

Capitulo 1

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: continua y Teorema (1.1): (Teorema del Valor Medio para funciones) Sea 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.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (1 de 11) [04/08/2002 0:28:11]

Capitulo 1

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 tal que (1.3) un conjunto abierto,

continua y con derivadas parciales continuas en D. Suponga que (x0,y0) en un punto en D

Entonces existe un nmero continua tal que

y una funcin

continua y con derivada

(1.4)

El teorema dice que dadas las condiciones (1.3) podemos resolver la ecuacin f(x,y)=0 para "x" en , en un intervalo alrededor de y0. Si en (1.3) cambiamos a terminos de "y", i.e, , 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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (2 de 11) [04/08/2002 0:28:11]

Capitulo 1

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 esta dado por ms n que cumple con las condiciones

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);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (3 de 11) [04/08/2002 0:28:11]

Capitulo 1

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 y sea . Sea Rn(x)=f(x)-pn(x) el

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (4 de 11) [04/08/2002 0:28:11]

Capitulo 1

error en aproximar f con pn. Entonces

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);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (5 de 11) [04/08/2002 0:28:11]

Capitulo 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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (6 de 11) [04/08/2002 0:28:11]

Capitulo 1

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (7 de 11) [04/08/2002 0:28:11]

Capitulo 1

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. 2. 3. bn = an Para i=n-1,,0 bi=ai + z bi+1

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (8 de 11) [04/08/2002 0:28:11]

Capitulo 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. 2. 3. bk+1 = ak+1 Para i=k,,0 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 hipotesis de induccin que 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:
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (9 de 11) [04/08/2002 0:28:11]

para 0 i k. Como el grado de q(x) es k, tenemos por la . Pero y el resultado es cierto para

Capitulo 1

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 en el intervalo [-1,1].

,i.e., los primeros cuatro polinomios de Taylor de a. Calcule las formulas de alrededor de . b. Grafque en el mismo sistema de coordenadas los cuatro polinomios. c. Estme grficamente el error para .

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (10 de 11) [04/08/2002 0:28:11]

Capitulo 1

d. Compare los resultados de la parte (c) con los predichos por la cota del Teorema de Taylor.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (11 de 11) [04/08/2002 0:28:11]

Captulo 2

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (1 de 18) [04/08/2002 0:30:47]

Captulo 2

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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (2 de 18) [04/08/2002 0:30:47]

Captulo 2

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 , "e" es un entero positivo negativo, ,y es dies dos. Por ejemplo

(-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 forma a partir de . El nmero , . Los ai's se obtienen de alguna 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):
q

el nmero ms grande en el sistema es:

el nmero ms pequeo es:

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

, llamado el epsilon de la mquina es

La dos formas ms comunes de calcular la mantisa son:


http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (3 de 18) [04/08/2002 0:30:47]

Captulo 2

Truncacin: si digitos Redondeo: en el caso

entonces , tenemos

. Esto es truncamos

a "t"

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 y el flotante de un nmero tiene la forma: (2.3) donde "f" es ahora la mantisa y satisface usados para t y e son como sigue: y se representa con t cifras binarias. Los valores

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.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (4 de 18) [04/08/2002 0:30:47]

Captulo 2

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:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (5 de 18) [04/08/2002 0:30:47]

Captulo 2

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).
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (6 de 18) [04/08/2002 0:30:47]

Captulo 2

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) 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

000 0000 0001 (exponente mas pequeo antes de underflow)

-realmin

000 0000 0001

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (7 de 18) [04/08/2002 0:30:47]

Captulo 2

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 como aproximacin de xt. Ejemplo 1: Si tomamos xt=exp(1) y xa=2.718, tenemos que Error(xa)=2.8183e-004 y Rel(xa)=1.0368e004. 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 , entonces xa tiene por lo menos m cifras significativas

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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (8 de 18) [04/08/2002 0:30:47]

Captulo 2

considere la ecuacin x2+bx+c/4=0 donde b>0 y c es mucho ms pequeo que b. Entonces como el , vamos a tener cancelacin de cifras al calcular la raiz con el "+" en la discriminante 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. Como para "x" cerca de cero, tenemos resta de cantidades 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+35x321x2+7x-1. El siguiente cdigo en MATLAB evalua el polinomio en el intervalo [0.988,1.012] y lo
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (9 de 18) [04/08/2002 0:30:47]

Captulo 2

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 corresponde a la forma expandida de (x-1)7 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.
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (10 de 18) [04/08/2002 0:30:47]

Captulo 2

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (11 de 18) [04/08/2002 0:30:47]

Captulo 2

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 pues que

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

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. corresponde a la operacin exacta pero truncada a la presicin de la mquina. Vamos a suponer que Esto es

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (12 de 18) [04/08/2002 0:30:47]

Captulo 2

(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 error relativo en xaya como sigue:

y los valores de xa, ya. Podemos ms an calcular el

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (13 de 18) [04/08/2002 0:30:48]

Captulo 2

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 cifras significativas que vimos anteriormente.

. Este es el fenmeno de perdida

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (14 de 18) [04/08/2002 0:30:48]

Captulo 2

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 concide con la frmula del teorema. 2. Paso inductivo: Suponemos que el resultado es cierto para n = m, i.e., lo cal

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.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (15 de 18) [04/08/2002 0:30:48]

Captulo 2

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (16 de 18) [04/08/2002 0:30:48]

Captulo 2

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 mediante la regla de Horner. Muestre que el valor calculado satisface

donde

es el epsilon de la mquina. (Los terminos

se pueden descartar). correcto a cuatro cifras? para

3. Con canta precisin necesitamos conocer a para poder calcular 4. Trace la grfica de la funcin
r r

en el intervalo

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

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

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

. Explque la

Suponiendo que

y que r t, calcule el error

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (17 de 18) [04/08/2002 0:30:48]

Captulo 2

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (18 de 18) [04/08/2002 0:30:48]

Captulo 3

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)

donde los vectores b, x por

son dados y x1,x2,,xn son desconocidas. Si definimos la matriz A y los

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (1 de 17) [04/08/2002 0:33:33]

Captulo 3

(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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (2 de 17) [04/08/2002 0:33:33]

Captulo 3

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)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (3 de 17) [04/08/2002 0:33:33]

Captulo 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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (4 de 17) [04/08/2002 0:33:33]

Captulo 3

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 (pivote). El sistema en este paso se reduce a uno de la forma:

donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (5 de 17) [04/08/2002 0:33:33]

Captulo 3

(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 en (3.5) podemos construir la tabla siguiente:

Paso 1

Sumas (n-1)2

Multiplicaciones (n-1)2

Divisiones n-1

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (6 de 17) [04/08/2002 0:33:33]

Captulo 3

(n-2)2

(n-2)2

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 conllevan:

en (3.5) se conocen como la modificacin del lado derecho. Estas

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) =

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (7 de 17) [04/08/2002 0:33:33]

Captulo 3

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 , entonces podemos argumentar matemticamente que algn . Si por el contrario 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:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (8 de 17) [04/08/2002 0:33:33]

Captulo 3

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 en valor absoluto. De esta forma los multiplicadores mik satisfacen mximo

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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (9 de 17) [04/08/2002 0:33:33]

Captulo 3

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 (4/3)n3 n2 n (4/3)n3+n2+n

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (10 de 17) [04/08/2002 0:33:33]

Captulo 3

Si en lugar de esto calculamos mediante:


q

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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (11 de 17) [04/08/2002 0:33:33]

Captulo 3

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (12 de 17) [04/08/2002 0:33:33]

Captulo 3

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:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (13 de 17) [04/08/2002 0:33:33]

Captulo 3

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 a. (3.12)

Estas frmulas se obtienen multiplicando las filas de L por las columnas de Lt e igualando a las
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (14 de 17) [04/08/2002 0:33:33]

Captulo 3

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:


q q q q q

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:


http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (15 de 17) [04/08/2002 0:33:33]

Captulo 3

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. (3.16) (3.15)

El total de multiplicaciones y divisiones en este clculo es de n-1. Finalmente la solucin de Ux=g se obtinene mediante las frmulas: 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 y es conveniente que los 's sean menor de uno en valor absoluto. Esto se cumple si

(3.18)

Ejemplo 6: Considere la matriz tridiagonal

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (16 de 17) [04/08/2002 0:33:33]

Captulo 3

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

de donde obtenemos que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (17 de 17) [04/08/2002 0:33:33]

Estabilidad de Sistemas Lineales

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 una aproximacin de b y la solucin del sistema (aproximado) . Queremos estimar el error en terminos la diferencia . Para esto definimos:

(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, . Entonces las soluciones de los sistemas Ax=b y (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.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (1 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

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 es "grande". De lo , entonces

. Decimos pues que el sistema Ax=b es mal acondicionado si contrario el sistema se dice que es bien acondicionado. Note que como

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (2 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

(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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (3 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

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., defina (error exacto) y Ax=b. Para cualquier (los residuos). Entonces es fcil ver que A ya calculada para obtener x(0), podemos resolver , de modo que utilizando la factorizacin LU de . Este sistema tampoco se puede

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (4 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

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

. El residual de esta solucin calculada esta dado por:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (5 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

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) donde para el sistema de punto flotante (2.2) y para 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 es la solucin exacta del sistema donde H=(hij) y

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (6 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

(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)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (7 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (8 de 10) [04/08/2002 0:37:38]

donde . Calcle una

Estabilidad de Sistemas Lineales

,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, el vector residual. 1)t. Sea 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?):
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (9 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

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.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (10 de 10) [04/08/2002 0:37:38]

Captulo 4

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

(4.1)

Ms general an, podemos considerear el caso en que donde n1. Entonces (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: es una funcin continua y que a, b son dados tales que f(a)f(b)0 y >0 es Suponga que tambin dado (criterio de paro). 1. 2. 3. 4. 5. 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. 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 an 0 bn 1 cn 0.5 f(an) -1 f(bn) 1 f(cn) 0.25

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (1 de 17) [04/08/2002 0:41:38]

Captulo 4

2 3 4 5

0 0.25 0.375 0.4375

0.5 0.5 0.5 0.5

0.25 0.375 0.4375 0.46875

-1 -0.69 -0.48 -0.37

0.25 0.25 0.25 0.25

-0.69 -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 Mediante induccin matemtica es fcil ver que (4.2) tal que f()=0.

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 , obtenemos que . En particular si requerimos que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (2 de 17) [04/08/2002 0:41:38]

Captulo 4

(4.6)

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


q

q q

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 se implementan a nivel de "hardware" mientras mayoria de las computadoras las operaciones . Note que como que la divisin se hace mediante programado (software) utilizando

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (3 de 17) [04/08/2002 0:41:38]

Captulo 4

, entonces es suficiente discutir el computo de reciprocos. Si definimos la funcin f(x) por (4.9) entonces es la raiz de f(x)=0. Usando que , el mtodo de Newton para la

ecuacin f(x)=0 toma la forma: (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

, entonces sabemos que . En esta caso reducimos x0, digamos a x0/2, y Asi que si empezamos las iteraciones de nuevo. Note que despes de esta etapa inicial, la convergencia es bin
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (4 de 17) [04/08/2002 0:41:38]

Captulo 4

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 pequeo sea M, ms rpido converge la sucesin. a . Si p=1, mientras ms

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 con orden de convergencia de dos. para cualquier x0>0

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

para toda n1. Ahora (4.15) se puede rescribir como

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (5 de 17) [04/08/2002 0:41:38]

Captulo 4

(4.17)

Esto combinado con converge a

para toda n1 implica que

para toda n1. Tenemos pues en la ecuacin (4.17) obtenemos , i.e., . La

que (xn) esta acota inferiormente por

y es decreciente de modo que es convergente. Falta ver que

. Sea el limite de (xn). Entonces dejando

que , i.e, . Pero como xn>0 para toda n0, tenemos que convergencia cuadrtica de la sucesin sigue ahora de la expresin (4.16).

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 una funcin . Entonces si x0 se selecciona C2 en una vecindad del nmero para el cual 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) esta entre y xn. Como para

donde tal que

es continua, existe un intervalo I alrededor de x=

. Defina ahora el nmero M por

(4.20)

el cual existe y es finito (por qu?). Si

, podemos despejar para en (4.19) obteniendo asi que

(4.21)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (6 de 17) [04/08/2002 0:41:38]

Captulo 4

Definimos ahora el intervalo

por (4.22)

Veamos ahora que si , entonces

, entonces

para toda n0. De hecho de (4.21) tenemos que si . Multiplicando por M ambos lados obtenemos que

(4.23)

Ahora como , i.e, De aqui que si permanecen en

, tenemos que . Combinando esto con

. Tambin de (4.23) obtenemos que obtenemos que .

entonces las iteraciones del Mtodo de Newton estan bien definidas, , 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

. Para terminar note que (4.21) se puede escribir como

(4.25)

Dejando y usando que obtenemos la expresin (4.18).

, y por consiguiente

, y la continuidad de

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 predictorcorrector 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
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (7 de 17) [04/08/2002 0:41:38]

Captulo 4

(4.26)

Asi que si aproximacin de .

tenemos aproximadamente t cifras significativas en xn como

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.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (8 de 17) [04/08/2002 0:41:38]

Captulo 4

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)

esta entre xn-1, xn y y pertenece al intervalo minimo que contiene a xn-1, xn, .Usando donde esta frmula se puede demostrar el siguiente teorema. Teorema (4.3) (Convergencia Local del Mtodo de la Secante): Suponga que es una . Entonces si x0, x1 se funcin C2 en una vecindad del nmero para el cual 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 convirtiendo la aproximacin en una igualdad, obtenemos la relacin: (4.34)

,y

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)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (9 de 17) [04/08/2002 0:41:38]

Captulo 4

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 en forma transversal. Cuando esta condicin de la funcin f(x) corta el eje de "x" en 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. , y m un entero positivo. Decimos que es una Sea f una funcin, un nmero real tal que raiz de f de multiplicidad m si existe una funcin g(x) tal que (4.38)
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (10 de 17) [04/08/2002 0:41:38]

Captulo 4

Si m=1 decimos que la raiz es simple. Tenemos ahora: Teorema (4.4): Sea y . Entonces es raiz de f de multiplidad m si y solo si

(4.39)

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

Como

esta entre y x, y . Asi que con

, tenemos que para x suficientemente , la ecuacin (4.38) se

cerca de la funcin

cumple, i.e., es raiz de f de multiplicidad m. Suponga que por el contrario, (4.38) es dado donde Leibnitz obtenemos que . Entonces usando la regla de

(4.40)

Si

, entonces

y (4.40) implica que

Si k=m,

entonces (4.40) se puede escribir como

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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (11 de 17) [04/08/2002 0:41:38]

Captulo 4

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)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (12 de 17) [04/08/2002 0:41:38]

Captulo 4

Se puede demostrar (ver ) que con orden p=2. Pero el problema de la 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(m1)(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 podemos los cuales de acuerdo a la frmula (4.41) aproximan a 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 funciones (nolineales) suficientemente diferenciables. desconocidas. Sean Un sistema nolineal n n consiste de:

(4.44)

Si definimos vectorial como:

por

, entonces podemos escribir (4.44) en forma

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

(4.46)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (13 de 17) [04/08/2002 0:41:38]

Captulo 4

Suponga que

es una aproximacin de

. Entonces usando el Teorema de Taylor para 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

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (14 de 17) [04/08/2002 0:41:38]

Captulo 4

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 , tenemos el siguiente programa que implementa la recursin (4.48):

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):

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (15 de 17) [04/08/2002 0:41:38]

Captulo 4

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 para sustentar sus argumentos. 3. Implemente el Mtodo de Newton para buscar todas las raices de un polinomio p(x). Debe . Si es una raiz, como utilizar el Mtodo de Horner para evaluar p(x) y su derivada 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 aproxime a 12 cifras significativas el valor de tal que la solucin x 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 sustituirse en la ecuacin se puede ver como una funcin produce la ecuacin (nolineal) en : . 5. La ecuacin tiene un mximo para satisfacen las ecuaciones: define a y implicitamente como funcin de x. La funcin . Demuestre que las coordenadas del mximo la cual al

Calcule una solucin aproximada de este sistema usando el Mtodo de Newton. 6. Considere el problema de resolver la ecuacin integral
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (16 de 17) [04/08/2002 0:41:38]

Captulo 4

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.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (17 de 17) [04/08/2002 0:41:38]

Interpolacin de Polinomios

Captulo 5
Interpolacin y Aproximacin de Funciones
Problema bsico de Interpolacin: Dados los datos (xi,yi) , 1<=i<=n, queremos hallar una funcin g(x) tal que g(xi)=yi , 1<=i<=n. Problema de Interpolacin Polinomial: Dados los datos (xi,yi) , 1<=i<=n, queremos hallar un polinomio pn-1(x) de grado a lo ms n-1, tal que pn-1(xi)=yi , 1<=i<=n. Ejemplo: Considere los datos (-2,5), (1,3). Podemos construir el polinomio de grado uno que interpola a estos datos: p1(x) = 5 - (2/3) (x+2) . Note que tambin podemos interpolar con una funcin de la forma g(x)= a ebx. De hecho b= (1/3)ln(5/3) y a=3(5/3)1/3. Existencia y construccin de pn-1(x) Considere el caso de los datos (-2,10), (-1,4),(1,6), y (2,3). Entonces si escribimos p3(x)=a1+a2x +a3x2+a4x3 tenemos que p3(-2)=10 implica que a1-2a2+4a3-8a4 =10; p3(-1)=4 implica que a1-a2+a3-a4 =4; p3(1)=6 implica que a1+a2+a3+a4 =6; p3(2)=3 implica que a1+2a2+4a3+8a4 =3; Esto es equivalente al sistema:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (1 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

el cual se puede resolver con el siguiente codigo en MATLAB: y=[10 4 6 3]'; V=[1 -2 4 -8;1 -1 1 -1;1 1 1 1;1 2 4 8]; a=V\y obteniendo asi el resultado: a=[4.5000 1.9167 0.5000 -0.9167] Esto generaliza al caso general como sigue. Escribimos pn-1(x)=a1+a2x +...+anxn-1. Ahora yi=pn-1(xi)=a1+a2 xi +...+anxin-1 , 1<=i<=n. Esto es equivalente al sistema:

La matriz de coeficientes de este sistema se conoce como la matriz de Vandermonde y se puede demostrar que es nosingular si los xi's son todos distintos. (Esta condicin se asumir de aqui en adelante). De modo que el polinomio de interpolacin pn-1(x) existe por construccin. La unicidad de pn-1(x) se verifica usando el Teorema Fundamental del Algebra. De hecho, si q(x) es otro polinomio de grado n-1 que interpola a los datos, entonces pn-1(x)-q(x) es polinomio de grado n-1 con n raices, los xi's. Esto es imposible a menos que q(x)= pn-1(x). Para calcular la matriz de Vandermonde V, primero observamos que si j>1, la columna j de V se obtiene multiplicando (componente a componente) el vector columna (x1,,xn) con la columna j-1 de V:

lo cual se puede escribir en MATLAB como V(:,j)=x.*V(:,j-1), donde x=[x1 x2 xn]. Esto motiva el siguiente programa en MATLAB para calcular los coeficientes de pn-1(x). Aqui x, y
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (2 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

son vectores de n componentes y x tiene todos sus componentes distintos: function a = interpV(x,y) n=length(x); V=ones(n,n); for j=2:n V(:,j)=x.*V(:,j-1); end a=V\y; El polinomio pn-1(x) se puede evaluar ahora usando el mtodo de Horner el expresa a pn-1(x) en su forma anidada: a1+x(a2+...(an-2+x(an-1+anx))) Dado un valor de z para evaluar pn-1(z) podemos hacer esto mediante el siguiente codigo en MATLAB: n=length(a); % a es el vector de coeficientes pval=a(n); for i=n-1:-1:1 pval=a(i)+z*pval; end Este programa lo podemos generalizar al caso en que z es un vector columna de valores en el que tenemos que evaluar el polinomio: 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: Considere el caso de los datos (-2,10),(-1,4),(1,6), y (2,3) que vimos anteriormente. Podemos calcular el polinomio de interpolacin mediante: x=[-2 -1 1 2]'; y=[10 4 6 3]'; a=interV(x,y); x0=linspace(-2,2,100)'; y0=hornerV(a,x0); % grafica el polinomio de interpolacin plot(x0,y0)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (3 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

Representacin de Newton de pn-1(x) El polinomio de interpolacin pn-1(x) es nico. De modo que podemos buscar formas ms eficientes de calcularlo sin peligro de obtener otro polinomio. La representacin de Newton de p n-1(x) es tal que el sistema para obtener los coeficientes es triangular inferior. Esto es una gran ventaja ya que la matriz de Vandemonde es densa y en general mal-acondicionada. En el caso de los datos (-2,10),(-1,4),(1,6), y (2,3), en lugar de buscar p3(x) de la forma a1+a2x+a3x2+a4x4 lo buscamos de la forma:

Note ahora que 10 = p3(-2) = c1 4 = p3(-1) = c1 + c2 6 = p3(1) = c1 +3 c2+ 6 c3


http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (4 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

3 = p3(2) = c1 +4 c2+ 12 c3 + 12 c4 Esto es un sistema triangular inferior cuya solucin es: c1=10 , c2=-6 , c3=7/3 , c4=-11/12 En el caso general buscamos pn-1(x) de la forma:

Examinamos el caso n=4 para luego llegar al caso general. En este caso al aplicar las condiciones de interpolacin pn-1(xi)=yi , 1<=i<=n, obtenemos el sistema triangular superior 4x4 dado por:

Inmediatamente vemos que c1=y1. Restandole la primera fila a las ecuaciones dos, tres y cuatro y diviendo estas por (x2-x1), (x3-x1), (x4-x1) respectivamente, obtenemos el sistema transformado:

Note que hemos reducido el problema 4x4 a el problema 3x3:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (5 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

Este sistema corresponde al polinomio q(x)=c2+c3(x-x2)+c4(x-x2)(x-x3) que interpola a los datos (x2,y21), (x3,y31) , (x4,y41). Es fcil ver tambin que p3(x)=c1+(x-x1)q(x). Note que el lado derecho de este sistema se puede calcular mediante el siguiente cdigo en MATLAB:

En el caso general tenemos que c1= y1 y que pn-1(x)=c1+(x-x1)q(x) donde q(x) es polinomio de grado n-2 que interpola a los datos: (xi,(yi-y1)/(xi-x1)) , 2<=i<=n. Esto nos lleva a el siguiente programa recursivo en MATLAB para calcular la representacin de Newton del polinomio de interpolacin: function c = interpNR(x,y) n=length(x); c=zeros(n,1); c(1)=y(1); if n>1 c(2:n)=interpNR(x(2:n),(y(2:n)-y(1))./(x(2:n)-x(1))); end Repitiendo el proceso que nos llevo a la forma recursiva del algortmo anterior, podemos resolver dicha recursin para obtener asi la forma secuencial del algortmo para la representacin de Newton del polinomio de interpolacin: function c = interpN(x,y) n=length(x);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (6 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

for k=1:n-1 y(k+1:n)=(y(k+1:n)-y(k)) ./ (x(k+1:n)-x(k)); end c=y; La representacin de Newton del polinomio de interpolacin se puede evaluar con una variacin de mtodo de Horner donde escribimos el polinomio es forma anidada como sigue: pn-1(x)=c1+(x-x1)(c2 +...(cn-2+(x-xn-2)(cn-1+cn(x-xn-1)))) En el caso n=4 esto reduce a : p3(x)=c1+(x-x1)(c2+(x-x2) (c3+c4(x-x3))) Esto nos lleva a el siguiente programa en MATLAB que implementa esta versin del mtodo de Horner: function pval = hornerN(c,x,z) n = length(c); pval = c(n)*ones(size(z)); for k = n-1:-1:1 pval=c(k) + (z-x(k)) .* pval; end Eficiencia En general interpNR y interpN requieren menos operaciones de punto flotante que interpV, O(n2) en comparacin con O(n3), ya que la matriz de Vandermonde es densa mientras que en la representacin de Newton resolvemos un sistema triangular. Hay mtodos alternos que resuelven el sistema de Vandermonde en O(n2) operaciones al aprovechar su estructura particular. Si comparamos interpNR y interpN, el segundo mtodo es ms eficiente en el uso de memoria que el primero. La naturaleza recursiva de interpNR requiere O(n2) lugares de memoria en comparacion con O(n) para interpN. Error de Interpolacin Teorema: Suponga que pn-1(x) interpola a la funcin f(x) en los puntos distintos x1,,xn y que f tiene derivadas continuas hasta orden n en un intervalo I que contiene a los xi's. Entonces para cualquier z en I existe un entre z y los xi's tal que:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (7 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

Si f(x) es una funcin en [a,b] y los xi's estan uniformemente distribuidos en [a,b], i.e., xi = a+i h, 0<=i<=n-1, h=(b-a)/(n-1) entonces se puede demostrar que:

De modo que si

donde M es una constante independiente de n, entonces el error de interpolacin tiende a cero segn h se va a cero, i.e., hay convergencia. Este es el caso, por ejemplo para las funciones trigonomtricas sen y cos, y para la exponencial ex en un intervalo finito. Esta propiedad (derivadas de todo orden acotadas uniformemente) no la poseen todas las funciones. El ejemplo clsico de este mal comportamiento en las derivadas es la funcin de Runge dada por:

El siguiente programa en MATLAB calcula los polinomios de interpolacin de f(x) de grados 10,11,12, y 13 y los grafica en el mismo sistema de coordenadas junto con f(x). x=linspace(-1,1,100)'; y=1./(1+25*x.^2); k=0; for n=10:13 k=k+1; xunif=linspace(-1,1,n)'; yunif= 1./(1+25*xunif.^2); cunif=interpN(xunif,yunif); pvals=hornerN(cunif,xunif,x);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (8 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

subplot(2,2,k) plot(x,y,x,pvals) title(sprintf('(n = %2.0f)',n)) end

Ejercicios 1. Calcule la funcin q(x) = a + b cos(x) + c sen(x) que interpola a los datos (0,2), (1/2,5), (1,4). 2. Halle el polinomio cuadrtico que interpola a los datos (-2,-15), (-1,-8), (0,-3) por los dos mtodos discutidos en clase. 3. Use induccin matemtica para demostrar que si V(x1,,xn) representa la matriz de Vandermonde para {x1,,xn}, entonces

4. Demuestre que si q(x) es el polinomio de grado n-2 que interpola a los datos
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (9 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

(xi,(yi-y1)/(xi-x1)) , 2<=i<=n, y pn-1(x) interpola a (xi,yi) , 1<=i<=n, entonces pn-1(x) = y1 + (x-x1) q(x) . 5. Demuestre mediante induccin matemtica que los coeficientes c1,,cn de la representacin de Newton de pn-1(x) estan dados por el programa sequencial interpN. 6. Suponga que z y a(1:n) son dados e inicializados y que p(x)= a1+a2 x+...+ann-1. Haciendo uso eficiente de la subrutina hornerV escriba segmentos de programas en MATLAB que calculen las expresiones:

7. Escriba una funcin en MATLAB, nbest(L,R,a,delta), que devuelva el entero menor n tal que si pn-1(x) es el polinomio de interpolacin de eax en los puntos L +(i-1)(R-L)/(n-1) , i=1:n entonces

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (10 de 10) [04/08/2002 0:42:48]

Interpolacin Polinomial por Pedazos

Interpolacin Polinomial por Pedazos


El uso de polinomios de interpolacin de alto grado puede producir errores grandes debido al alto grado de oscilacin de este tipo de polinomios. Para evitar este problema se aproxima la funcin desconocida en intervalos pequeos usando polinomios de grado bajo. El caso ms comn de la interpolacin por pedazos es usar polinomios cbicos. Polinomios Cbicos de Lagrange: Suponemos que n es divisible por tres y buscamos un polinomio cbico que interpole a la funcin en los puntos . Este polinomio esta dado en su representacin de Lagrange por:

para

se asume constante para toda i.

Interpolacin de Hermite: Aqui buscamos un polinomio por pedazos Hn(x) que sea cbico en cada subintervalo , y que interpole a f(x) y f'(x) en los puntos . La funcin Hn(x) queda determinada en forma nica por estas condiciones y su clculo requiere de la solucin de n sistemas lineales de tamao 4x4 cada uno. La desventaja de la interpolacin de Hermite es que requiere de la disponibilidad de los lo cual no es el caso en muchas aplicaciones. Interpolacin usando Splines: Los dos tipos de polinomios por pedazos que hemos discutidos hasta ahora tienen la desventaja de que su segunda derivada no es continua en los puntos de interpolacin. Se ha observado que en aplicaciones grficas, el ojo humano es capaz de detectar discontinuidades en la segundas derivadas de una funcin, haciendo que los grficos con este tipo de funciones no luscan uniformes. Esto motiva el uso de los splines que son funciones s(x) continuas por pedazos con las siguientes propiedades: 1. s(x) es polinomio cbico en 2. existen y son continuas en . , entonces tenemos un total de 3. s(x) interpola a la funcin f en los datos 4. s(x) es continua en Si escribimos . . .

4n desconocidas. Las condiciones 2) y 4) nos dan 3(n-1) ecuaciones mientras que de 3) obtenemos n+1 para un total de 4n-3(n-1)-(n+1)=2 grados de libertad. Estos grados de libertad se fijan imponiendo condiciones de frontera adicionales en s(x).

http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (1 de 5) [04/08/2002 0:43:34]

Interpolacin Polinomial por Pedazos

Defina y esta dado por:

. Como s(x) es cbico en

, entonces s"(x) es lineal en

. Integrando esta ecuacin dos veces, obtenemos que

. Las condiciones implican que

Sustituyendo esto en la formula anterior de s(x) obtenemos que

Note que s(x) y s"(x) son continuas por construccin y adems tenemos que la condicin de interpolacin se cumple. Falta la condicin de que s'(x) sea continua, i.e.,

En

, tenemos que

, se obtiene que la condicin de continuidad expresada por Usando una expresin equivalente en los limites de derecha e izquierda arriba, implica que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (2 de 5) [04/08/2002 0:43:34]

Interpolacin Polinomial por Pedazos

donde

Tenemos aqui n-1 ecuaciones para las n+1 desconocidas

Condicin Natural de los Splines: Para fijar los dos grados de libertad en el spline, requerimos que s(x) sea lineal en los intervalos lo cual es equivalente a las condiciones . Tenemos ahora el siguiente sistema de ecuaciones Am=d para las restantes desconocidas donde:

Note que la matriz de coeficientes de este sistema es tridiagonal y simtrica lo que hace que el spline s(x) pueda ser calculado en forma eficiente. El siguiente programa en MATLAB ensambla la matriz y lado derecho segn definidos arriba y resuelve el sistema para determinar los M's: % % Los datos estan dados por los vectores x=[x(1) x(n)] , y=[y(1) y(n)] % n=length(x) dx=x(2:n)-x(1:n-1); yp=(y(2:n)-y(1:n-1))./dx; a=sparse([1:n-2],[1:n-2],(dx(1:n-2)+dx(2:n-1))/3,n-2,n-2); udiag=sparse([1:n-3],[2,n-2],dx(2:n-2)/6,n-2,n-2); a=udiag'+a+udiag; d=yp(2:n-1)-yp(1:n-2); m=a\d; La funcin spline de MATLAB se utiliza para calcular el spline s(x) directamente. En el siguiente ejemplo los datos se obtienen dividiendo el intervalo [-5,5] en seis subintervalos y evaluamos la funcin atan
http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (3 de 5) [04/08/2002 0:43:34]

Interpolacin Polinomial por Pedazos

(tangente inversa) en los puntos de la particin. Luego construimos el spline que interpola en estos puntos y lo graficamos: % % Divide el intervalo [-5,5] en cinco pedazos generando asi seis puntos % x=linspace(-5,5,6); % % Evalua la funcin atan en los puntos de la particin % y=atan(x); % % Calcula la representacin del spline que interpola a los datos % pp=spline(x,y); % % Calcula 100 puntos en el intervalo [-5,5] para las graficas % z=linspace(-5,5,100); % % Evalua el spline y la funcin atan en los 100 puntos % sval=ppval(pp,z); y1=atan(z); % % Grafica el spline, atan, y los puntos de interpolaci&oacuten en un mismo % sistema de coordenadas % plot(z,sval,z,y1,x,y,'+') xlabel('x'); ylabel('y'); title('atan(x) en violeta y s(x) en amarillo')

http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (4 de 5) [04/08/2002 0:43:34]

Interpolacin Polinomial por Pedazos

http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (5 de 5) [04/08/2002 0:43:34]

Problemas de Cuadrados Minimos Polinomiales

Problemas de Cuadrados Minimos Polinomiales Consideramos ahora el problema de aproximar o "ajustar" una funcin en un nmero grande de datos que contienen posiblemente un cierto grado de error. En lugar de tratar de ajustar un polinomio de alto grado o insistir en interpolar datos que sabemos tienen un cierto grado de error, lo que hacemos es que buscamos una funcin que en cierto sentido suavice las fluctuaciones en los datos y a la ves resalte las caracteristicas esenciales de estos. En el mtodo de cuadrados minimos, se trata de minimizar la suma de los cuadrados de las diferencias entre los datos y la funcin que se usa para aproximar estos. Suponga que los datos estan dados por aproximar estos datos tiene la forma general: donde k=1,2,m. La funcin que usamos para

donde las funciones desconocidas. Un caso comn es tomar

son funciones dadas y los

son

y en este caso decimos que

buscamos aproximar los datos con un polinomio de grado a lo ms n-1. Las diferencias entre los datos y la funcin g(x) estan dados por: . Buscamos pues minimizar la suma de los cuadrados de estas diferencias dada por:

, los valores de Bajo ciertas condiciones en los datos minimizan a "S" son solucin del sistema lineal (ecuaciones normales):

que

donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (1 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

La solucion "a" de las ecuaciones normales se conoce como la solucin de cuadrados minimos para los datos usando las funciones base . En el caso el problema de minimizar "S" se conoce como el problema de cuadrados minimos polinomial y la matriz A toma la forma:

. (Compare esta matriz con la matriz de Vandermonde que vimos en la interpolacin de polinomios). Siguiendo nuestra discusin anterior de la matriz de Vandermonde, podemos escribir el siguiente codigo en MATLAB que calcula la matriz A: function a=vandg(n,x); m=length(x); a=ones(m,n); for j=2:n a(:,j)=x.*a(:,j-1); end El siguiente programa en MATLAB llama la funcin de arriba para luego ensamblar las ecuaciones normales y resuelve estas para obtener asi la solucin de cuadrados minimos: function a=leastsqu(n,x,y); A=vandg(n,x); B=A'*A; a=B\(A'*y); El vector "a" que devuelve esta funcin representa los coeficientes del polinomio de grado a lo ms n1 que mejor aproxima a los datos en el sentido de los cuadrados minimos. Podemos ahora utilizar la funcin hornerV discutida anteriormente para evaluar dicho polinomio. Ejemplo: Para ilustrar las ideas presentadas hasta ahora, considere el caso de aproximar 17 datos tomados de la funcin y=ex en el intervalo [0,4] utilizando un polinomio cuadrtico y otro cbico: % % Genera los datos % x=[0:.25:4]';
http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (2 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

y=exp(x); % % Calcula los coeficientes de los polinomios cuadrtico y cbico % que mejor aproximan en el sentido de los cuadrados minimos % a2=leastsqu(3,x,y); a3=leastsqu(4,x,y); % % Genera puntos adicionales para evaluar los polinomios y % la funcin original % xx=[0:.02:4]'; % % Evalua los polinomios y la funcin original % pval2=hornerV(a2,xx); pval3=hornerV(a3,xx); yy=exp(xx); % % Traza las grficas % plot(xx,yy,xx,pval2,xx,pval3,x,y,'o') xlabel('X');ylabel('Y'); title('Cuadratica en violeta; Cubica en azul; exp(x) en amarillo')

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (3 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

La matriz de coeficientes de las ecuaciones normales es en general una matriz mal acondicionada segn la "m" aumenta. De hecho en el caso del problema de cuadrados minimos es de la forma: polinomial, es fcil ver que la entrada (k,l) de

donde la N=k+l-2 . Pero

de modo que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (4 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

para "m" grande. Asi que es (aproximadamente) proporcional a la matriz de Hilbert de orden nxn para "m" grande la cual es mal acondicionada. El nmero de datos no tiene que ser muy grande. son 983.3594 y 5.7299e+004 De hecho en el ejemplo anterior, los numeros de condicin de respectivamente para los casos n=3,4 lo cual indica que se pierden en el orden de 4 cifras significativas en el calculo. Para poder resolver las ecuaciones normales en forma eficiente y estable, se utiliza la llamada factorizacin QR de la matriz A. Teorema: (Factorizacin QR) Sea A una matriz mxn de rango n. Entonces existe una matriz Q de tamao mxn con , y una matriz R de tamao nxn triangular superior y nosingular tal que A=QR. La demostracin de este teorema utiliza el proceso de Gram-Schmidt y se encuentra por ejemplo en el libro Linear Algebra with Applications de S.J. Leon. Tampoco discutiremos los aspectos computacionales de como calcular la factorizacin QR de una matriz pues utilizaremos las funciones de MATLAB para esto. Lo que si nos interesa en este punto es que utilizando la factorizacin QR de la matriz A que aparece en las ecuaciones normales, podemos calcular la solucin de cuadrados minimos en forma eficiente y sin problemas de mal acondicionamiento. Teorema: Sea A una matriz mxn de rango n y A=QR la factorizacin QR de A dada por el teorema anterior. Entonces la solucin "a" de las ecuaciones normales se puede obtener resolviendo el sistema triangular .

Demostracin: Dado que A=QR tenemos que:

De igual forma: pues que

. Como R es nosingular Rt tambin lo es y tenemos es equivalente al sistema . <>

Vale la pena recalcar que los sistemas triangulares se resuelven eficientemente mediante sustitucin para atras y son por lo general bien acondicionados. La funcin qr de MATLAB se utiliza para calcular las factorizaciones QR. Modificamos la funcin leastsqu de arriba como sigue: function a=leastsqr(n,x,y); A=vandg(n,x); [Q R]=qr(A); a=R\(Q'*y);

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (5 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

El mismo ejemplo anterior pero usando esta subrutina en lugar de leastsqu produce resultados similares (al nmero de cifras mostradas) pero ahora los nmeros de condicin de R son 31.3586 y 239.3714 para n=3,4 respectivamente los cuales son mucho mejor que antes. Ejercicios: 1. Considere los datos dados por los vectores x=[0:0.25:3], y=[6.3806 7.1338 9.1662 11.5545 15.6414 22.7371 32.0696 47.0756 73.1596 111.4684 175.9895 278.5550 446.4441]. Aproxime estos datos con funciones de la forma: 1. 2. 3. Modifique los programas dados anteriormente segn sea necesario. Grafique las tres funciones "g(x)" y los datos originales en un mismo sistema de coordenadas. Qu tan bien aproximan estas funciones a los datos? se puede aproximar con un polinomio de grado cinco de la forma 2. La funcin . Use la funcin gamma de MATLAB para generar para x=0:0.1:1. Usando los programas desarrollados en esta leccin, valores de construya el polinomio de grado cinco que mejor aproxima estos datos en el sentido de los cuadrados minimos. Trace los datos, la funcin y el polinomio calculado en el mismo sistema de coordenadas.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (6 de 6) [04/08/2002 0:44:30]

Integracin Numrica

Integracin Numrica - Mtodos del Trapezoide y Simpson En esta leccin comenzamos el estudio de mtodos numricos para el clculo numrico de integrales de la forma

Un mtodo comn para aproximar I(f) es reemplazando f(x) con un polinomio de interpolacin. Este procedimiento se conoce como las reglas de Cuadratura de Newton. Examinamos los primeros dos casos de este mtodo donde se usan polinomios de interpolacin lineales y cuadrticos. Mtodo del trapezoide: Sea p1(x) el polinomio lineal que interpola a f(x) en x=a y x=b, i.e.,

Usando la frmula para el area de un trapezoide o integrando p1(x) directamente se obtiene que

Asi que podemos escribir la aproximacin:

(*) Ms adelante anlizamos en detalles el error en esta aproximacin. Por el momento basta observar que la aproximacin es buena siempre que f sea aproximadamente lineal. En el caso general, dividimos el intervalo [a,b] en subintervalos ms pequeos y aplicamos la frmula anterior en cada subintervalo. Si los subintervalos son suficientemente pequeos, entonces f es aproximadamente lineal en cada subintervalo y la aproximacin es buena. Definimos el largo de los subintervalos por:

El j-esimo subintervalo esta dado por [xj-1,xj] donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (1 de 7) [04/08/2002 0:45:10]

Integracin Numrica

Podemos escribir ahora que:

Usando la aproximacin (*) podemos escribir

Usando esto en la frmula anterior, obtenemos que

Esto se conoce como la regla (compuesta) del trapezoide para aproximar I(f). Ejemplo 1: Usando la regla del trapezoide con n=2 y n=4 aproximamos:

cuyo valor exacto es correcto al nmero de cifras mostradas. Para n=2 tenemos que h=(2-1)/2=0.5, x0=1, x1=1.5, x2=2. Ahora

Con n=4 tenemos h=(2-1)/4=0.25, x0=1, x1=1.25, x2=1.5, x3=1.75, x2=2, de modo que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (2 de 7) [04/08/2002 0:45:10]

Integracin Numrica

Estos calculos los podemos realizar tambin utilizando la funcin trapz de MATLAB. En el siguiente programa no solo calculamos los dos resultados de arriba sino que generamos una tabla de errores (exactos) para varios valores de n aprovechando que en este ejemplo tenemos el valor exacto del integral: iexacto=log(2); n=2; error1=0; for i=1:10 x=linspace(1,2,n+1); y=1./x; iaprox=trapz(x,y); error=iexacto-iaprox; ratio=error1/error; disp(['n=' num2str(n) ', iaprox=' num2str(iaprox,6) ',error=' num2str(error,6) ',ratio=' num2str(ratio,6)]) n=2*n; error1=error; end Los resultados fueron como sigue: n 2 4 8 16 32 64 128 256 512 1024 Tn(f) 0.708333 0.697024 0.694122 0.693391 0.693208 0.693162 0.693151 0.693148 0.693147 0.693147 en=I(f)- Tn(f) -0.0151862 -0.00387663 -0.00097467 -0.000244022 -0.0000610277 -0.0000152583 -3.81467e-006 -9.53672e-007 -2.38418e-007 -5.96046e-008 en/ e2n ----3.91736 3.97738 3.99419 3.99854 3.99963 3.99991 3.99998 3.99999 4.00000

Estos resultados confirman claramente la convergencia del mtodo del trapezoide en este ejemplo particular. Podemos ver que cada ves que se duplica la n, lo cual equivale a dividir la h entre dos, el error disminuye por un factor de cuatro aproximadamente (ltima columna de la tabla) esto es

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (3 de 7) [04/08/2002 0:45:10]

Integracin Numrica

caracterstico de convergencia O(h2) lo cual confirmaremos teoricamente ms adelante. Regla de Simpson: Utilizamos ahora un polinomio de interpolacin cuadrtico. Sea p2(x) el polinomio de grado (a lo ms) dos que interpola a f(x) en x=a, x=(a+b)/2, x=b. Este polinomio se puede escribir como:

Tenemos ahora que

Pero con h=(b-a)/2 y u=x-a tenemos que

En forma similar se obtiene que

Tenemos pues que

(**) Argumentando en forma similar a en mtodo del trapezoide, tenemos que si n es un entero par (por qu?) entonces

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (4 de 7) [04/08/2002 0:45:10]

Integracin Numrica

Usando la frmula (**) podemos aproximar

Ahora

Esta frmula se conoce como la regla (compuesta) de Simpson para aproximar a I(f). Ejemplo 2: Usando la regla de Simpson con n=2 y n=4 aproximamos:

cuyo valor exacto es correcto al nmero de cifras mostradas. Para n=2 tenemos que h=(2-1)/2=0.5, x0=1, x1=1.5, x2=2. Ahora

Con n=4 tenemos h=(2-1)/4=0.25, x0=1, x1=1.25, x2=1.5, x3=1.75, x2=2, de modo que

MATLAB no tiene una rutina simp equivalente a trapz. Tiene una mejor llamada quad! La subrutina quad utiliza una regla de Simpson adaptativa donde el valor de h se ajusta para que el error en la aproximacin satisfaga una tolerancia especificada por el usuario. Tambin MATLAB tiene la
http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (5 de 7) [04/08/2002 0:45:10]

Integracin Numrica

subrutina quad8 que al igual que quad usa un mtodo adaptativo pero con una frmula de aproximacin de grado mayor. En lugar de usar estas rutinas que hacen las comparaciones un tanto complicadas, implementamos nuestra versin de simp equivalente a trapz: function q=simp(x,y); n=length(x)-1; if (n/2)~=floor(n/2) disp('n tiene que ser par'); break; end h=x(2)-x(1); v=2*ones(n+1,1); v2=2*ones(n/2,1); v(2:2:n)=v(2:2:n)+v2; v(1)=1;v(n+1)=1; q=(h/3)*y*v; Esta subrutina implementa una forma vectorizada del mtodo de Simpson que ejecuta eficientemente en MATLAB. Note que se requiere que n sea par. Recuerde tambin que en MATLAB los indices de los arreglos corren empezando en uno. El mismo programa del Ejemplo 1 lo podemos usar aqui ahora reemplazando la llamada a trapz por simp. Obtuvimos los siguientes resultados: n 2 4 8 16 32 64 128 256 512 1024 Sn(f) 0.694444 0.693254 0.693155 0.693148 0.693147 0.693147 0.693147 0.693147 0.693147 0.693147 en=I(f)- Sn(f) -0.00129726 -0.000106788 -7.35009e-006 -7.35009e-006 -2.97299e-008 -1.86151e-009 -1.16398e-010 -7.27562e-012 -4.54747e-013 -2.84217e-014 en/ e2n ----12.1481 14.5288 14.5288 15.885 15.9708 15.9927 15.9983 15.9993 16.0000

Estos resultados confirman claramente la convergencia de la regla de Simpson en este ejemplo particular. Podemos ver que cada ves que se duplica la n, lo cual equivale a dividir la h entre dos, el error disminuye por un factor de 16 aproximadamente (ltima columna de la tabla) esto es caracteristico de convergencia O(h4) lo cual confirmaremos teoricamente ms adelante. Ejercicios:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (6 de 7) [04/08/2002 0:45:10]

Integracin Numrica

1. Usando las reglas del trapezoide y de Simpson y los programas descritos en esta leccin, aproxime el siguiente integral:

El valor exacto de este integral es /4. Use esto para generar una tabla con las aproximaciones y los errores (exactos) y estime el orden de convergencia. 2. La regla del punto medio se puede usar para obtener la siguiente aproximacin de I(f):

Usando esta frmula disee una frmula compuesta llamada la regla (compuesta) del punto medio. Use esta frmula en el ejercicio anterior y estime el orden de convergencia de la misma. 3. Utilizando un polinomio cbico de Hermite para interpolar a f(x) en [a,b], desarrolle una frmula para aproximar a I(f). Obtenga la frmula compuesta correspondiente.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (7 de 7) [04/08/2002 0:45:10]

Integracin Numrica - Anlisis de Errores

Integracin Numrica - Anlisis de Errores Pasamos ahora a estudiar formalmente el error de aproximacin en las frmulas:

Regla del Trapezoide: Usando el teorema sobre el error de interpolacin discutido anteriormente, tenemos que si p1(x) es el polinomio que interpola a f(x) en xj-1, xj entonces

De modo que

donde usamos el Teorema del Valor Medio para integrales. Tenemos pues que el error en la frmula del mtodo del trapezoide esta dado por

(*) Suponiendo que funciones, obtenemos que (continua en [a,b]) y aplicando el Teorema del Valor Medio para

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (1 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Anlisis de Errores

Usando este resultado en la frmula del error de arriba obtenemos que

Esta frmula se conoce como la frmula exacta del error y establece que la frmula del trapezoide Tn(f) tiene un orden de convergencia de O(h2) lo que confirma nuestros resultados numricos de la seccin anterior. Esta frmula aparte de su vala teorica, no nos proporciona un estimador prctico del error ya que f '' puede no ser accesible y el punto de la frmula es desconocido. Para obtener un estimador prctico del error utilizamos la llamada frmula asinttica que se obtiene de la siguiente manera. Si f '' es continua, entonces

Asi que usando esto y la frmula (*) obtenemos que

se conoce como el estimador asinttico del error. Note que si f ' es accesible, esta La frmula frmula envuelve cantidades conocidas y es posible calcularla como parte del proceso de aproximacin. Ms aun podemos utilizar el estimador para corregir la frmula del trapezoide obteniendo asi la fmula del trapezoide corregida:

la cal en general debe ser una mejor aproximacin a I(f) que Tn(f). Ejemplo 1: Consideremos nuevamente el problema de aproximar

En este caso f(x)=1/x de modo que f'(x)=-1/x2, asi que el estimador asinttico del error esta dado por la frmula

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (2 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Anlisis de Errores

Como en este problema el valor exacto del error frmula asinttica. Veamos los resultados: n 2 4 8 16 32 64 128 256 512 1024 0.708333 0.697024 0.694122 0.693391 0.693208 0.693162 0.693151 0.693148 0.693147 0.693147 0.692708 0.693118 0.693145 0.693147 0.693147 0.693147 0.693147 0.693147 0.693147 0.693147

se conoce, podemos compararlo con la

-0.0151862 -0.00387663 -0.00097467 -0.000244022 -0.0000610277 -0.0000152583 -3.81467e-006 -9.53672e-007 -2.38418e-007 -5.96046e-008

-0.015625 -0.00390625 -0.000976562 -0.000244141 -0.0000610352 -0.0000152588 -3.8147e-006 -9.53674e-007 -2.38419e-007 -5.96046e-008

Podemos ver de esta tabla que la frmula asinttica del error predice bastante bien el error real en este ejemplo. Tambin podemos observar que la frmula corregida del trapezoide produce seis cifras correctas en la aproximacin con apenas n=16 mientras que la frmula sin corregir requiere hasta n=512. <>

De la frmula asinttica

tenemos que

lo cual fu lo que observamos en nuestros computos numricos. Note tambin que si casualmente f '(a)=f '(b) , entonces la convergencia del mtodo ser ms rpida. Mtodo de Simpson: En este caso el anlisis de los errores es similar al del mtodo del trapezoide pero ms extenso. Simplemente pues resumimos los resultados en este caso. Si entonces la frmula exacta del error esta dada por

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (3 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Anlisis de Errores

y la frmula asinttica por

La frmula corregida de Simpson es pues

De la frmula del error exacto se obtiene que el mtodo tiene un orden de convergencia O(h4) y empleando la frmula asinttica podemos ver que los cocientes aproximadamente 16. Ejercicios: 1. Repita los clculos del Ejemplo 1 pero para el mtodo de Simpson. 2. Para la formulas bsica y compuesta de la regla del punto medio (problema 2, seccin anterior) haga un anlisis de errores y derive las frmulas exactas y asintticas del error y la frmula corregida del mtodo. 3. Si la regla del trapezoide se utiliza para aproximar son

con h=0.01, halle una cota para el error en dicha aproximacin y un estimado asinttico del mismo. 4. Si los puntos no estan uniformemente distribuidos en [a,b], es posible generalizar la frmula del trapezoide en este caso como sigue: sean . Entonces definimos

Verifique la siguiente frmula para el error exacto de este mtodo

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (4 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Anlisis de Errores

donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (5 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Extrapolacin de Richardson

Integracin Numrica - Extrapolacin de Richardson y Reglas de Cuadrtura Gaussiana Aqui examinamos dos procedimientos para obtener frmulas de integracin numrica de orden arbitrario. Una de estas tcnicas es la extrapolacin de Richardson que es un proceso comnmente utilizado en anlisis numrico para acelerar la convergencia de sucesiones convergentes. La otra tcnica son las reglas de cuadrtura Gaussiana que producen frmulas de alto grado utilizando puntos distribuidos en el intervalo de integracin en forma no uniforme. Extrapolacion de Richardson: Denotamos aqui por In cualquier frmula numrica para aproximar I(f), e.g., la frmula del Trapezoide la regla de Simpson. La correspondiente frmula asintotica del mtodo nos garantiza que para alguna constante C

donde p es el orden de convergencia del mtodo, e.g., p=2 para el mtodo del Trapezoide y p=4 para el de Simpson. Podemos escribir ahora que

Despejando para I(f) obtenemos que

lo cual se conoce como la frmula de extrapolacin de Richardson y se puede demostrar que

i.e., el orden de la frmula original se duplic. Ejemplo 1: Consideramos nuevamente el computo de

cuyo valor exacto es 0.693147 correcto a seis cifras. El siguiente programa en MATLAB implementa el mtodo de extrapolacin de Richardson para la regla del trapezoide:
http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (1 de 5) [04/08/2002 0:46:55]

Integracin Numrica - Extrapolacin de Richardson

n=2; x=linspace(1,2,3); y=1./x; iaproxn=trapz(x,y); for i=2:5 n=2*n; x=linspace(1,2,n+1); y=1./x; iaprox2n=trapz(x,y); richard=(4*iaprox2n-iaproxn)/3; disp(['n=' num2str(n) ', iaprox2n=' num2str(iaprox2n,6) ',richard=' num2str(richard,6)]) iaproxn=iaprox2n; end Los resultados fueron como sigue: n 4 8 16 32 I2n 0.697024 0.694122 0.693391 0.693208 R2n 0.693254 0.693155 0.693148 0.693147

Aqui podemos ver que ya para n=32 la frmula de Richardon tiene ya seis cifras correctas. Para el mtodo del trapezoide la frmula de Richardson es de orden O(h4) y no requiere derivadas de la funcin f(x) en comparacin con la frmula corregida. <> La frmula de extrapolacin de Richardson se puede ahora utilizar en forma recursiva generando formulas de orden cada vez ms alto (se duplica en cada etapa). La frmula resultante por este procedimiento se conoce como la frmula de integracin numrica de Romberg. Reglas de Cuadrtura Gaussiana: Consideramos por el momento integrales de la forma

Note que si el integral esta dado en un intervalo arbitrario [a,b] entonces mediante el cambio de variables

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (2 de 5) [04/08/2002 0:46:55]

Integracin Numrica - Extrapolacin de Richardson

tenemos que

lo cual nos da una integral en [-1,1]. Asi que sin perdida de generalidad podemos asumir que el integral es en [-1,1]. Sean x1,x2,,xn puntos (no necesariamente uniformemente distribuidos) en [-1,1] y w1,w2,,wn nmeros llamados pesos ("weights"). Los puntos xj's y los pesos wj's se determinan de modo que la frmula de integracin numrica

sea exacta para polinomios de grado a lo ms 2n-1, i.e., In(p)=I(p) para todo polinomio p de grado a lo ms 2n-1. Como In I son operadores lineales, basta verificar que

Caso n=1: Aqui I1(f)=w1f(x1) y requerimos que I1(1)=I(1), I1(x)=I(x). Pero I(1)=2 y I1(1)=w1 de modo que w1=2. Adems I(x)=0 y I1(x)=2x1, de donde obtenemos que x1=0. Tenemos pues la fmula numrica I1(f)=2f(0) lo cal se conoce como la frmula del punto medio. Caso n=2: Tenemos ahora que I2(f)= w1f(x1)+ w2f(x2) y se requiere que I2(xi)=I(xi) para i=0,1,2,3. Esto nos lleva al siguiente sistema nolineal para x1,x2,w1,w2:

Suponiendo que x1, x2 son conocidas, resolvemos la tercera y cuarta ecuacin (que son lineales en los w's) mediante la regla de Cramer para w1, w2 obteniendo asi que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (3 de 5) [04/08/2002 0:46:55]

Integracin Numrica - Extrapolacin de Richardson

Sustituyendo estas expresiones en la primera y segunda ecuacin y resolviendo para x1, x2 obtenemos que

Asi que nuestra frmula numrica en el caso n=2 lee como sigue:

Caso n>2: Al aplicar las condiciones se obtiene un sistema nolineal de 2n ecuaciones en 2n desconocidas (las x's y las w's). Este sistema se puede resolver numricamente usando el mtodo de Newton para sistemas nolineales. Pero en lugar de proceder de esta forma se utiliza el hecho de que se puede demostrar que los xi's son los ceros del n-esimo polinomio de Legendre Ln(x). Estos polinomios se definen por la recursin

En particular tenemos que L2(x)=(3/2)x2-(1/2) cuyos ceros son 1/3 que fueron los x's que determinamos en el caso n=2. Tambin

de donde podemos obtener los x's para las frmulas de los casos n=3,4 respectivamente. Teniendo los x's podemos ahora calcular los w's resolviendo un sistema lineal de ecuaciones. Ejemplo 2: Aproximamos

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (4 de 5) [04/08/2002 0:46:55]

Integracin Numrica - Extrapolacin de Richardson

usando la regla de cuadrtura con n=2. Primero hacemos un cambio de variables de modo que el integral sea en el intervalo de [-1,1]. Para esto usamos el cambio de variables discutido al principio de esta seccin lo que resulta en:

Tenemos ahora que

Ejercicios: 1. Trabaje el problema del Ejemplo 1 pero con la frmula de extrapolacin de Richardson que usa la regla de Simpson. Cul es el orden de convergencia de la frmula de Richardson en este caso? 2. Utilizando las expresiones para L3 y L4 dadas anteriormente y la subrutina roots de MATLAB, calcule los x's para las frmulas de cuadrtura Gaussiana con n=3,4. Usando los x's calculados determine usando MATLAB los pesos w's correspondientes. 3. Usando los resultados obtenidos en esta leccin para los x's y w's en los casos n=1,2 y los casos n=3,4 del problema 2, escriba una subrutina en MATLAB con secuencia de llamada compQG(fname,a,b,m,n) que aproxime el integral de la funcin con nombre fname en el intervalo [a,b] aplicando una regla de cuadrtura de m puntos (1 m 4) en cada uno de n subintervalos de [a,b] del mismo largo.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (5 de 5) [04/08/2002 0:46:55]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Capitulo 7
Ecuaciones Diferenciales Numricas
Problema de Valor Inicial y Mtodo de Euler
Las ecuaciones diferenciales aparecen naturalmente al modelar situaciones fsicas en las ciencias naturales, ingeniera, y otras disciplinas, donde hay envueltas razones de cambio de una varias funciones desconocidas con respecto a una varias variables independientes. Estos modelos varan entre los ms sencillos que envuelven una sola ecuacin diferencial para una funcin desconocida, hasta otros ms complejos que envuelven sistemas de ecuaciones diferenciales acopladas para varias funciones desconocidas. Por ejemplo, la ley de enfriamiento de Newton y las leyes mecnicas que rigen el movimiento de los cuerpos, al ponerse en terminos matemticos dan lugar a ecuaciones diferenciales. Usualmente estas ecuaciones estan acompaadas de una condicin adicional que especifica el estado del sistema en un tiempo o posicin inicial. Esto se conoce como la condicin inicial y junto con la ecuacin diferencial forman lo que se conoce como el problema de valor inicial. Por lo general, la solucn exacta de un problema de valor inicial es imposible dificil de obtener en forma analtica. Por tal razn los mtodos numricos se utilizan para aproximar dichas soluciones. Comenzaremos discutiendo los mtodos para ecuaciones escalares y luego generalizamos los mismos a sistemas de ecuaciones. El Mtodo de Euler: Considere el problema de valor inicial para la funcin (desconocida) y(t) descrito por:

Defina para n0 los siguientes cantidades:

Para cualquier j0, tenemos por el Teorema de Taylor que podemos escribir:

Eliminando los terminos O(h2) obtenemos la aproximacin:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (1 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Denotamos ahora por yj una aproximacin de y(tj). Entonces motivado por la aproximacin de arriba definimos las aproximaciones {yj} por la recursin:

lo que se conoce como el mtodo de Euler. La cantidad

la cual descartamos en la serie de Taylor para obtener las aproximaciones, se llama el error de truncacin o local del mtodo de Euler y esta intimamente relacionada con la convergencia del mtodo. De hecho si definimos los errores absolutos por ej=y(tj)-yj, entonces restando la expansin de Taylor y la formula del mtodo se obtiene que

Suponiendo ahora que f cumple una Condicin de Lipschitz uniforme en t, i.e.,

para alguna constante L, entonces se puede verificar que de la recursin de los errores obtenemos que:

(*) lo que prueba que el mtodo tiene un orden de convergencia global O(h). La implementacin en MATLAB del mtodo de Euler es relativamente simple. Hacemos esto mediante una subrutina llamada feuler que recibe en la secuencia de llamada el nombre de la subrutina que calcula la funcin f, y los datos t0, b, y0, n. Esta subrutina devuelve dos vectores con las t's y las y's aproximadas. Veamos: function [tvals,yvals]=feuler(f,t0,b,y0,n) h=(b-t0)/n; tvals=zeros(1,n+1); yvals=zeros(1,n+1);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (2 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

index=[0:1:n]; tvals=t0+h*index; yvals(1)=y0; for i=2:n+1 yvals(i)=yvals(i-1)+h*feval(f,tvals(i-1),yvals(i-1)); end Usamos ahora esta subrutina en el siguiente ejemplo. Ejemplo 1: Considere el problema de valor inicial

cuya solucin exacta es y(t)=(t+1)5e-t. Definimos la siguiente funcin en MATLAB que evala el lado derecho de la ecuacin diferencial: function f=etest(t,y); f=5*y/(t+1)-y; Ahora resolvemos este problema para n=20 y grficamos la solucin numrica junto con la exacta para comparar los resultados usando las siguientes instrucciones en MATLAB: [t,y]=feuler('etest',0,4,1,20); yy=(t+1).^5.*exp(-t); plot(t,y,'x',t,yy)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (3 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Las soluciones numricas se ilustran en la figura por las "x". Note que las aproximaciones numricas no coinciden con la solucin exacta y que el error aumenta segn aumenta la "t". Esto es lo usual y no contradice el estimado del error (*) de arriba donde el error puede crecer hasta exponencial con respecto al largo del intervalo. Para controlar el error lo primero que se hace es disminuir la h, i.e., aumentar la n. Para este ejemplo mostramos los resultados de disminuir h sucesivamente para la aproximacin de y(4)= 57.2364 a las cifras mostradas. Obtuvimos lo siguiente: n 20 40 80 160 320 640 1280 2560 yn 42.4723 48.3445 52.2842 54.6108 55.8827 56.5488 56.8899 57.0624 y(4)-yn 14.7640 8.89186 4.95215 2.62556 1.35365 0.687527 0.346503 0.173945

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (4 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Vemos aqui que definitivamente la aproximacin mejora segn aumenta la "n" pero la convergencia es bastante lenta. De hecho la aproximacin numrica tiene apenas un error relativo de 3x10-3 para n=2560, i.e., h=4x10-4. <> El ejemplo anterior muestra que aunque el mtodo de Euler es convergente segn la "h" tiende a cero, la convergencia del mtodo puede ser bien lenta requiriendo un "h" excesivamente pequeo para un error satisfactorio en las aproximaciones. Al usar un "h" excesivamente pequeo en los calculos podemos tener acumulacin de errores debido a la aritmtica finita similar al fenomeno que observamos en la diferenciacin numrica. Esta situacin mejora o se puede evitar al considerar mtodos con un orden de convergencia ms alto como los llamados mtodos Runge-Kutta que discutimos ms adelante. Otra nocin bien importante en adicin a la de convergencia de un mtodo numrico es la de estabilidad absoluta. En este caso la "h" se mantiene fija y nos interesa determinar can sensitivo es el mtodo numrico a variaciones en la condicin inicial y0. Ejemplo 2: Considere el problema de valor inicial

cuya solucin exacta es y(t)=0. Resolvemos el mismo problema de valor inicial pero con la condicin inicial cambiada a y(1)=10-4 y usamos h=0.05 en el mtodo de Euler. La solucin calculada fu como sigue donde mostramos el valor absoluto de la misma:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (5 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Podemos ver que un error inicial de 10-4 produjo un error de ms de 1025 en la aproximacin de y(10). En este caso calcular con h=0.025 o n=360 aproximadamente, produce resultados satisfactorios. <> El ejemplo anterior se generaliza a la ecuacin , donde . La solucin de este

problema es para alguna constante C. Estas soluciones son acotadas para todo "t". La regin de estabilidad absoluta S de un mtodo se define por el conjunto de las "h" tal que las soluciones numricas sean acotadas al aplicarse al problema prueba . En el caso del mtodo de Euler tenemos que al aplicar este al problema prueba, el mtodo reduce a:

Vemos aqui que las soluciones numricas estan acotadas para todo "j" si y solo si . Ejemplo 3: En el Ejemplo 2 donde =-50, el requisito de implica que .

, i.e.,

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (6 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Claramente h=0.05 no cumple con esta condicin mientras que h=0.025 si la satisface. <> El mtodo de Euler generaliza en forma directa a sistemas de ecuaciones diferenciales. La teoria de convergencia global y de estabibilidad absoluta que discutimos en el caso de una ecuacin, aplica palabra por palabra al caso de sistemas. En la subrutina feuler descrita antes solo hay que aadir una instruccin para determinar el tamao del sistema. Hicimos un cambio tambin para que en lugar de "n" la subrutina reciba "h". La subrutina queda ahora como: function [tvals,yvals]=feuler(f,t0,b,y0,h) n=floor((b-t0)/h)+1; m=length(y0); tvals=zeros(1,n+1); yvals=zeros(m,n+1); index=[0:1:n]; tvals=t0+h*index; yvals(:,1)=y0; for i=2:n+1 yvals(:,i)=yvals(:,i-1)+h*feval(f,tvals(i-1),yvals(:,i-1)); end Esta subrutina puede ser usada exactamente como antes para el caso de una ecuacin. Veamos un ejemplo numrico de un sistema de ecuaciones y como lo resolvemos con feuler. Ejemplo 4: Considere el siguiente modlo simplificado del corazn donde x(t) representa el largo de una cierta fibra musculo del corazn y s(t) representa un estimulo aplicado:

Aqui y p son parmetros del modlo. El lado derecho del sistema lo evaluamos mediante la siguiente subrutina en MATLAB: function f=heart(t,y); % % y(1) representa x(t) y y(2) representa s(t) % global mheart pheart f=zeros(2,1); f(1)=mheart*(-y(2)-y(1)^3/3+pheart*y(1)); f(2)=y(1)/mheart; Note el uso de la instruccin global que declara las variables mheart y pheart como variables globales las cuales son accesibles por cualquier rutina o programa con una instruccin global igual. Usamos las condiciones iniciales x(0)=0, s(0)=-1 y los valores de =0.5 y p=1. Aproximamos la
http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (7 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

solucin con la siguiente secuencia de instrucciones en MATLAB: global mheart pheart mheart=0.5; pheart=1; [t,y]=feuler('heart',0,10,[0,-1]',0.1); plot(t,y(1,:),t,y(2,:)) xlabel('t');ylabel('x(t),s(t)'); title('Modelo del corazon: x(t) en amarillo, s(t) en violeta.') lo cual produce la siguiente grfica:

No comentamos sobre las interpretaciones fsicas de estas graficas pero si mencionamos que el mtodo de Euler es efectivo en este problema ya que las soluciones no varian muy rapidamente en el intervalo en cuestin. <> Para resolver ecuaciones diferenciales de orden mayor de uno hacemos primero un cambio de coordenadas para convertir la ecuacin dada a un sistema de primer orden. Luego usamos el mtodo de Euler para sistemas segn descrito arriba.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (8 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Ejemplo 5: Considere el problema de valor inicial para la siguiente ecuacin de orden dos:

Haciendo la sustitucin cambio de variables x1(t)=x(t), x2(t)=x'(t), entonces el problema de arriba es equivalente al siguiente sistema de primer orden:

Este sistema puede resuelto de forma similar al que resolvimos en el Ejemplo 4. <> Ejercicios: 1. La ecuacin diferencial que modela el proceso de desintegracin de un material radioactvo esta dada por:

donde k es una constante caracteristica del istopo radioactvo. Para x0=50 y k=0.05 resuelva este problema de valor inicial en el intervalo [0,10] con h=1,0.1,0.01. Compare sus resultados con la solucin exacta que es x(t)=50 exp(-0.05t).

a un 2. Convierta la ecuacion diferencial de orden dos dada por sistema de orden uno. Resuelva el sistema resultante en el intervalo [1,4] si las condiciones iniciales son x(1)=1/2, x'(1)=-1/2. La solucin exacta en este problema es x(t)=1/(1+t2).

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (9 de 9) [04/08/2002 0:47:40]

Mtodos Runge-Kutta

Mtodos Runge-Kutta La convergencia lenta del mtodo de Euler y lo restringido de su regin de estabilidad absoluta nos lleva a considerar mtodos de orden de convergencia mayor. En clase mencionamos que en cada paso el mtodo de Euler se mueve a lo largo de la tangente de una cierta curva que esta "cerca" a la curva desconocida o buscada. Los mtodos Runge-Kutta extienden esta idea geomtrica al utilizar varias derivadas o tangentes intermedias, en lugar de solo una, para aproximar la funcin desconocida. Los mtodos Runge-Kutta ms simples se obtienen usando dos de estas derivadas intermedias. Mtodos Runge-Kutta de dos Evaluaciones: Aqui buscamos mtodos o frmulas numricas de la forma:

Note que apesar de que en la frmula se perciven tres f's, el mtodo envuelve solo dos evaluaciones ya que dos de estas f's tienen los mismos argumentos. La idea ahora es determinar los parmetros de modo que el mtodo tenga orden de convergencia lo ms alto posible. Un anlisis del error local de esta frmula basado en el Teorema de Taylor muestra que el orden ms alto que puede tener esta frmula es dos y que esto puede ocurrir si y solo si:

cumplen con estas condiciones, entonces ej=y(tj)-yj=O(h2) para toda j. Algunos Es decir si casos especiales de estas frmulas son: 1. Mtodo de Heun: Aqui se toma de modo que el mtodo reduce a:

Para propositos de hacer clculos es mejor escribir esta frmula como:

2. Mtodo del Punto Medio: Aqui se toma

de modo que el mtodo reduce a:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (1 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

Veamos ahora una implementacin en MATLAB del mtodo de Heun. Note que en el ciclo "for" tenemos exactamente dos evaluaciones de "f". Tenemos pues: function [tvals,yvals]=heun(f,t0,b,y0,h) n=floor((b-t0)/h)+1; m=length(y0); k1=zeros(1,m); tvals=zeros(n+1,1); yvals=zeros(n+1,m); index=[0:1:n]'; tvals=t0+h*index; yvals(1,:)=y0; h2=h/2; for i=2:n+1 k1=feval(f,tvals(i-1), yvals(i-1,:)); yvals(i,:)=yvals(i-1,:)+h*k1; yvals(i,:)=yvals(i-1,:)+h2*(k1+feval(f,tvals(i),yvals(i,:)); end Ejemplo 1: Consideremos aqui las ecuaciones diferenciales que se obtienen de las leyes de Newton aplicadas al problema de dos cuerpos. Suponemos aqui que uno de los cuerpos es mucho ms masivo que el otro de modo que su movimiento es descartable, e.g., la tierra y un satlite. Suponemos tambin que el movimiento es en un plano. Como la fuerza gravitacional es inversamente proporcional a la distancia entre los cuerpos, tenemos tomando todas las constantes envueltas como uno, que la posicin (x(t),y(t)) del cuerpo pequeo esta dada por el sistema de ecuaciones diferenciales:

Tomamos como condiciones iniciales este es un sistema de orden dos, tenemos que hacer la sustitucin:

. Debido a que

lo cual tranforma el sistema de arriba al siguiente sistema de orden uno:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (2 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

Definimos ahora la siguiente subrutina en MATLAB que evalua el lado derecho de este sistema: function f=satelite(t,u) f=zeros(1,4); denom=(u(1)^2+u(3)^2)^1.5; f(1)=u(2); f(2)=-u(1)/denom; f(3)=u(4); f(4)=-u(3)/denom; Ahora calculamos y graficamos la solucin del problema de valor inicial con la siguiente secuencia de instrucciones en MATLAB. Note que graficamos el conjunto de puntos (x(t),y(t)) para los t's generados en lugar de (t,x(t)) y (t,y(t)). Tenemos pues: [t,y]=heun('satelite',0,10,[0.4,0,0.1,2],0.01); plot(y(:,1),y(:,3)) xlabel('X');ylabel('Y'); title('Solucion particular del problema de dos cuerpos')

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (3 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

Note que la curva es efectivamente una elipse aunque esto se acentua en la grfica por que los ejes tienen unidades de largo distintas. <> Mtodos Runge-Kutta de ms de dos Evaluaciones: Aunque el mtodo de Heun fu bastante efectivo en el ejemplo anterior, nos interesa encontrar mtodos de orden an ms alto que no requieran h's muy pequeas. Vimos aqui que un mtodo Runge-Kutta de dos evaluaciones intermedias genera un mtodo de orden dos. Es razonable pensar que tres o cuatro evaluaciones intermedias producen mtodos RungeKutta de ordenes tres y cuatro respectivamente. Este el caso pero ya para cinco evaluaciones no obtenemos necesariamente mtodos Runge-Kutta de orden cinco pero si con seis evaluaciones. Un ejemplo de un mtodo Runge-Kutta de orden cuatro de cuatro evaluaciones es el llamado mtodo RungeKutta clsico definido por las frmulas:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (4 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

MATLAB cuenta con dos subrutinas intrinsecas para la solucin de problemas de valor inicial: ode23 y ode45. ode23 utiliza una combinacin de un mtodo Runge-Kutta de orden dos con otro de orden tres. La combinacin de estos mtodos permite el poder estimar el error en la aproximacin numrica en cada paso y asi la subrutina puede ajustar el largo de paso "h" en forma dinmica para mantener el error global menor de una tolerancia especificada por el usuario. Estos mtodos se dicen que son adaptativos de largo de paso variable. La subrutina ode45 es similar a ode23 pero utiliza una combinacin de mtodos de ordenes cuatro y cinco de cinco y seis evaluaciones respectivamente. La secuencia de llamada de ambas rutinas es idntica y requiere del nombre de la funcin f, los tiempos inicial y final, la condicin inicial, la tolerancia para los computos, y un indicador de si la rutina imprime o no los resultados calculados en la ventana de MATLAB. Normalmente este indicador se toma como cero que es su valor por omisin. Por ejemplo un computo similar al del Ejemplo 1 lo podemos realizar remplazando la llamada a Heun por: [t,y]=ode23('satelite',0,10,[0.4,0,0.1,2],0.0001); donde la solucin se calcula con un error global de 0.0001. La misma instruccin con ode45 produce la grfica:

Las esquinas en esta grfica se deben a que como ode45 usa un mtodo de orden mayor, esto le permite dar pasos ms largos en "t" lo que al graficar produce las esquinas. Este trazado lo podemos mejorar usando splines cbicos como sigue:
http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (5 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

[t,y]=ode45('satelite',0,10,[0.4,0,0.1,2],0.0001); tt=linspace(0,10,200); xx=spline(t,y(:,1),tt); yy=spline(t,y(:,3),tt); plot(xx,yy) xlabel('X');ylabel('Y'); title('Solucion particular del problema de dos cuerpos con ode45 (grafica con splines)') lo cual resulta en la mejor grfica:

Ejercicios: 1. Resuelva el siguiente problema de valor inicial usando las subrutinas ode23 o ode45:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (6 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

donde

Examine los efectos en los clculos de la tolerancia especificada por el usuario. Grafique las soluciones calculadas como funciones de "t" y en el plano x-y. 2. Las ecuaciones de Lorenz estan dadas por el siguiente sistema de ecuaciones diferenciales:

donde s, r, b son parmetros del sistema. Usando ode45 con una tolerancia de 0.000005 resuelva las ecuaciones de Lorenz para s=10, r=126.52, b=8/3 con las condiciones iniciales x(0)=-7.69, y(0)=-15.61, z(0)=90.39. Grafique las soluciones calculadas como funciones de t. Grafique las soluciones x(t), z(t) en el plano x-z. Para los valores de s, r, b dados el sistema de Lorenz posee lo que se conoce como comportamiento "catico".

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (7 de 7) [04/08/2002 0:48:44]

Un Vistaso a MATLAB

Un Vistaso a MATLAB
Definiendo Matrices
Si queremos definir la siguiente matriz en MATLAB:

entonces escribimos: A=[1 2 3 4;5 6 7 8;9 10 11 12;13,14,15,16]; (El simbolo "" denota el prompt de MATLAB y no se escribe al entrar instrucciones). El ";" al final de la instruccin omite el "eco" o salida a la pantalla. La instruccin x=4:-1:1 general el vector fila x=[4,3,2,1]. La instruccin C=A(3:4,1:3); se refiere a la submatriz

de A. Tambin D=A([1,3],3:4) genera

Matrices Especiales
En MATLAB podemos generar matrices especiales con las siguientes instrucciones:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (1 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

rand(n,m) - matriz nm de entradas aleatorias entre 0 y uno. eye(n) - matriz identidad nn. zeros(n,m) - matriz cero de tamao nm. ones(n,m) - matriz nm con todas las entradas uno. Combinando estas instrucciones podemos generar matrices bastante complicadas. Por ejemplo, la instruccin E=[eye(2),ones(2,3);zeros(2),[1:3;3:-1:1]] genera la matriz

La instruccin round(x) redondea "x" al entero ms cercano a "x". Podemos combinar funciones en MATLAB. Por ejemplo, round(10*rand(4)) genera una matriz con entradas aleatorias entre 0 y 10.

Aritmtica de Matrices
Considere las siguientes matrices:

Entonces las operaciones A*B (producto matricial de A con B), A+B (suma de A mas B), 3*A (multiplicacin escalar de 3 por A) tienen los siguientes resultados: A*B ans = 16 19 13 10 11 7 A+B ??? Error using ==> +
http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (2 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

Matrix dimensions must agree. 3*A ans = 12 15 6 9 Note que MATLAB "anuncia" que A+B no se puede calcular. Las operaciones A' (transpuesto de A), inv(A) (inversa de A), y A^3 (esto es A*A*A) tienen como resultados: A' ans = 42 53 inv(A) ans = 1.5000 -2.5000 -1.0000 2.0000 A^3 ans = 174 235 94 127 Si precedemos las operaciones matriciales "*", "^" con el punto ".", entonces estas se hacen termino a termino. Por ejemplo A.*C y A.^2 generan: A.*C ans = -4 10 4 12 A.^2

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (3 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

ans = 16 25 4 9

Solucin de Sistemas Lineales


Considere le sistema lineal

Definimos la matriz de coeficientes y el lado derecho por las instrucciones: A=[1 -2 3;4 1 -2;2 -1 4]; b=[1 -1 2]'; Note el transpuesto en b para hacerlo un vector columna. Vamos a resolver este sistema por tres mtodos:
q q q

eliminacin Gaussiana forma echelon reducida o mtodo de Gauss-Jordan mtodo de la inversa

En el mtodo de Gauss-Jordan, luego de obtener la forma echelon de la matriz de coeficientes aumentada, eliminamos tambin la parte de arriba de la matriz hasta producir una matriz donde las columnas con unos, solo tienen un uno. Esto se conoce como la forma echelon reducida (ver texto). Para comparar los tres mtodos utilizamos la instruccin flops de MATLAB que estima el nmero de operaciones de punto flotante entre dos llamadas sucesivas a flops. Una llamada de la forma flops(0) inicializa el contador de operaciones a cero. La sucesin de instrucciones: flops(0) x=A\b x= -0.0417 0.4167 0.6250

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (4 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

flops lleva a cabo eliminacin Gaussiana en el sistema de arriba y produce como resultado: ans = 73 esto es, se necesitaron aproximadamente 73 operaciones de punto flotante (sumas, restas, multiplicaciones divisiones) para resolver el sistema con eliminacin Gaussiana. Para el mtodo de Gauss-Jordan tenemos: flops(0) rref([A b]) ans = 1.0000 0 0 -0.0417 0 1.0000 0 0.4167 0 0 1.0000 0.6250 flops ans = 483 el cual requiere 483 operaciones de punto flotante. Finalmente el mtodo de la inversa se realiza con la siguiente sequencia de instrucciones: flops(0) x=inv(A)*b x= -0.0417 0.4167 0.6250 flops ans = 108
http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (5 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

el cual toma 108 operaciones. Vemos pues que eliminacin Gaussiana es el mejor de los tres mtodos lo cual es cierto en general. Usando MATLAB podemos estudiar la relacin entre la solubilidad del sistema Ax=b y la nosingularidad de la matriz de coeficientes A. En clase vimos que el sistema Ax=b tiene solucin nica para cualquier lado derecho b si y solo si la matriz A es nosingular. Qu sucede si A es singular? Entonces Ax=b no tiene solucin? Si A es singular el sistema Ax=b puede tener solucin para algunos b's pero de seguro hay al menos un b* para el cual Ax=b* no tiene solucin. Vamos a genera una matriz singular con MATLAB: A=round(10*rand(6)); A(:,3)=A(:,1:2)*[4 3]' A= 2 5 23 9 7 3 0 8 24 8 9 6 7 0 28 5 8 8 7 1 31 1 3 10 9 5 51 7 0 4 4 7 37 4 7 2 (Como usamos la instruccin rand, el resultado de esta y cualquier secuencia de instrucciones que use esta funcin de MATLAB, no siempre ser el mismo). La primera instruccin genera una matriz aleatoria con entradas enteras entre 0 y 10, y con la segunda instruccin remplazamos la tercera columna de A con cuatro veces la primera columna mas tres veces la segunda columna. La matriz resultante es singular! (Explique esto sin calcular el determinante). Generamos ahora un lado derecho arbitrario mediante la instruccin: b=round(20*(rand(6,1)-0.5)) b= 10 4 5 3 -9 3 Esto genera una matriz 61 aleatoria con entradas enteras entre -10 y 10. Resolvemos el sistema Ax=b calculando la forma echelon reducida de la matriz de coeficientes aumentada [A b]:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (6 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

rref([A b]) ans = 1040000 0130000 0001000 0000100 0000010 0000001

el sistema es inconsistente, i.e., no tiene solucin. Como la ltima fila es de la forma Recuerde que A es singular! Esto no quiere decir que Ax=b nunca tenga solucin. Si definimos c=A*b, con el b de arriba digamos, el sistema Ax=c tiene solucin x=b (por qu?). De hecho si calculamos la forma echelon reducida de [A c] tenemos: c=A*b; rref([A c]) ans = 1 0 4 0 0 0 30 0 1 3 0 0 0 19 0001003 0 0 0 0 1 0 -9 0000013 0000000 el cual denota un sistema consistente dependiente con soluciones:

donde x3 es arbitrario.

Funciones de Matrices
MATLAB posee una gran cantidad de funciones matriciales. De las ms comunes tenenmos:
q q q q

min(A), max(A) - dan el mnimo y mximo respectivamente por columnas de A sum(A), prod(A) - producen la suma y producto respectivamente por columnas de A norm(A,p) - norma p de la matriz A donde p=1,2, inf eig(A) - vector cuyos componentes son los valores propios de A

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (7 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB
q q

det(A) - el determinante de A inv(A) - la matriz inversa de A

Grficas
MATLAB provee excelentes funciones para grficas en dos, tres y cuatro dimensiones. Veamos un par de ejemplos sencillos. Suponga que queremos trazar la grfica de la funcin

Esto lo podemos lograr con las instrucciones: x=-5:.1:5; y=x.^2.*exp(-x.^2); plot(x,y)

La primera instruccin divide el intervalo [-5,5] en subintervalos de largo 0.1, la segunda instruccin evala la funcin en los puntos de la particin, y finalmente graficamos los resultados con plot. La
http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (8 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

instruccin plot tiene opciones para cambiar patrones del trazado, poner titulos, etc. Supongamos ahora que queremos dibujar la superficie:

Esto lo hacemos con la secuencia de instrucciones: x=-5:.4:5; y=x; [X,Y]=meshgrid(x,y); Z=X.^2.*exp(-Y.^2); surf(X,Y,Z)

Las primeras dos instrucciones dividen los ejes de "x" y "y" en subintervalos de largo 0.4; la tercera instruccin genera una rejilla en el conjunto [-5,5][-5,5] con cuadraditos de lados 0.4 como se ilustra en la siguiente figura:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (9 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

La cuarta instruccin evalua la funcin en los puntos de la rejilla, y finalmente trazamos la superficie con surf.

Referencias
1. MATLAB User's Guide, The MathWorks, Inc., Massachusetts, 1995. 2. The MATLAB Handbook, E. Part-Enander, A. Sjoberg, B. Melin, and P. Isaksson, AddisonWesley, New York, 1996.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (10 de 10) [04/08/2002 0:49:40]

Você também pode gostar