Matlab Con Metodos Numericos

Embed Size (px)

Citation preview

Invitacin al Anlisis NumricoCarlos Enrique Meja Salazar Universidad Nacional de Colombia, Medelln Escuela de Matemticas Julio 2002

2

ContenidoPrefacio 1 Presentacin y repaso 1.1 Motivacin . . . . . . . . . . . . . . . . 1.2 Bosquejo del contenido . . . . . . . . . 1.3 Repaso: Normas en espacios vectoriales 1.3.1 Normas de vectores . . . . . . . 1.3.2 Normas de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 9 10 11 12 13 15 16 17 20 22 28 31 31 35 38 38 40 44 45 47 50 52

2 Primeros pasos en MATLAB 2.1 La lnea de comandos . . . . . . . . . . . . . . 2.2 Los M-archivos . . . . . . . . . . . . . . . . . 2.3 Ejercicios . . . . . . . . . . . . . . . . . . . . 2.4 Procesamiento de informacin y visualizacin 2.5 Ejercicios . . . . . . . . . . . . . . . . . . . . 3 Ecuaciones no lineales 3.1 Mtodo de biseccin . . . . . . 3.2 Mtodo de Newton . . . . . . . 3.2.1 Ejercicios . . . . . . . . 3.2.2 Anlisis de Convergencia 3.3 Iteraciones de punto jo . . . . 3.4 Ejercicio . . . . . . . . . . . . . 3.5 Anlisis de convergencia local . 3.6 Ejemplos . . . . . . . . . . . . . 3.7 Ejercicios suplementarios . . . . 3.8 Examen de entrenamiento . . . . . . . . . . . . . . . Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 4 Interpolacin 4.1 Tablas . . . . . . . . . . . . . 4.2 Teorema fundamental . . . . . 4.2.1 Intento 1 . . . . . . . . 4.2.2 Intento 2 . . . . . . . . 4.2.3 Clculo de coecientes 4.3 Forma de Newton . . . . . . . 4.4 Forma de Lagrange . . . . . . 4.5 Ejercicios . . . . . . . . . . . 4.6 Error al interpolar . . . . . . 4.7 Ejercicios suplementarios . . . 4.8 Examen de entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Contenido

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55 55 57 57 59 62 63 66 67 68 69 71 73 74 76 76 77 78 79 80 81 82 84 84 86 87 90 91 93 95 95 96 97 101 101

5 Integracin numrica 5.1 Frmulas bsicas . . . . . . . . . . . . . . . . . 5.1.1 Ejercicio . . . . . . . . . . . . . . . . . . 5.1.2 Cambio de intervalo . . . . . . . . . . . 5.2 Error en la cuadratura . . . . . . . . . . . . . . 5.3 Cuadraturas compuestas . . . . . . . . . . . . . 5.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . 5.5 Cuadraturas de Newton-Cotes . . . . . . . . . . 5.6 Mtodo de coecientes indeterminados . . . . . 5.7 Cuadratura de Gauss . . . . . . . . . . . . . . . 5.8 Ejercicios . . . . . . . . . . . . . . . . . . . . . 5.9 Polinomios ortogonales . . . . . . . . . . . . . . 5.10 Frmula de recurrencia de tres trminos . . . . 5.11 Cuadratura gaussiana y polinomios ortogonales 5.12 Ejercicios . . . . . . . . . . . . . . . . . . . . . 5.13 Ejercicios suplementarios . . . . . . . . . . . . . 5.14 Examen de entrenamiento . . . . . . . . . . . . 6 Ecuaciones diferenciales ordinarias 6.1 Problemas de valor inicial . . . . . 6.2 Problemas lineales y no lineales . . 6.3 Soluciones de los ejemplos . . . . . 6.4 Anlisis del Mtodo de Euler . . . . 6.5 Existencia y unicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Contenido

5 . . . . . . . . . . . . . . . . 102 103 108 110 111 112 113 114 115 115 116 118 118 118 119 123

6.6 Solucin numrica . . . . . . . . . . . . . . . . . . . . 6.7 Mtodo de Euler . . . . . . . . . . . . . . . . . . . . 6.7.1 Anlisis de error . . . . . . . . . . . . . . . . 6.7.2 Consistencia . . . . . . . . . . . . . . . . . . . 6.7.3 Estabilidad . . . . . . . . . . . . . . . . . . . 6.7.4 Errores de redondeo . . . . . . . . . . . . . . 6.7.5 Estabilidad absoluta . . . . . . . . . . . . . . 6.8 Mtodos de Taylor . . . . . . . . . . . . . . . . . . . 6.9 Mtodos de Runge-Kutta . . . . . . . . . . . . . . . . 6.10 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . 6.11 Problemas con valores en la frontera . . . . . . . . . 6.12 Diferencias nitas y mtodo de colocacin para PVFs 6.13 Existencia y unicidad . . . . . . . . . . . . . . . . . . 6.14 Diferencias nitas . . . . . . . . . . . . . . . . . . . . 6.15 Mtodo de Newton . . . . . . . . . . . . . . . . . . . 6.16 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . .

6.17 Mtodo de colocacin . . . . . . . . . . . . . . . . . . . 123 6.18 Ejercicios suplementarios . . . . . . . . . . . . . . . . . 129 6.19 Examen de entrenamiento . . . . . . . . . . . . . . . . 131 7 Ecuaciones diferenciales parciales 7.1 Diferencias nitas para problemas parablicos 7.2 Ecuaciones de tipo parablico . . . . . . . . . 7.3 Diferencias nitas . . . . . . . . . . . . . . . . 7.3.1 Mtodos ms comunes . . . . . . . . . 7.3.2 Ejercicios . . . . . . . . . . . . . . . . 7.4 Ecuaciones no lineales . . . . . . . . . . . . . 7.5 Ejercicio . . . . . . . . . . . . . . . . . . . . . 7.6 Otras condiciones de borde . . . . . . . . . . . 7.7 Consistencia, estabilidad y convergencia . . . 7.8 Anlisis Matricial de Estabilidad . . . . . . . 7.9 Ejercicios . . . . . . . . . . . . . . . . . . . . 7.10 Dos dimensiones . . . . . . . . . . . . . . . . . 7.10.1 Mtodos ADI . . . . . . . . . . . . . . 7.10.2 Ejercicio . . . . . . . . . . . . . . . . . 7.11 Ejercicios suplementarios . . . . . . . . . . . . 7.12 Examen de entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 133 134 134 135 137 138 142 143 145 147 148 149 150 154 154 156

6 8 Material de inters 8.1 Referencias generales . . . . . 8.2 LAPACK . . . . . . . . . . . 8.3 Templates y otras colecciones 8.4 MATLAB y otros . . . . . . . Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Contenido

. . . .

. . . .

. . . .

157 157 158 159 160 161

PrefacioEn estas notas ofrecemos una variedad de temas del anlisis numrico, que pueden servir de motivacin y de gua a estudiantes de nuestra Universidad y a otros interesados. Se pueden considerar como unas notas de clase, pero, para la seleccin de temas y enfoques, no se sigui un programa de curso dado. Los ms de 100 ejercicios estn repartidos en pequeas listas en medio de la exposicin, ejercicios suplementarios y exmenes de entrenamiento. Hay cerca de 30 ejemplos resueltos en detalle, que casi siempre aparecen con su rutina MATLAB acompaante. Dichas rutinas se presentan nicamente con nes didcticos y no sustituyen software de calidad. Pretendemos publicar estas notas en la WEB y mantenerlas en evolucin. Por eso los aportes de usuarios son muy importantes. Comentarios, correcciones y sugerencias son bienvenidos en la direccin electrnica cemejia@perseus:unalmed:edu:co: Expresamos nuestro reconocimiento a la Universidad Nacional de Colombia, por habernos concedido el ao sabtico durante el cual escribimos estas notas. Parte de este documento se utilizar como gua en un cursillo de la XIII Escuela Latinoamericana de Matemticas, que se reunir en Cartagena, Colombia de julio 29 a agosto 3 de 2002. Medelln, julio 15 de 2002

8

Contenido

1 Presentacin y repasoMotivacin Bosquejo del contenido Repaso

1.1

Motivacin

Los mtodos numricos son parte importante de la interaccin entre matemticas, ingeniera e industria. Se estudian cada da ms, en gran parte debido a que la necesidad de modelamiento matemtico en la ciencia y la tcnica crece de forma vertiginosa. Es comn escuchar que los mtodos numricos se utilizan por no disponer de soluciones analticas para la mayora de los problemas de la matemtica aplicada. Por supuesto sto es verdad, pero es importante tener en cuenta que casi siempre las soluciones analticas se utilizan discretizadas y/o truncadas. Generalmente es una prdida de tiempo resolver un problema analticamente para despus obtener una aproximacin de tal solucin, en lugar de optar desde el principio por una solucin numrica. Denir el anlisis numrico no es tarea fcil y sobre esta materia existen todava discrepancias, descritas por Trefethen en el Apndice a su libro Trefethen y Bau (1997) [34]. La denicin que propone Trefethen, muy cercana a la propuesta por Henrici desde 1964 en Henrici (1964) [15], es la siguiente: El anlisis numrico es el estudio de algoritmos para la solucin de problemas de la matemtica continua. Por matemtica continua, Trefethen se reere al anlisis, real y complejo. Utiliza esta palabra como opuesta a discreta. Por su parte, la computacin cientca, puede denirse como el diseo e implementacin de algoritmos numricos para problemas de ciencias e ingeniera. De manera que podemos decir que el anlisis

10

1. Presentacin y repaso

numrico es un pre-requisito para la computacin cientca. En estas notas, hacemos de cuenta que el problema matemtico a resolver ya ha sido denido. No nos ocupamos del problema fsico o de ingeniera directamente. Aqu nos concentramos en algoritmos y uso de software. Adems, es en medio de ejemplos concretos que presentamos las nociones de estabilidad y error, indispensables para evaluar la calidad de un mtodo numrico. Para compensar por las obligatorias omisiones, ofrecemos bibliografa que permita profundizar en los temas a los interesados. Frecuentemente, los mtodos numricos, muy en especial los que sirven para resolver ecuaciones diferenciales, conducen a problemas de lgebra lineal en los que las matrices tienen alguna estructura y la mayora de sus elementos son nulos. Para estos problemas, el lgebra lineal numrica ofrece mtodos especiales, en los que se est trabajando intensamente desde hace varios aos. Basta ver, por ejemplo, las Memorias de Copper Mountain Conference del ao 2000 [35], que contienen 6 artculos sobre precondicionamiento, 6 sobre clculo de valores propios y 3 sobre mtodos multigrid. Esta es una conferencia organizada anualmente por University of Colorado en cooperacin con SIAM (Society for Industrial and Applied Mathematics), que trata cada dos aos sobre mtodos multigrid y en el ao intermedio sobre mtodos iterativos en general. Los temas del lgebra lineal numrica son de gran importancia dentro del anlisis numrico. Dentro de estas notas veremos problemas que al discretizarlos se convierten en problemas de lgebra lineal que aqu resolvemos utilizando a MATLAB. Pero este tema es tan importante, que amerita consideracin especial. Esperamos en un futuro cercano complementar estas notas con unas acerca de lgebra lineal numrica. Lo nico que haremos, por ahora, es que al nal de estas notas, comentamos brevemente sobre software especializado que invitamos a conocer a los interesados.

1.2 Bosquejo del contenidoLa organizacin de estas notas es la siguiente: Enseguida, en este mismo captulo, presentamos una seccin de repaso que hasta ahora solo con-

1.3. Repaso: Normas en espacios vectoriales

11

tiene material sobre normas en espacios vectoriales. Vislumbramos que la seccin de repaso crecer un poco posteriormente. En el prximo captulo introducimos el software MATLAB, que es el que escogimos para ejemplos y ejercicios en estas notas. En el captulo siguiente se presenta la solucin de ecuaciones no lineales por varios mtodos, incluyendo el mtodo de Newton. En los dos captulos que siguen nos ocupamos de interpolacin y de integracin numrica y en los dos siguientes nos concentramos en la solucin numrica de ecuaciones diferenciales. Este tema lo iniciamos con mtodos de un paso para problemas de valor inicial para ecuaciones diferenciales ordinarias. Enseguida continuamos con mtodos numricos para problemas con valores en la frontera para ecuaciones diferenciales ordinarias. Ms tarde, hacemos una revisin de mtodos numricos para la solucin de ecuaciones diferenciales parciales de tipo parablico. En la parte nal, hacemos referencia a software de lgebra lineal numrica, con nfasis en mtodos iterativos no estacionarios para la solucin de sistemas de ecuaciones lineales. Al nal de los captulos que tratan sobre mtodos numricos, incluimos una lista de ejercicios suplementarios y un examen de entrenamiento. La mayora de los problemas en estas secciones nales estn basados en problemas y ejemplos de las referencias Cheney y Kincaid (1980) [8], Golub y Ortega (1993) [12] y Johnson y Riess (1982) [19].

1.3

Repaso: Normas en espacios vectoriales

Existen nociones topolgicas y geomtricas que son indispensables para estudiar anlisis numrico. Posiblemente la ms importante sea la idea de norma, que logra generalizar a espacios abstractos los conceptos escalares de valor absoluto y mdulo. Denicin 1 Sea V un espacio vectorial no vaco, real o complejo. Una norma en V es una funcin N : V ! R que cumple las siguientes condiciones: a. N (x) 0 para todo x 2 V y N(x) = 0 si y solo si x = 0: b. N (x) = jj N (x) para todo x 2 V y todo escalar : c. N (x + y) N (x) + N (y) para todo x; y 2 V:

12

1. Presentacin y repaso

A la norma N (x) generalmente se le denota kxk : Se le agrega un subndice si hay lugar a confusin. 1.3.1 Normas de vectores

Para el espacio vectorial Rn , las siguientes son las normas ms utilizadas: Sea x 2 Rn con componentes xj ; j = 1; 2; :::; n: 1. Norma innito o norma uniforme: kxk1 = max jxj j : j =1;2;:::;n n P 2. Norma 1: kxk1 = jxj j :j =1

3. Norma 2 o euclideana: kxk2 =

Las mismas deniciones son vlidas en el espacio vectorial Cn de vectores de n componentes complejas. En este caso, jxj j signica mdulo del nmero complejo xj . Ejemplo 2 El vector x = [1 2 3 4]0 tiene kxk1 = 4; kxk1 = 10 y p kxk2 = 30: Las bolas de centro en el origen y radio 1; en las normas 2 y 1; aparecen en la siguiente gura.

"

j=1

n P

jxj j2

1 #2

:

Bola Unitaria en Norma 2 1 1

Bola Unitaria en Norma 1

0.5

0.5

0

0

-0.5

-0.5

-1 -1

-0.5

0

0.5

1

-1 -1

-0.5

0

0.5

1

1.3. Repaso: Normas en espacios vectoriales

13

Estas guras fueron generadas con el siguiente M-archivo. El nombre M-archivo es debido a que los programas en lenguaje MATLAB se denominan en ingls M-les. Los nombres de archivos de programas en este lenguaje siempre tienen la letra m como extensin y son archivos de texto plano que se pueden abrir en procesadores de texto sin formato como Bloc de Notas en WINDOWS. MATLAB proporciona su propio editor de archivos en las versiones ms recientes. % normas.m Herramienta didactica, Carlos E. Mejia, 2002 % bolas unitarias con normas 1 y 2 t = 0:pi/20:2*pi; subplot(121) plot(sin(t),cos(t),r) axis([-1 1 -1 1]);axis square; title(Bola Unitaria en Norma 2); x=-1:.1:1;y=1-abs(x); subplot(122) plot(x,y,r,x,-y,r) axis([-1 1 -1 1]);axis square title(Bola Unitaria en Norma 1); print -deps2 .nfignnormas.eps 1.3.2 Normas de matrices

Para el espacio vectorial Rnn de matrices cuadradas n n con elementos reales, tambin se requiere el concepto de norma. La notacin que se usa es la misma, pero, adems de las propiedades a., b. y c. de la denicin 1, se pide que se cumplan las siguientes dos condiciones: d. kABk kAk kBk ; para toda A; B 2 Rnn e. Toda norma matricial debe ser compatible con alguna norma vectorial, es decir, kAxk kAk kxk ; para toda A 2 Rnn ; x2Rn : Las condiciones para una norma en el espacio matricial Cnn son anlogas a las de arriba y no las precisaremos aqu. Un concepto necesario para la denicin de una de las normas matriciales ms utilizadas es el de radio espectral. Denicin 3 Sea B 2 Rnn con L = f1 ; 2 ; :::; r g su espectro, es decir, el conjunto de sus valores propios distintos. El radio espectral de

14 B es (B) = max jj j :j 2L

1. Presentacin y repaso

Ejemplo 4 La matriz A= 3 4 0 6

tiene radio espectral (A) = 6; pues sus valores propios son 3 y 6: Las normas matriciales ms utilizadas son las siguientes: Sea A = [aij ] 2 Rnn (deniciones anlogas para A 2 Cnn :) n P 1. Norma innito: kAk1 = max ja ij j : (Compatible con normai=1;2;:::;n j=1 n P

innito vectorial).

torial). 1 3. Norma 2: kAk2 = AT A 2 . (Compatible con norma 2 vectorial). #1 " 2 n n PP 2 jaij j 4. Norma de Frobenius: kAkF = : (Compatible coni=1 j =1

2. Norma 1: kAk1 = max

j =1;2;:::;n i=1

jaij j : (Compatible con norma 1 vec-

norma 2 vectorial).

Ejemplo 5 La matriz 0 6 1 A =6 4 2 3 2 1 2 3 4 2 3 4 5 3 3 4 7 7 5 5 6

tiene kAk1 = 18; kAk1 = 18; kAk2 = (A) = 13:4833 y kAkF = En este ejemplo la norma 2 de A ser A una matriz simtrica. Esto no verse con matrices sencillas como 0 A= 0

p

184:

es igual a su radio espectral por es cierto en general, como puede 1 0

para la cual kAk2 = 1 pero (A) = 0:

2 Primeros pasos en MATLABLa lnea de comandos Los M-archivos Procesamiento de informacin y visualizacin Segn la empresa fabricante de MATLAB, llamada The Mathworks, MATLAB es un lenguaje de alto rendimiento para la computacin tcnica. Es que MATLAB posee herramientas de calidad que facilitan el trabajo en diferentes fases de la computacin cientca, como procesamiento de informacin, modelamiento, desarrollo de algoritmos, computacin y simulacin. Basta dar un vistazo a su pgina http : ==www:mathworks:com= para conrmarlo. En esta corta introduccin, ayudamos a la familiarizacin con este software de los que an no lo estn. Lo hacemos con unos cuantos ejemplos sencillos que sugieren la amplia gama de posibilidades que tiene este software y que preparan el camino para leer sin dicultad las rutinas de los captulos posteriores. En todo el documento se trabaj con MATLAB 5.3, Release 11. Versiones posteriores podran requerir pequeos cambios a las instrucciones dadas aqu para operacin del software. En Internet hay un gran nmero de guas para estudiar MATLAB y mtodos numricos con MATLAB. La amplia documentacin en lnea que trae el software es, por supuesto, una referencia obligada. Otra referencia til y de aparicin reciente es Higham y Higham (2000) [16]. Pero MATLAB es un software comercial. Aquellos que no tengan acceso a l, de todas maneras pueden seguir en gran medida las rutinas de estas notas, utilizando un paquete de software no comercial con sintaxis similar a la de MATLAB. Un tal paquete es OCTAVE, que se puede conseguir en su direccin http : ==www:octave:org=:

16

2. Primeros pasos en MATLAB

2.1 La lnea de comandosLa lnea de la pantalla donde MATLAB espera comandos, empieza por el smbolo >>. A la lnea se le llama lnea de comandos. Para nalizar trabajo con MATLAB, se puede escoger la opcin Exit MATLAB del men File o entrar la palabra quit en la lnea de comandos. Si lo que desea es abortar los clculos que est haciendo, presione CTRL-C. La tecla de la echa " sirve para recordar las expresiones que se han escrito antes en la lnea de comandos. Hay cuatro sistemas de ayuda en lnea: help, lookfor, helpwin y helpdesk. El ltimo es el sistema ms completo de todos, est en formato html, es apto para cualquier explorador de internet y posee enlaces para gran cantidad de archivos con formato PDF. El primero, help, lo explicamos por medio de un ejemplo: en la lnea de comandos escriba help linspace. La respuesta del sistema es mostrar las primeras lneas precedidas por % del M-archivo linspace.m que listamos a continuacin: function y = linspace(d1, d2, n) %LINSPACE Linearly spaced vector. % LINSPACE(x1, x2) generates a row vector of 100 linearly % equally spaced points between x1 and x2. % % LINSPACE(x1, x2, N) generates N points between x1 and x2. % % See also LOGSPACE, :. % Copyright (c) 1984-98 by The MathWorks, Inc. % $Revision: 5.6 $ $Date: 1997/11/21 23:29:09 $ if nargin == 2 n = 100; end if n~=1 y = d1:(d2-d1)/(n-1):d2; else y = d2; end Si el M-archivo por el que se pide ayuda (help) fue creado por un usuario y tiene lneas de comentarios en la primera parte, tambin las

2.2. Los M-archivos

17

mostrar. As que la recomendacin es incluir lneas de comentario en la parte de arriba de todo M-archivo que se cree. Es una costumbre que le ahorra tiempo y esfuerzo hasta a uno mismo. Para conocer las variables que hay en un momento dado en el espacio de trabajo, hay dos comandos: who y whos. Ensyelos y note la diferencia. Por cierto, tambin es bueno notar que en MATLAB todas las variables representan matrices. Los escalares son matrices 1 1: De hecho la palabra MATLAB es una sigla que signica Matrix Laboratory. Finalmente, antes de considerar M-archivos, advertimos que el ncleo bsico de MATLAB es para clculo numrico y no simblico. Por tanto, si a=5 y b=7+a, entonces b=12 y sigue siendo 12 aunque el valor de a cambie. MATLAB administra el clculo simblico a travs de una de sus cajas de herramientas, que debe comprarse por aparte.

2.2

Los M-archivos

La lnea de comandos deja de ser prctica cuando se desea hacer un proceso con varias rdenes o comandos. Se requiere entonces crear archivos con los comandos MATLAB que se requieren para cada tarea. Se les llama M-archivos (M-les en ingls.) Son de texto plano (ASCII) y MATLAB proporciona un editor con una agradable codicacin de colores que ayuda mucho en el proceso de creacin y depuracin de dichos archivos. Los M-archivos que requieren argumentos de entrada y entregan valores de salida, se llaman funciones. Los que no tienen ni argumentos de entrada ni valores de salida se llaman guiones ( script en ingls.) El M-archivo normas.m del ejemplo 2, que consideramos en la seccin 1.3, es un guin. Los M-archivos estn en directorios. Para que MATLAB los encuentre, se debe cumplir al menos una de las siguientes condiciones: i. El directorio en el que estn los archivos pertenece al search path de MATLAB. ii. El directorio en el que estn los archivos es el directorio actual de MATLAB. Para saber cal es su directorio actual, use el comando pwd. Para hacer que el directorio c:nmet sea su directorio actual, escriba la orden cd c:nmet. El search path se puede ver y actualizar por medio de la opcin Set

18 path, del men File.

2. Primeros pasos en MATLAB

Ejemplo 6 Este es un ejemplo de M-archivo de tipo guin. % exa1.m Herramienta didactica, Carlos E. Mejia 2002 xx=-1:.01:1; y=sin(pi*xx);z=sin(9*pi*xx); plot(xx,y,k--,xx,z,r); set(gca,XTick,-1:.25:1) grid on title ( Sen(pi*x) y sen(9pi*x) coinciden en esta malla ); print -deps2 .nfignexa1.epsSen(pi*x) y sen(9pi*x) coinciden en esta malla 1

0.8

0.6

0.4

0.2

0

-0.2

-0.4

-0.6

-0.8

-1 -1

-0.75

-0.5

-0.25

0

0.25

0.5

0.75

1

De este sencillo ejemplo, destacamos que las funciones matemticas elementales se pueden aplicar a vectores. La coincidencia de dos funciones distintas en los puntos de una malla, es un fenmeno que puede conducir a errores. En ingls se llama aliasing. Sobre todo lo que se quiera conocer mejor, la recomendacin es acudir a la ayuda en lnea. Ejemplo 7 El primer M-archivo de este ejemplo, es de tipo funcin y se ocupa de calcular, de forma ingenua, el n-simo trmino de la sucesin de Fibonacci. El segundo es de tipo guin y sirve para construir rboles binarios en los que las ramas se consiguen, parcialmente, de forma aleatoria. Utiliza la rutina rand.m que trae MATLAB.

2.2. Los M-archivos

19

function x=fib(n); % Herramienta didactica, Carlos E. Mejia 2002 % sucesion de Fibonacci, n : ; t > c: 4 Qu solucin de este PVI ser la que aproxima el mtodo de Euler? 3. Resuelva por el mtodo de Euler con h = 0:25; el siguiente PVI: y0 = 2ty; y (0) = 1; 0 t 1: 4. Convierta los PVIs siguientes, dados en trminos de ecuaciones escalares de grado 2, a PVIs con variable vectorial. a. y00 = sen (y) ; y (0) = =2; y0 (0) = 0: b. y00 y = t; y(0) = 1; y 0(0) = 1:

132

6. Ecuaciones diferenciales ordinarias

7 Ecuaciones diferenciales parcialesEcuaciones de tipo parablico Diferencias nitas con condiciones de borde de tipo Dirichlet Ecuaciones no lineales y otras condiciones de borde Consistencia, estabilidad y convergencia Dos dimensiones Mtodos ADI

7.1

Diferencias nitas para problemas parablicos

En esta seccin nos referimos brevemente a la solucin de ecuaciones diferenciales parciales por diferencias nitas. Para la exposicin, nos basamos en Smith (1978) [28] y Kincaid y Cheney (1994) [21] pero recomendamos consultar tambin referencias ms completas como Strikwerda (1989) [31] y el libro clsico Richtmyer y Morton (1967) [27]. El objetivo es motivar el estudio a partir de ejemplos sencillos de discretizaciones de diferencias nitas de problemas de tipo parablico. A partir de MATLAB 6, release 12, hay una rutina especial para resolver una amplia gama de ecuaciones unidimensionales de tipo parablico o elptico. Se trata de pdepe.m. Adems, desde hace varios aos, existe una caja de herramientas especializada en ecuaciones diferenciales parciales. Aqu no nos referimos a ninguna de estas alternativas que ofrece MATLAB. Quedan como temas llamativos para cuando estas notas crezcan en esta direccin.

134

7. Ecuaciones diferenciales parciales

7.2 Ecuaciones de tipo parablicoLa ecuacin diferencial parcial de tipo parablico ms sencilla es la ecuacin unidimensional @u @2 u = 2 ; a < x < b: (7.1) @t @x La variable espacial x se toma en un intervalo [a; b] y la variable temporal t se toma en el intervalo semi-innito [0; 1): Las condiciones de borde se denen para x = a y x = b y para todo t: La condicin inicial se dene para x 2 (a; b) y t = 0: La ecuacin (7.1) tiene validez en (a; b) (0; 1) : Esta ecuacin da cuenta de procesos difusivos lineales, por ejemplo, la conduccin de calor. Debido a sto, muy frecuentemente nos referimos a la variable dependiente como temperatura, aunque este modelo se puede utilizar en muchos otros procesos. Consideremos discretizaciones uniformes en espacio y tiempo dadas por xi = a + ih; i = 0; 1; ::: y tj = jk; j = 0; 1; ::: donde h y k son los tamaos de paso en las direcciones de espacio y tiempo respectivamente. Ambos son reales positivos. Es conveniente denir tambin k r = 2: h

7.3 Diferencias nitasEn todas las aproximaciones de diferencias nitas utilizamos la variable discreta Vij para representar la aproximacin de u en el punto de la malla (xi ; tj ) que se calcula por medio del mtodo numrico. Sea ba h = y supongamos que tenemos condiciones de borde de tipo n+1 Dirichlet para x = a = x 0 y x = b = xn+1 ; es decir, los elementos j V0j y Vn+1 son conocidos para todo j: Adems, denimos la variable discreta vectorial V j = V 1j ; V 2j ; :::; Vnj para representar el vector de aproximaciones en el nivel temporal j: Ntese que una condicin inicial signica que el vector V 0 es conocido. Posteriormente consideramos otras condiciones de borde.

7.3. Diferencias nitas

135

7.3.1

Mtodos ms comunes

Distinguimos varias expresiones de diferencias nitas que aproximan (7.1).Veamos algunas: 1. Mtodo explcito, es decir, la temperatura Vij +1 se escribe en trminos de temperaturas en niveles anteriores en la escala temporal.j j Vi+1 2Vij + Vi1 Vij+1 Vij = k h2

que conduce a j j Vij +1 = Vij + r Vi1 2Vij + Vi+1 : (7.2)

Sea A = trid (r; 1 2r; r) la matriz tridiagonal de orden n con elementos diagonales 1 2r y elementos super y sub diagonales iguales a r: La igualdad (7.2) se puede escribir V j +1 = AV j lo que indica que V j = Aj V 0 : (7.4) Los iterados consecutivos se consiguen por aplicacin de potencias de A a la condicin inicial. 2. Mtodo implcito, es decir, la temperatura Vij +1 se escribe en trminos de temperaturas en el mismo nivel y en niveles anteriores de la escala temporal,j+1 V j+1 2V ij+1 + V i1 Vij +1 Vij = i+1 ; k h2

(7.3)

que se puede escribirj+1 j +1 (1 + 2r) Vij+1 rVi1 rVi+1 = Vij :

(7.5)

Sea A = trid (r; 1 + 2r; r) la matriz tridiagonal de orden n con elementos diagonales 1 + 2r y elementos super y sub diagonales iguales a r: La igualdad (7.5) se puede escribir AV j +1 = V j : (7.6)

136

7. Ecuaciones diferenciales parciales

Es decir, en cada paso temporal, se debe resolver un sistema de ecuaciones lineales con matriz simtrica, tridiagonal y diagonalmente dominante (por tanto no singular). 3. Mtodos mixtos dependientes de un parmetro 2 [0; 1] :j+1 j V j+1 2Vij+1 + Vi1 V j 2V ij + V i1 Vij +1 Vij = i+1 + (1 ) i+1 : k h2 h2

Los dos mtodos anteriores son casos particulares de ste, basta hacer = 0 y 1 respectivamente. El ms importante de los mtodos mixtos 1 es el que corresponde a = que se llama de Crank-Nicolson. Est 2 dado por la igualdad Vij+1 Vij 1 j+1 j+1 j j = 2 Vi+1 2Vij+1 + V i1 + V i+1 2V ij + V i1 k 2h

que tambin podemos escribir

j +1 j +1 j j rVi1 + 2 (1 + r) V ij+1 rVi+1 = rV i1 + 2 (1 r) Vij + rV i+1 : (7.7)

Sean A = trid (r; 2 (1 + r) r) y B = trid (r; 2 (1 r) ; r) matrices de orden n: La ecuacin (7.7) se escribe como el sistema AV j +1 = BV j ; con V j +1 como incgnita. Este es el sistema que debe resolverse para cada iteracin temporal. @u @ 2 u = 2 en [0; 2] ; con condiciones homogneas @t @x x en los bordes y con condicin inicial dada por u0 (x) = sen : 2 2 x t La solucin exacta es u (x; t) = exp sen : Preparamos 4 2 un M-archivo para resolver el problema con diferentes valores para r y n: La calidad o falta de calidad de los resultados, sugieren que r debe cumplir algn requisito para obtener resultados tiles. Esto lo conrmamos ms adelante en la subseccin 7.8. Ejemplo 36 Resolver

7.3. Diferencias nitas

137

n 10 10 20 20 30 30 40 40 50 50 60 60

r 0.5 0.8 0.5 0.8 0.5 0.8 0.5 0.8 0.5 0.8 0.5 0.8

Mtodos explcito e Error (explcito) 4.1813e-002 2.1062e-002 1.1529e-002 5.6956e-003 5.2961e-003 8.7532e-003 3.0288e-003 3.6016e+001 1.9578e-003 2.6821e+011 1.3687e-003 4.7197e+022

implcito Error (Implcito) 3.0735e-002 4.4402e-003 8.6889e-003 1.2394e-003 4.0122e-003 6.6802e-003 2.2990e-003 1.4966e-003 1.4874e-003 1.7249e-003 1.0403e-003 1.2066e-003

Estos resultados indican que el mtodo implcito tiende a ofrecer mejores resultados y que el mtodo explcito ofrece algunos totalmente inaceptables. Estos ltimos se obtienen siempre para r = 0:8 pero no para n < 40: Posteriormente le daremos total sentido a esta tabla. Advertimos que los malos resultados estn asociados con falta de estabilidad y que en trminos coloquiales, estabilidad signica que los resultados no estallan. La razn por la que los resultados malos empeoran a medida que crece n; es porque hay que hacer ms clculos y por tanto hay ms ocasin de propagar y agrandar los errores.

7.3.2

Ejercicios

1. Consideremos el problema @u @ 2 u = 2 @t @x para x 2 [0; 1] con condicin inicial, condiciones de borde y solucin exacta dadas por u (t; x) = [sen (x)] exp 2t :

138

7. Ecuaciones diferenciales parciales

Utilice los tres mtodos propuestos en la subseccin 7.3.1 y obtenga la solucin para t = 0:1: Trabaje con varios valores de h y k de manera que r tome los valores 0:1n; con n = 1; 2; :::; 8: 2. Se trata de resolver el problema @u @ 2 u = 2 @t @x para x 2 [1; 1] con solucin exacta y condiciones de borde dadas por1 X 1 cos (2n + 1) x u(t; x) = + 2 exp 2 (2n + 1)2 t (1)n 2 (2n + 1) n=0

y con condicin inicial

1 Encuentre la solucin para t = utilizando los tres mtodos pro2 puestos en la subseccin 7.3.1: Utilice varios valores de h y k de manera que r tome los valores 0:1n; con n = 1; 2; :::; 8:

8 > 1 si jxj < > > > < 1 u0 (x) = si jxj = > 2 > > > : 0 si jxj >

1 2 1 2 1 : 2

7.4 Ecuaciones no linealesTal como vimos al principio de estas notas, el mtodo de Newton es un recurso importante cuando se trata de afrontar un problema no lineal. Veamos un ejemplo sencillo que aparece como Ejemplo 2.7 en [28]. La temperatura u satisface la ecuacin no lineal @u @ 2u 2 = ; 0 < x < 1; @t @x2 con condicin inicial u (x) = 4x (1 x) ; 0 < x < 1; t = 0 y las condiciones de borde u = 0 para x = 0 y x = 1, t 0: Para estudiar el mtodo de Newton aplicado a este problema, consideremos el siguiente M-archivo que se encarga de implementarlo:

7.4. Ecuaciones no lineales

139

function vnew=smith27ci(tfin,n); % Herramienta didactica, Carlos E. Mejia, 2002 % ecuacion parabolica no lineal en 1-D % ejemplo 2-7 de Smith % metodo de Newton para hallar ceros de F(x)=0 % tfin: tiempo final % n: numero de subintervalos en [0,1], n>2 % h: tamao de paso en espacio % k: tamao de paso en tiempo h=1/n; k=.5*h^2; % k puede definirse en otras formas si se desea p=h^2/k; % x: dominio espacial, xa: dominio espacial ampliado x=(h:h:1-h);xa=[0;x;1]; % vold: condicion inicial vold=4.*x.*(1-x); vnew=vold; t=0; while t1.e-8 & it : All tambin se puede obtener la mejor documentacin disponible sobre LAPACK, incluyendo la Gua mencionada arriba. Las subrutinas de LAPACK se basan en llamadas a unas subrutinas ms sencillas que se conocen por la sigla BLAS (Basic Linear Algebra Subprograms). Hasta el momento se dispone de subprogramas BLAS de tres niveles: Nivel 1, publicado en 1979, que se encarga de operaciones de vector con vector. Nivel 2, publicado en 1988, que se ocupa de operaciones de matriz con vector. Nivel 3, publicado en 1990, que se dedica a operaciones entre matrices. La construccin de LAPACK con base en los subprogramas BLAS genera un alto nivel de estandarizacin, proporciona gran rapidez de clculo y hace ms fcil hacer un seguimiento cuando se presentan dicultades. La utilizacin de LAPACK es universal, no solo directa-

8.3. Templates y otras colecciones

159

mente, sino tambin como motor de clculo en software con interfase grca como OCTAVE, , desarrollado en la Universidad de Wisconsin. LAPACK incluye rutinas para resolver sistemas de ecuaciones lineales, sistemas de ecuaciones lineales por mnimos cuadrados, problemas de valores propios y problemas de valores singulares.

8.3

Templates y otras colecciones

Los autores de Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods [5], algunos de los cuales participan tambin del proyecto LAPACK, se orientan hacia la descripcin de algoritmos y ofrecen programas fuente en diversos formatos, entre ellos FORTRAN, C y lenguaje MATLAB. Ellos consideran su coleccin de rutinas como de las hechas a la medida, pues proporcionan los medios para que el usuario adapte las rutinas a sus necesidades. La preocupacin de los autores es explicar los detalles, en ocasiones nada triviales, de los mtodos iterativos ms importantes en aos recientes. Aunque incluyen mtodos estacionarios, ellos estn ah solo por completez. Los temas principales del libro y por tanto los objetivos de los principales templates, son los mtodos iterativos no estacionarios basados en subespacios de Krylov y diversas tcnicas de precondicionamiento. Tanto el libro como las rutinas en los diferentes formatos, se pueden obtener en NETLIB, en la direccin < http : =www:netlib:org=templates= > : Mencionamos nalmente otras colecciones importantes que no estn en el dominio pblico. La coleccin IMSL, ofrecida por Visual Numerics, con direccin internet < http : ==www:vni:com=products=imsl= > : Las colecciones ofrecidas por NAG, Numerical Algorithms Group, con direccin internet < http : ==www:nag:co:uk= > :

160 Numerical Recipes, con direccin internet < http : ==www:nr:com= >;

8. Material de inters

las cuales estn respaldadas por un grupo de libros muy bien escritos en los que se explican en detalle los algoritmos. Los libros se pueden conseguir en Internet libres de costo o se pueden comprar, junto con el software, a precio moderado.

8.4 MATLAB y otrosLos paquetes de software que integran una gil interfase con algoritmos de calidad para una gran cantidad de problemas matemticos, aparecieron hacia nes de los ochentas y mantienen su ascenso desde entonces. Para muchas tareas, estos paquetes son hoy la alternativa ms econmica en materia de tiempo pero no siempre en asuntos de dinero. Lo ms importante que ofrecen es la capacidad de manipulacin simblica, la cual promete seguir siendo por un tiempo largo, esencial en la computacin cientca. Entre estos paquetes, mencionamos a MATLAB, MATHEMATICA, MAPLE y MUPAD entre los de carcter comercial, con direcciones internet < http : ==www:mathworks:com= >; < http : ==www:wolf ram:com= >; < http : ==www:maplesoft:com=flash=index:html > y < http : ==www:mupad:de= > respectivamente. Entre los paquetes de dominio pblico que por cierto, utilizan a LAPACK como base para sus rutinas de clculo, estn SCILAB y OCTAVE, con direcciones internet < http : ==www rocq:inria:f r=scilab= > y < http : ==www:octave:org > :

Referencias[1] M. Abramowitz and I. A. Stegun, eds., Handbook of Mathematical Functions, Dover, 1970. [2] E. Anderson, Z. Bai, C. Bischof, J. Demmel, J. Dongarra, J. DuCroz, A. Greenbaum, S. Hammarling, A. McKenney, S. Ostrouchov, and D. Sorensen, LAPACK Users Guide, SIAM, 1992. [3] U. M. Ascher, R. M. M. Mattheij, and R. D. Russell, Numerical Solution of Boundary Value Problems for Ordinary Differential Equations, SIAM, 1995. [4] K. E. Atkinson, An Introduction to Numerical Analysis, Wiley, 1978. [5] R. Barrett, M. Berry, T. Chan, J. Demmel, J. Donato, J. Dongarra, V. Eijkhoui, R. Pozo, C. Romine, and H. van der Vorst, Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, SIAM, 1993. [6] R. L. Burden and J. D. Faires, Anlisis Numrico, International Thomson, sexta ed., 1998. [7] S. C. Chapra and R. P. Canale, Mtodos Numricos para Ingenieros, McGraw Hill, tercera ed., 1999. [8] W. Cheney and D. Kincaid, Numerical Mathematics and Computing, Brooks/Cole Publishing Co., 1980. [9] P. J. Davis and P. Rabinowitz, Methods of Numerical Integration, Academic Press, segunda ed., 1984. [10] J. W. Demmel, Applied Numerical Linear Algebra, SIAM, 1997.

162

Referencias

[11] C. W. Gear, Numerical Initial Value Problems in Ordinary Differential Equations, Prentice-Hall, 1971. [12] G. Golub and J. M. Ortega, Scientic Computing, An Introduction with Parallel Computing, Academic Press, 1993. [13] J. Hale and H. Kocak, Dynamics and Bifurcations, SpringerVerlag, 1991. [14] P. Henrici, Discrete Variable Methods in Ordinary Dierential Equations, John Wiley, 1962. [15] , Elements of Numerical Analysis, Wiley, 1964.

[16] D. J. Higham and N. J. Higham, MATLAB Guide, SIAM, 2000. [17] E. Isaacson and H. B. Keller, Analysis of Numerical Methods, Dover, 1994. [18] M. L. James, G. M. Smith, and J. C. Wolford, Applied Numerical Methods for Digital Computation, Harper and Row, tercera ed., 1985. [19] L. W. Johnson and R. D. Riess, Numerical Analysis, AddisonWesley, segunda ed., 1982. [20] H. B. Keller, Numerical Solution of Two Point Boundary Value Problems, SIAM, 1990. [21] D. Kincaid and W. Cheney, Anlisis Numrico, AddisonWesley Iberoamericana, 1994. [22] B. Lpez, Solucin numrica de problemas con valores en la frontera en dos puntos, Trabajo de grado, carrera de Matemticas, Universidad Nacional de Colombia, Medelln, 2000. [23] J. H. Mathews and K. D. Fink, Mtodos Numricos con MATLAB, Prentice Hall, tercera ed., 2000.

Referencias

163

[24] C. E. Meja, T. Restrepo, and C. Trefftz, Lapack una coleccin de rutinas para resolver problemas de algebra lineal numrica, Revista Universidad EAFIT, 123 (2001), pp. 7380. [25] B. Noble and J. W. Daniel, Algebra Lineal Aplicada, Prentice Hall, tercera ed., 1989. [26] J. M. Ortega, Numerical Analysis, a second course, SIAM, 1990. [27] R. D. Richtmyer and K. W. Morton, Dierence Methods for Initial-Value Problems, Interscience Publishers, segunda ed., 1967. [28] G. D. Smith, Numerical Solution of Partial Dierential Equations: Finite Dierence Methods, Oxford University Press, segunda ed., 1978. [29] G. W. Stewart, Afternotes on Numerical Analysis, SIAM, 1996. [30] J. Stoer and R. Bulirsch, Introduction to Numerical Analysis, Springer Verlag, segunda ed., 1992. [31] J. C. Strikwerda, Finite Dierence Schemes and Partial Differential Equations, Wadsworth y Brooks/Cole, 1989. [32] L. N. Trefethen, Finite Dierence and Spectral Methods for Ordinary and Partial Dierential Equations, disponible en http://web.comlab.ox.ac.uk/oucl/work/nick.trefethen/pdetext.html, 1996. [33] , Spectral Methods in MATLAB, SIAM, 2000.

[34] L. N. Trefethen and D. Bau, Numerical Linear Algebra, SIAM, 1997. [35] H. van der Vorst, ed., Copper Mountain Conference Proceedings, SIAM, 2001. Publicadas como Vol. 23, No. 2 de SIAM Journal of Scientic Computing.