Está en la página 1de 344

Departamento de Sistemas Informticos y

Computacin
Universidad Politcnica de Valencia

Tesis Doctoral

Computacin de Altas Prestaciones para el Clculo


de Funciones de Matrices y su Aplicacin a la
Resolucin de Ecuaciones Diferenciales
presentado por:
J. Javier Ibez Gonzlez
Director:
Dr. D. Vicente Hernndez Garca
Valencia, 2006

Resumen
La presente memoria se enmarca dentro de la lnea de investigacin de Computacin de
Altas Prestaciones para el Clculo de Funciones de Matrices y su Aplicacin a la
Resolucin de Ecuaciones Diferenciales. Este campo de investigacin est teniendo un
gran auge en los ltimos aos, ya que proporciona soluciones a cuestiones muy diversas
como son la simulacin de fenmenos fsicos o la resolucin de problemas de control.
La tesis se centra, fundamentalmente, en el desarrollo de mtodos y la implementacin
de algoritmos que calculan Funciones de Matrices, y su aplicacin a la resolucin de
Ecuaciones Diferenciales Ordinarias (EDOs) y Ecuaciones Diferenciales Matriciales de
Riccati (EDMRs).
El punto de partida del trabajo desarrollado ha sido el estudio del estado del arte de cada
una de esas reas, proponindose nuevos mtodos y algoritmos que, de algn modo,
mejoran los ya existentes.
Tambin se han explorado diversos campos de aplicacin de este tipo de
aproximaciones. Uno de ellos, la propagacin de rayos luminosos en fibras de cristal
fotnico y la posibilidad de controlar su comportamiento usando medios peridicos, est
siendo una de las perspectivas ms prometedoras en la bsqueda de alternativas a la
tecnologa de los semiconductores. En este sentido, la Computacin de Altas
Prestaciones permite, mediante la simulacin, conocer el comportamiento de la luz en
esos medios, dando soporte experimental a las cuestiones tericas que en la actualidad
se estn investigando.
Para obtener un software de calidad, se ha utilizado un paradigma de ciclo de vida de
tipo semiautomtico. Adems, se han realizado numerosas pruebas que han permitido
determinar, por un parte, los parmetros ptimos de los algoritmos implementados y,
por otra, analizar la precisin y eficiencia del cdigo implementado.

Resum
La present memria semmarca dins la lnia dinvestigaci de Computaci dAltes
Prestacions per al Clcul de Funcions de Matrius i la seua Aplicaci a la Resoluci
dEquacions Diferencials. Este camp dinvestigaci est tenint una gran expansi en els
ltims anys, ja que proporciona solucions a qestions molt diverses com sn la
simulaci de fenmens fsics o la resoluci de problemes de control.
La tesi se centra, fonamentalment, en el desenvolupament de mtodes i la
implementaci de algoritmes que calculen Funcions de Matrius, i la seua aplicaci a la
resoluci dEquacions Diferencials Ordinries (EDOs) i Equacions Diferencials
Matricials de Riccati (EDMRs).
El punt de partida del treball realitzat ha sigut lestudi de lestat de lart de cada una
deixes rees, proposant-se nous mtodes i algoritmes que, dalguna manera, milloren
els ja existents.
Tamb shan explorat diversos camps daplicaci desta tipus daproximacions. Un
dells, la propagaci de rajos lluminosos en fibres de cristall fotnic i la possibilitat de
controlar el seu comportament usant medis peridics, est sent una de les perspectives
ms prometedores en la busca dalternatives a la tecnologia dels semiconductors. En
este sentit, la Computaci dAltes Prestacions permet, per mitj de la simulaci,
conixer el comportament de la llum en eixos medis, donant suport experimental a les
qestions teriques que en lactualitat sestan investigant.
Per a obtindre un software de qualitat, sha utilitzat un paradigma de cicle de vida de
tipus semiautomtic. A ms, shan realitzat nombroses proves que han perms
determinar, per una part, els parmetres ptims dels algoritmes implementats i, duna
altra, analitzar la precisi i eficincia del codi implementat.

Abstract
The present memory is framed in the research field of High-Performance Computing of
Matrix Functions and its Application to the Solution of Differential Equations. This
research field is having an important growth in the last years, since it provides solutions
to very diverse questions, such the simulation of physical phenomena or the treatment of
control problems.
The thesis is focused, fundamentally, on the development of methods and the
implementation of algorithms that compute Matrix Functions, and its application to the
solution of Ordinary Differential Equations (ODEs) and Differential Matrix Riccati
Equations (DMREs).
The starting point of the developed work has been the study of the state-of-the-art of
each one of those areas, setting out new methods and algorithms that, in some way,
improve the existing ones.
Diverse fields of application of this type of approaches have also been explored. One of
them, the propagation of light beams in photonic crystal fibers and the possibility of
controlling their behaviour using periodic means, is one of the most promising
perspectives in the search of alternatives to the semiconductors technology. In this
sense, the High-Performance Computing allows, by means of the simulation, to know
the behaviour of the light in those means, giving experimental support to the theoretical
questions that at the present time are the subject of research.
In order to obtain quality software, a semiautomatic life cycle has been used. In
addition, numerous tests have been carried out, which have allowed, on the one hand, to
the determine optimal values for the parameters of the implemented algorithms and, on
the other hand, to analyze the precision and efficiency of the implemented code.

Agradecimientos
Al llegar al final de un largo viaje, uno contempla todo el camino recorrido, y recuerda
cada una de las etapas por las que ha ido pasando; en especial, suele recordar como
comenz y como ha llegado a esa meta final. Todo ese trayecto ha trascurrido por
numerosas dificultades, pero gracias a la familia, amigos y compaeros de trabajo, ha
llegado a buen trmino. Por todo ello quiero expresar mi ms profundo agradecimiento
a todos aquellos, que de alguna manera, han contribuido a este feliz desenlace.
En primer lugar quiero agradecer especialmente toda la ayuda y apoyo que he recibido
durante todo este tiempo a mi director de tesis Dr. Vicente Hernndez Garca. De l
quiero destacar su profundo conocimiento de las materias desarrolladas en la tesis, su
rigurosidad cientfica, su clara visin de los aspectos que pudieran ser novedosos y
sobre todo por la paciencia y confianza que siempre ha depositado en m.
Agradezco tambin a mis compaeros de viaje Enrique Arias y Jess Peinado, por sus
constantes apoyos y compartir con ellos tareas de investigacin; a mi compaero de
despacho Juan Garayoa, por todo lo compartido en los muchos aos que nos conocemos
y por la ayuda que siempre he tenido de l; a Pedro Lpez, por su constante apoyo y
sabios consejos; a Pedro Ruiz, por el camino que hemos iniciado y el que nos queda por
recorrer; a mis compaeros de la asignatura de CNU Victor Garca e Ignacio Blanquer,
por toda la ayuda que en numerosas ocasiones me han brindado. Tampoco quiero
olvidar a mis compaeros del grupo de investigacin Antonio Vidal, Vicente Vidal, Jos
E. Romn, David Guerrero, Jos Miguel Alonso, Fernando Alvarruiz, Gabriel Garca,
Germn Vidal, etc., por todos los consejos y ayudas que en muchas ocasiones he
recibido de ellos. En general, quiero agradecer a todos los compaeros del
Departamento de Sistemas Informticos y Computacin de la Universidad Politcnica
de Valencia por la ayuda que en algn momento me hayan podido dar.
Quiero agradecer tambin toda la ayuda y colaboracin de Albert Ferrando, Pedro
Fernndez de Crdoba y Mario Zacars, que me ha permitido conocer un rea de
investigacin tan importante como la Fotnica en la que aplicar los algoritmos de
clculo de Funciones de Matrices desarrollados en esta Tesis .
Muchas gracias, como no poda ser menos, a mis amigos Dolores, Javier, Neri, Amalia,
Miguel, Rosa, Pablo, Jos, Laura, Vicente, Juan, Manoli, Abelardo, Gloria, etc., por
esos momentos que hemos compartido juntos y que espero sigamos disfrutando.
Muchas gracias a mis padres Jacinto y Gloria por darme la vida, y todo el cario y
afecto que, de manera desinteresada, siempre me han mostrado. Gracias tambin a mi
hermana Gloria, por todas las cosas compartidas y por el mutuo afecto que nos tenemos.
Agradezco tambin la comprensin y nimo que siempre me ha dado mi familia ms
cercana Pepe, Emilia, Pepe, Eli, Miguel, Cristina, Carlos, Lourdes, Carol, Toni, Andrs,
Ani, Maria Jess, Guillermo, Miguel ngel, Maria Jos, Marivi, Silvia, Bernab, etc., y
mis sobrinos Isabel, Carlos, Patricia, Victor, Adrin, Javier, Maria Jess, Guillermo.
Por ltimo, gracias a Mari, amiga, esposa y compaera por todo el cario compartido
desde nuestra adolescencia, y por todo el apoyo, paciencia y comprensin que siempre
ha tenido conmigo, y a mis hijos Jorge y lvaro, por el cario que siempre recibo de
ellos.

NDICE GENERAL
Captulo 1

Introduccin......................................................................... 1

1.1

Resumen de Contenidos.................................................................................... 1

1.2

Objetivos y Aportaciones de la Tesis................................................................ 1

1.3

Metodologa...................................................................................................... 4

1.4

Estructura de la Tesis....................................................................................... 7

Captulo 2

Estado del Arte .................................................................. 11

2.1

Resumen de Contenidos.................................................................................. 11

2.2

Funciones de Matrices ................................................................................... 11

2.2.1
Definiciones y Propiedades ................................................................................................11
2.2.2
Funciones de Matrices ms Usuales ...................................................................................14
2.2.2.1
Funcin Exponencial.................................................................................................14
2.2.2.2
Funcin Signo ...........................................................................................................15
2.2.2.3
Funcin Raz Cuadrada .............................................................................................16
2.2.2.4
Funcin Raz p-sima................................................................................................19
2.2.2.5
Funcin Logaritmo....................................................................................................21
2.2.2.6
Funciones Seno y Coseno .........................................................................................22
2.2.3
Mtodos Numricos para el Clculo de Funciones de Matrices .........................................23
2.2.3.1
Funcin Exponencial.................................................................................................23
2.2.3.1.1 Mtodos Basados en las Series de Taylor ............................................................23
2.2.3.1.2 Mtodos Basados en los Aproximantes de Pad ..................................................23
2.2.3.1.3 Mtodos Basados en Integracin Numrica .........................................................27
2.2.3.1.4 Mtodos Polinomiales ..........................................................................................29
2.2.3.1.5 Mtodos Basados en la Descomposicin de Matrices ..........................................32
2.2.3.1.6 Mtodos Basados en los Subespacios de Krylov..................................................36
2.2.3.2
Funcin Signo ...........................................................................................................37
2.2.3.3
Funcin Raz Cuadrada .............................................................................................39
2.2.3.4
Funcin Raz p-sima de una Matriz.........................................................................41
2.2.3.5
Funcin Logaritmo....................................................................................................43
2.2.3.6
Funcin Coseno.........................................................................................................45
2.2.3.7
Caso General.............................................................................................................46
2.2.4
Software de Funciones de Matrices ....................................................................................47
2.2.4.1
Expokit......................................................................................................................47
2.2.4.2
Proyecto Parallel Computation of Matrix Functions .............................................47
2.2.4.3
Proyecto Numerical Analysis of Matrix Functions ...............................................48

2.3

Ecuaciones Diferenciales Ordinarias (EDOs) ............................................... 48

2.3.1
Definiciones y Propiedades ................................................................................................48
2.3.2
Mtodos Numricos para la Resolucin de EDOs..............................................................49
2.3.3
Mtodos de un solo Paso ....................................................................................................49
2.3.3.1
Mtodos Basados en las Series de Taylor .................................................................49
2.3.3.2
Mtodos de Runge-Kutta ..........................................................................................50
2.3.3.3
Mtodos Multipaso Lineales .....................................................................................52
2.3.3.3.1 Mtodos de Adams...............................................................................................52
2.3.3.3.2 Mtodos BDF .......................................................................................................54
2.3.4
Linealizacin a Trozos de EDOs ........................................................................................55
2.3.5
Software para la Resolucin de EDOs................................................................................56

2.4

Ecuaciones Diferenciales Matriciales de Riccati (EDMRs) .......................... 58

2.4.1
Definiciones y Propiedades ................................................................................................58
2.4.2
Mtodos de Resolucin de EDMRs....................................................................................60
2.4.2.1
Integracin Directa....................................................................................................60
2.4.2.2
Mtodos de Linealizacin .........................................................................................60

VII

2.4.2.2.1 Mtodo de Davison-Maki.....................................................................................61


2.4.2.2.2 Procedimiento Iterativo Matricial ASP (Automatic Synthesis Program) .............62
2.4.2.3
Mtodo BDF .............................................................................................................62
2.4.3
Mtodos de Resolucin de EDMRs Simtricas ..................................................................64
2.4.3.1
Mtodos de Linealizacin .........................................................................................64
2.4.3.1.1 Mtodo de la Exponencial no Negativa................................................................64
2.4.3.1.2 Mtodo de Schur ..................................................................................................65
2.4.3.2
Mtodo de Chandrasekhar.........................................................................................66
2.4.3.3
Algoritmo de Particionado Numrico (APN)............................................................68
2.4.3.4
Mtodo Basado en la Ecuacin Algebraica de Riccati (EAR) ..................................70
2.4.3.5
Mtodo de Leipnik ....................................................................................................71
2.4.3.6
Mtodo de la Raz Cuadrada .....................................................................................72
2.4.3.7
Mtodo de Rusnak ....................................................................................................73
2.4.3.8
Mtodos Conservativos y Mtodos Simplcticos .....................................................74
2.4.3.9
Mtodos BDF para EDMRs de gran Escala..............................................................76
2.4.4
Aplicaciones .......................................................................................................................78
2.4.4.1
Problemas del Control ptimo..................................................................................78
2.4.4.2
Problemas de Filtrado y Estimacin..........................................................................79
2.4.4.3
Sistemas de Parmetros Distribuidos ........................................................................80
2.4.4.4
Reduccin de Orden y Desacoplamiento ..................................................................81
2.4.4.5
Resolucin de Problemas de Contorno .....................................................................82
2.4.5
Software para la Resolucin de EDMRs ............................................................................83

2.5

Conclusiones................................................................................................... 84

Captulo 3

Clculo de Funciones de Matrices ................................... 87

3.1

Resumen de Contenidos.................................................................................. 87

3.2

Algoritmos Basados en los Aproximantes Diagonales de Pad..................... 90

3.2.1
Esquema General................................................................................................................90
3.2.2
Determinacin de los Polinomios de la Aproximacin Diagonal de Pad .........................92
3.2.3
Funciones Polinmicas y Racionales..................................................................................94
3.2.4
Clculo de Funciones de Matrices ......................................................................................96
3.2.4.1
Funcin Exponencial.................................................................................................97
3.2.4.2
Funcin Potencia Fraccionaria ..................................................................................99
3.2.4.3
Funcin Logaritmo..................................................................................................102
3.2.4.4
Funcin Coseno.......................................................................................................104
3.2.4.5
Funcin Seno ..........................................................................................................106

3.3

Algoritmos Basados Descomposicin Real de Schur de una matriz ............ 108

3.3.1
Esquema General..............................................................................................................108
3.3.2
Algoritmo Basado en la Reduccin a una Forma Diagonal por Bloques..........................109
3.3.3
Algoritmos Basados en la Resolucin de la Ecuacin Conmutante .................................112
3.3.3.1
Algoritmos Orientados a Columnas y a Diagonales................................................113
3.3.3.1.1 Algoritmo Orientado a Columnas ......................................................................117
3.3.3.1.2 Algoritmo Orientado a Diagonales.....................................................................118
3.3.3.2
Algoritmos Orientados a Bloques ...........................................................................119
3.3.3.3
Algoritmo con Agrupacin de Valores Propios Cercanos ......................................121
3.3.4
Algoritmo Basado en los Aproximantes Diagonales de Pad...........................................124

3.4

Conclusiones................................................................................................. 125

Captulo 4

Linealizacin a Trozos .................................................... 129

4.1

Resumen de Contenidos................................................................................ 129

4.2

Mtodos de Linealizacin a Trozos para EDOs........................................... 131

4.2.1
EDOs no Autnomas ........................................................................................................131
4.2.1.1
Mtodo Basado en los Aproximantes Diagonales de Pad .....................................135
4.2.1.2
Mtodo Basado en la Ecuacin Conmutante...........................................................142

VIII

4.2.1.3
Mtodo Basado en los Subespacios de Krylov .......................................................145
4.2.2
EDOs Autnomas .............................................................................................................149
4.2.2.1
Mtodo Basado en los Aproximantes Diagonales de Pad .....................................151
4.2.2.2
Mtodo Basado en la Ecuacin Conmutante...........................................................153
4.2.2.3
Mtodo Basado en los Subespacios de Krylov .......................................................155

4.3

Mtodos de Linealizacin a Trozos de EDMRs ........................................... 158

4.3.1
Resolucin de EDMRs con Coeficientes Variables..........................................................158
4.3.1.1
Mtodo Basado en los Aproximantes Diagonales de Pad .....................................160
4.3.1.2
Mtodo Basado en la Ecuacin Conmutante...........................................................167
4.3.1.3
Mtodo Basado en los Subespacios de Krylov .......................................................172
4.3.2
Resolucin de EDMRs con Coeficientes Constantes .......................................................175
4.3.2.1
Mtodo Basado en los Aproximantes Diagonales de Pad .....................................177
4.3.2.2
Mtodo Basado en la Ecuacin Conmutante...........................................................181
4.3.2.3
Mtodo Basado en los Subespacios de Krylov .......................................................184

4.4

Conclusiones................................................................................................. 186

Captulo 5

Resultados Experimentales ............................................ 189

5.1

Resumen de Contenidos................................................................................ 189

5.2

Clculo de Funciones de Matrices ............................................................... 190

5.2.1
Funciones Polinmicas y Racionales................................................................................190
5.2.1.1
Resultados Funciones Polinmicas .........................................................................191
5.2.1.2
Resultados Funciones Racionales ...........................................................................194
5.2.2
Rutinas Basadas en los Aproximantes Diagonales de Pad..............................................200
5.2.3
Rutinas Basadas en la Descomposicin real de Schur de una matriz ...............................210

5.3
5.3.1
5.3.2
5.3.3
5.3.4

5.4
5.4.1
5.4.2

5.5
5.5.1
5.5.2

5.6

Propagacin de Ondas Monocromticas en Fibras de Cristal Fotnico .... 214


Algoritmo Basado en la Diagonalizacin de una Matriz ..................................................216
Algoritmo Basado en los Aproximantes Diagonales de Pad...........................................217
Algoritmo Basado en la Iteracin DB y en los Aproximantes Diagonales de Pad .........218
Resultados.........................................................................................................................218

Resolucin de EDOs..................................................................................... 220


EDOs Autnomas .............................................................................................................222
EDOs no autnomas .........................................................................................................237

Resolucin de EDMRs .................................................................................. 246


EDMRs con Coeficientes Constantes ...............................................................................249
EDMRs con Coeficientes Variables .................................................................................266

Conclusiones................................................................................................. 280

Captulo 6

Conclusiones y Lneas Futuras de Investigacin ......... 285

6.1

Resumen de Contenidos................................................................................ 285

6.2

Conclusiones Finales.................................................................................... 285

6.2.1
6.2.2
6.2.3
6.2.4

Funciones de Matrices ......................................................................................................285


Aplicacin de las Funciones de Matrices .........................................................................286
Resolucin de EDOs.........................................................................................................287
Resolucin de EDMRs .....................................................................................................288

6.3

Publicaciones en el Marco de la Tesis ......................................................... 290

6.4

Lneas Futuras de Investigacin .................................................................. 292

Apndice A.

Conceptos Bsicos y Notaciones ................................. 295

Apndice B.

MATLAB...................................................................... 307
IX

Resolucin de EDOs .......................................................................................................................307


Funciones de Matrices ....................................................................................................................308

Apndice C.

BLAS y LAPACK........................................................ 311

BLAS 312
Convenciones en el BLAS .........................................................................................................312
Estructura del BLAS ..................................................................................................................313
LAPACK ........................................................................................................................................315
Estructura del LAPACK ............................................................................................................315
Tratamiento de Errores en el LAPACK .....................................................................................316
Equilibrado y Condicionamiento en LAPACK..........................................................................319
Proyector Espectral y Separacin de Matrices ...........................................................................320
Otras Caractersticas del LAPACK............................................................................................322
Argumentos Matriciales ........................................................................................................322
Matrices de Trabajo...............................................................................................................322
Argumento Info .....................................................................................................................322
Determinacin del Tamao de Bloque ptimo .....................................................................322
Prestaciones del LAPACK.........................................................................................................323

Apndice D.

SGI Altix 3700 .............................................................. 325

Arquitectura ....................................................................................................................................325
Software..........................................................................................................................................325
Compiladores .............................................................................................................................326
Libreras .....................................................................................................................................326

Bibliografa .............................................................................................. 327

Captulo 1: Introduccin

Captulo 1 Introduccin

1.1 Resumen de Contenidos


Esta memoria se enmarca dentro de la lnea de investigacin de Computacin de Altas
Prestaciones para el Clculo de Funciones de Matrices y su aplicacin a la resolucin de
problemas que aparecen en ingeniera y en otras reas de aplicacin. Entre los
problemas tratados en esta tesis se encuentran la Resolucin de Ecuaciones
Diferenciales Ordinarias (EDO), la Resolucin de Ecuaciones Diferenciales Matriciales
de Riccati (EDMRs) y la Simulacin de la Propagacin de Ondas en Fibras de Cristal
Fotnico. Para ello, se han diseado nuevos mtodos y algoritmos, escritos en
MATLAB y FORTRAN, que resuelven los problemas citados. La implementacin de
dichos algoritmos se ha realizado de manera eficiente y portable, desde un punto de
vista computacional, al haber utilizado libreras optimizadas de BLAS (Basic Linear
Algebra Subroutines) y LAPACK (Linear Algebra PACKage), hoy por hoy, los
estndares ms ampliamente utilizados en el desarrollo de software numrico de Altas
Prestaciones.
Este captulo est estructurado en cuatro secciones. En la segunda seccin se enumeran
los objetivos que han servido de gua en el desarrollo de la tesis, describiendo adems
las aportaciones ms relevantes de la misma.
La tercera seccin describe la metodologa utilizada en el desarrollo del software. Para
obtener un software de calidad es necesario utilizar metodologas procedentes de la
Ingeniera del Software. Para ello se han aplicado mtodos y tcnicas que proceden de
dicha disciplina, adaptndolos convenientemente para el desarrollo de Software de
Computacin Numrica de Altas Prestaciones.
La ltima seccin est dedicada a detallar el contenido de cada uno de los captulos que
conforman esta tesis, describiendo brevemente el contenido de los mismos.

1.2 Objetivos y Aportaciones de la Tesis


Los objetivos generales que se han pretendido alcanzar al desarrollar esta tesis han sido:
Estudiar las propiedades numricas de las Funciones de Matrices ms usuales y
as desarrollar nuevos algoritmos para su clculo.
Resolver EDOs y EDMRs mediante tcnicas que involucran Funciones de
Matrices, desarrollando nuevos mtodos y algoritmos.
Anlisis y resolucin de problemas reales en los que es necesario el clculo de
Funciones de Matrices.
Desarrollar un software de computacin numrica de calidad, es decir, eficiente,
de altas prestaciones, portable, robusto y correcto, para la resolucin de los
problemas citados.
Todos estos objetivos se han alcanzado, como a continuacin se detalla.

Captulo 1: Introduccin

La necesidad de calcular Funciones de Matrices aparece en una gran variedad de


aplicaciones, constituyendo una herramienta bsica en el diseo de sistemas de control,
problemas de conveccin difusin, estudio de fluidos, etc. En algunas de estas
aplicaciones se requiere un tiempo de clculo muy elevado, al aparecer en la resolucin
del problema matrices de gran dimensin, mientras que en otras es necesario realizar
muchos clculos por unidad de tiempo para, por ejemplo, poder interactuar sobre un
sistema fsico en tiempo real. En esta tesis se ha realizado un estudio completo de las
funciones matriciales ms utilizadas, proponindose la utilizacin de metodologas
generales para el clculo de las mismas. En la actualidad el paquete de software
MATLAB tiene implementadas un amplio conjunto de Funciones de Matrices; sin
embargo, nicamente se dispone de un reducido nmero de rutinas escritas en lenguajes
de alto nivel que calculan algunas de las funciones matriciales ms usuales. Entre las
contribuciones de esta tesis para el clculo de Funciones de Matrices se encuentran las
siguientes:
Desarrollo de algoritmos, basados en metodologas generales, para el clculo de
Funciones de Matrices: algoritmos basados en los aproximantes diagonales de
Pad de una funcin y algoritmos basados en la descomposicin real de Schur de
una matriz.

Se ha diseado nuevos algoritmos basados en los aproximantes diagonales de


Pad que permiten el clculo eficiente de Funciones de Matrices como, por
ejemplo, la potencia fraccionaria de una matriz (Algoritmo 3.7) o la funcin seno
matricial (Algoritmo 3.10).

Se han diseado nuevos algoritmos que utilizan la descomposicin real de Schur


de una matriz para calcular Funciones de Matrices. Entre estos algoritmos se
encuentran el basado en la forma diagonal a bloques (Algoritmo 3.13 ), los
basados en la Ecuacin Conmutante (Algoritmo 3.15, Algoritmo 3.16, Algoritmo
3.17, Algoritmo 3.18), el basado en la agrupacin en clusters de los valores
propios cercanos de un matriz (Algoritmo 3.22) y el basado en los aproximantes
diagonales de Pad (Algoritmo 3.23).

Diseo e implementacin de funciones/rutinas escritas en MATLAB y


FORTRAN, para el clculo de Funciones de Matrices, basadas en las rutinas
anteriores.
Estudio, diseo e implementacin de rutinas de altas prestaciones que permiten la
simulacin de la propagacin de ondas en fibras de cristal fotnico.
Para la mayora de las EDOs no lineales se desconoce su solucin analtica y hay que
utilizar tcnicas numricas para obtener soluciones aproximadas. Estas tcnicas se basan
en la transformacin, mediante frmulas de diferenciacin o de integracin numrica,
de un problema continuo en otro discreto, siendo hasta ahora los mtodos Runge-Kutta
o BDF (Backward Differentiation Formulae) los ms ampliamente utilizados. En esta
tesis se propone resolver EDOs mediante la tcnica de linealizacin a trozos. Esta
tcnica consiste en dividir el intervalo considerado en subintervalos ms pequeos, de
manera que en cada uno de ellos se realiza una aproximacin lineal de la funcin que
define a la EDO. Entre las aportaciones realizadas en esta tesis para la resolucin de
EDOs se encuentran las siguientes:
Demostracin del Teorema 4.1 que permite resolver EDOs mediante la tcnica de
linealizacin a trozos de la funcin que define a la EDO, y en donde no se
requiere que la matriz Jacobiana sea invertible.
2

Captulo 1: Introduccin

Desarrollo de dos nuevos mtodos, basados en el teorema anterior, para la


resolucin de EDOs:
Mtodo basado en el clculo de la exponencial de una matriz a bloques,
asociada al problema, mediante aproximantes diagonales de Pad.
Mtodo basado en el clculo del producto de la exponencial de una matriz a
bloques por un vector mediante una aproximacin basada en subespacios de
Krylov.
Desarrollo de un mtodo para la resolucin de EDOs basado en la linealizacin a
trozos y en la Ecuacin Conmutante. En esta aproximacin es necesario que la
matriz Jacobiana sea invertible.
Para cada uno de los mtodos anteriores se han desarrollo algoritmos para la
resolucin de EDOs no autnomas (Algoritmo 4.5, Algoritmo 4.7, Algoritmo
4.11) y para la resolucin de EDOs autnomas (Algoritmo 4.14, Algoritmo 4.16 y
Algoritmo 4.18).
Implementacin de los algoritmos anteriores en MATLAB y FORTRAN,
determinando los parmetros caractersticos de los diferentes mtodos y
optimizando sus costes espacial y temporal.
Una de las ecuaciones diferenciales no lineales ms usadas en el mbito cientfico es la
Ecuacin Diferencial Matricial de Riccati (EDMR). Esta ecuacin juega un papel
fundamental en problemas de control ptimo y filtrado. Una de las tcnicas
ampliamente utilizadas para resolver dicha ecuacin consiste en aplicar el mtodo BDF.
Este mtodo est especialmente indicado para resolver EDMRs de tipo rgido. Otro de
los mtodos que se pueden aplicar en la resolucin de EDMRs consiste en la
vectorizacin de ecuaciones diferenciales matriciales, que permite convertir una EDMR
en una EDO. En esta tesis se han desarrollado varios mtodos de resolucin de EDMRs
que consisten en aplicar la linealizacin a trozos a la EDO anterior, utilizando tcnicas
especiales para la resolucin eficiente de la misma. Entre las aportaciones relativas a la
resolucin de EDMRs se encuentran las siguientes:
Desarrollo de una nueva metodolga para la resolucin de EDMRs basada en la
tcnica de linealizacin a trozos. Esta metodologa consiste, bsicamente, en
transformar la EDMR en una EDO de gran dimensin y aplicarle la linealizacin
a trozos.
Desarrollo de tres mtodos basados en la linealizacin a trozos.
Mtodo basado en los aproximantes diagonales de Pad. El primer mtodo
consiste en calcular la solucin aproximada de una EDMR en un instante
determinado mediante el clculo de dos exponenciales de matrices definidas a
bloques. De este modo, se pasa de un problema vectorial de gran dimensin a
otro matricial de menor dimensin. Este mtodo est basado en dos teoremas
desarrollados en el mbito de esta tesis, Teorema 4.3 y Teorema 4.5, que se
aplican, respectivamente, a EDMRs con coeficientes variables y a EDMRs
con coeficientes constantes.
Mtodo basado en la Ecuacin Conmutante. Para el segundo mtodo se han
demostrado dos teoremas, uno para EDMRs con coeficientes variables
(Teorema 4.4) y otro para EDMRs con coeficientes constantes (Teorema
4.6), que permiten transformar un problema vectorial de resolucin de una

Captulo 1: Introduccin

EDO de gran dimensin en otro matricial, consistente en resolver ecuaciones


matriciales de Sylvester.
Mtodo basado en los subespacios de Krylov. El tercer mtodo est basado en
el clculo del producto de la exponencial de una matriz definida a bloques,
obtenida en el proceso de vectorizacin, por un vector, utilizando para ello los
subespacios de Krylov.
A partir de los mtodos anteriores se han desarrollado seis nuevos algoritmos
(Algoritmo 4.21, Algoritmo 4.23, Algoritmo 4.26, Algoritmo 4.29, Algoritmo
4.31, Algoritmo 4.33) y sus correspondientes implementaciones.
A partir de las pruebas realizadas en el Captulo 5, se puede comprobar que el coste
computacional de las implementaciones basadas en los mtodos de linealizacin a
trozos resultan ser menores que las implementaciones basadas en el mtodo BDF
([Diec92]), siendo adems algo ms precisas. Adems, tienen un buen comportamiento
cuando se aplican a EDMRs de tipo rgido.
Hay que destacar que actualmente no se dispone de funciones escritas en MATLAB que
resuelvan EDMRs y, en el caso de rutinas escritas en FORTRAN, tan slo se dispone
del paquete DRSOL (), pero nicamente para datos en simple precisin.
Debido al gran nmero de algoritmos desarrollados e implementados, ha sido necesario
utilizar una notacin que permitiese conocer a partir del nombre de un algoritmo la
finalidad del mismo y el mtodo empleado. La nomenclatura utilizada para los
algoritmos es txxyyyzzz, donde t indica el tipo de dato utilizado, xx indica el tipo de
matriz, yyy indica el problema que se resuelve y zzz el mtodo utilizado. Los valores de
los tres primeros caracteres son:
t: tipo de dato utilizado.
t=s, datos reales de simple precisin;
t=d, datos reales de doble precisin;
t=c, datos complejos de simple precisin;
t=z, datos complejos de doble precisin.
xx: tipo de matriz.
xx=ge, indica matrices generales;
xx=ct, indica matrices casi triangulares superiores.
La misma nomenclatura ha sido utilizada para nombrar a las funciones de MATLAB y a
las rutinas en FORTRAN, de manera que para cada algoritmo se tiene una funcin en
MATLAB y una rutina en FORTRAN con el mismo nombre.

1.3 Metodologa
As como las metodologas para el desarrollo del software de gestin estn muy
avanzadas, el software cientfico adolece en la actualidad de herramientas que cubran
todas las etapas para el desarrollo completo de una aplicacin. Las tcnicas ms
empleadas para el desarrollo del software de gestin no se pueden aplicar debido,
fundamentalmente, a la propia naturaleza de las aplicaciones del clculo cientfico que,
en general, poseen muy pocas caractersticas en comn. En esta tesis se aboga por

Captulo 1: Introduccin

utilizar un ciclo de vida semiautomtico consistente, bsicamente, en dos etapas que a


continuacin se describen.
Para la primera etapa se utiliza MATLAB pues dispone de un lenguaje de programacin
que permite expresar y desarrollar, de forma sencilla, algoritmos numricos,
disponiendo adems de numerosas funciones del algebra matricial y de una potente
herramienta de depuracin de cdigo que facilita el desarrollo de los mismos.
En la segunda etapa se utiliza un lenguaje de alto nivel (FORTRAN) junto con las
libreras BLAS y LAPACK. Estas libreras implementan, por una parte, las operaciones
ms comunes entre vectores y matrices y, por otra, disponen de numerosas rutinas que
resuelven los problemas ms comunes que aparecen en el algebra matricial. Esto
posibilita escribir los programas en FORTRAN (o C) de forma modular, centrando la
atencin en los aspectos algortmicos y no en los detalles del propio lenguaje utilizado.
Otra ventaja adicional es que la mayor parte de los sistemas informticos utilizados en
computacin disponen de libreras optimizadas de BLAS y LAPACK, con el
consiguiente rendimiento de los cdigos que utilizan a esas rutinas.
De este modo, la combinacin de estas herramientas posibilita la creacin de software
numrico robusto y de altas prestaciones de forma sistemtica y sencilla. En la siguiente
figura se muestra el ciclo de vida utilizado en el desarrollo del software numrico.

Formulacin del
problema (1)

Ajuste de los
parmetros del
algoritmo 1 (4)

Descripcin
matemtica del
mtodo (2)

Ajuste de los
parmetros del
cdigo (7)

Algoritmo 1

Algoritmo 2

MATLAB (3)

MATLAB (5)

Cdigo en
lenguaje de
alto nivel (6)

Figura 1.1: Ciclo de vida utilizado en el desarrollo del software.


En (1) se tiene claramente definido el problema que se quiere resolver. En (2) se realiza
una descripcin matemtica del mtodo que se va a implementar, partiendo de un
estudio terico de la viabilidad del mismo. En (3) se realiza un primer algoritmo, escrito
en MATLAB, que implementa el mtodo desarrollado en (2). A travs de sucesivas
pruebas se determinan, mediante (4), los valores ptimos de los parmetros
caractersticos del mtodo aplicado. Una vez se ha realizado este ajuste, se tiene un
primer algoritmo escrito en MATLAB. Como paso intermedio para la codificacin del
algoritmo anterior en un lenguaje de alto nivel, se desarrolla un segundo algoritmo en
(5) mediante la traduccin del primer algoritmo, de manera que las operaciones que
aparecen en l corresponden a operaciones bsicas del BLAS y del LAPACK. En (6) se
hace una codificacin en un lenguaje de alto nivel en el que se hace una traduccin del
algoritmo desarrollado en (5) utilizando llamadas a BLAS o a LAPACK. La etapa (7) es
necesaria, fundamentalmente, cuando se usan algoritmos orientados a bloques, en los
que es necesario optimizar los accesos a memoria.

Captulo 1: Introduccin

En la siguiente figura se muestra un ejemplo en el que aparece la codificacin de un


fragmento de un algoritmo segn la metodologa considerada.
(3)
G= A21+A22*X-X*A11-X*A12*X;

(5)
G=A21;
G=A22*X+G;
G=-X*A11+G;
W=X*A12;
G=-W*X+G;

C
C
$
C
$
C
$
C
$

(6)
G=A21
CALL DCOPY(MN,WORK(NA21),1,WORK(NG),1)
G=A22*X+G
CALL DGEMM('N','N',M,N,M,ONE,WORK(NA22),M,X,M,
ONE,WORK(NG),M)
G=-X*A11+G
CALL DGEMM('N','N',M,N,N,-ONE,X,M,WORK(NA11),N,
ONE,WORK(NG),M)
W=X*A12;
CALL DGEMM('N','N',M,M,N,ONE,X,M,WORK(NA12),N,
ZERO,WORK(NWORK),M)
G=-W*X+G;
CALL DGEMM('N','N',M,N,M,-ONE,WORK(NWORK),M,X,M,
ONE,WORK(NG),M)

Figura 1.2: Codificacin de un fragmento de un algoritmo en las etapas (3), (5) y (6).
Como se puede observar, el cdigo de la etapa (3) se desglosa en varias lneas de cdigo
correspondiente al algoritmo de la etapa (5). El cdigo obtenido en (6) es una
traduccin, lnea a lnea, del cdigo de la etapa (5).
Para las etapas (3) y (6) se ha dispuesto de un numeroso conjunto de pruebas que
permiten validar el cdigo desarrollado. Estas bateras de pruebas provienen, en algunos
casos, de problemas reales y, en otros, de pruebas especiales que permiten comprobar la
bondad de los algoritmos desarrollados. Entre las bateras de pruebas utilizadas se
encuentran las siguientes:
Clculo de Funciones de Matrices.
The Matrix Computation Toolbox for MATLAB ([High02]). Contiene una
coleccin de funciones escritas en MATLAB para la generacin de matrices
de prueba, el clculo de factorizaciones matriciales, la visualizacin de
matrices, etc.
Adems del anterior paquete, se han diseado y utilizado, dentro del marco de
la tesis, numerosas funciones/rutinas escritas en MATLAB y FORTRAN que
6

Captulo 1: Introduccin

generan matrices especiales, idneas para el estudio de Funciones de Matrices


como, por ejemplo, matrices casi triangulares superiores, matrices de
Hessenberg, matrices con valores propios mltiples, etc.
Resolucin de EDOs.
Test Set for Initial Value Problems Solvers ([LiSw98]). Contiene una
coleccin de problemas de valores iniciales para EDOs, Ecuaciones
Diferenciales Implcitas (EDIs) y Ecuaciones Diferenciales Algebraicas
(EDAs), escritos en FORTRAN y procedentes de problemas reales.
Resolucin de EDMRs.
Time-Varying Riccati Differential Equations with Known Analytic Solutions
([Choi92]). Se trata de un artculo aparecido en la revista IEEE Transactions
on Automatic Control, en el que se definen problemas de EDMRs con
solucin analtica conocida, ideales para su utilizacin en pruebas.
Numerical Integration of the Differential Riccati Equation and Some Related
Issues ([Diec92]). Contiene una recopilacin de varios problemas de EDMRs
que provienen de problemas reales, adems de una de las aproximaciones del
mtodo de resolucin BDF ms ampliamente utilizada.

1.4 Estructura de la Tesis


El contenido de esta tesis se estructura en seis captulos. El primero corresponde al
actual captulo, en el que se ha realizado una breve descripcin de los objetivos
planteados en esta tesis, se han enumerado las aportaciones realizadas y se ha explicado
la metodologa utilizada en el desarrollo e implementacin de los algoritmos
desarrollados.
En el segundo captulo se realiza una descripcin del estado del arte correspondiente al
clculo de Funciones de Matrices y a la resolucin de EDOs y EDMRs. En el caso de
las Funciones de Matrices se describen algunas de las definiciones de funcin de una
matriz, se enumeran sus propiedades ms importantes y se describen los mtodos ms
usuales para su clculo. Para la resolucin de EDOs se detallan nicamente aquellos
aspectos de inters que posteriormente se utilizarn en el desarrollo e implementacin
de los nuevos mtodos basados en la linealizacin a trozos. Por ltimo, se realiza una
descripcin detallada del estado del arte correspondiente a la resolucin de EDMRs,
haciendo una breve exposicin de sus principales propiedades, describiendo los
mtodos numricos ms destacados que se han ido utilizando a lo largo del tiempo y
enumerando algunas de sus aplicaciones.
El tercer captulo est dedicado a describir los algoritmos desarrollados en esta tesis
para el clculo de Funciones de Matrices. Para ello se han desarrollado dos
metodologas generales: una basada en los aproximantes diagonales de Pad y otra que
utiliza la reduccin a la forma real de Schur de una matriz. La primera metodologa
consiste, bsicamente, en las siguientes etapas: 1.- minimizar la norma de la matriz
considerada; 2.-determinar un polinomio de Taylor apropiado de la funcin; 3.- calcular,
a partir del polinomio de Taylor, los polinomios de la aproximacin diagonal de Pad de
la funcin; 4.- obtener la aproximacin diagonal de Pad de la funcin; y 5.- calcular la
funcin de la matriz, teniendo en cuenta la reduccin de la norma realizada en la
primera etapa. Una vez realizada esta descripcin se particulariza, dicho algoritmo
general, al clculo de algunas Funciones de Matrices: exponencial, logartmica, potencia

Captulo 1: Introduccin

fraccionaria, seno y coseno. La segunda metodologa utiliza la forma real de Schur de


una matriz para calcular, a partir de ella, la funcin de la matriz original. Los algoritmos
que utilizan esta metodologa suelen ser muy precisos y razonablemente eficientes.
Entre estos algoritmos se encuentran los basados en la Ecuacin Conmutante sin
agrupacin de valores propios (algoritmos orientados a columnas, a diagonales y a
bloques), el algoritmo basado en la agrupacin de valores propios cercanos, el algoritmo
basado en la diagonalizacin a bloques de una matriz y el basado en el clculo de
Funciones de Matrices casi triangulares superiores mediante los aproximantes
diagonales de Pad.
El cuarto captulo est dedicado a la resolucin de EDOs y EDMRs mediante la tcnica
de linealizacin a trozos. En el caso de EDOs se demuestra el Teorema 4.1 y se
presentan tres mtodos, basados en l, que permiten resolver eficientemente EDOs:
Mtodo basado en los aproximantes diagonales de Pad, mtodo basado en la Ecuacin
Conmutante y mtodo basado en los subespacios de Krylov.
Para la resolucin de EDMRS se ha desarrollado una metodologa consistente en
transformar la EDMR en una EDO y aplicar a esta ecuacin diferencial la tcnica de
linealizacin a trozos desarrollada para EDOs. Al aplicar la linealizacin a trozos, se
obtiene una Ecuacin Diferencial Lineal (EDL) de gran dimensin en cada subintervalo,
por lo que se hace necesaria la aplicacin de mtodos especiales para su resolucin. En
este caso, en lugar de aplicar los mtodos desarrollados para EDOs, se han desarrollado
tres nuevos mtodos: Mtodo basado en los aproximantes diagonales de Pad, mtodo
basado en la Ecuacin Conmutante y mtodo basado en los subespacios de Krylov
Todos los anteriores mtodos se han particularizado para resolver EDOs autnomas y
EDMRs con coeficientes constantes de modo que se han reducido los costes
computacionales y de almacenamiento.
En el quinto captulo se detallan y analizan todas las pruebas realizadas. En primer lugar
se describen brevemente los componentes software y hardware que, de algn modo, se
han utilizado en el desarrollo e implementacin de los algoritmos descritos en esta tesis.
A continuacin se describen las pruebas realizadas para el clculo de Funciones de
Matrices, comenzando con el clculo de funciones polinmicas y racionales,
continuando con el clculo de funciones trascendentes mediante los aproximantes
diagonales de Pad y mediante la descomposicin real de Schur de una matriz. Para
cada prueba se determinan los valores ptimos de los parmetros caractersticos de cada
implementacin. En tercer lugar se presenta un problema consistente en la simulacin
de la propagacin de ondas monocromticas en fibras de cristal fotnico. El inters del
estudio es analizar dicha propagacin sin hacer uso de experimentos reales con las
consiguientes ventajas que esto supone. Para ello se analizan e implementan los
mtodos numricos ms adecuados para su simulacin. A continuacin se describen las
pruebas realizadas para la resolucin de EDOs, presentando el problema a resolver y sus
orgenes. Para cada problema se comparan las funciones/rutinas implementadas,
habiendo determinado previamente los valores ptimos de los parmetros caractersticos
de cada funcin/rutina. Para esa comparacin, se han realizado diversas pruebas en las
que se vara el incremento de tiempo utilizado en la linealizacin a trozos, el tiempo
final y el tamao de problema. Del mismo modo, se realiza un estudio similar para la
resolucin de EDMRs.
En el sexto captulo se exponen las conclusiones de todo el trabajo realizado, se
enumeran las publicaciones realizadas en el marco de esta tesis y se perfilan las posibles
lneas de investigacin futuras que se abren con la misma.

Captulo 1: Introduccin

Al final de la tesis se han aadido cuatro apndices que a continuacin se detallan. En el


primer apndice se describen las definiciones, propiedades y teoremas que, de algn
modo, se han utilizado en esta tesis, as como la notacin empleada en la misma. En el
segundo apndice se realiza una descripcin de MATLAB, como entorno de desarrollo
y programacin de algoritmos. En el tercer apndice se describen BLAS y LAPACK,
por ser las libreras utilizadas en el desarrollo eficiente y portable de software numrico
de altas prestaciones. En el cuarto anexo se describen los componentes software y
hardware que se han utilizado en el desarrollo e implementacin de los algoritmos
descritos en esta tesis: la mquina SGI Altix 3700, el compilador FORTRAN de Intel y
las libreras SGI SCL (Scientific Computing Software Library) que contienen el BLAS
y el LAPACK.

Captulo 2: Estado del Arte

Captulo 2 Estado del Arte


2.1 Resumen de Contenidos
En este captulo se hace una revisin de las propiedades y mtodos ms relevantes para
el clculo de Funciones de Matrices, y la resolucin de Ecuaciones Diferenciales
Ordinarias (EDOs) y Ecuaciones Diferencial Matriciales de Riccati (EDMRs).
Este captulo se ha estructurado en cinco secciones. La segunda seccin comienza con
un estudio completo de las funciones matriciales ms utilizadas, indicando sus orgenes
y aplicaciones, haciendo adems una breve descripcin de los mtodos que se han ido
utilizando desde sus comienzos hasta nuestros das. Junto a la descripcin de estos
mtodos se realiza un estudio comparativo de los mismos, para deducir cules son las
mejores estrategias para el clculo de Funciones de Matrices. La finalidad de este
estudio es encontrar metodologas generales que permitan calcular eficientemente
Funciones de Matrices, sin dejar de lado cada caso particular (tipo de funcin y matriz).
En la tercera seccin se describen nicamente aquellos aspectos de inters en la
resolucin de EDOs que, de alguna manera, se utilizan en los siguientes captulos,
especialmente los relacionados con el desarrollo e implementacin de los nuevos
mtodos basados en la linealizacin a trozos.
En la cuarta seccin se comienza con una breve descripcin de las principales
propiedades de las EDMRs, detallando a continuacin los mtodos de resolucin de
EDMRs ms conocidos, para finalizar con algunos ejemplos de aplicaciones de las
mismas.
En la ltima seccin se exponen las conclusiones de este captulo.

2.2 Funciones de Matrices


2.2.1 Definiciones y Propiedades
De una manera informal, dada una funcin compleja de variable compleja f (z )
definida sobre el espectro de una matriz cuadrada A , la matriz f ( A) se puede obtener
sustituyendo la variable z por la matriz A en la expresin que define a f ( z ) . Desde un
punto de vista formal, f ( A) se puede definir utilizando diferentes aproximaciones. En
[Rine78], Rinehart demostr la equivalencia entre ocho definiciones de funciones de
matrices; quizs la ms elegante de ellas, aunque no la ms til desde el punto de vista
computacional, es la que se presenta en primer lugar.
Definicin 2.1 ([GoVa96], captulo11).
Sea A una matriz cuadrada definida en el conjunto de los nmeros complejos C y
f (z ) una funcin analtica definida en un abierto U C que contiene al espectro de
A . Si U es una curva rectificable que rodea al espectro de A , entonces la matriz
f ( A) se puede definir como

11

Captulo 2: Estado del Arte

f ( A) =

1
f ( z )( Iz A) 1 dz .
2i

Segn esta definicin, el elemento (k , j ) de la matriz f ( A) viene dado por

f kj =

1
1
f ( z )ekT (Iz A) e j dz ,

2i

siendo ek y e j , respectivamente, la k-sima y la j-sima columna de la matriz identidad

I . Esta definicin proviene del teorema integral de Cauchy, por lo que se trata de una
definicin independiente de la curva .
Una de las definiciones ms utilizadas ([Gant90], [LaMi85]) es la basada en la forma
cannica de Jordan de una matriz y en el polinomio de interpolacin de grado mnimo
de una funcin.
Definicin 2.2 ([Gant90], captulo 5).

Dada una funcin analtica f ( z ) definida en un abierto U C


espectro de A C nxn , se define la matriz f ( A) como

que contiene al

f ( A) = p( A) ,
siendo p( z ) el polinomio de grado mnimo que interpola a la funcin f ( z ) en el
espectro de la matriz A ; es decir,
p ( j ) (i ) = f ( j ) (i ) , j = 0,1,L, ni 1 , i = 1,2,L, s ,
con s el nmero de valores propios distintos de A y ni la mayor de las dimensiones de
los bloques de Jordan que contienen al valor propio i .
A partir de estas definiciones se pueden demostrar propiedades que permiten calcular y
definir, de otras formas, las funciones de matrices.
Propiedad 2.1

Dada A C nxn y f ( z ) funcin analtica definida en un abierto U C que contiene al


espectro de A , entonces f ( A) es solucin de la ecuacin
( 2.1 )

AX = XA ,

denominada ecuacin conmutante.


Propiedad 2.2

Sea A C nxn y f ( z ) funcin analtica definida en un abierto U C que contiene al


espectro de A . Si A = XBX 1 entonces
f ( A) = Xf ( B) X 1 .

12

Captulo 2: Estado del Arte

Propiedad 2.3

Sea A C

nxn

y f (z ) funcin analtica definida en un abierto U C que contiene al

espectro de A . Si A = diag ( A1 , A2 ,L, Ar ) , con Ai C ni xni , i = 1,2,L, r ,

n
i =1

= n,

entonces
f ( A) = diag( f ( A1 ), f ( A2 ), L , f ( Ar )) .

Corolario 2.1.

Sea A C nxn y f ( z ) una funcin analtica definida en un abierto U C que contiene


al espectro de A . Si
A = QSQ*
es la descomposicin de Schur de A , entonces
f ( A) = Qf ( S )Q * .
Corolario 2.2.

Sea A C nxn y f ( z ) una funcin analtica definida en un abierto U C que contiene


al espectro de A . Si
A = Xdiag( J 1 , J 2 , L , J r ) X 1

( 2.2 )

es la descomposicin cannica de Jordan de la matriz A , entonces


f ( A) = Xdiag( f ( J 1 ), f ( J 2 ), L , f ( J r )) X 1 ,

( 2.3 )

siendo

( )

( 2.4 ) f J i

f (i )

0
=
M
0

f (1) (i )
L
1!
f (i )

f ( ni 2) (i )
(ni 2)!
f ( ni 3) (i )
(ni 3)!
M

f ( i )

(i )

(ni 1)!
f ( ni 2) (i )
(ni 2)! C

f (1) (i )

1!
f (i )
f

( ni 1)

ni xni

, i = 1,2,L, r .

Otros autores definen las funciones de matrices a partir del concepto de funcin
matricial primaria.
Definicin 2.3 ([HoJo91]).

Sea A C nxn y f ( z ) una funcin analtica definida en un abierto U C que contiene


al espectro de A . Si ( 2.2 ) es la descomposicin cannica de Jordan de la matriz A , se
define la funcin matricial primaria de la matriz A como la matriz f ( A) obtenida a
partir de las expresiones ( 2.3 ) y ( 2.4 ).

13

Captulo 2: Estado del Arte

Una ltima aproximacin proviene de la definicin de una funcin como suma de una
serie de potencias. El siguiente teorema muestra la manera de definir funciones de
matrices a partir de sumas de series de potencias de matrices.
Teorema 2.1.

Dada una matriz A C nxn y f ( z ) una funcin analtica definida en un abierto U C


que contiene al espectro de A , definida por

f ( z ) = ck z k ,
k =0

entonces la serie de potencias

c A
k =0

es convergente, cumplindose adems ([Rine78] que

f ( A) = ck Ak .
k =0

2.2.2 Funciones de Matrices ms Usuales


2.2.2.1 Funcin Exponencial

Entre las diferentes funciones de matrices, la funcin exponencial tiene una especial
importancia debido a su relacin con la resolucin de sistemas de ecuaciones
diferenciales lineales ([Bell83], [MoVa78]) que aparecen en la resolucin de diversos
modelos asociados a fenmenos fsicos, qumicos, biolgicos, econmicos, etc.
([Karl59], [Varg62]). Por ejemplo, la solucin de la Ecuacin Diferencial Lineal (EDL)
([Bell53])
dx(t )
= Ax(t ) + b(t ) , t 0
dt
con x(0) = x0 , siendo A nxn y b n , viene dada por
t

v(t ) = e At x(0) + e A( t s ) b( s )ds .


0

Una forma sencilla de definir la exponencial de una matriz consiste en considerar la


serie de potencias

1 k
z ,
k = 0 k!

ez =

y definir la exponencial de la matriz A como

1 k
A .
k = 0 k!

eA =

Esta serie resulta ser convergente para cualquier matriz cuadrada A .

14

Captulo 2: Estado del Arte

2.2.2.2 Funcin Signo

La funcin signo matricial, junto a la exponencial de una matriz, resulta ser una de las
funciones matriciales que durante ms tiempo y con mayor profundidad se ha
investigado. Una de las primeras referencias acerca de la funcin signo matricial se
encuentra en el trabajo realizado por Zolotarjov en el ao 1877, en el que se
caracterizaban las mejores aproximaciones racionales de la funcin signo escalar
mediante el uso de funciones del tipo seno elptico. Si embargo, el verdadero auge de
esta funcin se encuentra en el trabajo desarrollado por Roberts. En 1971 Roberts
realiz un informe tcnico ([Robe71]) en el que se defina esta funcin y se describan
sencillos algoritmos para el clculo de la misma. En este trabajo tambin se desarroll el
escalado y la estimacin del nmero de condicin asociados a la funcin signo
matricial. Este informe tcnico no fue muy conocido por la comunidad cientfica hasta
su publicacin como artculo, en el ao 1980, en la revista International Journal of
Control [Robe80].
En 1971 Abramov ([Abra71]) tambin utiliz un mtodo basado en el clculo de la
funcin signo matricial para revolver ciertos problemas de contorno asociados a la
resolucin de EDOs.
Fruto del trabajo pionero de Roberts ha sido el desarrollo de numerosos campos de
investigacin relacionados con la funcin signo matricial:
Aproximacin y condicionamiento de las funciones de matrices.
Aplicaciones en control como, por ejemplo, la resolucin de la Ecuacin
Algebraica Matricial de Lyapunov (EAML) y la resolucin de la Ecuacin
Algebraica Matricial de Riccati (EAMR).
Teora de sistemas y clculo matricial, aplicndose, por ejemplo, en el clculo de
subespacios invariantes.
Descomposiciones que aparecen en el clculo de valores propios de una matriz.
Clculo de la raz cuadrada de una matriz.
Clculo de la funcin sector de una matriz.
A continuacin se define la funcin signo matricial tal como aparece en [Robe80]. La
funcin signo escalar se define como
+ 1 si Re( z ) > 0
sign ( z ) =
.
1 si Re( z ) < 0
Si A C nxn no tiene valores propios imaginarios puros, entonces existe la funcin signo
matricial de A y se puede definir a partir de la descomposicin cannica de Jordan de
A , como a continuacin se detalla.
Si
A = Xdiag( J 1 , J 2 , L , J r ) X 1

es la descomposicin cannica de Jordan de la matriz A , entonces la funcin signo


matricial de A se define como
sign ( A) = Xdiag(sign( J 1 ), sign( J 2 ), L , sign( J r )) X 1 .

Al cumplirse que
15

Captulo 2: Estado del Arte

d
(sign ( z ) ) = 0 ,
dz
z = i
y teniendo en cuenta ( 2.4), entonces

( )

sign J i

0
sign (i )
0
sign (i )

= M
M

0
0
0
0

L
0
0
O
M
M , i = 1,2,L, r .

sign (i )
0
L
0
sign (i )
0

Es fcil comprobar que la funcin signo matricial cumple las siguientes propiedades.
Propiedad 2.4.

Si A C

nxn

, entonces [sign ( A)]2 = I n .

Propiedad 2.5.

Si A C

nxn

, entonces sign (cA) = sign (c)sign ( A) .

Propiedad 2.6.

Los valores propios de la matriz sign ( A) , A C

nxn

, son 1 .

2.2.2.3 Funcin Raz Cuadrada

Uno de los mtodos ms usuales para calcular funciones de matrices consiste en realizar
un escalado previo de la matriz, pues permite reducir su norma y as se pueden aplicar
tcnicas generales para el clculo de funciones de matrices como, por ejemplo, las
aproximaciones de tipo polinmico (aproximaciones de Taylor) o las aproximaciones de
tipo racional (aproximantes de Pad). Por ejemplo, el escalado utilizado en el clculo de
la funcin logartmica, se puede realizar utilizando la identidad
log A = 2 j log A1 / 2 , j = 1,2,L ,
j

en la que aparecen races cuadradas de matrices.


Para definir la raz cuadrada de una matriz es necesario que sea consistente con la
definicin correspondiente al caso escalar. Dada una matriz A C nxn , una solucin
X C nxn de la ecuacin matricial cuadrtica
X 2 = A,

se llama raz cuadrada de A .


Por ejemplo, fcilmente se puede comprobar que la matriz
0 1
A=

0 0

no tiene races cuadradas, sin embargo, la matriz

16

Captulo 2: Estado del Arte

1 0
A=

0 0

admite como races cuadradas a las matrices


1 0
1 0
X1 =
, X2 =

.
0 0
0 0

Segn esto, puede no existir la raz cuadrada de A , o existir una o ms races de ella.
El siguiente teorema caracteriza las races cuadradas de una matriz cuadrada compleja y
determina cules de ellas corresponden a funciones de matrices en el sentido de la
Definicin 2.2.
Lema 2.1 ([Hig287]).

Si i C es distinto de cero, entonces el bloque de Jordan


i
0

J i = M

0
0

i
M
0
0

0
O 0 0
O O M C

L i 1
L 0 i
L

ni xni

tiene precisamente dos races cuadradas que son funciones de J i en el sentido de la


Definicin 2.2,

( )

( 2.5 ) f j J i

f j ( i )

0
=
M

( ni 2 )

(1 )

f j ( i )

fj

( i )

1!

f ( i )

(ni 3)!
M

f j ( i )

(ni 2)!
( ni 3 )
f j ( i )

( i )

(ni 1)!
( ni 2 )
fj
( i )

(ni 2)! C

M
(1)
f j ( i )

1!
f j (i )
fj

( ni 1)

ni xni

, j = 1,2 ,

donde f j ( ) = denota una de las dos ramas de la funcin raz cuadrada en el


entorno de i .
Teorema 2.2 ([Hig287]).

Sea A C

nxn

una matriz no singular con la descomposicin de Jordan


A = XJX 1 = Xdiag( J 1 , J 2 , L , J r ) X 1 ,

donde J i C

ni xni

n
i =1

= n , y s ( s r ) el nmero de valores propios distintos de A .

Se verifican entonces las siguientes propiedades:

17

Captulo 2: Estado del Arte

1. A tiene precisamente 2 s races cuadradas que son funciones de A en el sentido


de la Definicin 2.2, dadas por
F j = Xdiag( f j1 ( J 1 ), f j2 ( J 2 ), L , f jr ( J r )) X 1 , j = 1,2,L,2 s ,

correspondientes a todas las posibles elecciones de j1 , j2 ,L, jr ( ji {1,2},


i = 1,2,L, r ), sujetas a la restriccin de que jk = jl si k = l .
2. Si s < r , entonces A tiene races cuadradas que no son funciones de A en el
sentido de la Definicin 2.2. Estas races forman familias parametrizadas
F j (U ) = XUdiag( f j1 ( J 1 ), f j2 ( J 2 ), L , f jr ( J r ))U 1 X 1 ,

2 s + 1 ji 2r , i = 1,2,L, r , siendo U una matriz no singular arbitraria que


conmuta con diag( J 1 , J 2 , L , J r ) , y para cada j existen unos ndices k y l ,
dependientes de j , de manera que k = l y jk jl .
Corolario 2.3 ([Hig287]).

Si k C es distinto de cero, entonces las nicas races cuadradas de la matriz J k


del Lema 2.1 son las que aparecen en ( 2.5 ).
Corolario 2.4 ([Hig287]).

Si cada valor propio de A C nxn aparece en un solo bloque de Jordan de la forma


cannica de Jordan de A , entonces A tiene precisamente 2 r races cuadradas, todas
ellas funciones de A en el sentido de la Definicin 2.2.
Corolario 2.5 ([Hig287]).

Toda matriz hermtica y definida positiva tiene una nica raz cuadrada hermtica y
definida positiva.

A continuacin se detallan varios teoremas acerca de la existencia de races de matrices


cuadradas reales.
Teorema 2.3 ([HoJo91], pgina 473).

Sea una matriz A nxn . Existe una matriz B nxn , raz cuadrada de A , si y solo si
se cumplen las siguientes condiciones:
1. Dados los enteros r0 = n , rk = rango( A k ) , para k = 0,1,2,L , entonces la
secuencia {rk rk +1} para k = 0,1,2,L , no contiene dos apariciones consecutivas
del mismo entero par y si adems r0 r1 es par, entonces r0 2r1 + r2 1 .
2. Si
i
0

J i = M

0
0

i
M
0
0

0
O 0 0
O O M C

L i 1
L 0 i
L

ni xni

18

Captulo 2: Estado del Arte

es un bloque de Jordan de A , con i un valor propio real negativo de A ,


entonces A tiene un nmero par de bloques de Jordan de igual tamao ni
incluido J i .
Teorema 2.4 ([High87]).

Sea A nxn una matriz no singular. Existe una matriz B nxn , raz cuadrada real de
la matriz A , si y solo si cada bloque de Jordan de la matriz A correspondiente a un
valor propio real negativo, aparece un nmero impar de veces.

La comprobacin de la existencia de races cuadradas de una matriz, a partir de los


teoremas anteriores, es complicada de manejar, fundamentalmente porque es necesario
conocer la descomposicin cannica de Jordan de la matriz considerada. El siguiente
teorema, cuya demostracin est basada en la descomposicin real de Schur de una
matriz, permite una comprobacin ms sencilla de la existencia de races cuadradas de
matrices reales.
Teorema 2.5 ([High87]).

Sea A nxn una matriz no singular. Si A tiene un valor propio real negativo,
entonces A no tiene races cuadradas que son funciones de A en el sentido de la
Definicin 2.2. Si A no tiene valores propios reales negativos, entonces existen
exactamente 2 r + c races cuadradas reales que son funciones de A en el sentido de la
Definicin 2.2, siendo r el nmero de valores propios reales de A y c el nmero de
pares de valores propios complejos conjugados.
2.2.2.4 Funcin Raz p-sima

Dada una matriz A C


matriz A si cumple

nxn

, se dice que la matriz X C

nxn

es una raz p-sima de la

= A.

Entre las aplicaciones que requieren el clculo de las races p-simas de una matriz se
encuentra el clculo de la funcin sector definida por
sec( A) = ( A p ) 1/ p A ([KoBa95], [ShTs84]).
Otra posible aplicacin aparece en el escalado de una matriz para el clculo del
logaritmo de una matriz. En este caso, se determina un entero positivo p de manera que
log A = p log A1 / p ,
con || A1/ p || menor que un cierto valor ([ChHi01], [KeL289]).
Al igual que ocurre en el caso particular de races cuadradas, la raz p-sima de una
matriz puede no existir o tener una o ms soluciones. Si A es no singular, entonces
admite al menos una raz p-sima; en caso contrario, la matriz A admite races p-simas
dependiendo de la estructura de los divisores elementales de A correspondientes a los
valores propios nulos ([Gant90], seccin 8.7).

19

Captulo 2: Estado del Arte

Definicin 2.4 ([Smit03]).

Sea A C nxn una matriz no singular con valores propios i , i = 1,L , n , de manera
que arg(i ) , i = 1,L, n . La raz p-sima principal de A , denotada por
A1 / p C

nxn

, se define como la matriz que satisface las dos condiciones siguientes:

1. ( A1 / p ) p = A .
2. Los argumentos de los valores propios de la matriz A1 / p se encuentran en el
intervalo ] / p, / p[ .
El siguiente teorema, generalizacin del Teorema 2.2, permite caracterizar las races psimas de una matriz cuadrada compleja a partir de su descomposicin de Jordan, y
determina cules de ellas corresponden a funciones de matrices segn la Definicin 2.2.
Lema 2.2 ([Smit03]).

Si i C es distinto de cero, entonces el bloque de Jordan


i
0

J i = M

0
0

0
O 0 0
O O M C

L i 1
L 0 i

i
M
0
0

ni xni

tiene precisamente p races p-simas que son funciones de J i , definidas como

( )

f j J i

f j ( i )

0
=
M

( ni 2 )

(1 )

f j ( i )

fj

( i )

1!

f ( i )

(ni 3)!
M

f j ( i )

(ni 2)!
( ni 3 )
f j ( i )

( i )

(ni 1)!
( ni 2 )
( i )
fj

(ni 2)! C

M
(1)
f j ( i )

1!
f j (i )

fj

( ni 1)

ni xni

, j = 1,2,L, p ,

donde f j ( ) = denota una de las p ramas de la funcin raz p-sima en el entorno


p

de i .
Teorema 2.6 ([Smit03]).

Sea A C

nxn

una matriz no singular con la descomposicin de Jordan

A = Xdiag J 1 , J 2 ,L, J r X 1 ,

donde J i C

ni xni

n
i =1

= n , y s ( s r ) el nmero de valores propios distintos de A

Se verifican entonces las siguientes propiedades:

20

Captulo 2: Estado del Arte

1. A tiene precisamente p s races de ndice p , dadas por


F j = Xdiag( f j1 ( J 1 ), f j2 ( J 2 ), L , f jr ( J r )) X 1 , j = 1,2,L, p s ,

correspondientes a todas las posibles elecciones de j1 , j 2 ,L , j r , ji {1,2,L, p},


i = 1,2,L, r , sujetas a la restriccin de que jk = jl si k = l .
2. Si s < r , entonces A tiene races p-simas que no son funciones de A . Estas
races forman familias parametrizadas
F j (U ) = XUdiag( f j1 ( J 1 ), f j2 ( J 2 ), L , f jr ( J r ))U 1 X 1 ,

p s + 1 ji p r ,
donde ji {1,2,L, p}, i = 1,2,L, r , siendo U una matriz no singular arbitraria
que conmuta con diag J 1 , J 2 ,L , J r , y para cada j existen k y l ,

dependientes de j , de manera que k = l y jk jl .


2.2.2.5 Funcin Logaritmo

Los logaritmos de matrices aparecen en algunos campos de la ingeniera, como los


relacionados con la teora de control. Por ejemplo, para un sistema fsico gobernado por
la EDL
x& (t ) = Ax(t ) , x(0) = x 0 ,

en la que A nxn es una matriz desconocida, es posible determinar esta matriz A a


partir de n observaciones, x1 , x 2 ,L, x n , del vector de estados x(t ) , producidas por n
vectores de condiciones iniciales ([AlPr81], [SiSp76]). Puesto que la solucin de la
ecuacin diferencial anterior es
x(t ) = e At x0 ,

particularizando esta expresin para t = 1 y considerando como estados iniciales las


columnas de la matriz identidad, se obtiene que

B = eA ,
y, por tanto, A = log B , siendo B = [ x1 , x 2 , L, x n ] .
El siguiente teorema caracteriza las condiciones de existencia del logaritmo de una
matriz.
Teorema 2.7 ([HoJo91], pgina 475).

1. Si A C nxn es no singular, entonces existe al menos un matriz X C nxn que


verifica e X = A y es polinomial en A ; es decir, existe un polinomio p( z ) de
manera que X = p( A) .
2. Si A C
eX = A.

nxn

es singular, entonces no existe ninguna matriz X C

nxn

tal que

3. Si A nxn , entonces existe X nxn de manera que e X = A si y solo si se


cumplen las dos condiciones siguientes:

21

Captulo 2: Estado del Arte

a. A es no singular.
b. Si
i
0

J i = M

0
0

0
O 0 0
O O M C ni xni ,

L i 1
L 0 i

i
M
0
0

es un bloque de Jordan de A , con i un valor propio real negativo de A ,


entonces A tiene un nmero par de bloques de Jordan de igual tamao ni ,
incluido J i .
4. Si A nxn tiene algn valor propio real negativo, entonces ninguna solucin
real de e X = A puede ser polinomial en A o funcin matricial primaria de A .
Como consecuencia de este teorema se tiene que si A nxn no tiene valores
propios reales negativos, entonces tiene un logaritmo real; es decir, existe una
matriz L nxn de manera que e L = A . Pueden existir diferentes matrices que
proporcionen el logaritmo de una matriz, pero slo una de ellas tiene las partes
imaginarias de sus valores propios en el intervalo ] , [ . Esta matriz se
denomina logaritmo principal de A y se denota con log A .
2.2.2.6 Funciones Seno y Coseno

Las funciones matriciales trigonomtricas juegan un papel fundamental en los sistemas


diferenciales lineales de segundo orden. Por ejemplo, el problema
d 2x
+ Ax = 0 , x(0) = x 0 , x' (0) = x0' ,
dt 2

con A nxn , tiene como solucin


x(t ) = cos( At ) y 0 + ( At ) 1 sen ( At ) x0' .

Problemas ms generales de este tipo, en los que aparece un trmino f (t ) en la parte


derecha de la ecuacin diferencial, proceden de la semidiscretizacin de la ecuacin de
ondas y de los sistemas mecnicos sin amortiguamiento. En tales casos, las soluciones
pueden expresarse en funcin de trminos que involucran senos y cosenos de matrices
([Serb79]).
Las definiciones ms usuales de la funciones seno y coseno de una matriz estn basadas
en las series de Taylor

sen A = (1) k
k =0

A 2 k +1
(2k + 1)!

A2k
cos A = (1)
.
(2k )!
k =0
k

22

Captulo 2: Estado del Arte

2.2.3 Mtodos Numricos para el Clculo de Funciones de


Matrices
2.2.3.1 Funcin Exponencial
2.2.3.1.1 Mtodos Basados en las Series de Taylor

Sea f ( z ) una funcin analtica definida sobre el espectro de A C

nxn

f ( z ) = ck z k .
k =0

Segn el Teorema 2.1, la matriz f ( A) se puede hallar mediante la expresin

f ( A) = ck Ak .
k =0

El valor aproximado de f ( A) se puede obtener truncando adecuadamente la serie


anterior. Para ello se calculan los trminos de la serie hasta que se encuentra un nmero
natural L , de manera que la representacin en coma flotante de la matriz S L sea igual a
la representacin en coma flotante de S L +1 ; es decir, fl ( S L ) = fl ( S L +1 ) , siendo
L

S L = ck Ak .
k =0

El valor aproximado de f ( A) ser, por lo tanto, fl ( S L ) .


Este mtodo puede producir un resultado inexacto debido, fundamentalmente, a los
errores de redondeo causados cuando se desprecian los trminos de la serie a partir de
un cierto orden, y al problema de la cancelacin de dgitos significativos que se produce
cuando se suman y restan nmeros del mismo orden de magnitud. Adems, a medida
que A es mayor o la dispersin de los valores propios de la matriz A aumenta, se
tiene que los errores de redondeo y los costes computacionales aumentan.
Se han diseado diversos algoritmos basados en las aproximaciones de Taylor
([PChK91], [GoVa96]), que intentan evitar esos problemas, haciendo uso de la
identidad
e A = (e A / m ) .
m

El mtodo de escalado y potenciacin consiste en seleccionar un valor m como


potencia de 2, m = 2 j , de manera que e A / m pueda calcularse con precisin y eficiencia,

y entonces calcular (e A / m ) mediante potenciacin repetida.


m

2.2.3.1.2 Mtodos Basados en los Aproximantes de Pad

Los aproximantes de Pad de orden ( p, q ) de f ( z ) = e z son funciones racionales


definidas como
R pq ( z ) = N pq ( z ) / D pq ( z ) ,

donde

23

Captulo 2: Estado del Arte

( p + q k )! p! k
z
k = 0 ( p + q )! k!( p k )!
p

N pq ( z ) =

y
( p + q k )!q!
( z ) k .
k = 0 ( p + q )! k!( q k )!
q

D pq ( z ) =

En particular, R p 0 ( z ) coincide con el polinomio de Taylor de grado p de la funcin


ez .

Los aproximantes de Pad permiten calcular aproximadamente la exponencial de una


matriz A C nxn mediante la expresin

e A R pq ( A) = D pq ( A)

] [N
1

pq

( A) .

El problema es que nicamente proporcionan buenas aproximaciones en un entorno del


origen, tal como revela la igualdad
1

e A = R pq ( A) +

(1) q
A p+ q +1 D pq ( A) 1 u p (1 u ) q e A(1u ) du ([GoVa96], captulo 11).
( p + q )!
0

Una manera de evitar el problema anterior consiste en utilizar el mtodo de escalado y


potenciacin, eligiendo para ello el menor entero positivo j de manera que
|| A || / m < 1 , siendo m = 2 j .
Con este criterio, e A / m puede calcularse mediante los aproximantes de Taylor o de
Pad. Esta ltima aproximacin ha sido tratada por numerosos autores entre los que
cabe destacar, por su anlisis de errores, a Ward [Ward77], Kammler [Kamm76],
Kallstrom [Kall73], Scraton [Scra71] y Shah [Shah71].
En [MoVa78] Moler y Van Loan demostraron que si
|| A || 1
,
2j
2
siendo A C

nxn

, entonces existe E C

nxn

tal que

R pq = e A + E ,

AE = EA ,
|| E || ( p, q ) || A || ,

( p , q ) = 23 ( p + q )

p!q!
.
( p + q )!( p + q + 1)!

Estos resultados permiten controlar el error que se puede cometer al calcular e A pues
|| e A R pq ||
|| e ||
A

( p, q ) || A || e ( p ,q )|| A|| .

Existen varias razones para utilizar los aproximantes diagonales de Pad ( p = q ) en


lugar de los no diagonales ( p q ). Si p < q , entonces, aproximadamente, 2qn 3 flops

24

Captulo 2: Estado del Arte

son necesarios para calcular la aproximacin de Pad de orden p + q , R pq ( A) . Sin


embargo, la misma cantidad de flops son necesarios para calcular la aproximacin de
orden 2q > p + q , Rqq ( A) . La conclusin es anloga para p > q .
Existen otros motivos para la utilizacin de aproximantes diagonales de Pad. Por
ejemplo, si todos los valores propios de A estn en el semiplano Re( z ) < 0 , entonces
los aproximantes calculados con p > q suelen tener errores de redondeo ms elevados
debido a problemas de cancelacin, mientras que con p < q se suelen producir mayores
errores de redondeo debido al mal condicionamiento del denominador D pq ( A) .
Existen ciertas aplicaciones donde la determinacin de p y q se basan en el
comportamiento de

lim R pq (tA).
t

Si todos los valores propios de A estn en el semiplano complejo izquierdo abierto,


entonces
lim e At = 0 ,
t

y tambin
lim R pq (tA) = 0 , si q > p.
t

Cuando q < p (incluyendo el caso q = 0 ) resulta que los aproximantes de Pad estn
acotados para valores de t elevados. Si p = q entonces los aproximantes estn acotados
cuando t tiende a infinito.
En [MoVa78] se proponen los valores ptimos de q ( p = q ) y j en las
aproximaciones de Pad y Taylor, en funcin de la norma de la matriz A . Esos valores
estn representados en la tabla que se presenta a continuacin.
(p,q)
|| A ||=10-2
|| A ||=10-1
|| A ||=100
|| A ||=101
|| A ||=102
|| A ||=103
Tabla 2.1:

=10-3
(1,0)
(3,0)
(2,1)
(5,1)
(2,5)
(4,5)
(2,8)
(4,8)
(2,11)
(5,11)
(1,0)
(3,0)

=10-6
(2,0)
(4,0)
(3,1)
(7,1)
(3,5)
(6,5)
(3,8)
(5,9)
(3,11)
(7,11)
(2,0)
(4,0)

=10-9
(3,0)
(4,2)
(4,1)
(6,3)
(4,5)
(8,5)
(4,8)
(7,9)
(4,11)
(6,13)
(3,0)
(4,2)

=10-12
(4,0)
(4,4)
(5,1)
(8,3)
(5,5)
(7,7)
(5,8)
(9,9)
(5,11)
(8,13)
(4,0)
(4,4)

=10-15
(4,0)
(5,4)
(6,1)
(7,5)
(6,5)
(9,7)
(6,8)
(10,10)
(6,11)
(8,14)
(4,0)
(5,4)

Parmetros ptimos de escalado y potenciacin, en


los aproximaciones de Pad y Taylor.

25

Captulo 2: Estado del Arte

Dada un pareja de valores y || A || , entonces el par de arriba muestra los valores


(q, j ) ptimos asociados a la aproximacin de Pad

[R (A / 2 )]

2j

qq

y el de abajo especifica la eleccin ms eficiente de (k , j ) correspondiente a la


aproximacin de Taylor

[T (A / 2 )]
j

2j

A continuacin se presenta un algoritmo ([GoVa96]) que calcula la exponencial de una


matriz mediante aproximantes diagonales de Pad.
F = dgeexp( A, ) .
Entradas: Matriz A nxn , tolerancia + .
Salida:
1
2
3

Matriz F = e A + E nxn de manera que || E || || A || .

j = max(0,1 + floor(log 2 || A || ))

A = A/ 2 j
Calcular q de manera que sea el menor entero positivo tal que

( p , q ) = 23 ( p + q )
4
5

p!q!

( p + q)!( p + q + 1)!

D = In ; N = In ; X = In ; c = 1
Para k = 1 : q
c(q k + 1)
c=
5.1
(2q k + 1)k
X = AX ; N = N + cX ; D = D + (1) k cX
5.2
Para k = 1 : j
F = F2
6.1

Algoritmo 2.1: Calcula la exponencial de una matriz mediante aproximantes


diagonales de Pad.
El coste del algoritmo anterior es 2(q + j + 1 / 3)n3 flops.
En el captulo 11 de [GoVa96] se seala la necesidad de utilizar tcnicas especiales,
basadas en el mtodo de Horner y variantes, que permiten reducir el coste
computacional de este mtodo. Si, por ejemplo, q = 8 y se define D = Dqq ( A) y
N = N qq ( A) , entonces
N qq ( A) = U + AV y Dqq ( A) = U AV ,
donde
U = c0 I n + c2 A2 + (c4 I n + c6 A2 + c8 A4 ) A4 ,
y
V = c1 I n + c3 A2 + (c5 I n + c7 A2 ) A4 ,
26

Captulo 2: Estado del Arte

siendo ci , 0 i 8 , los coeficientes del polinomio N .


Recientemente, Higham ([High04]) ha realizado una revisin del clculo de
exponenciales de matrices mediante aproximantes de Pad. En ese artculo Higham
argumenta y justifica que la mejor eleccin del valor de los aproximantes de Pad es el
de p = q = 13 , en lugar de los valores de 6 y 8 que otros autores anteriormente haban
sealado. Adems, para reducir el coste computacional, Higham utiliza tcnicas de
anidamiento para el clculo de las matrices U y V ([PaSt73]).
2.2.3.1.3 Mtodos Basados en Integracin Numrica

Como e At y e At x0 son soluciones de la EDL que tiene a la matriz A como matriz de


coeficientes, es natural considerar mtodos basados en la integracin numrica. Los
algoritmos de este tipo pueden tener un control del tamao del paso automtico,
variando automticamente el orden de la aproximacin. Los mtodos basados en
frmulas de un solo paso, frmulas multipaso y frmulas multipaso implcito (apartado
2.3.2) presentan ciertas ventajas. Son fciles de utilizar para el clculo de e At , sin
embargo, requieren un alto coste computacional.
Puesto que la ecuacin de estados de un sistema dinmico lineal continuo es un caso
particular de la EDO no lineal,
x' (t ) = f (t , x(t ), u (t )), x(0) = x0 ,
su solucin puede hallarse mediante mtodos de integracin numrica para este tipo de
ecuaciones.
Una desventaja de esta aproximacin es la gran cantidad de operaciones necesarias,
pues no hacen uso de la naturaleza especial del problema. Sin embargo, la
implementacin de un algoritmo que resuelva una EDO es necesaria en el caso de
ecuaciones de estado o de problemas control con coeficientes variables. Los mtodos
numricos para resolver la EDO
x' (t ) = f (t , x(t )), x(0) = x0 ,
son discretos; es decir, son mtodos que calculan una secuencia de aproximaciones
x k = x(t k ) para un conjunto de puntos
tk +1 = tk + tk , k = 0,1,L, n 1 ,
en donde el tamao de paso t k puede variar. En general, la aproximacin x k +1 se
calcula a partir de los valores previos x k , x k 1 , L, x0 .
Los errores en la solucin numrica de una EDO son el resultado del proceso de
discretizacin (llamado error de truncamiento) y de los errores de redondeo. El error de
discretizacin local es el error producido en un paso dado, considerando que son exactos
los valores previos y que no hay errores de redondeo en los clculos. Este error se puede
determinar de la siguiente forma. Sea la funcin y k (t ) que satisface
yk' (t ) = f (t , yk (t )) , yk (t k ) = xk .
Entonces el error local d k est dado por
d k = x k +1 y k (t k +1 ) .

27

Captulo 2: Estado del Arte

De esta forma el error local es la diferencia entre la aproximacin calculada y la


solucin terica definida por la misma condicin inicial en el instante t k +1 .
El error de discretizacin global ek en el paso k es la diferencia entre la aproximacin
calculada x k (sin tener en cuenta los errores de redondeo) y la solucin exacta x(t k )
determinada por la condicin inicial x0 , es decir,
ek = xk x(t k ) .
Claramente, el error global depende de todos los errores locales producidos en los pasos
previos.
Prcticamente, todos los cdigos actuales que resuelven EDOs controlan el error local
en cada instante, y no intentan controlar directamente el error global. Sin embargo, las
propiedades de los errores de redondeo no son estudiadas en profundidad, en parte
porque la exactitud requerida en el algoritmo de resolucin de la EDO es menor que la
precisin de la mquina.
Mtodos de Propsito General

Muchas libreras que resuelven problemas de valores iniciales en EDOs, permiten


calcular e At , para diferentes valores de t . El problema de utilizar estas libreras es
que no se aprovecha la linealidad de la ecuacin asociada al problema del clculo de
e At , y que los coeficientes que aparecen en ella son constantes.
Mtodos de Paso nico

Dos tcnicas clsicas para la resolucin de ecuaciones diferenciales son los mtodos de
Taylor y Runge-Kutta de cuarto orden. Si se considera un tamao de paso t constante,
entonces para la aproximacin de Taylor de orden cuatro, se obtienen las ecuaciones
xi +1

t 4 4

A xi = T4 (tA) xi ,
= I + tA + ... +
4
!

y para el mtodo de Runge-Kutta de orden cuatro


1
1
1
1
xi +1 = xi + k1 + k 2 + k3 + k 4 ,
6
3
3
6
siendo
k1 = tAxi , k 2 = tA( xi + k1 / 2) ,
k 3 = tA( xi + k 2 / 2), k 4 = tA( xi + k 3 ) .
En este caso, se puede comprobar que los dos mtodos produciran idnticos resultados,
si no fuese por los errores de redondeo. Como el tamao del paso es fijo, la matriz
T4 (tA) nicamente se calcula una vez. En tal caso, xi +1 se puede obtener a partir de xi
con solo realizar un producto matriz-vector. El mtodo de Runge-Kutta requiere cuatro
de estos productos por paso.
Considrese x(t ) para un valor particular de t , por ejemplo t = 1 . Si t = 1 / m ,
entonces
x(1) = x(mt ) xm = [T4 (tA)] x0 .
m

28

Captulo 2: Estado del Arte

Consecuentemente, existe una conexin cercana entre este mtodo y la aproximacin de


Taylor con escalado y potenciacin antes comentada ([Mast69], [Whit69]). El escalado
de tA y su exponencial estn aproximados por T4 (tA) . Sin embargo, incluso si m es
una potencia de 2, [T4 (tA)]
repetida.

no se obtiene normalmente mediante potenciacin

Mtodos Multipaso

Como es sabido, la posibilidad de aplicar mtodos especficos multipaso para resolver


problemas lineales con coeficientes constantes, tal como los basados en las frmulas de
Adams-Bashforth, no ha sido estudiada con detalle. Estos mtodos no equivalen a los
mtodos que utilizan escalado y potenciacin, puesto que la solucin aproximada, para
un tiempo dado, est definida en trminos de soluciones aproximadas de varios tiempos
anteriores. El algoritmo dependera de cmo se obtuviesen los vectores de comienzo y
de cmo se determinasen el tamao del paso y el orden.
2.2.3.1.4 Mtodos Polinomiales

Sea
n 1

c( z ) = det( zI A) = z n ck z k ,
k =0

el polinomio caracterstico de la matriz A C

nxn

Segn el teorema de Cayley-Hamilton, se tiene que c( A) = 0 , y por lo tanto


A n = c0 I + c1 A + L + cn1 A n1 .
Luego cualquier potencia de A puede expresarse en trminos de I , A,L, A n 1 ,
n 1

A k = kj A j ,
j =0

por lo que e At es polinomial en A con coeficientes analticos que dependen de t ,

n 1
n 1
t k Ak
t k n1
tk
= kj A j = kj A j = j A j .
k!
k = 0 k!
k = 0 k! j = 0
j =0
j =0 k =0

( 2.6 ) e At =

Los siguientes mtodos utilizan el polinomio caracterstico para calcular la exponencial


de una matriz.
Mtodo de Cayley-Hamilton

Si se calcula una aproximacin de


( 2.7 )

j (t ) = kj
k =0

tk
,
k!

entonces e At se puede obtener, de manera aproximada, a partir de la expresin ( 2.6 ).


Los coeficientes kj de ( 2.7 ) se pueden calcular del siguiente modo,

29

Captulo 2: Estado del Arte

kj
si

cj
si

kj =
c0 k 1,n1
si

c j k 1,n1 + k 1, j 1 si

k < n,
k = n,
k > n, j = 0,
k > n , j > 0.

Una dificultad es que estas frmulas recursivas son muy propensas a errores de
redondeo. Por ejemplo, si A = ( ) es una matriz de orden 1, entonces

k0 = k
y
(t ) k
k!
k =0

0 =

resulta ser el desarrollo de Taylor de et , con lo cual existen los mismos problemas que
se comentaron en el mtodo de aproximaciones de Taylor.
Otra dificultad de este mtodo es que se debe conocer el polinomio caracterstico de la
matriz. Si 1 , 2 ,L, n son los valores propios de una matriz cuadrada A , entonces el
polinomio caracterstico c( z ) se puede calcular a partir de
n

c( z ) = ( z i ) .
i =1

Aunque los valores propios pueden calcularse de forma estable, no est claro si los
coeficientes ci son aceptables. Otros mtodos para el clculo de c( z ) estn descritos
por Wilkinson en [Wilk92]. En este artculo, Wilkinson afirma que los mtodos basados
en frmulas que obtienen los coeficientes ci a partir de funciones simtricas son
inestables y costosos de implementar. Las tcnicas basadas en transformaciones de
semejanza fallan cuando A est prxima a ser derogatoria.
En el mtodo de Cayley-Hamilton, e At se expande en funcin de las matrices
I , A,L, A n 1 . Si {A0 , A1 ,L, An } es un conjunto de matrices que generan el mismo
subespacio, entonces existen funciones analticas j (t ) tales que
n 1

e At = j (t ) A j .
j =0

La viabilidad de esta aproximacin depende de la facilidad de generar A j y j (t ) .


Si se conocen los valores propios 1 , 2 ,L, n de A , entonces se pueden aplicar
cualquiera de los mtodos que se presentan a continuacin.
Mtodo de Interpolacin de Lagrange

Se basa en la expresin
n

e At = e
j =1

jt

k =1

k j

A k I n
.
j k

30

Captulo 2: Estado del Arte

Mtodo de Interpolacin de Newton

En este mtodo la expresin utilizada es


n

j 1

j =2

k =1

e At = e 1t I n + [1 , 2 ,L, j ] ( A k I n ) .
Las diferencias [1 , 2 ,L, j ] dependen de t y se definen recursivamente mediante las
expresiones
e 1t e 2 t
,
[1 , 2 ] =
1 2
[1 , 2 , L , k +1 ] =

[1 , 2 ,L, k ] [2 , 3 ,L, k +1 ]
, k 2.
1 k +1

En [Macd56] se analizan estas frmulas cuando la matriz A tiene valores propios


mltiples.
Mtodo de Vandermonde

Existen otros mtodos para calcular las matrices


n

Aj =
k =1

k j

A k I n
, j = 1,2,L, n ,
j k

que son necesarias en el mtodo de interpolacin de Lagrange. Uno de estos mtodos se


basa en la determinacin de la matriz de Vandermonde
1

1
V = M
n2
1
1n 1

L 1
L n 1

n2
2
n 1
2

n 1
n 1
n
n 1

1
n
M .
n 1
n
nn 1

Si v jk es el elemento ( j , k ) de V 1 , entonces
n

A j = v jk Ak 1
k =1

y
( 2.8 )

e At = e j A j .
t

j =1

Cuando A tiene valores propios mltiples se puede utilizar la correspondiente matriz de


Vandermonde para el clculo de las matrices A j que aparecen en la expresin ( 2.8 ).
Estos mtodos polinomiales tienen un coste computacional elevado, O(n 4 ) , por lo que
no son apropiados a menos que el valor de n sea pequeo. Si se almacenan las matrices
A1 , A2 , L , An , entonces el coste de almacenamiento es del orden O(n 3 ) , mayor que el
coste de almacenamiento necesario en los mtodos no polinomiales.
31

Captulo 2: Estado del Arte

Los siguientes mtodos no requieren el uso de los valores propios de A y, por lo tanto,
desaparece el problema asociado a la multiplicidad de los mismos. Sin embargo, otras
dificultades de la misma importancia aparecen en los algoritmos basados en estos
mtodos.
Mtodo Basado en Transformaciones Inversas de Laplace

Si L[ ] representa a la transformada de Laplace, entonces los elementos de la matriz


L[e At ] = ( sI n A) 1 ,
son funciones racionales de s . En efecto,
s nk 1
Ak ,
k =0 c ( s )
n 1

( sI n A) 1 =

donde
n 1

c( s ) = det( sI n A) = s n ck s k ,
k =0

siendo
cn k =

traza ( Ak 1 A)
, k = 1,2,L, n ,
k

Ak = Ak 1 A cn k I n , k = 1,2,L, n ,
A0 = I n .
Estas recurrencias, demostradas por Leverrier y Faddeeva [Fadd59], pueden utilizarse
para evaluar e At mediante la expresin
s nk 1
= L
Ak ,
k =0
c( s)
n 1

At

donde las trasformadas inversas


s n k 1
L

c( s)
1

pueden expresarse como series de potencias en t .


Los problemas de este mtodo son su elevado coste computacional, O(n 4 ) , y la gran
influencia que tienen en l los errores de redondeo.
2.2.3.1.5 Mtodos Basados en la Descomposicin de Matrices

Todos los mtodos de descomposicin estn basados en hallar transformaciones de


semejanza
A = XBX 1 ,
de manera que el clculo de f (B ) sea ms sencillo que el de f ( A) , puesto que
entonces, al aplicar la Propiedad 2.2, se tiene que
f ( A) = Xf ( B) X 1 .
32

Captulo 2: Estado del Arte

Estos mtodos resultan ser muy eficientes en problemas que involucran a matrices de
dimensin elevada; adems, si A es una matriz simtrica, entonces estos mtodos
proporcionan algoritmos simples y efectivos. El problema de estos mtodos es que si la
matriz X est mal condicionada, entonces se pueden producir errores de redondeo
considerables.
Mtodos Basados en la Diagonalizacin de una Matriz

Si A C nxn tiene un conjunto de vectores propios {v1 , v2 , L , vn } linealmente


independientes y se considera la matriz V = [v1 , v2 , L , vn ] , entonces se verifica la
ecuacin matricial
AV = VD ,

siendo
D = diag(1 , 2 ,L, n ) ,
con 1 , 2 ,L , n los n valores propios de la matriz A . Por lo tanto,
e A = Vdiag(e1 , e 2 ,L, e n )V 1 .
Si A es defectiva o est cerca de serlo, entonces cualquier error en A , incluyendo los
errores de redondeo producidos en su clculo y los errores de redondeo producidos en el
clculo de los vectores propios, pueden conducir a errores elevados en el clculo de e At .
Una forma de medir la cercana a la defectividad es el clculo del nmero de condicin
asociado a la matriz de vectores propios V
cond(V ) =|| V || || V 1 || .
Cuanto mayor sea este nmero ms cerca se encuentra A de ser defectiva.
Como el conjunto de matrices simples es un subconjunto denso del conjunto de matrices
cuadradas, la mayora de las matrices que aparecen en problemas de control o en otras
reas suelen ser simples. Adems, se puede equilibrar la matriz A de manera que se
minimice cond(V ) , con lo cual este mtodo no es demasiado restrictivo.
Si A tiene valores propios complejos y se desea evitar la aritmtica compleja, es
posible obtener la descomposicin
A = Vdiag( D1 , D2 ,L, Dr )V 1 ,
siendo Di , i = 1,2,L, r , bloques diagonales de dimensin 1x1 o 2x2 correspondientes a
valores propios reales o a valores propios complejos conjugados, respectivamente.
Aplicando la Propiedad 2.2 y la Propiedad 2.3, se tiene que
e A = Vdiag(e D1 , e D2 ,L, e Dr )V 1 .
Mtodo de la Matriz Compaera

Sea A nxn y B nxn la matriz compaera asociado al polinomio caracterstico de


A . Al ser B dispersa (vase Propiedad 6.2), pequeas potencias de B tienen un coste
menor que los usuales n 3 flops. Consecuentemente, se podra implementar el algoritmo
de escalado y potenciacin con un reducido coste computacional.
Por otra parte, si A no es derogatoria, entonces se tiene que
33

Captulo 2: Estado del Arte

A = YBY 1 ,
por lo que al aplicar la Propiedad 2.2, se tiene
e A = YeBY 1 .
El problema de este mtodo es que los algoritmos utilizados en la reduccin de la matriz
A a la forma compaera son extremadamente inestables y se deben evitar [Wilk92].
Si la ecuacin diferencial original consiste en una sola ecuacin lineal de orden n ,
escrita como un sistema lineal de ecuaciones de primer orden, entonces la matriz
coeficiente del sistema est en la forma de matriz compaera. Consecuentemente, la
reduccin anterior no es necesaria. Por lo tanto, se podra utilizar eficazmente el mtodo
de la matriz compaera.
A continuacin se detalla un mtodo para calcular e H , con H una matriz de
Hessenberg inferior (las matrices compaeras son un caso particular de este tipo de
matrices). Puesto que toda matriz A es similar a una matriz de Hessenberg inferior
mediante una transformacin ortogonal
A = QHQ T , Q T Q = I n ,
entonces
e A = Qe H Q T .
Para cualquier funcin analtica f (z ) definida sobre el espectro de una matriz A , se
tiene que A y f ( A) conmutan, en particular

He H = e H H .
Igualando las columnas k-simas en la igualdad anterior, se tiene que
Hf k =

i = k 1

ik

fi , k 2 ,

donde f k representa la columna k-sima de e H . Si ninguno de los elementos


superdiagonales de la matriz H es cero, entonces una vez se conoce f n las otras
columnas se obtienen a partir de la expresin
f k 1 =

Hf
hik f i , k = 2,3, L , n .

hk 1k
i=k

Puesto que f n es igual a x(1) , siendo x(t ) la solucin de la EDO


x' (t ) = Hx(t ), x(0) = [0, 0, L ,0 , 1]T ,
entonces se puede utilizar uno de los mtodos basados en la resolucin de EDOs,
comentados en 2.2.3.1.3, para el clculo de f n .
El problema de este mtodo se presenta cuando se tiene un valor pequeo pero no
despreciable de hk 1k . En este caso, los errores de redondeo producidos en el clculo de
1 / hk 1k pueden producir un clculo inexacto de e H .
En resumen, los mtodos para calcular e A que involucran la reduccin de A a las
formas de matriz compaera o de Hessenberg no resultan ser eficientes.
34

Captulo 2: Estado del Arte

Mtodo Basado en la Forma Cannica de Jordan

Segn el Corolario 2.2, si una matriz A C


Jordan

nxn

admite la descomposicin cannica de

A = Xdiag( J 1 , J 2 , L , J r ) X 1 ,

entonces
e A = Xdiag(e 1 , e
J

J 2

L, e

J r

) X 1 .

La dificultad de este mtodo es que la forma cannica de Jordan no se puede calcular


utilizando aritmtica en coma flotante. Un simple error de redondeo puede producir que
algunos valores propios mltiples se conviertan en distintos, o viceversa, alterando toda
la estructura de diag( J 1 , J 2 , L , J r ) y de X . En [GoWi76] y [KaRu74] se describen
stas y otras dificultades del mtodo.
Un algoritmo eficiente que calcula la forma cannica de Jordan de una matriz cuadrada
compleja, se puede encontrar en [KaRu74]. En este artculo se modifica la definicin de
forma cannica de Jordan para que sea aplicable en el caso de trabajar con aritmtica de
precisin finita. Con esta definicin se muestra la manera de realizar un algoritmo
preciso y estable que calcule valores propios y cadenas de vectores principales
asociados. Este algoritmo est basado en el clculo de una secuencia de
transformaciones de semejanza y sucesivas separaciones de rangos de subespacios
nulos.
Mtodos Basados en la Descomposicin real de Schur de una matriz

Sea A nxn . Segn el Teorema 6.7, A admite la descomposicin real de Schur


A = QSQ T ,
siendo Q nxn matriz ortogonal y S nxn una matriz casi triangular superior.
Aplicando la Propiedad 2.2, se tiene que f ( A) se puede obtener a partir de la expresin
f ( A) = Qf ( S )Q T .
El problema ahora es el clculo de f (S ) . Diversos mtodos se pueden utilizar para
dicho clculo como, por ejemplo, los basados en la ecuacin conmutante ( 2.1 ) (vanse
[MaHI92], [Iba97]). Estos mtodos se pueden aplicar de manera inmediata para
A C nxn ([DaH103]).
Mtodo Basado en la Diagonalizacin a Bloques de una Matriz

Este mtodo consiste en encontrar una transformacin de semejanza de la matriz


A nxn
A = XBX 1 ,
siendo X nxn una matriz bien condicionada y B nxn una matriz diagonal por
bloques, en la que cada bloque diagonal es casi triangular superior con valores propios
cercanos o incluso mltiples. El tamao de cada bloque debe ser tan pequeo como sea
posible, manteniendo alguna cota superior para cond( S ) como, por ejemplo,
cond( S ) < 100 .

35

Captulo 2: Estado del Arte

En este caso resulta que


f ( A) = Xf ( B) X 1 ,
donde la matriz f (B ) tiene una estructura diagonal por bloques, tal como se representa
en la Figura 2.1. Cada bloque diagonal de f (B ) se puede obtener a partir del
correspondiente bloque de B , aplicando cualquiera de los mtodos vistos
anteriormente.

Figura 2.1: Estructura a bloques de la matriz f (B) .


Mtodos de Separacin

Es conocido que la propiedad aditiva de la funcin exponencial no se verifica en el caso


matricial, a menos que las matrices conmuten, es decir,
e Bt e Ct = e ( B +C )t BC = CB .
Sin embargo, las exponenciales de las matrices B y C estn relacionadas con la
exponencial de la matriz B + C mediante, por ejemplo, la frmula de Trotter [Trot59]

e B +C = lim e B / m e C / m
m

Si las exponenciales de las matrices B y C se pueden calcular eficientemente, entonces


se puede utilizar la aproximacin
e A (e B / m eC / m )

para obtener la exponencial de la matriz A = B + C . Por ejemplo, si se definen la


matrices B = ( A + AT ) / 2 y C = ( A AT ) / 2 , entonces B es simtrica y C
antisimtrica, por lo que se pueden calcular eficientemente e B y e C .
2.2.3.1.6 Mtodos Basados en los Subespacios de Krylov

Como se describi en el subapartado 2.2.2.1, la solucin del problema de valores


iniciales
( 2.9 )

x& (t ) = Ax(t ) , x(0) = x0 ,

est dada por


x(t ) = e At x0 .

36

Captulo 2: Estado del Arte

En muchas ocasiones puede ser interesante calcular el producto e At x 0 sin hallar


expresamente la matriz e At . A menudo, la matriz A es de gran dimensin y dispersa,
como puede ocurrir, por ejemplo, en la discretizacin espacial de una ecuacin en
derivadas parciales.
Una serie de mtodos que calculan el producto e At v , A nxn y v n , estn basados
en los denominados subespacios de Krylov. Estos mtodos consisten, bsicamente, en
obtener una aproximacin de e At v a partir del subespacio de Krylov generado por los
vectores {v, Av, A2 v, L , A p1v} , siendo p un nmero entero positivo relativamente
pequeo con relacin a la dimensin de la matriz A . Entre estos mtodos se encuentran
el mtodo de Lanczos, para el caso en que A sea simtrica, y el mtodo de Arnoldi,
para el caso en que A no sea simtrica. En este ltimo mtodo los valores propios de la
matriz se aproximan mediante los valores propios de una matriz de Hessenberg de
dimensin p . A partir del vector v se obtiene la reduccin parcial de Hessenberg
AV p = V p H p + h p +1, p v p +1e Tp ,

donde V p tiene p columnas ortonormales, H p es una matriz de Hessenberg superior


de dimensin p , e p es la columna p-sima de la matriz I n , y v p +1 es un vector unitario
que satisface V pT v p +1 = 0 . La aproximacin que se realiza es
e At v V p e

H pt

e1T ,

siendo =|| v ||2 y e1 la primera columna de la matriz I n .


Se pueden obtener muy buenas aproximaciones con valores de p relativamente
pequeos, incluso se pueden disponer de cotas del error cometido en la aproximacin.
Por lo tanto, un problema de gran dimensin y disperso (clculo de e At ), se reemplaza
H t
por un problema denso de pequea dimensin (clculo de e p ).
Existen diversos artculos en los que se analizan estos mtodos, entre los que cabe
destacar [Kniz91] ,[GaSa92], [Saad92], [StLe96], [HoLS97] y [DrGr98].
2.2.3.2 Funcin Signo

La Propiedad 2.4 indica que la funcin signo matricial de una matriz coincide con la
raz cuadrada de la matriz identidad del mismo orden. Esta observacin permiti a
Roberts ([Robe71]) calcular el valor de la funcin signo matricial aplicando el mtodo
de Newton a la ecuacin matricial

X 2 I = 0.
Al aplicar este mtodo, se obtiene la iteracin
X0 = A,
X k +1 = 0.5( X k + X k1 ) , k = 0,1,2,L ,
la cual converge cuadrticamente a la matriz sign ( A) , siempre que la matriz A no
tenga valores propios imaginarios puros y la iteracin anterior est bien definida.
Resultados ms precisos pueden obtenerse si en lugar de utilizar la iteracin anterior se
utiliza la iteracin
37

Captulo 2: Estado del Arte

X0 = A,
X k +1 = X k 0.5( X k X k1 ) , k = 0,1,2,L .
Higham y Schreiber ([HiSh90]) sugieren utilizar una iteracin que evita el clculo de
inversas. Esta iteracin se obtiene a partir de la iteracin anterior y de la aproximacin
de Schulz
X k1 X k + ( I n X k2 ) X k .
La iteracin que se obtiene es
X k +1 = 0.5 X k (3I n X k2 ) , k = 0,1,2,L ,
la cual converge cuadrticamente a la matriz sign ( A) siempre que || I n A2 ||< 1 y se
cumplan adems las condiciones necesarias de existencia de dicha funcin matricial.
Pandey, Kenney y Laub ([PaKL90]) deducen una iteracin, basada en una forma
fraccionaria parcial explcita, definida por
( 2.10 )

X k +1 =

p
1
1
X k ( X k2 + i2 I n ) 1 , X 0 = A ,
p
i =1 i

siendo

i = 0.51 + cos

(2i 1)
2p

1
, i2 = 1 , i = 1,L, p .
i

Kenney y Laub presentan en [KeLa91] una familia de iteraciones, basadas en la


1 / 2
aproximacin de Pad de la funcin escalar f ( x) = (1 x ) , definidas mediante la
expresin
X k +1 = X k pr ( X k2 )qs ( X k2 ) 1 , X 0 = A ,
donde p r y qs son polinomios de grados r y s , respectivamente.
Aunque los mtodos anteriores convergen cuadrticamente, esta convergencia no est
asegurada en la prctica a causa de los errores cometidos en cada una de las iteraciones.
Una tcnica que mejora las iteraciones anteriores consiste en el escalado de las matrices
que aparecen en cada iteracin. Kenney y Laub presentan en [KeLa92] varios tipos de
escalado que permiten mejorar las iteraciones del mtodo de Newton sin escalado si y
solo si los factores de escalado se encuentran entre el cuadrado del factor de escalado
ptimo y 1. A continuacin se presenta una definicin del factor de escalado ptimo y
una breve explicacin de estas tcnicas.
La finalidad del mtodo de Newton con escalado consiste en encontrar 1 ,L, k , L , de
manera que la iteracin
X0 = A,
X k +1 = 0.5[ k X k + ( k X k ) 1 ] , k = 0,1,2,L .
converja hacia una matriz con valores propios 1 (vase [Balz80]). Los valores
ptimos de escalado, llamados factores de escalado ptimos, se obtienen a partir del
siguiente teorema.

38

Captulo 2: Estado del Arte

Teorema 2.8 ([KeLa92]).

Sean 1( k ) , L, (mk )

} los

valores propios de la matriz X k . Si (jk ) = j e j , donde

j > 0 , j < / 2 , 1 j m , entonces el factor de escalado ptimo k* verifica

( )

* 2
k

( 2.11 )

1 i cos i j cos j
i j i cos j j cos i

para una cierta pareja de valores i y j .

El problema de encontrar los factores de escalado ptimos del Teorema 2.8 es que es
necesario el conocimiento completo de los valores propios de la matriz X k , para
k = 0,1,2,L , y adems conocer la pareja de ndices (i, j ) de la expresin ( 2.11 ). Por
este motivo, Kenney y Laub desarrollaron en [KeLa92] una familia de mtodos de
escalado que son ptimos con respecto a una informacin incompleta de los valores
propios de una matriz. Esta familia incluye mtodos de escalado ptimos y semiptimos
basados en la estimacin de los valores propios dominantes de la matriz X k y de su
inversa, va el mtodo de potencias ([GoVa96], pgina 330) y seleccionando los valores
de escalado ptimo para esos valores propios segn la expresin ( 2.11 ).
Otras estrategias para la determinacin de factores de escalado se basan en la
determinacin de factores de escalado en la descomposicin polar de una matriz
([HoJo91], captulo 6). Entre ellas cabe destacar
|| X k1 ||2
([Barr79]),
kB =
|| X k ||2
1/ 4

1,
k

|| X k1 ||1|| X k1 ||

=
||
X
||
||
X
||
k 1
k

k = det ( X k )

F
k

1 / n

|| X k1 || F
=
|| X k || F

([High86]),

, siendo n la dimensin de la matriz X k ([Byer87]),

1/ 2

, siendo || || F norma de Frobenius ([KeLa92]).

2.2.3.3 Funcin Raz Cuadrada

Uno de los primeros intentos para el clculo de races cuadradas de un matriz aparece en
[BjHa83]. En este artculo Bjrck y Hammarling describen un mtodo rpido y estable
que calcula la raz cuadrada de una matriz compleja mediante la descomposicin real de
Schur de una matriz. Aunque este mtodo se puede aplicar a matrices reales con
nicamente valores propios reales, fracasa cuando la matriz real tiene valores propios
complejos.
Higham propone en [Hig287] extender el mtodo de Bjrck y Hammarling para
matrices reales con valores propios reales o complejos que evita la aritmtica compleja.
Varios autores han utilizado el mtodo de Newton para implementar algoritmos que
calculan races cuadradas de una matriz. A continuacin se describen algunos de ellos.
Sea A C nxn y la ecuacin matricial

39

Captulo 2: Estado del Arte

F(X ) = X 2 A = 0.
Aplicando el mtodo de Newton, se obtiene la recurrencia
X k +1 = X k F ' ( X k ) 1 F ( X k ) , k = 0,1,2,... ,
donde F ' es la derivada de Frchet ([Grif81]) de la funcin F . Mediante el clculo de
la derivada de Frchet se llega a la recurrencia
X k H k + H k X k = A X k2
, k = 0,1,2,L ,
X k +1 = X k + H k

siendo X 0 una matriz previamente seleccionada que suele coincidir con la propia matriz
A o con la matriz identidad. Esta iteracin converge cuadrticamente a una raz
cuadrada de A siempre que || X X 0 || sea suficientemente pequeo y la
transformacin lineal F ' ( X ) sea no singular.
El problema de la iteracin anterior es que en cada iteracin es necesario resolver una
ecuacin matricial de Sylvester para matrices densas, lo cual requiere la utilizacin del
mtodo de Bartels-Stewart ([BaSt71]) con el consiguiente alto coste computacional.
Una posible mejora consiste en suponer que las matrices H k y X k conmutan, con lo
que se pueden deducir las iteraciones
Yk +1 = 0.5(Yk + Yk1 A) ,
Z k +1 = 0.5( Z k + AZ k1 ) ,
las cuales, en caso de converger, lo hacen hacia una raz cuadrada de la matriz A .
El problema de estas dos iteraciones es que son numricamente inestables tal como se
demuestra en [High84]. En este mismo artculo Higham demuestra que si se utilizan las
iteraciones acopladas
Y0 = A , Z 0 = I n ,
Yk +1 = 0.5(Yk + Z k1 )
, k = 0,1,2, L ,
Z k +1 = 0.5( Z k + Yk1 )
basadas en las iteraciones de Denman-Beavers (DB) ([DeBe76]), entonces se obtiene un
algoritmo numricamente estable. Si la matriz A no tiene valores propios reales
negativos y todas las iteraciones estn bien definidas, se puede demostrar que
Yk A1 / 2 , Z k A 1 / 2 , cuando k .
Posteriormente en [Hig297], Higham establece nuevas iteraciones basadas en
iteraciones utilizadas para la funcin signo matricial:
Un par de esas iteraciones acopladas, basadas en la iteracin de Schulz de la
funcin signo matricial, evitan el clculo de inversas. Estas iteraciones se definen
mediante las expresiones
Y0 = A , Z 0 = I n ,

40

Captulo 2: Estado del Arte

Yk +1 = 0.5Yk (3I n + Z k Yk )
, k = 0,1,2, L .
Z k +1 = 0.5(3I n + Z k Yk )Yk

Si || diag( A I n , A I n ) ||< 1 , entonces Yk y Z k convergen cuadrticamente a A1 / 2


y A 1 / 2 , respectivamente.
Otro par de iteraciones acopladas estn basadas en la iteracin ( 2.10 ). Estas
iteraciones son
Y0 = A , Z 0 = I n ,

, k = 0,1,2,L.
p
1
1
1
2
Z k +1 = Z k Yk Z k + i I n

p i =1 i

Yk +1 =

( 2.12 )

p
1
1
Yk Z kYk + i2 I n
p i =1 i

Si A no tiene valores propios reales negativos, entonces las iteraciones Yk y Z k


definidas en ( 2.12 ) convergen a A1 / 2 y A1 / 2 , respectivamente.
Al igual que ocurre con la funcin signo matricial, es conveniente utilizar tcnicas de
escalado que aceleren la convergencia de los mtodos descritos anteriormente. Estas
tcnicas aplicadas a la iteracin DB se pueden expresar como
Yk +1 = 0.5[ k Yk + ( k Z k ) 1 ]
, k = 0,1,2, L .
Z k +1 = 0.5[ k Z k + ( k Yk )]1
De igual modo, se pueden utilizar tcnicas del escalado para las iteraciones ( 2.12 ).
Basndose en la tcnica de escalado de la funcin signo matricial descrita en [Byer87],
Higham, en ([Hig294], determina factores de escalado para el clculo de races
cuadradas de una matriz. En este artculo propone utilizar el factor de escalado

k = det(Yk ) det( Z k )

1 /( 2 n )

De este modo, la descomposicin LU se puede utilizar tanto para hallar las inversas de
las matrices Yk y Z k como para determinar el factor k .
Otra estrategia utilizada por Hoskins y D. J. Walton en [HoWa78] consiste en estimar el
radio espectral ([HoJo91], captulo 1) de las matrices Pk , Pk1 , Qk y Qk1 .
2.2.3.4 Funcin Raz p-sima de una Matriz

En [HoWa79], Hoskins y Walton proponen la iteracin


X0 = A,
X k +1 =

1
[( p 1) X k + AX k1 p ] ,
p

basada en el mtodo de Newton, que permite calcular la raz p-sima de una matriz A
simtrica y definida positiva. Sin embargo, como se demuestra en [Smit03], dicha
iteracin es inestable, a menos que A est extremadamente bien condicionada. Adems,

41

Captulo 2: Estado del Arte

esa iteracin generalmente no converge para otros tipos de matrices que admiten races
p-simas.
En [TsSY88], Tsai, Shieh y Yates definen iteraciones cuya velocidad de convergencia
es un parmetro. Las iteraciones acopladas que permiten una convergencia cuadrtica a
una raz p-sima se definen mediante las expresiones
G0 = A , R0 = I n ,
Gk +1 = Gk [(2 I n + ( p 2)Gk )( I n + ( p 1)Gk ) 1 ] p
, k = 0,1,2,L ,
Rk +1 = Rk (2 I n + ( p 2)Gk ) 1 ( I n + ( p 1)Gk )
cumplindose que
Gk I n y Rk A1 / p , cuando k .
La expresin integral
1/ p

psen ( / p)

A (x p + A) dx ,
1

puede deducirse a partir de una identidad estndar en el campo complejo ([Bhat97],


[MaHI92]). En [HaHS00], M. Hasan, J. Hasan y L. Scharenroich proponen calcular
aproximadamente la integral anterior mediante cuadratura Gaussiana.
En [Smit03], Smith muestra un mtodo basado en la descomposicin real de Schur de
una matriz para el clculo de races p-simas de una matriz que es estable
numricamente. A continuacin se detalla ese mtodo. Segn el Teorema 6.7, dada una
matriz A nxn , entonces existe una matriz casi triangular superior S nxn y una
matriz ortogonal Q nxn de manera que
A = QSQ T .
Para calcular la raz p-sima U nxn de la matriz S , se siguen los siguientes pasos:
1

Determinar U ii y Rii(q ) ( i = 1,2,L, m , q = 1,2,L, p 2 ) mediante las siguientes


expresiones
U ii = S ii1/ p , Rii(1) = U ii2 , L , Rii( p 2 ) = U iip 1 , i = 1,2,L, m .

Para k = 1 : n 1
2.1
Para i = 1 : n k
2.1.1 Calcular U i ,i + k , resolviendo las ecuaciones
p 1

p 2

h =0

m =0

S ij = U iip 1hU ijU hjj + U iip 2m Bij( m ) ,


siendo Bij( m ) =
(q)
i ,i + k

2.1.2 Calcular R

j 1

k = i +1

ik

Rij( m ) .

, q = 1,2,L, p 2 mediante las expresiones

q 1

h =0

m =0

Rij( q ) = U iiq hU ijU hjj + U iiq 1 m Bij( m ) .

42

Captulo 2: Estado del Arte

Una vez se ha determinado la matriz U nxn , la raz p-sima X se obtiene a partir de


la expresin
X = QUQ T .
Recientemente en [BiHM04], Bini, Higham y Meini han presentado una variedad de
frmulas que permiten calcular la raz p-sima de una matriz mediante tcnicas de
integracin numrica.
2.2.3.5 Funcin Logaritmo

El logaritmo de una matriz A C nxn cercana a la matriz identidad de orden n , puede


encontrarse fcilmente utilizando la serie de Taylor
log A = log( I n B) = B B 2 / 2 B 3 / 3 L ,
siendo B = I n A . Desafortunadamente, si A no se encuentra cerca de la matriz
identidad, entonces los mtodos basados en esta serie o no convergen o lo hacen muy
lentamente.
Una forma de solucionar este problema consiste en utilizar la igualdad
( 2.13 )

log A = 2 k log A1 / 2 ,
k

pues al hacer k se tiene que A1 / 2 I n , y as se evita el problema comentado


anteriormente. Este mtodo, desarrollado por Kenney y Laub ([KeL289]), tiene como
nombre mtodo inverso de escalado y potenciacin, puesto que se trata del proceso
inverso al mtodo de escalado y potenciacin utilizado en el clculo de la exponencial
de una matriz. En ese artculo Kenney y Laub proponen calcular las races cuadradas
mediante el mtodo basado en la descomposicin real de Schur de una matriz que se
describe en [BjHa83] y [Hig287].
k

Los mtodos de clculo de funciones de matrices basados en la descomposicin real de


Schur de una matriz tienen el problema de no funcionar bien cuando los valores propios
de la matriz estn cercanos entre s ([BjHa83], [Parl76]). En [KeLa98] Kenney y Laub
presentan un mtodo, basado en esa descomposicin, que evita este problema utilizando
para ello una nueva expresin de la derivada de Frchet ([Grif81]) del logaritmo en
trminos de la funcin ( x) = tanh( x) / x , junto a una aproximacin de Pad de la
funcin .
En [ChHi01], Cheng, Higham, Kenney y Laub utilizan una variante del mtodo inverso
de escalado y potenciacin en la que las races cuadradas se aproximan mediante una
iteracin matricial y ciertos parmetros se eligen dinmicamente para minimizar el coste
computacional, y de este modo alcanzar la precisin necesaria. Para ello utilizan la
frmula
log A = 2 s log Y ( s ) E1 2 E 2 L 2 s 1 E s , Ei = log Y ( i ) Z ( i ) ,
donde Y (i ) y Z (i ) son los valores finales de una iteracin del tipo DB aplicada a Y ( i 1) .
Esta iteracin est definida por las expresiones
M k +1 = 0.5[ I n + 0.5( M k + M k1 )] , M 0 = Y (i 1)
Yk +1 = 0.5Yk ( I n + M k1 ) , Y0 = Y ( i 1) ,

43

Captulo 2: Estado del Arte

Z k +1 = 0.5Z k ( I n + M k1 ) , Z 0 = I ,
siendo M k = Yk Z k .
Tanto el mtodo descrito en [KeL289] como el descrito en [ChHi01] deben evaluar un
aproximante diagonal de Pad
rm ( x) = p m ( x) / q m ( x) = log(1 + x) + O( x 2 m +1 ) ,
sobre matrices cuadradas A que cumplen la condicin || A ||< 1 , siendo m 16 y || . ||
cualquier norma matricial subordinada.
En los dos mtodos anteriores la forma de calcular rm (x) est basada en el mtodo de
Horner modificado para el caso de funciones matriciales racionales. Sin embargo, varias
alternativas se han realizado a la hora de calcular rm (x ) , como las propuestas por Dieci
y Papini en [DiPa00]. Estos autores argumentan que para calcular aproximantes
diagonales de Pad es preferible utilizar frmulas de cuadratura, y de este modo evitar
el mal condicionamiento que tienen las matrices que aparecen en el denominador de la
expresin matricial de los aproximantes de Pad.
Ms recientemente Higham ([High01]) ha realizado un estudio de diversos mtodos
basados en los aproximantes de Pad, en las fracciones continuas y en las fracciones
parciales:
Para los aproximantes de Pad, Higham analiza los mtodos de Horner, PatersonStockmeyer-Van Loan ([Pate73]) y Van Loan ([VanL79]).
Para las fracciones continuas, Higham considera la fraccin continua ([BaGr96])
rm ( x) =

c1 x
c2 x
c3 x

1+
1+

1+

c2 m 1 x
1 + c2 m x

donde
c1 = 1 , c 2 j =

j
j
, c 2 j +1 =
, j = 1,2, L .
2(2 j 1)
2(2 j + 1)

Para fracciones parciales, Higham define

(j m ) x
,
rm ( x) =
( m)
j =1 1 + j x
m

)
)
los pesos y (m
los nodos de la regla de cuadratura de Gausssiendo (m
j
j

Legendre en el intervalo [0,1] .


Los resultados de este estudio confirman que los mtodos basados en los aproximantes
de Pad y el mtodo basado en fracciones continuas sufren de una cierta inestabilidad
cuando la norma de la matriz tiene un valor cercano a 1 y m es grande.
Desde el punto de vista computacional, las mejores elecciones corresponden a las
aproximaciones basadas en Pad y la correspondiente a la expansin en fracciones
44

Captulo 2: Estado del Arte

parciales; pero esta ltima implementacin, junto con la versin de los aproximantes de
Pad va Paterson-Stockmeyer-Van Loan, son ms ricas en operaciones del nivel 3 de
BLAS. Desde el punto de vista de coste de almacenamiento, la eleccin del mtodo de
Pad va Paterson-Stockmeyer-Van Loan es el peor, aunque para valores habituales de
m ( m 16 ) el coste de almacenamiento puede ser admisible. El mtodo basado en la
expansin en fracciones parciales es fcilmente paralelizable y adems no sufre de la
inestabilidad cuando se tienen matrices con norma cercana a 1 y valores de m grandes.
Finalmente, Higham concluye que, en trminos generales, el mejor mtodo es el de
expansin en fracciones parciales, aunque en casos especiales, como por ejemplo
cuando se utilizan mquinas de altas prestaciones en las que los productos de matrices
son ms rpidos que las inversiones y se dispone de suficiente memoria, el mtodo de
Paterson-Stockmeyer-Van Loan puede ser la mejor eleccin, siempre que || A || sea
significativamente menor que uno.
2.2.3.6 Funcin Coseno

El siguiente mtodo calcula el coseno de una matriz A C nxn mediante la


aproximacin de Pad. Aunque el algoritmo original se encuentra en [SeBl80], en este
subapartado se describe una mejora de l ([Hig203]). Este algoritmo consta,
bsicamente, de cuatro etapas:
Etapa 1: Reducir la norma de la matriz.

Se aplican sucesivamente tres tcnicas para reducir la norma de la matriz A :


En primer lugar se aplica una transformacin de bajo coste que explota la relacin
de periodicidad de la funcin coseno,
cos( A qI n ) = (1) q cos( A) , q Z .
El entero q se elige de manera que minimice el valor de || A qI n || . Este valor
no es sencillo de calcular, a menos que se haga algn tipo de aproximacin como
la que se apunta en el citado artculo. Esta aproximacin consiste en determinar el
entero q ms cercano a t = traza ( A) / n que minimice el valor de || A1 || , siendo
A1 = A qI n .
A continuacin se aplican tcnicas de equilibrado sobre la matriz A1 obtenida en
el paso anterior. El equilibrado de A1 consiste en encontrar una matriz diagonal
D , de manera que la matriz A2 = D 1 A1D cumpla que para cada valor i ,
i = 1,2,L, n , la 1-norma de su i-sima fila y la 1-norma de su i-sima columna
sean de magnitud semejante.
Por ltimo, se realiza el escalado de la matriz A2 . Para ello se determina el valor
de un entero j que cumpla
2 j || A2 || 1 < 2 j +1 || A2 || ,
y se define la matriz
A3 = A2 / m ,
siendo m = 2 j .

45

Captulo 2: Estado del Arte

Etapa 2:

Calcular la aproximacin de Pad.

El clculo de los coeficientes de los polinomios que aparecen en la aproximacin de


Pad se realiza utilizando computacin simblica (Maple y Matemtica). Con los
valores calculados se obtiene la matriz
B3 = R pq ( A3 ) cos A3 .
Etapa 3:
etapa.

Aplicar las transformaciones inversas a las realizadas en la primera

La transformacin inversa del escalado consiste en determinar B2 = cos A2 a partir de


B3 = cos A3 . Para ello, se utiliza el siguiente cdigo:
B2 = B3
Para i = 0 : j 1
B2 = 2 B22 I n .
2.1

1
2

Como se puede observar, el clculo realizado en el bucle est basado en la identidad


cos 2 B = 2 cos 2 B I n , B C

nxn

Las otras dos transformaciones inversas consisten en determinar B1 a partir de B2 y B


a partir de B1 , utilizando para ello las expresiones
B1 = DB2 D 1
y
B = (1) q B1 .
Esta ltima frmula est basada en la identidad
cos A = (1) q cos( A qI n ) , A C

nxn

2.2.3.7 Caso General

En ([DaH103]), se detalla un mtodo general para calcular funciones de matrices


complejas basado en la forma de Schur. Este mtodo utiliza la siguiente propiedad.
Propiedad 2.7 ([Parl74]).

Si S = [ S ij ] tiene una estructura triangular superior por bloques, entonces F = f (S )


tiene la misma estructura por bloques F = [ Fij ] , cumplindose que para i < j ,
j 1

S ii Fij Fij S jj = Fik S kj

( 2.14 )

k =i

k =i +1

ik

Fkj .

El algoritmo bsicamente se divide en cuatro etapas:


Obtener la descomposicin de Schur de la matriz A ,
A = QSQ * ,
con S C

nxn

triangular superior y Q C

nxn

unitaria.

46

Captulo 2: Estado del Arte

Reordenar la forma de Schur de la matriz A , agrupando los valores propios


cercanos. Para ello se calcula una transformacin bien condicionada definida por
una matriz V C nxn de manera que la matriz S = VSV 1 tenga los valores propios
cercanos en el mismo cluster. Esta matriz puede estructurarse en bloques
( F = [ Fij ]mxm ) de tal modo que los bloques diagonales correspondan a los clusters
de valores propios cercanos.
Calcular F = f (S ) , hallando los bloques diagonales, Fii = f ( S ii ) mediante la
aproximacin de Taylor adaptada a matrices triangulares superiores con valores
propios cercanos, y los bloques no diagonales mediante la expresin ( 2.14 ).
Hallar B = f ( A) , calculando B = QV 1 FVQ * .
A continuacin se presenta el algoritmo de Schur-Parlet aparecido en [DaH103].
Entradas: Matriz A C
Salida:
1
2
3

nxn

y f (z ) funcin analtica.

Matriz B = f ( A) C

nxn

[Q, S ] = schur( A)
[V , S ] = reorschur( S )
Calcular F = f (S ) :
3.1
Para i = 1 : m
3.1.1 Fii = f ( S ii )
3.1.2 Para j = i 1 : 1 : 1
3.1.2.1 Calcular Fij resolviendo la ecuacin matricial de
Sylvester
j 1

S ii Fij Fij S jj = S ik Fkj


k =i

k =i +1

ik

S kj

B = QV 1 FVQ *

Algoritmo 2.2: Algoritmo de Schur-Parlett.

2.2.4 Software de Funciones de Matrices


El software disponible para el clculo de funciones de matrices es escaso, salvo el
disponible en entornos comerciales de desarrollo como MATLAB.
2.2.4.1 Expokit

Se trata de un paquete de software numrico para el clculo de exponenciales de


matrices densas o dispersas, reales o complejas, escrito en FORTRAN y MATLAB, y
disponible en http://www.maths.uq.edu.au/expokit/. Ms concretamente, Expokit
permite calcular exponenciales de matrices de pequeo tamao, mediante
aproximaciones de Chebyshev y de Pad, y productos de la forma e At v para A matriz
dispersa y v vector, mediante un algoritmo basado en los subespacios de Krylov
(procesos de Arnoldi y Lanczos).
2.2.4.2 Proyecto Parallel Computation of Matrix Functions

Fruto de un proyecto de investigacin denominado Parallel Computation of Matrix


Functions, y desarrollado durante los aos 1998 y 2001, se publicaron diversos
47

Captulo 2: Estado del Arte

artculos y se desarrollaron un conjunto de rutinas escritas en FORTRAN, denominado


LogPack, que calculan logaritmos de matrices basados en el mtodo de escalado
inverso y potenciacin ([ChHi01]). Estas rutinas se encuentran disponibles en la
direccin de Internet http://www.ma.man.ac.uk/~higham/PCMF/.
2.2.4.3 Proyecto Numerical Analysis of Matrix Functions

El proyecto de investigacin Numerical Analysis of Matrix Functions, desarrollado


durante los aos 2001 y 2004, y auspiciado por la agencia de investigacin
Engineering and Physical Sciences Research Council (EPSRC), ha permitido un
notable desarrollo terico y prctico del clculo de funciones de matrices:
Mtodo general para el clculo de funciones de matrices complejas ([DaH103]).
Mtodos para calcular funciones trascendentes y races p-simas.
Tcnicas que permiten obtener f ( A)b , siendo f ( z ) funcin analtica, A matriz
cuadrada y b vector, sin calcular explcitamente f ( A) ([DaH203]).
Teora de la perturbacin y nmeros de condicin asociados al clculo de
funciones de matrices ([Davi04]).
Teora y mtodos para las funciones matriciales no primarias ([HiMN03],
[HiMN03], [DaSm02]).
El software disponible (http://www.maths.man.ac.uk/~higham/NAMF/), consiste en un
conjunto de ficheros de tipo M y de tipo MEX de MATLAB, para el clculo de
funciones de matrices basados en el Algoritmo 2.2.

2.3 Ecuaciones Diferenciales Ordinarias (EDOs)


2.3.1 Definiciones y Propiedades
La forma general de una EDO con valores iniciales es

x' (t ) = f (t , x(t )) , t 0 t t f ,

( 2.15 )

x(t 0 ) = x0 ,
siendo x(t ) n y f una funcin vectorial.
Definicin 2.5

Se dice que una funcin f (t , x) satisface la condicin de Lipschitz con respecto a la


variable x en el dominio [t 0 , t f ]x n , si verifica que existe una constante K > 0 ,
denominada constante de Lipschitz de la funcin f (t , x) , de manera que
|| f (t , x1 ) f (t , x2 ) || K || x1 x2 || , (t , x) [t 0 , t f ]x n .

Teorema 2.9 [Flet80])

Sea f (t , x) continua y lipschitziana en el dominio [t 0 , t f ]x n , entonces la EDO de


valores iniciales ( 2.15 ) tiene una nica solucin en [t 0 , t f ]x n .

48

Captulo 2: Estado del Arte

Cuando se aplican mtodos numricos para la resolucin de EDOs es necesario, en


ocasiones, exigir a f (t , x) condiciones ms fuertes que la continuidad y ser
lipschitziana. Por ejemplo, exigir que f (t , x) sea analtica o que sea diferenciable hasta
un cierto orden.
Un concepto muy utilizado en la resolucin numrica de EDOs es el de problemas de
tipo rgido (stiff en ingls). Aunque no existe una definicin de tal concepto, cada
autor sugiere una aproximacin de su significado intuitivo. Esto es as porque, an no
siendo posible dar su definicin rigurosa y que sta sea aplicada en teoremas o
propiedades, su uso es muy til cuando se trata de analizar las propiedades numricas de
un determinado mtodo de resolucin de EDOs. Dos aproximaciones se presentan a
continuacin. Una de ellas fue la primera que introdujo este concepto aplicado a
cualquier tipo de ecuaciones diferenciales y la segunda a EDOs.

Las ecuaciones diferenciales de tipo rgido son aquellas ecuaciones donde ciertos
mtodos implcitos, en particular los mtodos BDF, funcionan mejor, normalmente
mucho mejor, que los mtodos explcitos (Curtiss y Hirschfelder, 1985).

Se dice que una EDO es rgida si su solucin numrica para algunos mtodos
requiere (quizs en una porcin del intervalo donde est definida la solucin) una
disminucin del tamao de paso para evitar la inestabilidad ([Iser98]).

2.3.2 Mtodos Numricos para la Resolucin de EDOs


Los mtodos numricos ms utilizados para la resolucin de la EDO ( 2.15 ) se suelen
clasificar en dos grandes grupos (vase [AsPe91]): mtodos de un solo paso, como el
mtodo de Euler, los -mtodos y los mtodos de Runge-Kutta, y mtodos de varios
pasos o multipaso como los mtodos de Adams-Basforth, Adams-Moulton y BDF.
Estos mtodos conducen a una ecuacin en diferencias, representada por un sistema de
ecuaciones algebraicas, cuya solucin permite obtener valores aproximados a la
solucin del problema original en un conjunto discreto de puntos. Si se desean
aproximaciones continuas en un intervalo, la solucin en los puntos discretos puede ser
interpolada, aunque tambin se han desarrollado mtodos de Runge-Kutta continuos
capaces de proporcionar soluciones aproximadas en los puntos intermedios.

2.3.3 Mtodos de un solo Paso


Estos mtodos se caracterizan por utilizar nicamente informacin del paso anterior. Un
paso tpico de estos mtodos consiste en obtener una aproximacin xn x(t n ) a partir
de la aproximacin xn1 obtenida en el paso anterior.
2.3.3.1 Mtodos Basados en las Series de Taylor

Si se trunca el desarrollo en serie de Taylor de la funcin x(t ) alrededor del punto t n1 ,


se tiene
( 2.16 )

xn = xn 1 + hxn' 1 +

h 2 ''
h p p)
xn 1 + L +
xn 1 ,
p!
2!

siendo h = t n t n1 .
Si las derivadas parciales con respecto a x y a t se evalan en el punto (t n1 , y n1 ) ,
entonces
49

Captulo 2: Estado del Arte

xn' 1 = f (t n1 , xn1 ) f ,
xn'' 1 = f t + f y f ,
xn'''1 = f tt + 2 f ty f + f y f t + f yy f 2 + f y2 f , etc.

La sustitucin de las expresiones anteriores en ( 2.16 ) permite obtener el valor de xn .


Aunque el error cometido en un paso puede ser muy pequeo, el problema es que se
deben conocer las derivadas parciales de la funcin f (t , x) hasta un cierto orden.
2.3.3.2 Mtodos de Runge-Kutta
Definicin 2.6

Un mtodo de Runge-Kutta de s etapas se define a partir de las siguientes expresiones


s

X i = xn1 + h aij f (t n1 + c j h, X j ) , 1 i s ,
j =1

xn = xn1 + h bi f (t n1 + ci h, X i ) .
i =1

Los mtodos de Runge-Kutta se pueden representar a partir de los coeficientes aij y bi ,


como
c1
c2
M
cs

a11
a21
M
a s1
b1

L a1s
L a2 s
O M ,
L a ss
L bs

a12
a22
M
as 2
b2

siendo
s

ci = aij , i = 1,2, L , s .
j =1

Definicin 2.7

El mtodo de Runge-Kutta se dice explcito si aij = 0 para todo j i .


Algunos ejemplos clsicos de los mtodos de Runge-Kutta se muestran a continuacin.

Mtodo de Euler hacia adelante.


0 0
1

Familia uniparamtrica de mtodos de segundo orden.


0

1
2

0
0 .
1
2

50

Captulo 2: Estado del Arte

Mtodo trapezoidal explcito ( = 1 ).


Mtodo del punto medio explcito ( = 1 / 2 ).

Familia uniparamtrica de mtodos de tercer orden de tres etapas.


0
2
3
2
3

0
2
3

2 1

3 4
1
4

1
.
0
4
3

4

Mtodo de Runge-Kutta clsico de cuarto orden.


0
1
2
1
2
1

0
1
2

0.

1
1
3

0
1
6

1
2
0
1
3

0
0
1
6

Definicin 2.8

El mtodo de Runge-Kutta se dice implcito si aij 0 para algn j i .


La mayor parte de los mtodos de Runge-Kutta implcitos provienen de mtodos
basados en frmulas de cuadratura, algunos de los cuales se presentan a continuacin.

Mtodos de Gauss.
Mtodo del punto medio implcito.
1
2

1
2.
1

Mtodos de Radau: Corresponden a frmulas de orden 2 s 1 que provienen de


frmulas de cuadratura donde uno de los extremos est incluido ( c1 = 0 o cs = 0 ).
Mtodo de Euler hacia atrs.
1 1
1

Mtodo de Lobatto: Corresponden a frmulas de orden 2 s 2 que provienen de


frmulas de cuadratura en las que la funcin es muestreada en ambos lados del
intervalo.
Mtodo trapezoidal.

51

Captulo 2: Estado del Arte

0
1

0
1
2
1
2

0
1
.
2
1
2

Mtodo de Lobatto para s = 3 .


0
1
2
1

0
5
24
1
6
1
6

0
1
3
2
3
2
3

0
1

24
1 .
6
1
6

2.3.3.3 Mtodos Multipaso Lineales


Definicin 2.9

Un mtodo multipaso lineal de k pasos se define a partir de la expresin


( 2.17 )

j =0

j =0

j xn j =h j f n j ,

siendo
f n j = f (tn j , xn j ) ,
y j y j , para j = 0,1, L , k , parmetros caractersticos del mtodo.
En la expresin anterior se supone que 0 0 (para evitar el escalado se elige 0 = 1 )
y | k | + | k | 0 .
Definicin 2.10

Un mtodo multipaso se dice explcito si 0 = 0 . En caso contrario, se dice que el


mtodo es implcito.
2.3.3.3.1 Mtodos de Adams

Si se integra la EDO ( 2.15 ), se tiene que

x(tn ) = x(tn 1 ) +

tn

f (t , x(t ))dt .

t n 1

En estos mtodos, el integrando f (t , x(t )) se aproxima mediante un polinomio


interpolador utilizando como puntos base algunos valores f (ti , xi ) calculados
previamente. Segn esto, los valores de los parmetros j en los mtodos Adams son

0 = 1 , 1 = 1 y j = 0 para j > 1 .

52

Captulo 2: Estado del Arte

Los mtodos de Adams explcitos, denominados tambin mtodos de Adams-Bashforth,


se obtienen interpolando f (t , x) a partir de los valores previos de f (t , x) en los
instantes t n1 , t n2 , L , t nk . Estos mtodos se definen a partir de la frmula
k

xn = xn1 + h j f n j ,
j =1

donde

i
i ,
i = j 1 j 1
k 1

j = (1) j 1

s
ds .
i
0

i = (1)
i

Esta frmula corresponde a un mtodo de k pasos puesto que utiliza informacin de los
k instantes anteriores t n1 , t n2 , L , t nk .
El mtodo de Adams-Bashforth de un paso corresponde al mtodo de Euler hacia
delante. Si se considera k = 2 , 0 = 1 y 1 = 1 / 2 , se obtiene la frmula de AdamsBashforth de dos pasos
1
3

xn = xn1 + h f n1 f n2 .
2
2

La frmula de Adams-Bashforth de tres pasos viene dada por


16
5
23

xn = xn 1 + h
f n 1
f n2 +
f n 3 .
12
12
12

En la siguiente tabla vienen reflejados los valores caractersticos de las frmulas de


Adams-Bashforth hasta seis pasos.

=1

=2

=3

=4

=5

=6

3/2

-1/2

23/12

-16/12

5/12

55/24

-59/24

37/24

-9/24

1901/720

-2774/720

2616/720

-1274/720

251/720

4277/1440 -7923/1440

9982/1440

-7298/1440

2877/1440 -475/1440

Tabla 2.2:

Coeficientes del mtodo de Adams-Bashforth.

Los mtodos de Adams implcitos, denominados tambin mtodos de Adams-Moulton,


se caracterizan por interpolar la funcin f (t , x) en puntos base de instantes anteriores, y

53

Captulo 2: Estado del Arte

por tanto con valores conocidos, y en el correspondiente al instante t n , con valor


desconocido. La frmula que los define viene dada por
k

xn = xn1 + h j f n j .
j =0

En la siguiente tabla vienen reflejados los valores caractersticos de las frmulas de


Adams-Moulton hasta seis pasos.

r=1 k=1 1
r=2 k=1 1/2

1/2

r=3 k=2 5/12

8/12

-1/12

r=4 k=3 9/24

19/24

-5/24

1/24

r=5 k=4 251/720

646/720

-264/720

106/720

-19/720

-482/1440

-173/1440

r=6 k=5 475/1440 1427/1440 -798/1440


Tabla 2.3:

27/1440

Coeficientes del mtodo de Adams-Moulton,


siendo r el orden del mtodo.

2.3.3.3.2 Mtodos BDF

Se trata de la familia de mtodos ms utilizada para problemas de tipo rgido. Los


mtodos BDF se caracterizan porque f (t , x) se evala nicamente en el extremo de la
derecha del paso (tn , xn ) . Estos mtodos se obtienen al derivar el polinomio que
interpola los valores anteriores de x , e igualar la derivada de x en t n a f (tn , xn ) . La
frmula que define al mtodo BDF de orden r 1 es
( 2.18 )

xn = j xn j + h f (tn , xn ) .
j =1

Los coeficientes j , para j = 1,2, L , r , y se muestran en la siguiente tabla.

54

Captulo 2: Estado del Arte

r =1

r=2

2/3

4/3

-1/3

r =3

6/11

18/11

-9/11

2/11

r=4

12/25

48/25

-36/25

16/25

r =5

60/137 300/137 -300/137 200/137 -75/137 12/137

Tabla 2.4:

-3/25

Coeficientes del mtodo BDF.

2.3.4 Linealizacin a Trozos de EDOs


La resolucin de EDOs que se presenta en este apartado ([Garc98]), se basa en la
aproximacin, en cada subintervalo, de la ecuacin diferencial no lineal por una
Ecuacin Diferencial Lineal (EDL).
Sea la EDO con valores iniciales

x' (t ) = f (t , x(t )) , t [t 0 , t f ] ,

( 2.19 )

x(t0 ) = x0 n ,
cumpliendo f (t , x) las condiciones necesarias para que el problema anterior tenga
solucin y adems sea nica.
Dada una particin t 0 < t1 < L < t l 1 < t l = t f , es posible aproximar la EDO ( 2.19 )
mediante el conjunto de EDLs resultantes de la aproximacin lineal de f (t , x(t )) en
cada subintervalo, es decir,
( 2.20 ) y ' (t ) = f i + J i ( y (t ) yi ) + gi (t ti ) , t [t i , t i +1 ] , y (t i ) = yi , i = 0,1,L, l 1 ,
siendo

f i = f (ti , yi ) n ,
Ji =

f
(ti , yi ) nxn la matriz Jacobiana de la funcin f (t , x) evaluada en (t i , y i ) ,
x

gi =

f
(ti , yi ) n el vector gradiente de la funcin f (t , x) evaluado en (t i , yi ) .
t

Para resolver la EDO ( 2.19 ), en primer lugar se resuelve la EDL asociada al primer
subintervalo
y ' (t ) = f 0 + J 0 ( y (t ) y0 ) + g 0 (t t0 ) , t [t 0 , t1 ] ,
con valor inicial y (t 0 ) = y0 = x(t 0 ) = x0 .
La solucin viene dada por

55

Captulo 2: Estado del Arte

y (t ) = y0 + e J 0 ( t ) [ f 0 + g 0 ( t 0 )]d , t [t 0 , t1 ] ,
t0

lo que permite calcular y1 = y (t1 ) .


A continuacin se resuelve la EDL asociada al segundo subintervalo
y ' (t ) = f1 + J1 ( y (t ) y1 ) + g1 (t t1 ) , t [t1 , t 2 ] ,

con valor inicial y (t1 ) = y1 , obtenindose la solucin


t

y (t ) = y1 + e J1 ( t ) [ f1 + g1 ( t1 )]d , t [t1 , t 2 ] .
t1

En general, la solucin de la EDL asociada al i-simo subintervalo


( 2.21 )

y ' (t ) = f i + J i ( y (t ) yi ) + gi (t ti ) , t [ti , ti +1 ] , 0 i < l ,

con valor inicial y (t i ) = yi , resulta ser


t

( 2.22 )

y (t ) = yi + e J i (t ) [ f i + g i ( t i )]d , t [ti , ti +1 ] .
ti

Si J i es invertible, entonces y (t ) se puede obtener mediante la expresin


( 2.23 )

y (t ) = yi J i1[ f i + g i (t t i ) J i2 g i + e J i (t ti ) ( J i1 f i + J i2 g i )] .

Teorema 2.10 ([Garc98]).

Dada la EDO con valores iniciales


x' (t ) = f (t , x(t )) ,
x(t 0 ) = x0 ,
con x = x(t ) n , t [t 0 , t f ] . Si las derivadas parciales de segundo orden de f (t , x)
estn acotadas en [t 0 , t f ]x n , entonces el mtodo de linealizacin a trozos es
convergente, verificndose adems que

Ct 2 Knt
x(t n ) y n
e
1 ,
K
siendo y n la solucin aproximada obtenida mediante el mtodo de linealizacin a
trozos en el instante t n , t = max(ti ) , t i = t i +1 t i , con K y C constantes
0i <l

dependientes del problema.

2.3.5 Software para la Resolucin de EDOs


Existe en la actualidad una gran cantidad de software que permite resolver EDOs para
problemas rgidos y no rgidos, as como para problemas de pequea y gran dimensin.
Este software se puede dividir en cuatro grupos:
Entornos de programacin comerciales como MATLAB (www.mathworks.com),
Mathematica (www.wolfram.com) y Maple (www.maplesoft.com). La ventaja de
56

Captulo 2: Estado del Arte

estos programas es su fiabilidad, facilidad de uso, el disponer de numerosas


herramientas y tener un excelente control de calidad y soporte.
Entornos de programacin de dominio pblico como Scilab (www.scilab.org) y
Octave (www.octave.org). Se trata de paquetes de software con algunas de las
ventajas anteriores, siendo adems gratuitos.
Libreras de software numrico, como el desarrollado por la empresa NAG
(Numerical Algorithms Group, www.nag.co.uk) o IMSL de la empresa Absoft
Corporation (www.absoft.com). Estas libreras, escritas en FORTRAN y en C,
contienen numerosas rutinas que permiten resolver problemas numricos muy
diversos entre los que se encuentra la resolucin de EDOs. Las ventajas de estos
cdigos son su fiabilidad, rapidez y el control de calidad y soporte que supone
tener el respaldo de dos grandes empresas.
Colecciones de cdigos de libre distribucin. En este grupo se encuentran varios
paquetes disponibles en www.netlib.org/ode (NETLIB) como los que a
continuacin se describen.
ODEPACK. Es uno de los paquetes de software ms difundido para la
resolucin de EDOs. Desarrollado por Alan C. Hindmarsh ([Hind83],
[RaHi93], [BrHi89]), este paquete tiene sus orgenes en 1976 fruto del esfuerzo
por obtener una coleccin de rutinas que resolviesen EDOs con valores
iniciales, y la finalidad de establecer un estndar para este tipo de problemas.
Consta de un cdigo bsico, llamado LSODE, y ocho variantes de l,
denominados LSODES, LSODA, LSODAR, LSODPK, LSODKR, LSODI,
LSOIBT, y LSODIS, que permiten resolver problemas rgidos o no rgidos de
EDOs, tanto en forma explcita ( x' (t ) = f (t , x) ), como en forma lineal
implcita ( A(t , x) x' (t ) = f (t , x) ). LSODE utiliza mtodos de Adams, para la
resolucin de EDOs de tipo no rgido, y mtodos BDF y Gear, para la
resolucin de EDOs rgidas.
RKSUITE. Desarrollado por R. W. Brankin, I. Gladwell y L. F. Shampine,
contiene un conjunto de rutinas escritas en FORTRAN basadas en mtodos
Runge-Kutta ([BrGS92]).
Rutinas epsode.f, vode.f, svode, svodpk.f, vode.f y vodpk.f. Rutinas escritas en
FORTRAN y desarrolladas por Peter N. Brown y Alan C. Hindmarsh, que
resuelven problemas de valores iniciales de EDOs de tipo rgido o no rgido
mediante algoritmos basados en el mtodo BDF ([ByHi75], [HiBy75],
[Hind74]).
Rutinas ode.f, sderoot.f y sode.f. Desarrolladas por Shampine y Gordon,
resuelven problemas de valores iniciales de EDOs mediante mtodos de Adams
([ShGo75]).
Rutinas rkf45.f y srkf45.f. Rutinas desarrolladas por H. A. Watts y L. F.
Shampine, resuelven problemas de valores iniciales de EDOs mediante el
mtodo Runge-Kutta-Fehlberg (4,5) ([Fehl69], [ShWD76].

57

Captulo 2: Estado del Arte

2.4 Ecuaciones
(EDMRs)

Diferenciales

Matriciales

de

Riccati

2.4.1 Definiciones y Propiedades


Se conoce con el nombre de Ecuacin Diferencial Matricial de Riccati (EDMR) a una
ecuacin diferencial matricial cuadrtica de primer orden
( 2.24 )

X ' (t ) = Q(t ) + X (t ) A(t ) + B(t ) X (t ) X (t ) R(t ) X (t ) , t0 t t f ,


X (t 0 ) = X 0 mxn ,

siendo A(t ) nxn , B(t ) mxm , Q(t ) mxn , R (t ) nxm y X (t ) mxn .


Teorema 2.11: Existencia y unicidad de la solucin.

Sea F (t , X (t )) la funcin definida por la parte derecha de la EDMR ( 2.24 ),


F (t , X (t )) = Q(t ) + X (t ) A(t ) + B (t ) X (t ) X (t ) R(t ) X (t ) ,

( 2.25 )

y los vectores x(t ) = vec( X (t )) y f (t , x(t )) = vec( F (t , X (t ))) , entonces si


f ij y

f ij
x pq

, para i, p = 1,2, L , m y j , q = 1,2, L , n ,

son funciones continuas en la regin [t0 , t f ] , entonces la EDMR ( 2.24 ) tiene una
nica solucin en una cierta regin incluida en [t0 , t f ] mxn que contiene al punto
(t0 , X 0 ) .
Existe una importante conexin entre las EDMRs y las Ecuaciones Diferenciales
Matriciales Lineales (EDMLs), como lo demuestra el siguiente teorema.
Teorema 2.12 ([AnMo71]).

Sea la EDMR
( 2.26 )

X ' (t ) = Q(t ) + X (t ) A(t ) + B(t ) X (t ) X (t ) R(t ) X (t ) , t0 t t f ,


1

con la condicin inicial X (t 0 ) = V0U 0 ,


y la EDML
( 2.27 )

d U (t ) A(t ) R(t ) U (t )
=
, t0 t t f ,
dt V (t ) Q(t ) B(t ) V (t )

con condicin inicial


U (t0 ) U 0
V (t ) = V ,
0 0

siendo U 0 ,U (t ) nxn ( U 0 invertible) y V0 ,V (t ) mxn .


Suponiendo que la solucin de ( 2.26 ) existe y es nica en el intervalo [t 0 , t f ] ,
entonces la solucin de ( 2.27 ) tiene la propiedad de que U (t ) es invertible y que

58

Captulo 2: Estado del Arte

X (t ) = V (t )U 1 (t ) , t [t0 , t f ] .

( 2.28 )

Recprocamente, si la solucin de ( 2.27 ) tiene la propiedad de que U (t ) es invertible


en el intervalo [t 0 , t f ] , entonces la nica solucin de ( 2.26 ) est dada por ( 2.28 ).
Un tipo especial de EDMRs son las denominadas EDMRs simtricas que se presentan a
continuacin.
Definicin 2.11

Una EDMR se dice simtrica, si se puede expresar como


( 2.29 )

X ' (t ) = Q(t ) + X (t ) A(t ) + AT (t ) X (t ) X (t ) R(t ) X (t ) , t0 t t f ,


X (t0 ) = X 0 ,

siendo Q(t ), A(t ), R(t ) nxn , con Q(t ) y R(t ) simtricas.


Algunos de los mtodos de resolucin de EDMRs se basan en el siguiente teorema.
Teorema 2.13 ([Lain76])

Sea la EDMR simtrica


( 2.30 )

X (t , t0 )
= Q(t ) + X (t , t0 ) A(t ) + AT (t ) X (t , t0 ) X (t , t0 ) R(t ) X (t , t0 ) , t0 t t f ,
t
X (t0 , t0 ) = X 0 nxn .

La solucin de la EDMR simtrica ( 2.30 ) puede obtenerse a partir de la resolucin del


Sistema de Ecuaciones en Derivadas Parciales (SEDP)
( 2.31 )

X (t , t0 )
= (t , t0 ) X (t 0 , t 0 ) T (t , t0 ) , X (t 0 , t 0 ) = X 0 , t t 0 ,
t 0

y
( 2.32 )

(t , t0 )
= AT (t ) X (t , t 0 ) R(t ) (t , t0 ) , (t0 , t0 ) = I n ,
t

donde
( 2.33 )

X (t 0 , t 0 ) =

X (t , t 0 )
= Q(t 0 ) + X 0 A(t 0 ) + AT (t 0 ) X 0 X 0 R (t 0 ) X 0 .
t 0 t =t
0

Para EDMRs con coeficientes constantes, se cumple que


X (t , t 0 ) = X (t t 0 ) = X (t ) ,
(t , t 0 ) = (t t 0 ) = (t ) ,
y el sistema formado por las ecuaciones ( 2.31 ) y ( 2.32 ) se reduce al Sistema de
Ecuaciones Diferenciales Ordinarias (SEDO)
dX (t )
= (t ) X (t 0 , t 0 ) T (t ) , X (t 0 ) = X 0 , t t 0 ,
dt

59

Captulo 2: Estado del Arte

d(t )
= AT (t ) X (t ) R (t ) , (t 0 ) = I n , t t 0 .
dt
El siguiente teorema demuestra que la solucin de la EDMR simtrica ( 2.30 ) se
expresa en trminos de la solucin de la misma EDMR pero con una condicin inicial
diferente. La solucin X (t , t 0 ) cuando se expresa en trminos de otra EDMR se
denomina solucin particionada generalizada.
Teorema 2.14 ([Lain76])

La solucin X (t , t 0 ) de la EDMR ( 2.30 ) se puede expresar como


( 2.34 )

X (t , t 0 ) = X n (t , t 0 ) + n (t , t 0 ) n (t , t 0 ) + X r1

Tn (t , t 0 ) ,

donde
n (t , t 0 )
= Tn (t , t 0 ) R(t ) n (t , t 0 ) , n (t 0 , t 0 ) = 0 ,
t

n (t , t0 )
= AT (t ) X n (t , t0 ) R(t ) n (t , t0 ) , n (t 0 , t 0 ) = I n ,
t
siendo
X (t 0 , t 0 ) = X n + X r .
La matriz X n (t , t 0 ) es la solucin de la EDMR ( 2.30 ) pero con una condicin inicial
distinta, es decir, X n (t , t 0 ) es la solucin de la EDMR
X n (t , t 0 )
= Q(t ) + X n (t , t 0 ) A(t ) + A(t )T X n (t , t 0 ) X n (t , t 0 ) R(t ) X n (t , t 0 ) ,
t
X n (t 0 , t 0 ) = X n .

2.4.2 Mtodos de Resolucin de EDMRs


2.4.2.1 Integracin Directa

La forma ms simple de resolver EDMRs consiste en convertir la ecuacin ( 2.24 ) en el


sistema de ecuaciones diferenciales vectoriales de tamao mn
( 2.35 )

x'ij = qij + X i A j + Bi X j X i RX j , para i = 1, L , m y j = 1, L, n ,

donde X i y Bi representan, respectivamente, las filas i-simas de las matrices X y B ,


y X j y A j , las columnas j-simas de las matrices X y A .
El problema de este mtodo es que el tamao de este sistema de ecuaciones
diferenciales es excesivamente grande cuando m y n son elevados; adems, si el
sistema es rgido, entonces la complejidad computacional es muy elevada.
2.4.2.2 Mtodos de Linealizacin

Estos mtodos se basan en el Teorema 2.12 para convertir una EDMR en una EDML. Si
en la frmula ( 2.28 ) se consideran X (t 0 ) = X 0 , U 0 = I n y V0 = X 0 , y la matriz
fundamental de la EDMR se divide a bloques
60

Captulo 2: Estado del Arte

(t , t ) 12 (t , t 0 )
(t , t 0 ) = 11 0
,
21 (t , t 0 ) 22 (t , t 0 )

conforme a la matriz
A(t ) R(t )
M =
,
Q(t ) B(t )
entonces, segn el Teorema 2.12, se tiene que la solucin de la EDMR ( 2.24 ) es
( 2.36 )

X (t ) = [ 21 (t , t0 ) + 22 (t , t0 ) X 0 ][11 (t , t0 ) + 12 (t , t0 ) X 0 ] .
1

2.4.2.2.1 Mtodo de Davison-Maki

En el caso de EDMRs con coeficientes constantes se puede considerar, sin prdida de


generalidad, que t0 = 0 . En tal caso, la solucin X (t ) de la expresin ( 2.36 ) puede
obtenerse fcilmente teniendo en cuenta que matriz fundamental (t ) coincide con la
exponencial de la matriz Mt .
En [DaMa73], Davison y Maki proponen calcular X (t ) utilizando un tamao de paso
constante
t =

tf
, kN ,
2k

de manera que se produzca un error de truncamiento menor que una cierta cota positiva
elegida previamente, siguiendo el siguiente esquema:

Calcular la exponencial matricial (t ) = e Mt mediante, por ejemplo, las


aproximaciones de Pad.

En los siguientes pasos, se calcula (2i +1 t ) a partir de (2i t ) mediante las


expresiones
(2 i +1 t ) = (2 i t )(2 i t ) , i = 0,1, L , k 1 .

En [KeLe85], Kenney y Leipnik proponen utilizar un tamao de paso constante


t =

tf
k

, kN ,

de manera que se produzca un error de truncamiento menor que una cierta cota positiva
elegida previamente, siguiendo el siguiente esquema:

Calcular la exponencial matricial (t ) = e Mt mediante, por ejemplo, las


aproximaciones de Pad.
En los siguientes pasos, se calcula ((i + 1)t ) a partir de (it ) mediante las
expresiones

((i + 1)t ) = (it )(t ) , i = 1,2, L , k 1 .

61

Captulo 2: Estado del Arte

2.4.2.2.2 Procedimiento Iterativo Matricial ASP (Automatic Synthesis


Program)

Este mtodo, debido a Kalman y Englar ([KaEn66]), fue posteriormente utilizado por
Kenney y Leipnik (KeLe85]), bajo el nombre de mtodo de Davison-Maki modificado,
para resolver EDMRs con t 0 = 0 . Como la matriz fundamental tiene estructura de
semigrupo con el producto de matrices, entonces
(t k +1 ,0) = (t k +1 , t k ) (t k ,0) ,
por lo que
I n 11 (t k +1 , tk ) 12 (tk +1 , tk ) U (tk )
U (t k +1 )
In
V (t ) = (tk +1 ,0) X = (tk +1 , t k ) (tk ,0) X = (t , t ) (t , t ) V (t ) .
22 k +1 k
k
k +1
0
0 21 k +1 k

Por lo tanto,
(2.37)

X (tk +1 ) = V (tk +1 )U 1 (tk +1 )


= [ 21 (tk +1 , tk ) + 22 (tk +1 , tk ) X (tk )][11 (tk +1 , tk ) + 12 (tk +1 , tk ) X (tk )]1.

Si la EDMR tiene coeficientes constantes y se considera un tamao de paso constante


t , entonces X (t k +1 ) se puede obtener fcilmente puesto que los valores de ij (t k +1 , t k )
son independientes de k .
En este mtodo se pueden destacar las siguientes cuestiones:
Al contrario de lo que ocurre con el mtodo de Davison-Maki, en el mtodo ASP
no hace falta actualizar la exponencial matricial.
Para pequeos valores de t , se tiene que
11 (.,.) I n , 12 (.,.) 0 nxm ,
21 (.,.) 0 mxn , 22 (.,.) I m ;
por lo tanto, la matriz 11 (t k +1 , t k ) + 12 (t k +1 , t k ) X (t k ) est bien condicionada.
Aunque en principio hay que calcular la exponencial de una matriz de orden 2n ,
se puede modificar el mtodo para que slo hagan falta calcular exponenciales de
matrices de orden igual a n (vase subapartado 2.4.3.5).
2.4.2.3 Mtodo BDF

En el subapartado 2.3.3.3.2 se coment la resolucin de EDOs mediante el mtodo


BDF. Este mtodo se puede adaptar para resolver eficientemente EDMRs, resultando
ser especialmente til cuando se trata de resolver problemas de tipo rgido. Existen
varios algoritmos basados en este mtodo entre los que cabe destacar el desarrollado en
[Diec92]. Si en la ecuacin ( 2.24 ) se define F (t , X ) como la parte derecha de la
misma, es decir,
F (t , X ) = Q(t ) + XA(t ) + B (t ) X XR(t ) X ,
y se realiza una particin del intervalo de tiempo [t 0 , t f ] , entonces la solucin
aproximada en el instante t k ( X k ) se obtiene mediante la resolucin de la ecuacin
implcita
62

Captulo 2: Estado del Arte

X k = j X k j + hF (tk , X k ) ,

( 2.38 )

j =1

donde j , j = 1,2,L, r , y son los coeficientes que aparecen en la Tabla 2.4, siendo
r el orden del mtodo BDF.
Si se sustituye el valor de F (t , X ) en la ecuacin ( 2.38 ), entonces se obtiene la
Ecuacin Algebraica Matricial de Riccati (EAMR)
( 2.39 )

X k + j X k j + h [Q(t k ) + X k A(t k ) + B(t k ) X k X k R (t k ) X k ] .


j =1

Aplicando el mtodo de Newton a la ecuacin anterior, se tiene que


( 2.40 )

G ('l ) ( X k( l +1) X k( l ) ) = X k( l ) + h F (tk , X k( l ) ) + j X k j ,


j =1

donde G (' l ) es una aproximacin de la derivada de Frchet ([Grif81], pgina 310) G('l ) .
A partir de la ecuacin ( 2.40 ), se obtiene la ecuacin matricial de Sylvester
( 2.41 )

C 22Yk( l +1) Yk( l +1) C11 = H k( l ) ,

con
C 22 = C 22 X k( l ) C12 R mxm ,
C11 = C11 + C12 X k(l ) R nxn ,
r

H k( l ) = X k( l ) + hF (t k , X k(l ) ) + j X k j R mxn ,
j =1

y
Yk( l +1) = X k( l +1) X k( l ) R mxn ,
siendo
C11 = hA(t k ) + 0.5 I n ,
C12 = hR(t k ) ,
r

C 21 = hQ(t k ) + j X k j ,
j =1

C 22 = hB (t k ) 0.5I m .
Por lo tanto, para encontrar la solucin en un cierto instante es necesario resolver varias
veces la ecuacin ( 2.41 ) hasta que se alcance la convergencia de Yk( l ) . Esta ecuacin se
puede resolver mediante el algoritmo de Bartels-Stewart [BaSt72].

63

Captulo 2: Estado del Arte

2.4.3 Mtodos de Resolucin de EDMRs Simtricas


2.4.3.1 Mtodos de Linealizacin
2.4.3.1.1 Mtodo de la Exponencial no Negativa

En [Vaug69], Vaughan seala que el clculo de X (t ) mediante la expresin ( 2.36 )


puede dar lugar a un mtodo inestable para valores elevados de t , proponiendo un
mtodo que puede evitar ese problema para el caso de EDMRs simtricas con
coeficientes constantes. La EDML asociada a la EDMR simtrica ( 2.29 ) es
( 2.42 )

d U (t ) A R U (t )
=
, t0 t t f ,
dt V (t ) Q AT V (t )
U (t0 ) I n
V (t ) = X ,
0 0

siendo
A R
M =
,
T
Q A

( 2.43 )

una matriz Hamiltoniana (Definicin 6.24). Por lo tanto, si es un valor propio de M ,


entonces tambin lo es. Sea W la matriz no singular que diagonaliza a la matriz
M,
D 0
W 1MW =
,
0 D
donde D es la forma cannica de Jordan correspondiente a los valores propios que se
encuentran en el semiplano complejo derecho.
Realizando el cambio de variable
( 2.44 )

U W11 W12 U
U
V = W = W W ,

22 V
V 21

la ecuacin ( 2.42 ) se convierte en


( 2.45 )

d U (t ) D 0 U (t )

,
dt V (t ) 0 D V (t )

In
U (t0 )
1

= W X .
V (t0 )
0

Las soluciones de este sistema desacoplado son


U (t ) = e DtU (t 0 ) , V (t ) = e DtV (t 0 ) .
A partir de la condicin inicial de ( 2.45 ), se tiene que
I n = W11U (t 0 ) + W12V (t 0 ) ,
X 0 = W21U (t 0 ) + W22V (t 0 ) ,
por lo que
V (t 0 ) = RU (t 0 ) ,

64

Captulo 2: Estado del Arte

donde
R = [W22 X 0W12 ] [W21 X 0W11 ] ,
1

por lo tanto
V (t )U 1 (t ) = e Dt Re Dt .
De la ecuacin ( 2.44 ), se tiene que
U (t ) = W11U (t ) + W12V (t ) ,
V (t ) = W21U (t ) + W22V (t ) ,
y por lo tanto
X (t ) = V (t )U 1 (t ) = [W21 + W22V (t )U 1 (t )][W11 + W12V (t )U 1 (t )]1
= [W21 + W22 e tD Re tD ][W11 + W12 e Dt Re Dt ]1 .

De este mtodo se pueden destacar los siguientes aspectos:


Al tender t a infinito, no hay crecimiento exponencial en la frmula que define a
X (t ) y, por tanto, se evita los problemas que aparecen en el mtodo de DavisonMaki.
1

La solucin estable puede obtenerse fcilmente pues resulta ser igual a W21W11 .
Un problema de este mtodo es que el clculo de la matriz de trasformacin W
puede estar mal condicionado.
2.4.3.1.2 Mtodo de Schur

Este mtodo es aplicable a EDMRs simtricas con coeficientes constantes. La matriz


Hamiltoniana M de la expresin ( 2.43 ) se puede reducir, mediante transformaciones
de semejanza ortogonales definidas por una matriz K , a una forma triangular superior a
bloques
S
K T MK = 11
0

S12
,
S 22

de manera que los valores propios S11 se encuentran en el semiplano complejo derecho,
y los valores propios de S 22 en el semiplano complejo izquierdo.
Si se considera la transformacin
U (t )
U (t )
,
V (t ) = K

V (t )

entonces la EDML ( 2.42 ) queda como


( 2.46 )

d U (t ) S11

=
dt V (t ) 0

S12 U (t )
,
S 22 V (t )

I
U (t0 )
T n

= K .
X0
V (t0 )

A partir de ( 2.46 ) se obtiene la EDML

65

Captulo 2: Estado del Arte

dV (t )
= S 22V (t ) ,
dt

cuya solucin es
V (t ) = e S22tV (t 0 ) ,

( 2.47 )
as como la EDML

dU (t )
= S11U (t ) + S12e S 22 tV (t0 ) ,
dt

cuya solucin viene dada por


t

( 2.48 )

U (t ) = e U (t0 ) + e S11 ( t ) S12e S 22 V (t0 )d .


S11t

t0

Si se realiza una divisin a bloques de la matriz K , conforme a la divisin a bloques de


la matriz M , entonces K se puede expresar como
K
K = 11
K 21

K12
.
K 22

Teniendo en cuenta la EDML ( 2.46 ), se tiene que


( 2.49 )

V (t0 ) = RU (t 0 ) ,

siendo
R = [ K 22 X 0 K12 ]1[ K 21 X 0 K11 ] .
Teniendo en cuenta las expresiones ( 2.47 ), ( 2.48 ) y ( 2.49 ), se deduce que
1

( 2.50 )

X (t ) = V (t )U (t ) 1 = e S22t

S ( t )
S
S t
I n + R e 11 S12 e 22 d Re 11 ,

t0

por lo que X (t ) se obtiene a partir de X (t ) mediante la expresin


X (t ) = V (t )U (t ) 1 = [ K 21 + K 22 X (t )][ K11 + K12 X (t )]1 .
De este mtodo se pueden destacar los siguientes aspectos:
La ventaja de este mtodo es que la matriz ortogonal K se puede calcular
mediante un mtodo estable.
Una forma efectiva de calcular la integral que aparece en ( 2.50 ) puede
encontrarse en [VanL78].
2.4.3.2 Mtodo de Chandrasekhar

Este mtodo es particularmente til en problemas de control ptimo y filtrado puesto


que, en estos casos, la matriz R(t ) de la EDMR simtrica ( 2.29 ) se expresa como el
producto
R (t ) = H T (t ) R11 (t ) H (t ) ,

66

Captulo 2: Estado del Arte

donde H (t ) pxn , R1 (t ) pxp .


El mtodo de Chandrasekhar se basa en el Teorema 2.13 y en el lema que aparece a
continuacin.
Lema 3 ([Lain76]).

Si W nxn es una matriz simtrica de rango r , entonces existen unas matrices


L1 nxl y L2 nx ( r l ) , siendo l el nmero de valores propios positivos de la matriz
W , de manera que
W = L1 LT1 L2 LT2 .
Si se aplica el lema anterior a la matriz simtrica X (t 0 , t 0 ) de la ecuacin ( 2.33 ), se
tiene que
I
( 2.51 ) X (t0 , t0 ) = [L1 (t 0 ) L2 (t 0 )] m
0

0
[L1 (t0 ) L2 (t0 )]T = L(t0 ) SLT (t0 ) ,

I r m

donde r es el rango de X (t 0 , t 0 ) , L1 (t0 ) nxl y L2 (t0 ) nx ( r l ) .


Sustituyendo ( 2.51 ) en ( 2.31 ) y multiplicando a la derecha de esta ecuacin por
H T (t ) R11 (t ) , se tiene que
( 2.52 )

K (t , t0 )
= K (t , t0 ) SYKT (t , t0 ) H T (t ) R11 (t ) ,
t0
K (t 0 , t 0 ) = X 0 H T (t 0 ) R11 (t 0 ) ,

donde
K (t , t 0 ) = X (t , t 0 ) H T (t ) R11 (t ) nxp ,
( 2.53 )

K (t , t 0 ) = k (t , t 0 ) L(t 0 ) nxr .

Derivando la ecuacin anterior respecto de t y haciendo uso de la ecuacin ( 2.32 ), se


obtiene
( 2.54 )

K (t , t 0 )
= [ AT (t ) K (t , t 0 ) H (t )]K (t , t 0 ) ,
t
K (t 0 , t 0 ) = L(t 0 ) .

Por lo tanto, las matrices K (t , t0 ) y K (t , t0 ) se pueden calcular resolviendo las


ecuaciones diferenciales ( 2.52 ) y ( 2.54 ).
La solucin X (t , t0 ) puede obtenerse a partir de ( 2.31 ) utilizando una frmula de
cuadratura en la ecuacin diferencial
( 2.55 )

X (t , t 0 )
= K (t , t 0 ) SKT (t , t 0 ) .
t 0

Las ecuaciones en derivadas parciales dadas en ( 2.52 ) y ( 2.54 ) no se pueden resolver


con facilidad para EDMRs con coeficientes variables, incluso en el caso en que el

67

Captulo 2: Estado del Arte

nmero de ecuaciones sea significativamente pequeo. Para el caso de EDMRs con


coeficientes constantes, las EDPs se reducen a EDOs puesto que K y K se pueden
considerar funciones de t t 0 . Por lo tanto,
K (t , t0 ) K (t t 0 )
K (t t 0 )
dK (t )
=
,
=
=
t 0
dt
t0
t
luego ( 2.52 ) y ( 2.54 ) se convierten en
dK (t )
= K (t ) SYKT (t ) H T R 1 , K (t 0 ) = P0 H T R 1 ,
dt

dK (t )
= AT K (t ) H K (t ) , K (t 0 ) = L(t 0 ) ,
dt

y X (t ) se puede obtener integrando K (t ) SYKT (t ) .


En este mtodo se puede destacar que:

Si X 0 = 0 , entonces la matriz X (t 0 , t 0 ) = Q es semidefinida positiva y la matriz S


de la ecuacin ( 2.55 ) es igual a la matriz identidad de rango r , siendo r el rango
de la matriz Q .

Si se utiliza un mtodo directo de integracin, entonces el nmero total de


ecuaciones a integrar es n( p + r ) puesto que K nxp y K nxr . Si
p + r << (n + 1) / 2 , entonces el nmero de ecuaciones en este mtodo es mucho
menor que los obtenidos mediante un mtodo directo de integracin. La desigualdad
es satisfecha si tanto el parmetro p como el parmetro r son pequeos
comparados con n . De este modo, slo para algunas clases especiales de EDMRs es
interesante utilizar este mtodo.
En la implementacin de un filtro de Kalman nicamente es necesario conocer la
matriz de ganancia K (t , t 0 ) , no siendo imprescindible calcular la matriz X (t , t 0 ) .

2.4.3.3 Algoritmo de Particionado Numrico (APN)

Este mtodo, basado en el Teorema 2.14, fue sugerido por Lainiotis ([Lain76]) para
resolver EDMRs simtricas. Supngase que el intervalo de integracin se divide en k
subintervalos [t 0 , t1 ],L, [t k 1 , t f ] . Las soluciones en los nodos estn dadas por las
siguientes frmulas recursivas obtenidas a partir de la ecuacin ( 2.34 ):
( 2.56 ) X (t i +1 , t 0 ) = X n (t i +1 , t i ) + n (t i +1 , t i )[ n (t i +1 , t i ) + X r1 (t i +1 , t 0 )] 1 Tn (t i +1 , t i ) .
De acuerdo con el Teorema 2.14, X n (t i +1 , t i ) , n (t i +1 , t i ) y n (t i +1 , t i ) se obtienen
mediante la integracin de las siguientes ecuaciones diferenciales
( 2.57 )

n (t , t i )
= Tn (t , t i ) R(t ) n (t , t i ) , n (ti , ti ) = 0n ,
t

( 2.58 )

n (t , ti )
= [ AT (t ) X n (t , ti ) R(t )] n (t , ti ) , n (ti , ti ) = I n ,
t

( 2.59 )

X n (t , ti )
= Q(t ) + X n (t , ti ) A(t ) + AT (t ) X n (t , ti ) X n (t , ti ) R (t ) X n (t , ti ),
ti
68

Captulo 2: Estado del Arte

X n (t i , t i ) = X ni ,
en cada uno de los subintervalos [ti , ti +1 ] .
La condicin inicial X ni en la ltima ecuacin se elige de manera que la matriz
X r (ti , t 0 ) = X (ti , t 0 ) X ni
sea no singular.
Para calcular eficientemente las matrices X n (ti +1 , ti ) , n (ti +1 , ti ) y n (ti +1 , ti ) se puede
aplicar el Teorema 2.13 a X n (t , ti ) y n (t , ti ) . En cuyo caso, ( 2.57 ), ( 2.58 ) y ( 2.59 )
se convierten en las ecuaciones
n (t , ti )
= Tn (t , ti ) R(t ) n (t , ti ) , n (t i , t i ) = 0 ,
t
n (t , ti )
= [ AT (t ) X n (t , ti ) R(t )] n (t , ti ) , n (t i , t i ) = I n ,
t
X n (t , ti )
= n (t , ti ) X n (ti , ti ) Tn (t , ti ) , X n (ti , ti ) = X ni ,
ti
donde
X n (t i , t i ) =

X n (t , t i )
t i
t =t

= Q(t i ) + X n (t i , t i ) A(t i ) + AT (t i ) X n (t i , t i ) X n (t i , t i ) R(t i ) X n (t i , t i ).


Si se elige convenientemente la condicin inicial X ni , entonces las ecuaciones
anteriores pueden resolverse mediante el mtodo de Chandrasekhar.
Respecto de este mtodo se pueden destacar las siguientes cuestiones:

La integracin en cada subintervalo [ti , ti +1 ] es independiente de la integracin en


los otros subintervalos; por lo tanto, estas integraciones se pueden realizar en
paralelo. Las soluciones vienen dadas por las operaciones recursivas de las
soluciones elementales de la ecuacin ( 2.56 ).
Este mtodo se puede aplicar a EDMRs con coeficientes peridicos ([SpGu79]). Si
la longitud de los subintervalos es mltiplo del periodo y se elige la misma
condicin inicial X ni para cada subintervalo, entonces nicamente es necesario
calcular X n (t , ti ) , n (t , ti ) y n (t , ti ) en el primer subintervalo. La solucin en los
siguientes subintervalos estn dados por la siguiente frmula recursiva

( 2.60 )

X ((i + 1) ) = X n ( ) + n ( )[I n + X (i ) n ()] X (i ) T () ,


1

siendo X (k ) = X (k ,0 ) y = t k +1 t k .

La ecuacin anterior se puede aplicar tambin a EDMRs con coeficientes


constantes.

69

Captulo 2: Estado del Arte

Desde un punto de vista computacional, el clculo de X n (t , ti ) , n (t , ti ) y n (t , ti )


es costoso puesto que se debe resolver un sistema de ecuaciones en derivadas
parciales no lineal.
2.4.3.4 Mtodo Basado en la Ecuacin Algebraica de Riccati (EAR)

Este mtodo ([AnMo71]) se aplica a la EDMR simtrica


X ' = G T G + XA + AT X XHH T X , t 0 ,

( 2.61 )

X (0) = X 0 ,
siendo ( A, H ) estabilizable, (G, A) observable y X 0 matriz definida positiva.
Lema 4 ([Wonh68])

Si ( A, H ) es estabilizable y (G, A) es completamente observable, entonces la EAR


Q + XA + AT X XRX = 0

( 2.62 )

tiene una nica solucin definida positiva de manera que el sistema en bucle cerrado
definido por
K = A RX
es asintticamente estable.
Si se aplica el lema anterior, considerando X la solucin definida positiva de la EAR
G T G + XA + AT X XHH T X = 0 ,

( 2.63 )

entonces, utilizando las ecuaciones ( 2.61 ) y ( 2.63 ) y llamando A = A HH T X , se


tiene que
( 2.64 )

d
( X X ) = ( X X ) A + A T ( X X ) ( X X ) HH T ( X X ) .
dx

Si X X es no singular y se define Z (t ) = ( X X ) 1 , entonces


d

Z ' = ( X X ) 1 ( X X ) ( X X ) 1 ,
dx

por lo que la ecuacin ( 2.64 ) se reduce a


( 2.65 )

Z ' = A Z + ZA T HH T , Z (0) = ( X 0 X ) 1 , t > 0 .

Puesto que A es estable, entonces existe una nica solucin definida positiva de la
Ecuacin Algebraica Matricial de Lyapunov (EAML)
0 = A Z + ZA T HH T .

( 2.66 )

Restando las ecuaciones ( 2.66 ) y ( 2.65 ), se obtiene la Ecuacin Diferencial Matricial


de Lyapunov (EDML)

d
(Z Z ) = A (Z Z ) + (Z Z ) A T , t > 0
dt

con ( X 0 X ) 1 Z como condicin inicial. Por lo tanto,

70

Captulo 2: Estado del Arte

Z Z = e A t ( X 0 X ) 1 Z e A t ,
T

luego

)
Z) e

X = X + Z + e A t ( X 0 X ) 1 Z e A

( 2.67 )

= X + e A t e A t Z e A t + ( X 0 X ) 1
T

At

Una desventaja de este mtodo es el elevado coste computacional del clculo de X , Z


y de la exponencial matricial que aparece en la ecuacin ( 2.67 ). Una versin de este
mtodo puede encontrase en [Laub82].
2.4.3.5 Mtodo de Leipnik

Este mtodo, debido a Leipnik ([Leip85]), permite resolver EDMRs simtricas con
coeficientes constantes.
Lema 5 ([Leip85])

Sean C y D matrices cuadradas y


C D
N =
( N matriz bisimtrica),
D C
entonces
E
Nn =
F

F
,
E

siendo
E = 0.5[(C + D) n + (C D) n ] ,
F = 0.5[(C + D) n (C D) n ] .
Sea la EDMR simtrica con coeficientes constantes
( 2.68 )

X ' = Q + XA + AT X XRX , X (0) = X 0 , t 0 ,

siendo X 0 matriz definida positiva.


Si se realiza la transformacin
( 2.69 )

X = Z T X 1Z + H ,

siendo H simtrica, entonces ( 2.68 ) queda como


( 2.70 )

X 1' = Q1 + X 1 A1 + A1T X 1 X 1 R1 X 1 , X 1 (0) = Z T ( X 0 H ) Z 1 , t > 0 .

siendo
A1 = Z ( A RH ) Z 1 ,
R1 = ZRZ T ,
Q1 = Z T (Q + HA + AT H HRH ) Z 1 .

71

Captulo 2: Estado del Arte

Como consecuencia de una propiedad descrita en [Copp74], se tiene que si el par ( A, R )


es controlable, entonces existen la solucin maximal X + y la solucin minimal X de
la EAR asociada a la EDMR ( 2.68 ). Eligiendo Z y H de manera que
ZTZ =
H=

1
(X + X ) ,
2

1
(X + + X ) ,
2

entonces
A1T = A1 , R1 = Q1 .
Por lo tanto, la ecuacin ( 2.70 ) se reduce a
( 2.71 )

X 1' = A1 X 1 + X 1 A1 X 1R1 X 1 , X 1 (0) = Z T ( X 0 H ) Z 1 , t > 0 .

Utilizando el Teorema 2.12, se tiene que el EDML asociado a la EDMR anterior es


( 2.72 )

d U A1 R1 U
,
=
dt V R1 A1 V
U (0) I n
V (0) = X (0) .

Puesto que la matriz coeficiente de la ecuacin ( 2.72 ) es bisimtrica, entonces se puede


aplicar el Lema 5, con lo que
e

A1

R1

R1
t
A1

E (t ) E 2 (t )
= 1
,
E 2 (t ) E1 (t )

donde

E1 (t ) =

1 ( A1 + R1 ) t
e
+ e( A1 R1 )t ,
2

E 2 (t ) =

1 ( A1 R1 ) t
e
e ( A1 + R1 ) t .
2

La solucin X 1 se obtiene a partir de la frmula ( 2.28 ) y X a partir de ( 2.69 ).


Una ventaja de este mtodo es que la solucin X se puede obtener calculando
exponenciales de matrices de tamao n . Sin embargo, este mtodo requiere el clculo
de las soluciones maximal y minimal de una EAR. Adems, si estas soluciones estn
cercanas entre s, entonces la matriz Z puede estar mal condicionada.
2.4.3.6 Mtodo de la Raz Cuadrada

Este mtodo, debido a Morf, Ley y Kailath ([MoLK78]), es aplicable a la EDMR con
coeficientes variables
( 2.73 ) X ' (t ) = G T (t )G (t ) + X (t ) A(t ) + AT (t ) X (t ) X (t ) H (t ) H T (t ) X (t ) , t 0 t t f ,
X (0) = X 0 ,

72

Captulo 2: Estado del Arte

siendo X 0 matriz definida positiva. En tal caso, la solucin X (t ) se puede comprobar


que es definida positiva (vase subapartado 2.4.3.8). Luego dicha solucin se puede
expresar como
X (t ) = S T (t ) S (t ) ,

( 2.74 )
y la condicin inicial como

X (t 0 ) = S T (t 0 ) S (t 0 ) ,
donde S (t ) (no singular) se puede elegir de manera que sea triangular inferior con
elementos positivos en la diagonal principal (factorizacin de Cholesky).
La EDMR ( 2.73 ) se convierte entonces en la ecuacin
X ' (t ) = S 'T (t ) S (t ) + S T (t ) S ' (t )
= G T (t )G (t ) + S T (t ) S (t ) A(t ) + AT (t ) S T (t ) S (t ) S T (t ) S (t ) H (t ) H T (t ) S T (t ) S (t ).

Multiplicando la ecuacin anterior a la izquierda por S T (t ) y a la derecha por S 1 (t ) ,


se obtiene
S T (t ) S 'T (t ) + S ' (t ) S 1 (t ) = C (t ) ,
donde
C (t ) = G T (t )G (t ) + A (t ) + A T (t ) + H (t ) H T (t ) ,
siendo
A (t ) = S (t ) A(t ) S 1 (t ) , H (t ) = S (t ) H (t ) , G (t ) = G (t ) S 1 (t ) .
Puesto que S (t ) es triangular inferior, entonces S ' (t ) S 1 (t ) se puede elegir de manera
que coincida con la parte triangular inferior de la matriz C (t ) , es decir,
1

S ' (t ) = C L (t ) + C D (t ) S (t ) , S (t 0 ) = S 0 ,
2

siendo C L (t ) la parte estrictamente triangular inferior de la matriz C (t ) y C D (t ) la


diagonal de la matriz C (t ) .
Una vez se ha calculado S (t ) , por ejemplo, mediante integracin directa, X (t ) se puede
calcular a partir de la expresin ( 2.74 ).
Este mtodo puede mejorar el condicionamiento del la EDMR ( 2.73 ), sin embargo,
puede tener problemas si la matriz S (t ) est mal condicionada.
2.4.3.7 Mtodo de Rusnak

Este mtodo, debido a Rusnak ([Rusn88]), se aplica a la EDMR con coeficientes


constantes definida por ( 2.61 ), suponiendo que ( A, H ) es estabilizable y (G, A)
detectable. La solucin analtica de la ecuacin ( 2.61 ) viene dada por la expresin
1

T
K ( t t o )
( 2.75 ) X (t ) = X + e
( X 0 X ) I n + e K ( t0 ) Re K ( t0 ) d ( X 0 X ) e K (t to ) , t t 0 ,

t0
T

73

Captulo 2: Estado del Arte

donde X es la nica solucin semidefinida positiva de la EAR ( 2.63 ) y K = A RX .


Si se considera un tamao de paso constante e igual a t , entonces, teniendo en cuenta
( 2.75 ), se obtiene la siguiente frmula recursiva
T
X l +1 = e K t X l ( I n + DX l ) 1 e Kt , l = 0,1,2,L ,

siendo
X 0 = X 0 X ,
X n = X (t n ) X

y
t

D = e K Re K d .
T

Respecto de este mtodo se pueden realizar dos puntualizaciones:

Puesto que la matriz D 0 a medida que t 0 , entonces la matriz I n + DX l


est bien condicionada para pequeos valores de t .

Es necesario calcular la solucin X de la EAMR ( 2.63 ) para poder obtener la


solucin X (t ) de la ecuacin ( 2.61 ).
2.4.3.8 Mtodos Conservativos y Mtodos Simplcticos

Ms que un mtodo, se trata de una familia de mtodos que tienen en comn la


conservacin de la simetra y el carcter semidefinido positivo de la solucin.
Teorema 2.15 ([DiEi94])

Sea la EDMR simtrica


( 2.76 ) X ' (t ) = A(t ) X (t ) + X (t ) AT (t ) X (t ) B(t ) X (t ) + C (t ) , X (0) = X 0 , t 0 ,
en donde la condicin inicial X 0 es una matriz simtrica semidefinida positiva,
entonces la solucin X (t ) es simtrica y semidefinida positiva para todo t > 0 .
Adems, si X ( s ) o C ( s) son definidas positivas para un cierto s 0 , entonces X (t ) es
definida positiva para todo t s .
Lo que se busca en estos mtodos es aplicar algoritmos que preserven la propiedad de
que las soluciones encontradas para instantes de tiempo t > 0 conserven la propiedad de
ser definidas o semidefinidas positivas. En [DiEi94] se proponen varios de estos
mtodos. El primero de ellos est basado en el mtodo de linealizacin de EDMRs. Por
el Teorema 2.12, se tiene que la EDML asociada a la EDMR ( 2.76 ) es
( 2.77 )

C (t ) Y (t )
Y ' (t ) A(t )
=
Z ' (t ) B(t ) AT (t ) Z (t ) ,

Y (0) X 0
Z (0) = I ,

con
( 2.78 )

X (t ) = Y (t ) Z 1 (t ) ,

la solucin de la EDMR ( 2.76 ).

74

Captulo 2: Estado del Arte

Una aproximacin consiste en utilizar mtodos de discretizacin para resolver la EDML


( 2.77 ), y calcular entonces X (t ) mediante la expresin ( 2.78 ). Por ejemplo, si se
utilizan mtodos de Gauss (aproximantes diagonales de Pad), entonces sus coeficientes
satisfacen ([Sanz92])
M ij = bi aij + b j a ji bi b j = 0 , i, j = 1, L , k ,

( 2.79 )

por lo que se trata de mtodos Runge-Kutta simplcticos, siendo b j 0 .


Teorema 2.16 ([DiEi94])

La aplicacin de un mtodo Runge-Kutta que satisfaga ( 2.79 ) con b j 0 a la EDML


definida en ( 2.77 ) produce soluciones aproximadas que son simtricas y semidefinidas
positivas.
Otro mtodo que se encuentra en [DiEi94] consiste en expresar la EDMR ( 2.76 ) como
X ' (t ) = [ A(t ) 0.5 X (t ) B(t )] X (t ) + X (t )[ A(t ) 0.5 X (t ) B(t )]T + C (t ) .
La solucin de la ecuacin anterior es
t

( 2.80 )

X (t ) = (t , s ) X ( s ) T (t , s ) + (t , )C ( ) T (t , )d ,
s

siendo (t , ) la solucin de la EDML


( 2.81 )

(t , )
= [A(t ) 0.5 X (t ) B(t )] (t , ) , ( , ) = I n .
t

Para obtener una solucin aproximada X k +1 que sea definida positiva, a partir de otra
X k que sea definida positiva, se pueden seguir los siguientes pasos:

Aplicar cualquier mtodo para resolver ( 2.81 ).


Obtener las correspondientes soluciones, utilizando cualquier otro mtodo.
Utilizar una frmula en la que los pesos para la integracin de ( 2.80 ) sean
positivos.

Si se resuelve la ecuacin ( 2.81 ) por la regla implcita del punto medio y se utiliza la
regla trapezoidal para calcular X (t ) en ( 2.80 ), se obtiene un mtodo de segundo grado.
La regla del punto medio para ( 2.81 ) requiere una aproximacin de (h 2 ) para
X (t k + h / 2) . El esquema resultante es
1

k +1 / 2

h
1
h
1

= I Ak Bk X k I n + Ak Bn X k ,
4
2
4
2

h
h

X k +1 / 2 = k +1 / 2 X k + C k Tk +1 / 2 + C k +1 / 2 ,
4
4

1
1
h
h

k = I Ak +1 / 2 Bk +1 / 2 X k +1 / 2 I + Ak +1 / 2 Bk +1 / 2 X k +1 / 2 ,
2
2
2
2

75

Captulo 2: Estado del Arte

h
h

X k +1 = k X k + C k Tk + C k +1 .
2
4

Un estudio ms completo sobre mtodos simplcticos y su aplicacin a la resolucin de


EDMRs que conserven la simetra y la positividad de la solucin pueden encontrarse en
[SaCa94] o [Mart99].
2.4.3.9 Mtodos BDF para EDMRs de gran Escala

En [BeMe04] se sugiere resolver EDMRs de gran escala mediante el mtodo NewtonADI (Alternating Directions Implicit) de rango pequeo ([Benn02], [Benn02]). Estas
ecuaciones proceden de la semidiscretizacin de problemas de control ptimo de
ecuaciones en derivadas parciales de tipo parablico hiperblico como, por ejemplo, la
ecuacin de calor, la ecuacin de ondas, etc.
Sea la EDMR simtrica
X ' (t ) = Q(t ) + X (t ) A(t ) + AT (t ) X (t ) X (t ) RX (t ) , t0 t t f ,
X (t0 ) = X 0 .
Aplicando el mtodo BDF y reagrupando adecuadamente los trminos de la ecuacin,
se tiene obtiene la EAMR
r

( 2.82 ) h Qk + j X k j + (hAk 0.5 I n )T X k + X k (h Ak 0.5 I n ) X k (h Rk ) X k = 0 .


j =1

Suponiendo que
Qk = CkT Ck , Ck pxn ,
Rk = Bk BkT , Bk nxm ,
X k = Z k Z kT , Bk nxz k ,
la EAMR ( 2.82 ) se puede escribir como
( 2.83 )

C kT C k + A kT Z k Z kT + Z k Z kT A k Z k Z kT B k B kT Z k Z kT = 0 ,

siendo
A k = hAk 0.5 I n ,
B k = h Bk ,
C k = [ h Ck , 1 Z k 1 ,L, r Z k r ] .

Si, por simplicidad de notacin, la ecuacin ( 2.83 ) se escribe como


0 = F ( P) = C T C + AT P + PA PBBT P = 0 ,
y se aplica el mtodo de Newton, se tiene que
X l +1 = X l + N l ,
siendo
N l = ( F 'Pl ) 1 F ( Pl ) ,

76

Captulo 2: Estado del Arte

con F 'Pl la derivada de Frchet en la direccin Pl , definida como


F 'P : Q
( A BBT P)Q + Q( A BBT P)T .
Un paso de la iteracin de Newton, partiendo de una matriz P0 , quedara como
1

Al = A BBT Pl .

2
3

Calcular N l resolviendo la ecuacin de Lyapunov AlT N l + N l Al = F ( Pl ) .


Pl +1 = Pl + N l .

Eligiendo un valor suficientemente pequeo del incremento de tiempo y eligiendo


P0 = X k 1 , se puede conseguir que Ai , i 0 , sean estables y que Pl converja
cuadrticamente a P* = X k +1 X (t k +1 ) .
Para que este mtodo sea aplicable en problemas de gran escala es necesario utilizar un
mtodo que resuelva ecuaciones de Lyapunov, de manera que explote la estructura
dispersa y de rango pequeo de las matrices Al .
En primer lugar, la ecuacin de Lyapunov del paso se puede escribir como
AlT Pl +1 + Pl +1 Al = C T C Pl BBT Pl := WlWlT .
Suponiendo Pl = Z l Z lT para rango( Z l ) << n y observando que rango(Wl ) m + p << n ,
entonces basta utilizar un mtodo numrico que resuelva la ecuacin de Lyapunov
anterior como, por ejemplo, una versin modificada del mtodo ADI para ecuaciones de
Lyapunov que tengan la forma
FQ + QF T = WW T ,
con F estable y W nxnw .
La iteracin ADI se puede escribir como ([Wach88])
( F T + p j I n )Q j 1 = WW T Q j 1 ( F p j I n ) ,
2

( F T + p j I n )QTj = WW T Q j 1 ( F p j I n ) ,
2

donde p denota el complejo conjugado de p C . Si los parmetros p j se eligen de


manera apropiada, entonces
lim Q j = Q
j

con un razn de convergencia superlineal.


Comenzando la iteracin anterior con Q0 = 0n y observando que para F estable,
entonces Q es semidefinida positiva, se tiene que
Q j = Y jY jT

para una cierta matriz Y j

nxr j

Sustituyendo esta factorizacin en la iteracin anterior, reagrupando los trminos y


combinando los dos pasos de la iteracin, se obtiene una iteracin ADI factorizada de
77

Captulo 2: Estado del Arte

manera que en cada paso de la iteracin se obtienen nw columnas de un factor de rango


completo Q , como a continuacin se muestra:
V1 = 2real( p1 ) ( F T + p1 I n ) 1W ; Y1 = V1
Para j = 2,3,....

1
2

real( p j )

2.1

Vj =

2.2

Y j = [Y j 1 V j ] .

real( p j 1 )

[ I n ( p j + p j 1 )( F T + p j I n ) 1 ]V j 1

Si en la iteracin anterior se alcanza la convergencia despus de jmax pasos, entonces


Y jmax = [V1 , V2 , L , V jmax ] nxjmax nw ,

donde V j nxnw .
Para un valor grande de n y uno pequeo de nw , se puede esperar que rj = jmax nw << n ,
de manera que se ha obtenido una aproximacin Y j max de rango pequeo de un factor Y
de la solucin, es decir, Q = YY T Y j max Y jTmax . En el caso en que rj = jmax nw sea grande,
se puede aplicar tcnicas de compresin ([GuSA03]) para reducir el nmero de
columnas de la matriz Y j max , sin aadir un error significativo.

2.4.4 Aplicaciones
Las EDMRs tienen numerosas aplicaciones en ingeniera y en ciencias aplicadas como,
por ejemplo, control ptimo, filtrado ptimo, problemas de valores de contorno,
perturbaciones singulares, etc. En este apartado se describen algunas de ellas.
2.4.4.1 Problemas del Control ptimo

En este subapartado se describe la aplicacin de EDMRs al problema del sistema de


regulador ptimo lineal cuadrtico.
Sea la EDL de orden n

x' (t ) = A(t ) x(t ) + B(t )u (t ) , x(t 0 ) = x0 , t 0 t t f ,


y el ndice de coste cuadrtico
tf

1
1
J = [ xT (t )Q(t ) x(t ) + u T (t ) R(t )u (t )]dt + x T (t f ) Sx(t f ) ,
2 t0
2
siendo
x(t ) n , el vector de estados;
A(t ) nxn , la matriz de estados;
B(t ) nxm , la matriz de entradas (controles);
u (t ) m , el vector de entradas (controles);
J , el ndice de coste;

78

Captulo 2: Estado del Arte

Q(t ) nxn semidefinida positiva, la matriz de pesos correspondientes a los


estados;
R (t ) mxm definida positiva, la matriz de pesos correspondientes a los
controles;
y
S nxn semidefinida positiva, la matriz de pesos correspondientes al valor
final.
El objetivo es determinar el control ptimo u (t ) que minimice el valor de J . Puede
demostrarse ([Kalm61]) que la ley de control ptimo u (t ) viene dada por
u (t ) = R 1 (t ) B T (t ) P(t ) x(t ) , t 0 t t f ,

( 2.84 )

y que la matriz del sistema en bucle cerrado resulta ser


( 2.85 )

K (t ) = A(t ) B(t ) R 1 (t ) B T (t ) P(t ) , t 0 t t f ,

donde P(t ) satisface la EDMR


( 2.86 ) P' (t ) = AT (t ) P(t ) P(t ) A(t ) + P(t ) B(t ) R 1 (t ) BT (t ) P(t ) Q(t ) , t 0 t t f
P (t f ) = S .
2.4.4.2 Problemas de Filtrado y Estimacin

En este subapartado se describe la aplicacin de EDMRs al problema de estimacin de


mnimos cuadrados de sistemas lineales en tiempo continuo. En este caso x(t ) n es
un vector generado aleatoriamente por la EDL
x' (t ) = F (t ) x(t ) + G (t )u (t ) , E [x(t0 )] = x0 ,
siendo E [x ] el valor esperado de x(t ) , y la seal observada z (t ) p viene dada por

z (t ) = H (t ) x(t ) + v(t ) .
Los vectores u (t ) m y v(t ) p corresponden a ruidos blancos independientes con
medias igual a 0 y matrices de covarianza definidas por las expresiones
cov[u (t ), u ( )] = Q(t ) (t ) ,
cov[v(t ), v( )] = R (t ) (t ) ,
cov[u (t ), v( )] = 0 ,

para todo t y , siendo Q(t ) nxn semidefinida positiva y R (t ) nxn definida


x (t1 | t ) de x(t1 ) a partir de los datos
positiva. El objetivo es encontrar una estimacin ~
observados {z ( ), t 0 t t} , de manera que
E[|| x(t1 ) ~
x (t1 | t ) || 22 ] , t1 t ,
tenga un valor mnimo.

79

Captulo 2: Estado del Arte

x (t | t ) est
Para t1 = t puede demostrarse ([KaBu61]) que la estimacin ptima ~
generada por el sistema lineal dinmico
d~
x (t | t )
= F (t ) ~
x (t | t ) + K (t ) ~
z (t | t ) , ~
x (t 0 | t 0 ) = x0 ,
dt
~z (t | t ) = z (t ) H (t ) ~
x (t | t ) .
La matriz de ganancias K (t ) viene dada por la expresin
K (t ) = P(t ) H T (t ) R 1 (t ) ,
siendo
P (t ) = cov[x(t ) ~
x (t | t ), x(t ) ~
x (t | t )]

la solucin de la EDMR
P' (t ) = F (t ) P(t ) P(t ) F T (t ) P(t ) H T (t ) R 1 (t ) H (t ) P(t ) + G (t )Q(t )G T (t ) ,
P (t 0 ) = P0 = cov[x(t 0 ) x0 , x(t 0 ) x0 ] , t t 0 .
2.4.4.3 Sistemas de Parmetros Distribuidos

El siguiente ejemplo muestra la aplicacin de EDMRs al problema de control ptimo en


sistemas de parmetros distribuidos ([Hunt79]). Sea el sistema parablico de parmetros
distribuidos
x( y, t ) 2 x( y, t )
=
+ u ( y, t ) , t 0 t t f , 0 y L ,
y
y 2

con condiciones de contorno


x(0, t )
x( L, t )
= 0,
= 0,
t
y
y la condicin inicial
x( y,0) = f ( y ) .
El objetivo es encontrar un control ptimo u (t ) de manera que el funcional
tf L

J=

1
qx 2 ( y, t ) + ru 2 ( y, t ) dydt ,

200

tenga un valor mnimo.


Si se utiliza una frmula en diferencias centrales que aproxime

2x
y se considera
y 2

y = L /(n + 1) , se obtiene la EDL


( 2.87 )

x' (t ) = Ax(t ) + u (t ) ,

donde

80

Captulo 2: Estado del Arte

0
2 2
1 2 1

0
1 2
1
A=
M
M
M
(y ) 2
0
0
0

0
0
0
0
0
0

L
O
O
L
L
L

0
0
0
0
0
0
0
0
0

O M
M ( n+ 2) x ( n + 2) .
2 1
0

1 2 1
0
2 2

El vector de estados x(t ) es igual a


[ x0 (t ), x1 (t ),L, xn +1 (t )]T ,
donde x i (t ) = x(iy, t ) , i = 0,1, L , n + 1 .
El vector de control u (t ) es igual a
[u0 (t ), u1 (t ),L, un +1 (t )]T ,
donde ui (t ) = u (iy, t ) , i = 0,1, L , n + 1 .
Con la aproximacin anterior y utilizando la regla trapezoidal para la integracin de y ,
el funcional de coste se convierte en
tf

( 2.88 )

y
J=
[ xT (t )Qx(t ) + u T (t ) Ru (t )]dt ,

2 0

donde
Q R
= = diag (0.5, 1, L, 1, 0.5) .
q r
El procedimiento estndar de optimizacin para ( 2.87 ) y ( 2.88 ) consiste en resolver
hacia atrs la EDMR ( 2.86 ), siendo P(t f ) = 0 . El control ptimo y la trayectoria de
estado ptima estn gobernados por las ecuaciones ( 2.84 ) y ( 2.85 ), respectivamente.
2.4.4.4 Reduccin de Orden y Desacoplamiento

La reduccin de orden y desacoplamiento de sistemas lineales, va transformaciones de


Riccati ([Chan69], [Sibu66], [SBIK76]), ha demostrado ser una potente herramienta
analtica utilizada en matemticas e ingeniera. Sea la EDL
( 2.89 )

d u (t ) A(t ) R(t ) u (t ) f (t )
=
+
,
dt v(t ) Q(t ) B(t ) v(t ) g (t )

donde u (t ) n , v(t ) m ,
Q(t ) mxn y B (t ) mxm .

f (t ) n ,

u (t0 ) u0
v(t ) = v , t t 0 ,
0 0

g (t ) m ,

A(t ) nxn ,

R (t ) nxm ,

Esta ecuacin se puede reducir a un sistema triangular superior a bloques


( 2.90 )

0 nxm f (t )
R (t )
u (t ) I n
d u (t ) R (t ) X (t ) A(t )
,
+
=

0
B (t ) X (t ) R (t ) v(t ) X (t ) I m g (t )
dt v(t )

81

Captulo 2: Estado del Arte

0 nxm u0
u (t 0 ) I n
=
v(t ) X (t ) I v , t t 0 ,
0
m 0
0

mediante la transformacin
0 nxm u (t )
u (t ) I n
=
v(t ) X (t ) I v(t ) ,
m

siendo X (t ) la solucin de la EDMR


X ' (t ) = Q(t ) + X (t ) A(t ) + B(t ) X (t ) X (t ) R(t ) X (t ) , t0 t t f ,
X (t 0 ) = X 0 ,
donde la condicin inicial X 0 se puede elegir arbitrariamente.
Por otra parte, la ecuacin ( 2.90 ) puede reducirse a la ecuacin

( 2.91 )

0 nxm
u (t )
d u (t ) R (t ) X (t ) A(t )
=

0 mxn
B (t ) X (t ) R (t ) v (t )
dt v (t )
I + S (t ) X (t ) S (t ) f (t )
+ n
, t t0 ,
I m g (t )
X (t )

( 2.92 )

u (t 0 ) I m + S (t 0 ) X (t0 ) S (t 0 ) u0
,
v (t ) =
X (t0 )
I n v0
0

mediante la transformacin
u (t ) I n
v(t ) = 0
mxn

S (t ) u (t )
.
I m v (t )

La matriz S (t ) resulta ser la solucin de la Ecuacin Diferencial Matricial de Sylvester


(EDMS)
S ' (t ) = R(t ) + [ A(t ) + R(t ) X (t )]S (t ) S (t )[ B(t ) X (t ) R(t )] , t0 t t f ,
S (t 0 ) = S 0 ,
donde S 0 puede elegirse de manera arbitraria. Este proceso puede adicionalmente
llevarse a cabo desacoplando los sistemas diagonales a bloques individuales del sistema
desacoplado ( 2.91 ). El precio pagado por esta reduccin es el clculo de la solucin de
las anteriores ecuaciones matriciales diferenciales de Sylvester y Riccati.
2.4.4.5 Resolucin de Problemas de Contorno

Sea el problema de contorno definido como


( 2.93)

y1' (t ) A11
' =
y2 (t ) A21

[B11

A12 y1 (t )
, t0 t t f ,
A22 y2 (t )
y (t )
B12 ] 1 0 = 1 ,
y 2 (t 0 )

82

Captulo 2: Estado del Arte

donde A11 nxn , A12 nxm , A21 mxn , A22 mxm , B11 mxn , B12 mxm ,
B21 nxn , B22 nxm , 1 m , 2 n , y1 n y y 2 m .
Este problema de contorno se puede desacoplar en un problema de valores iniciales y
otro de valores finales mediante el cambio de variable definido como
w1 (t )
y1 (t )
1
w (t ) = S (t ) y (t ) ,
2
2

siendo
0 nxm
I
( n + m ) x ( n + m ) , X (t ) mxn ,
S (t ) = n

X (t ) I m

de manera que
w1' (t )
w1 (t )
' = A (t )
,
w
t
(
)
w
t
(
)
2
2

( 2.94 )
con

A + A12 X (t )
A (t ) = S 1 (t ) AS (t ) S 1 (t ) S ' (t ) = 11
0 mxn

A12

.
A22 X (t ) A12

Para que esto sea posible (vase [KeLe82], [DESS82]) es necesario que X (t ) sea la
solucin de la EDMR
( 2.95 )

X ' (t ) = A21 + A22 X (t ) X (t ) A11 X (t ) A12 X (t ) , t0 t t f ,

X 0 = X (t 0 ) = B121 B11 ,
siendo
( 2.96 )

[0

B12 ]w(t 0 ) = 1 , [ B21 + B22 X (t f ) B22 ]w(t f ) = 2 .

Por lo tanto, para resolver el problema de contorno ( 2.93 ) se siguen los siguientes
pasos:
1.
2.

Resolver la EDMR ( 2.95 ).


A partir de ( 2.94 ) se tiene las EDOs
w2' (t ) = [ A22 X (t ) A12 ]w2 (t ) ,
w1' (t ) = [ A11 + A12 X (t )]w1 (t ) + A12 w2 (t ) .
Teniendo en cuenta las condiciones dadas en (2.97), se calculara w2 desde t0
hasta t f y, a continuacin, w2 (t ) desde t f hasta t0 .

3.

Calcular y (t ) = S (t ) w(t ) .

2.4.5 Software para la Resolucin de EDMRs


En la actualidad, el nico paquete de dominio pblico disponible para la resolucin de
EDMRs es DRESOL (Differential Riccati Equations SOLver).

83

Captulo 2: Estado del Arte

DRESOL se compone de un conjunto de subrutinas escritas en FORTRAN 77 para


datos de simple precisin. Bsicamente, utiliza el mtodo BDF ([Diec92]) de manera
que en cada paso del mismo se resuelve una Ecuacin Algebraica Matricial de Riccati
(EAMR) mediante el mtodo de Newton. Al utilizar el mtodo de Newton es necesario
resolver una Ecuacin Algebraica Matricial de Lyapunov (EAML) o de Sylvester
(EAMS), segn sea simtrica o no simtrica la EDMR considerada. Basado en el
paquete LSODE ([Hind83]), DRSOL presenta mejoras sobre el anterior, respetando
algunos aspectos del mismo, como los heursticos utilizados a la hora de elegir el orden
del mtodo, la estimacin del error local o la eleccin automtica del tamao de paso.
Este paquete data del ao 1992, por lo que, en cierto modo, se encuentra actualmente
desfasado al utilizar la librera EISPACK ([SBDG76]) en lugar de la librera LAPACK,
sucesora de la anterior y con notables mejoras sobre la primera. En esta tesis se ha
realizado una implementacin basada en este paquete ([AHIP05]), que aunque no
presenta los heursticos anteriormente comentados en cuanto a la seleccin del orden del
mtodo y del tamao del paso, presenta notables mejoras al utilizar los ncleos
computaciones BLAS y LAPACK (vanse el Algoritmo 5.6 y el Algoritmo 5.7).

2.5 Conclusiones
En este captulo se ha realizado una revisin del estado del arte concerniente,
fundamentalmente, a las tres reas de investigacin tratadas en esta tesis: clculo de
Funciones de Matrices, resolucin de EDOs y resolucin de EDMRs.
En la primera seccin se han descrito los mtodos ms relevantes para el clculo de las
funciones matriciales ms usuales. Posiblemente pueden existir otros mtodos pero no
tienen la importancia de los descritos en esa seccin. No se puede asegurar cual es el
mejor mtodo, pues la eficiencia y precisin de cualquiera de ellos depende de la matriz
y de la funcin considerada. Como se puede fcilmente observar, los mtodos son muy
dependientes de la funcin considerada aunque emergen dos mtodos que se aplican en
muchas ocasiones y que, en general, suelen presentar buenas cualidades numricas:
mtodos basados en la descomposicin real de Schur de una matriz y mtodos basados
en las aproximaciones racionales de Pad. Se puede constatar, por todo el estudio
realizado, que en la actualidad se dispone de un nmero muy reducido de rutinas que
implementan funciones de matrices, a excepcin de las funciones incorporadas en
MATLAB.
En la segunda seccin se ha descrito brevemente la resolucin de EDOs. Ms que un
estado del arte se ha pretendido dar una visin general de su problemtica, describiendo
aquellos mtodos ms usuales en la resolucin de EDOs. Adems, se ha presentado una
metodologa de resolucin de EDOs, basada en la linealizacin a trozos, que no siendo
muy utilizada en la actualidad parece que puede llegar a ser una alternativa fiable a los
mtodos clsicos de resolucin de EDOs. En la actualidad se dispone de numeroso
software para la resolucin de EDOs tanto de dominio pblico como comercial.
En la ltima seccin se ha realizado un exhaustivo estudio de los mtodos de resolucin
de EDMRs. Entre ellos se pueden destacar los mtodos BDF, que pueden utilizarse
tanto en el caso general como en el caso de EDMRs simtricas, y los mtodos
simplcticos, que solo se pueden utilizar para EDMRs simtricas. De hecho, las
aportaciones en los ltimos aos se dirigen, fundamentalmente, en esos dos caminos
aunque no hay que descartar las modificaciones de mtodos clsicos de resolucin de
EDMRs, sobre todo los que utilizan la linealizacin de EDMRs. No se dispone apenas

84

Captulo 2: Estado del Arte

de software para la resolucin de EDMRs, a pesar de que existen numerosos mtodos


dedicados a ellas.
Es razonable pensar, por todo lo comentado en este captulo, que es posible desarrollar
un software de calidad y de altas prestaciones que cubra las numerosas lagunas que en
la actualidad existen en relacin al clculo de Funciones de Matrices y la resolucin de
EDOs y EDMRs.

85

Captulo 3: Clculo de Funciones de Matrices

Captulo 3 Clculo de Funciones de Matrices

3.1 Resumen de Contenidos


En este captulo se describen los algoritmos desarrollados en esta tesis para el clculo de
Funciones de Matrices. Estos algoritmos se basan en las dos metodologas ms
utilizadas para abordar este tipo de problemas: aproximaciones de Pad y la
descomposicin real de Schur de una matriz. El inters de aplicar metodologas
generales de resolucin de problemas computacionales reside en utilizar el mismo
cdigo para diferentes tipos de problemas; en nuestro caso, utilizar el mismo cdigo
para el clculo de diferentes Funciones de Matrices. Por tanto, es necesario disear
algoritmos, basados en estas metodologas, que permitan calcular Funciones de
Matrices cualesquiera.
Como se ha descrito en el Captulo 2, las aproximaciones de Pad son muy utilizadas en
el clculo de Funciones de Matrices: funcin exponencial, funcin logartmica y funcin
coseno. El algoritmo general basado en esta metodologa consiste, bsicamente, en
reducir adecuadamente la norma de la matriz, determinar el polinomio de Taylor de
grado 2l + 1 de la funcin, determinar los polinomios de grado l asociados a la
aproximacin diagonal de Pad, aplicar el algoritmo bsico de Pad a la matriz obtenida
en el primer paso y, por ltimo, aplicar las transformaciones inversas de las aplicadas en
la primera etapa. Se podra pensar que lo que es apropiado, desde un punto de vista
computacional, para unas funciones (o matrices) tambin lo es para otras. Esto es as en
numerosas ocasiones pero no siempre. Por ello, es necesario adecuar algunas de las
etapas de estos algoritmos a la funcin (o matriz) considerada.
La otra metodologa se basa en la forma real de Schur de una matriz. Los algoritmos
basados en esta metodologa se caracterizan por ser, en general, muy precisos y
razonablemente eficientes. Estos algoritmos constan bsicamente de dos etapas:
determinacin de la descomposicin real de Schur de la matriz y el clculo de la funcin
de la matriz considerada a partir de su forma real de Schur.
Los algoritmos que se describen en este captulo se han desarrollado para matrices
reales. La adaptacin de los algoritmos basados en las aproximaciones diagonales de
Pad para matrices complejas es inmediata. La formulacin de los algoritmos basados
en la forma de Schur de una matriz compleja es ms sencilla que la correspondiente a la
forma real de Schur de matrices reales, pues en la primera se obtiene una matriz
triangular superior y en la segunda una matriz casi triangular superior.
Este captulo est estructurado en cuatro secciones. En la segunda seccin se describe,
en primer lugar, un algoritmo general para el clculo de Funciones de Matrices basado
en los aproximantes diagonales de Pad. En segundo lugar se muestra la manera de
obtener los polinomios de la aproximacin diagonal de Pad a partir del polinomio de
Taylor de grado 2l + 1 de la funcin considerada. En tercer lugar se analizan los
mtodos ms eficientes para calcular funciones racionales de matrices. Esta etapa
corresponde a una de las partes ms costosas del algoritmo. Entre estos mtodos se
analizan versiones de los mtodos de Horner y Paterson-Stockmeyer-Van Loan. Se
87

Captulo 3: Clculo de Funciones de Matrices

utilizan dos descomposiciones de matrices para resolver el sistema lineal que aparece en
esos mtodos: la descomposicin LU y la descomposicin QR. En cuarto lugar se aplica
el algoritmo general para el clculo de las funciones matriciales exponencial,
logartmica, potencia fraccionaria, seno y coseno. Para cada una de ellas se adapta
adecuadamente cada una de las etapas de algoritmo general.
En la tercera seccin se describen los algoritmos para el clculo de Funciones de
Matrices basados en la descomposicin real de Schur de una matriz. Se comienza
describiendo un esquema genrico de los algoritmos basados en esa metodologa. Estos
algoritmos obtienen f ( A) , con A matriz cuadrada real, realizando la descomposicin
real de Schur de la matriz A y calculando a continuacin f ( A) a partir de f (S ) ,
siendo S la forma real de Schur de A . Los algoritmos desarrollados para esa
metodologa han sido:
Algoritmo basado en la forma diagonal por bloques. Obtiene, a partir de la forma
real de Schur de la matriz A , una matriz B , diagonal por bloques, de manera que
los valores propios de bloques diagonales distintos estn suficientemente
separados. La matriz f (B ) se obtiene calculando el valor de f sobre cada uno de
los bloques diagonales de B siendo, por tanto, f (B) tambin diagonal por
bloques. Finalmente, el valor de f ( A) se obtiene a partir de f (B) .
Algoritmos basados en la Ecuacin Conmutante orientados a columnas y a
diagonales. Estos algoritmos calculan f (S ) columna a columna o diagonal a
diagonal, determinando, por una parte, los bloques diagonales f ( S ii ) a partir de
los correspondientes S ii , y los no diagonales f ( S ij ) mediante la resolucin de
una ecuacin matricial de Sylvester.
Algoritmos basados en la Ecuacin Conmutante orientados a bloques. En este
caso se realiza una divisin a bloques de la matriz S utilizando esquemas
similares a los descritos en el caso anterior, pero teniendo en cuenta que los
bloques pueden tener ahora cualquier dimensin.
Algoritmo basado en la agrupacin en cluster de los valores propios de la matriz.
Cuando la matriz A , y por tanto la matriz S , tienen valores propios cercanos
entre s, es conveniente agruparlos de manera que la resolucin de la Ecuacin
Conmutante se realice con precisin. Este algoritmo realiza reordenaciones en los
elementos de la matriz S , mediante transformaciones ortogonales de semejanza,
de manera que los valores propios cercanos se encuentren en un mismo bloque
diagonal. De este modo, la matriz S se puede estructurar por bloques y aplicar un
esquema semejante al utilizado en los algoritmos orientados a bloques.
Algoritmo basado en los aproximantes diagonales de Pad. En este algoritmo se
calcula f ( S ) mediante la adaptacin de los aproximantes diagonales de Pad a
matrices casi triangulares superiores.
La ltima seccin est dedicada a resaltar los aspectos de mayor inters de los
algoritmos descritos, comentando brevemente las caractersticas de los mismos y
comparndolos de manera terica.
Como ya se mencion en la seccin 1.1 del tema de introduccin, la nomenclatura
utilizada para los algoritmos desarrollados en esta tesis es txxyyyzzz, donde t indica el
tipo de dato utilizado, xx indica el tipo de matriz, yyy indica el problema que resuelve y

88

Captulo 3: Clculo de Funciones de Matrices

zzz el mtodo utilizado. El significado de los seis ltimos caracteres para los algoritmos
que calculan Funciones de Matrices es:
yyy: funcin considerada.
Para los algoritmos que resuelven la Ecuacin Conmutante por columnas,
diagonales, bloques de columnas y bloques de diagonales se tiene que yyy=fun
de manera que la funcin es pasada como argumento de entrada de la rutina.
Para el resto de algoritmos se utiliza la siguiente nomenclatura:
yyy=fex, indica la funcin e A ;
yyy=fax, indica la funcin a A ;
yyy=fcs, indica la funcin cos A ;
yyy=fsn, indica la funcin sen A ;
yyy=fln, indica la funcin ln A ;
yyy=flg, indica la funcin log a A ;
yyy=fpt, indica la funcin Aa ;
yyy=fpf, indica la funcin
yyy=frc, indica la funcin

Aq , q / p 1/ 2 ;
A.

zzz: mtodo utilizado.


dbe: indica que se utiliza el mtodo DB (Denman and Beavers) con escalado
optimizado para el clculo de la raz cuadrada de una matriz;
psv: indica que se utiliza el mtodo de Paterson-Stockmeyer-Van Loan para el
clculo de la aproximacin diagonal de Pad;
hlu: indica que se utiliza el mtodo de Horner y la descomposicin LU con
pivotamiento parcial de filas para la resolucin del sistema de ecuaciones
lineales que aparece en la aproximacin diagonal de Pad;
hqr: indica que se utiliza el mtodo de Horner y la descomposicin QR para la
resolucin del sistema de ecuaciones lineales que aparece en la aproximacin
diagonal de Pad;
plu: indica que se utiliza el mtodo de Paterson-Stockmeyer-Van Loan y la
descomposicin LU con pivotamiento parcial de filas para la resolucin del
sistema de ecuaciones lineales que aparece en la aproximacin diagonal de
Pad;
pqr: indica que se utiliza el mtodo de Paterson-Stockmeyer-Van Loan y la
descomposicin QR para la resolucin del sistema de ecuaciones lineales que
aparece en la aproximacin diagonal de Pad.
scc: algoritmo basado en la descomposicin real de Schur de una matriz y en la
resolucin de la ecuacin conmutante orientada a columnas;
scd: algoritmo basado en la descomposicin real de Schur de una matriz y en la
resolucin de la ecuacin conmutante orientada a diagonales;

89

Captulo 3: Clculo de Funciones de Matrices

sbc: algoritmo basado en la descomposicin real de Schur de una matriz y en la


resolucin de la ecuacin conmutante orientada a bloques de columnas;
sbd: algoritmo basado en la descomposicin real de Schur de una matriz y en la
resolucin de la ecuacin conmutante orientada a bloques de diagonales;
scl: algoritmo basado en la descomposicin real de Schur de una matriz y en la
resolucin de la ecuacin conmutante, con agrupacin de valores propios en
clusters;
sph: algoritmo basado en la descomposicin real de Schur de una matriz y en
los aproximantes diagonales de Pad, utilizando el mtodo de Horner;
spp: algoritmo basado en la descomposicin real de Schur de una matriz y en
los aproximantes diagonales de Pad, utilizando el mtodo de PatersonStockmeyer-Van Loan;
sdb: algoritmo basado en la descomposicin real de Schur de una matriz y en la
diagonalizacin a bloques de la matriz.

3.2 Algoritmos Basados en los Aproximantes Diagonales


de Pad
3.2.1 Esquema General
En este apartado se describe un esquema general, basado en los aproximantes
diagonales de Pad, que permite calcular funciones de matrices f ( A) , siendo A nxn
y f (z ) una funcin analtica definida sobre el espectro de A . Esta metodologa se
puede aplicar a funciones analticas entre las que se encuentran las siguientes:
funcin exponencial,
funcin logartmica,
potencias de exponente fraccionario,
funciones trigonomtricas seno y coseno.
Las etapas bsicas de ese esquema se presentan a continuacin:
1. Reducir la norma de la matriz.

Cuando se utilizan aproximantes de Pad es conveniente transformar la matriz A en


otra matriz A de norma ms pequea. Esto est motivado por el hecho de que los
desarrollos en serie de Taylor de la funcin y, por consiguiente, el desarrollo
correspondiente de Pad, estn centrados en cero. En el caso de funciones de matrices,
los aproximantes diagonales de Pad permiten buenas aproximaciones siempre y
cuando la norma de la matriz A sea pequea. Existen numerosos artculos en los que se
utiliza esta tcnica:

Exponencial: [MoVa78], [MoVa03].

Logaritmo: [KeL289], [High01].

Coseno: [SeBl80].

90

Captulo 3: Clculo de Funciones de Matrices

2. Determinar los coeficientes del desarrollo de Taylor de la funcin.

En esta etapa se determina el polinomio de Taylor correspondiente a la funcin


considerada. Si se desea obtener una aproximacin diagonal de Pad de orden (l , l ) ,
entonces el grado del polinomio de Taylor debe ser 2l + 1 .
3. Determinar los polinomios de la aproximacin diagonal de Pad.

Hay muchos motivos que justifican el inters de utilizar aproximantes diagonales de


Pad ([MoVa78], [KeL289], [High01]), fundamentalmente porque permiten calcular
funciones de matrices con una precisin semejante a la de otros mtodos pero con un
menor coste computacional. Aunque hay ciertos estudios sobre cul puede ser el grado
ptimo de los polinomios de la aproximacin de Pad, ste depende de la matriz y de la
funcin considerada. Como se coment en el Captulo 2, recientemente se han revisado
criterios tericos, que hace algunos aos se consideraban vlidos, en cuanto a la
eleccin de ese grado para la exponencial de una matriz. Por ello, se ha considerado ms
apropiado hacer variable ese grado para poder determinar de manera experimental cul
puede ser su valor ptimo.
4. Aplicar el algoritmo bsico de Pad a la matriz A obtenida en la primera etapa.

En esta etapa se aplica el mtodo clsico de aproximantes de Pad, utilizando tcnicas


que minimizan el nmero de operaciones (vase por ejemplo [PaSt73] o [VanL79]). El
aproximante diagonal de Pad aplicado a la matriz A se define como
r ( A ) = [q( A )]1 p( A ) ,
siendo p y q los polinomios de grado l obtenidos a partir del polinomio de Taylor
a(x) de la funcin f (x) . En definitiva, f ( A ) se puede calcular aproximadamente
mediante la expresin
f ( A ) r ( A ) = [q( A )]1 p( A ) .
5. Aplicar las transformaciones inversas de las aplicadas en la primera etapa.

En esta etapa se aplican las transformaciones necesarias a la matriz obtenida en la cuarta


etapa, de manera que se tengan en cuenta las transformaciones aplicadas sobre la matriz
A.
A continuacin se presenta el algoritmo general que calcula funciones de matrices
mediante aproximantes diagonales de Pad. Para cada etapa del algoritmo se detalla la
el resultado obtenido despus de haber aplicado los pasos necesarios.

91

Captulo 3: Clculo de Funciones de Matrices

Entradas: Matriz A nxn , grado l Z + de los polinomios de la aproximacin


diagonal de Pad, funcin analtica f ( x) .
Salida:
1
2
3
4
5

Matriz B = f ( A) nxn .

Aplicar transformaciones que disminuyan || A || : A .


Encontrar el polinomio de Taylor de grado 2l + 1 de la funcin f ( x) : a( x) .
Encontrar los polinomios de grado l de la aproximacin diagonal de Pad:
p ( x) , q ( x) .
Calcular la aproximacin de Pad r ( x) = p( x) / q( x) sobre la matriz A :
B = r( A) .
Aplicar las transformaciones inversas de las aplicadas en la etapa 1 sobre la
matriz B : B .

Algoritmo 3.1: Algoritmo general para el clculo de funciones de matrices basado en


los aproximantes diagonales de Pad.

3.2.2 Determinacin de los Polinomios de la Aproximacin


Diagonal de Pad
En este apartado se describe la manera de calcular los polinomios de grado l de la
aproximacin diagonal de Pad de una funcin analtica f ( x) . Sea f ( x) una funcin
real que admite el desarrollo en series de potencias

f ( x) = a k x k
k =0

con radio de convergencia R , y la aproximacin racional de f (x)


r ( x) =

p ( x)
,
q ( x)

siendo
l

p( x) = p0 + p1 x + L + pl x l = pi x i ,
i =0
l

q ( x) = q0 + q1 x + L + ql x l = q j x j
j =0

y
f k ) (0) = r k ) (0) , k = 0,1,L,2l .
Considerando la funcin
z ( x) = f ( x)q ( x) p ( x) =
l
2l
l
= ak x k + s2l +1 ( x) q j x j pi x i =
k =0
j = 0
i =0
l
l
2l
l
= ak x k q j x j pi x i + s2l +1 ( x) q j x j ,
j =0
k =0
j = 0
i =0

92

Captulo 3: Clculo de Funciones de Matrices

se obtiene la expresin
( 3.1 )

l
l
2l
l
ak x k q j x j pi x i + s2l +1 ( x) q j x j = z ( x) ,
j =0
k =0
j = 0
i =0

cumplindose adems que z k ) (0) = 0 , k = 0,1, L,2l .


Sustituyendo x por 0, se obtiene la ecuacin
a0 q0 p0 = 0 .

( 3.2 )

Derivando la expresin ( 3.1 ) l veces y sustituyendo x por 0, se obtienen las


ecuaciones
a1q0 + a0 q1 p1 = 0,
( 3.3 )

M
al 1q0 + al 2 q1 + L + a1ql 2 + a0 ql 1 pl 1 = 0,
al q0 + al 1q1 + L + a1ql 1 + a0 ql pl = 0.

La ecuacin ( 3.2 ) y las ecuaciones ( 3.3 ) se pueden expresar en forma matricial como

( 3.4 )

p 0 a0
p a
1 1
M = M


pl 1 al 1
pl al

0
a0

L
L

0
0

al 2 L a 0
al 1 L a1

0 q0
0 q1
M M .

0 ql 1
a0 ql

Hallando las derivadas de rdenes l + 1,L,2l de la expresin ( 3.1 ) y sustituyendo x


por 0, se tiene el sistema de ecuaciones lineales
al +1q0 + al q1 + al 1q2 + L + a2 ql 1 + a1ql = 0

al + 2 q0 + al +1q1 + al q2 + L + a3 ql 1 + a2 ql = 0

M
.
a2l 1q0 + a2l 2 q1 + a2l 3 q2 + L + al ql 1 + al 1ql = 0

a2l q0 + a2l 1q1 + a2l 2 q2 + L + al +1ql 1 + al ql = 0

Como se tienen l ecuaciones con l + 1 incgnitas, es necesario dar un valor a una de las
incgnitas. Tomando q 0 = 1 , entonces el sistema anterior se expresa en forma matricial
como

( 3.5 )

al
a
l +1
M

a2l 2
a2l 1

al 1

a2

al

a3

O
L

M
al

a 2 l 3

a2l 2 L al +1

a1 q1 al +1
a2 q2 al + 2
M M = M .

al 1 ql 1 a2l 1
al ql a2l

Por lo tanto, los coeficientes de los polinomios p( x) y q( x) se obtienen resolviendo la


ecuacin matricial ( 3.5 ) y realizando el producto que aparece en la expresin ( 3.4 ). El
algoritmo correspondiente a esta etapa se presenta a continuacin.

93

Captulo 3: Clculo de Funciones de Matrices

[ p, q ] = dlacp(a)
Entrada: Vector a 2l +1 que contienen a los coeficientes del polinomio de Taylor
a ( x) de grado 2l + 1 de f ( x) .
Salidas: Vectores p, q l +1 que contienen a los coeficientes de los polinomios
p( x) y q( x) , de grados igual a l , del aproximante diagonal de Pad de
f (x) .
1
2

Resolver la ecuacin ( 3.5 ) para encontrar los coeficientes del polinomio q ( x) .


Calcular el producto matriz por vector que aparece en la expresin ( 3.4 ) para
encontrar los coeficientes del polinomio p( x) .

Algoritmo 3.2: Clculo de los polinomios de la aproximacin diagonal de Pad de una


funcin analtica f ( x) .
El coste aproximado del algoritmo anterior es
8l 3
+ l 2 flops.
3

3.2.3 Funciones Polinmicas y Racionales


En este apartado se detallan dos mtodos que permiten calcular funciones racionales de
matrices. Esto es necesario para el clculo de funciones de matrices basado en los
aproximantes de Pad (cuarta etapa del Algoritmo 3.1). Aunque la descripcin se va a
realizar para funciones racionales, es fcil ver su extensin para el caso de funciones
polinmicas.
El primero se obtiene aplicando el mtodo de Horner para funciones racionales.
B = dgefrahor ( p, q, A ) .
Entradas: Matriz A nxn , polinomios p( x) y q( x) de grado l Z + .
Salida:
1
2
3

Matriz B = r ( A ) , con r ( x) = p( x) / q( x) .

P = pl I n
Q = ql I n
Para i = l 1 : 1 : 0
P = A P + pi I n
3.1
Q = A Q + qi I n
3.2
Calcular B resolviendo la ecuacin QB = P

Algoritmo 3.3: Clculo de la funcin racional de una matriz mediante el mtodo de


Horner.
El coste aproximado del algoritmo anterior es
8 3

2(l 1) + 3 n flops.
El segundo mtodo est basado en el anidamiento de productos, denominado mtodo de
Paterson-Stockmeyer-Van Loan, ([PaSt73], [VanL79]).
94

Captulo 3: Clculo de Funciones de Matrices

Si
l

p ( A ) = pi A i ,
i =0

entonces realizando agrupamientos de s trminos, se tiene que


l

i =0

k =0

p ( A ) = p i A i = Bk ( A s ) k ,

( 3.6 )
con c = int(l / s ) y

p sk I n + L + p sk +1 A + p sk + s 1 A s 1 , k = 0,1,L, c 1
Bk =
.
p sc I n + L + pl 1 A l sc1 + pl A l sc , k = c
Por ejemplo, para l = 7 y s = 3 se tiene la siguiente expresin

p ( A ) = p0 I n + p1 A + p 2 A 2 + p3 A 3 + p 4 A 4 + p5 A 5 + p6 A 6 + p7 A 7
= p0 I n + p1 A + p2 A 2 + [ p3 + p4 A + p5 A 2 + p6 A 3 + p7 A 4 ] A 3
= p0 I n + p1 A + p2 A 2 + [ p3 + p4 A + p5 A 2 + ( p6 I n + p7 A ) A 3 ] A 3 .
De igual modo, para
l

q( A ) = qi A i
i =0

se obtiene una expresin similar a ( 3.6 ).


El algoritmo asociado a este mtodo es el siguiente.

95

Captulo 3: Clculo de Funciones de Matrices

B = dgefrapsv( s, p, q, A ) .
Entradas: Factor s Z + de agrupamiento, polinomios p(x) y q(x) de grados
iguales a l Z + , matriz A nxn .
Salida:
1
2
3
4
5

Matriz r ( A ) , con r ( x) = p( x) / q( x) .

c = int(l / s)
r = mod(l , s )
Y1 = A
Para k = 2 : s
Yk = A Yk 1
4.1
Si r 0
P = pl r I n + pl r +1Y1 + L + pl Yr
5.1
5.2
Q = ql r I n + ql r +1Y1 + L + ql Yr
Si No
6.1
P = 0n
6.2
Q = 0n
Para k = 1 : c
7.1
P = ps ( c k ) I n + L + ps ( c k )+ s 1Ys 1 + Ys P
7.2

Q = qs ( ck ) I n + L + qs ( ck )+ s 1Ys 1 + Ys Q

Calcular r ( A ) resolviendo la ecuacin Qr ( A ) = P .

Algoritmo 3.4: Clculo de la funcin racional de una matriz mediante el mtodo de


Paterson-Stockmeyer-Van Loan.
Para calcular Yk , k = 2,3,L, s , son necesarios 2( s 1)n 3 flops.
Si se supone que s divide a l , entonces el coste del bucle 7 es

2l
2n

2n 3 + 2sn 2 = 2n 2 l + 2 .
s
s

Por lo tanto, el coste aproximado del algoritmo anterior es


2nl
2n

C ( s ) = 2( s 1)n 3 + 2n 2 l + 2 = 2n 2 ( s 1)n +
+ 2l flops.
s

El valor mnimo de la expresin anterior se obtiene cuando s = 2l .


Si se elige convenientemente el factor s de agrupamiento, se tiene que el algoritmo
basado en el mtodo de Paterson-Stockmeyer-Van Loan tiene un menor coste
computacional que el algoritmo basado en el mtodo de Horner, a costa de aumentar el
coste espacial

3.2.4 Clculo de Funciones de Matrices


En este apartado se describe la aplicacin del esquema descrito en el apartado 3.2.13.1 a
varias funciones de matrices.

96

Captulo 3: Clculo de Funciones de Matrices

3.2.4.1 Funcin Exponencial


Etapa 1: Reducir la norma de la matriz.

Las tcnicas de reduccin de la norma de una matriz, adems de ser eficientes, deben
poderse corregir al final del algoritmo, para as obtener la exponencial de la matriz
inicial. Para la exponencial de una matriz se pueden aplicar tres tcnicas que se pueden
utilizar conjuntamente:
Minimizar la norma de la matriz A ante traslaciones del tipo A tI n ([Ward77]).
Equilibrar la matriz ([Ward77]).
Escalar la matriz ([MoVa78], [MoVa03]).
La primera tcnica consiste en minimizar la norma de la matriz A ante todas las
posibles traslaciones del tipo A tI n . El clculo que conduce a la obtencin de la
traslacin que minimiza a la norma de la matriz no es sencillo; sin embargo, se puede
aproximar dicha traslacin calculando la media de los valores propios de la matriz.
Como la suma de los valores propios de una matriz coincide con la traza de la matriz,
entonces la media de los valores propios coincide con traza ( A) / n , por lo que se puede
considerar la transformacin definida por la matriz A1 = A tI n , siendo
t=

traza ( A)
.
n

La segunda tcnica consiste en minimizar la 1-norma de la matriz A1 , ante todas las


posibles transformaciones de semejanza diagonales. Esta tcnica, conocida con el
nombre de equilibrado de la matriz, consiste en encontrar una matriz diagonal D
invertible de manera que la 1-norma de la matriz
A2 = D 1 A1D
tenga el menor valor posible.
La tercera tcnica consiste en el escalado de la matriz. Para ello se elige un valor de m
que sea potencia de 2 ( m = 2 j ), de manera que e A2 / m pueda calcularse con precisin y
eficiencia. Un criterio, comnmente utilizado, consiste en elegir m de manera que la
matriz
A = A2 / m
tenga una norma menor que una cierta cantidad, por ejemplo, menor que 1.
En resumen, en esta etapa se aplican las siguientes transformaciones:
A A1 = A tI n A2 = D 1 A1 D A = A2 / m .
Etapa 2: Calcular el polinomio de Taylor.

Si se desea obtener una aproximacin diagonal de Pad de orden (l , l ) , es necesario que


el polinomio de Taylor sea de grado 2l + 1 . En el caso de la funcin exponencial resulta
ser el polinomio
( 3.7 )

a ( x) = 1 + x +

1 2 1 3
1
x + x +L+
x 2 l +1 .
2!
3!
(2l + 1)!

97

Captulo 3: Clculo de Funciones de Matrices

Etapa 3: Calcular los polinomios de la aproximacin diagonal de Pad.

Se aplica el Algoritmo 3.2 para encontrar, a partir del polinomio de Taylor de la


segunda etapa, los polinomios p(x) y q (x) de la funcin racional de Pad
r ( x) = p ( x) / q ( x) .
Etapa 4: Calcular la aproximacin diagonal de Pad de la matriz A .

Se calcula B = r ( A ) utilizando, por ejemplo, el Algoritmo 3.4.


Etapa 5: Aplicar las transformaciones inversas de las realizadas en la etapa 1.

Los pasos que se deben realizar en esta etapa corresponden a las transformaciones
inversas de las aplicadas en la primera etapa; as pues, habr que determinar las
siguientes transformaciones:
B = e A B2 = e A2 B1 = e A1 B = e A .
La primera transformacin consiste en calcular B2 a partir de B :

( )

B2 = e A2 = e mA = e A

= Bm , m = 2j .

La segunda transformacin consiste en calcular B1 a partir de B2 :


1

B1 = e A1 = e DA2 D = De A2 D 1 = DB2 D 1 .

Por ltimo, la tercera transformacin consiste en calcular B a partir de B1 :


B = e A = e A1 +tI n = e t e A1 = e t B1 , t = traza( A) / n .
El algoritmo que calcula la exponencial de una matriz mediante aproximantes
diagonales de Pad aparece a continuacin.

98

Captulo 3: Clculo de Funciones de Matrices

B = dgefexpsv( s, l , A) .
Entradas: Factor de agrupamiento s Z + , grado l Z + de los polinomios de la
aproximacin diagonal de Pad, matriz A nxn .
Salida:
1

2
3
4
5

Matriz B = e A nxn .

Reducir la norma de la matriz A :


1.1
t = traza ( A) / n
1.2
A1 = A tI n
1.3
[ A2 , D ] = dgebal ( A1 ) (equilibrado de la matriz A1 )
j = max(0,1 + floor (log 2 || A || ))
1.4
A = A2 / 2 j
1.5
a = dlaexp(l ) (determina los coeficientes del polinomio de Taylor segn la
expresin ( 3.7 ))
[ p, q] = dlacp(a) (determina los polinomios de la aproximacin diagonal de
Pad mediante el Algoritmo 3.2)
B = dgefrapsv( s, p, q, A ) (calcula la aproximacin diagonal de Pad mediante el
Algoritmo 3.4)
Aplicar las transformaciones inversas a las aplicadas en la primera etapa:
5.1
Calcular B2 = B m , m = 2 j , mediante potenciacin sucesiva:
5.1.1 B2 = B
5.1.2 Para k = 1 : j
5.1.2.1 B2 = B22
5.2
B1 = DB2 D 1
5.3
B = e t B1

Algoritmo 3.5: Clculo de la exponencial de una matriz mediante los aproximantes


diagonales de Pad.
El coste aproximado del algoritmo anterior es
3

2nl
8l

2n 2 ( s 1)n +
+ l 2 flops.
+ 2l + nj +
s
3

3.2.4.2 Funcin Potencia Fraccionaria

En este subapartado se particulariza el Algoritmo 3.1 a la funcin


f ( x) = x c / d = d x c ,
con c, d Z .
Etapa 1: Reducir la norma de la matriz.

Para reducir la norma de A nxn se determina un entero positivo j de manera que la


matriz A1 = A1 / m , m = 2 j , tenga una norma cercana a 1. De este modo,

Ac / d = d Ac = d A1/ m

cm

= d A1

cm

= d (I n + A1 I n )

cm

= d (I n + A )

cm

= (I n + A ) d ,
cm

99

Captulo 3: Clculo de Funciones de Matrices

siendo A = A1 I n .
La matriz A1 se puede obtener mediante el clculo sucesivo de races cuadradas,
(j

A1 = A1/ m = A1/ 2 = L A ,
j

utilizando la iteracin DB con escalado descrita en el subapartado 2.2.3.3.


Resumiendo, en esta etapa se realizan las transformaciones siguientes:
A A1 = A1 / m A = A1 I n .
Etapa 2: Calcular el polinomio de Taylor.

El polinomio de Taylor de grado 2l + 1 , que permite calcular la aproximacin diagonal


de Pad de orden (l , l ) , de la funcin
( 3.8 ) a ( x) = 1 +

(1 + x )k

= (1 + x) k / d , con k = cm , es

k
k k
k
2l +1
2
k
k
k
x+
1 x + L +
1 2 L 2l x .
1! d
2! d d
(2l + 1)!d d

d
d

Etapa 3: Calcular los polinomios de la aproximacin diagonal de Pad.

Se aplica el Algoritmo 3.2 para encontrar los polinomios p( x) y q( x) de la


aproximacin diagonal de Pad r ( x) = p( x) / q( x) .
Etapa 4: Calcular la aproximacin diagonal de Pad de la matriz A .

Se calcula B = r ( A ) utilizando, por ejemplo, el Algoritmo 3.4.


Etapa 5: Aplicar las transformaciones inversas de las realizadas en la etapa 1.

Los pasos que se deben realizar en esta etapa deben corresponder a las transformaciones
inversas de las aplicadas en la primera etapa. Para la potencia fraccionaria se calcula
B = d Ac a partir de B = d ( I n + A ) cm , utilizando las transformaciones B B1 B .
La primera transformacin consiste en calcular B1 a partir de B :
B1 = d A1cm = d ( I n + A ) cm = B .

La segunda transformacin consiste en calcular B a partir de B1 :

B = d Ac = d A1/ m

cm

= d A1

cm

= B1 .

Por lo tanto, se puede eliminar la quinta etapa pues B = B .


En primer lugar se presenta un algoritmo que calcula la raz cuadrada de una matriz
mediante una variante de la iteracin DB con escalado. Este algoritmo se ha optimizado
al resolver un sistema lineal en lugar de calcular las dos matrices inversas que aparecen
en el mtodo DB.

100

Captulo 3: Clculo de Funciones de Matrices

B = dgefrcdbe( A, tol , maxiter ) .


Entradas: Matriz A nxn , tolerancia tol + , nmero mximo de iteraciones
maxiter Z + .
Salida:
1
2
3
4
5
6

Matriz B =

A.

M =A
Y=A
Z = In
cont = 1
k =1
Mientras cont == 1
1 /( 2 n )
6.1
= det( M )
1

6.2

W=

6.3
6.4

Calcular X resolviendo la ecuacin MX = W


W=X

1
M = 0.25 2 I n + 2 M + W

W = In + W
Y = 0.5YW
Z = 0.5ZW
W = M In
k = k +1
Si || W ||1 < tol o k > maxiter
6.11.1 cont = 0

6.5
6.6
6.7
6.8
6.9
6.10
6.11

In

Algoritmo 3.6: Calcula la raz cuadrada de una matriz mediante el mtodo DB con
escalado optimizado.
El coste aproximado del algoritmo anterior es
20 3
kn flops,
3
donde k es el nmero de iteraciones necesarias para alcanzar la convergencia.
El algoritmo que calcula la potencia fraccionaria de una matriz mediante aproximantes
diagonales de Pad aparece a continuacin.

101

Captulo 3: Clculo de Funciones de Matrices

B = dgefpfpsv( s, l , c, d , A) .
Entradas: Factor de agrupamiento s Z + , grado l Z + de los polinomios de la
aproximacin diagonal de Pad, c, d Z que definen la potencia
fraccionaria de exponente c / d , matriz A nxn .
Salida:
1

Matriz B = d Ac .

Reducir la norma de la matriz A :


j = max(0,1 + floor (log 2 || A || ))
1.1
1.2

A1 = A1/ 2 :
1.2.1 A1 = A
1.2.2 Para i = 1 : j
j

A1 = dgefrcdbe( A1 ,10 15 ,100) (calcula A1 = A1


mediante el Algoritmo 3.6)
a = dlafrp(l ) (determina los coeficientes del polinomio de Taylor segn la
expresin ( 3.8))
[ p, q] = dlacp(a) (determina los polinomios de la aproximacin diagonal de
Pad mediante el Algoritmo 3.2)
B = dgefrapsv ( s, p, q, A1 ) (calcula la aproximacin diagonal de Pad mediante el
Algoritmo 3.4)
1.2.2.1

2
3
4

Algoritmo 3.7: Clculo de la potencia fraccionaria de una matriz mediante los


aproximantes diagonales de Pad.
El coste aproximado del algoritmo anterior es
2nl
10n 8 3 2

+ 2l +
2n 2 ( s 1)n +
K j + l + l flops,
s
3

3
siendo K j el nmero total de iteraciones necesarias para calcular las j races cuadradas
del bucle 1.2.2.
3.2.4.3 Funcin Logaritmo
Etapa 1: Reducir la norma de la matriz.

Para reducir la norma de A nxn se determina un entero positivo j de manera que la


matriz A1 = A1 / m , m = 2 j , tenga una norma cercana 1. De este modo,

log A = m log A1 / m = m log( A1 ) = m log(I n + A1 I n ) = m log(I n + A ) ,

siendo A = A1 I n .
La matriz A1 se puede obtener mediante el clculo sucesivo de races cuadradas, ya que
(j

A1 = A1/ m = A1/ 2 = L A .
j

Resumiendo, en esta etapa se realizan las transformaciones siguientes:


A A1 = A1 / m A = A1 I n .

102

Captulo 3: Clculo de Funciones de Matrices

Etapa 2: Calcular el polinomio de Taylor.

El polinomio de Taylor de grado 2l + 1 , que permite calcular el aproximante diagonal


de Pad de orden (l , l ) , de la funcin log(1 + x) es
( 3.9 )

a ( x) = 1 + x

1 2 1 3 1 4
1
x + x x +L+
x 2l +1 .
2
3
4
2l + 1

Etapa 3: Calcular los polinomios de la aproximacin diagonal de Pad.

Se aplica el Algoritmo 3.2 para encontrar los polinomios p( x) y q( x) de la


aproximacin diagonal de Pad r ( x) = p( x) / q( x) .
Etapa 4: Calcular la aproximacin diagonal de Pad de la matriz A .

Se calcula B = r ( A ) utilizando, por ejemplo, el Algoritmo 3.4.


Etapa 5: Aplicar las transformaciones inversas de las realizadas en la etapa 1.

Los pasos que se deben realizar en esta etapa corresponden a las transformaciones
inversas de las aplicadas en la primera etapa. En primer lugar se calcula B = log A a
partir de B = log( I n + A ) , utilizando las transformaciones B B1 B .
La primera transformacin consiste en calcular B1 a partir de B :
B1 = log A1 = log( I n + A ) = B .
La segunda transformacin consiste en calcular B a partir de B1 :
B = log A = m log A1/ m = m log A1 = mB1 .
El algoritmo para el clculo del logaritmo de una matriz aparece a continuacin.

103

Captulo 3: Clculo de Funciones de Matrices

B = dgeflgpsv( s, l , A) .
Entradas: Factor de agrupamiento s Z + , grado l Z + de los polinomios de la
aproximacin diagonal de Pad, matriz A nxn .
Salida:
1

Matriz B = log A nxn .

Reducir la norma de la matriz A :


j = max(0,1 + floor (log 2 || A || ))
1.1
1.2

A1 = A1 / 2 :
1.2.1 A1 = A
1.2.2 Para i = 1 : j
j

1.2.2.1

2
3
4
5

A1 = dgefrcdbe( A1 ,10 15 ,100)


mediante el Algoritmo 3.6)

(calcula

A1 = A1

A = A1 I n .
1.3
a = dlalog (l ) (determina los coeficientes del polinomio de Taylor segn la
expresin ( 3.9 ))
[ p, q] = dlacp(a) (determina los polinomios de la aproximacin diagonal de
Pad mediante el Algoritmo 3.2)
B = dgefrapsv( s, p, q, A ) (calcula la aproximacin diagonal de Pad mediante el
Algoritmo 3.4)
Aplicar las transformaciones inversas a las aplicadas en la primera etapa:
B = mB
5.1

Algoritmo 3.8: Clculo del logaritmo de una matriz mediante los aproximantes
diagonales de Pad.
El coste aproximado del algoritmo anterior es
2nl

8
+ 2l + 2nK j + l 3 + l 2 flops,
2n 2 ( s 1)n +
s

3
siendo K j el nmero total de iteraciones necesarias para calcular las j races cuadradas
del bucle 1.2.2.
3.2.4.4 Funcin Coseno

El clculo del coseno de una matriz que se describe a continuacin est basado,
fundamentalmente, en el mtodo descrito en el subapartado 2.2.3.6.
Etapa 1: Reducir la norma de la matriz.

Para reducir la norma de la matriz A , mediante transformaciones de bajo coste, se


explota la relacin de periodicidad de la funcin coseno
cos( A qI n ) = (1) q cos A , q Z ,
siendo q el entero ms cercano a traza ( A) / n que hace menor el valor de || A1 || , donde
A1 = A qI n .
A continuacin se determina una matriz diagonal D de manera que A2 = D 1 A1 D est
equilibrada.
104

Captulo 3: Clculo de Funciones de Matrices

Por ltimo, se elige m = 2 j tal que la matriz


A = A2 / m
tenga una norma menor que 1.
Resumiendo, en esta etapa se realizan las transformaciones siguientes
A A1 = A qI n A2 = D 1 A1 D A = A2 / m .
Etapa 2: Clculo del polinomio de Taylor.

El polinomio de Taylor de grado 2l + 1 que permite calcular el aproximante diagonal de


Pad de orden (l , l ) de la funcin cos x , es
( 3.10 )

a ( x) = 1

1 2
1 2l
x + L + (1) l
x + 0 x 2l +1 .
2!
(2l )!

Etapa 3: Clculo de los polinomios de la aproximacin diagonal de Pad.

Se aplica el Algoritmo 3.2 para encontrar los polinomios p(x) y q(x) de la funcin
racional de Pad r ( x) = p( x) / q( x) .
Etapa 4: Clculo de la aproximacin diagonal de Pad de la matriz A .

Se calcula B = r ( A ) aplicando, por ejemplo, el Algoritmo 3.4.


Etapa 5: Aplicacin de las transformaciones inversas de las realizadas en la
primera etapa.

Las transformaciones que se deben aplicar en esta etapa son:


B = cos A B2 = cos A2 B1 = cos A1 B = cos A .
Como
B2 = cos A2 = cos(2 j A ) ,
entonces B2 se puede obtener aplicando j veces la frmula del coseno del ngulo
doble para matrices:
B2 = B
Para i = 1 : j
B2 = 2 B22 I n .
En la segunda transformacin se debe calcular B1 = cos A1 a partir de B2 = cos A2 :
B1 = cos A1 = cos( DA2 D 1 ) = D cos( A2 ) D 1 = DB2 D 1 .
En la tercera transformacin se debe calcular B = cos A a partir de B1 = cos A1 :
B = cos A = cos( A1 + qI n ) = (1) q cos A1 = (1) q B1 .

105

Captulo 3: Clculo de Funciones de Matrices

B = dgefcspsv( s, l , A) .
Entradas: Factor de agrupamiento s Z + , grado l Z + de los polinomios de la
aproximacin diagonal de Pad, matriz A nxn .
Salida: Matriz B = cos A .
1

2
3
4
5

Reducir la norma de la matriz A :


1.1
Determinar el entero q ms cercano a traza ( A) / n que minimice
A qI n 1

A1 = A qI n
1.2
[ A2 , D ] = dgebal ( A1 ) (equilibrado de la matriz A1 )
1.3
1.4
j = max(0,1 + floor(log 2 || A2 || ))
1.5
A = A2 / 2 j
a = dlacos(l ) (determina los coeficientes del polinomio de Taylor segn la
expresin ( 3.10 ))
[ p, q] = dlacp(a) (determina los polinomios de la aproximacin diagonal de
Pad mediante el Algoritmo 3.2)
B = dgefrapsv( s, p, q, A ) (calcula la aproximacin diagonal de Pad mediante el
Algoritmo 3.4)
Aplicar transformaciones inversas a las aplicadas en la primera etapa:
B2 = cos(2 j A ) :
5.1
5.1.1 B2 = B
5.1.2 Para i = 1 : j
5.1.2.1 B2 = 2 B22 I n
5.2
5.3

B1 = DB2 D 1
B = (1) q B1

Algoritmo 3.9: Clculo del coseno de una matriz mediante los aproximantes diagonales
de Pad.
El coste aproximado del algoritmo anterior es
2nl

8
2n 2 ( s 1)n +
+ 2l + nj + l 3 + l 2 flops.
s
3

3.2.4.5 Funcin Seno

La aplicacin del Algoritmo 3.1 a la funcin seno resulta complicada debido a que en la
quinta etapa es necesario aplicar la identidad
sen 2 A = 2senA cos A .

En lugar de ello, se puede calcular el seno de una matriz como a continuacin se


muestra. Puesto que las matrices

In y A

conmutan, entonces

106

Captulo 3: Clculo de Funciones de Matrices



cos I n A = cos I n cos A + sen I n sen = cos I n cos A + sen I n senA
2
2
2

2
2
= sen A.
Por lo tanto, senA se puede obtener mediante una adaptacin del Algoritmo 3.9.

B = dgefsnpsv( s, l , A) .
Entradas: Factor de agrupamiento s Z + , grado l Z + de los polinomios de la
aproximacin diagonal de Pad, matriz A nxn .
Salida: Matriz B = sen A .
1
2

3
4
5
6

A=

In A
2
Reducir la norma de la matriz A :
2.1
Determinar q entero ms cercano a traza ( A) / n que minimice
A qI n 1
2.2
A1 = A qI n
2.3
[ A2 , D ] = dgebal ( A1 ) (equilibrado de la matriz A1 )
j = max(0,1 + floor(log 2 || A2 || ))
2.4
2.5
A = A2 / 2 j
a = dlacos(l ) (determina los coeficientes del polinomio de Taylor segn la
expresin ( 3.10 ))
[ p, q] = dlacp(a) (determina los polinomios de la aproximacin diagonal de
Pad mediante el Algoritmo 3.2)
B = dgefrapsv( s, p, q, A ) (calcula la aproximacin diagonal de Pad mediante el
Algoritmo 3.4)
Aplicar transformaciones inversas a las aplicadas en la primera etapa:
B2 = cos( A2 ) :
6.1
6.1.1 B2 = B
6.1.2 Para i = 1 : j
6.1.2.1 B2 = 2 B22 I n
6.2
6.3

B1 = DB2 D 1
B = (1) q B1

Algoritmo 3.10: Clculo del seno de una matriz mediante los aproximantes diagonales
de Pad.
El coste aproximado del algoritmo anterior es
2nl

8
+ 2l + nj + l 3 + l 2 flops.
2n 2 ( s 1)n +
s

107

Captulo 3: Clculo de Funciones de Matrices

3.3 Algoritmos Basados Descomposicin Real de Schur


de una matriz
3.3.1 Esquema General
Se pueden desarrollar varios algoritmos a partir de la descomposicin real de Schur de
una matriz A nxn . Conocida dicha descomposicin, se determina el valor de la
funcin sobre la forma real de Schur de la matriz considerada y se calcula f ( A) a partir
de la matriz anterior. A continuacin se describe detalladamente el esquema
correspondiente.
Segn el Teorema 6.7, A se puede descomponer como
A = QSQ T ,
siendo Q nxn ortogonal y S nxn casi triangular superior. Por la Propiedad 2.2, se
tiene que si f ( z ) es analtica sobre un abierto que contiene al espectro de A , entonces
f ( A) se puede calcular como
f ( A) = Qf ( S )Q T .
El algoritmo general que calcula funciones de matrices mediante la forma real de Schur
de una matriz se muestra a continuacin.
Entrada: Matriz A nxn .
Salida:
1
2
3

Matriz B = f ( A) nxn .

[Q, S ] = schur ( A) (obtiene la matriz ortogonal Q nxn y la matriz casi


triangular S nxn de la descomposicin real de Schur de la matriz A ).
Calcular F = f (S ) .
Calcular B = QFQ T .

Algoritmo 3.11: Algoritmo general para el clculo de funciones de matrices basado en la


descomposicin real de Schur de una matriz.
El coste del algoritmo anterior es:
Primera etapa: El clculo de la forma real de Schur est basado en el algoritmo
iterativo QR de coste estimado de 25n 3 flops (vase [BlDo99]), siendo n la
dimensin de la matriz A . Este coste se ha determinado de forma heurstica,
puesto que al ser un mtodo iterativo el nmero de flops depende de la velocidad
de convergencia de la forma Hessenberg superior a la forma casi triangular
superior de la matriz A .
Segunda etapa: El coste computacional de F = f (S ) depende del mtodo usado
para su clculo.
Tercera etapa: Para obtener B es necesario realizar el producto de una matriz
densa por una matriz casi triangular superior ( B = QF ) y el producto de dos
matrices densas ( B = BQ T ). El coste aproximado de esta etapa es
8 3
n flops.
3
108

Captulo 3: Clculo de Funciones de Matrices

Diversos mtodos se pueden utilizar para el clculo de f (S ) , algunos se pueden


encontrar en [Iba97] y [High03], y otros se introducen en este captulo.

3.3.2 Algoritmo Basado en la Reduccin a una Forma Diagonal


por Bloques
Una primera estrategia para calcular f ( S ) consiste en reducir la matriz S a una matriz
diagonal por bloques D , utilizando para ello una transformacin no ortogonal de
semejanza definida por una matriz invertible Y nxn bien condicionada de manera que
los valores propios cercanos se encuentren en el mismo bloque diagonal, y tal que la
separacin entre bloques diagonales distintos sea lo suficientemente grande. De esta
forma, se tiene que
( 3.11 ) S = YDY 1 , D = diag( D1 , D2 , L , D p ) , Di ni xni , 1 i p ,

n
i =1

= n,

y entonces f (S ) se puede calcular mediante la expresin


f ( S ) = Yf ( D)Y 1 = Ydiag ( f ( D1 ),L, f ( D p ))Y 1 ,

donde cada bloque diagonal f ( Di ) , i = 1,2,L, p , se puede obtener utilizando, por


ejemplo, aproximantes de Pad.
Si la matriz S se puede dividir en bloques,

( 3.12 )

S11
0
S=
M

S12 L S1 p
S 22 L S 2 p
n xn
, Sij i j , 1 i j p ,
M O M

0 L S pp

n
i =1

= n,

de manera que los conjuntos de valores propios de los bloques diagonales,


(S11 ), (S 22 ),L, (S pp ) , sean disjuntos dos a dos, entonces existe una transformacin de
semejanza, definida mediante una matriz invertible Y nxn , de manera que
( 3.13 )

Y 1 SY = diag( S11 , S 22 ,L, S pp ) ([GoVa96], Teorema 7.1.6).

La forma de obtener la matriz Y se describe a continuacin.


En primer lugar, la matriz identidad de orden n se divide en bloques
I n = [ E1 , E2 , L , E p ] , Ei nxni , i = 1,L, p , y se definen las matrices Yij nxn , como
Yij = I n + Ei Z ij E Tj , 1 i < j p ,

siendo Z ij

ni xn j

matrices a determinar.

Si se fijan los valores de i y de j , entonces la matriz Yij coincide con la matriz


identidad excepto que su bloque (i, j ) es igual a Z ij , es decir,

109

Captulo 3: Clculo de Funciones de Matrices

I n1
M

Yij = M
0

M
0

L 0
O M
L I ni
O M
L 0
O M
L 0

L 0
O M
L Z ij
O M
L In j
O M
L 0

L 0
O M
L 0

O M .
L 0

O M
L I n p

Si se define S = Yij1SYij , entonces se tiene que Yij S = SYij , es decir,


I n1
M

M
0

M
0

S11
M

= M
0

M
0

L 0
O M
L I ni
O M
L 0
O M
L 0

L 0
O M
L Z ij
O M
L Inj
O M
L 0

L S1i
O M
L Sii
O M
L 0
O M
L

L S1 j
O M
L Sij
O M
L S jj
O M

L 0 S11
O M M
L 0 0

O M M
L 0 0

O M M
L I n p 0

L S1 p I n1

O M M
L Sip 0

O M M
L S jp 0

O M M
L S pp 0

L S1i L S1 j L S1 p

O M O M O M
L S ii L Sij L Sip

O M O M O M
L 0 L S jj L S jp

O M O M O M
L 0 L 0 L S pp

O M
L I n p

L 0
O M
L I ni
O M
L 0

L 0 L
O M O
L Z ij L
O M O
L In j L

O
L

O
L

M
0

M
0

0
M
0
M
0

Por tanto, los bloques de las matrices S y S , se relacionan entre s mediante las
siguientes igualdades:
Bloques diagonales,
S kk = S kk , k = 1,2,L, p .
Bloques no diagonales,
S ij = S ii Z ij Z ij S jj + S ij , 1 i < j p ,
S kj = S ki Z ij + S kj , k = 1,2,L, i 1 ,
S ik = S ik Z ij S jk , k = j + 1, j + 2,L, p .

De este modo, el bloque S ij se puede anular si Z ij es solucin de la ecuacin matricial


de Sylvester
S ii Z ij Z ij S jj = S ij ,
donde S ii ni xni y S jj

n j xn j

son matrices casi triangulares superiores y S ij

ni xn j

110

Captulo 3: Clculo de Funciones de Matrices

Por lo tanto, definiendo la matriz Y como


I n1
0
p
p
Y = Yij =
M
i =1 j > i

Z12
I n2
M
0

L Z1 p
L Z 2 p
,
O M

L I n p

se puede comprobar que Y 1 SY = diag( S11 , S 22 ,L, S pp ) .


A continuacin se detalla el algoritmo que permite obtener la transformacin de
semejanza definida por la matriz Y .
[Q, S ] = dlasbd (Q, S ) .
Entradas: Matriz casi triangular superior S nxn y matriz ortogonal Q nxn
procedentes de la descomposicin real de Schur de la matriz A nxn .
Salidas: Q es sobrescrita por la matriz QY y S es sobrescrita por la matriz
diag( S11 , S 22 ,L, S pp ) , de manera que Q 1 SQ = diag( S11 , S 22 ,L, S pp ) .
1

Para j = 2 : p
1.1
Para i = 1 : j 1
1.1.1 Calcular Z resolviendo la ecuacin matricial de Sylvester
S ii Z ZS jj = S ij
1.1.2 Para k = j + 1 : p
1.1.2.1 S ik = S ik ZS jk
1.1.2.2 Para k = 1 : p
1.1.2.2.1 Qkj = Qki Z + Qkj

Algoritmo 3.12: Reduccin a la forma diagonal por bloques de una matriz casi
triangular superior.
El nmero de flops de este algoritmo depende de los tamaos de los bloques diagonales
de la matriz S .
La eleccin de la divisin en bloques de la matriz S determina la sensibilidad de las
ecuaciones matriciales de Sylvester que aparecen en el Algoritmo 3.12. Esto afecta al
nmero de condicin de la matriz Y y a la estabilidad numrica del proceso de
diagonalizacin por bloques de la matriz S . Esto es debido a que el error relativo de la
~
solucin Z obtenida al resolver la ecuacin matricial de Sylvester
( 3.14 )

S ii Z ZS jj = S ij ,

satisface que
( 3.15 )

~
|| Z Z || F
|| S || F
u
([GoNV79]),
|| Z || F
sep( S ii , S jj )

siendo

111

Captulo 3: Clculo de Funciones de Matrices

sep( S ii , S jj ) = min
X 0

|| S ii X XS jj || F
|| X || F

([Varah79]),

la separacin que existe entre los bloques diagonales S ii y S jj , y u el error de redondeo


unidad ([GoVa96], pgina 61).
Si los conjuntos ( S ii ) y ( S jj ) estn muy cercanos, entonces se pueden producir
grandes errores en la obtencin de la diagonalizacin por bloques, puesto que al
cumplirse que
sep( S ii , S jj ) = min

|| S ii X XS jj || F
|| X || F

X 0

min | | ,
(Tii )
(T jj )

se tiene que sep( S ii , S jj ) puede ser pequea, por lo que si Z ij es la solucin de la


ecuacin ( 3.14 ), entonces Z ij tendr una gran norma, con lo que la matriz Y estar
mal condicionada por ser el producto de matrices de la forma
I Z ij
Yij =
.
0 I
Puesto que en la forma real de Schur de una matriz A los valores propios cercanos no
estn necesariamente en el mismo bloque diagonal, es necesario reordenar los bloques
diagonales 1x1 o 2x2 mediante transformaciones de semejanza ([NgPa87]) de manera
que los valores propios cercanos estn agrupados. De este modo, la separacin entre
bloques ser suficientemente grande con la consiguiente disminucin del error
cometido.
El siguiente algoritmo calcula funciones de matrices mediante la diagonalizacin a
bloques de una matriz.
B = dgefunsbd ( f , A) .
Entrada: Funcin f (x) , matriz A nxn .
Salida:

Matriz B = f ( A) nxn .

2
3

[Q, S ] = schur ( A) (obtiene las matrices Q y S de la descomposicin real de


Schur de la matriz A )
[Q, S ] = dlasbd (Q, S ) (Algoritmo 3.12)
Calcular F = diag( f ( S11 ),L, f ( S pp ))

Calcular B = QFQ 1

Algoritmo 3.13: Clculo de funciones de matrices basado en la descomposicin real de


Schur de una matriz y en la forma diagonal a bloques.

3.3.3 Algoritmos Basados en la Resolucin de la Ecuacin


Conmutante
En este apartado se describen varios algoritmos basados en la descomposicin real de
Schur de una matriz y en la ecuacin conmutante.

112

Captulo 3: Clculo de Funciones de Matrices

3.3.3.1 Algoritmos Orientados a Columnas y a Diagonales

Sea
S11
0
( 3.16 ) S =
M

S12 L S1m
S 22 L S 2 m
nxn , S jj S jj 2 x 2 , j = 1,2, L , m ,
M O M

0 L S mm

la forma real de Schur de la matriz A y


F11
0
( 3.17 ) F = f ( S ) =
M

F12 L F1m
F22 L F2 m
nxn , F jj F jj 2 x 2 , j = 1,2, L , m ,
M O M

0 L Fmm

con igual estructura por bloques que la matriz S .


Teniendo en cuenta que las matrices S y F conmutan (Propiedad 2.1), se tienen que
los bloques diagonales F jj , j = 1,2,L, m , se pueden calcular mediante la expresin
F jj = f ( S jj ) ,

( 3.18 )

y el resto de bloques Fij , 1 i < j n , resolviendo las ecuaciones matriciales de


Sylvester
j 1

( 3.19 )

Sii Fij Fij S jj = Fik S kj


k =i

k = i +1

ik

Fkj .

Para calcular el bloque Fij es necesario haber calculado previamente los bloques que se
encuentran a su izquierda y debajo de l, tal como se indica en la siguiente figura.
F

Fij
Fik, i k<j
Fkj, i<kj

Figura 3.1: Dependencia de datos en el clculo de Fij , 1 i < j m .


En los algoritmos orientados a columnas, filas o diagonales es necesario determinar los
bloques diagonales de orden 2x 2 de la matriz F , correspondientes a valores propios
conjugados de la matriz S (expresin ( 3.18)). A continuacin se describe un mtodo

113

Captulo 3: Clculo de Funciones de Matrices

descrito en [Iba97] que permite calcular la matriz F jj = f ( S jj ) , siendo S jj un bloque


diagonal de orden 2x 2 .
Sea
s k ,k
S jj =
sk +1,k

sk ,k +1
,
sk +1,k +1

y
f k ,k
F jj =
f k +1,k

f k ,k +1
=
f k +1,k +1

s k ,k
f
sk +1,k

sk ,k +1

sk +1,k +1

el correspondiente bloque de la matriz F .


Sin prdida de generalidad, se puede suponer que los bloques diagonales 2x 2 tienen los
elementos diagonales iguales y los no diagonales de igual valor absoluto pero con
distinto signo (vase la funcin schur de MATLAB y la rutina dgees de LAPACK), es
decir,
sk +1,k +1 = sk ,k , | sk +1,k |=| sk ,k +1 | , sk +1,k sk ,k +1 < 0 .
Si se definen a sk ,k , b sk ,k +1 , c sk +1,k y se considera la descomposicin en valores
propios
a b bc
c a =

b z 0 bc

bc 0 z c

b
,
bc

donde z = a + bc y z el complejo conjugado de z , entonces se cumple que


f k ,k
f
k +1,k

f k ,k +1
=
f k +1,k +1

a b bc
f
=
c a c

b z 0 bc
f

bc 0 z c

bc

y
z 0 f ( z )
f
=
0 z 0

0 f ( z)
=
f ( z ) 0

0
.
f ( z )

Luego
f k ,k
f
k +1,k

( 3.20 )

f k ,k
f
k +1,k

f k ,k +1 1 bc
=
f k +1,k +1 bc c

b f ( z)

bc 0

0 bc

f ( z ) c

b
,
bc

Re( f ( z ))
| bc | Im( f ( z ))
f k ,k +1
c
=
.
f k +1,k +1 1

| bc | Im( f ( z ))
Re( f ( z ))
b

Para determinar los bloques no diagonales de la matriz F que aparecen en los


algoritmos orientados a columnas y diagonales que se presentan en este subapartado, es
necesario resolver ecuaciones matriciales casi triangulares superiores de Sylvester. Estas

114

Captulo 3: Clculo de Funciones de Matrices

ecuaciones se pueden resolver mediante el mtodo que se presenta a continuacin. Sea


la ecuacin matricial de Sylvester
AX XB = C ,

( 3.21 )
donde
A11
0
A=
M

Aij

mi xm j

A1r
L A2 r
mxm ,
O M

L Arr

A12 L
A22

M
0

, para i, j = 1,L, r , y mi y m j iguales a 1 o 2;

y
B11
0
B=
M

Bij

ni xn j

B12 L B1s
B22 L B2 s
nxn ,

M O M

0 L Bss

, para i, j = 1, L , s , y ni y n j iguales a 1 o 2; y C mxn .

Las matrices C y X se dividen en rxs bloques de tamaos 1x1 o 2x2 de acuerdo a la


divisin por bloques de las matrices A y B ,
C11 C12
C
C22
C = 21
M
M

C r 1 Cr 2
X 11
X
X = 21
M

X r1

siendo Cij , X ij

mi xn j

L C1s
L C2 s
,
O M

L Crs

X 12 L X 1s
X 22 L X 2 s
,
M O M

X r 2 L X rs

, para i = 1, L , s , j = 1, L , r .

El bloque X ij se puede obtener igualando los bloques (i, j ) de la ecuacin ( 3.21 ) tal y
como se muestra a continuacin.
r

k =1

k =1

k =i

k =1

Aik X kj + X ik Bkj = Cij ,


Aik X kj + X ik Bkj = Cij ,
Aii X ij +

j 1

k =i +1

k =1

Aik X kj + X ij B jj + X ik Bkj = Cij ,

115

Captulo 3: Clculo de Funciones de Matrices

Aii X ij + X ij B jj = Cij

( 3.22 )

j 1

k =i +1

k =1

Aik X kj X ik Bkj .

Aplicando la funcin vec , se tiene


j 1
r

vec( Aii X ij + X ij B jj ) = vec Cij Aik X kj X ik Bkj ,


k =i +1
k =1

j 1
r

( I j Aii + B Tjj I i )vec( X ij ) = vec Cij Aik X kj X ik Bkj ,


k =i +1
k =1

( 3.23 )

donde I i e I j representan las matrices identidad de dimensiones, respectivamente,


iguales a las de las matrices Aii y B jj .
Basta resolver la ecuacin ( 3.23 ) y calcular X ij como
X ij = mat mi xn j ( vec( X ij )) .

A continuacin se muestra el algoritmo que resuelve la ecuacin casi triangular de


Sylvester ( 3.21 ).
X = dtrsyl ( A, B, C ) .
Entradas: Matrices casi triangulares superiores A mxm y B nxn , matriz
C mxn .
Salida:

Matriz X mxn solucin de la ecuacin matricial casi triangular de


Sylvester AX + XB = C .

Dividir la matriz A en r r bloques de tamaos 1x1 o 2x2 en funcin de que


los valores propios sean reales o complejos conjugados:
A = [ Aij ] , ( Aij o Aij 2 x 2 )

Dividir la matriz B en s s bloques de tamaos 1x1 o 2x2 en funcin de que


los valores propios sean reales o complejos conjugados:
B = [ Bij ] , ( Bij o Bij 2 x 2 )

Dividir la matriz C y X en r s bloques de tamaos 1x1 o 2x2 en funcin de


la divisin por bloques de las matrices A y B :
C = [Cij ] , X = [ X ij ]

Para i = r : 1 : 1
4.1
Para j = 1 : s
4.1.1

Cij = Cij

j 1

k =i +1

k =1

Aik X kj X ik Bkj

4.1.2

cij = vec(Cij )

4.1.3

M ij = I j Aii + B Tjj I i

4.1.4 Calcular xij resolviendo la ecuacin Mxij = cij


4.1.5

X ij = mat mi xn j ( xij )

Algoritmo 3.14: Resolucin de la ecuacin casi triangular de Sylvester.

116

Captulo 3: Clculo de Funciones de Matrices

El coste computacional aproximado del algoritmo anterior est comprendido entre


1
2
(mn 2 + m 2 n) y (mn 2 + m 2 n) flops.
2
3
3.3.3.1.1 Algoritmo Orientado a Columnas

En este algoritmo se calcula, en primer lugar, el bloque diagonal de la primera columna,


continuando con los bloques que se encuentran en los sucesivos bloques de columnas.
Para cada bloque de columnas se calcula, en primer lugar, el bloque diagonal y, a
continuacin, los bloques que se encuentran por encima en sentido ascendente tal como
se indica en la siguiente figura.
F

Figura 3.2: Orden de clculo de los bloques de la matriz F .


Los bloques de la diagonal principal se obtienen a partir de la expresin ( 3.18 ) y el
resto de los bloques resolviendo la ecuacin matricial de Sylvester ( 3.19 ). Para este
algoritmo se puede, o bien calcular el miembro de la derecha en el momento en que se
va a resolver la ecuacin matricial de Sylvester, o bien haberlo calculado previamente.
En el algoritmo que se presenta a continuacin se ha elegido la primera estrategia.
F = dqtfunscc(S ) .
Entradas: Matriz casi triangular superior S nxn .
Salida:
1
2

Matriz casi triangular superior F = f ( S ) nxn .

Dividir la matriz S en mxm bloques, de manera que los bloques diagonales sean
1x1 o 2x 2 , correspondientes a valores propios reales o complejos conjugados,
respectivamente.
Para j = 1 : m
2.1
F jj = f ( S jj )
2.2

Para i = j 1 : 1 : 1
j 1

2.2.1

Fij = Fik S kj
k =i

2.2.2

k = i +1

ik

Fkj

Fij = dtrsyl ( Sii , S jj , Fij ) (Algoritmo 3.14)

Algoritmo 3.15: Clculo de la funcin de una matriz casi triangular superior basado en
la resolucin de la ecuacin conmutante orientado a columnas.

117

Captulo 3: Clculo de Funciones de Matrices

El coste computacional aproximado del algoritmo anterior se encuentra entre


n3 n 2
n3
+
flops.
+ n2 y
3
2
2
3.3.3.1.2 Algoritmo Orientado a Diagonales

En este caso los bloques se calculan por diagonales. Se comienza con la diagonal
principal y se contina con las diagonales que se encuentran encima de ella. Para cada
diagonal los bloques se calculan de arriba hacia abajo.
F

Figura 3.3: Orden de clculo de los bloques de la matriz F .


Los bloques de la diagonal principal se calculan utilizando la expresin ( 3.18 ). Los
bloques del resto de las diagonales se calculan mediante la resolucin de la ecuacin
matricial de Sylvester ( 3.19 ). Al igual que en el caso anterior, se puede, o bien calcular
el miembro de la derecha en el momento en que se va a resolver la ecuacin matricial de
Sylvester, o haberlo calculado previamente. En el algoritmo que se presenta a
continuacin se ha elegido esa segunda estrategia. En la siguiente figura se muestra el
bloque que se ha calculado y los bloques que se actualizan a partir de l.
F

Fij

Fik, j<km

Fkj, 1k<i

Figura 3.4: Bloques Fik y Fkj que se actualizan a partir de Fij .


A continuacin se presenta el algoritmo que calcula funciones de matrices casi
triangulares superiores basado en la resolucin de la ecuacin conmutante orientada a
diagonales.
118

Captulo 3: Clculo de Funciones de Matrices

F = dqtfunscd (S ) .
Entradas: Matriz casi triangular superior S nxn .
Salida:
1
2

Matriz casi triangular superior F = f ( S ) nxn .

Dividir la matriz S en mxm bloques, de manera que los bloques diagonales sean
1x1 o 2x 2 , correspondientes a valores propios reales o complejos conjugados,
respectivamente.
Para k = 1 : m
2.1
Para j = k : m
2.1.1 i = j k + 1
2.1.2 Si k > 1
2.1.2.1 Fij = dtrsyl ( Sii , S jj , Fij ) (Algoritmo 3.14)
2.1.3 Si no
2.1.3.1 F jj = f ( S jj )
2.1.4 Actualizar los bloques F1 j , L , Fi 1 j
2.1.5 Actualizar los bloques Fij +1 ,L , Fim

Algoritmo 3.16: Clculo de la funcin de una matriz casi triangular superior basado en
la resolucin de la ecuacin conmutante orientado a diagonales.
El coste computacional aproximado del algoritmo anterior se encuentra entre
n3 n 2
n3
+
y
+ n 2 flops.
2
2
3
3.3.3.2 Algoritmos Orientados a Bloques

Sea r el tamao de bloque elegido. Debido a la presencia de elementos subdiagonales


no nulos en la forma real de Schur de la matriz S , los tamaos de los bloques
diagonales no sern uniformes; es decir, los bloques diagonales de la matriz S podrn
tener dimensiones rxr o (r + 1) x(r + 1) , salvo el bloque diagonal situado en la ltima
fila y columna de bloques que puede tener una dimensin distinta, como resultado del
encaje final de la divisin por bloques con la dimensin de la matriz inicial. El resto de
bloques de S se obtienen dividiendo la matriz en bloques rectangulares de acuerdo a los
bloques diagonales; de este modo, la matriz S queda dividida sxs bloques. Para la
matriz F se utiliza la misma estructura de bloques.
Si se identifican los bloques diagonales en la ecuacin FS = SF , se obtiene
F jj = f ( S jj ) , j = 1,2,L, s .
Esta ecuacin puede resolverse utilizando cualquiera de los algoritmos comentados
anteriormente (orientados a columnas u orientados a diagonales).
Los bloques no diagonales se obtienen resolviendo la ecuacin casi triangular superior
de Sylvester
j 1

S ii Fij S ij T jj = Fik S kj
k =i

k =i +1

ik

Fkj .

119

Captulo 3: Clculo de Funciones de Matrices

Razonando como en el subapartado anterior, se pueden deducir varios algoritmos:


orientados a filas, orientados a columnas y orientados a diagonales. A continuacin se
presenta el algoritmo orientado a columnas de bloques.
F = dqtfunscb(r , S ) .
Entradas: Tamao de bloque r Z + , matriz casi triangular superior S nxn .
Salida:
1
2

Matriz casi triangular superior F = f ( S ) nxn .

Dividir S y F en sxs bloques de tamaos rxr o (r + 1) x(r + 1) (salvo los


bloques S ss y Fss que tendrn las dimensiones adecuadas)
Para j = 1 : s
2.1
F jj = dqtfunsc( S jj ) (Algoritmo 3.15)
2.2

Para i = j 1 : 1 : 1
j 1

2.2.1

Fij = Fik S kj
k =i

2.2.2

k = i +1

ik

Fkj

Fij = dtrsyl ( Sii , S jj , Fij ) (Algoritmo 3.14)

Algoritmo 3.17: Calcula la funcin de una matriz casi triangular superior mediante la
resolucin de la ecuacin conmutante orientado a columnas de bloques.
El coste computacional aproximado del algoritmo anterior es
2 1 3
+ n flops.
3 s
El algoritmo orientado a diagonales de bloques se presenta a continuacin.
F = dqtfunsdb(S ) .
Entradas: Tamao de bloque r Z + , matriz casi triangular superior S nxn .
Salida:
1
2

Matriz casi triangular superior F = f ( S ) nxn .

Dividir S y F en sxs bloques de tamaos rxr o (r + 1) x(r + 1) (salvo los


bloques S ss y Fss que tendrn las dimensiones adecuadas)
Para k = 1 : s
2.1
Para j = k : s
2.1.1 i = j k + 1
2.1.2 Si k > 1
2.1.2.1 Fij = dtrsyl ( Sii , S jj , Fij ) (Algoritmo 3.14)
2.1.3 Si no
2.1.3.1 Fjj = dtrfunsc ( S jj ) (Algoritmo 3.15)
2.1.4 Actualizar los bloques F1 j ,L, Fi 1 j
2.1.5 Actualizar los bloques Fij +1 ,L, Fis

Algoritmo 3.18: Algoritmo para el clculo de la funcin de una matriz casi triangular
superior basado en la resolucin de la ecuacin conmutante orientado a
diagonales de bloques.
120

Captulo 3: Clculo de Funciones de Matrices

El coste computacional aproximado del algoritmo anterior es


2 1 3
+ n flops.
3 s
3.3.3.3 Algoritmo con Agrupacin de Valores Propios Cercanos

En este subapartado se describe el algoritmo que consiste en agrupar en clusters los


valores propios cercanos de la forma real de Schur de una matriz, realizando a
continuacin las reordenaciones necesarias de manera que la matriz obtenida quede
dividida en bloques, estando los valores del mismo cluster en el mismo bloque diagonal.
A partir de ah, se pueden utilizar estrategias similares a las utilizadas en los algoritmos
a bloques descritos en el subapartado 3.3.3.2.
El siguiente algoritmo determina un vector g que contiene los ndices de comienzo de
los bloques diagonales de la forma real de Schur S de la matriz A nxn .
g = dlagbs (vr , vi)
Entradas: Vectores vr , vi n que contienen, respectivamente, la parte real y la
parte imaginaria de los valores propios de la forma real de Schur S nxn
de la matriz A nxn .
Salida:
1
2
3
4

Vector g m que contiene los ndices de los bloques 1x1 o 2x2 de la


matriz S .

m=0
i1 = 1
i2 = i1 + 1
Mientras i1 n
m = m +1
4.1
g (m) = i1
4.2
4.3
Si vi(i2 ) 0
4.3.1 i1 = i2 + 1
4.4
Si no
4.4.1 i1 = i2
4.5
i1 = i2 + 1
Si i1 n
m = m +1
5.1
5.2
g (m) = i1

Algoritmo 3.19: Determina los bloques diagonales de la forma real de Schur de una
matriz.
Una vez se conoce el vector g , se deben determinar los clusters de valores propios.
Estas agrupaciones en clusters se realizan de manera que dos valores propios se
encuentran en el mismo cluster, siempre que disten entre s un valor menor que un valor
de tolerancia predefinido, no necesariamente pequeo. En el siguiente algoritmo se

121

Captulo 3: Clculo de Funciones de Matrices

determina un vector de enteros positivos c Z p de manera que c(k ) , 1 k p , indica


a qu cluster pertenece el grupo de valores propios definidos por g (k ) .
c = dlagc(vr , vi, g , tol ) .
Entradas: Vectores vr , vi n que contienen, respectivamente, la parte real y la parte
imaginaria de los valores propios de la matriz casi triangular superior
S nxn , vector g m que contiene los ndices de los bloques de la
expresin ( 6.2 ) y la tolerancia tol + .
Salida:
1
2

Vector de enteros positivos c Z p que contiene los ndices de los clusters.

p=0
Para k = 1 : m
2.1
Si c(k ) = 0
2.1.1 p = p + 1
2.1.2 c(k ) = p
2.2
vk = vr ( g (k )) + abs(vi( g (k ))i
2.3
Para j = k + 1 : m
2.3.1 vj = vr ( g ( j )) + abs(vi( g ( j ))i
2.3.2 Si abs(vk vj ) < tol
2.3.2.1 c( j ) = c(k )

Algoritmo 3.20: Determina los cluster de la forma real de Schur de una matriz.
Conocida la divisin en clusters de los valores propios de la matriz S , se realizan los
intercambios necesarios de bloques diagonales de manera que los valores propios con el
mismo ndice de cluster se encuentren en el mismo bloque diagonal. Estos intercambios
se realizan utilizando transformaciones de semejanza ortogonales. Al final de este
proceso se obtiene una matriz S , divida en bloques conforme a la divisin en clusters
de los valores propios de S , y una matriz ortogonal Q de modo que S = Q S Q T .
El siguiente algoritmo lleva a cabo el proceso descrito en el prrafo anterior.

122

Captulo 3: Clculo de Funciones de Matrices

[ S , Q , g , c] = dlabex( S , Q, g , c) .
Entradas: Matriz casi triangular superior S nxn , matriz ortogonal Q nxn , vector
g m que contiene los ndices de los bloques de la matriz S , vector
c p que contiene los ndices de los clusters.
Salidas: Matriz casi triangular superior S nxn con los bloques diagonales
correspondientes a valores propios en el mismo cluster, matriz ortogonal
Q nxn ( S = Q S Q T ), vector g m que contiene los ndices de los
bloques de la matriz S , vector c p que contiene los ndices de los
clusters de la matriz S .
1.
2.
3.
4.

5
6

S =S
Q = In
cont = true
Mientras cont
cont = false
4.1
4.2
Para k = 1 : m 1
4.2.1 Si c(k ) > c(k + 1)
4.2.1.1 Intercambiar los bloques diagonales de la matriz S
apuntados por g (k ) y g (k + 1) actualizando
adecuadamente la matriz Q y el vector g
4.2.1.2 caux = c(k )
4.2.1.3 c(k ) = c(k + 1)
4.2.1.4 c(k + 1) = caux
4.2.1.5 cont = true
k =1
Para j = 2 : m
6.1
Si c( j ) c(k )
6.1.1 k = k + 1
6.1.2 g (k ) = g ( j )
6.1.3 c(k ) = c( j )

Algoritmo 3.21: Reordenacin de la forma real de Schur para la agrupacin en clusters


de los valores propios cercanos.
Una vez se han determinado S y Q se aplica un esquema semejante al utilizado en el
Algoritmo 3.17 o en el Algoritmo 3.18. A continuacin se presenta el algoritmo
completo.

123

Captulo 3: Clculo de Funciones de Matrices

[ F , Q] = dqtfunscc( S , Q, f , tol ) .
Entradas: Matriz casi triangular superior S nxn y matriz ortogonal Q nxn
procedentes de descomposicin real de Schur de la matriz A nxn ,
funcin f ( z ) , tolerancia tol + .
Salida:

Matriz casi triangular superior

F = f ( S ) nxn , matriz ortogonal

actualizada Q nxn .
1
2
3
4

g = dlagbs(vr , vi) (Algoritmo 3.19)


c = dlagc(vr , vi, g , tol ) (Algoritmo 3.20)
[ S , Q, g , c] = dlabex( S , Q, g , c) (Algoritmo 3.21)
Para k = 1 : p
4.1
Para j = k : p
4.1.1 i = j k + 1
4.1.2 Si k > 1
4.1.2.1 Fij = dtrsyl ( Sii , S jj , Fij ) (Algoritmo 3.14)
4.1.3 Si no
4.1.3.1 Calcular F jj = f ( S jj ) (se puede utilizar, por
ejemplo, cualquier algoritmo basado en los
aproximantes diagonales de Pad)
4.1.4 Actualizar los bloques F1 j ,L, Fi 1 j
4.1.5 Actualizar los bloques Fij +1 ,L, Fip

Algoritmo 3.22: Calcula funciones de matrices mediante la agrupacin en cluster de los


valores propios cercanos de un matriz.
El coste computacional depende del nmero de reordenaciones realizadas. Si no hubiese
reordenaciones, el coste computacional coincidira con el correspondiente al algoritmo
orientado a bloques.

3.3.4 Algoritmo Basado en los Aproximantes Diagonales de


Pad
Este mtodo consiste en calcular f ( S ) mediante una variante del mtodo de los
aproximantes diagonales de Pad para matrices casi triangulares superiores. El
algoritmo resultante se presenta a continuacin.

124

Captulo 3: Clculo de Funciones de Matrices

B = dqtfunspp ( A) .
Entrada: Matriz A nxn y funcin f (x) .
Salida:
1

Matriz B = f ( A) nxn .

[Q, S ] = schur ( A) (obtiene la matriz casi triangular superior S nxn y matriz


ortogonal Q nxn procedentes de descomposicin real de Schur de la matriz
A nxn )
F = f ( S ) (se puede utilizar, por ejemplo, cualquier algoritmo basado en los
aproximantes diagonales de Pad adaptado a matrices casi triangulares
superiores)
B = QFQT

Algoritmo 3.23: Algoritmo para el clculo de funciones de matrices basado en la


descomposicin real de Schur de una matriz y en los aproximantes
diagonales de Pad.

3.4 Conclusiones
La primera aportacin de este captulo es la implementacin de un algoritmo general,
basado en los aproximantes diagonales de Pad, que permite calcular funciones
analticas de matrices. Aunque hay dos etapas que dependen de la funcin y de la matriz
considerada (reduccin de la norma de la matriz y aplicacin de las transformaciones
inversas), siempre es posible utilizar estrategias que lo permitan; por ejemplo, el
escalado y potenciacin para las exponenciales, escalado para las funciones logartmicas
y con radicales, etc. Basta conocer el desarrollo en serie de Taylor de la funcin, para
as determinar la aproximacin diagonal de Pad y de ah calcular la funcin matricial
correspondiente.
Esto permite aplicar el mtodo de los aproximantes diagonales de Pad a otras
funciones matriciales distintas de las mencionadas en el Captulo 2. Por ejemplo, se ha
presentado una forma de calcular potencias fraccionarias de una matriz basada en los
aproximantes diagonales de Pad. Tambin se ha demostrado una frmula que permite
calcular el seno de una matriz mediante un nuevo algoritmo basado en los aproximantes
diagonales de Pad.
La segunda aportacin de este captulo ha sido el diseo de varios algoritmos para el
clculo de Funciones de Matrices basados en la forma real de Schur S de una matriz
cuadrada. Las estrategias utilizadas han sido:
1. Diagonalizacin a bloques de la matriz.
Consiste en obtener una forma diagonal a bloques de la matriz A de manera que
cada bloque contiene a los valores propios que se encuentran prximos entre s. En
este caso el valor F = f ( A) se obtiene a partir del valor de la funcin sobre su
forma diagonal a bloques.
2. Ecuacin Conmutante.
a.

Sin agrupacin de valores propios.


Algoritmo orientado a columnas: De izquierda a derecha, se obtienen
sucesivamente las columnas de bloques de la matriz F . Para cada columna se
calcula, en primer lugar, el bloque diagonal F jj utilizando la expresin
125

Captulo 3: Clculo de Funciones de Matrices

F jj = f ( S jj ) , continuando con los bloques que se encuentran por encima de F jj ,


resolviendo para ello ecuaciones matriciales de Sylvester.
Algoritmo orientado a filas: De abajo hacia arriba, se obtienen sucesivamente las
filas de bloques de la matriz F . Para cada fila de bloques se calcula, en primer
lugar, el bloque diagonal F jj utilizando la expresin F jj = f ( S jj ) , continuando
con los bloques que se encuentran a la derecha de F jj , resolviendo para ello
ecuaciones matriciales de Sylvester.
Algoritmo orientado a diagonales: En primer lugar se determinan los bloques
diagonales F jj utilizando la expresin F jj = f ( S jj ) , calculando a continuacin
las superdiagonales de abajo hacia arriba resolviendo para ello ecuaciones
matriciales de Sylvester.
Algoritmos orientados a bloques: A partir de un tamao dado r , la matriz S se
divide en bloques de manera que los valores propios conjugados se deben
encontrar en el mismo bloque diagonal. De este modo, los bloques diagonales
son de tamao rxr o (r + 1) x(r + 1) , salvo el ltimo bloque que tendr la
dimensin adecuada. A continuacin se obtienen los bloques diagonales
F jj = f ( S jj ) utilizando para ello otros algoritmos para el clculo de Funciones
de Matrices como, por ejemplo, los aproximantes de Pad o los algoritmos
orientados a columnas o diagonales. Segn la forma de calcular los bloques de la
matriz F , se pueden utilizar tres algoritmos: algoritmo orientado a columnas de
bloques, algoritmo orientado a filas de bloques y algoritmo orientado a
diagonales de bloques.
b. Con agrupacin de valores propios.
En aquellas ocasiones en que la matriz S tiene valores propios cercanos entre s,
es conveniente agruparlos de manera que la resolucin de la Ecuacin
Conmutante se realice con precisin. Para ello se deben realizar reordenaciones
en la matriz S , utilizando transformaciones ortogonales de semejanza, de
manera que los valores propios cercanos se encuentren en un mismo bloque
diagonal. De este modo, la matriz S se puede estructurar por bloques de manera
que los bloques diagonales se encuentren suficientemente separados entre s.
Estas agrupaciones se deben realizar teniendo en cuenta que el maximizar la
separacin entre los bloques diagonales puede conducir a obtener grandes
bloques con valores propios cercanos, con el consiguiente aumento de las
reordenaciones de los valores propios sobre la diagonal de S .
Una vez se ha realizado la divisin en bloques de la matriz S , los bloques
diagonales F jj = f ( S jj ) se pueden calcular utilizando, por ejemplo, los
algoritmos basados en la aproximacin diagonal de Pad.
Segn el orden utilizado en el clculo de bloques, se pueden obtener tres
algoritmos: algoritmo orientado a columnas de bloques, algoritmo orientado a
filas de bloques o algoritmo orientado a diagonales de bloques.
3. Aproximantes de Pad
Este mtodo consiste en calcular f (S ) mediante una variante del mtodo de los
aproximantes diagonales de Pad para matrices casi triangulares superiores.

126

Captulo 3: Clculo de Funciones de Matrices

Los algoritmos basados en la descomposicin real de Schur de una matriz son


computacionalmente ms costosos que los basados en los aproximantes diagonales de
Pad, aunque en muchas ocasiones son ms precisos que estos ltimos. A continuacin
se comparan los algoritmos basados en la descomposicin real de Schur de una matriz.

Aunque los algoritmos orientados a filas y a columnas tienen una formulacin


similar, la forma de acceder a los datos es distinta. Como cabe esperar ([Iba97]),
si se utiliza el lenguaje de programacin FORTRAN se obtienen mejores
prestaciones al utilizar un algoritmo orientado a columnas, y si el lenguaje
utilizado es C las mejores prestaciones se obtienen un algoritmo orientado a filas.
En este captulo se han descrito nicamente los algoritmos orientados a columnas
puesto que en las implementaciones se ha utilizado el lenguaje FORTRAN.

Los algoritmos orientados a bloques resultan ser habitualmente ms eficientes


que los orientados a filas o columnas, pues hacen uso de la memoria cach de los
ordenadores. De este modo, si se elige convenientemente el tamao de bloque, se
produce una mayor localidad de datos y, por tanto, un menor intercambio de
datos entre la memoria principal y la memoria secundaria.

Los algoritmos con un menor coste computacional corresponden a los basados en


la Ecuacin Conmutante sin reordenacin de valores propios y al basado en los
aproximantes diagonales de Pad. El problema de los primeros es que no se
pueden utilizar si la matriz tiene valores propios cercanos. Para el segundo
mtodo es necesario adaptar, convenientemente, los algoritmos basados en las
aproximaciones de Pad para el caso de matrices casi triangulares superiores.

3. Los algoritmos que tienen un mayor coste computacional corresponden al basado


en diagonalizacin a bloques de la matriz y al basado en la Ecuacin Conmutante
con agrupacin en clusters de los valores propios. La ventaja de estos algoritmos,
frente al resto de los algoritmos basados en la Ecuacin Conmutante, es que se
pueden aplicar para cualquier matriz incluso si sus valores propios estn muy
prximos entre s.

127

Captulo 4: Linealizacin a Trozos

Captulo 4 Linealizacin a Trozos

4.1 Resumen de Contenidos


En la formulacin de modelos de muchos problemas cientficos y tcnicos aparecen
EDOs cuya solucin analtica no es conocida. Es por ello que la comunidad
investigadora asociada a este campo viene realizando, desde hace tiempo, un gran
esfuerzo en el estudio de mtodos numricos que permitan la resolucin aproximada de
las mismas. En los ltimos aos un gran nmero de libros y artculos se han ocupado del
estudio de mtodos numricos para la integracin de EDOs, especialmente las de tipo
rgido. Los ms usados en la prctica son los de tipo implcito, especialmente los
basados en mtodos lineales multipaso, como por ejemplo los mtodos Backward
Differentiation Formulae (BDF),[HaWa96], por ser muy eficientes para un gran nmero
de problemas de tipo rgido.
La Ecuacin Diferencial Matricial de Riccati (EDMR) aparece frecuentemente en las
ciencias aplicadas y en la ingeniera. Esta ecuacin juega un papel fundamental en
problemas de control ptimo, filtrado, estimacin, y en la resolucin de ciertos
problemas de contorno de ecuaciones diferenciales. Una de las tcnicas, ampliamente
utilizadas para resolver dicha ecuacin, consiste en aplicar el mtodo BDF. Este mtodo
est especialmente indicado para resolver EDMRs de tipo rgido. Otro de los mtodos
que se pueden aplicar en la resolucin de EDMRs consiste en la vectorizacin de
ecuaciones diferenciales matriciales que consiste en convertir una EDMR en otra de tipo
vectorial y aplicar un mtodo de resolucin de EDOs. El problema que se plantea en
este caso es la gran dimensin de la EDO vectorial obtenida.
En este captulo se describen nuevos mtodos para la resolucin de EDOs y EDMRs. En
esta tesis se ha optado por profundizar en la metodologa basada en la linealizacin a
trozos para el desarrollo de nuevos algoritmos que sean competitivos, en trminos
computacionales, frente a otros que se han venido utilizando tradicionalmente
En el caso de EDOs se demuestra un nuevo teorema (Teorema 4.1) que permite utilizar
la tcnica de linealizacin a trozos, aunque la matriz Jacobiana sea singular. Como
consecuencia de este teorema se desarrollan tres nuevos mtodos: mtodo basado en los
aproximantes diagonales de Pad, mtodo basado en la Ecuacin Conmutante y mtodo
basado en los subespacios de Krylov.
En el caso de EDMRs se ha desarrollado una nueva metodologa, no realizada hasta
ahora, basada en la tcnica de linealizacin a trozos. Esta metodologa consiste,
bsicamente, en transformar la EDMR en una EDO de gran dimensin y aplicarle la
linealizacin a trozos. Debido a la gran complejidad computacional y la gran cantidad
de memoria necesaria, se han desarrollado mtodos especiales para la resolucin de la
EDO anterior.
El primero de ellos est basado en un un nuevo teorema (Teorema 4.3) que permite
transformar un problema vectorial de gran dimensin en otro matricial consistente en el
clculo de una expresin en la que aparecen bloques de las exponenciales de dos

129

Captulo 4: Linealizacin a Trozos

matrices. Adaptando convenientemente el mtodo de los aproximantes de Pad para


matrices definidas a bloques, se obtiene un algoritmo eficiente en trminos de costes
computacionales y de almacenamiento.
El segundo mtodo es consecuencia de un teorema basado en la Ecuacin Conmutante
(Teorema 4.4) que permite transformar el problema vectorial de gran dimensin en otro
matricial consistente la resolucin de tres ecuaciones matriciales de Sylvester.
El tercer mtodo consiste en calcular la aproximacin de la solucin en un cierto
instante de tiempo mediante el producto de la exponencial de una matriz definida a
bloques por un vector, utilizando para ello una adaptacin basado en el mtodo de los
subespacios de Krylov.
La naturaleza especial de los mtodos de linealizacin a trozos ha hecho necesario
modificar, adecuadamente, los algoritmos desarrollados para utilizarlos en la resolucin
de EDOs autnomas y de EDMRs con coeficientes constantes, explotando las
caractersticas de este tipo de ecuaciones para as disminuir los costes computacionales
y de almacenamiento necesarios.
El contenido de este captulo est estructurado en cuatro secciones. En la segunda
seccin se describen los tres mtodos de linealizacin a trozos, anteriormente
comentados, para la resolucin de EDOs y la adaptacin de los mismos en la resolucin
de EDOs autnomas.
De igual modo, en la tercera seccin se detallan los tres mtodos de resolucin de
EDMRs basados en la linealizacin a trozos y su adaptacin a la resolucin de EDMRs
con coeficientes constantes.
En la ltima seccin se exponen las conclusiones de este captulo.
Como se describi en la seccin 1.1, la nomenclatura utilizada para los algoritmos
desarrollados en esta tesis es: txxyyyzzz, siendo t el tipo de dato utilizado, xx el tipo de
matriz, yyy el problema que resuelve y zzz el mtodo utilizado. El significado de los seis
ltimos caracteres para los algoritmos que resuelven EDOs y EDMRs es:
yyy: funcin considerada.
yyy=edo para los algoritmos que resuelven EDOs;
yyy=dmr para los algoritmos que resuelven EDMRs.
zzz: mtodo utilizado.
bdf: indica que se utiliza el mtodo BDF para la resolucin de EDOs;
lpn: indica que se utiliza el mtodo de linealizacin a trozos basado en los
aproximantes diagonales de Pad para la resolucin de EDOs no autnomas;
lcn: indica que se utiliza el mtodo de linealizacin a trozos basado en la
Ecuacin Conmutante para la resolucin de EDOs no autnomas;
lkn: indica que se utiliza el mtodo de linealizacin a trozos basado en los
subespacios de Krylov para la resolucin de EDOs no autnomas;
lpa: indica que se utiliza el mtodo de linealizacin a trozos basado en los
aproximantes diagonales de Pad para la resolucin de EDOs autnomas;
lca: indica que se utiliza el mtodo de linealizacin a trozos basado en la
Ecuacin Conmutante para la resolucin de EDOs autnomas;

130

Captulo 4: Linealizacin a Trozos

lka: indica que se utiliza el mtodo de linealizacin a trozos basado en los


subespacios de Krylov para la resolucin de EDOs autnomas;
bdv: indica que se utiliza el mtodo BDF para la resolucin de EDMRs con
coeficientes variables;
lpv: indica que se utiliza el mtodo de linealizacin a trozos basado en los
aproximantes diagonales de Pad para la resolucin de EDMRs con
coeficientes variables;
lcv: indica que se utiliza el mtodo de linealizacin a trozos basado en la
Ecuacin Conmutante para la resolucin de EDMRs con coeficientes variables;
lkv: indica que se utiliza el mtodo de linealizacin a trozos basado en los
subespacios de Krylov para la resolucin de EDMRs con coeficientes
variables;
bdc: indica que se utiliza el mtodo BDF para la resolucin de EDMRs con
coeficientes constantes;
lpc: indica que se utiliza el mtodo de linealizacin a trozos basado en los
aproximantes diagonales de Pad para la resolucin de EDMRs con
coeficientes constantes;
lcc: indica que se utiliza el mtodo de linealizacin a trozos basado en la
Ecuacin Conmutante para la resolucin de EDMRs con coeficientes
constantes;
lkc: indica que se utiliza el mtodo de linealizacin a trozos basado en los
subespacios de Krylov para la resolucin de EDMRs con coeficientes
constantes.

4.2 Mtodos de Linealizacin a Trozos para EDOs


4.2.1 EDOs no Autnomas
Sea la EDO con valores iniciales
( 4.1 )

x' (t ) = f (t , x(t )) , t [t 0 , t f ] ,
x(t0 ) = x0 n ,

cumpliendo f (t , x) las hiptesis del Teorema 2.10 (pgina 56).


Aplicando la tcnica de linealizacin a trozos descrita en el apartado 2.3.4, se tiene que
dada una particin t 0 < t1 < L < t l 1 < t l = t f , es posible aproximar la EDO ( 4.1 )
mediante el conjunto de EDLs resultantes de la aproximacin lineal de f (t , x(t )) en
cada subintervalo, es decir,
( 4.2 ) y ' (t ) = f i + J i ( y (t ) yi ) + gi (t ti ) , t [t i , t i +1 ] , y (t i ) = yi , i = 0,1,L, l 1 ,
siendo
f i = f (ti , yi ) n ,

131

Captulo 4: Linealizacin a Trozos

Ji =

f
(ti , yi ) nxn ,
x

gi =

f
(ti , yi ) n .
t

Si J i es invertible, entonces la solucin de la EDL ( 4.2 ) es


y (t ) = yi J i1[ f i + g i (t t i ) J i2 g i + e J i (t ti ) ( J i1 f i + J i2 g i )] .
A continuacin se enuncia y demuestra un teorema que permite obtener la solucin de la
EDL ( 4.2 ) aunque J i no sea invertible.
Teorema 4.1.

La solucin de la EDL ( 4.2 ) se puede expresar como


y (t ) = yi + F12( i ) (t ti ) f i + F13( i ) (t ti ) gi ,
donde F12( i ) (t ti ) y F13( i ) (t ti ) son, respectivamente, los bloques (1,2) y (1,3) de la
matriz eCi (t t i ) , con
Ji
C i = 0 n
0 n

0n
I n .
0 n

In
0n
0n

Demostracin.

La solucin de la EDL ( 4.2 ) es


t

y (t ) = yi + e J i (t ) [ f i + g i ( t i )]d .
ti

Si en la expresin anterior se realiza el cambio de variable


s = ti ,
y se define

= t ti ,
entonces
ds = d ,

t = t s ti = s ,
por lo tanto

( 4.3 )

y (t ) = yi + e
0

J i ( s )

[ f i + g i s ]ds = yi + e
0

J i ( s )

ds f i + e J i ( s ) sdsg i .
0

Si se considera la matriz triangular superior a bloques definida por

132

Captulo 4: Linealizacin a Trozos

Ji
C i = 0 n
0 n

( 4.4 )

In
0n
0n

0n
I n ,
0 n

entonces la exponencial de la matriz Ci , tiene la forma


e Ci

( 4.5 )

F11( i ) ( ) F12( i ) ( ) F13(i ) ( )

F22( i ) ( ) F23(i ) ( ) ,
= 0n
0n
F33(i ) ( )
0n

siendo F jk(i ) ( ) , 1 j k 3 , matrices cuadradas de orden n dependientes del


parmetro .
Como
de Ci
= Ci e Ci , e Ci
d

=0

= I 3n ,

entonces
dF11(i ) ( )
d

0
n

0n

dF12( i ) ( )
d
dF22( i ) ( )
d
0n

dF13( i ) ( )
d J i
dF23( i ) ( )
= 0n
d
dF33( i ) ( ) 0n

In
0n
0n

0n F11(i ) ( ) F12( i ) ( ) F13( i ) ( )

I n 0n
F22( i ) ( ) F23( i ) ( )
0n 0n
0n
F33( i ) ( )

J i F11( i ) ( ) J i F12( i ) ( ) + F22( i ) ( ) J i F13( i ) ( ) + F23( i ) ( )

0n
F33(i ) ( )
= 0n
.

0n
0n
0n

Igualando los bloques correspondientes en ambos miembros de la expresin anterior, se


obtienen las EDMLs
( 4.6 )

dF11( i )
= J i F11( i ) ( ) , F11( i ) (0) = I n ,
d

( 4.7 )

dF22(i ) ( )
= 0 , F22( i ) (0) = I n ,
d

( 4.8 )

dF33(i ) ( )
= 0 , F33( i ) (0) = I n ,
d

( 4.9 )

dF23( i ) ( )
= F33( i ) ( ) , F23( i ) (0) = 0 n ,
d

( 4.10 )

dF12( i ) ( )
= J i F12( i ) ( ) + F22( i ) ( ) , F12( i ) (0) = 0 n ,
d

( 4.11 )

dF13(i ) ( )
= J i F13( i ) ( ) + F23(i ) ( ) , F13( i ) (0) = 0 n ,
d
133

Captulo 4: Linealizacin a Trozos

Resolviendo las EDMLs ( 4.6 ), ( 4.7 ) y ( 4.8 ), se tiene que


F11( i ) ( ) = e J i ,
F22( i ) ( ) = I n ,
F33( i ) ( ) = I n .
Resolviendo las EDMLs ( 4.9 ) ( 4.10 ) y ( 4.11 ), resulta que
F23( i ) ( ) = I n ,

F12( i ) ( ) = e J i ( s ) ds ,

( 4.12 )

F13( i ) ( ) = e J i ( s ) sds ,

( 4.13 )

y por lo tanto

e C i

J i
e

= 0n
0
n

J i ( s )

ds

In
0n

J i ( s )
e
sds

I n
.

In

Teniendo en cuenta las expresiones ( 4.3 ), ( 4.12 ) y ( 4.13 ) se deduce que la solucin
de la EDL ( 4.2 ) viene dada por
y (t ) = yi + F12( i ) ( ) f i + F13( i ) ( ) g i .
Como = t t i , entonces
y (t ) = yi + F12( i ) (t ti ) f i + F13( i ) (t ti ) gi ,
con lo que queda demostrado el teorema.
Segn el teorema anterior, la solucin aproximada en el instante ti +1 de la EDO ( 4.1 )
se puede obtener a partir de la solucin aproximada en ti , utilizando la expresin
( 4.14 )

yi +1 = yi + F12( i ) (ti ) f i + F13( i ) (ti ) g i ,

con ti = ti +1 ti , siendo F12( i ) (ti ) y F13( i ) (ti ) , respectivamente, los bloques (1,2) y
(1,3) de la matriz e Ci ti , donde

( 4.15 )

Ji
Ci = 0 n
0 n

In
0n
0n

0n
I n .
0 n

El siguiente algoritmo calcula, aproximadamente, la solucin de la EDO ( 4.1 )


mediante el mtodo de linealizacin a trozos basado en el clculo de la exponencial de
la matriz definida a bloques Ci ti .
134

Captulo 4: Linealizacin a Trozos

y = dgeedolgn(t , data, x0 )
Entradas: Vector de tiempos t l +1 , funcin data que calcula J (t , x) nxn ,
f (t , x) n y g (t , x) n , vector inicial x0 n .
Salidas: Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .
1
2

y 0 = x0
Para i = 0 : l 1
2.1
[ J , f , g ] = data (ti , yi ) .
t = ti +1 ti
2.2
2.3
2.4
2.5

J
C = 0 n
0 n
F = eCt
yi +1 = yi

In
0n
0n

0n
I n
0 n

+ F12 f + F13 g

Algoritmo 4.1: Resolucin de EDOs mediante el mtodo de linealizacin a trozos


basado en el clculo de la exponencial de una matriz.
El problema de calcular

yi +1 en el Algoritmo 4.1 son los elevados costes

computacionales y de almacenamiento necesarios para obtener eCt .


4.2.1.1 Mtodo Basado en los Aproximantes Diagonales de Pad

En este subapartado se describe la manera de obtener la aproximacin yi +1 de la


expresin ( 4.14 ) sin el clculo explcito de la exponencial de la matriz Ci ti ,
utilizando para ello una adaptacin a bloques del mtodo de los aproximantes
diagonales de Pad.
Puesto que el clculo de la exponencial de una matriz se debe realizar muchas veces, no
hace falta calcular cada vez los coeficientes de los polinomios de la aproximacin
diagonal de Pad de la funcin exponencial. Adems, ya que los coeficientes de los
trminos de grado cero de los polinomios de la aproximacin diagonal de Pad son
iguales a 1, tan slo hace falta calcular los correspondientes a los trminos de grado
mayor que cero. En el siguiente algoritmo se calculan dichos coeficientes.

135

Captulo 4: Linealizacin a Trozos

[c1 , c2 ] = dlapex(q )

Entrada: Grado q Z + de los polinomios de la aproximacin diagonal de Pad.


Salida:

1
2
3

Vectores c1 , c2 q que contienen los coeficientes de los trminos de


grado mayor que 0 correspondientes a los polinomios de la aproximacin
diagonal de Pad de la funcin exponencial.

c1 (1) = 0.5
c2 (1) = 0.5
Para k = 2 : q

3.1
3.2

q k +1
c1 (k 1)
(2q k + 1)k
c2 (k ) = (1) k c1 (k )
c1 (k ) =

Algoritmo 4.2: Obtiene los polinomios de la aproximacin diagonal de Pad de la


funcin exponencial.
A continuacin se presenta una modificacin del Algoritmo 2.1 en el que se dan, como
datos de entrada, los coeficientes de los trminos de grado mayor que cero de los
polinomios que definen la aproximacin diagonal de Pad de la funcin exponencial.
F = dlaexp( A, c1 ,c 2 ) .

Entradas: Matriz A nxn , vectores c1 , c2 q que contienen los coeficientes de los


trminos de grado mayor que cero de los polinomios que definen la
aproximacin diagonal de Pad de la funcin exponencial.
Salida:
1
2
3
4
5
6
7
8

Matriz F = e A nxn .

nor =|| A ||
j A = max(0,1 + int(log 2 (nor )))
1
s = jA
2
A = sA
X=A
N = I n + c1 (1) A

D = I n + c2 (1) A
Para k = 2 : q
8.1
X = XA
N = N + c1 (k ) X
8.2
D = D + c2 (k ) X
8.3
9 Calcular F resolviendo la ecuacin DF = N
10 Para k = 1 : j A
10.1 F = F 2

Algoritmo 4.3: Calcula la exponencial de una matriz, a partir de los polinomios de la


aproximacin diagonal de Pad de la funcin exponencial.
El coste aproximado del algoritmo anterior es

136

Captulo 4: Linealizacin a Trozos

2(q + j A + 1 / 3)n 3 flops,


siendo j A = max(0,1 + int(log 2 (|| A || ))) .
A continuacin se describe la manera de adaptar el algoritmo anterior para calcular
nicamente los bloques (1,2) y (1,3) de la exponencial de la matriz
Ji
A = 0 n
0 n

( 4.16 )

0n
I n .
0 n

In
0n
0n

Sean
X 11
X = 0 n
0 n
N11
N = 0 n
0 n

X 13
X 23 ,
X 33

X 12
X 22
0n

N13
N 23 ,
N 33

N12
N 22
0n

D11
D = 0 n
0 n

D13
D23 ,
D33

D12
D22
0n

E11
E = 0 n
0 n

E13
E23 ,
E33

E12
E22
0n

las matrices que aparecen en el Algoritmo 4.3, cuando ste se aplica a la matriz definida
en ( 4.16 ).
4

A = sA .

sJ i
A = sA = 0 n
0 n

sI n
0n
0n

0n
sI n .
0 n

Haciendo J i = sJ i , se tiene despus de este paso

Ji
A = 0 n
0 n

sI n

Ji
X = 0 n
0 n

sI n

0n
0n

0n
sI n .
0 n

X = A.
0n
0n

0n
sI n .
0 n

137

Captulo 4: Linealizacin a Trozos

N = I n + c1 (1) A .
N11
0
n
0 n

N12
N 22
0n

N13 I n + c1 (1) J i
0n
N 23 =
0n
N 33

c1 (1) sI n
In
0n

c1 (1) sI n ,
I n
0n

luego
N11 = I n + c1 (1) J i ,
N 12 = c1 (1) sI n ,
N13 = 0 n ,
N 22 = I n ,
N 23 = c1 (1) sI n ,
N 33 = I n .
7

D = I n + c2 (1) A .
D11
0
n
0 n

D12
D22
0n

D13 I n + c2 (1) J i
0n
D23 =
0n
D33

c2 (1) sI n
In
0n

c2 (1) sI n ,
I n
0n

luego
D11 = I n + c2 (1) J i ,
D12 = c 2 (1) sI n ,
D13 = 0 n ,
D22 = I n ,
D23 = c 2 (1) sI n ,
D33 = I n .
8.1
X 11
0
n
0n

X = XA .
X 12
X 22
0n

X 13 X 11
X 23 = 0n
X 33 0n

X 12
X 22
0n

X 13 J i
X 23 0n
X 33 0n

sI n
0n
0n

0 n X 11 J i
sI n = 0n
0 n 0n

sX 11
0n
0n

sX 12
0n .
0n

Teniendo en cuenta las dependencias de datos, la forma de calcular


X ij , 1 i j 3 , dentro del bucle 8 es
X 13 = sX 12 ,
X 12 = sX 11 ,

X 11 = X 11 J i ,

138

Captulo 4: Linealizacin a Trozos

8.2.

siendo X 22 , X 23 y X 33 matrices nulas.


N = N + c1 (k ) X .
N11
0
n
0 n

N12
N 22
0n

N13 N11 + c1 (k ) X 11
N 23 =
0n
N 33
0n

N12 + c1 (k ) X 12
N 22
0n

N13 + c1 (k ) X 13
.
N 23

N 33

Por lo tanto, las matrices N 22 , N 23 y N 33 no variaran dentro del


bucle, conteniendo el valor previo
N 22 = I n ,
N 23 = c1 (1) sI n ,
N 33 = I n .
8.3. D = D + c2 (k ) X .
D11
0
n
0n

D12
D22
0n

D13 D11 + c2 (k ) X 11
D23 =
0n
D33
0n

D12 + c2 (k ) X 12
D22
0n

D13 + c2 (k ) X 13
.
D23

D33

Por lo tanto, las matrices D22 , D23 y D33 no variaran dentro del bucle,
conteniendo el valor previo,
D22 = I n ,
D23 = c2 (1) sI n ,
D33 = I n .
9

Calcular F resolviendo ecuacin DF = N .


D11
0
n
0n

D12
In
0n

D13 F11
c2 (1) sI n 0n
I n 0n

F12
F22
0n

F13 N11
F23 = 0n
F33 0n

N12
In
0n

N13
c1 (1) sI n .
I n

luego
D11 F11 = N11 ,
D11 F12 + D12 F22 = N12 ,

D11 F13 + D12 F23 + D13 F33 = N13 ,


F22 = I n ,
F23 + c2 (1) sF33 = c1 (1) sI n ,
F33 = I n .

139

Captulo 4: Linealizacin a Trozos

Teniendo en cuenta que c1 (1) = 0.5 y c2 (1) = 0.5 , entonces F23 = sI n .


Por lo tanto, las matrices F11 , F12 y F13 se pueden obtener resolviendo las
ecuaciones
D11 F11 = N11 ,
D11 F12 = N12 D12 ,

D11 F13 = N13 sD12 D13 .


Luego slo basta conocer de los pasos anteriores N11 , N12 , N13 , D11 , D12 y
D13 , para determinar F11 , F12 y F13 en el paso 9.
10.1.

F = F2
Realizando el producto por bloques
F11
0
n
0 n

F12
F22
0n

F13 F11
F23 = 0 n
F33 0 n

F12
F22
0n

F13 F11
F23 0 n
F33 0 n

F12
F22
0n

F13
F23 ,
F33

e igualando los bloques correspondientes se tiene


F11 = F112 ,
F12 = F11 F12 + F12 F22 ,

F13 = F11 F13 + F12 F23 + F13 F33 ,


F22 = F222 ,
F23 = F22 F23 + F23 F33 ,
F33 = F332 .
Teniendo en cuenta que antes de entrar en el bucle F22 = I n y
F33 = I n , entonces en cualquier paso del bucle se tiene que F22 = I n y
F33 = I n .
Segn esto, el valor de F23 es
F23 = F23 + F23 = 2F23 ,
Sabiendo que F23 = sI n antes de entrar en el bucle, entonces al cabo
de k iteraciones resulta
F23 = 2 k sI n .
Atendiendo a la dependencia de datos, la forma de calcular F11 , F12 y
F13 es
F13 = F11 F13 + F12 F23 + F13 ,
F12 = F11 F12 + F12 ,

F11 = F112 .
140

Captulo 4: Linealizacin a Trozos

A continuacin se muestra la correspondiente adaptacin a bloques del Algoritmo 4.3,


segn los pasos anteriormente desarrollados.
yi +1 = dlaop3( J , f , g , yi , t , c1 , c2 ) .
Entradas: Matriz

J nxn , vector

f n , vector

g n , vector

yi n ,

incremento de tiempo t , vectores c1 , c2 q que contienen los


coeficientes de los trminos de grado mayor que cero de los polinomios de
la aproximacin de Pad de la funcin exponencial.
Salida:

Vector yi +1 n de la expresin ( 4.14 ).

nor = t || J ||

j Jt = max(0,1 + int(log 2 (nor ))) ; s =

3
4
5
6

X 11 = J ; X 12 = sI n ; X 13 = 0 n

t
; J i = sJ
2 j Jt

N11 = I n + c1 (1) J ; N12 = c1 (1) sI n ; N13 = 0 n


D11 = I n + c2 (1) J ; D12 = c2 (1) sI n ; D13 = 0 n
Para k = 2 : q
6.1
X 13 = sX 12 ; X 12 = sX 11 ; X 11 = X 11 J i
N11 = N11 + c1 (k ) X 11 ; N12 = N12 + c1 (k ) X 12 ; N13 = N13 + c1 (k ) X 13
6.2
D11 = D11 + c2 (k ) X 11 ; D12 = D12 + c2 (k ) X 12 ; D13 = D13 + c2 (k ) X 13
6.3
Calcular F11 , F12 y F13 , resolviendo las ecuaciones:
D11 F11 = N11
7.1
7.2
D11 F12 = N12 D12
7.3
D11 F13 = N13 sD12 D13
Para k = 1 : j Jt

8.1
F13 = F11 F13 + sF12 + F13 ; F12 = F11 F12 + F12 ; F11 = F112
8.2
s = 2s
yi +1 = yi + F12 f + F13 g

Algoritmo 4.4: Calcula la solucin aproximada en el instante t i +1 de una EDO no


autnoma mediante la modificacin a bloques del Algoritmo 4.3.
El coste aproximado del algoritmo anterior es
1

2 q + 3 j Jt + n 3 flops,
3

siendo j Jt = max(0,1 + int(log 2 (|| Jt || ))) .


A continuacin se presenta el algoritmo que resuelve EDOs mediante el mtodo de
linealizacin a trozos basado en los aproximantes diagonales de Pad.

141

Captulo 4: Linealizacin a Trozos

y = dgeedolpn(t,data, x0 , q) .
Entradas: Vector de tiempos t l +1 , funcin data que calcula f (t , x) n ,
J (t , x) nxn y g (t , x) n , vector inicial x0 n , grado q Z + de los
polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
Salidas: Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .
1
2
3

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


y 0 = x0
Para i = 0 : l 1
3.1
[ J , f , g ] = data (ti , yi )

3.2
3.3

t = ti +1 ti
yi +1 = dlaop3( J , f , g , yi , t , c1 , c2 ) (Algoritmo 4.4)

Algoritmo 4.5: Resolucin de EDOs no autnomas mediante el mtodo de


linealizacin a trozos basado en los aproximantes diagonales de Pad.
4.2.1.2 Mtodo Basado en la Ecuacin Conmutante

En este subapartado se describe la forma de obtener la solucin aproximada yi +1 de la


expresin ( 4.14 ) mediante la ecuacin conmutante.
Por la Propiedad 2.1, se tiene que las matrices
Ji
C i = 0 n
0 n

In
0n
0n

0n
I n
0 n

e Ci ti

e J i ti

= 0n
0n

F12( i ) (ti ) F13( i ) (ti )

In
I n ti
0n
I n

conmutan, por lo que


Ji
0
n
0n

In
0n
0n

e J i t i

= 0n
0n

0n e J i t i

I n 0n
0n 0n

F12( i ) (ti ) F13( i ) (ti )

In
I n ti
0n
I n

F12(i ) (ti ) F13(i ) (ti ) J i

In
I n ti 0n
0n
I n 0n

In
0n
0n

0n
I n .
0n

Igualando los bloques (1,2) y (1,3) de la expresin anterior, se tiene que


J i F12( i ) (ti ) + I n = e J i ti ,

142

Captulo 4: Linealizacin a Trozos

J i F13(i ) (ti ) + I n ti = F12( i ) (ti ) ,


y de aqu las expresiones
( 4.17 )

J i F12(i ) (ti ) f i = (e J i ti I n ) f i ,

( 4.18 )

J i F12(i ) (ti ) g i = (e J i ti I n ) g i ,

( 4.19 )

J i F13(i ) (ti ) g i = ( F12( i ) (ti ) I n ti ) g i = F12( i ) (ti ) g i ti g i ,

Por lo tanto,
yi +1 = yi + F12( i ) (ti ) f i + F13( i ) (ti ) g i
se puede calcular del siguiente modo:
Calcular xi = F12(i ) (ti ) f i resolviendo la ecuacin
J i xi = (e J i ti I n ) f i .
Calcular zi = F12(i ) (ti ) g i resolviendo la ecuacin,
J i zi = (e J i ti I n ) g i .
Calcular wi = F13( i ) (ti ) g i resolviendo la ecuacin
J i wi = zi ti gi .
Calcular yi +1 = yi + xi + wi .
Supngase que J i sea invertible. Puesto que se deben resolver tres sistemas de
ecuaciones lineales con la misma matriz de coeficientes, se puede utilizar la
descomposicin LU sin pivotamiento, para reducir el coste computacional del clculo
de yi +1 , tal como se muestra en el siguiente algoritmo. Si J i fuese singular cabra la
posibilidad de realizar una aproximacin basada en la descomposicin en valores
singulares (Teorema 6.8) de la matriz J i .

143

Captulo 4: Linealizacin a Trozos

yi +1 = dlaoc3( J , f , g , yi , t , c1 , c2 ) .
Entradas: Matriz

J nxn , vector

f n , vector

g n , vector

yi n ,

incremento de tiempo t , vectores c1 , c2 q que contienen los


coeficientes de los trminos de grado mayor que cero de los polinomios de
la aproximacin de Pad de la funcin exponencial.
Salida:
1
2
3
4
5
6
7
8
9

Vector yi +1 n de la expresin ( 4.14 ).

E = dlaexp( Jt , c1 ,c 2 ) (Algoritmo 4.3)


[ L, U ] = lu ( J )
Calcular x resolviendo el sistema lineal triangular inferior Lx = ( E I n ) f
Calcular x resolviendo el sistema lineal triangular superior Ux = x
Calcular z resolviendo el sistema lineal triangular inferior Lz = ( E I n ) g
Calcular z resolviendo el sistema lineal triangular superior Uz = z
Calcular w resolviendo el sistema lineal triangular inferior Lw = z tg
Calcular w resolviendo el sistema lineal triangular superior Uw = w
yi +1 = yi + x + w

Algoritmo 4.6: Calcula la solucin aproximada en el instante t i +1 de una EDO no


autnoma mediante la ecuacin conmutante.
El coste computacional aproximado del algoritmo anterior es
2

2 q + j Jt + n 3 flops,
3

siendo j Jt = max(0,1 + int(log 2 (|| Jt || ))) .


A continuacin se muestra el algoritmo que resuelve EDOs no autnomas mediante el
mtodo de linealizacin a trozos basado en la ecuacin conmutante
y = dgeedolcn(t, data, x0 , q) .
Entradas: Vector de tiempos t l +1 , funcin data que calcula f (t , x) n ,
J (t , x) nxn y g (t , x) n , vector inicial x0 n , grado q Z + de los
polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
Salidas: Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .
1
2
3

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


y 0 = x0
Para i = 0 : l 1
3.1
[ J , f , g ] = data (ti , yi ) .

3.2
3.3

t = ti +1 ti
yi +1 = dlaoc3( J , f , g , yi , t , c1 , c2 ) (Algoritmo 4.6)

Algoritmo 4.7: Resolucin de EDOs no autnomas mediante el mtodo de


linealizacin a trozos basado en la ecuacin conmutante.

144

Captulo 4: Linealizacin a Trozos

4.2.1.3 Mtodo Basado en los Subespacios de Krylov

El vector yi +1 que aparece en ( 4.14 ), solucin aproximada en el instante t i +1 de la EDO


( 4.1 ), se puede expresar como
yi +1 = yi + F12(i ) (t i ) f i + F13( i ) (t i ) g i = yi + e Ci ti vi ,

( 4.20 )
siendo

Ji
C i = 0 n
0 n

In
0n
0n

0n
I n ,
0 n

0 nx1
vi = f i .
g i

El producto e Ci ti vi de la expresin ( 4.20 ) se puede obtener mediante una modificacin


del mtodo basado en los subespacios de Krylov que se describe a continuacin.
Dados A nxn y v n , se pretende calcular, de manera aproximada, el vector e A v .
Para ello se trata de obtener una aproximacin del tipo
e A v Pp 1 ( A)v ,

siendo Pp 1 un polinomio de grado p 1 , con p << n .


Si se considera el subespacio de Krylov K p generado por los vectores v, Av,L , A p 1v ,
entonces se puede obtener una base ortonormal {v1 , v2 , L , v p } de K p aplicando el
mtodo de Arnoldi.
Entradas: Matriz A nxn , vector v n , dimensin p Z + del subespacio de
Krylov .
Salida: Base ortonormal {v1 , v2 , L , v p } .
1
2

v1 = v/||v||2
Para j = 1 : p
w = Av j
2.1

2.2

Para i = 1 : j
2.2.1 hij = wT vi
2.2.2

w = w hij vi

2.3

h j +1 j = w 2

2.4

v j +1 = w / h j +1

Algoritmo 4.8: Mtodo de Arnoldi.

145

Captulo 4: Linealizacin a Trozos

Sea V p la matriz cuyas columnas son los vectores de la base ortonormal {v1 , v2 , L , v p }
obtenida en el algoritmo anterior, es decir, V p = [v1 , v2 ,L, v p ] nxp . Si vopt = V p xopt es
la mejor aproximacin a e A v de un vector perteneciente a K p , entonces se cumple que
|| vopt e A v ||2 = minn || y e A v ||2 ,
y

por lo que xopt es la solucin del sistema de ecuaciones normales


V pT V p xopt = V pT e A v .

La solucin del sistema anterior viene dada por


xopt = (V p V p ) 1V pT e A v = V p e A v ,
T

por lo tanto
vopt = V p xopt = V pV p e A v .
T

Si se define =|| v ||2 , entonces


v = V p e1 ,
siendo
e1 = [1, 0, L , 0]T p ,
por lo que
vopt = V pV p e AV p e1 .
T

( 4.21 )

Por otra parte, si se considera la matriz H = [hij ] obtenida a partir del mtodo de
Arnoldi, entonces se cumple la siguiente relacin
AV p = V p H p + h p +1 p v p +1e Tp ,

siendo H p la matriz de Hessenberg obtenida al considerar las p primeras columnas y


p primeras filas de la matriz H .
Adems, por la ortogonalidad de las columnas de la matriz V p , se tiene
H p = V pT AV p ,

por lo que
( 4.22 )

Hp

= V pT e AV p .

Finalmente, teniendo en cuenta las expresiones ( 4.21 ) y ( 4.22 ), se obtiene que


e A v vopt = V p e p e1 .
H

Este resultado conduce al siguiente algoritmo.

146

Captulo 4: Linealizacin a Trozos

w = dlaexpkry( A,v,p,tol , c1 , c2 ) .

Entradas: Matriz A nxn , vector v n , dimensin p Z + del subespacio de


Krylov, tolerancia tol + , vectores c1 , c2 q que contienen los
coeficientes de los trminos de grado mayor que cero de los polinomios
que definen la aproximacin diagonal de Pad de la funcin exponencial.
Salida:
1
2

3
4

Vector w = e A v n .

= ||v||2
Si == 0
w=0
2.1
2.2
Salir del Algoritmo
V (:,1) = v/
Para j = 1 : p
4.1
w = AV (:, j )
4.2
Para i = 1 : j
4.2.1 H (i, j ) = wT V (:, i )
4.2.2 w = w H (i, j )V (:, i )
s= w2
4.3

Si s < tol
4.4.1 p = j
4.4.2 Salir del bucle
4.5
H ( j + 1, j ) = s
4.6
V (:, j + 1) = w / s
H (1 : p,1 : p ) = dlaexp( H (1 : p,1 : p ), c1 ,c 2 ) (Algoritmo 4.3)
w = V (:,1 : p ) H (1 : p,1)
4.4

5
6

Algoritmo 4.9: Calcula el producto de la exponencial de una matriz por un vector,


mediante los subespacios de Krylov.
El siguiente algoritmo permite calcular el vector yi +1 de la expresin ( 4.20 ) mediante
una adaptacin a bloques del Algoritmo 4.9, minimizando los costes computacionales y
de almacenamiento.

147

Captulo 4: Linealizacin a Trozos

yi +1 = dlaok 3( J , f , g , yi , t , p, tol , c1 , c2 ) .
Entradas: Matriz

J nxn , vector

f n , vector

g n , vector

yi n ,

incremento de tiempo t , dimensin p Z + del subespacio de


Krylov, tolerancia tol + , vectores c1 , c2 q que contienen a los
coeficientes de los trminos de grado mayor que cero de los polinomios
que definen la aproximacin diagonal de Pad de la funcin exponencial.
Salida:
1
2
3
4
5

Vector yi +1 n de la expresin ( 4.20 ).

V (1 : n,1) = 0 n ; V (n + 1 : 2n,1) = f ; V (2n + 1 : 3n,1) = g


=|| V (n + 1 : 3n,1) ||2
Si = = 0
3.1
Salir
V (2n + 1 : 3n,1) = V (2n + 1 : 3n,1) /
Para j = 1 : p
5.1 w(1 : n) = JV (1 : n, j ) + V (n + 1 : 2n, j ) ; w(n + 1 : 2n) = V (2n + 1 : 3n, j )
5.2 w(1 : 2n) = tw(1 : 2n) ; w(2n + 1 : 3n) = 0 n
5.3
Para i = 1 : j
5.3.1 H (i, j ) = wT V (1 : 3n, i )
5.3.2 w = w H (i, j )V (1 : 3n, i )
5.4
s= w2
Si s < tol
5.5.1 p = j
5.5.2 Salir del bucle
5.6
H ( j + 1, j ) = s
V (1 : 3n, j + 1) = w / s
5.7
H (1 : p,1 : p ) = dlaexp( H (1 : p,1 : p ), c1 ,c 2 ) (Algoritmo 4.2)
yi +1 = yi + V (1 : n,1 : p) H (1 : p,1)
5.5

6
7

Algoritmo 4.10: Calcula la solucin aproximada en el instante t i +1 de una EDO no


autnoma mediante la modificacin a bloques del Algoritmo 4.9.
El coste computacional aproximado del algoritmo anterior es
2n 2 p + 6np( p + 1) + 2(q + j H p + 1 / 3) p 3 flops,
siendo j H p = max(0,1 + int(log 2 (|| H p ||))) .
A continuacin se presenta el algoritmo completo para la resolucin de EDOs no
autnomas basado en el mtodo de linealizacin a trozos mediante los subespacios de
Krylov.

148

Captulo 4: Linealizacin a Trozos

y = dgeedolkn(t,data, x0 , p, tol , q) .
Entradas: Vector de tiempos t l +1 , funcin data que calcula f (t , x) n ,
J (t , x) nxn y g (t , x) n , vector inicial x0 n , dimensin p Z +
del subespacio de Krylov, tolerancia tol + , grado q Z + de los
polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
Salidas: Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .
[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)
y 0 = x0
Para i = 0 : l 1
3.1
[ J , f , g ] = data (ti , yi ) .

1
2
3

3.2
3.3

t = ti +1 ti
yi +1 = dlaok 3( J , f , g , yi , t , tol , c1 , c2 ) (Algoritmo 4.10)

Algoritmo 4.11: Resolucin de EDOs no autnomas mediante el mtodo de


linealizacin a trozos basado en los subespacios de Krylov.

4.2.2 EDOs Autnomas


Sea la EDO con valores iniciales
( 4.23 )

x' (t ) = f ( x(t )) , t [t 0 , t f ] ,
x(t0 ) = x0 n ,

cumpliendo f (x) las hiptesis del Teorema 2.10 (pgina 56), es decir, las derivadas
parciales de segundo orden de f (x) estn acotadas en n .
Dada una particin t 0 < t1 < L < t l 1 < t l = t f , entonces la ecuacin anterior se puede
aproximar mediante el conjunto de EDLs resultantes de la aproximacin lineal de
f ( x(t )) en cada subintervalo, es decir,
( 4.24 )

y ' (t ) = f i + J i ( y (t ) yi ) , t [t i , t i +1 ] , y (t i ) = yi , i = 0,1,L, l 1 ,

siendo
f i = f ( yi ) n ,
Ji =

f
( yi ) nxn .
x

La solucin analtica de la EDL


y ' (t ) = f i + J i ( y (t ) yi ) , t [ti , ti +1 ] , 0 i < l ,
con valor inicial y (t i ) = yi , resulta ser
t

( 4.25 )

y (t ) = yi + e J i ( t ) fi d , t [ti , ti +1 ] ,
ti

149

Captulo 4: Linealizacin a Trozos

por lo que se pueden obtener las soluciones aproximadas y0 , y1 ,L, yl resolviendo,


sucesivamente, las EDLs en cada uno de los subintervalos [ti , ti +1 ] , i = 0,1,L, l 1 .
Teorema 4.2.

La solucin de la EDL de valores iniciales


( 4.26 )

y ' (t ) = f i + J i ( y (t ) yi ) , t [ti , ti +1 ] , y (t i ) = yi ,

es
( 4.27 )

y (t ) = yi + F12(i ) (t ti ) f i ,

donde F12( i ) (t ti ) es el bloque (1,2) de la matriz eCi ( t t i ) , con


( 4.28 )

J
Ci = i
0 n

In
.
0 n

Demostracin.

Basta aplicar el Teorema 4.1, para el caso particular en que gi = 0nx1 n .


Segn el teorema anterior, la solucin aproximada en el instante ti +1 de la EDO ( 4.23 )
se puede obtener a partir de la solucin aproximada en ti utilizando la expresin
( 4.29 )

yi +1 = yi + F12(i ) (ti ) f i ,

donde ti = ti +1 ti , siendo F12( i ) (ti ) el bloque (1,2) de la matriz

eCi t i ,
con
J
Ci = i
0 n

In
.
0 n

El siguiente algoritmo calcula la solucin de la EDO ( 4.23 ) mediante el mtodo de


linealizacin a trozos basado en el clculo de la exponencial de una matriz.

150

Captulo 4: Linealizacin a Trozos

y = dgeedolga(t, data, x0 ) .
Entradas: Vector de tiempos t l +1 , funcin data que calcula f (t , x) n y
J (t , x) nxn , vector inicial x0 n .
Salidas: Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .
1
2

y 0 = x0
Para i = 0 : l 1
2.1
[ J , f ] = data (ti , yi )

2.3

J In
C=

0 n 0 n
t = ti +1 ti

2.4
2.5

F = eCt
Calcular yi +1 = yi + F12 f (expresin ( 4.29))

2.2

Algoritmo 4.12: Algoritmo bsico para la resolucin de EDOs autnomas mediante el


mtodo de linealizacin a trozos basado en el clculo de la exponencial
de una matriz.
El problema de calcular yi +1 son los elevados costes computacionales y de
almacenamiento necesarios para realizar el producto de la exponencial de una matriz de
dimensin 2n por un vector de dimensin 2n .
4.2.2.1 Mtodo Basado en los Aproximantes Diagonales de Pad

El vector yi +1 de la expresin ( 4.29 ), solucin aproximada en el instante t i +1 de la


EDO ( 4.23 ), se puede calcular sin obtener explcitamente la exponencial de la matriz
Ci ti mediante una adaptacin a bloques del mtodo de los aproximantes diagonales de
Pad. Razonando del mismo modo que el utilizado en la obtencin del Algoritmo 4.4, se
tiene el siguiente algoritmo.

151

Captulo 4: Linealizacin a Trozos

yi +1 = dlaop 2( J , f , yi , t , c1 , c2 ) .
Entradas: Matriz J nxn , vector f n , vector yi n , incremento de tiempo
t , vectores c1 , c2 q que contienen los coeficientes de los trminos
de grado mayor que cero de los polinomios de la aproximacin de Pad de
la funcin exponencial.

Salida:

Vector yi +1 mxn de la expresin ( 4.29 ).

nor = t || J ||

j Jt = max(0,1 + int(log 2 (nor ))) ; s =

3
4
5
6

X 11 = J ; X 12 = sI n

t
; J = sJ
2j

N11 = I n + c1 (1) J ; N12 = c1 (1) sI n


D11 = I n + c2 (1) J ; D12 = c2 (1) sI n
Para k = 2 : q
X 12 = sX 11 ; X 11 = X 11 J
6.1
N11 = N11 + c1 (k ) X 11 ; N12 = N12 + c1 (k ) X 12
6.2
D11 = D11 + c2 (k ) X 11 ; D12 = D12 + c2 (k ) X 12
6.3
Calcular F11 y F12 resolviendo las ecuaciones (mediante descomposicin LU de
D11 ):
D11 F11 = N11
7.1
D11 F12 = N12 D12
7.2
Para k = 1 : j
F12 = F11 F12 + F12 ; F11 = F112
8.1
s = 2s
8.2
yi +1 = yi + F12 f

Algoritmo 4.13: Calcula la solucin aproximada en el instante t i +1 de una EDO


autnoma mediante la modificacin a bloques del mtodo de los
aproximantes diagonales de Pad.
El coste aproximado del algoritmo anterior es
1

2 q + 2 j Jt + n 3 flops,
3

siendo j Jt = max(0,1 + int(log 2 (|| Jt || ))) .


A continuacin se presenta el algoritmo que resuelve EDOs autnomas mediante el
mtodo de linealizacin a trozos basado en los aproximantes diagonales de Pad.

152

Captulo 4: Linealizacin a Trozos

y = dgeedolpa(t,data, x0 , q) .
Entradas: Vector de tiempos t l +1 , funcin data que calcula f (t , x) n y
J (t , x) nxn , vector inicial x0 n , grado q Z + de los polinomios de
la aproximacin diagonal de Pad de la funcin exponencial.
Salidas: Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .
[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)
y 0 = x0
Para i = 0 : l 1
3.1
[ J , f ] = data (ti , yi )

1
2
3

3.2
3.3

t = ti +1 ti
yi +1 = dlaop 2( J , f , yi , t , c1 , c2 ) (Algoritmo 4.13)

Algoritmo 4.14: Resolucin de EDOs autnomas mediante el mtodo de linealizacin a


trozos basado en los aproximantes diagonales de Pad.
4.2.2.2 Mtodo Basado en la Ecuacin Conmutante

En este subapartado se describe la manera de obtener la solucin aproximada yi +1 de la


expresin ( 4.29 ) mediante la ecuacin conmutante.
Por la Propiedad 2.1, se tiene que las matrices
J
Ci = i
0 n

In
0 n

y
e J i ti
e Ci ti =
0n

F12( i ) (ti )

In

conmutan, por lo que


Ji
0
n

I n e J i ti

0 n 0 n

F12( i ) (ti ) e J i ti
=
I n 0n

F12(i ) (ti ) J i

I n 0 n

In
.
0 n

Igualando los bloques (1,2) de la expresin anterior, se tiene que


J i F12( i ) (ti ) + I n = e J i ti ,
o bien
( 4.30 )

J i F12(i ) (ti ) f i = (e J i ti I n ) f i .

Si J i es invertible, entonces yi +1 se puede calcular del siguiente modo:


Calcular xi = F12(i ) (ti ) f i resolviendo la ecuacin
J i xi = (e J i ti I n ) f i .
Calcular yi +1 = yi + xi .

153

Captulo 4: Linealizacin a Trozos

A continuacin se muestra un algoritmo que calcula el vector yi +1 mediante la ecuacin


conmutante.
yi +1 = dlaoc 2( J , f , yi , t , c1 , c2 ) .
Entradas: Matriz J nxn , vector f n , vector yi n , incremento de tiempo
t , vectores c1 , c2 q que contienen los coeficientes de los trminos
de grado mayor que cero de los polinomios de la aproximacin de Pad de
la funcin exponencial.

Salida:
1
2
3
4
5

Vector yi +1 n de la expresin ( 4.29 ).

E = dlaexp( Jt , c1 ,c 2 ) (Algoritmo 4.3)


[ L, U ] = lu ( J )
Calcular x resolviendo el sistema lineal triangular inferior Lx = ( E I n ) f
Calcular x resolviendo el sistema lineal triangular superior Ux = x
yi +1 = yi + x

Algoritmo 4.15: Calcula la solucin aproximada en el instante t i +1 de una EDO


autnoma mediante la ecuacin conmutante.
El coste computacional aproximado del algoritmo anterior es
2

2 q + j Jt + n 3 flops,
3

siendo j Jt = max(0,1 + int(log 2 (|| Jt || ))) .


A continuacin se presenta el algoritmo que resuelve EDOs mediante el mtodo de
linealizacin a trozos basado en la ecuacin conmutante.
y = dgeedolca(t, data, x0 , q ) .
Entradas: Vector de tiempos t l +1 , funcin data que calcula f (t , x) n y
J (t , x) nxn , vector inicial x0 n , grado q Z + de los polinomios de
la aproximacin diagonal de Pad de la funcin exponencial.
Salidas: Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .
1
2
3

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


y 0 = x0
Para i = 0 : l 1
3.1
[ J , f ] = data (ti , yi )

3.2
3.3

t = ti +1 ti
y i +1 = dlaoc 2( J , f , y i , t , c1 , c 2 ) (Algoritmo 4.15)

Algoritmo 4.16: Resolucin de EDOs autnomas mediante el mtodo de linealizacin a


trozos basado en la ecuacin conmutante.

154

Captulo 4: Linealizacin a Trozos

4.2.2.3 Mtodo Basado en los Subespacios de Krylov

El vector yi +1 de la expresin ( 4.29 ), solucin aproximada en el instante t i +1 de la EDO


( 4.23 ), se puede expresar como
y i +1 = y i + F12( i ) (t i ) f i = y i + e Ci ti vi ,

( 4.31 )
donde

J
Ci = i
0 n

In
,
0 n

0
vi = nx1 .
fi

Para calcular yi +1 , segn la expresin anterior, es necesario calcular el producto de la


exponencial de una matriz por un vector.
Para calcular e Ci ti vi de forma eficiente se realiza la siguiente adaptacin a bloques del
Algoritmo 4.9:
J
A= i
0 n

In
J t
t i = i i

0n
0n

I n t i
0
, v = nx1 .

0n
fi

I n t i J
=
0 n 0 n

= ||v||2 .

= ||f i||2 .
3

V (:,1) = v/ .
V (1 : n,1) 0 nx1
V (n + 1 : 2n,1) = f / .

4.1

w = AV (:,1) .
w(1 : n) J
w(n + 1 : 2n) = 0

4.2.1

t
tI n 0 nx1 f i

= .

0 n f i /
0 nx1

H (1,1) = wT V (:,1) .
t
H (1,1) = wT V (:,1) = f T

0 0
0 nx1 nx1 = nx1 .
f i / 0 nx1

4.2.2

w = w H (1,1)V (:,1) (no se modifica el vector w ).

4.3

s =|| w || 2 .

s =|| w ||2 =
4.5

|| f i ||2 =

= t .

H (2,1) = s .
H (2,1) = t .

4.6

V (:,2) = w / s .

155

Captulo 4: Linealizacin a Trozos

t
fi /
V (1 : n,2)
fi
V (n + 1 : 2n,2) = w / s = / t = 0 .

nx1
0 nx1

4.1

w = AV (:, j ) , j > 1 .
w(1 : n) J
w(n + 1 : 2n) = 0

tI n V (1; n, j ) JV (1; n, j )
.
=
0 n 0 nx1 0 nx1

4.2.1

H (1, j ) = wT V (:, j ) , j > 1 .

4.2.2

V (1 : n,1)
T
01xn
= w(1 : n) V (1 : n,1) = 0 .
0
nx1

w = w H (1, j )V (:,1) , j > 1 (no se modifica el vector w ).

4.2.1

H (i, j ) = wT V (:, j ) , i > 1 , j > 1 .

H (1, j ) = w(1 : n)T

H (i, j ) = w(1 : n)T

4.2.2

V (1 : n, i )
01xn
= w(1 : n)T V (1 : n, i ) .

0 nx1

w = w H (i, j )V (:, i ) i > 1 , j > 1 .

V (1 : n, i ) w(1 : n) H (i, j ) JV (1 : n, j )
w(1 : n) w(1 : n)
=
.
w(n + 1 : 2n) = 0 H (i, j ) 0
0 nx1
nx1

4.3

s =|| w || 2 .
s =|| w || 2 =|| w(1 : n) || 2 .

4.5

H ( j + 1, j ) = s , j > 1 .

4.6

V (:, j + 1) = w / s , j > 1 .
w(1 : n) / s
V (1 : n, j + 1) w(1 : n)
.
V (n + 1 : 2n, j + 1) = 0 / s = 0
n
n

El siguiente algoritmo calcula el vector yi +1 de la expresin ( 4.31 ) mediante una


adaptacin a bloques del Algoritmo 4.9, minimizando los costes computacionales y de
almacenamiento.

156

Captulo 4: Linealizacin a Trozos

yi +1 = dlaok 2( J , f , yi , t , p, tol , c1 , c2 ) .
Entradas: Matriz J nxn , vector f n , yi n , incremento de tiempo t ,
dimensin p Z + del subespacio de Krylov, tolerancia tol + , vectores
c1 , c2 q que contienen los coeficientes de los trminos de grado mayor
que cero de los polinomios de la aproximacin de Pad de la funcin
exponencial.
Salida:
1
2
3
4
5
6
7

8
9

Vector yi +1 n de la expresin ( 4.31 ).

=|| f ||2
Si == 0
2.1
Salir
V (1 : n,1) = 0 n
V (1 : n,2) = f /
H (1,1) = 0 ; H (2,1) = t
J = Jt
Para j = 2 : p
w = JV (1 : n, j )
7.1
H (1, j ) = 0
7.2
7.3
Para i = 2 : j
7.3.1 H (i, j ) = wT V (1 : n, i )
7.3.2 w = w H (i, j )V (1 : n, i )
s =|| w || 2
7.4
7.5
Si s < tol
7.5.1 p = j
7.5.2 Salir del bucle
7.6
H ( j + 1, j ) = s
7.7
V (1 : n, j + 1) = w / s
H (1 : p,1 : p ) = dlaexp( H (1 : p,1 : p ), c1 ,c 2 ) (Algoritmo 4.3)
yi +1 = yi + V (1 : n,1 : p) H (1 : p,1)

Algoritmo 4.17: Calcula la solucin aproximada en el instante t i +1 de una EDO


autnoma mediante la modificacin a bloques del Algoritmo 4.9.
El coste computacional aproximado del algoritmo anterior es
2n( p 1)(n + p) + 2(q + j H p + 1 / 3) p 3 flops,
siendo j H p = max(0,1 + int(log 2 (|| H p ||))) .
A continuacin se presenta el algoritmo completo que resuelve EDOs autnomas basada
en la linealizacin a trozos mediante los subespacios de Krylov.

157

Captulo 4: Linealizacin a Trozos

y = dgeedolka(t,data, x0 , p, tol , q) .
Entradas: Vector de tiempos t l +1 , funcin data que calcula f ( y ) n y
J (t , y ) nxn , vector inicial x0 n , dimensin p Z + del subespacio de
Krylov, tolerancia tol + , grado q Z + de los polinomios de la
aproximacin diagonal de Pad de la funcin exponencial.
Salidas: Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .
[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)
y 0 = x0
Para i = 0 : l 1
3.1
[ J , f ] = data (ti , yi )

1
2
3

3.2
3.3

t = ti +1 ti
yi +1 = dlaok 2( J , f , yi , t , tol , c1 , c2 ) (Algoritmo 4.17)

Algoritmo 4.18. Resolucin de EDOs autnomas mediante el mtodo de linealizacin a


trozos basado en los subespacios de Krylov.

4.3 Mtodos de Linealizacin a Trozos de EDMRs


4.3.1 Resolucin de EDMRs con Coeficientes Variables
Sea la EDMR
( 4.32 ) X ' (t ) = A21 (t ) + A22 (t ) X (t ) X (t ) A11 (t ) X (t ) A12 (t ) X (t ) , t0 t t f ,
con valor inicial
X (t 0 ) = X 0 mxn ,
donde A11 (t ) nxn , A12 (t ) nxm , A21 (t ) mxn y A22 (t ) mxm .
Al aplicar la funcin vec a la EDMR ( 4.32 ), se obtiene la EDO
( 4.33 )

x' = f (t , x) , x0 = vec( X 0 ) , x = x(t ) mn ,

siendo
( 4.34 )

f (t , x) = vec( A21 (t ) + A22 (t ) X XA11 (t ) XA12 (t ) X ) ,

o bien, utilizando la Propiedad 6.7 y la Propiedad 6.8 del producto de Kronecker,


( 4.35 )

f (t , x) = vec( A21 (t )) + [ I n A22 (t ) A11T (t ) I m ]x [ I n ( XA12 (t ))]x

o
( 4.36 )

f (t , x) = vec( A21 (t )) + [ I n A22 (t ) A11T (t ) I m ]x [( A12 (t ) X ) T I m ]x .

Supngase que las segundas derivadas de las funciones de matrices Aij (t ) , para

i, j = 1,2 , estn acotadas en [t 0 , t f ] . Considerando la particin t 0 < t1 < L < t l 1 < t l = t f


y aplicando la linealizacin a trozos, se obtiene el conjunto de EDLs resultantes de la
aproximacin lineal de f (t , x) en cada subintervalo,

158

Captulo 4: Linealizacin a Trozos

( 4.37 ) y ' (t ) = f i + J i ( y (t ) yi ) + g i (t t i ) , t [t i , t i +1 ] , y (t i ) = yi , i = 0,1,L, l 1 ,


siendo
f i = vec( A21 (ti ) + A22 (ti )Yi Yi A11 (ti ) Yi A12 (ti )Yi ) ,

( 4.38 )

'
'
(ti ) + A22
(ti )Yi Yi A11' (ti ) Yi A12' (ti )Yi , Aij' (t ) =
( 4.39 ) g i = vec A21

dAij (t )
dt

, i, j = 1,2 .
t = ti

Segn el Teorema 2.10 (pgina 56), la solucin de la EDL ( 4.37 ) es


( 4.40 )

yi +1 = yi + F12( i ) (ti ) f i + F13( i ) (ti ) g i ,

donde F12( i ) (ti ) y F13(i ) (ti ) son, respectivamente, los bloques (1,2) y (1,3) de la
exponencial de la matriz e Ci ti , siendo
Ji
Ci = 0 mn
0 mn

( 4.41 )

I mn
0 mn
0 mn

0 mn
I mn ,
0 mn

con
( 4.42 )

Ji =

f
(ti , yi ) = I n Ai BiT I m ,
x
Ai = A22 (t i ) Yi A12 (t i ) ,
Bi = A11 (t i ) + A12 (t i )Yi .

Aplicando el operador mat mxn en la expresin ( 4.40 ), se tiene que la solucin


aproximada en el instante t i +1 de la EDMR ( 4.32 ) se puede obtener como
( 4.43 )

Yi +1 = Yi + mat mxn ( F12(i ) (ti ) f i + F13( i ) (ti ) g i ) .

A continuacin se presenta un algoritmo bsico que resuelve EDMRs con coeficientes


variables basado en la linealizacin a trozos.

159

Captulo 4: Linealizacin a Trozos

Y = dgedmrlgv(t , data, datad , X 0 )


Entradas: Vector de tiempos t l +1 , matrices
A11 (t ) nxn , A12 (t ) nxm , A21 (t ) mxn ,
matrices coeficiente de la EDMR
'
'
A21
(t ) mxn , A22
(t ) mxm , matriz inicial
Salida:

coeficiente de la EDMR
A22 (t ) mxm , derivadas de las
A11' (t ) nxn , A12' (t ) nxm ,
X 0 mxn .

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

Y0 = X 0
Para i = 0 : l 1
2.1
f = vec( A21 (ti ) + A22 (ti )Yi Yi A11 (ti ) Yi A12 (ti )Yi )

1
2

2.2
2.3
2.4

'
'
g = vec( A21
(ti ) + A22
(ti )Yi Yi A11' (ti ) Yi A12' (ti )Yi )
A = A22 (ti ) Yi A12 (ti )
B = A11 (ti ) + A12 (ti )Yi

2.5

J = I n A BT I m

2.6
2.7
2.8
2.9

I mn
J
C = 0 mn 0 mn
0 mn 0 mn
ti = ti +1 ti

0 mn
I mn
0 mn

F = e Cti
Yi +1 = Yi + mat mxn ( F12 f i + F13 gi ) (vase ( 4.43 ))

Algoritmo 4.19: Resolucin de EDMRs con coeficientes variables basada en la


linealizacin a trozos.
El problema del algoritmo anterior son los elevados costes computacionales y de
almacenamiento necesarios para realizarlo. En los siguientes subapartados se presentan
tres mtodos que calculan la matriz Yi +1 de la expresin ( 4.43 ), reduciendo dichos
costes.
4.3.1.1 Mtodo Basado en los Aproximantes Diagonales de Pad

Una forma de resolver la EDMR ( 4.32 ) se basa en el teorema que aparece en este
subapartado.
Lema 4.1 ([Bern05], pgina 422])

Sean A mxm y B nxn , entonces

e I n A+ B I m = e B e A .
Teorema 4.3.

La matriz Yi +1 que aparece en la expresin ( 4.43 ), solucin aproximada en el instante


ti +1 de la EDMR ( 4.32 ), se puede calcular como
( 4.44 )

Yi +1 = Yi + ( F12(i ) (ti ) + H13( i ) (ti ))( F22( i ) (ti )) 1 ,

160

Captulo 4: Linealizacin a Trozos

donde F12( i ) (ti ) y F22( i ) (ti ) son, respectivamente, los bloques (1,2) y (2,2) de la matriz

e Ci ti , con
A
Ci = i
0 nxm

( 4.45 )

Fi
,
Bi

y H 13( i ) (t i ) el bloque (1,3) de la matriz e Di ti , con


( 4.46 )

Ai
Di = 0 nxm
0 nxm

Gi
Bi
0 nxn

0 mxn
I n ,
Bi

siendo
Fi = A21 (ti ) + A22 (ti )Yi Yi A11 (ti ) Yi A12 (ti )Yi ,
'
'
Gi = A21
(ti ) + A22
(ti )Yi Yi A11' (ti ) Yi A12' (ti )Yi ,

Ai = A22 (ti ) Yi A12 (t i ) ,


Bi = A11 (t i ) + A12 (t i )Yi .
Demostracin.

Al aplicar la linealizacin a trozos a la EDMR ( 4.32 ) se obtiene en [t i , t i +1 ] la EDL


y ' (t ) = f i + J i ( y (t ) yi ) + g i (t t i ) , y (t i ) = yi
que tiene como solucin analtica
t

y (t ) = yi + e J i ( t ) [ f i + g i ( t i )]d .
ti

Si se realiza el cambio de variable


s = ti ,
y se define

= t ti ,
entonces
ds = d ,

t = t s ti = s ,
por lo que, aplicando el lema anterior, se tiene que

161

Captulo 4: Linealizacin a Trozos

y (t ) = yi + e

J i ( s )

f i ds + e J i ( s ) g i sds
0

= yi + e ( I n Ai Bi
0

= yi + e

I m )( s )

BiT ( s )

f i ds + e ( I n Ai Bi

I m )( s )

g i sds

Ai ( s )

) f ds + (e

BiT ( s )

e Ai ( s ) g i sds.

Por tanto, si se define Fi = mat mxn ( f i ) y Gi = mat mxn ( g i ) , entonces, segn la Propiedad
6.8, se tiene
( 4.47 )

Y (t ) = Yi + e Ai ( s ) Fi e Bi ( s ) ds + e Ai ( s ) Gi e Bi ( s ) sds .

Para calcular la primera integral de la expresin anterior, se considera la matriz


triangular superior a bloques definida en ( 4.45 ),
A
Ci = i
0 nxm

Fi
,
Bi

y la exponencial de la matriz Ci ,
e

Ci

F11(i ) ( ) F12( i ) ( )
=
.
F22( i ) ( )
0 nxm

Derivando respecto de en ambos miembros de la igualdad anterior, se tiene que


de Ci
= Ce Ci ,
d
por lo que

( 4.48 )

dF11( i ) ( )

d
0
nxm

dF12(i ) ( )

d = Ai
(i )
dF22 ( ) 0 nxm
d

Fi F11( i ) ( ) F12( i ) ( )

Bi 0 nxm
F22( i ) ( )

Ai F11( i ) ( )
=
0 nxm

Ai F12( i ) ( ) + Fi F22( i ) ( )
.
Bi F22(i ) ( )

Igualando los bloques (1,1), (1,2) y (2,2) de ambos miembros de la ecuacin anterior, y
teniendo en cuenta que
e C

=0

= I m+n ,

se obtienen las siguientes EDMLs


( 4.49 )

dF11(i ) ( )
= Ai F11( i ) ( ) , F11( i ) (0) = I m ,
d

( 4.50 )

dF22(i ) ( )
= Bi F22( i ) ( ) , F22( i ) (0) = I n ,
d

162

Captulo 4: Linealizacin a Trozos

( 4.51 )

dF12(i ) ( )
= Ai F12(i ) ( ) + Fi F22( i ) ( ) , F12( i ) (0) = 0 mxn .
d

Resolviendo en primer lugar las EDMLs ( 4.49 ) y ( 4.50 ), se tiene que


F11( i ) ( ) = e Ai ,
F22( i ) ( ) = e Bi .
Sustituyendo F22( i ) ( ) = e Bi en ( 4.51 ), se obtiene la EDML
dF12(i ) ( )
= Ai F12( i ) ( ) + Fi e Bi , F12( i ) (0) = 0 mxn ,
d
por lo tanto

F12( i ) ( ) = e Ai ( s ) Fi e Bi s ds .

( 4.52 )

Para calcular la segunda integral que aparece en la expresin ( 4.47 ), se considera la


matriz triangular superior a bloques definida en ( 4.46 ),
Ai
Di = 0 nxm
0 nxm

0 mxn
I n ,
Bi

Gi
Bi
0 nxn

y la exponencial de la matriz Di ,
e Di

( 4.53 )

H 11( i ) ( ) H 12( i ) ( ) H 13(i ) ( )

(i )
(i )
= 0 nxm
( ) H 23
( ) ,
H 22
0 nxm
0 nxn
H 33(i ) ( )

siendo H (jki ) ( ) , 1 j k 3 , matrices de dimensiones conformes a la expresin


anterior, dependientes del parmetro .
Como
de Di
= Ce Di , e Di
d

=0

= I m+2 n ,

entonces
dH 11( i ) ( )

d
0
nxm

0 nxm

dH 12(i ) ( )
d
(i )
dH 22
( )
d
0 nxn

dH 13( i ) ( )

d Ai
(i )
dH 23
( )
= 0 nxm
d
dH 33( i ) ( ) 0 nxm

Ai H 11( i ) ( )

= 0 nxm
0 nxm

Gi
Bi
0 nxn

(i )
Ai H 12( i ) ( ) + Gi H 22
( )
(i )
Bi H 22 ( )
0 nxn

0 mxn H 11( i ) ( ) H 12( i ) ( ) H 13( i ) ( )

(i )
(i )
I n 0 nxm
H 22
( ) H 23
( )
Bi 0 nxm
H 33( i ) ( )
0 nxn
(i )
Ai H 13( i ) ( ) + Gi H 23
( )

(i )
(i )
Bi H 23 ( ) + H 33 ( ) .

Bi H 33( i ) ( )

163

Captulo 4: Linealizacin a Trozos

Igualando los bloques correspondientes de ambos miembros de la ecuacin anterior, se


tienen las EDMLs
( 4.54 )

dH 11( i ) ( )
= Ai H 11( i ) ( ) , H 11( i ) (0) = I m ,
d

( 4.55 )

(i )
dH 22
( )
(i )
(i )
= Bi H 22
( ) , H 22
(0) = I n ,
d

( 4.56 )

dH 33( i ) ( )
= Bi H 33( i ) ( ) , H 33(i ) (0) = I n ,
d

( 4.57 )

dH 12(i ) ( )
(i )
= Ai H 12( i ) ( ) + Gi H 22
( ) , H 12(i ) (0) = 0 mxn ,
d

( 4.58 )

(i )
dH 23
( )
(i )
(i )
= Bi H 23
( ) + H 33( i ) ( ) , H 23
(0) = 0 nxn ,
d

( 4.59 )

dH 13(i ) ( )
(i )
= Ai H 13( i ) ( ) + Gi H 23
( ) , H 13( i ) (0) = 0 mxn .
d

Resolviendo las EDMLs ( 4.54 ), ( 4.55 ) y ( 4.56 ), se tiene que


H 11( i ) ( ) = e Ai ,
(i )
H 22
( ) = e Bi ,

H 33(i ) ( ) = e Bi .
(i )
( ) = e Bi en ( 4.57 ), se obtiene la EDML
Sustituyendo H 22

dH 12( i ) ( )
= Ai H 12( i ) ( ) + Gi e Bi , H 12( i ) (0) = 0 mxn ,
d
por lo tanto,

H ( ) = e Ai ( s ) Gi e Bi s ds .
(i )
12

Sustituyendo H 33(i ) ( ) = e Bi en ( 4.58 ), se obtiene la EDML


(i )
dH 23
( )
(i )
(i )
= Bi H 23
( ) + e Bi , H 23
( ) = 0 nxn ,
d

por lo que resolvindola se tiene que


(i )
H 23
( ) = e Bi .
(i )
( ) = e Bi en ( 4.59 ), se obtiene la EDML
Por ltimo, sustituyendo H 23

dH 13( i ) ( )
= Ai H 13( i ) ( ) + Gi e Bi , H 13( i ) (0) = 0 mxn ,
d
cuya solucin viene dada por

164

Captulo 4: Linealizacin a Trozos

( 4.60 )

H ( ) = e Ai ( s ) Gi e Bi s sds .
(i )
13

Teniendo en cuenta las expresiones ( 4.47 ), ( 4.52 ) y( 4.60 ), se tiene que


( 4.61 )

(i )
Y (t ) = Yi + F12( i ) ( )[ F22( i ) ( )]1 + H 13( i ) ( )[ H 22
( )]1 ,

y como adems
(i )
H 22
( ) = F22( i ) ( ) = e Bi ,

entonces
Y (t ) = Yi + [ F12( i ) ( ) + H 13( i ) ( )][ F22( i ) ( )]1 .
Por ltimo, si en la expresin ( 4.44 ) se sustituye t por t i +1 , resulta
( 4.62 )

Yi +1 = Yi + [ F12( i ) (t i ) + H 13( i ) (t i )][ F22( i ) (t i )]1 ,

siendo t i = t i +1 t i , con lo que queda demostrado el teorema.


Puesto que los bloques diagonales (1,1) y (2,2) de las matrices Ci y Di que aparecen en
las expresiones ( 4.45 ) y ( 4.46 ) son iguales, entonces los bloques diagonales (1,1) y
(2,2) de las matrices e Ci t y e Di t son iguales, por lo que es posible una adaptacin a
bloques del Algoritmo 4.3 que permita calcular a la vez F12( i ) (ti ) y H 13(i ) (ti ) .
Realizando un razonamiento semejante al utilizado en la obtencin del Algoritmo 4.4,
se deduce el siguiente algoritmo.

165

Captulo 4: Linealizacin a Trozos

Yi +1 = dlabp3( A, B, F , G, Yi , t , c1 , c2 ) .
Entradas: Matriz A mxm , matriz B nxn , matriz F mxn , matriz G mxn ,
matriz Yi mxn , incremento de tiempo t , vectores c1 , c2 q
coeficientes de los trminos de grado mayor que 0 de los polinomios de la
aproximacin diagonal de Pad de la funcin exponencial.
Salida:
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17

Matriz Yi +1 mxn de la expresin ( 4.44 ).

norA =|| A || ; norB =|| B || ; norF =|| F || ; norG =|| G ||


nor = max(norA + norG, norB + 1) ; nor = t max(nor , norA + norF )
t
j = max(0,1 + int(log 2 (nor ))) ; s = j
2
A = sA ; B = sB ; F = sF ; G = sG
X 11 = A ; X 12 = G ; Y12 = F ; X 22 = B ; X 13 = 0 mxn ; X 23 = sI n

N11 = I m + c1 (1) X 11 ; N12 = c1 (1) X 12 ; M 12 = c1 (1)Y12


N13 = c1 (1) X 13 ; N 22 = I n + c1 (1) X 22 ; N 23 = c1 (1) X 23
D11 = I m + c2 (1) X 11 ; D12 = c2 (1) X 12 ; P12 = c2 (1)Y12
D13 = c2 (1) X 13 ; D22 = I n + c2 (1) X 22 ; D23 = c2 (1) X 23
Para k = 2 : q
X 11 = AX 11 ; X 12 = AX 12 + GX 22 ; Y12 = AX 12 + FX 22
10.1
X 13 = AX 13 + GX 23 ; X 23 = BX 23 + sX 22 ; X 22 = BX 22
10.2
N11 = N11 + c1 (k ) X 11 ; N12 = N12 + c1 (k ) X 12 ; M 12 = M 12 + c1 (k ) X 12
10.3
N13 = N13 + c1 (k ) X 13 ; N 22 = N 22 + c1 (k ) X 22 ; N 23 = N 23 + c1 (k ) X 23
10.4
D11 = D11 + c2 (k ) X 11 ; D12 = D12 + c 2 (k ) X 12 ; P12 = P12 + c2 (k ) X 12
10.5
D13 = D13 + c2 (k ) X 13 ; D22 = D22 + c2 (k ) X 22 ; D23 = D23 + c2 (k ) X 23
10.6
Calcular F11 resolviendo la ecuacin D11 F11 = N11
Calcular F22 resolviendo la ecuacin D22 F22 = N 22
Calcular F12 resolviendo la ecuacin D11 F12 = N12 D12 F22
Calcular G12 resolviendo la ecuacin D11G12 = M 12 E12 F22
Calcular F23 resolviendo la ecuacin D22 F23 = N 23 D23 F22
Calcular F13 resolviendo la ecuacin D11 F13 = N13 D12 F23 D13 F22
Para k = 1 : j
17.1 F13 = F11 F13 + F12 F23 + F13 F22 ; F12 = F11 F12 + F12 F22
2

17.2 G12 = X 11G12 + G12 X 22 ; F23 = F22 F23 + F23 F22 ; F11 = F11 ; F22 = F22
18 Calcular Yi +1 resolviendo la ecuacin F22Yi +1 = G12 + F13
19 Yi +1 = Yi +1 + Yi

Algoritmo 4.20: Calcula la solucin aproximada en el instante t i +1 de una EDMR con


coeficientes variables mediante la modificacin a bloques del
Algoritmo 4.3.
El coste computacional aproximado del algoritmo anterior es

166

Captulo 4: Linealizacin a Trozos

(2m 3 + 4m 2 n + 8mn 2 + 4n 3 )q + (2m 3 + 3m 2 n + 8mn 2 + 6n 3 ) j


2
4
+ m 3 + 2m 2 n 6mn 2 + m 3 flops.
3
3

El siguiente algoritmo resuelve EDMRs con coeficientes variables mediante el mtodo


de linealizacin a trozos basado en los aproximantes diagonales de Pad.
Y = dgedmrlpv(t , data, datad , X 0 , q) .
Entradas: Vector de tiempos t l +1 , funcin data(t ) que calcula las matrices
coeficiente de la EDMR A11 (t ) nxn , A12 (t ) nxm , A21 (t ) mxn ,
A22 (t ) mxm , funcin datad (t ) que calcula las derivadas de las matrices
'
(t ) mxn ,
coeficiente de la EDMR A11' (t ) nxn , A12' (t ) nxm , A21
'
A22
(t ) mxm , matriz inicial X 0 mxn , grado q Z + de los polinomios
de la aproximacin diagonal de Pad.
Salida:
1
2
3

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


Y0 = X 0
Para i = 0 : l 1
3.1
[ A11 , A12 , A21 , A22 ] = data (t )
A22 = A22 Yi A12
3.2

G = A21 + A22Yi
3.3
G = G Yi A11
3.4
[ A11 , A12 , A21 , A22 ] = datad (t )
3.5
A22 = A22 Yi A12
3.6
F = A21 + A22Yi
3.7
F = F Yi A11
3.8
A11 = A11 + A12Yi
3.9
3.10 t = ti +1 ti
3.11 Yi +1 = dlabp3( A22 , A11 , F , G, Yi , t , c1 , c2 ) .
Algoritmo 4.21: Resolucin de EDMRs con coeficientes variables mediante el mtodo
de linealizacin a trozos basado en los aproximantes diagonales de
Pad.
El coste aproximado por iteracin del algoritmo anterior es
8m 2 n + 6mn 2 +coste( data )+coste( datad )+coste(Algoritmo 4.20) flops.
4.3.1.2 Mtodo Basado en la Ecuacin Conmutante

El mtodo que se presenta en este subapartado es consecuencia del siguiente teorema,


cuya demostracin est basada en la ecuacin conmutante.

167

Captulo 4: Linealizacin a Trozos

Teorema 4.4.

Si las matrices Ai y Bi que aparecen en ( 4.42 ) no tienen valores propios en comn,


entonces la matriz Yi +1 que aparece en la expresin ( 4.43 ), solucin aproximada en el
instante ti +1 de la EDMR ( 4.32 ), se puede calcular como
Yi +1 = Yi + W f + Wg ,

( 4.63 )

siendo W f la solucin de la ecuacin matricial de Sylvester


AiW f W f Bi = e Ai t i Fi e Bi t i Fi

( 4.64 )

y Wg la solucin de la ecuacin matricial de Sylvester


AiW g W g Bi = Wi Gi t i ,

( 4.65 )

donde Wi es la solucin de la ecuacin matricial de Sylvester


AiWi Wi Bi = e Ai t i Gi e Bi t i Gi .

( 4.66 )
Demostracin.

Por la Propiedad 2.1, las matrices Ci ti (expresin ( 4.41 )) y eCi ti conmutan, luego
Ji
0
mn
0 mn

I mn
0 mn
0 mn

0 mn e J i ti

I mn 0 mn
0 mn 0 mn

F12(i )
I mn
0 mn

F13(i ) e J i ti

I mn ti = 0 mn
I mn 0 mn

F12( i )
I mn
0 mn

F13(i ) J i

I mn ti 0 mn
I mn 0 mn

I mn
0 mn
0 mn

0 mn
I mn ,
0 mn

en donde se ha simplificado la notacin escribiendo F12( i ) y F13(i ) , en lugar de F12(i ) (ti ) y


F13(i ) (ti ) , respectivamente.
Igualando los bloques (1,2) de ambos miembros de la ecuacin, se obtiene
J i F12(i ) + I mn = e J i ti ,
J i F12( i ) = e J i ti I mn ,
y de aqu
( 4.67 )

J i F12( i ) f i = e J i ti f i f i .

De igual modo, igualando los bloques (1,3), resulta que


J i F13(i ) + I mn t i = F12( i ) ,
J i F13(i ) = F12(i ) I mn t i ,
o bien
( 4.68 )

J i F13(i ) gi = F12( i ) gi ti gi .

Si se definen
( 4.69 )

w f = F12( i ) fi y W f = mat mxn ( w f ) ,

168

Captulo 4: Linealizacin a Trozos

y se desarrolla la parte izquierda de la ecuacin ( 4.67 ) se deduce, por la Propiedad 6.8,


que
( 4.70 )

J i F12(i ) f i = J i w f = I n Ai BiT I m w f = vec(AiW f W f Bi ),

Desarrollando la parte derecha de la ecuacin ( 4.67 ), y teniendo en cuenta el Lema 4.1


y la Propiedad 6.8, se obtiene
T

( 4.71 )

e J i ti f i f i = e (I n Ai Bi I m )ti f i f i = e Bi ti e Ai ti f i f i

= vec e Ai ti Fi e Bi ti Fi ,

siendo
Fi = mat mxn ( f i ) .
Teniendo en cuenta ( 4.67 ) y las igualdades ( 4.70 ) y ( 4.71 ), se tiene

vec(AiW f W f Bi ) = vec e Ai ti Fi e Bi ti Fi ,

por lo que W f se puede calcular resolviendo la ecuacin matricial de Sylvester ( 4.64),


AiW f W f Bi = e Ai t i Fi e Bi t i Fi .

De igual modo, si se definen


wi = F12( i ) gi y Wi = mat mxn ( wi ) ,
entonces la matriz Wi se puede calcular mediante la resolucin de la ecuacin matricial
de Sylvester ( 4.66 ),
AiWi Wi Bi = e Ai t i Gi e Bi t i Gi ,
siendo
Gi = mat mxn ( g i ) .
Realizando un desarrollo similar para la expresin ( 4.68 ), se tiene que si se definen
( 4.72 )

wg = F13(i ) g i y W g = mat mxn ( wg ) ,

entonces Wg se puede obtener resolviendo la ecuacin matricial de Sylvester ( 4.65 ),


( 4.73 )

AiW g W g Bi = Wi Gi t i .

Teniendo en cuenta las expresiones ( 4.43 ), ( 4.69 ) y ( 4.72 ), se tiene


Yi +1 = Yi + mat mxn ( F12( i ) f i ) + mat mxn ( F13( i ) g i ) = Yi + W f + Wg ,

con lo que queda demostrado el teorema.


Obsrvese que para calcular la matriz Yi +1 del teorema anterior es necesario resolver las
ecuaciones matriciales de Sylvester ( 4.64 ), ( 4.65 ) y ( 4.66 ) con las mismas matrices
coeficiente Ai y Bi . Teniendo en cuenta este hecho, se puede reducir el coste
computacional para calcular Yi +1 del modo que a continuacin se muestra.
Sean

169

Captulo 4: Linealizacin a Trozos

Ai = Qa Ai QaT ,
Bi = Qb Bi QbT ,
respectivamente, las descomposiciones reales de Schur de las matrices Ai y Bi , con Qa
y Qb matrices ortogonales, y Ai y Bi matrices casi triangulares superiores.
Sustituyendo las expresiones anteriores en la ecuacin ( 4.64 ), resulta
Qa Ai QaT W f W f Qb Bi QbT = Qa e Ai ti QaT Fi Qb e Bi ti QbT Fi ,
por lo que
Ai QaT W f Qb QaT W f Qb Bi = e Ai ti QaT Fi Qb e Bi ti QaT Fi Qb .
Llamando
X = QaT W f Qb ,

F = QaT Fi Qb ,
E a = e Ai ti ,
Eb = e Bi ti .

se obtiene la ecuacin casi triangular superior de Sylvester


( 4.74 )

Ai X XBi = E a FEb F .

Aplicando los mismos pasos a la ecuacin ( 4.66 ), se deduce que


Qa Ai QaT Wi Wi Qb Bi QbT = Qa e Ai ti QaT Gi Qb e Bi ti QbT Gi ,
Ai QaT Wi Qb QaT Wi Qb Bi = e A1ti QaT Gi Qb e Bi ti QaT Gi Qb ,

Ai Z ZBi = E a GEb G ,
siendo
Z = QaT Wi Qb ,
G = QaT Gi Qb ,
E a = e Ai ti ,
Eb = e Bi ti .

Por ltimo, la ecuacin matricial de Sylvester ( 4.65 ) queda como


Qa Ai QaT Wg Wg Qb Bi QbT = Wi Gi ti ,
Ai QaT Wg Qb QaT Wg Qb Bi = QaT Wi Qb QaT Gi Qb ti ,

( 4.75 )

AiY YBi = Z Gti ,

siendo

170

Captulo 4: Linealizacin a Trozos

Y = QaT Wg Qb ,

Z = QaT Wi Qb ,
G = QaT Gi Qb .
Por lo tanto
Yi +1 = Yi + W f + Wg = Yi + Qa XQbT + QaYQbT = Yi + Qa ( X + Y )QbT .

El siguiente algoritmo calcula la matriz Yi +1 de la expresin ( 4.63), segn el mtodo


descrito en los prrafos anteriores.
Yi +1 = dlabc3( A, B, F , G, Yi , t , c1 , c2 ) .
Entradas: Matriz A mxm , matriz B nxn , matriz F mxn , matriz G mxn ,
matriz Yi mxn , incremento de tiempo t , vectores c1 , c2 q que
contienen a los coeficientes de los trminos de grado mayor que cero de los
polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
Salida:

Matriz Yi +1 mxn (vase expresin ( 4.63)).

1
2
3
4

[Qa , A] = schur ( A) ( descomposicin real de Schur de la matriz A )


[Qb , B ] = schur ( B ) (descomposicin real de Schur de la matriz B )
Ea = dqtexppad ( At , c1 , c2 ) (modificacin del Algoritmo 2.1)
Eb = dqtexppad ( Bt , c1 , c2 ) (modificacin del Algoritmo 2.1)

5
6
7
8
9
10
11

F = QaT FQb ; F = Ea FEb F


F = dtrsyl ( A, B, F ) (Algoritmo 3.14)
G = QaT GQb ; W = G ; G = Ea GEb G
G = dtrsyl ( A, B, G ) (Algoritmo 3.14)
G = G Wt
G = dtrsyl ( A, B, G ) (Algoritmo 3.14)

Yi +1 = Yi + Qa (F + G )QbT

Algoritmo 4.22: Calcula la solucin aproximada en el instante t i +1 de una EDMR con


coeficientes variables mediante la ecuacin conmutante.
Notas:

La exponencial de una matriz casi triangular superior ( dqtexppad ) se puede


obtener mediante una modificacin del Algoritmo 2.1 para el caso de matrices
casi triangulares superiores. Para optimizar el cdigo anterior es necesario que las
operaciones con matrices se hagan de tal modo que se explote la estructura casi
triangular superior de las mismas. De este modo, el coste del clculo de la
exponencial de una matriz se puede reducir aproximadamente a la mitad, por lo
que el coste aproximado del algoritmo anterior es

27m 3 + 11m 2 n + 11nm 2 + 27n 3 +coste(Algoritmo 2.1) flops.

171

Captulo 4: Linealizacin a Trozos

Si las matrices A y B
Yi +1 = Yi + Ft + 0.5G (t ) 2 .

del algoritmo anterior son nulas, entonces

Si las matrices A y B del algoritmo anterior tienen algn valor propio muy
cercano, entonces sera conveniente utilizar el Algoritmo 4.20 o el Algoritmo 4.25
que se describe en el siguiente subapartado.
A continuacin se muestra el algoritmo completo que resuelve EDMRs mediante el
mtodo de linealizacin a trozos basado en la ecuacin conmutante.
Y = dgedmrlcv(t , data, datad , X 0 , q) .
Entradas: Vector de tiempos t l +1 , funcin data (t ) que calcula las matrices
coeficiente de la EDMR A11 (t ) nxn , A12 (t ) nxm , A21 (t ) mxn ,
A22 (t ) mxm , funcin datad (t ) que calcula las derivadas de las matrices
'
(t ) mxn ,
coeficiente de la EDMR A11' (t ) nxn , A12' (t ) nxm , A21
'
A22
(t ) mxm , matriz inicial X 0 mxn , grado q Z + de los polinomios
de la aproximacin diagonal de Pad.
Salida:

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


Y0 = X 0
Para i = 0 : l 1
3.1
[ A11 , A12 , A21 , A22 ] = data (t i )

1
2
3

3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11

A22 = A22 Yi A12


G = A21 + A22Yi
G = G Yi A11
[ A11 , A12 , A21 , A22 ] = datad (t i )
A22 = A22 Yi A12
F = A21 + A22Yi
F = F Yi A11
A11 = A11 + A12Yi
t = ti +1 ti
Yi +1 = dlabc3( A22 , A11 , F , G, Yi , t , c1 , c2 ) (Algoritmo 4.22)

Algoritmo 4.23: Resolucin de EDMRs con coeficientes variables mediante el mtodo


de linealizacin a trozos basado en la ecuacin conmutante.
El coste computacional aproximado por iteracin del algoritmo anterior es
8m 2 n + 6mn 2 +coste( data )+coste( datad )+coste(Algoritmo 4.22) flops.
4.3.1.3 Mtodo Basado en los Subespacios de Krylov

La matriz Yi +1 de la expresin ( 4.43 ), solucin aproximada en el instante t i +1 de la


EDMR ( 4.32 ), se puede expresar como
( 4.76 )

Yi +1 = Yi + mat mxn ( F12(i ) (t i ) f i + F13(i ) (t i ) g i ) = Yi + mat mxn (e Ci ti vi ) ,


172

Captulo 4: Linealizacin a Trozos

siendo
Ji
Ci = 0 mn
0 mn

I mn
0 mn
0 mn

0 mn
I mn
0 mn

y
0 mnx1
vi = f i .
g i

El coste de almacenamiento de la matriz Jacobiana J i (vase expresin ( 4.42 ) es


excesivamente alto, del orden de (mn) 2 nmeros en coma flotante. Teniendo en cuenta
que dicha matriz nicamente es necesaria para calcular el producto matriz por vector
que aparece en los algoritmos basados en los subespacios de Krylov, sera interesante
realizar dicho clculo sin la formacin explcita de la matriz Jacobiana, reduciendo de
esta forma el coste de almacenamiento. El algoritmo que se muestra a continuacin
calcula el producto J i vi , con vi mn , sin formar explcitamente la matriz Jacobiana.

w = dlapkv( A, B, v) .
Entradas: Matriz A mxm , matriz B nxn , vector v mn .
Salida:
1

Vector w = I n A B T I m v mn .

Para i = 1 : n
i1 = (i 1)m + 1
1.1
i2 = im
1.2
w(i1 : i2 ) = Av(i1 : i2 )
1.3
1.4
Para j = 1 : n
1.4.1 j1 = ( j 1)m + 1
1.4.2 j2 = jm
1.4.3 w(i1 : i2 ) = B( j , i )v( j1 : j2 ) + w(i1 : i2 )

Algoritmo 4.24: Clculo del producto de la matriz Jacobiana de una EDMR por un
vector.
El coste computacional aproximado del algoritmo anterior es 2m 2 n + 2mn 2 flops.
El siguiente algoritmo calcula la matriz Yi +1 de la expresin ( 4.76 ) mediante una
adaptacin a bloques del Algoritmo 4.9, minimizando con ello los costes
computacionales y de almacenamiento.

173

Captulo 4: Linealizacin a Trozos

Yi +1 = dlabk 3( A, B, F , G, Yi , t , p, tol , c1 , c2 ) .
Entradas: Matriz A mxm , matriz B nxn , matriz F mxn , matriz G mn ,
matriz Yi mn , incremento de tiempo t , dimensin p Z + del
subespacio de Krylov, tolerancia tol + , vectores c1 , c2 q que
contienen a los coeficientes de los trminos de grado mayor que cero de los
polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
Salida:
1
2
3
4
5
6

7
8

Matriz Yi +1 mxn de la expresin ( 4.76 ).

f = vec( F ) ; g = vec(G )
V (1 : mn,1) = 0 nm ; V (mn + 1 : 2mn,1) = f ; V (2mn + 1 : 3mn,1) = g
=|| V (:,1) ||2
Si = = 0 Salir del algoritmo
V (mn + 1 : 3mn) = V (mn + 1 : 3mn) /
Para j = 1 : p
w(1 : mn) = dlapkv( A, B, V (1 : mn, j )) (Algoritmo 4.24)
6.1
w(1 : mn) = w(1 : mn) + V (mn + 1 : 2mn, j )
6.2
w(mn + 1 : 2mn) = V (2mn + 1 : 3mn, j )
6.3
6.4 w(2mn + 1 : 3mn) = 0 nm ; w(1 : 2mn) = tw(1 : 2mn)
6.5
Para i = 1 : j
6.5.1 H (i, j ) = wT V (1 : 3mn, i ) ; w = w H (i, j )V (1 : 3mn, i )
s =|| w2 ||
6.6
6.7
Si s < tol
6.7.1 p = j
6.7.2 Salir del bucle
6.8
H ( j + 1, j ) = s
6.9
V (1 : 3mn, j + 1) = w / H ( j + 1, j )
H (1 : p,1 : p ) = dlaexp( H (1 : p,1 : p ), c1 ,c 2 ) (Algoritmo 4.3)
Yi +1 = Yi + mat mxn (V (1 : mn,1 : p) H (1 : p,1))

Algoritmo 4.25: Calcula la solucin aproximada en el instante t i +1 de una EDMR con


coeficientes variables mediante la modificacin a bloques del
Algoritmo 4.9.
El coste computacional aproximado del algoritmo anterior es
2m 2 np + 2mn 2 p + 6mnp( p + 1) +coste(Algoritmo 4.3) flops.
El algoritmo completo que resuelve EDMRs con coeficientes variables basado en los
subespacios de Krylov se muestra a continuacin.

174

Captulo 4: Linealizacin a Trozos

Y = dgedmrlkv(t , data, datad , X 0 , p, tol , q) .


Entradas: Vector de tiempos t l +1 , funcin data (t ) que calcula las matrices
coeficiente de la EDMR A11 (t ) nxn , A12 (t ) nxm , A21 (t ) mxn ,
A22 (t ) mxm , funcin datad (t ) que calcula las derivadas de las matrices
'
(t ) mxn ,
coeficiente de la EDMR A11' (t ) nxn , A12' (t ) nxm , A21
'
A22
(t ) mxm , matriz inicial X 0 mxn , dimensin p Z + del subespacio
de Krylov, tolerancia tol + , grado q Z + de los polinomios de la
aproximacin diagonal de Pad.
Salida:

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


Y0 = X 0
Para i = 0 : l 1
3.1
[ A11 , A12 , A21 , A22 ] = data (ti )

1
2
3

3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11

A22 = A22 Yi A12


G = A21 + A22Yi
G = G Yi A11
[ A11 , A12 , A21 , A22 ] = datad (ti )
A22 = A22 Yi A12
F = A21 + A22Yi
F = F Yi A11
A11 = A11 + A12Yi
t = ti +1 ti
Yi +1 = dlabk 3( A22 , A11 , F , G, Yi , t , p, tol , c1 , c2 )

Algoritmo 4.26: Resolucin de EDMRs con coeficientes variables mediante el mtodo


de linealizacin a trozos basado en los subespacios de Krylov.
El coste computacional aproximado por iteracin del algoritmo anterior es
8m 2 n + 6mn 2 +coste( data )+coste( datad )+coste(Algoritmo 4.25) flops.

4.3.2 Resolucin de EDMRs con Coeficientes Constantes


Sea la EDMR con coeficientes constantes
( 4.77 )

X ' (t ) = A21 + A22 X (t ) X (t ) A11 X (t ) A12 X (t ), t0 t t f ,


X (t 0 ) = X 0 mxn ,

siendo A11 R nxn , A12 R nxm , A21 R mxn , A22 R mxm .


Aplicando la funcin vec a la EDMR ( 4.77 ), se obtiene la EDO autnoma
( 4.78 )

x' (t ) = f ( x(t )) , x0 = vec( X 0 ) , x = x(t ) ,

siendo

175

Captulo 4: Linealizacin a Trozos

f ( x) = vec( A21 + A22 X XA11 XA12 X ) ,

( 4.79 )

o bien, utilizando la Propiedad 6.7 y la Propiedad 6.8 del producto de Kronecker,


f ( x) = vec( A21 ) + [ I n A22 A11T I m ]x [ I n ( XA12 )]x

( 4.80 )
o bien

f ( x) = vec( A21 ) + [ I n A22 A11T I m ]x [( A12 X ) T I m ]x .

( 4.81 )

Como se cumplen las hiptesis del Teorema 2.10 (pgina 56), considerando la particin
t 0 < t1 < L < t l 1 < t l = t f y aplicando la linealizacin a trozos, se obtiene el conjunto de
EDLs resultantes de la aproximacin lineal de f (t , x) en cada subintervalo,
( 4.82 )

y ' (t ) = f i + J i ( y (t ) yi ) , t [t i , t i +1 ] , y (t i ) = yi , i = 0,1,L, l 1 .

siendo
( 4.83 )
( 4.84 )

f i = vec( A21 + A22Yi Yi A11 Yi A12Yi ) ,


Ji =

f
( yi ) = I n Ai BiT I m ,
x

donde
( 4.85 )

Ai = A22 Yi A12 , Bi = A11 + A12Yi .

Aplicando el Teorema 4.2, se tiene que la solucin de la EDL ( 4.82 ) es


( 4.86 )

y (t ) = yi + F12(i ) (t ti ) f i ,

siendo F12( i ) el bloque (1,2) de la matriz eCi , donde


( 4.87 )

J
Ci = i
0 mn

I mn
.
0 mn

En particular,
( 4.88 )

yi +1 = yi + F12( i ) (t i ) f i ,

siendo ti = ti +1 ti .
Por lo tanto, la solucin aproximada en el instante t i +1 de la EDMR ( 4.77 ) en el
instante ti +1 se puede expresar como
( 4.89 )

Yi +1 = Yi + mat mxn ( F12( i ) (t ) vec( F )) .

A continuacin se presenta un algoritmo, basado en la linealizacin a trozos, que


resuelve EDMRs con coeficientes constantes.

176

Captulo 4: Linealizacin a Trozos

Y = dgedmrlgc(t , data, X 0 ) .
Entradas: Vector de tiempos t l +1 , funcin data que obtiene las matrices
coeficiente de la EDMR A11 nxn , A12 nxm , A21 mxn , A22 mxm ,
matriz inicial X 0 mxn .
Salida:

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

[ A11 , A12 , A21 , A22 ] = data ()


Y0 = X 0
Para i = 0 : l 1
3.1
A22 = A22 Yi A12

1
2
3

3.2
3.3
4.4
3.5

F = A21 + A22Yi
F = F Yi A11
A11 = A11 + A12Yi
t = ti +1 ti

3.6

Yi +1 = Yi + mat mxn ( F12( i ) (t ) vec( F )) (expresin ( 4.89 ))

Algoritmo 4.27: Resolucin de EDMRs con coeficientes constantes mediante la


linealizacin a trozos.
4.3.2.1 Mtodo Basado en los Aproximantes Diagonales de Pad

Una forma de calcular la matriz Yi +1 de la expresin ( 4.89 ) se basa en el teorema que se


presenta a continuacin.
Teorema 4.5.

La matriz Yi +1 que aparece en la expresin ( 4.89 ), solucin aproximada en el instante


t i +1 de la EDMR con coeficientes constantes ( 4.77 ), se puede calcular utilizando la
expresin
( 4.90 )

Yi +1 = Yi + F12(i ) (t i )[ F22( i ) (t i )]1 ,

donde F12(i ) (ti ) y F22(i ) (ti ) son, respectivamente, los bloques (1,2) y (2,2) de la matriz

e Ci ti , con
( 4.91 )

A
Ci = i
0 nxm

Fi
,
Bi

siendo
Fi = A21 + A22Yi Yi A11 Yi A12Yi ,
Ai = A22 Yi A12 ,
Bi = A11 + A12Yi .
Demostracin.

Al aplicar la linealizacin a trozos a la EDMR ( 4.77 ) se obtiene en [t i , t i +1 ] la EDL

177

Captulo 4: Linealizacin a Trozos

y ' (t ) = f i + J i ( y (t ) y i ) , y (t i ) = yi
que tiene como solucin analtica
t

y (t ) = yi + e J i ( t ) f i d .

( 4.92 )

ti

Si se realiza el cambio de variable


s = ti
y se define

= t ti ,
entonces
ds = d ,

t = t s ti = s ,
por lo que, aplicando el Lema 4.1, se tiene que la expresin ( 4.92 ) queda como
t

y (t ) = y i + e

J i ( t )

= y i + e Bi

d f i = y i + e

J i ( s )

ti

( s )

f i ds = y i + e ( I n Ai Bi

I m )( s )

f i ds

e Ai ( s ) f i ds.

Por tanto, si se define Fi = mat mxn ( f i ) , entonces, segn la Propiedad 6.8,

( 4.93 )

Y (t ) = Yi + e Ai ( s ) Fi e Bi ( s ) ds
0

es la solucin aproximada de la EDMR ( 4.77 ) en el intervalo [t i , t i +1 ] .


Para calcular la integral que aparece en la expresin ( 4.93 ), se considera la matriz
triangular superior a bloques definida en ( 4.91 ),
A
Ci = i
0 mxn

Fi
,
Bi

y la exponencial de la matriz Ci ,
F ( i ) ( ) F12( i ) ( )
e Ci = 11
.
F22( i ) ( )
0 nxm

Derivando respecto de en ambos miembros de la igualdad anterior, se tiene que


de Ci
= Ce Ci ,
d
por lo que

178

Captulo 4: Linealizacin a Trozos

( 4.94 )

dF11( i ) ( )

d
0
nxm

dF12(i ) ( )

d = Ai
dF22(i ) ( ) 0 nxm
d

Fi F11( i ) ( ) F12( i ) ( )

Bi 0 nxm
F22( i ) ( )

A F ( i ) ( )
= i 11
0 nxm

Ai F12( i ) ( ) + Fi F22( i ) ( )
.
Bi F22(i ) ( )

Igualando los bloques (1,1), (1,2) y (2,2) de ambos miembros de la ecuacin anterior y
teniendo en cuenta que
e C

=0

= I m+ n ,

se obtienen las siguientes EDMLs con valores iniciales:


( 4.95 )

dF11(i ) ( )
= Ai F11( i ) ( ) , F11( i ) (0) = I m ,
d

( 4.96 )

dF22(i ) ( )
= Bi F22( i ) ( ) , F22( i ) (0) = I n ,
d

( 4.97 )

dF12(i ) ( )
= Ai F12(i ) ( ) + Fi F22( i ) ( ) , F12( i ) (0) = 0 mxn .
d

Resolviendo en primer lugar las EDMLs( 4.95 ) y ( 4.96 ), se tiene que


F11( i ) ( ) = e Ai ,
F22( i ) ( ) = e Bi .

( 4.98 )

Sustituyendo F22( i ) ( ) = e Bi en ( 4.97 ), se obtiene la EDML


dF12(i ) ( )
= Ai F12( i ) ( ) + Fi e Bi , F12( i ) (0) = 0 mxn ,
d
por lo tanto,
(i)
12

( 4.99 )

( ) =

Ai ( s )

Fi e Bi s ds .

Teniendo en cuenta las expresiones ( 4.93 ), ( 4.98 ) y ( 4.99 ), se tiene que

Y (t ) = Yi + e Ai ( s ) Fi e Bi ( s ) ds = Yi + e Ai ( s ) Fi e Bi s dse Bi = Yi + F12( i ) ( ) F22(i ) ( ) .

Por ltimo, si en la anterior expresin se sustituye t por t i +1 , resulta


( 4.100 )

Yi +1 = Yi + F12( i ) (ti ) F22(i ) (ti )

siendo t i = t i +1 t i , con lo que queda demostrado el teorema.


El siguiente algoritmo calcula la matriz Yi +1 de la expresin ( 4.90 ), utilizando una
adaptacin a bloques del Algoritmo 4.3.

179

Captulo 4: Linealizacin a Trozos

Yi +1 = dlabp 2( A, B, F , Yi , t , c1 , c2 ) .
Entradas: Matriz A mxm , matriz B nxn , matriz F mxn , matriz Yi mxn ,
incremento de tiempo t , vectores c1 , c2 q que contienen a los
coeficientes de los trminos de grado mayor que cero de los polinomios de
la aproximacin diagonal de Pad de la funcin exponencial.
Salida:

Matriz Yi +1 mxn de la expresin ( 4.100 ).

nor = [ A F ]

j = max(0,1 + int(log 2 (nor )))


t
s= j
2
A = sA ; B = sB ; F = sF
X 11 = A ; X 12 = F ; X 22 = B
N11 = I m + c1 (1) X 11 ; N12 = c1 (1) X 12 ; N 22 = I n + c1 (1) X 22

3
4
5
6
7
8

; nor = t max nor , [ B I n ]

D11 = I m + c2 (1) X 11 ; D12 = c2 (1) X 12 ; D22 = I n + c2 (1) X 22


Para k = 2 : q
X 12 = AX 12 + FX 22 ; X 11 = AX 11 ; X 22 = BX 22
8.1
8.2 N11 = N11 + c1 (k ) X 11 ; N12 = N12 + c1 (k ) X 12 ; N 22 = N 22 + c1 (k ) X 22
8.3 D11 = D11 + c2 (k ) X 11 ; D12 = D12 + c2 (k ) X 12 ; D22 = D22 + c2 (k ) X 22
9 Calcular X 11 resolviendo la ecuacin D11 X 11 = N11
10 Calcular X 22 resolviendo la ecuacin D22 X 22 = N 22
11 Calcular X 12 resolviendo la ecuacin D11 X 12 = N12 D12 X 22
12 Para k = 1 : j
12.1 X 12 = X 11 X 12 + X 12 X 22
2

12.2 X 11 = X 11 ; X 22 = X 22
13 Calcular Yi +1 resolviendo la ecuacin X 22Yi +1 = X 12
14 Yi +1 = Yi +1 + Yi
Algoritmo 4.28: Calcula la solucin aproximada en el instante t i +1 de una EDMR con
coeficientes constantes mediante la modificacin a bloques del
Algoritmo 4.3.
El coste computacional aproximado en flops del algoritmo anterior es
( 4.101 )

4
2
(2m 3 + 2m 2 n + 2mn 2 + 2n 3 )(q + j ) + m 3 2m 2 n + 2mn 2 + n 3 flops.
3
3

El siguiente algoritmo resuelve EDMRs con coeficientes constantes mediante el mtodo


de linealizacin a trozos con aproximantes diagonales de Pad.

180

Captulo 4: Linealizacin a Trozos

Y = dgedmrlpc(t , data, X 0 , q ) .
Entradas: Instantes de tiempo t i ( 0 i l ), funcin data que obtiene las matrices
coeficiente de la EDMR A11 nxn , A12 nxm , A21 mxn , A22 mxm ,
matriz inicial X 0 mxn , grado q Z + de los polinomios de la
aproximacin diagonal de Pad de la funcin exponencial.
Salida:
1
2
3
4

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


[ A11 , A12 , A21 , A22 ] = data ()
Y0 = X 0
Para i = 0 : l 1
4.1
A22 = A22 Yi A12

4.2
4.3
4.4
4.5
4.6

F = A21 + A22Yi
F = F Yi A11
A11 = A11 + A12Yi
t = ti +1 ti
Yi +1 = dlabp 2( A22 , A11 , F , Yi , t , c1 , c2 ) (Algoritmo 4.28)

Algoritmo 4.29: Resolucin de EDMRs con coeficientes constantes mediante el mtodo


de linealizacin a trozos basado en los aproximantes diagonales de
Pad.
El coste en flops por iteracin es

4m 2 n + 4mn 2 +coste(Algoritmo 4.28) flops.


4.3.2.2 Mtodo Basado en la Ecuacin Conmutante

El mtodo que se describe en este subapartado es consecuencia del siguiente teorema,


cuya demostracin est basada en la ecuacin conmutante.
Teorema 4.6.

Si las matrices Ai y Bi que aparecen en ( 4.85 ) no tienen valores propios en comn,


entonces la matriz Yi +1 que aparece en la expresin ( 4.89 ), solucin aproximada en el
instante t i +1 de la EDMR con coeficientes ( 4.77 ), se puede calcular como
( 4.102 )

Yi +1 = Yi + Wi ,

siendo Wi la solucin de la ecuacin matricial de Sylvester


( 4.103 )

AiWi Wi Bi = e Ai t i Fi e Bi t i Fi .

Demostracin.

Segn la Propiedad 2.1, la matriz Ci de la expresin ( 4.87 ) conmuta con la matriz

eCi t i , por lo que

181

Captulo 4: Linealizacin a Trozos

Ji
0
mn

I mn e J i ti

0 mn 0 mn

F12( i ) e J i ti
=
I mn 0 mn

F12( i ) J i

I mn 0 mn

I mn
,
0 mn

en donde se ha simplificado la notacin escribiendo F12( i ) en lugar de F12(i ) (ti ) .


Igualando los bloques (1,2) de los dos miembros de la ecuacin anterior, se tiene que
J i F12( i ) + I mn = e J i ti ,
con lo que
J i F12( i ) = e J i ti I mn ,
o bien
J i F12( i ) f i = e J i t i f i f i .

( 4.104 )

Desarrollando el miembro izquierdo de la ecuacin ( 4.104 ), y teniendo en cuenta la


Propiedad 6.8, se tiene que
( 4.105 )

J i F12( i ) f i = J i wi = I n Ai BiT I m wi = vec( AiWi Wi Bi ) ,

siendo
Wi = mat mxn ( wi ) .
Desarrollando el miembro derecho de la ecuacin ( 4.104 ), y tendiendo en cuenta el
Lema 4.1 y la Propiedad 6.8, se tiene que
e J i ti f i f i = e (I n Ai Bi I m )ti f i f i
T

( 4.106 )

= e Bi ti e Ai ti f i f i = vec e Ati Fi e Bti Fi ,


T

siendo
Fi = mat mxn ( f i ) .
A partir de ( 4.104 ) y teniendo en cuenta las expresiones ( 4.105 ) y ( 4.106 ), se tiene

vec( AiWi Wi Bi ) = vec e Ai ti Fi e Bi ti Fi ,


por lo que Wi se obtiene resolviendo la ecuacin matricial de Sylvester ( 4.103),
AiWi Wi Bi = e Ai t i Fi e Bi t i Fi ,
con lo que queda demostrado el teorema.
La ecuacin matricial de Sylvester ( 4.103) se puede resolver como a continuacin se
muestra. Sean
Ai = Qa Ai QaT ,
Bi = Qb Bi QbT ,
respectivamente, las descomposiciones reales de Schur de las matrices Ai y Bi , con Qa
y Qb matrices ortogonales, y Ai y Bi matrices casi triangulares superiores.
Sustituyendo las expresiones anteriores en la ecuacin ( 4.103 ), se tiene que

182

Captulo 4: Linealizacin a Trozos

Qa AiQaTWi WiQb BiQbT = Qa e Ai t i QaT FiQb e Bi t i QbT Fi ,

y multiplicando la ecuacin anterior a la izquierda por QaT y a la derecha Qb , se tiene


AiQaTWiQb QaTWiQb Bi = e Ai t i QaT FiQb e Bi t i QaT FiQb .

Llamando
C = e Ai t i QaT FiQb e Bi t i QaT FiQb ,

W1 = QaTWiQb ,
se obtiene la ecuacin casi triangular de Sylvester
AiW1 W1Bi = C ,
con lo que Wi se puede obtener resolviendo la ecuacin anterior mediante el Algoritmo
3.14, y calculando
Wi = QaW1QbT .
El siguiente algoritmo calcula la matriz Yi +1 de la expresin ( 4.102 ), segn el mtodo
descrito en los prrafos anteriores.
Yi +1 = dlabc 2( A, B, F , Yi , t , c1 , c2 ) .
Entradas: Matriz A mxm , matriz B nxn , matriz F mxn , matriz Yi mxn ,
incremento de tiempo t , vectores c1 , c2 q que contienen a los
coeficientes de los trminos de grado mayor que cero de los polinomios de
la aproximacin diagonal de Pad de la funcin exponencial.
Salida:

Matriz Yi +1 mxn (vase expresin ( 4.102 )).

1
2
3
4

[Qa , A] = schur ( A) ( descomposicin real de Schur de la matriz A )


[Qb , B ] = schur ( B ) ( descomposicin real de Schur de la matriz B )
Ea = dqtexppad ( At , c1 , c2 ) (modificacin del Algoritmo 2.1)
Eb = dqtexppad ( Bt , c1 , c2 ) (modificacin del Algoritmo 2.1)

5
6
7
8

F = QaT FQb
F = Ea FEb F
F = dtrsyl ( A, B, F ) (Algoritmo 3.14)
Yi +1 = Yi + Qa FQbT

Algoritmo 4.30: Calcula la solucin aproximada en el instante t i +1 de una EDMR con


coeficientes constantes mediante la ecuacin conmutante.
Notas:

La exponencial de una matriz casi triangular superior ( dqtexppad ) se puede


obtener mediante una modificacin del Algoritmo 2.1 para el caso de matrices
casi triangulares superiores. El coste aproximado del algoritmo anterior es

29m 3 + 2m 2 n + 6mn 2 + 25n 3 +coste(Algoritmo 2.1) flops.


183

Captulo 4: Linealizacin a Trozos

Si las matrices A y B del algoritmo anterior son nulas, entonces Yi +1 = Yi + Ft .


Si las matrices A y B del algoritmo anterior tienen algn valor propio muy
cercano, entonces sera conveniente utilizar el Algoritmo 4.28 o el Algoritmo 4.32
que se describe en el siguiente subapartado.
Y = dgedmrlcc(t , data, X 0 , q) .
Entradas: Instantes de tiempo t i ( 0 i l ), funcin data que obtiene las matrices
coeficiente de la EDMR A11 nxn , A12 nxm , A21 mxn , A22 mxm ,
matriz inicial X 0 mxn , grado q Z + de los polinomios de la
aproximacin diagonal de Pad de la funcin exponencial.
Salida:
1
2
3
4

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


[ A11 , A12 , A21 , A22 ] = data ()
Y0 = X 0
Para i = 0 : l 1
4.1
A22 = A22 Yi A12

4.2
4.3
4.4
4.5
4.6

F = A21 + A22Yi
F = F Yi A11
A11 = A11 + A12Yi
t = ti +1 ti
Yi +1 = dlabc 2( A22 , A11 , F , Yi , t , c1 , c2 ) (Algoritmo 4.30)

Algoritmo 4.31: Resolucin de EDMRs con coeficientes constantes mediante el mtodo


de linealizacin a trozos basado en la ecuacin conmutante.
El coste aproximado por iteracin del algoritmo anterior es
4m 2 n + 4mn 2 +coste(Algoritmo 4.30) flops.
4.3.2.3 Mtodo Basado en los Subespacios de Krylov

La matriz Yi +1 de la expresin ( 4.89 ), solucin aproximada en el instante t i +1 de la


EDMR ( 4.77 ), se puede expresar como
( 4.107 )

Yi +1 = Yi + mat mxn ( F12( i ) (t ) vec( F )) = Yi + mat mxn (e Ci ti vi ) ,

siendo
J
Ci = i
0 mn

I mn
0 mn

y
0
vi = mnx1 .
fi

184

Captulo 4: Linealizacin a Trozos

El siguiente algoritmo calcula la matriz Yi +1 de la expresin ( 4.107 ) mediante una


adaptacin a bloques del Algoritmo 4.9, minimizando con ello los costes
computacionales y de almacenamiento.
Yi +1 = dlabk 2( A, B, F , Yi , t , p, tol , c1 , c2 ) .
Entradas: Matriz A mxm , matriz B nxn , matriz F mxn , matriz Yi mxn ,
incremento de tiempo t , dimensin p Z + de los subespacios de
Krylov, tolerancia tol + , vectores c1 , c2 q que contienen a los
coeficientes de los trminos de grado mayor que cero de los polinomios de
la aproximacin diagonal de Pad de la funcin exponencial.
Salida:
1
2
3
4
5
6

7
8

Matriz Yi +1 mxn de la expresin ( 4.107 ).

f = vec( F )
=|| f ||2
Si = = 0
3.1
Salir del algoritmo.
H (1,1) = 0 ; H (2,1) = t
V (:,1) = 0 mn ; V (:,2) = f / ; A = At ; B = Bt
Para j = 2 : p
w = dlapkv( A, B, V (:, j )) (Algoritmo 4.24)
6.1
H (i, j ) = 0
6.2
6.3
Para i = 2 : j
6.3.1 H (i, j ) = wT V (:, i )
6.3.2 w = w H (i, j )V (:, i )
s =|| w ||2
6.4
6.5
Si s < tol
6.5.1 p = j
6.5.2 Salir del bucle
6.6
H ( j + 1, j ) = s
V (:, j + 1) = w / s
6.7
H (1 : p,1 : p ) = dlaexp( H (1 : p,1 : p ), c1 ,c 2 ) (Algoritmo 4.3)
Yi +1 = Yi + mat mxn (V (:,1 : p) H (1 : p,1))

Algoritmo 4.32: Calcula la solucin aproximada en el instante t i +1 de una EDMR con


coeficientes constantes mediante la modificacin a bloques del
Algoritmo 4.9.
El coste computacional aproximado en flops del algoritmo anterior es
2mn 2 p + 2n 2 mp + 2mnp( p + 1) +coste(Algoritmo 2.1) flops.
Por ltimo, se presenta el algoritmo que resuelve EDMRs con coeficientes constantes
mediante el mtodo de linealizacin a trozos basado en los subespacios de Krylov.

185

Captulo 4: Linealizacin a Trozos

Y = dgedmrlkc(t , data, X 0 , p, tol , q) .


Entradas: Vector de tiempos t l +1 , funcin data que obtiene las matrices
coeficiente de la EDMR A11 nxn , A12 nxm , A21 mxn , A22 mxm ,
matriz inicial X 0 mxn , dimensin p Z + del subespacio de Krylov,
tolerancia tol + , grado q Z + de los polinomios de la aproximacin
diagonal de Pad.
Salida:
1
2
3
4

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

[c1 , c2 ] = dlapex(q ) (Algoritmo 4.2)


[ A11 , A12 , A21 , A22 ] = data ()
Y0 = X 0
Para i = 0 : l 1
4.1
A = A22 Yi A12

4.2
4.3
4.4
4.5
4.6

F = A21 + AYi
F = F Yi A11
B = A11 + A12Yi
t = ti +1 ti
Yi +1 = dlabk 2( A, B, F , Yi , t , p, tol , c1 , c2 ) (Algoritmo 4.32)

Algoritmo 4.33: Resolucin de EDMRs con coeficientes constantes mediante el mtodo


de linealizacin a trozos basado en los subespacios de Krylov.
El coste aproximado por iteracin del algoritmo anterior es
4m 2 n + 4mn 2 +coste(Algoritmo 4.32) flops.

4.4 Conclusiones
En este capitulo se han desarrollado nuevos mtodos y algoritmos que resuelven EDOs
y EDMRs basados en la tcnica de linealizacin a trozos.
Para la resolucin de EDOs se han desarrollado tres mtodos basados en la linealizacin
a trozos comentada en el apartado 2.3.4. En dos de los mtodos desarrollados no es
necesario que la matriz Jacobiana sea invertible. Estos mtodos se basan en el Teorema
4.1 que permite obtener la solucin aproximada de la EDO en cada subintervalo
mediante el clculo de la exponencial de la matriz definida a bloques que aparece en
dicho teorema. El primero de ellos est basado en los aproximantes diagonales de Pad
y el segundo en los subespacios de Krylov. Para cada uno de ellos se ha diseado un
algoritmo que permite resolver eficientemente, en trminos de almacenamiento y coste,
EDOs. A partir del Teorema 4.1 tambin se ha presentado otro mtodo, basado en la
Ecuacin Conmutante, que es formalmente equivalente al clculo de la solucin
analtica en cada subintervalo, pero realizando dicho clculo de manera que se reduce su
coste computacional. En este mtodo es necesario que la matriz Jacobiana sea
invertible.
Para la resolucin de EDMRs se ha desarrollado una nueva metodologa basada en la
tcnica de linealizacin a trozos. Esta metodologa consiste, bsicamente, en
transformar la EDMR en una EDO y aplicar a esta ecuacin la tcnica de linealizacin a

186

Captulo 4: Linealizacin a Trozos

trozos de EDOs. Puesto que la EDL as obtenida es de gran dimensin, se hace


necesaria la aplicacin de mtodos especiales para su resolucin.
El primer mtodo est basado en el Teorema 4.3 que permite transformar el problema
vectorial de gran dimensin en uno de tipo matricial. Este teorema muestra la manera de
calcular la aproximacin de la solucin en un cierto instante, a partir de la aproximacin
en el instante anterior, mediante el clculo de las dos exponenciales de matrices
definidas a bloques que aparecen en dicho teorema. Por lo tanto, ha sido necesario
desarrollar un algoritmo que calculase, de manera eficiente, dicha aproximacin,
realizando para ello una modificacin del mtodo de los aproximantes diagonales de
Pad para el clculo simultneo de ciertos bloques de las exponenciales de las dos
matrices mencionadas anteriormente.
El segundo mtodo consiste en aplicar la Ecuacin Conmutante a la matriz que aparece
al aplicar el Teorema 4.1 tras el proceso de vectorizacin. Al aplicar la citada ecuacin,
se demuestra que, para poder determinar la solucin aproximada en un instante de
tiempo, es necesario resolver ecuaciones del tipo Sylvester; de este modo, se ha
trasformado un problema vectorial de gran dimensin a otro de tipo matricial.
Correspondientemente, se ha desarrollado un algoritmo que permite calcular
eficientemente la solucin en un cierto instante mediante la resolucin de tres
ecuaciones matriciales de Sylvester, reduciendo las matrices coeficiente de estas
ecuaciones matriciales a la forma real de Schur y aplicando, a continuacin, una
adaptacin del mtodo de Bartels-Stewart.
El tercer y ltimo mtodo calcula el producto de la exponencial de una matriz definida a
bloques, obtenida en el proceso de vectorizacin, por un vector, aplicando para ello una
adaptacin a bloques del mtodo de proyeccin basado en los subespacios de Krylov.
Tanto para EDOs autnomas como para EDMRs con coeficientes constantes ha sido
necesario adaptar, convenientemente, los anteriores algoritmos, optimizando con ello
los costes computacionales y de almacenamiento.
El coste computacional de los mtodos desarrollados (tanto para la resolucin de EDOs
como para la resolucin de EDMRs) y la precisin de los mismos dependen de ciertos
parmetros caractersticos que a continuacin se citan.
Mtodos basados en los aproximantes diagonales de Pad: grado de los
polinomios de la aproximacin diagonal de Pad.
Mtodos basados en Ecuacin Conmutante: grado de los polinomios de la
aproximacin diagonal de Pad.
Mtodos basados en los subespacios de Krylov: dimensin de los subespacios de
Krylov, grado de los polinomios de la aproximacin diagonal de Pad y la
tolerancia.
Como los valores ptimos de los citados parmetros dependen del problema
considerado, es difcil pronosticar, a priori, cul es el mejor mtodo y cules son los
valores ptimos de sus parmetros caractersticos.
Otro aspecto de inters, nada trivial, es que es posible disear una rutina/funcin
inteligente capaz de elegir, en funcin del problema, el mejor de los tres mtodos
desarrollados incluidos los valores adecuados de sus parmetros caractersticos. Esto es
posible ya que los algoritmos desarrollados tienen la misma estructura, cosa obvia pues
parten de una misma metodologa, diferencindose nicamente en la manera de calcular
la correspondiente aproximacin en un cierto instante.
187

Captulo 4: Linealizacin a Trozos

Por todo ello, es necesario establecer y realizar una serie de pruebas que permitan dar
respuesta a varias de las cuestiones surgidas con estos nuevos mtodos.

188

Captulo 5: Resultados Experimentales

Captulo 5 Resultados Experimentales

5.1 Resumen de Contenidos


En este captulo se presentan los resultados experimentales obtenidos en la
resolucin de diferentes problemas de test con los algoritmos descritos en el Captulo
3 y en el Captulo 4. Las implementaciones de los algoritmos se han realizado
tanto en MATLAB como en FORTRAN.
Las implementaciones en MATLAB se han realizado sobre un ordenador porttil
Toshiba con procesador Intel Movile a 2Ghz y 512 Mb de memoria. En las pruebas
realizadas se han utilizado la versin 7, por poseer potentes herramientas de depuracin
de cdigo, y la versin 5.3, por disponer de una funcin que permite calcular el nmero
de flops de los cdigos escritos en MATLAB. Las implementaciones en FORTRAN se
han realizado sobre un nodo de un SGI Altix 3700 [SGIAltix], utilizando la versin 8.1
del compilador FORTRAN de Intel y la versin 1.5.1 de la librera SCSL para las
llamadas a BLAS y LAPACK, todo ello incluido en el software de esa mquina.
Para cada tipo de prueba se han elegido ejemplos caractersticos que permitiesen
determinar, por una parte, la precisin de los algoritmos implementados y, por otra,
determinar la eficiencia de los mismos. Hay que destacar tanto la gran cantidad de
pruebas realizadas como la amplia gama de las mismas. Por ejemplo, se han analizado
casos de estudio en los que la solucin analtica es conocida y as probar la precisin de
los algoritmos implementados. Se han seleccionado tambin problemas con altos costes
computacionales eligiendo para ello problemas de gran dimensin. En el caso de la
resolucin de EDOs y EDMRs se han utilizado casos de estudio que corresponden a
problemas de tipo rgido y no rgido, comparndolos con mtodos establecidos y muy
usados como los basados en el mtodo BDF. Adems, para cada prueba realizada se han
determinado los valores ptimos, en cuanto a precisin y eficiencia, de los parmetros
caractersticos de cada una de las implementaciones de manera que la comparacin
reflejase, lo ms fielmente posible, el comportamiento de cada uno de los algoritmos
implementados.
El contenido de este captulo est estructurado en seis secciones. En la segunda seccin
se comparan las diferentes implementaciones realizadas en FORTRAN para el clculo
de Funciones de Matrices. En la tercera seccin se analizan los resultados obtenidos en
la simulacin de la propagacin de ondas en fibras de cristal fotnico. En las secciones
cuarta y quinta se comparan las prestaciones obtenidas por las funciones y rutinas que
resuelven EDOs y EDMRs, tanto a nivel de costes en flops, utilizando MATLAB, como
de tiempos de ejecucin, utilizando las implementaciones en FORTRAN. En la sexta
seccin se resumen los resultados ms destacados de las pruebas realizadas.
La nomenclatura utilizada para las funciones implementadas en MATLAB y las rutinas
implementadas en FORTRAN estn descritas en las secciones 1.1, 3.1 y 4.1.

189

Captulo 5: Resultados Experimentales

5.2 Clculo de Funciones de Matrices


En esta seccin se presentan los resultados correspondientes a las implementaciones en
MATLAB y FORTRAN de los algoritmos que calculan funciones de matrices.
Sea A nxn y f una funcin matricial. Si B nxn es la matriz obtenida al utilizar un
algoritmo que calcula f ( A) , se define el error relativo asociado a la 1-norma como
Er =

|| f ( A) B ||1
.
|| f ( A) ||1

En la mayora de las ocasiones no es posible determinar dicho error puesto que f ( A)


no es conocida. Por ello, en lugar de obtener dicho error, se considerar el error relativo
cometido en la ecuacin conmutante
Ec =

|| AB BA ||1
.
|| AB) ||1

Este error, como se pone de manifiesto en los resultados obtenidos, guarda una relacin
cercana con el error relativo Er .

5.2.1 Funciones Polinmicas y Racionales


En este apartado se muestran los resultados correspondientes a las implementaciones de
en MATLAB y FORTRAN correspondientes a los algoritmos del Captulo 3 que
calculan funciones polinmicas y racionales de matrices. Para estas implementaciones
se han utilizado los mtodos de Horner y Paterson-Stockmeyer-Van Loan. En el caso de
las funciones racionales aparece un sistema lineal q( A) X = p( A) (siendo p y q los
polinomios que definen la funcin racional), que se resuelve utilizando la
descomposicin LU con pivotamiento parcial de filas o la descomposicin QR. Las
rutinas que se van analizar son:

dgefpohor: Calcula B = p ( A) con p polinomio y A nxn mediante el mtodo de


Horner.

dgefpopsv: Calcula B = p ( A) con p polinomio y A nxn mediante el mtodo de


Paterson-Stockmeyer-Van Loan.

dgefrahlu: Calcula p ( A) / q ( A) con p y q polinomios y A nxn mediante el


mtodo de Horner, utilizando la descomposicin LU con pivotamiento parcial de
filas para la resolucin del sistema de ecuaciones lineales q( A) X = p( A) .

dgefrahqr: Calcula p ( A) / q( A) con p y q polinomios y A nxn mediante el


mtodo de Horner, utilizando la descomposicin QR para la resolucin del sistema
de ecuaciones lineales q( A) X = p( A) .

dgefraplu: Calcula p ( A) / q ( A) con p y q polinomios y A nxn mediante el


mtodo de Paterson-Stockmeyer-Van Loan, utilizando la descomposicin LU con
pivotamiento parcial de filas para la resolucin del sistema de ecuaciones lineales
q( A) X = p( A) .

190

Captulo 5: Resultados Experimentales

dgefrapqr: Calcula p ( A) / q( A) con p y q polinomios y A nxn mediante el


mtodo de Paterson-Stockmeyer-Van Loan, utilizando la descomposicin QR para
la resolucin del sistema de ecuaciones lineales q( A) X = p( A) .

Puesto que el coste computacional y de almacenamiento en los algoritmos basados en el


mtodo de Paterson-Stockmeyer-Van Loan dependen del factor de agrupamiento s y del
grado de los polinomios de la aproximacin diagonal de Pad, se ha considerado
conveniente variar esos valores y de este modo comprobar experimentalmente cules
son sus valores ptimos en funcin del tamao de la matriz.
5.2.1.1

Resultados Funciones Polinmicas

En las pruebas realizadas se ha variado el grado g de los polinomios entre 5 y 14, el


factor de agrupamiento s entre 2 y 8, y la dimensin de la matriz n entre 100 y 1000 en
pasos de 100. Adems, los coeficientes de la matriz y del polinomio se han generado
aleatoriamente en el intervalo [-1,1].
Debido a la gran cantidad de resultados obtenidos nicamente se muestran los tiempos
de ejecucin correspondientes a matrices aleatorias de dimensiones 500 y 1000. Las
precisiones obtenidas en todos los casos para la ecuacin conmutante han sido del orden
de 10 14 . En la siguiente tabla se presentan los tiempos de ejecucin de las rutinas
dgefpohor y dgefpopsv.
Te

g=5

g=6

g=7

g=8

g=9

dgefpohor

0.508 0.508 0.51

0.51

0.513

dgefpopsv s=2 0.444 0.444 0.447 0.449 0.449


dgefpopsv s=3 0.378 0.38

0.382 0.382 0.385

dgefpopsv s=4 0.437 0.439 0.441 0.444 0.446


dgefpopsv s=5 0.435 0.435 0.438 0.44

0.442

dgefpopsv s=6 0.494 0.496 0.496 0.499 0.501


dgefpopsv s=7 0.49

0.493 0.495 0.495 0.497

dgefpopsv s=8 0.549 0.552 0.554 0.556 0.556


Tabla 5.1:

Tiempos de ejecucin, en segundos, de las rutinas


dgefpohor y dgefpopsv, para una matriz aleatoria
de dimensin igual a 500, variando el grado g del
polinomio entre 5 y 9, y el factor s de
agrupamiento entre 2 y 8.

191

Captulo 5: Resultados Experimentales

Te

g=10

g=11

g=12

g=13

g=14

dgefpohor

0.513 0.515 0.515 0.518 0.518

dgefpopsv s=2 0.451 0.453 0.453 0.456 0.458


dgefpopsv s=3 0.387 0.389 0.389 0.392 0.394
dgefpopsv s=4 0.446 0.448 0.45

0.453 0.455

dgefpopsv s=5 0.444 0.447 0.447 0.449 0.451


dgefpopsv s=6 0.503 0.506 0.508 0.51
dgefpopsv s=7 0.5

0.51

0.502 0.504 0.507 0.509

dgefpopsv s=8 0.559 0.561 0.563 0.566 0.568


Tabla 5.2:

Tiempos de ejecucin, en segundos, de las rutinas


dgefpohor y dgefpopsv, para una matriz aleatoria
de dimensin igual a 500, variando el grado g del
polinomio entre 10 y 14, y el factor s de
agrupamiento entre 2 y 8.

Te

g=5

g=6

g=7

dgefpohor

3.6434 3.6437 3.6436 3.6431 3.6435

dgefpopsv s=2 3.1991 3.1983 3.199

g=8

g=9

3.1983 3.1986

dgefpopsv s=3 2.7534 2.7537 2.7536 2.7537 2.7532


dgefpopsv s=4 3.1946 3.1941 3.1943 3.1944 3.1946
dgefpopsv s=5 3.1925 3.1924 3.1923 3.1921 3.1922
dgefpopsv s=6 3.6333 3.6334 3.6333 3.633

3.6336

dgefpopsv s=7 3.6311 3.6311 3.6314 3.6314 3.6313


dgefpopsv s=8 4.0722 4.0723 4.0722 4.0719 4.0721
Tabla 5.3:

Tiempos de ejecucin, en segundos, de las rutinas


dgefpohor y dgefpopsv, para una matriz aleatoria
de dimensin igual a 1000, variando el grado g del
polinomio entre 5 y 9, y el factor s de
agrupamiento entre 2 y 8.

192

Captulo 5: Resultados Experimentales

Te

g=10

g=11

g=12

g=13

g=14

dgefpohor

3.6435 3.6434 3.6435 3.6432 3.6433

dgefpopsv s=2 3.1986 3.1983 3.1987 3.1984 3.1988


dgefpopsv s=3 2.7532 2.7537 2.7537 2.7538 2.7535
dgefpopsv s=4 3.1946 3.1945 3.1943 3.1941 3.1945
dgefpopsv s=5 3.1922 3.1924 3.1923 3.1921 3.1924
dgefpopsv s=6 3.6336 3.6334 3.6334 3.633

3.6329

dgefpopsv s=7 3.6313 3.6309 3.6309 3.6314 3.6316


dgefpopsv s=8 4.0721 4.0725 4.0723 4.072
Tabla 5.4:

4.0723

Tiempos de ejecucin, en segundos, de las rutinas


dgefpohor y dgefpopsv, para una matriz aleatoria
de dimensin igual a 1000, variando el grado g del
polinomio entre 10 y 14, y el factor s de
agrupamiento entre 2 y 8.

De las anteriores tablas se pueden extraer las siguientes conclusiones:

Los menores tiempos de ejecucin corresponden a la rutina dgefpopsv con un factor


de agrupamiento igual a 3.

El tiempo de ejecucin no vara apenas cuando se aumenta el grado del polinomio.

En la siguientes figuras se muestran los tiempos de ejecucin de las rutinas dgefpohor y


dgefpopsv (s=3), para matrices de dimensiones 500 y 1000, variando el grado g del
polinomio entre 5 y 14.

193

Captulo 5: Resultados Experimentales

Dimensin de la matriz n=500


0.7
dgefpohor
dgefpopsv (s=3)

0.65
0.6

Tiempo (segundos)

0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2

Figura 5.1:

9
10
Grado g

11

12

13

14

Tiempos de ejecucin, en segundos, de las rutinas


dgefpohor y dgefpopsv (s=3), para una matriz
aleatoria de dimensin igual a 500, variando el
grado g del polinomio entre 5 y 14.
Dimensin de la matriz n=500

5
dgefpohor
dgefpopsv (s=3)

Tiempo (segundos)

4.5

3.5

2.5

Figura 5.2:

5.2.1.2

9
10
Grado g

11

12

13

14

Tiempos de ejecucin, en segundos, de las rutinas


dgefpohor y dgefpopsv (s=3), para una matriz
aleatoria de dimensin igual a 1000, variando el
grado g del polinomio entre 5 y 14.

Resultados Funciones Racionales

En este estudio se han considerado slo funciones racionales donde los polinomios del
numerador y del denominador tienen grados iguales. El grado g de los polinomios se ha
variado entre 5 y 9, el factor de agrupamiento s entre 2 y 8 y la dimensin de la matriz
194

Captulo 5: Resultados Experimentales

entre 100 y 1000 en pasos de 100. Adems, los coeficientes de la matriz y de los
polinomios se han generado aleatoriamente en el intervalo [-1,1].
En primer lugar se presentan dos tablas en las que se muestran los errores relativos de la
ecuacin conmutante para tamaos de matrices 500 y 1000, correspondientes a las
rutinas dgefrahqr, dgefrahlu, dgefrapqr y dgefraplu.
Ec

g=5

g=6

g=7

g=8

g=9

dgefrahqr

8.29e-10 1.21e-09 2.59e-07 2.44e-06 9.24e-06

dgefrahlu

2.88e-10 1.30e-09 1.76e-07 1.51e-06 2.16e-05

dgefrapqr s=2 8.59e-10 4.14e-09 1.95e-07 4.37e-06 3.59e-06


dgefraplu s=2

1.32e-09 6.99e-09 2.41e-07 4.37e-06 4.25e-06

dgefrapqr s=3 7.72e-10 3.45e-09 3.8e-07


dgefraplu s=3

3.68e-06 1.15e-06

1.12e-09 4.90e-09 3.27e-07 4.46e-06 2.64e-06

dgefrapqr s=4 7.21e-10 4.99e-09 2.32e-07 3.18e-06 6.28e-06


dgefraplu s=4

1.51e-09 5.06e-09 2.94e-07 3.24e-06 3.17e-06

dgefrapqr s=5 5.66e-10 3.23e-09 2.11e-07 2.51e-06 2.20e-06


dgefraplu s=5

9.66e-10 5.12e-09 2.87e-07 3.63e-06 5.80e-06

dgefrapqr s=6 5.54e-10 2.93e-09 3.18e-07 3.05e-06 5.84e-06


dgefraplu s=6

1.00e-09 4.53e-09 3.61e-07 3.76e-06 4.97e-06

dgefrapqr s=7 5.54e-10 2.51e-09 1.96e-07 3.05e-06 8.5e-06


dgefraplu s=7

1.00e-09 5.31e-09 0.20e-07 3.91e-06 3.18e-06

dgefrapqr s=8 5.54e-10 2.51e-09 1.45e-07 2.31e-06 2.53e-06


dgefraplu s=8
Tabla 5.5:

1.00e-09 5.31e-09 4.32e-07 3.27e-06 4.67e-06


Errores relativos cometidos en la ecuacin
conmutante, correspondientes a las rutinas
dgefrahqr, dgefrahlu, dgefrapqr y dgefraplu, para
una matriz aleatoria de dimensin igual a 500,
variando el grado g de los polinomios entre 5 y 9,
y el factor s de agrupamiento entre 2 y 8.

195

Captulo 5: Resultados Experimentales

Ec

g=5

g=6

g=7

g=8

g=9

dgefrahqr

6.93e-09 2.58e-07 1.84e-07 1.42e-4

2.54e-3

dgefrahlu

1.01e-08 6.71e-07 2.12e-07 1.33e-4

4.11e-3

dgefrapqr s=2 5.17e-09 2.22e-07 5.63e-07 2.25e-4

2.82e-3

1.45e-08 5.37e-07 1.36e-06 3.66e-4

3.63e-03

dgefrapqr s=3 5.25e-09 2.05e-07 5.62e-07 1.74 e-4

1.93e-03

1.34e-08 4.99e-07 8.71e-07 3.26e-4

3.40e-03

dgefrapqr s=4 5.46e-09 1.89e-07 4.17e-07 1.43e-4

2.12e-03

dgefraplu s=2

dgefraplu s=3

2.89e-4

3.57e-03

dgefrapqr s=5 4.51e-09 1.71e-07 4.21e-07 1.36e-4

1.47e-03

1.47e-08 4.28e-07 1.47e-06 3.07e-4

3.59e-03

dgefrapqr s=6 4.77e-09 1.42e-07 3.61e-07 1.59e-4

1.93e-03

dgefraplu s=4

dgefraplu s=5

1.47e-08 4.75e-07 1.2e-06

4.83e-07 9.97e-07 3.41e-4

2.83e-03

dgefrapqr s=7 4.77e-09 1.41e-07 3.42e-07 1.25e-4

1.55e-03

dgefraplu s=6

dgefraplu s=7

1.3e-08

1.3e-08

4.85e-07 7.88e-07 3.26e-4

4.23e-03

dgefrapqr s=8 4.77e-09 1.41e-07 3.62e-07 7.98e-05 1.66e-03


dgefraplu s=8
Tabla 5.6:

1.3e-08

4.85e-07 1e-06

2.69e-4

3.30e-03

Errores cometidos en la ecuacin conmutante


correspondientes a las rutinas dgefrahqr,
dgefrahlu, dgefrapqr y dgefraplu, para una matriz
aleatoria de dimensin igual a 1000, variando el
grado g del polinomio entre 5 y 9, y el factor s de
agrupamiento entre 2 y 8.

A continuacin se presentan dos tablas y dos grficas en las que aparecen los tiempos de
ejecucin correspondientes a las rutinas dgefrahqr, dgefrahlu, dgefrapqr y dgefraplu,
considerando matrices aleatorias de dimensiones 500 y 1000, variando el grado g de los
polinomios entre 5 y 9, y el factor s de agrupamiento entre 2 y 8.

196

Captulo 5: Resultados Experimentales

Te

g=5

g=6

g=7

g=8

g=9

dgefrahqr

0.934 1.060 1.190 1.320 1.440

dgefrahlu

0.787 0.914 1.040 1.170 1.300

dgefrapqr s=2 0.561 0.685 0.690 0.813 0.818


dgefraplu s=2

0.414 0.537 0.543 0.666 0.671

dgefrapqr s=3 0.503 0.626 0.631 0.636 0.759


dgefraplu s=3

0.355 0.478 0.483 0.488 0.611

dgefrapqr s=4 0.560 0.565 0.569 0.693 0.698


dgefraplu s=4

0.413 0.417 0.422 0.546 0.551

dgefrapqr s=5 0.618 0.624 0.628 0.633 0.638


dgefraplu s=5

0.471 0.476 0.481 0.486 0.491

dgefrapqr s=6 0.558 0.682 0.687 0.692 0.696


dgefraplu s=6

0.411 0.534

0.54 0.545 0.549

dgefrapqr s=7 0.617 0.622 0.745 0.750 0.755


dgefraplu s=7

0.470 0.474 0.598 0.603 0.608

dgefrapqr s=8 0.676 0.681 0.686 0.809 0.814


dgefraplu s=8
Tabla 5.7:

0.529 0.533 0.538 0.662 0.667

Tiempos de ejecucin, en segundos, de las rutinas


dgefrahqr, dgefrahlu, dgefrapqr y dgefraplu, para
una matriz aleatoria de dimensin igual a 500,
variando el grado g de los polinomios entre 5 y 9,
y el factor s de agrupamiento entre 2 y 8.

197

Captulo 5: Resultados Experimentales

Te

g=5

g=6

g=7

g=8

g=9

dgefrahqr

0.934 1.06

1.19

1.32

1.44

dgefrahlu

0.787 0.914 1.04

1.17

1.30

dgefrapqr s=2 0.561 0.685 0.69


dgefraplu s=2

0.813 0.818

0.414 0.537 0.543 0.666 0.671

dgefrapqr s=3 0.503 0.626 0.631 0.636 0.759


dgefraplu s=3

0.355 0.478 0.483 0.488 0.611

dgefrapqr s=4 0.56


dgefraplu s=4

0.565 0.569 0.693 0.698

0.413 0.417 0.422 0.546 0.551

dgefrapqr s=5 0.618 0.624 0.628 0.633 0.638


dgefraplu s=5

0.471 0.476 0.481 0.486 0.491

dgefrapqr s=6 0.558 0.682 0.687 0.692 0.696


dgefraplu s=6

0.411 0.534 0.54

0.545 0.549

dgefrapqr s=7 0.617 0.622 0.745 0.75


dgefraplu s=7

0.47

0.755

0.474 0.598 0.603 0.608

dgefrapqr s=8 0.676 0.681 0.686 0.809 0.814


dgefraplu s=8
Tabla 5.8:

0.529 0.533 0.538 0.662 0.667

Tiempos de ejecucin, en segundos, de las rutinas


dgefrahqr, dgefrahlu, dgefrapqr y dgefraplu, para
una matriz aleatoria de dimensin igual a 1000,
variando el grado g de los polinomios entre 5 y 9,
y el factor s de agrupamiento entre 2 y 8.

198

Captulo 5: Resultados Experimentales

Dimensin de la matriz n=500


1.2
dgefraplu(s=3)
dgefraplu(s=4)
dgefraplu(s=5)

1.1
1

Tiempo (segundos)

0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2

Figura 5.3:

9
10
Grado g

11

12

13

14

Tiempos de ejecucin, en segundos, de la rutina


dgefraplu, para una matriz aleatoria de dimensin
igual a 500, variando el grado g de los polinomios
entre 5 y 14, y el factor s de agrupamiento entre 3
y 5.
Dimensin de la matriz n=1000

8
dgefraplu(s=3)
dgefraplu(s=4)
dgefraplu(s=5)

Tiempo (segundos)

Figura 5.4:

9
10
Grado g

11

12

13

14

Tiempos de ejecucin, en segundos, de la rutina


dgefraplu, para una matriz aleatoria de dimensin
igual a 1000, variando el grado g de los
polinomios entre 5 y 14, y el factor s de
agrupamiento entre 3 y 5.

De las tablas y grficas anteriores se pueden extraer varias conclusiones:

199

Captulo 5: Resultados Experimentales

Se produce una prdida de precisin a medida que aumenta el grado del polinomio y
la dimensin de la matriz.

Las rutinas que utilizan la descomposicin QR tienen un error algo menor que las
rutinas que utilizan la descomposicin LU con pivotamiento parcial de filas, aunque
estas ltimas son ms rpidas que las primeras.

Las rutinas basadas en el mtodo de Paterson-Stockmeyer-Van Loan tienen, en


general, un tiempo de ejecucin menor que las rutinas que utilizan el mtodo de
Horner, siendo la rutina dgefraplu la que presenta mejores resultados cuando se
eligen factores de agrupamiento s comprendidos entre 3 y 5.

5.2.2 Rutinas Basadas en los Aproximantes Diagonales de Pad


Para el clculo de funciones de matrices basadas en la aproximacin diagonal de Pad,
se han utilizado las siguientes variantes:

Resolucin del sistema de ecuaciones lineales, que aparece en la aproximacin


diagonal de Pad mediante la descomposicin LU con pivotamiento parcial de filas
o mediante la descomposicin QR.

Utilizacin del mtodo de Horner o del mtodo de Paterson-Stockmeyer-Van Loan.

En funcin de estas variantes se han obtenido 4 rutinas que implementan la misma


funcin matricial. En la siguiente figura aparecen las citadas aproximaciones.

Descomposicin LU
Mtodo de Paterson - Stockmeyer - Van Loan
Descomposicin QR

Clculo de f(A)
Mtodo de Horner Descomposicin LU

Descomposicin QR

Figura 5.5:

Rutinas que calculan funciones de matrices


mediante los aproximantes diagonales de Pad.

Se han realizado pruebas para todas las implementaciones de los algoritmos descritos en
el Captulo 3, pero nicamente se presentan los resultados correspondientes a la funcin
exponencial y a la potencia fraccionaria de una matriz.
El grado g de los polinomios de la aproximacin diagonal de Pad se ha variado entre 5
y 14, y el factor s de agrupamiento entre 2 y 8. Los coeficientes de las matrices se han
generado aleatoriamente en el intervalo [10,10] , y sus dimensiones se han variado
entre 100 y 1000 en pasos de 100.
Los errores que se han calculado para cada prueba han sido:

Error relativo (Er), comparando la solucin obtenida con los mtodos basados en los
aproximantes diagonales de Pad con la solucin obtenida utilizando un mtodo
basado en la descomposicin real de Schur de una matriz (estos mtodos son ms
precisos que los basados en la aproximacin de Pad).

Error relativo en la ecuacin conmutante (Ec).

En las siguientes tablas se muestran los errores Er y Ec para tamaos de matrices 100,
500 y 1000 correspondientes a las rutinas dgefexhlu. nicamente se ha tenido en cuenta
el valor de agrupamiento s=2, pues para los otros valores los resultados son semejantes.

200

Captulo 5: Resultados Experimentales

g=5

g=6

g=7

g=8

g=9

Er .337e-12 .277e-12 .335e-12 .169e-12 .261e-12


Ec .297e-13 .260e-13 .150e-13 .182e-13 .202e-13
Tabla 5.9:

Errores relativos de la rutina dgefexhlu para una


matriz aleatoria de dimensin igual a 100, variando
el grado g de los polinomios de la aproximacin
diagonal de Pad entre 5 y 9.

g=10

g=11

g=12

g=13

g=14

Er .177e-12

.384e-12 .101e-12 .291e-12 .259e-12

Ec .252e-13

.204e-13 .150e-13 .146e-13 .234e-13

Tabla 5.10: Errores relativos de la rutina dgefexhlu para una


matriz aleatoria de dimensin igual a 100, variando
el grado g de los polinomios de la aproximacin
diagonal de Pad entre 10 y 14.
g=5

g=6

g=7

g=8

g=9

Er .834e-12 .595e-12 .607e-12 .125e-11 .334e-12


Ec .657e-13 .856e-13 .688e-13 .495e-13 .517e-13
Tabla 5.11: Errores relativos de la rutina dgefexhlu para una
matriz aleatoria de dimensin igual a 500, variando
el grado g de los polinomios de la aproximacin
diagonal de Pad entre 5 y 9.
g=10

g=11

g=12

g=13

g=14

Er .647e-12 .306e-12 .232e-12 .150e-11 .830e-12


Ec .557e-13 .624e-13 .620e-13 .651e-13 .953e-13
Tabla 5.12: Errores relativos de la rutina dgefexhlu para una
matriz aleatoria de dimensin igual a 500, variando
el grado g de los polinomios de la aproximacin
diagonal de Pad entre 10 y 14.

201

Captulo 5: Resultados Experimentales

g=5

g=6

g=7

g=8

g=9

Er .104e-11 .178e-11 .556e-12 .709e-12 .145e-11


Ec .730e-13 .154e-12 .102e-12 .107e-12 .186e-12
Tabla 5.13: Errores relativos de la rutina dgefexhlu para una
matriz aleatoria de dimensin igual a 1000,
variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 5 y 9.
g=10

g=11

g=12

g=13

g=14

Er .818e-12 .812e-12 .102e-11 .718e-12 .130e-12


Ec .162e-12 .861e-13 .112e-12 .915e-13 .126e-12
Tabla 5.14: Errores relativos de la rutina dgefexhlu para una
matriz aleatoria de dimensin igual a 1000,
variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 10 y 14.
De las tablas anteriores se desprenden las siguientes conclusiones:

Los errores relativos Er y Ec aumentan moderadamente a medida que aumenta la


dimensin de la matriz.

Los errores relativos Er y Ec son similares, siendo estos ltimos algo menores.

Con un valor del grado g de la aproximacin diagonal igual a 7 se obtiene una


precisin aceptable.

En las siguientes tablas se muestran los tiempos de ejecucin de las rutinas dgefexhlu,
dgefexhqr, dgefexplu y dgefexpqr, para tamaos de matrices iguales a 500 y 1000. Estas
rutinas se describen a continuacin.

dgefexhlu: Calcula la exponencial de una matriz mediante aproximantes


diagonales de Pad, utilizando el mtodo de Horner y la descomposicin LU con
pivotamiento parcial de filas en la resolucin del sistema de ecuaciones lineales
asociado.

dgefexhqr: Calcula la exponencial de una matriz mediante aproximantes


diagonales de Pad, utilizando el mtodo de Horner y la descomposicin QR en
la resolucin del sistema de ecuaciones lineales que aparece en el mtodo
anterior.

dgefexplu: calcula la exponencial de una matriz mediante aproximantes


diagonales de Pad, utilizando el mtodo de Paterson-Stockmeyer-Van Loan y la
descomposicin LU con pivotamiento parcial de filas en la resolucin del sistema
de ecuaciones lineales asociado.

dgefexpqr: Calcula la exponencial de una matriz mediante aproximantes diagonales de


Pad, utilizando el mtodo de Paterson-Stockmeyer-Van Loan y la descomposicin QR
en la resolucin del sistema de ecuaciones lineales asociado.

202

Captulo 5: Resultados Experimentales

Te

g=5

dgefexhlu

1.45 1.57 1.7

dgefexhqr

1.6

dgefexplu s=2

1.15 1.32 1.28 1.41 1.41

dgefexpqr s=2 1.3


dgefexplu s=3

g=6

g=7

g=8

g=9

1.82 1.96

1.73 1.85 1.98 2.16

1.46 1.44 1.58 1.57

1.09 1.22 1.22 1.28 1.35

dgefexpqr s=3 1.25 1.37 1.37 1.38 1.5


dgefexplu s=4

1.15 1.15 1.16 1.28 1.29

dgefexpqr s=4 1.3


dgefexplu s=5

1.31 1.36 1.44 1.45

1.21 1.21 1.23 1.22 1.23

dgefexpqr s=5 1.36 1.36 1.37 1.37 1.38


dgefexplu s=6

1.14 1.27 1.28 1.29 1.28

dgefexpqr s=6 1.29 1.42 1.43 1.44 1.44


dgefexplu s=7

1.2

1.21 1.33 1.34 1.34

dgefexpqr s=7 1.36 1.36 1.49 1.49 1.5


dgefexplu s=8

1.33 1.27 1.27 1.4

1.47

dgefexpqr s=8 1.42 1.42 1.42 1.55 1.55


Tabla 5.15: Tiempos de ejecucin, en segundos, de las rutinas
dgefexhlu, dgefexhqr, dgefexplu y dgefexpqr, para
una matriz aleatoria de dimensin igual a 500,
variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 5 y 9, y el
factor de agrupamiento s entre 2 y 8.

203

Captulo 5: Resultados Experimentales

Te

g=10 g=11 g=12 g=13 g=14

dgefexhlu

2.07

2.2

2.32

2.49

2.59

dgefexhqr

2.23

2.34

2.48

2.59

2.76

dgefexplu s=2

1.55

1.54

1.67

1.67

1.8

1.7

1.82

1.83

1.96

1.36

1.36

1.49

1.49

1.5

dgefexpqr s=3 1.51

1.52

1.64

1.64

1.65

1.3

1.43

1.43

1.43

dgefexpqr s=4 1.45

1.45

1.58

1.58

1.59

1.35

1.36

1.36

1.37

1.37

dgefexpqr s=5 1.51

1.51

1.51

1.52

1.53

1.29

1.29

1.42

1.42

1.43

dgefexpqr s=6 1.46

1.49

1.57

1.58

1.59

1.4

1.36

1.41

1.36

1.56

dgefexpqr s=7 1.5

1.51

1.52

1.51

1.64

1.41

1.41

1.42

1.42

1.42

dgefexpqr s=8 1.56

1.57

1.57

1.66

1.58

dgefexpqr s=2 1.69


dgefexplu s=3

dgefexplu s=4

dgefexplu s=5

dgefexplu s=6

dgefexplu s=7

dgefexplu s=8

1.29

Tabla 5.16: Tiempos de ejecucin, en segundos, de las rutinas


dgefexhlu, dgefexhqr, dgefexplu y dgefexpqr, para
una matriz aleatoria de dimensin igual a 500,
variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 10 y 14, y el
factor de agrupamiento s entre 2 y 8..

204

Captulo 5: Resultados Experimentales

Te

g=5

dgefexhlu

11.2 12

dgefexhqr

12.3 13.2 14.2 14.9 16

dgefexplu s=2

8.95 9.76 9.84 10.7 10.7

dgefexpqr s=2 10
dgefexplu s=3

g=6

g=7

g=8

13

13.9 14.9

10.9 11

8.47 9.3

g=9

11.8 11.8

9.37 9.34 10.3

dgefexpqr s=3 9.55 10.4 10.5 10.5 11.5


dgefexplu s=4

8.89 8.84 8.93 9.77 9.86

dgefexpqr s=4 10.1 10.1 10.1 10.9 11


dgefexplu s=5

9.35 9.31 9.37 9.33 9.39

dgefexpqr s=5 10.6 10.5 10.5 10.5 10.5


8.9

9.73 9.82 9.76 9.84

dgefexpqr s=6 10

10.9 10.9 10.9 10.9

dgefexplu s=6

dgefexplu s=7

9.34 9.27 10.3 10.2 10.3

dgefexpqr s=7 10.4 10.4 11.4 11.3 11.4


dgefexplu s=8

9.79 9.71 9.81 10.6 10.8

dgefexpqr s=8 10.9 10.8 11

11.8 11.8

Tabla 5.17: Tiempos de ejecucin, en segundos, de las rutinas


dgefexhlu, dgefexhqr, dgefexplu y dgefexpqr, para
una matriz aleatoria de dimensin igual a 1000,
variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 5 y 9, y el
factor de agrupamiento s entre 2 y 8..

205

Captulo 5: Resultados Experimentales

Te

g=10 g=11 g=12 g=13 g=14

dgefexhlu

15.6

16.7

17.3

18.4

19.1

dgefexhqr

16.8

17.8

18.4

19.5

20.2

dgefexplu s=2

11.6

11.7

12.4

12.5

13.3

dgefexpqr s=2 12.7

12.8

13.5

13.6

14.4

10.2

10.3

11.1

11.2

11.1

dgefexpqr s=3 11.3

11.4

12.1

12.2

12.2

9.77

9.82

10.6

10.7

10.6

10.9

11.7

11.8

11.7

10.2

10.2

10.2

10.3

10.2

dgefexpqr s=5 11.4

11.3

11.2

11.3

11.3

9.78

9.79

10.6

10.7

10.6

dgefexpqr s=6 10.9

10.9

11.7

11.8

11.7

10.3

10.2

10.2

10.3

11.1

dgefexpqr s=7 11.3

11.3

11.2

11.3

12.1

10.7

10.7

10.6

10.7

10.6

dgefexpqr s=8 11.8

11.7

11.7

11.8

11.7

dgefexplu s=3

dgefexplu s=4

dgefexpqr s=4 11
dgefexplu s=5

dgefexplu s=6

dgefexplu s=7

dgefexplu s=8

Tabla 5.18: Tiempos de ejecucin, en segundos, de las rutinas


dgefexhlu, dgefexhqr, dgefexplu y dgefexpqr, para
una matriz aleatoria de dimensin igual a 1000,
variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 10 y 14, y el
factor de agrupamiento s entre 2 y 8.
La rutina ms rpida es dgefexplu, siempre que se elija un valor adecuado para su factor
de agrupamiento s (por ejemplo, entre 3 y 6). A continuacin se muestran dos grficas
en las que aparecen los tiempos de ejecucin, en segundos, de la rutina dgefexplu, para
matrices aleatorias de dimensiones 500 y 1000, variando el grado g de los polinomios
de la aproximacin diagonal de Pad entre 5 y 14, y el factor de agrupamiento s entre 3
y 6.

206

Captulo 5: Resultados Experimentales

Dimensin de la matriz n=500


1.5
1.45

dgefexplu(s=3)
dgefexplu(s=4)
dgefexplu(s=5)
dgefexplu(s=6)

1.4

Tiempo (segundos)

1.35
1.3
1.25
1.2
1.15
1.1
1.05
1

Figura 5.6:

9
10
Grado g

11

12

13

14

Tiempos de ejecucin, en segundos, de la rutina


dgefexplu para una matriz aleatoria de dimensin
igual a 500, variando el grado g de los polinomios
de la aproximacin diagonal de Pad entre 5 y 14,
y el factor s de agrupamiento entre 3 y 6.
Dimensin de la matriz n=1000

12
dgefexplu(s=3)
dgefexplu(s=4)
dgefexplu(s=5)
dgefexplu(s=6)

11.5

Tiempo (segundos)

11
10.5
10
9.5
9
8.5
8

Figura 5.7:

9
10
Grado g

11

12

13

14

Tiempos de ejecucin, en segundos, de la rutina


dgefexplu para una matriz aleatoria de dimensin
igual a 1000, variando el grado g de los
polinomios de la aproximacin diagonal de Pad
entre 5 y 14, y el factor s de agrupamiento entre 3
y 6.

De las tablas y grficas anteriores se desprenden las siguientes conclusiones:


207

Captulo 5: Resultados Experimentales

Para un mismo valor de s, el tiempo de ejecucin menor corresponde a la rutina


dgefexplu.

Los valores de s con menores tiempos de ejecucin se encuentran entre 3 y 6.

Por ltimo, se presentan los resultados correspondientes a la rutina dgefpfplu. Esta


rutina calcula potencias fraccionarias de una matriz mediante aproximantes diagonales
de Pad, utilizando el mtodo Paterson-Stockmeyer-Van Loan y la descomposicin LU
con pivotamiento parcial de filas en la resolucin del sistema de ecuaciones lineales que
aparece en el mtodo. En los resultados que se presentan a continuacin se ha
considerado el caso particular de calcular la raz cbica de una matriz.
En la siguiente tabla se muestran el error
Er =

|| B 3 A ||1
|| A ||1

y el error Ec correspondiente a la ecuacin conmutante.


g=5

g=6

g=7

g=8

g=9

Er 0.544e-07 0.266e-09 0.893e-12 0.194e-12 0.195e-12


Ec 0.241e-12 0.241e-12 0.241e-12 0.240e-12 0.245e-12
Tabla 5.19: Errores Er y Ec de la rutina dgefpfhlu para una
matriz aleatoria de dimensin igual a 100,
considerando un factor de agrupamiento s igual a 2
y variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 5 y 9.
g=10

g=11

g=12

g=13

g=14

Er 0.195e-12 0.195e-12 0.195e-12 0.195e-12 0.194e-12


Ec 0.241e-12 0.240e-12 0.241e-12 0.242e-12 0.241e-12
Tabla 5.20: Errores Er y Ec de la rutina dgefpfhlu para una
matriz aleatoria de dimensin igual a 100,
considerando un factor de agrupamiento s igual a 2
y variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 10 y 14.
En las siguientes tablas se muestran los tiempos de ejecucin de la rutina dgefpfhlu para
una matriz aleatoria de dimensin igual a 100, variando el grado g de los polinomios de
la aproximacin diagonal de Pad entre 5 y 9, y el factor de agrupamiento s entre 2 y 8.

208

Captulo 5: Resultados Experimentales

Te

g=5

g=6

g=7

g=8

g=9

dgefpfplu s=2 3.2186 3.2317 3.2335 3.2162 3.3020


dgefpfplu s=3 3.2170 3.2147 3.2160 3.2155 3.2168
dgefpfplu s=4 3.3049 3.2177 3.2143 3.2947 3.2157
dgefpfplu s=5 3.2174 3.2497 3.2757 3.2169 3.2378
dgefpfplu s=6

3.2310 3.2354 3.2143 3.2892

dgefpfplu s=7

3.2339 3.2322 3.2592

dgefpfplu s=8

3.2190 3.2244

Tabla 5.21: Tiempos de ejecucin de la rutina dgefpfhlu, para


una matriz aleatoria de dimensin igual a 100,
variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 5 y 9, y el
factor de agrupamiento s entre 2 y 8.
g=10

g=11

g=12

g=13

g=14

dgefpfplu s=2 3.2500 3.2206 3.2194 3.2202 3.2764


dgefpfplu s=3 3.2327 3.2322 3.2310 3.2352 3.2780
dgefpfplu s=4 3.2298 3.2190 3.2169 3.2177 3.2565
dgefpfplu s=5 3.2608 3.2144 3.2157 3.3472 3.2166
dgefpfplu s=6 3.2164 3.2879 3.5763 3.2243 3.2343
dgefpfplu s=7 3.2725 3.2746 3.2620 3.2612 3.2157
dgefpfplu s=8 3.2540 3.2169 3.2306 3.2347 3.2661
Tabla 5.22: Tiempos de ejecucin de la rutina dgefpfhlu , para
una matriz aleatoria de dimensin igual a 100,
variando el grado g de los polinomios de la
aproximacin diagonal de Pad entre 10 y 14, y el
factor de agrupamiento s entre 2 y 8.
Varias conclusiones se pueden extraer de estas cuatro ltimas tablas:

La precisin obtenida es algo menor que la obtenida en el clculo de la exponencial


de una matriz.

Se obtiene una precisin aceptable a partir de los aproximantes diagonales de Pad


de grado 7.

209

Captulo 5: Resultados Experimentales

Los tiempos de ejecucin son similares, independientemente del grado de los


polinomios del aproximante diagonal de Pad y del factor de agrupamiento.

Los tiempos de ejecucin de la rutina dgefpfplu para un tamao de matriz igual a


100 son mayores que los tiempos de ejecucin de la rutina dgefexhlu para un tamao
de matriz igual a 500.

Las dos ltimas conclusiones son consecuencia del mayor coste computacional de la
rutina dgefpfplu, asociado al clculo de la raz cuadrada de una matriz, etapa necesaria
para la reduccin inicial de la norma de la matriz.

5.2.3 Rutinas Basadas en la Descomposicin real de Schur de una


matriz
En este apartado se muestran las pruebas realizadas sobre las rutinas anteriores, salvo
las correspondientes a las rutinas basadas en la agrupacin de valores propios (rutinas
dgeyyyscl), debido a que se ha comprobado que a partir de dimensiones de orden
superior a 20, se comete un gran error a menos que se elija una agrupacin mayor,
coincidente en la mayora de los casos con un nico bloque. En tales casos es ms
eficiente utilizar directamente las rutinas basadas en los aproximantes diagonales de
Pad (rutinas dgeyyysph y dgeyyyspp), puesto que estas rutinas no necesitan
reordenaciones. La justificacin de este comportamiento se encuentra en que el error
cometido al resolver una ecuacin matricial de Sylvester
Tii X XT jj = Fij ,

satisface que
~
|| Fij || F
|| X X || F
u
.
| X || F
sep(Tii , T jj )
Por lo tanto, para dimensiones grandes y en funciones del tipo exponencial, el error
puede ser muy grande debido tanto al valor de sep(Tii , T jj ) como al valor de || Fij ||F .
Las pruebas se han realizado para la funcin exponencial. El motivo es que la precisin
y las prestaciones obtenidas para otras funciones son semejantes, dadas las
caractersticas de los algoritmos basados en la descomposicin real de Schur de una
matriz, con la nica excepcin del basado en los aproximantes diagonales de Pad. En
las pruebas realizadas se ha utilizado la rutina dgefexplu (s=3, g=7) para compararla con
las rutinas anteriormente mencionadas.
Una de las medidas utilizadas para determinar la precisin de los algoritmos
implementados es el error relativo cometido. Esto no siempre es posible, puesto que la
solucin exacta nicamente se puede conocer en determinados casos y para matrices de
pequea dimensin, exceptuando, evidentemente, el caso de exponenciales de matrices
diagonales. Por ello, en algunas de las pruebas se han utilizado matrices cuya
exponencial es conocida.
En primer lugar se presentan los resultados obtenidos en cuanto a precisin,
determinando el error relativo en el clculo de la exponencial y el error relativo en la
ecuacin conmutante. Para ello se han generado matrices de la mayor dimensin posible
que pudieran ser calculadas de manera exacta por MATLAB, utilizando las funciones
de MATLAB sym y double que permiten pasar, respectivamente, datos de doble

210

Captulo 5: Resultados Experimentales

precisin a forma simblica y datos de forma simblica a doble precisin. Se han


considerado las matrices
A40

40 x 40

aij = 0, i > j

aii = i,
a = 1, i < j
ij

y
A70

70 x 70

aij = 0, i > j

.
aii = 1,
a = 1, i < j
ij

Aunque se han realizado pruebas en las que los parmetros caractersticos de cada una
de ellas se han variado, nicamente se van a presentar aquellos que han obtenido buenos
resultados en cuanto a precisin y coste computacional. Segn esto, para las rutinas
orientadas a bloques, dgefunsbc y dgefunsbd, se ha elegido un tamao de bloque tb
igual a 6 mientras que para las rutinas basadas en los aproximantes diagonales de Pad,
dgefunsph y dgefunspp, se ha elegido un grado g=7 de los polinomios de la
aproximacin diagonal de Pad y un factor de agrupamiento s=4 para la rutina
dgefunspp.
En las siguiente tablas se muestran los errores Er y Ec al calcular f ( A40 ) y f ( A70 ) .
Er

Ec

dgefexplu: g=7, s=3

0.31100e-15 0.22725e-13

dgefunscd

0.47810e-16 0.10017e-15

dgefunscc

0.33498e-16 0.50839e-16

dgefunsbd: tb= 6

0.44342e-16 0.93251e-16

dgefunsbc: tb= 6

0.35363e-16 0.48357e-16

dgeexpsdb

0.24563e-16 0.33250e-14

dgeexpsph: g=7

0.17226e-15 0.13560e-13

dgeexpspp: g=7, s=4 0.50249e-15 0.22583e-13


Tabla 5.23: Errores correspondientes al clculo de f ( A40 )
mediante las rutinas dgefexplu, dgefunscd,
dgefunscc, dgefunsbd, dgefunsbc, dgefunsdb,
dgeexpsph y dgeexpspp.

211

Captulo 5: Resultados Experimentales

Er
dgefexplu: g=7, s=3

Ec

0.21248e-15 0.45270e-13

dgefunscd

Error

Error

dgefunscc

Error

Error

dgefunsbd: tb= 6

Error

Error

dgefunsbc: tb= 6

Error

Error

dgeexpsdb

0.33016e-15 0.10266e-13

dgeexpsph: g=7

0.33016e-15 0.10266e-13

dgeexpspp: g=7, s=4 0.31550e-15 0.19864e-13


Tabla 5.24: Errores correspondientes al clculo de f ( A70 )
mediante las rutinas dgefexplu, dgefunscd,
dgefunscc, dgefunsbd, dgefunsbc, dgefunsdb,
dgeexpsph y dgeexpspp.
A continuacin se presentan los errores relativos cometidos en la ecuacin conmutante
correspondientes a las rutinas que calculan la exponencial de matrices aleatorias de
tamaos 500 y 1000.
Ec

500

1000

dgefexplu: g=7, s=3

0.12378e-13 0.80748e-13

dgefunscd

0.59172e-14 0.98738e-14

dgefunscc

0.59172e-14 0.98738e-14

dgefunsbd: tb= 6

0.59369e-14 0.98059e-14

dgefunsbc: tb= 6

0.59381e-14 0.98646e-14

dgeexpsdb

0.68640e-14 0.15640e-13

dgeexpsph: g=7

0.67320e-14 0.12915e-13

dgeexpspp: g=7, s=4 0.75899e-14 0.15556e-13


Tabla 5.25: Errores cometidos (ecuacin conmutante) por las
rutinas
dgefexplu,
dgefunscd,
dgefunscc,
dgefunsbd, dgefunsbc, dgefunsdb, dgeexpsph y
dgeexpspp en el clculo de la exponencial de dos
matrices aleatorias de dimensiones 500 y 1000.

212

Captulo 5: Resultados Experimentales

Los algoritmos se pueden clasificar, segn su precisin, en tres grupos:

Grupo 1: rutina dgefexplu, basada en los aproximantes diagonales de Pad, y rutinas


dgeexpsph y dgefunspp, basadas en la descomposicin real de Schur de una matriz y
en los aproximantes diagonales de Pad.

Grupo 2: rutinas dgefunscd, dgefunscc, dgefunsbd y dgefunsbc, basadas en la


descomposicin real de Schur de una matriz y en la ecuacin conmutante.

Grupo 3: rutina dgeexpsdb, basada en la diagonalizacin por bloques de una matriz.

A partir de las tablas anteriores se pueden extraer las siguientes conclusiones:

Los errores relativos cometidos en el clculo de la funcin de una matriz y en la


ecuacin conmutante son similares, aunque este ltimo es algo mayor que el
primero. Esto es especialmente til cuando no es conocido el valor exacto de la
solucin, pues permite conocer, aproximadamente, el error relativo cometido en el
clculo de funciones de matrices a partir del error cometido en la ecuacin
conmutante.

Las rutinas del grupo 2 son algo ms precisas que las restantes siempre y cuando las
matrices no presenten valores propios cercanos.

La rutina del grupo 3 es algo ms precisa que las rutinas del grupo 1.

Para matrices con valores propios separados, los errores relativos cometidos por las
rutinas de los grupos 2 y 3 son de magnitudes semejantes.

Para matrices con valores propios cercanos, las rutinas del grupo 2 presentan un
elevado error.

A continuacin se muestran los tiempos de ejecucin de las rutinas analizadas.


Te

500

1000

dgefexplu g=7, s=3 1.0618 9.5562


dgefunscd

5.2754 108.28

dgefunscc

5.5376 119.61

dgefunsbd, tb= 6

4.8406 94.051

dgefunsbc, tb= 6

4.9379 98.215

dgefunsdb

5.5266 120.32

dgefunsph,g=7

4.9282 120.10

dgefunspp,g=7,s=4

6.0002 116.56

Tabla 5.26: Tiempos de ejecucin, en segundos, de las rutinas


dgefexplu, dgefunscd, dgefunscc, dgefunsbd,
dgefunsbc, dgefunsdb, dgeexpsph y dgeexpspp,
aplicadas al clculo de la exponencial de dos
matrices aleatorias de dimensiones 500 y 1000.
213

Captulo 5: Resultados Experimentales

De la tabla anterior se pueden extraer las siguientes conclusiones en cuanto a tiempos de


ejecucin:

La rutina dgefexplu, basada en los aproximantes diagonales de Pad, es la ms


rpida.

Las rutinas basadas en la resolucin de la ecuacin conmutante por bloques


(dgefunsbd, dgefunsbc) se encuentran en segundo lugar.

Las rutinas basadas en la resolucin de la ecuacin conmutante por diagonales y


columnas (dgefunscd, dgefunscc), junto con las rutinas basadas en la
descomposicin real de Schur de una matriz y en los aproximantes diagonales de
Pad (dgeexpsph, dgeexpspp) se encuentran en tercer lugar.

La rutina basada en la diagonalizacin por bloques (dgefunsdb) es la ms lenta.

La justificacin de estos resultados es que los algoritmos basados en los aproximantes


diagonales de Pad son menos costosos que los basados en la descomposicin real de
Schur de una matriz y, siempre que se utilizan algoritmos orientados a bloques se
obtienen tiempos de ejecucin menores que los correspondientes a columnas o
diagonales, debido a la localidad de los datos.

5.3 Propagacin de Ondas Monocromticas en Fibras de


Cristal Fotnico
En esta seccin se desarrolla un estudio completo del uso de funciones de matrices en la
simulacin de la propagacin de ondas en fibras de cristal fotnico.
Las Fibras de Cristal Fotnico (FCF) fueron propuestas y fabricadas por primera vez en
1996 ([RuBi95]). Desde entonces, el inters sobre esta nueva tecnologa ha ido
creciendo debido a sus fascinantes propiedades. Las especiales caractersticas de guiado
de la luz de las FCF como son, entre otras, la propagacin monomodo o la dispersin
ultraplana en un amplio rango de longitudes de onda, tienen potenciales aplicaciones en
una gran variedad de campos que van desde las comunicaciones pticas hasta la
fabricacin de dispositivos optoelectrnicos. Las propiedades de propagacin del campo
electromagntico en estos sistemas vienen determinadas por la configuracin particular
de la estructura dielctrica transversal.
Una FCF est constituida por una fibra delgada de slice que presenta una distribucin
peridica de agujeros de aire que se extienden a lo largo de toda su longitud. Tal y como
se muestra en la siguiente figura, la periodicidad transversal se pierde, en general, por la
ausencia de uno de estos agujeros, lo que conlleva la aparicin de un defecto. La ruptura
de la periodicidad genera la localizacin de la luz en la regin del defecto.

214

Captulo 5: Resultados Experimentales

Slice
Defecto
Aire

Figura 5.8:

Fibra de cristal fotnico.

La estructura de agujeros de aire constituye una red caracterizada geomtricamente por


la separacin entre agujeros y el radio a de los mismos. Tpicamente oscila entre
2 m y 3 m y el radio a entre 0,2 m y 1,0 m.
Cuando la potencia incidente en la fibra es suficientemente alta, las propiedades de
propagacin se ven modificadas por la presencia de fenmenos de carcter no lineal.
Bajo estas condiciones, las propiedades ya no dependen exclusivamente de las
caractersticas de la fibra, sino que tambin entra en juego el propio campo propagante.
Este rgimen de propagacin es intrnsecamente ms complejo, y en el caso de las FCC,
da lugar a espectaculares fenmenos como la generacin de supercontnuo ([Coen01]),
consistente en la formacin de un amplio espectro al propagarse pulsos de alta potencia
por el interior de la FCC, o la propagacin de solitones espaciales (FeZF03], [FeZF04]),
que consisten en estructuras espaciales localizadas que se propagan no linealmente sin
deformarse.
El problema consiste en modelizar la propagacin no lineal de un campo
monocromtico en un medio inhomogneo (la inhomogeneidad se debe a la estructura
peridica de agujeros de aire). La evolucin no lineal del campo elctrico a lo largo de
la fibra, viene descrita por la ecuacin diferencial

i ( x, y, z ) = L( ( x, y, z )) ( x, y, z ) ,
z

( 5.1 )
donde

L = t2 + k 02 n02 ( x, y ) + 3k 02 (3) ( x, y ) | ( x, y, z ) | 2 ,
siendo
2
2
+
,
x 2 y 2

t2 =

k 0 = 2 / ( 1m longitud de onda),

(3) 10 3 ,

215

Captulo 5: Resultados Experimentales

1.45 slice
n0 ( x, y )
(ndices de refraccin),
aire
1

1 slice
( x, y ) =
.
0 aire

Las soluciones estacionarias, o solitones espaciales, de la ecuacin diferencial anterior,


vienen dados por la expresin

( x , y , z ) = ( x , y ) e i z .
Mediante tcnicas iterativas de resolucin de problemas de autovalores no lineales, se
ha comprobado que existen dichas soluciones para diversas geometras de la fibra. Una
propiedad fundamental de estas soluciones es su estabilidad, entendiendo sta como la
robustez de la estructura espacial frente a perturbaciones. La solucin es estable, si tras
perturbar ligeramente el campo y dejarlo evolucionar a travs de la fibra, vuelve
asintticamente al estado estacionario. As pues, para comprobar la estabilidad, se ha de
simular numricamente la propagacin a lo largo de la fibra mediante la ecuacin ( 5.1 )
de la solucin solitnica ligeramente perturbada, tanto en amplitud como en fase

( x, y,0) = S ( x, y ) + .
Realizando una aproximacin de grado 0 en la ecuacin diferencial ( 5.1 ), se tiene que
el valor aproximado de en z + h es

( x, y , z + h ) = e i

L ( ( x , y , z ))h

( x, y , z ) ,

lo que permite analizar la evolucin de a lo largo del eje z.


Se trata pues de disear algoritmos estables y eficientes que permitan calcular la matriz
ei

Ah

siendo A = L( ) una matriz compleja densa, no necesariamente simtrica, de elevada


norma, con valores propios mltiples, y donde h muy pequeo del orden 10 9 .

5.3.1 Algoritmo Basado en la Diagonalizacin de una Matriz


Se trata de obtener la descomposicin
A = VDV 1 ,
siendo
1 0
0
2
D=
M M

0 0

0
L 0
,
O M

L n

una matriz diagonal, i , i = 1,2, L , n , los valores propios de la matriz A y V matriz no


singular cuyas columnas coinciden con los vectores propios de A .
A partir de la descomposicin anterior se calcula
ei

Ah

= Ve i

V 1 ,

Dh

216

Captulo 5: Resultados Experimentales

siendo

ei

Dh

e i 1 h

0
=
M

i h
L e n

0
e

L
L
O

i 2 h

M
0

A continuacin se presenta el algoritmo que calcula ei


de la matriz A .

0
0
M

Ah

mediante la diagonalizacin

B = zgefereig( A, h) .
Entradas: Matriz A C

nxn

Matriz B = ei

Ah

Salida:

, tamao del paso h + .


C

nxn

Obtener la matriz V y el vector n de valores propios de la matriz A de


manera que A = VDV 1 :
1.1
[V , ] = zgeev( A)

Calcular V = Vdiag (e
2.1
Para j = 1 : n

i 1 h

,e

i 2 h

,L, e

i n h

):

i h

2.1.1 V (1 : n, j ) = V (1 : n, j )e j
Calcular B resolviendo el sistema de ecuaciones lineales BV = V

Algoritmo 5.1: Clculo de la funcin f ( A) = e i


matriz.

Ah

mediante la diagonalizacin de una

5.3.2 Algoritmo Basado en los Aproximantes Diagonales de Pad


Este algoritmo calcula
f ( A) = e i

Ah

mediante el Algoritmo 3.1 particularizado a la funcin f ( z ) = e i

zh

217

Captulo 5: Resultados Experimentales

B = zgeferpad ( A, h, l ) .
Entradas: Matriz A C nxn , tamao del paso h + , grado l Z + de los polinomios
de la aproximacin diagonal de Pad.
Salida:
1

2
3
4

Matriz B = ei

Ah

nxn

Aplicar transformaciones que disminuyan || A || :


1.1
Determinar h1 + de manera que la matriz A1 = Ah1 tenga una
norma aproximadamente igual a 1, de este modo se tiene que
ih Ah
ih A
ei Ah = e 2 1 = e 2 1 , siendo h2 = h / h1 .
Encontrar el polinomio de Taylor a( x) de grado 2l + 1 de la funcin
f ( z ) = e i z h2 .
Encontrar los polinomios p(x) y q (x) del aproximante diagonal de Pad de
grado l a partir del polinomio de Taylor a (x) .
Calcular la aproximacin de Pad B = r ( A1 ) = p ( A1 ) / q( A1 ) .

Algoritmo 5.2: Clculo de la funcin f ( A) = e i


de Pad.

Ah

mediante aproximantes diagonales

5.3.3 Algoritmo Basado en la Iteracin DB y en los Aproximantes


Diagonales de Pad
Este algoritmo consta de dos etapas. En la primera etapa se calcula B = A mediante el
mtodo iterativo DB con escalado (vase subapartado 2.2.3.3). En la segunda etapa se
calcula C = e iA1h mediante los aproximantes diagonales de Pad. A continuacin se
muestra este algoritmo completo.
B = zgeferdbp( A, h, l ) .
Entradas: Matriz A C nxn , tamao del paso h + , grado l Z + de los polinomios
del aproximante diagonal de Pad.
Salida:
1
2

Matriz B = ei

Ah

nxn

A1 = dgefrcdbe( A,10 15 ,100) (calcula A1 = A mediante Algoritmo 3.6 de la


pgina 101)
B = zgfexppsv( A) (calcula B = eiA1h mediante la adaptacin para matrices
complejas del Algoritmo 3.5 de la pgina 99)

Algoritmo 5.3: Clculo de la funcin f ( A) = e i Ah mediante la iteracin DB con


escalado y los aproximantes diagonales de Pad.

5.3.4 Resultados
Las matrices utilizadas en la pruebas se han obtenido a partir de los datos del problema
planteado, siendo sus tamaos iguales a 127, 271, 331, 721, 1027, 1261, 1387 y 1951.
Las mejores prestaciones del algoritmo basado en los aproximantes diagonales de Pad
(zgeferpad) se obtienen cuando el grado de los polinomios de la aproximacin diagonal
de Pad es igual a 9. En el caso del algoritmo basado en la iteracin DB con escalado y

218

Captulo 5: Resultados Experimentales

en los aproximantes diagonales de Pad (zgeferdbp), las mejoras prestaciones se


obtienen para un grado igual a 3.
Como medida del error cometido en el clculo de ei Ah se ha considerado el error
relativo correspondiente a la ecuacin conmutante, ya que la solucin exacta no es
conocida. De las pruebas realizadas se puede concluir que los algoritmos ms precisos
han resultado ser el Algoritmo 5.1 (zgefereig) y el Algoritmo 5.3 (zgeferdbp).
En la siguiente tabla se muestran los tiempos de ejecucin de las rutinas implementadas.
Te

n=127 n=271 n=331 n=721 n=1027 n=1261 n=1387 n=1951

zgefereig

0.093

0,163

1.469

22.15

64.847

114.53

156.37

402.90

zgeferpad

0.031

0.083

1.417

17.70

51.527

94.32

122.30

331.57

zgeferdbp

0.027

0.064

1.007

10.96

29.703

54.66

70.68

194.25

Tabla 5.27: Tiempos de ejecucin, en segundos, de las rutinas


zgefereig, zgeferpad y zgeferdbp.
Como se puede observar en la tabla anterior, la rutina ms rpida corresponde al
Algoritmo 5.3 (zgeferdbp).
A continuacin se muestran la relacin entre los tiempos de ejecucin, en segundos, de
las rutinas zgeferpad y zgeferdbp frente a la rutina zgefereig. Para ello se ha dividido el
tiempo de ejecucin de la rutina zgefereig (T) entre los tiempos de ejecucin de las
rutinas zgeferpad y zgeferdbp (Ti).
T/Ti

n=127 n=271 n=331 n=721 n=1027 n=1261 n=1387 n=1951

zgeferpad

3.000

1,964

1.037

1.251

1.259

1.214

1.279

1.215

zgeferdbp

3.444

2,547

1.459

2.021

2.183

2.095

2.212

2.074

Tabla 5.28: Relacin entre el tiempo de ejecucin de la rutina


zgefereig (T) y los tiempos de ejecucin (Ti) de las
rutinas zgeferpad y zgeferdbp.

219

Captulo 5: Resultados Experimentales

zgeferpad
zgeferdbp
4,000
3,500
3,000
T/Ti

2,500
2,000
1,500
1,000
0,500
0,000
n=127

n=271

n=331

n=721 n=1027 n=1261 n=1387 n=1951


Dimensin

Figura 5.9:

Relacin entre el tiempo de ejecucin de la rutina


zgefereig (T) y los tiempos de ejecucin (Ti) de las
rutinas zgeferpad y zgeferdbp.

Como conclusin, se puede decir que la rutina que presenta un mejor comportamiento,
en cuanto a precisin y menores tiempos de ejecucin, es la correspondiente al
algoritmo basado en la iteracin DB con escalado y en los aproximantes diagonales de
Pad (zgeferdbp).

5.4 Resolucin de EDOs


En las pruebas realizadas se han comparado los algoritmos descritos en la seccin 4.2
con un algoritmo basado en el mtodo BDF (vase subapartado 2.3.3.3.2). Este
algoritmo se muestra continuacin.

220

Captulo 5: Resultados Experimentales

Y = dgeedobdf (data, t , x0 , r , tol , maxiter ) .


Entradas: Funcin data (t , x) que devuelve la matriz Jacobiana J (t , x) nxn y el
vector f (t , x) n , vector de tiempos t l +1 , vector inicial x0 n ,
orden r Z + del mtodo BDF, tolerancia tol + del mtodo BDF,
nmero mximo de iteraciones maxiter Z + del mtodo BDF.
Salida:
1
2
3

Matriz Y = [ y 0 , y1 ,L , y l ] nx (l +1) , yi n , i = 0,1, L , l .

Inicializar y con los valores dados en la Tabla 2.4 (pgina 55)


y0 = x0 ; j = 0
Para i = 0 : l 1
3.1
t = ti +1 ti
3.2 j = j + 1 ; p = min(r , j )
3.3
Para k = p : 1 : 2
3.3.1 X (1 : n, k ) = X (1 : n, k 1)
3.4 X (1 : n,1) = yi ; f 0 = p1 X (1 : n,1)
3.5
3.6
3.7
3.8

Para k = 2 : p
3.5.1 f 0 = f 0 + pk X (1 : n, k )
yi +1 = yi
k =1
Mientras k maxiter (mtodo de Newton)
3.8.1 [ J , f ] = data(ti , yi +1 )
3.8.2 y = yi +1 + f 0 p f
3.8.3

3.9

J = I n t p J

3.8.4 Determinar y resolviendo la ecuacin Jy = y


3.8.5 Si norm(y ) < tol
3.8.5.1 Salir fuera del bucle
3.8.6 yi +1 = yi + y
3.8.7 k = k + 1
Si k = = maxiter
3.9.1 error (no hay convergencia)

Algoritmo 5.4: Resolucin de EDOs mediante el mtodo BDF.


Una breve descripcin de los algoritmos implementados y de sus parmetros
caractersticos aparece a continuacin.
dgeedobdf: Resuelve EDOs mediante el mtodo BDF.
r: orden del mtodo BDF.
tol: tolerancia utilizada en el mtodo de Newton.
maxiter: Nmero mximo de iteraciones utilizado en el mtodo de Newton.
dgeedolpn y dgeedolpa : Resuelven EDOs, no autnomas y autnomas, mediante
el mtodo de linealizacin a trozos basado en los aproximantes diagonales de
Pad de la funcin exponencial.

221

Captulo 5: Resultados Experimentales

q: grado de los polinomios de la aproximacin diagonal de Pad de la funcin


exponencial.
dgeedolcn y dgeedolca: Resuelven EDOs, no autnomas y autnomas, mediante
el mtodo de linealizacin a trozos basado en la ecuacin conmutante.
q: grado de los polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
dgeedolkn y dgeedolka: Resuelven EDOs, no autnomas y autnomas, mediante
el mtodo de linealizacin a trozos basado en los subespacios de Krylov.
p: dimensin del subespacios de Krylov.
tol: tolerancia en el mtodo de los subespacios de Krylov.
q: grado de los polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
Para cada caso de estudio se han determinado los valores de los parmetros
caractersticos que ofrecen mayor precisin con un menor coste computacional,
habindose realizado hasta tres tipos de pruebas:

Fijar el tamao del problema y el instante de tiempo, variando el incremento de


tiempo.

Fijar el tamao del problema y el incremento de tiempo, variando el instante de


tiempo.

Fijar el instante de tiempo y el incremento de tiempo, variando el tamao del


problema.

Para cada prueba se muestran:

Tabla que contiene los errores relativos cometidos.

Tabla con los costes computacionales en flops.

Tabla en la que se muestra la relacin entre el coste computacional, en flops, del


algoritmo basado en el mtodo BDF y los costes computacionales, en flops, de
los algoritmos basados en la linealizacin a trozos.

Grfica que muestra la relacin entre el coste computacional, en flops, del


algoritmo basado en el mtodo BDF y los costes computacionales, en flops, de
los algoritmos basados en la linealizacin a trozos.

En los casos de estudio que no tienen solucin analtica conocida se ha considerado


como solucin exacta, en un instante determinado, la obtenida a partir de la funcin de
MATLAB ode15s (vase Tabla 6.1, pgina 308).

5.4.1 EDOs Autnomas


Problema 5.1: El primer caso de estudio de una EDO autnoma ([Garc98]),
corresponde a una EDO definida como

x' =

x3
, t 0,
2

con la condicin inicial

222

Captulo 5: Resultados Experimentales

x(0) = 1 .
La solucin de esta EDO es
x(t ) =

1
1+ t

Los valores elegidos para los parmetros caractersticos se muestran a continuacin.

dgeedobdf: r=2, tol=1e-6, maxiter=100.

dgeedolpa: q=1.

dgeedolca: q=1.

dgeedolpa: p=2, tol=1e-6, q=1.

En la primera prueba se considera t=5 y se vara el incremento de tiempo t.


t=0.1

Er

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgeedobdf 3.883e-05 1.306e-05 6.563e-07 1.688e-07 6.905e-09 1.731e-09


dgeedolpa 4.467e-05 1.101e-05 4.353e-07 1.087e-07 4.342e-09 1.085e-09
dgeedolca 4.467e-05 1.101e-05 4.353e-07 1.087e-07 4.342e-09 1.085e-09
dgeedolka 4.467e-05 1.101e-05 4.353e-07 1.087e-07 4.342e-09 1.085e-09
Tabla 5.29: Errores relativos en el instante de tiempo t=5,
variando t.
Flops

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

dgeedobdf 2958

5058

21998

43998

219998

439998

dgeedolpa 1351

2701

13501

27001

135001

270001

dgeedolca 1051

2101

10501

21001

105001

210001

dgeedolka 3600

7200

36001

72001

360001

720001

Tabla 5.30: Nmero de flops en el instante de tiempo t=5,


variando t.

223

Captulo 5: Resultados Experimentales

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

F/Fi

dgeedolpa 2.189

1.873

1.629

1.629

1.630

1.630

dgeedolca 2.814

2.407

2.095

2.095

2.095

2.095

dgeedolka 0.822

0.703

0.611

0.611

0.611

0.611

Tabla 5.31: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar t.

Flops(dgeedobdf)/Flops(dgeedolpa)
Flops(dgeedobdf)/Flops(dgeedolca)
Flops(dgeedobdf)/Flops(dgeedolk a)
2.5

F/Fi

1.5

0.5
0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.10: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar t.
En la segunda prueba se considera t=0.1 y se vara el tiempo t.

224

Captulo 5: Resultados Experimentales

Er

t=10

t=20

t=30

t=40

t=50

t=60

dgeedobdf 2.343e-05 2.540e-05 2.034e-05 1.659e-05 1.392e-05 1.197e-05


dgeedolpa 2.653e-05 1.454e-05 1.001e-05 7.626e-06 6.160e-06 5.167e-06
dgeedolca 2.653e-05 1.454e-05 1.001e-05 7.626e-06 6.160e-06 5.167e-06
dgeedolka 2.653e-05 1.454e-05 1.001e-05 7.626e-06 6.160e-06 5.167e-06
Tabla 5.32: Errores relativos al considerar t=0.1 y variar el
tiempo t.
Flops

t=5

t=10

t=15

t=20

t=25

t=30

dgeedobdf 5158 9558

13958 18358 22758 27158

dgeedolpa 2701 5401

8101

10801 13501 16201

dgeedolca 2101 4201

6301

8401

10501 12601

dgeedolka 7200 14400 21600 28800 36000 43200


Tabla 5.33: Nmero de flops al considerar t=0.1 y variar el
tiempo t.
F/Fi

t=5

t=10

t=15

t=20

t=25

t=30

dgeedolpa 1.910 1.770 1.723 1.700 1.686 1.676


dgeedolca 2.455 2.275 2.215 2.185 2.167 2.155
dgeedolka 0.716 0.664 0.646 0.637 0.632 0.629
Tabla 5.34: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.1 y
variar el tiempo t.

225

Captulo 5: Resultados Experimentales

2.6
Flops(dgeedobdf )/Flops(dgeedolpa)
Flops(dgeedobdf )/Flops(dgeedolca)
Flops(dgeedobdf )/Flops(dgeedolk a)

2.4
2.2
2

F/Fi

1.8
1.6
1.4
1.2
1
0.8

10

15

20

25

30

Figura 5.11: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.1 y
variar el tiempo t.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:
A medida que se incrementa el tiempo, los errores relativos cometidos por los
algoritmos basados en la linealizacin a trozos son algo menores que los
cometidos por el algoritmo basado en el mtodo BDF (dgeedobdf).
Los algoritmos de linealizacin a trozos basados en los aproximantes diagonales
de Pad (dgeedolpa) y en la ecuacin conmutante (dgeedolca) tienen un coste
computacional menor que el algoritmo basado en el mtodo BDF (dgeedobdf).
El mayor coste computacional corresponde al algoritmo de linealizacin a trozos
basado en los subespacios de Krylov (dgeedolka).
Problema 5.2: El segundo caso de estudio de una EDO autnoma corresponde a la
ecuacin logstica ([Garc98]) definida como

x' = x(1 x) , t 0 ,
con la condicin inicial
x(0) = x 0 .
La solucin de esta EDO es
x(t ) =

x0
.
(1 x0 )e t + x0

En las pruebas realizadas se ha considerado = 2 y x0 = 2 . Los valores elegidos para


los parmetros caractersticos se muestran a continuacin.

dgeedobdf: r=2, tol=1e-6, maxiter=100.


226

Captulo 5: Resultados Experimentales

dgeedolpa: q=1.

dgeedolca: q=1.

dgeedolpa: p=2, tol=1e-6, q=1.

En la primera prueba se considera t=5 y se vara el incremento de tiempo t.


t=0.1

Er

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgeedobdf 3.397e-06 7.848e-07 2.876e-08 7.096e-09 2.807e-10 7.013e-11


dgeedolpa 7.486e-07 1.887e-07 7.566e-09 1.892e-09 7.567e-11 1.892e-11
dgeedolca 7.486e-07 1.887e-07 7.566e-09 1.892e-09 7.567e-11 1.892e-11
dgeedolka 7.486e-07 1.887e-07 7.566e-09 1.892e-09 7.567e-11 1.892e-11
Tabla 5.35: Errores relativos en el instante de tiempo t=5,
variando t.
Flops

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

dgeedobdf 2598

4918

21898

41398

189078

364338

dgeedolpa 1351

2701

13501

27001

135001

270001

dgeedolca 1051

2101

10501

21001

105001

210001

dgeedolka 3601

7201

36001

72001

360001

720001

Tabla 5.36: Nmero de flops en el instante de tiempo t=5,


variando t.

F/Fi

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

dgeedolpa 1.923

1.821

1.622

1.533

1.401

1.349

dgeedolca 2.472

2.341

2.085

1.971

1.801

1.735

dgeedolka 0.721

0.683

0.608

0.575

0.525

0.506

Tabla 5.37: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar t.

227

Captulo 5: Resultados Experimentales

Flops(dgeedobdf )/Flops(dgeedolpa)
Flops(dgeedobdf )/Flops(dgeedolca)
Flops(dgeedobdf )/Flops(dgeedolk a)

F/Fi

1.5

0.5
0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.12: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar t.
En la segunda prueba se considera t=0.1 y se vara el tiempo t.
Er

t=3

t=6

t=9

t=12

t=15

t=18

dgeedobdf 1.142e-04 5.437e-07 1.933e-09 6.109e-12 1.887e-14 2.220e-16


dgeedolpa 2.472e-05 1.212e-07 4.461e-10 1.460e-12 4.441e-15 2.220e-16
dgeedolca 2.472e-05 1.212e-07 4.461e-10 1.460e-12 4.441e-15 2.220e-16
dgeedolka 2.472e-05 1.212e-07 4.461e-10 1.460e-12 4.441e-15 2.220e-16
Tabla 5.38: Errores relativos al considerar t =0.1 y variar el
tiempo t.

228

Captulo 5: Resultados Experimentales

t=3

t=15

t=18

dgeedobdf 1718 2978 3698 4418 5138

5858

dgeedolpa 811

1621 2431 3241 4051

4861

dgeedolca 631

1261 1891 2521 3151

3781

Flops

t=6

t=9

t=12

dgeedolka 2161 4321 6481 8641 10801 12961


Tabla 5.39: Nmero de flops al considerar t=0.1 y variar el
tiempo t.
t=3

F/Fi

t=6

t=9

t=12

t=15

t=18

dgeedolpa 2.118 1.837 1.521 1.363 1.268 1.205


dgeedolca 2.723 2.362 1.956 1.752 1.631 1.549
dgeedolka 0.795 0.689 0.571 0.511 0.476 0.452
Tabla 5.40: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.1 y
variar el tiempo t.
3
Flops(dgeedobdf )/Flops(dgeedolpa)
Flops(dgeedobdf )/Flops(dgeedolca)
Flops(dgeedobdf )/Flops(dgeedolk a)

2.5

F/Fi

1.5

0.5

10
t

12

14

16

18

Figura 5.13: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.1 y
variar el tiempo t.
229

Captulo 5: Resultados Experimentales

De los resultados obtenidos se pueden extraer las siguientes conclusiones:


Los errores relativos cometidos por los algoritmos basados en el mtodo de
linealizacin son algo menores que los cometidos por el algoritmo basado en el
mtodo BDF (dgeedobdf).
Los algoritmos de linealizacin a trozos basados en los aproximantes diagonales
de Pad (dgeedolpa) y en la ecuacin conmutante (dgeedolca) tienen costes
computacionales menores que el algoritmo basado en el mtodo BDF
(dgeedobdf).
El mayor coste computacional corresponde al algoritmo basado en la linealizacin
a trozos mediante los subespacios de Krylov (dgeedolka).
Problema 5.3: El tercer caso de estudio corresponde a una EDO autnoma no lineal de
orden seis de tipo rgido ([LiSw98]) definida como

x' = f ( x) , t 0 , x = x(t ) 6 , 0 t 180 ,


con la condicin inicial
x(0) = [0.437, 0.00123, 0, 0, 0, 0.367]T ,
siendo
2r1 + r2 r3 r4
0 .5 r r 0 .5 r + F
1
4
5
in

r1 r2 + r3
f ( x) =
,
r2 r3 2r4

r2 r3 + 2r5

r5

donde ri , i = 1,2,3,4,5 , y Fin son variables auxiliares dadas por


r1 = k1 y14 y 20.5 ,
r2 = k 2 y 3 y 4 ,
r3 =

k2
y1 y5 ,
K

r4 = k 3 y1 y 42 ,
r5 = k 4 y 66 y 20.5 ,
p(CO2 )
Fin = klA
y2 .
H

Los valores de los parmetros k1 , k 2 , k 3 , k 4 , K , KlA , p (CO2 ) y H son


k1
k2
k3
k4

= 18.7,
= 0.58,
= 0.09,
= 0.42,

K = 34.4,
klA = 3.3,
p (CO2 ) = 3.3
H = 737.
230

Captulo 5: Resultados Experimentales

El problema proviene del centro de investigacin Akzo Novel Central Research de


Arnhem, en el que se modela un proceso qumico (para ms detalles, vase [LiSw98]).
Puesto que la matriz Jacobiana es en ocasiones singular, no se puede utilizar el mtodo
de linealizacin a trozos basado en la ecuacin conmutante (dgeedolca). En las pruebas
realizadas se comparan los otros tres mtodos, siendo los valores elegidos para los
parmetros caractersticos los que se muestran a continuacin.

dgeedobdf: r=2, tol=1e-6, maxiter=100.

dgeedolpa: q=1.

dgeedolka: p=3, tol=1e-6, q=1.

En la primera prueba se considera t=5 y se vara el incremento de tiempo t.


t=0.1

Er

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgeedobdf 7.418e-05 2.369e-05 1.235e-06 3.239e-07 1.254e-08 2.384e-09


dgeedolpa 1.348e-04 3.640e-05 9.074e-07 2.351e-07 8.720e-09 1.445e-09
dgeedolka 4.615e-04 9.971e-05 4.416e-06 1.130e-06 4.511e-08 1.054e-08
Tabla 5.41: Errores relativos en el instante de tiempo t=5,
variando t.
Flops

t=0.1

dgeedobdf 68915

t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005


134645

651012

1302056

6510424

13020896

dgeedolpa 231607 373113

964537

1929081

9645449

19290913

dgeedolka 33832

332848

665698

3328477

6656950

66898

Tabla 5.42: Nmero de flops en el instante de tiempo t=5,


variando t.
F/Fi

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

dgeedolpa 0.298

0.361

0.675

0.675

0.675

0.675

dgeedolka 2.037

2.013

1.956

1.956

1.956

1.956

Tabla 5.43: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar t.

231

Captulo 5: Resultados Experimentales

Flops(dgeedobdf )/Flops(dgeedolpa)
Flops(dgeedobdf )/Flops(dgeedolk a)

F/Fi

1.5

0.5

0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.14: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar t.
En la segunda prueba se considera t=0.01 y se vara el tiempo t.
t=5

Er

t=10

t=15

t=20

t=25

t=30

dgeedobdf 1.236e-06 1.218e-06 1.080e-06 9.033e-07 7.314e-07 5.838e-07


dgeedolpa 9.084e-07 9.398e-07 8.524e-07 7.170e-07 5.791e-07 4.585e-07
dgeedolka 4.417e-06 4.625e-06 4.350e-06 3.961e-06 3.169e-06 2.508e-06
Tabla 5.44: Errores relativos al considerar t=0.01 y variar el
tiempo t.
Flops

t=5

t=10

t=15

t=20

t=25

t=30

dgeedobdf 651012 1301512 1952012 2602668 3253168 3903668


dgeedolpa 964537 1928537 2892537 3856693 4820693 5784693
dgeedolka 332848 665848

998848

1331848 1664848 1997848

Tabla 5.45: Nmero de flops al considerar t=0.01 y variar el


tiempo t.

232

Captulo 5: Resultados Experimentales

F/Fi

t=5

t=10

t=15

t=20

t=25

t=30

dgeedolpa 0.675 0.675 0.675 0.675 0.675 0.675


dgeedolka 1.956 1.955 1.954 1.954 1.954 1.954
Tabla 5.46: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.01 y
variar el tiempo t.
2

1.8

1.6
Flops(dgeedobdf )/Flops(dgeedolpa)
Flops(dgeedobdf )/Flops(dgeedolk a)

F/Fi

1.4

1.2

0.8

10

15

20

25

30

Figura 5.15: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.01 y
variar el tiempo t.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:
No se puede utilizar el algoritmo de linealizacin a trozos basado en la ecuacin
conmutante (dgeedolca), por ser la matriz jacobiana no singular.
Los errores relativos cometidos por los otros tres algoritmos son semejantes,
aunque algo mayores en el caso del algoritmo de linealizacin a trozos basado en
los subespacios de Krylov (dgeedolka).
El algoritmo con menor coste computacional es el de linealizacin a trozos basado
en los subespacios de Krylov (dgeedolka) y el de mayor coste computacional el de
linealizacin a trozos basado en los aproximantes diagonales de Pad (dgeedolpa).
Problema 5.4: El cuarto caso de estudio proviene de una EDO autnoma no lineal de
tipo rgido ([LiSw98]) definida como

233

Captulo 5: Resultados Experimentales

x' = f ( x) , t 0 , x = x(t ) 8 , 0 t 321.8122 ,


con la condicin inicial
x(0) = [1, 0, 0, 0, 0, 0, 0, 0.0057]T ,
siendo
1.71 y1 + 0.43 y2 + 8.32 y3 + 0.0007

1.71 y1 8.75 y2

10.03 y3 + 0.43 y4 + 0.035 y5

8.32 y2 + 1.71 y3 1.12 y4


.

f ( x) =

1.745 y5 + 0.43 y6 + 0.43 y7

280 y6 y8 + 0.69 y4 + 1.71 y5 0.43 y6 + 0.69 y7

280 y6 y8 1.81y7

280 y6 y8 + 1.81y7

El problema describe la manera en que la luz se ve envuelta en un proceso de


morfognesis (para ms detalles, vase [LiSw98]).
Puesto que la matriz Jacobiana es en ocasiones singular, no se puede utilizar el mtodo
de linealizacin a trozos basado en la ecuacin conmutante (dgeedolca). En las pruebas
realizadas se comparan los otros tres mtodos, siendo los valores elegidos para los
parmetros caractersticos los que se muestran a continuacin.

dgeedobdf: r=3, tol=1e-6, maxiter=100.

dgeedolpa: q=1.

dgeedolka: p=4, tol=1e-6, q=1.

En la primera prueba se considera t=5 y se vara el incremento de tiempo t.


Er

t=0.1

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgeedobdf 4.247e-04 1.060e-04 4.104e-06 1.021e-06 4.066e-08 1.015e-08


dgeedolpa 4.357e-05 1.526e-05 4.833e-07 1.464e-07 5.852e-09 1.460e-09
dgeedolka 5.783e-05 1.040e-05 5.151e-07 1.366e-07 5.767e-09 1.450e-09
Tabla 5.47: Errores relativos en el instante de tiempo t=5,
variando t.

234

Captulo 5: Resultados Experimentales

t=0.1

Flops

t=0.05 t=0.01

t=0.005 t=0.001

t=0.0005

1807166

18073278

dgeedobdf 103407 198194

903502

dgeedolpa 563229 919485

2320075 3237239

16186679 32373499

dgeedolka 87281

628419

6281415

158617

1256679

9036520

12562747

Tabla 5.48: Nmero de flops en el instante de tiempo t=5,


variando t.
t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

F/Fi

dgeedolpa 0.184

0.216

0.389

0.558

0.558

0.558

dgeedolka 1.185

1.250

1.438

1.438

1.439

1.439

Tabla 5.49: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar t.

Flops(dgeedobdf )/Flops(dgeedolpa)
Flops(dgeedobdf )/Flops(dgeedolk a)

F/Fi

0.5

0
0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.16: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar t.
En la segunda prueba se considera t=0.01 y se vara el tiempo t.

235

Captulo 5: Resultados Experimentales

Er

t=50

t=100

t=150

t=200

t=250

t=300

dgeedobdf 1.860e-06 2.294e-06 2.989e-06 4.276e-06 7.425e-06 2.406e-05


dgeedolpa 7.245e-07 8.936e-07 1.164e-06 1.665e-06 2.892e-06 9.380e-06
dgeedolka 9.694e-07 1.195e-06 1.556e-06 2.221e-06 3.806e-06 9.309e-06
Tabla 5.50: Errores relativos al considerar t=0.01 y variar el
tiempo t.
Flops

t=50

dgeedobdf 9039384

t=100

t=150

t=200

18079194 27118984 36158864

t=250

t=300

45198754

54238534

dgeedolpa 31963104 58718104 85473104 106785016 122975016 139165016


dgeedolka 3260055

5465055

7670055

9875055

12080055

14285055

Tabla 5.51: Nmero de flops al considerar t=0.01 y variar el


tiempo t.
F/Fi

t=50

t=100 t=150 t=200 t=250 t=300

dgeedolpa 0.283 0.308 0.317 0.339 0.368 0.390


dgeedolka 2.773 3.308 3.536 3.662 3.742 3.797
Tabla 5.52: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.01 y
variar el tiempo t.

236

Captulo 5: Resultados Experimentales

4
3.5
3
Flops(dgeedobdf)/Flops(dgeedolpa)
Flops(dgeedobdf)/Flops(dgeedolk a)

F/Fi

2.5
2
1.5
1
0.5
0
50

100

150

200

250

300

Figura 5.17: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.01 y
variar el tiempo t.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:
No se puede utilizar el algoritmo de linealizacin a trozos basado en la ecuacin
conmutante (dgeedolca), por ser la matriz jacobiana no singular.
Los errores relativos cometidos por los otros tres algoritmos son semejantes,
aunque algo mayores en el caso del algoritmo basado en el mtodo BDF
(dgeedobdf).
El algoritmo con menor coste computacional es el de linealizacin a trozos basado
en los subespacios de Krylov (dgeedolka), y el de mayor coste computacional el
de linealizacin a trozos basado en los aproximantes diagonales de Pad
(dgeedolpa).

5.4.2 EDOs no autnomas


Problema 5.5: El primer caso de estudio de una EDO no autnoma ([Garc98])
corresponde a una EDO definida como

x' = (t x) 2 + 1 , t 3 ,
con la condicin inicial

x(3) = 2 .

237

Captulo 5: Resultados Experimentales

La solucin de esta EDO es


x(t ) = t +

1
.
2t

Los valores elegidos para los parmetros caractersticos se muestran a continuacin.

dgeedobdf: r=2, tol=1e-6, maxiter=100.

dgeedolpn: q=1.

dgeedolcn: q=1.

dgeedolkn: p=3, tol=1e-6, q=1.

En la primera prueba se considera t=4 y se varia el incremento de tiempo t.


Er

t=0.1

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgeedobdf 3.694e-04 8.889e-05 3.557e-06 8.908e-07 3.570e-08 8.926e-09


dgeedolpn 1.269e-16 1.269e-16 1.269e-16 2.538e-16 1.269e-16 6.344e-16
dgeedolcn 1.269e-16 1.269e-16 7.613e-16
dgeedolkn 1.269e-16 1.269e-16

3.806e-16 6.344e-16

1.269e-16 7.613e-16 6.344e-16

Tabla 5.53: Errores relativos en el instante de tiempo t=4,


variando t.
Puesto que para un incremento de tiempo igual a 0.1 los mtodos de linealizacin a
trozos presentan un error muy pequeo, solo se van a representar lo resultados
obtenidos para este incremento.
Flops

t=0.1

dgeedobdf 2958
dgeedolpn 1351
dgeedolcn 1051
dgeedolkn 3600
Tabla 5.54: Nmero de flops para t=4 y t=0.1.

238

Captulo 5: Resultados Experimentales

t=0.1

F/Fi

dgeedolpn 2.189
dgeedolcn 2.814
dgeedolkn 0.822
Tabla 5.55: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=4 y
t=0.1.
En la segunda prueba se considera t=0.1 y se vara el tiempo t.
t=3.5

Er

t=4

t=4.5

t=5

t=5.5

t=6

dgeedobdf 1.463e-03 3.694e-04 1.081e-04 2.951e-05 2.748e-06 6.608e-06


1.269e-16

dgeedolcn 1.567e-16 1.269e-16

dgeedolkn 1.567e-16 1.269e-16

dgeedolpn

1.545e-16

1.903e-16 3.407e-16 1.545e-16


0

1.545e-16

Tabla 5.56: Errores relativos al considerar t=0.1 y variar el


tiempo t.
Flops

t=3.5 t=4

t=4.5 t=5

t=5.5 t=6

dgeedobdf 318

638

958

1278 1598 1918

dgeedolpn 166

330

495

660

824

989

dgeedolcn 136

271

406

541

676

811

dgeedolkn 1736 3471 5206 6956 8706 10456


Tabla 5.57: Nmero de flops al considerar t=0.1 y variar el
tiempo t.

239

Captulo 5: Resultados Experimentales

F/Fi

t=3.5

t=4

t=4.5

t=5

t=5.5

t=6

dgeedolpn 1.916 1.933 1.935 1.936 1.939 1.939


dgeedolcn 2.338 2.354 2.360 2.362 2.364 2.365
dgeedolkn 0.183 0.184 0.184 0.184 0.184 0.183
Tabla 5.58: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.1 y
variar el tiempo t.
2.5

1.5

F/Fi

Flops(dgeedobdf )/Flops(dgeedolpn)
Flops(dgeedobdf )/Flops(dgeedolcn)
Flops(dgeedobdf )/Flops(dgeedolk n)
1

0.5

0
3.5

4.5

5.5

Figura 5.18: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.1 y
variar el tiempo t.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:
Los errores relativos cometidos por los algoritmos de linealizacin a trozos son
mucho menores que los cometidos por el algoritmo basado en el mtodo BDF
(dgeedobdf).
Los algoritmos de linealizacin a trozos basados en los aproximantes diagonales
de Pad (dgeedolpn) y en la ecuacin conmutante (dgeedolcn) tienen un coste
computacional menor que el algoritmo basado en el mtodo BDF (dgeedobdf).
El mayor coste computacional corresponde al algoritmo de linealizacin a trozos
basado en los subespacios de Krylov (dgeedolkn).

240

Captulo 5: Resultados Experimentales

Problema 5.6: El segundo caso de estudio de una EDO no autnoma ([AsPe91], pgina
153) corresponde a una EDO definida como

x' = ( x sen t ) + cos t , t 0 ,


con la condicin inicial
x(0) = 1 ,
cuya solucin viene dada por la expresin
x(t ) = e t + sen t .
En las pruebas realizadas se ha considerado = 2 , siendo los valores elegidos para los
parmetros caractersticos los que se muestran a continuacin.

dgeedobdf: r=3, tol=1e-6, maxiter=100.

dgeedolpn: q=1.

dgeedolcn: q=1.

dgeedolkn: p=3, tol=1e-6, q=1.

En la primera prueba se considera t=5 y se vara el incremento de tiempo t.


t=0.1

Er

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgeedobdf 4.705e-02 9.254e-03 2.803e-04 6.702e-05 1.996e-03 6.421e-07


dgeedolpn 3.380e-02 8.302e-03 3.301e-04 8.251e-05 1.995e-03 8.250e-07
dgeedolcn 3.380e-02 8.302e-03 3.301e-04 8.251e-05 1.995e-03 8.250e-07
dgeedolkn 3.380e-02 8.302e-03 3.301e-04 8.251e-05 1.995e-03 8.250e-07
Tabla 5.59: Errores relativos en el instante de tiempo t=5,
variando el incremento de tiempo t.
Flops

t=0.1

t=0.05 t=0.01

t=0.005 t=0.001

t=0.0005

dgeedobdf

2543

5093

25493

50993

254942

509993

dgeedolpn

1851

3701

18501

37001

184964

370001

dgeedolcn

1301

2601

13001

26001

129975

260001

dgeedolkn

15136

28126

133379

264460

1292732

2555052

Tabla 5.60: Nmero de flops en el instante de tiempo t=5,


variando el incremento de tiempo t.

241

Captulo 5: Resultados Experimentales

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

F/Fi

dgeedolpn 1.374

1.376

1.378

1.378

1.378

1.378

dgeedolcn 1.955

1.958

1.961

1.961

1.961

1.962

dgeedolkn 0.168

0.181

0.191

0.193

0.197

0.200

Tabla 5.61: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar el incremento de tiempo t.

F/Fi

1.5

Flops(dgeedobdf)/Flops(dgeedolpn)
Flops(dgeedobdf)/Flops(dgeedolcn)
Flops(dgeedobdf)/Flops(dgeedolk n)

0.5

0
0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.19: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=5 y
variar el incremento de tiempo t.
En la segunda prueba se vara el tiempo t entre 5 y 30. Por problemas de convergencia
en el mtodo BDF, se ha aumentado el nmero de iteraciones maxiter a 10000. Se ha
comprobado que aunque el incremento de tiempo se disminuyera, el mtodo BDF no
converge para valores de tiempo mayores que 15. En las siguientes tablas se muestran
los resultados obtenidos al considerar t=0.1.

242

Captulo 5: Resultados Experimentales

t=5

Er

t=10

t=15

t=20

dgeedobdf 4.705e-02 6.383e-02 8.542e-01 Error

t=25

t=30

Error

Error

dgeedolpn 3.380e-02 6.906e-02 1.055e-01 6.464e-02 3.274e-02 2.452e-04


dgeedolcn 3.380e-02 6.906e-02 1.055e-01 6.464e-02 3.274e-02 2.452e-04
dgeedolkn 3.380e-02 6.906e-02 1.055e-01 6.464e-02 3.274e-02 2.444e-04
Tabla 5.62: Errores relativos al considerar t=0.1 y variar el
tiempo t.
t=5

t=10

dgeedobdf 2542

5092

217069 217069 217069 217069

dgeedolpn 1901

3801

5701

7563

9463

11363

dgeedolcn 1351

2701

4051

5374

6724

8074

43510

53860

64210

Flops

t=15

dgeedolkn 12553 22939 33325

t=20

t=25

t=30

Tabla 5.63: Nmero de flops al considerar t=0.1 y variar el


tiempo t.
F/Fi

t=5

t=10

t=15

t=20

t=25

t=30

dgeedolpn 1.337 1.340 38.076 28.701 22.939 19.103


dgeedolcn 1.882 1.885 53.584 40.392 32.283 26.885
dgeedolkn 0.203 0.222 6.514

4.989

4.030

3.381

Tabla 5.64: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.1 y
variar el tiempo t.

243

Captulo 5: Resultados Experimentales

60

50

F/Fi

40

30

20
Flops(dgeedobdf )/Flops(dgeedolpn)
Flops(dgeedobdf )/Flops(dgeedolcn)
Flops(dgeedobdf )/Flops(dgeedolk n)

10

10

15

20

25

30

Figura 5.20: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgeedobdf) y
el nmero de flops (Fi) de los algoritmos basados
en la linealizacin a trozos, al considerar t=0.1 y
variar el tiempo t.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:
El algoritmo basado en el mtodo BDF (dgeedobdf) tiene problemas de
convergencia. En caso de convergencia del mtodo BDF, los errores relativos
cometidos por los cuatro algoritmos son similares.
Los algoritmos con menor coste computacional corresponden al de linealizacin a
trozos basado en los aproximante diagonales de Pad (dgeedolpn) y al de
linealizacin a trozos basado en la ecuacin conmutante (dgeedolcn). El algoritmo
con mayor coste computacional corresponde al de linealizacin a trozos basado en
los subespacios de Krylov (dgeedolkn).
Problema 5.7: El tercer caso de estudio de una EDO no autnoma ([LiSw98]),
corresponde a una EDO de tipo rgido definida como

x' = f (t , x) , x = x(t ) 2 N , 0 t 20 ,
con la condicin inicial
x(0) = [0, v0 , 0, v0 , L ,0, v0 ]T 2 N ,
siendo N = 200 .
La funcin f est definida como
f 2 j 1 = j

y 2 j +1 y 2 j 3
2

+ j

y 2 j 3 2 y 2 j 1 + y 2 j +1
( ) 2

ky2 j 1 y 2 j ,

f 2 j = ky2 j y 2 j 1 ,

244

Captulo 5: Resultados Experimentales

siendo

j =

2( j 1) 3
,
c2

j =

( j 1) 4
,
c2

Los valores de j se encuentran comprendidos entre 1 y N , = 1 / N . y 1 (t ) = (t ) ,


y 2 N +1 = y 2 N 1 , siendo
2 , t (0,5]
.
0, t (5,20]

(t ) =

Este problema proviene del estudio de la penetracin de anticuerpos irradiados en un


tejido que est infectado por un tumor, procedente de los laboratorios de investigacin
Akzo Nobel.
Los valores elegidos de k , v 0 y c han sido 100, 1 y 4, respectivamente.
Este caso de estudio es interesante pues permite comparar los algoritmos para EDOs de
gran dimensin. Puesto que la solucin analtica no es conocida, se presentan
nicamente los resultados correspondientes a los tiempos de ejecucin de las
implementaciones realizadas en FORTRAN, aunque se ha comprobado que las
soluciones dadas por las implementaciones han sido similares. Al ser la matriz
Jacobiana singular, el algoritmo basado en la linealizacin a trozos mediante la ecuacin
conmutante (dgeedolpn) no se puede utilizar. Los valores elegidos para los parmetros
caractersticos son los siguientes:

dgeedobdf: r=2, tol=1e-14, maxiter=100.

dgeedolpn: q=1.

dgeedolkn: p=2, tol=1e-14, q=1.

En la siguiente tabla se muestran los tiempos de ejecucin, en segundos, de las tres


implementaciones en FORTRAN al considerar t=1.0e-6 y variar el tiempo.
Te

t=1.0e-5

t=1.0e-4

t=1.0e-3 t=1.0e-2 t=1.0e-1

dgeedobdf 0.85619

8.5590

74.806

734.80

7333.9

dgeedolpn 0.79621

7.9022

78.901

783.92

7908.3

dgeedolkn 0.45720e-02 0.45450e-01 .45433

4.5451

45.468

Tabla 5.65: Tiempos de ejecucin, en segundos, al considerar


t=1.0e-6 y variar el tiempo t.

245

Captulo 5: Resultados Experimentales

Te/Tei

t=1.0e-5 t=1.0e-4 t=1.0e-3 t=1.0e-2 t=1.0e-1

dgeedolpn 1.08

1.08

0.95

0.94

0.93

dgeedolkn 187.27

188.32

164.65

161.67

161.30

Tabla 5.66: Relacin entre el tiempo de ejecucin (Te) de la


implementacin basada en el mtodo BDF
(dgeedobdf) y el tiempo de ejecucin (Tei) de las
implementaciones basadas en la linealizacin a
trozos, al considerar t=1.0e-6 y variar el tiempo t.
De los resultados obtenidos se deduce que la rutina de linealizacin a trozos basada en
los subespacios de Krylov ha resultado ser, aproximadamente, 160 veces ms rpida
que las otras dos rutinas. Este resultado reafirma el hecho de que para problemas de
mediana o gran dimensin, el algoritmo basado en la linealizacin a trozos mediante los
subespacios de Krylov tiene un coste computacional menor o mucho menor que los
correspondientes al resto de los algoritmos.

5.5 Resolucin de EDMRs


En las pruebas realizadas se han comparado los algoritmos descritos en el 4.3 con dos
algoritmos basados en el mtodo BDF (vase subapartado 2.4.2.3, pgina 62). En estos
algoritmos se debe resolver la ecuacin matricial de Sylvester. Aunque MATLAB
dispone de la funcin lyap, que permite resolver ecuaciones matriciales de Sylvester y
ecuaciones de matriciales Lyapunov, en las pruebas se ha utilizado la funcin dgesyl,
que a continuacin se muestra, por tener un coste computacional menor que la funcin
lyap.
X = dgesyl ( A, B, C ) .
Entradas: Matrices A mxm , B nxn y C mxn .
Salida:

Matriz X mxn
AX + XB = C .

solucin de la ecuacin matricial de Sylvester

1
2

[Qa , A] = schur ( A)
[Qb , B] = schur ( B)

3
4
5

C = QaT CQb
C = dtrsyl ( A, B, C ) (Algoritmo 3.14, pgina 116)
C = Qa CQbT

Algoritmo 5.5: Resolucin de la ecuacin matricial de Sylvester.


A continuacin se presentan dos algoritmos que resuelven EDMRs, uno para
coeficientes variables y otro para coeficientes constantes, mediante el mtodo BDF.

246

Captulo 5: Resultados Experimentales

Y = dgedmrbdv(t , data, X 0 , r , tol , maxiter ) .


Entradas: Vector de tiempos t l +1 , funcin data (t ) que calcula las matrices
coeficiente de la EDMR A11 (t ) nxn , A12 (t ) nxm , A21 (t ) mxn ,
A22 (t ) mxm , matriz inicial X 0 mxn , orden r Z + del mtodo BDF,
tolerancia tol + del mtodo BDF, nmero mximo de iteraciones
maxiter Z + del mtodo BDF.
Salida:
1
2
3

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

Inicializar y con los valores dados en la Tabla 2.4


Y0 = X 0 ; j = 0
Para i = 0 : l 1
3.1 t = ti +1 ti ; j = j + 1 ; p = min(r , j )
3.2
Para k = p : 1 : 2
3.2.1 X (1 : m,1 : n, k ) = X (1 : m,1 : n, k )
3.3 X (1 : m,1 : n,1) = Yi ; C 0 = p1 X (1 : m,1 : n,1)
3.4
3.5
3.6
3.7
3.8

3.9

Para k = 2 : p
3.4.1 C 0 = C 0 + pk X (1 : m,1 : n, k )
[ A11 , A12 , A21 , A22 ] = data (t i )
C11 = t r A11 + 0.5I n ; C12 = t r A12 ; C 22 = t r A22 0.5I n
k =0
Mientras k < maxiter (mtodo de Newton)
3.8.1 k = k + 1
3.8.2 A = C 22 Yi C12
3.8.3 B = C0 + Yi t (r1 )( A21 + A22Yi Yi A11 Yi A12Yi )
3.8.4 Y = dgesyl( A, B, C )
3.8.5 Si norm(Y ) < tol
3.8.5.1 Salir fuera del bucle
3.8.6 Yi +1 = Yi + Y
Si k = = maxiter
3.9.1 error (no hay convergencia)

Algoritmo 5.6: Resolucin de EDMRs con coeficientes variables mediante el mtodo


BDF.

247

Captulo 5: Resultados Experimentales

Y = dgedmrbdc(t , data, X 0 , r , tol , maxiter ) .


Entradas: Vector de tiempos t l +1 , funcin data (t ) que devuelve las matrices
coeficiente de la EDMR A11 nxn , A12 nxm , A21 mxn , A22 mxm ,
matriz inicial X 0 mxn , orden r Z + del mtodo BDF, tolerancia

tol + del mtodo BDF, nmero mximo de iteraciones maxiter Z +


del mtodo BDF.
Salida:
1
2
3

Matriz a bloques Y = [Y0 , Y1 , L , Yl ] ( mn )( l +1) , Yi mxn , i = 0,1, L, l .

Inicializar y con los valores dados en la Tabla 2.4 (pgina 55)


[ A11 , A12 , A21 , A22 ] = data (t ) ; Y0 = X 0 ; j = 0
Para i = 0 : l 1
3.1
t = ti +1 ti
3.2 j = j + 1 ; p = min(r , j )
3.3
Para k = p : 1 : 2
3.3.1 X (1 : m,1 : n, k ) = X (1 : m,1 : n, k )
3.4 X (1 : m,1 : n,1) = Yi ; C0 = p1 X (1 : m,1 : n,1)
3.5
3.6
3.7
3.8

3.9

Para k = 2 : p
3.5.1 C0 = C0 + pk X (1 : m,1 : n, k )
C11 = t r A11 + 0.5I n ; C12 = t r A12 ; C 22 = t r A22 0.5I n
k =0
Mientras k < maxiter (mtodo de Newton)
3.8.1 k = k + 1
3.8.2 A = C 22 Yi C12
3.8.3 B = C0 + Yi t (r1 )( A21 + A22Yi Yi A11 Yi A12Yi )
3.8.4 Y = dgesyl ( A, B, C )
3.8.5 Si norm(Y ) < tol
3.8.5.1 Salir fuera del bucle
3.8.6 Yi +1 = Yi + Y
Si k = = maxiter
3.9.1 error (no hay convergencia)

Algoritmo 5.7: Resolucin de EDMRs con coeficientes constantes mediante el mtodo


BDF.
Una breve descripcin de los algoritmos implementados y de sus parmetros
caractersticos aparece a continuacin.
dgedmrbdv y dgedmrbdc: Resuelven EDMRs mediante el mtodo BDF.
r: orden del mtodo BDF.
tol: tolerancia utilizada en el mtodo de Newton.
maxiter: nmero mximo de iteraciones utilizado en el mtodo Newton.
dgedmrlpv y dgedmrlpc: Resuelven EDMRs, de coeficientes variables y de
coeficientes constantes, mediante el mtodo de linealizacin a trozos basado en
los aproximantes diagonales de Pad de la funcin exponencial.
248

Captulo 5: Resultados Experimentales

q: grado de los polinomios de la aproximacin diagonal de Pad de la funcin


exponencial.
dgedmrlcv y dgedmrlcc: Resuelven EDMRs, de coeficientes variables y de
coeficientes constantes, mediante el mtodo de linealizacin a trozos basado en la
ecuacin conmutante.
q: grado de los polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
dgedmrlkv y dgedmrlkc: Resuelven EDMRs, de coeficientes variables y de
coeficientes constantes, mediante el mtodo de linealizacin a trozos basado en
los subespacios de Krylov.
p: dimensin del subespacio de Krylov.
tol: tolerancia en el mtodo de los subespacio de Krylov.
q: grado de los polinomios de la aproximacin diagonal de Pad de la funcin
exponencial.
Para cada caso de estudio se han determinado los valores de los parmetros
caractersticos que ofrecen mayor precisin con un menor coste computacional,
habindose realizado tres tipos de pruebas:

Fijar el tamao del problema y el instante de tiempo, variando el incremento de


tiempo.

Fijar el tamao del problema y el incremento de tiempo, variando el instante de


tiempo.

Fijar el instante de tiempo y el incremento de tiempo, variando el tamao del


problema.

Para cada prueba se muestran:

Tabla que contiene los errores relativos cometidos.

Tabla con los costes computacionales en flops o tiempos de ejecucin en


segundos.

Tabla en la que se presentan la relacin entre el coste computacional del


algoritmo basado en el mtodo BDF y los correspondientes a los algoritmos
basados en la linealizacin a trozos.

Grfica que muestra la relacin entre el coste computacional del algoritmo


basado en el mtodo BDF y los correspondientes a los algoritmos basados en la
linealizacin a trozos.

5.5.1 EDMRs con Coeficientes Constantes


Problema 5.8: El primer caso de estudio de EDMRs con coeficientes constantes
proviene de un problema de ecuaciones diferenciales con condiciones de contorno que
puede verse en [Prue86]. La EDMR est definida para t 0 mediante las matrices
coeficiente

0
0
0
0 1
0 1
0
A11 =
, A12 =
, A21 =
, A22 =

,
100 1
100 0
10 0
10 1

249

Captulo 5: Resultados Experimentales

y la condicin inicial
0 0
X (0) =
.
1 0
La solucin aproximada de la EDMR es
1 0.110
X =
,
0 0.1

( 5.2 )

siempre que el valor de t sea elevado.


Los valores elegidos para los parmetros caractersticos se muestran a continuacin.

dgedmrbdc: r=3, tol=1e-6, maxiter=100.

dgedmrlpc: q=1.

dgedmrlcc: q=1.

dgedmrlkc: p=3, tol=1e-6, q=1.

En la primera prueba se considera t=1 y se vara el incremento de tiempo t.


t=0.1

Er

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgedmrbdc 2.450e-01 9.783e-02 5.439e-03 1.399e-03 1.338e-04 1.803e-04


dgedmrlpc

1.243e-01 3.284e-02 1.076e-03 2.694e-04 3.883e-05 3.817e-05

dgedmrlcc

1.229e-01 2.857e-02 8.464e-04 2.694e-04 3.883e-05 3.817e-05

dgedmrlkc

7.258e-02 1.727e-02 7.122e-04 1.810e-04 3.831e-05 3.821e-05

Tabla 5.67: Errores relativos en el instante de tiempo t=1,


variando el incremento de tiempo t.
t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

Flops

dgedmrbdc 30498

38816

150240

287912

1214363

2335679

dgedmrlpc

4667

8101

36995

73981

370423

740975

dgedmrlcc

9171

17517

87948

173892

872894

1740458

dgedmrlkc

5899

10705

52840

105742

526430

1037864

Tabla 5.68: Nmero de flops en el instante de tiempo t=1,


variando el incremento de tiempo t.

250

Captulo 5: Resultados Experimentales

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

F/Fi

dgedmrlpc 6.535

4.792

4.061

3.892

3.278

3.152

dgedmrlcc 3.325

2.216

1.708

1.656

1.391

1.342

dgedmrlkc 5.170

3.626

2.843

2.723

2.307

2.250

Tabla 5.69: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1 y variar el incremento de tiempo t.

Flops(dgedmrbdc )/Flops(dgedmrlpc )
Flops(dgedmrbdc )/Flops(dgedmrlcc )
Flops(dgedmrbdc )/Flops(dgedmrlk c )

6.5
6
5.5
5

F/Fi

4.5
4

3.5
3
2.5
2
1.5
1
0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.21: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1 y variar t.
En la segunda prueba se considera t=0.1 y se vara el tiempo t.

251

Captulo 5: Resultados Experimentales

t=5

Er

t=10

t=15

t=20

t=25

t=30

dgedmrbdc 5.727e-03 3.884e-05 9.581e-06 9.581e-06 9.581e-06 9.581e-06


dgedmrlpc

2.556e-03 1.724e-05 1.161e-07 7.812e-10 5.258e-12 3.561e-14

dgedmrlcc

2.523e-03 1.702e-05 1.146e-07 7.713e-10 5.191e-12 3.498e-14

dgedmrlkc

1.417e-03 9.520e-06 6.389e-08 4.290e-10 2.887e-12 1.972e-14

Tabla 5.70: Errores relativos al considerar t=0.1 y variar el


tiempo t.
Flops

t=5

t=10

t=15

t=20

t=25

t=30

dgedmrbdc 94799 159837 200219 231569 262919 294269


dgedmrlpc

22187 44087

65987

87887

dgedmrlcc

44074 88043

132908 176516 219373 262641

dgedmrlkc

20057 35407

50407

68071

109787 131687

97279

126703

Tabla 5.71: Nmero de flops al considerar t=0.1 y variar el


tiempo t.
F/Fi

t=5

t=10

t=15

t=20

t=25

t=30

dgedmrlpc 4.273 3.625 3.034 2.635 2.395 2.235


dgedmrlcc 2.151 1.815 1.506 1.312 1.199 1.120
dgedmrlkc 4.726 4.514 3.972 3.402 2.703 2.323
Tabla 5.72: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=0.1 y variar el tiempo t.

252

Captulo 5: Resultados Experimentales

5
Flops(dgedmrbdc )/Flops(dgedmrlpc )
Flops(dgedmrbdc )/Flops(dgedmrlcc )
Flops(dgedmrbdc )/Flops(dgedmrlk c )

4.5
4

F/Fi

3.5
3

2.5
2
1.5
1
5

10

15

20

25

30

Figura 5.22: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=0.1 y variar el tiempo t.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:
A medida que se incrementa el tiempo, los errores relativos cometidos por los
algoritmos basados en la linealizacin son menores que el correspondiente al
algoritmo basado en el mtodo BDF (dgedmrbdc).
Los algoritmos basados en la linealizacin a trozos tienen un coste computacional
menor que el correspondiente al mtodo BDF (dgedmrbdc), destacando entre ellos
el basado en los subespacios de Krylov (dgedmrlpc), seguido por el basado en los
aproximantes diagonales de Pad (dgedmrlpc).
Problema 5.9: El segundo caso de estudio de EDMRs con coeficientes constantes
([Meyer73]) consiste en la EDMR definida por

A11 = A22 = 0 n , A12 = A21 = I n , X 0 = 0 n ,


donde el tamao del problema puede hacerse tan grande como se quiera, siendo > 0
un parmetro caracterstico del problema.
La solucin a este problema est dada por

X (t ) = ( X 0 + I )et ( X 0 I )e t

] [ ( X
1

+ I )et + ( X 0 I )e t ,

lo que permite determinar los errores cometidos en la resolucin de la ecuacin.


Los valores elegidos para los parmetros caractersticos en este caso de estudio se
muestran a continuacin.

dgedmrbdc: r=2, tol=1e-6, maxiter=100.

dgedmrlpc: q=1.

253

Captulo 5: Resultados Experimentales

dgedmrlcc: q=1.

dgedmrlkc: p=2, tol=1e-6, q=1.

En la primera prueba se comparan los cuatro algoritmos al considerar n=2 y t=1,


variando el incremento de tiempo t.
t=0.1

Er

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgedmrbdc 1.551e-03 3.241e-04 3.137e-05 7.862e-06 3.151e-07 7.880e-08


dgedmrlpc

1.552e-03 3.825e-04 1.513e-05 3.779e-06 1.510e-07 3.774e-08

dgedmrlcc

1.552e-03 3.825e-04 1.513e-05 3.779e-06 1.510e-07 3.774e-08

dgedmrlkc

1.845e-03 4.599e-04 1.838e-05 4.595e-06 1.838e-07 4.595e-08

Tabla 5.73: Errores relativos para n=2 y t=1, variando el


incremento de tiempo t.
t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

Flops

dgedmrbdc 13519

26147

87427

174827

874027

1748027

dgedmrlpc

2385

4765

23805

47605

238005

476005

dgedmrlcc

4853

10123

52283

104983

526583

1053583

dgedmrlkc

2874

5734

28614

57214

286014

572014

Tabla 5.74: Nmero de flops para n=2 y t=1, variando el


incremento de tiempo t.
F/Fi

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

dgedmrlpc 5.668

5.487

3.673

3.672

3.672

3.672

dgedmrlcc 2.786

2.583

1.672

1.665

1.660

1.659

dgedmrlkc 4.704

4.560

3.055

3.056

3.056

3.056

Tabla 5.75: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=1 y variar el incremento de tiempo t.

254

Captulo 5: Resultados Experimentales

Flops(dgedmrbdc )/Flops(dgedmrlpc )
Flops(dgedmrbdc )/Flops(dgedmrlcc )
Flops(dgedmrbdc )/Flops(dgedmrlk c )

5.5
5
4.5

F/Fi

4
3.5
3
2.5
2
1.5
0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.23: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=0.1 y variar el tiempo t.
En la segunda prueba se comparan los cuatro algoritmos para n=2 y t=0.1, variando el
instante t de tiempo.
t=5

Er

t=10

t=15

t=20

t=25

t=30

dgedmrbdc 9.511e-06 4.718e-06 4.722e-06 4.722e-06 4.722e-06 4.722e-06


dgedmrlpc

1.228e-06 8.956e-11 5.662e-15 2.220e-16 2.220e-16 2.220e-16

dgedmrlcc

1.228e-06 8.956e-11 5.662e-15 2.220e-16 2.220e-16 2.220e-16

dgedmrlkc

2.994e-06 2.674e-10 1.799e-14 2.220e-16 2.220e-16 2.220e-16

Tabla 5.76: Errores relativos para n=2 y t=0.1, variando el


tiempo t.

255

Captulo 5: Resultados Experimentales

t=5

Flops

t=10

t=15

t=20

t=25

t=30

dgedmrbdc 54095 82243 104343 126443 148543 170643


dgedmrlpc

11905 23805 35705

47605

59505

dgedmrlcc

25933 52283 78633

104983 131333 157683

dgedmrlkc

14314 28614 42914

57214

71514

71405

85814

Tabla 5.77: Nmero de flops para n=2 y t=0.1, variando el


tiempo t.
F/Fi

t=5

t=10

t=15

t=20

t=25

t=30

dgedmrlpc 4.544 3.455 2.922 2.656 2.496 2.390


dgedmrlcc 2.086 1.573 1.327 1.204 1.131 1.082
dgedmrlkc 3.779 2.874 2.431 2.210 2.077 1.989
Tabla 5.78: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=0.1 y variar el tiempo t.
5
Flops(dgedmrbdc )/Flops(dgedmrlpc )
Flops(dgedmrbdc )/Flops(dgedmrlcc )
Flops(dgedmrbdc )/Flops(dgedmrlk c )

4.5
4

F/Fi

3.5
3

2.5
2
1.5
1
5

10

15

20

25

30

Figura 5.24: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=0.1 y variar el tiempo.
256

Captulo 5: Resultados Experimentales

En la tercera prueba se comparan los cuatro algoritmos considerando t=1, t=0.1, y


variar el tamao n del problema.
n=5

Er

n=10

n=15

n=20

n=25

n=30

dgedmrbdc 1.551e-03 1.551e-03 1.551e-03 1.551e-03 1.551e-03 1.551e-03


dgedmrlpc

1.552e-03 1.552e-03 1.552e-03 1.552e-03 1.552e-03 1.552e-03

dgedmrlcc

1.552e-03 1.552e-03 1.552e-03 1.552e-03 1.552e-03 1.552e-03

dgedmrlkc

1.845e-03 1.845e-03 1.845e-03 1.845e-03 1.845e-03 1.845e-03

Tabla 5.79: Errores relativos para t=1 y t=0.1, variando el


tamao n del problema.
n=5

Flops

n=10

n=15

n=20

n=25

n=30

dgedmrbdc 138530 906335 2830190 6437095 12254050 20808055


dgedmrlpc

25086

170161 540286

1240461 2375686

4050961

dgedmrlcc

48962

314197 972482

2200817 4176202

7075637

dgedmrlkc

23907

153402 478947

1090542 2078187

3531882

Tabla 5.80: Nmero de flops para t=1 y t=0.1, variando el


tamao n del problema.
F/Fi

n=5

dgedmrlpc 5.84

n=10 n=15 n=20 n=25 n=30


5.69

5.63

5.60

5.58

5.57

dgedmrlcc 3.16 3.21

3.23

3.23

3.24

3.24

dgedmrlkc 6.48 6.47

6.46

6.45

6.45

6.44

Tabla 5.81: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1, t=0.1 y variar el tamao n del problema.

257

Captulo 5: Resultados Experimentales

5.5

5
Flops(dgedmrbdc)/Flops(dgedmrlpc)
Flops(dgedmrbdc)/Flops(dgedmrlcc)
Flops(dgedmrbdc)/Flops(dgedmrlkc)

F/Fi

4.5

3.5

2.5
5

10

15

20

25

30

Figura 5.25: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=0.1 y variar el tamao n del problema.
Para comprobar el comportamiento de los algoritmos cuando el tamao de la matriz es
elevado, se han realizado pruebas con las implementaciones FORTRAN para tamaos
del problema 500 y 1000. A continuacin se presentan los resultados obtenidos en
cuanto a precisin y tiempos de ejecucin en segundos.
Er

n=500

n=1000

dgedmrbdc 2.1568E-05 2.1568E-05


dgedmrlpc

1.2019E-05 1.2019E-05

dgedmrlcc

1.2019E-05 1.2019E-05

dgedmrlkc

1.9543E-05 1.9543E-05

Tabla 5.82: Errores relativos para t=1 y t=0.01, variando el


tamao n del problema.

258

Captulo 5: Resultados Experimentales

Te

n=500

n=1000

dgedmrbdc 449.07 6544


dgedmrlpc

73.335 498.42

dgedmrlcc

189.91 3128.5

dgedmrlkc

42.062 350.02

Tabla 5.83: Tiempos de ejecucin, en segundos, al considerar


t=1, t=0.01 y variar el tamao n del problema.
Te/Tei

n=500 n=1000

dgedmrlpc 6,12

13,13

dgedmrlcc 2,36

2,09

dgedmrlkc 10,68

18,70

Tabla 5.84: Relacin entre el tiempo de ejecucin (Te) de la


implementacin basada en el mtodo BDF
(dgedmrbdc) y el tiempo de ejecucin (Tei) de las
implementaciones basadas en la linealizacin a
trozos, al considerar t=1, t=0.01 y variar el
tamao n del problema.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:
A medida que se incrementa el tiempo, los errores relativos cometidos por los
algoritmos basados en la linealizacin a trozos se hacen ms pequeos que el
correspondiente al mtodo BDF (dgedmrbdc).
Los algoritmos que utilizan linealizacin a trozos tienen un coste computacional
menor que el correspondiente al mtodo BDF (dgedmrbdc).
Cuando se disminuye el incremento de tiempo t, la razn de flops de esos
algoritmos respecto al basado en el mtodo BDF va disminuyendo hasta llegar
a un incremento de 0.01, a partir del cual dicha razn apenas vara.
Cuando se aumenta el tiempo, la razn de flops de esos algoritmos respecto al
basado en el mtodo BDF va disminuyendo, a costa de alcanzar una mayor
precisin.
Cuando se aumenta el tamao del problema, la razn de flops de esos
algoritmos respecto al basado en el mtodo BDF es prcticamente constante.
Para tamaos elevados del problema, los algoritmos que utilizan la
linealizacin a trozos tienen tiempos de ejecucin menores que el
correspondiente al mtodo BDF.
El menor coste computacional corresponde al algoritmo basado en la linealizacin
a trozos mediante los subespacios de Krylov (dgedmrlkc), seguido de cerca por el
259

Captulo 5: Resultados Experimentales

algoritmo basado en la linealizacin a trozos mediante los aproximantes


diagonales de Pad (dgedmrlpc).
El menor tiempo de ejecucin corresponde a la implementacin basada en
linealizacin a trozos mediante los subespacios de Krylov (dgedmrlkc), seguida
muy de cerca por la implementacin basada en la linealizacin a trozos mediante
los aproximantes diagonales de Pad (dgedmrlpc). Los tiempos de ejecucin de
dichas rutinas han sido mucho menores que el tiempo de ejecucin de la
implementacin basada en el mtodo BDF (dgedmrbdc).
Problema 5.10: El tercer caso de estudio de EDMRs con coeficientes constantes
([ChAL90]) corresponde a una EDMR no simtrica definida como
X ' (t ) = X (t ) + T2k X (t ) X (t )T2k X (t ) + k 2T2k ; X (0) = I 2k , t 0.

siendo X (t ) , T2k 2 k y a . La matriz T2k se define inductivamente


1 1
T2 = 2 ,
a 1
T k 1
T2k = 2 2
a T2k 1

T2k 1
, k 2.
T2k 1

La solucin analtica de la ecuacin anterior es


X (t ) = I 2 k +
donde = (a 2 + 1)

k +1
2

(a 2 + 1)

tanh(t )T2 k ,

Los valores elegidos para los parmetros caractersticos se muestran a continuacin.

dgedmrbdc: r=2, tol=1e-6, maxiter=100.

dgedmrlpc: q=1.

dgedmrlcc: q=1.

dgedmrlkc: p=2, tol=1e-6, q=2.

En la primera prueba se comparan los cuatro algoritmos al considerar n=2, t=1 y variar
el incremento de tiempo t.
t=0.1

Er

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgedmrbdc 3.547e-04 2.993e-05 1.545e-07 1.029e-08 4.109e-09 1.043e-09


dgedmrlpc

2.657e-05 7.145e-06 2.846e-07 7.088e-08 2.825e-09 7.060e-10

dgedmrlcc

2.755e-05 7.190e-06 2.846e-07 7.088e-08 2.825e-09 7.060e-10

dgedmrlkc

3.139e-05 1.649e-05 7.038e-07 1.763e-07 7.057e-09 1.764e-09

Tabla 5.85: Errores relativos para n=2 y t=1, variando el


incremento de tiempo t.
260

Captulo 5: Resultados Experimentales

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

Flops

dgedmrbdc 19664

29578

120215

228289

992986

1985986

dgedmrlpc

2790

5102

27035

57801

321771

648317

dgedmrlcc

4940

10228

53422

117426

653121

1285987

dgedmrlkc

2987

5735

28615

57215

286015

572015

Tabla 5.86: Nmero de flops para n=2 y t=1, variando el


incremento de tiempo t.
t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

F/Fi

dgedmrlpc 7.048

5.797

4.447

3.950

3.086

3.063

dgedmrlcc 3.981

2.892

2.250

1.944

1.520

1.544

dgedmrlkc 6.583

5.157

4.201

3.990

3.472

3.472

Tabla 5.87: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=1 y variar el incremento de tiempo t.

Flops(dgedmrbdc )/Flops(dgedmrlpc )
Flops(dgedmrbdc )/Flops(dgedmrlcc )
Flops(dgedmrbdc )/Flops(dgedmrlk c )

7
6.5
6
5.5

F/Fi

5
4.5
4
3.5
3
2.5
2
1.5
1
0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.26: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=0.1 y variar el tiempo t.
261

Captulo 5: Resultados Experimentales

En la segunda prueba se comparan los cuatro algoritmos al considerar n=2 y t=0.1, y


variar el tiempo t.
t=5

Er

t=10

t=15

t=20

t=25

t=30

dgedmrbdc 1.067e-07 1.067e-07 1.067e-07 1.067e-07 1.067e-07 1.067e-07


dgedmrlpc

9.233e-18 9.233e-18 9.233e-18 9.233e-18 9.233e-18 9.233e-18

dgedmrlcc

7.648e-18 7.648e-18 7.648e-18 7.648e-18 7.648e-18 7.648e-18

dgedmrlkc

3.376e-18 3.376e-18 3.376e-18 3.376e-18 3.376e-18 3.376e-18

Tabla 5.88: Errores relativos para n=2 y t=0.1, variando el


tiempo t.
Flops

t=5

t=10

t=15

t=20

t=25

t=30

dgedmrbdc 43800 69100 94400 119700 145000 170300


dgedmrlpc

12692 24542 36392 48242

60092

dgedmrlcc

26198 52548 78898 105248 131598 157948

dgedmrlkc

12703 17953 23203 28453

33703

71942

38953

Tabla 5.89: Nmero de flops para n=2 y t=0.1, variando el


tiempo t.
F/Fi

t=5

t=10

t=15

t=20

t=25

t=30

dgedmrlpc 3.451 2.816 2.594 2.481 2.413 2.367


dgedmrlcc 1.672 1.315 1.196 1.137 1.102 1.078
dgedmrlkc 3.448 3.849 4.068 4.207 4.302 4.372
Tabla 5.90: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=0.1 y variar el tiempo t.

262

Captulo 5: Resultados Experimentales

4.5

3.5

Flops(dgedmrbdc )/Flops(dgedmrlpc )
Flops(dgedmrbdc )/Flops(dgedmrlcc )
Flops(dgedmrbdc )/Flops(dgedmrlk c )

F/Fi

2.5

1.5

1
5

10

15

20

25

30

Figura 5.27: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=0.1 y variar el tiempo.
En la tercera prueba se comparan los cuatro algoritmos al considerar t=1 y t=0.1, y
variar el tamao n del problema.
n=2

Er

n=4

n=8

n=16

n=32

dgedmrbdc 3.547e-04 7.562e-05 1.749e-05 8.870e-06 1.197e-08


dgedmrlpc

2.657e-05 5.455e-10 7.497e-18 2.057e-17 5.686e-17

dgedmrlcc

2.755e-05 5.377e-10 3.193e-17 2.010e-17 5.395e-17

dgedmrlkc

3.139e-05 5.377e-10 3.192e-17 2.000e-17 5.542e-17

Tabla 5.91: Errores relativos para t=1 y t=0.1, variando el


tamao n del problema.

263

Captulo 5: Resultados Experimentales

n=2

Flops

n=4

n=8

n=16

n=32

dgedmrbdc 19664 161923 1426730 13748067 124472608


dgedmrlpc

2790

23548

273024

3062132

32756918

dgedmrlcc

4940

30462

224468

1646839

13805349

dgedmrlkc

2987

13907

83587

576243

4265235

Tabla 5.92: Nmero de flops para t=1 y t=0.1, variando el


tamao n del problema.
n=2

n=8

n=16

n=32

dgedmrlpc 7.048 6.876

5.226

4.490

3.800

dgedmrlcc 3.981 5.316

6.356

8.348

9.016

F/Fi

n=4

dgedmrlkc 6.583 11.643 17.069 23.858 29.183


Tabla 5.93: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1, t=0.1 y variar el tamao n del problema.
30

25

20

F/Fi

Flops(dgedmrbdc)/Flops(dgedmrlpc)
Flops(dgedmrbdc)/Flops(dgedmrlcc)
Flops(dgedmrbdc)/Flops(dgedmrlkc)

15

10

0
0

10

15

20

25

30

35

Figura 5.28: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdc)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=0.1 y variar el tamao n del problema.
264

Captulo 5: Resultados Experimentales

Para comprobar el comportamiento de las implementaciones en FORTRAN cuando el


tamao de la matriz es elevado, se han realizado pruebas con un tamao del problema
igual a 512. A continuacin se presentan los resultados obtenidos en cuanto a precisin
y tiempos de ejecucin en segundos.
n=512

Er

dgedmrbdc 5.8356e-07
dgedmrlpc

1.9944e-15

dgedmrlcc

9.6766e-15

dgedmrlkc

9.9517e-15

Tabla 5.94: Errores relativos para t=1, t=0.1 y n=512.


Te

n=512

dgedmrbdc 47870.00
dgedmrlpc

579.98

dgedmrlcc

456.08

dgedmrlkc

136.17

Tabla 5.95: Tiempos de ejecucin en segundos, considerando


t=1, t=0.1 y n=512.
Te/Tei

n=512

dgedmrlpc 82,54
dgedmrlcc 104,96
dgedmrlkc 351,55
Tabla 5.96: Relacin entre el tiempo de ejecucin (Te) de la
implementacin basada en el mtodo BDF
(dgedmrbdc) y el tiempo de ejecucin (Tei) de las
implementaciones basadas en la linealizacin a
trozos, al considerar t=1, t=0.01 y n=512.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:
Los errores relativos cometidos por algoritmos basados en la linealizacin a
trozos, son mucho menores que los errores relativos cometidos por el algoritmo
basado en el mtodo BDF (dgedmrbdc).

265

Captulo 5: Resultados Experimentales

A medida que se incrementa el tiempo, los errores relativos cometidos por los
algoritmos basados en la linealizacin a trozos se hacen ms pequeos que los
errores relativos cometidos por el algoritmo basado en el mtodo BDF
(dgedmrbdc).
A medida que se aumenta el tamao del problema, los errores relativos
cometidos por los algoritmos basados en la linealizacin a trozos se hacen ms
pequeos que los errores relativos cometidos por el algoritmo basado en el
mtodo BDF (dgedmrbdc).
Los algoritmos que utilizan linealizacin a trozos tienen un coste computacional
menor que el correspondiente al mtodo BDF (dgedmrbdc).
Cuando se disminuye el incremento de tiempo, la razn de flops de esos
algoritmos respecto al basado en el mtodo BDF, va disminuyendo hasta
llegar a un incremento de 0.001, a partir del cual dicha razn apenas vara.
Cuando se aumenta el tiempo, la razn de flops del algoritmo de linealizacin
basado en los subespacios de Krylov con respecto al basado en el mtodo
BDF, aumenta. Para los otros dos algoritmos de linealizacin esa razn
disminuye ligeramente.
Cuando se aumenta el tamao del problema, la razn de flops de los
algoritmos de linealizacin basados en los subespacios de Krylov (dgedmrlkc)
y en la ecuacin conmutante (dgedmrlpc), con respecto al basado en el mtodo
BDF, aumentan. Para el otro algoritmo de linealizacin (dgedmrlcc) esa razn
disminuye ligeramente.
Los tiempos de ejecucin de las implementaciones basadas en la tcnica de
linealizacin a trozos han sido mucho menores que el tiempo de ejecucin de la
implementacin basada en el mtodo BDF (dgedmrbdc). Entre estas
implementaciones destaca la basada en los subespacios de Krylov (dgedmrlkc),
pues su tiempo de ejecucin es mucho menor que la implementacin del mtodo
BDF (la relacin de tiempos es aproximadamente igual a 351 para una dimensin
igual a 512).

5.5.2 EDMRs con Coeficientes Variables


Problema 5.11: El primer caso de estudio de EDMRs con coeficientes variables
corresponde a un problema de tipo test, ampliamente utilizado, conocido como knee
problem ([DEES82]). Se trata de una EDMR definida como

x' = tx + x 2 , 0 < << 1 , x(1) = 1 ,


asociada a la matriz de coeficientes variables
a (t ) a12 (t ) t /
A(t ) = 11
=
a 21 (t ) a 22 (t ) 1

1/
, n = m = 1, 1 t 1 .
0

La solucin x = t es estable para valores anteriores a 0 y la solucin x 0 es estable a


partir de tiempos mayores o iguales a 0.
En las pruebas realizadas se ha considerado un valor igual a 1e-4. Los valores de los
parmetros caractersticos de cada mtodo aparecen a continuacin.

dgedmrbdv: r=2, tol=1.0e-6, maxiter=100.


266

Captulo 5: Resultados Experimentales

dgedmrlpv: q=1.

dgedmrlcv: q=1.

dgedmrlkv: p=3, tol=1.0e-5, q=1.

En la primera prueba se comparan los cuatro algoritmos considerando t=1 y variando el


incremento de tiempo entre 0.1 y 0.05, ya que para valores menores la precisin
obtenida es la misma.
t=0.1

Er

t=0.05

dgedmrbdv 5.001e-05 5.001e-05


dgedmrlpv

Error

4.917e-05

dgedmrlcv

4.391e-05 4.988e-05

dgedmrlkv

4.326e-05 4.988e-05

Tabla 5.97: Errores relativos para t=1, variando el incremento


de tiempo t.
Flops

t=0.1 t=0.05

dgedmrbdv 7203

12140

dgedmrlpv

3426

8145

dgedmrlcv

5049

9704

dgedmrlkv

18728

35018

Tabla 5.98: Nmero de flops para t=1, variando el incremento


de tiempo t.
F/Fi

t=0.1 t=0.05

dgedmrlpv 2.102

1.490

dgedmrlcv 1.427

1.251

dgedmrlkv 0.385

0.347

Tabla 5.99: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1 y variar el incremento de tiempo t.

267

Captulo 5: Resultados Experimentales

Flops(dgedmrbdv)/Flops(dgedmrlpv)
Flops(dgedmrbdv)/Flops(dgedmrlcv)
Flops(dgedmrbdv)/Flops(dgedmrlk v)

F/Fi

1.5

0.5

0.1

0.05

Figura 5.29: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1 y variar el incremento de tiempo t.
En la segunda prueba se comparan los cuatro algoritmos para t=0.001, variando el
instante t de tiempo.
t=5

Er

t=10

t=15

t=20

t=25

t=30

dgedmrbdv 1.054e-05 5.538e-06 3.538e-06 2.538e-06 2.538e-06 2.538e-06


dgedmrlpv

1.000e-05 5.000e-06 3.333e-06 2.500e-06 2.000e-06 1.667e-06

dgedmrlcv

1.000e-05 5.000e-06 3.333e-06 2.500e-06 2.000e-06 1.667e-06

dgedmrlkv

1.000e-05 5.000e-06 3.333e-06 2.500e-06 2.000e-06 1.667e-06

Tabla 5.100: Errores relativos considerando


variando el tiempo t.

t=0.001

268

Captulo 5: Resultados Experimentales

t=5

Flops

t=10

t=15

t=20

t=25

t=30

dgedmrbdv 767164

1252569 1737731 2222812

2707812

3192812

dgedmrlpv

830433

1698033 2623233 3593233

4563233

5603633

dgedmrlcv

1380595 2566392 3762989 4967989

6172989

7391186

dgedmrlkv

2700889 5365589 8127489 10964989 14303381 17818899

Tabla 5.101: Nmero de flops considerando t=0.001 y


variando el tiempo t.
F/Fi

t=5

t=10

t=15

t=20

t=25

t=30

dgedmrlpv 0.924 0.738 0.662 0.619 0.593 0.570


dgedmrlcv 0.556 0.488 0.462 0.447 0.439 0.432
dgedmrlkv 0.284 0.233 0.214 0.203 0.189 0.179
Tabla 5.102: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=0.001 y variar el tiempo t.
1
Flops(dgedmrbdv)/Flops(dgedmrlpv)
Flops(dgedmrbdv)/Flops(dgedmrlcv)
Flops(dgedmrbdv)/Flops(dgedmrlk v)

0.9
0.8
0.7

F/Fi

0.6
0.5
0.4
0.3
0.2
0.1
5

10

15

20

25

30

Figura 5.30: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=0.001 y variar el tiempo t.
269

Captulo 5: Resultados Experimentales

A partir de las tablas anteriores se pueden extraer las siguientes conclusiones:


Los algoritmos con menor error relativo corresponden al algoritmo basado en el
mtodo BDF (dgedmrbdv), y a los algoritmos basados en la linealizacin a trozos
mediante los subespacios de Krylov (dgedmrlkv) y mediante la ecuacin
conmutante (dgedmrlcv). En el algoritmo basado en la linealizacin a trozos
mediante los aproximantes diagonales de Pad (dgedmrlpv) se produce un error
cuando el incremento de tiempo considerado es igual a 0.1.
Los menores costes computacionales corresponden al algoritmo basado en el
mtodo BDF (dgedmrbdv).
Los algoritmos ms rpidos corresponden a los basados en la linealizacin a
trozos mediante los aproximantes diagonales de Pad (dgedmrlpv) y mediante la
educacin conmutante (dgedmrlcv).
Problema 5.12: El segundo caso de estudio de EDMRs con coeficientes variables
([BrLo87]) proviene de un problema de tipo rgido con valores de contorno. La
correspondiente EDMR tiene como matrices coeficiente a

t / 2
A11 (t ) =
0

0
0
1 / 2 1
0 t / 2
1 /
, A21 (t ) =
, A22 (t ) =
, A12 (t ) =
,

0
0
0 1
0
0 1/

siendo 0 < << 1 , t 1 , con valor inicial


0 0
X0 =
.
0 0
A medida que t se aleja del cero, la solucin se aproxima a la matriz
t / 2
X (t ) =
0

En las pruebas realizadas se ha considerado un valor igual a 1e-4. Los valores de los
parmetros caractersticos de cada mtodo aparecen a continuacin.

dgedmrbdv: r=3, tol=1.0e-14, maxiter=100.

dgedmrlpv: q=3.

dgedmrlcv: q=1.

dgedmrlkv: p=5, tol=1.0e-14, q=1.

En la primera prueba se comparan los cuatro algoritmos al considerar t=1 y variar el


incremento de tiempo.

270

Captulo 5: Resultados Experimentales

t=0.1

t=0.05

t=0.01

dgedmrbdv 1.414

1.414

2.221e-16 1.112e-16 9.811e-18 2.088e-14

dgedmrlpv

Error

Error

1.511e-07 7.592e-08 9.814e-09 5.285e-09

dgedmrlcv

6.296e-08 2.220e-16 1.110e-16 1.110e-16 1.112e-16 1.119e-16

dgedmrlkv

6.283e-08 4.577e-16

Er

t=0.005

t=0.001

t=0.0005

2.047e-16 3.261e-16 7.625e-16

Tabla 5.103: Errores relativos para t=1, variando el incremento


de tiempo t.
t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

Flops
dgedmrbdv

429587

789544

3587274

6860624

dgedmrlpv

324533

570077

1982885

3257621

dgedmrlcv

23235

46671

229231

454631

2240655

4453399

dgedmrlkv

95517

168559

575794

1068339

3986117

7035878

Tabla 5.104: Nmero de flops para t=1, variando el incremento


de tiempo t.
F/Fi

t=0.01 t=0.005 t=0.001 t=0.0005

dgedmrlpv 1.324

1.385

1.809

2.106

dgedmrlcv 1.874

1.737

1.601

1.541

dgedmrlkv 0.746

0.739

0.900

0.975

Tabla 5.105: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1 y variar el incremento de tiempo t.

271

Captulo 5: Resultados Experimentales

Flops(dgedmrbdv)/Flops(dgedmrlpv)
Flops(dgedmrbdv)/Flops(dgedmrlcv)
Flops(dgedmrbdv)/Flops(dgedmrlk v)

F/Fi

1.5

0.01

0.005

0.001

0.0005

Figura 5.31: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1 y variar el incremento de tiempo t.
En la segunda prueba se comparan los cuatro algoritmos al considerar n=2, t=0.001 y
variar el tiempo t.
t=0.1

Er

t=0.2

t=0.3

t=0.4

t=0.5

t=0.6

dgedmrbdv 1.776e-06 1.693e-15 1.693e-15 2.772e-16 1.964e-14 5.013e-15


dgedmrlpv

8.942e-05 1.971e-06 1.971e-06 1.490e-06 1.197e-06 2.502e-07

dgedmrlcv

4.671e-12

dgedmrlkv

3.226e-12 1.154e-16 1.154e-16 1.059e-15 2.220e-16 3.706e-15

1.386e-16 6.933e-18 1.849e-16

Tabla 5.106: Errores relativos para n=2 y t=0.001, variando el


tiempo t.

272

Captulo 5: Resultados Experimentales

t=0.1

Flops

t=0.2

t=0.3

t=0.4

t=0.5

t=0.6

dgedmrbdv 246065 292485 292485 315695 336187 354867


dgedmrlpv

170291 199275 199275 215825 232375 250493

dgedmrlcv

125493 148329 148329 159835 171357 182879

dgedmrlkv

388879 428862 428862 447606 469102 487842

Tabla 5.107: Nmero de flops para n=2 y t=0.001, variando el


tiempo t.
t=0.1

F/Fi

t=0.2

t=0.3

t=0.4

t=0.5

t=0.6

dgedmrlpv 1.445 1.468 1.468 1.463 1.447 1.417


dgedmrlcv 1.961 1.972 1.972 1.975 1.962 1.940
dgedmrlkv 0.633 0.682 0.682 0.705 0.717 0.727
Tabla 5.108: Relacin entre el nmero de flops (F) del algoritmo
basado en el mtodo BDF (dgedmrbdv) y el
nmero de flops (Fi) de los algoritmos basados en
la linealizacin a trozos, al considera n=2,
t=0.001 y variar el tiempo t.
2

1.8

Flops(dgedmrbdv)/Flops(dgedmrlpv)
Flops(dgedmrbdv)/Flops(dgedmrlcv)
Flops(dgedmrbdv)/Flops(dgedmrbk v)

1.6

F/Fi

1.4

1.2

0.8

0.1

0.15

0.2

0.25

0.3

0.35
t

0.4

0.45

0.5

0.55

0.6

Figura 5.32: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=0.001 y variar el tiempo t.
273

Captulo 5: Resultados Experimentales

A partir de las tablas anteriores se pueden extraer las siguientes conclusiones:


Los algoritmos con menor error relativo corresponden a los basados en la
linealizacin a trozos mediante los subespacios de Krylov (dgedmrlkv) y mediante
la ecuacin conmutante (dgedmrlcv).
En el algoritmo basado en el mtodo BDF (dgedmrbdv) se producen grandes
errores para incrementos de tiempo iguales a 0.1 y a 0.05.
En el mtodo de linealizacin a trozos basado en los aproximantes diagonales
de Pad (dgedmrlpv) se producen elevados errores cuando los incrementos de
tiempo son iguales a 0.1 y a 0.05, debido a que la norma de la matriz
Jacobiana es elevada, por lo que el clculo de su exponencial produce un error
de overflow.
Los algoritmos con menores costes corresponden a los basados en la linealizacin
a trozos mediante la ecuacin conmutante (dgedmrlcv) y mediante los
aproximantes diagonales de Pad (dgedmrlpv).

El algoritmo basado en la linealizacin a trozos mediante los subespacios de


Krylov (dgedmrlkv) tiene un coste computacional mayor que el basado en el
mtodo BDF (dgedmrbdv).

Problema 5.13: El tercer caso de estudio de EDMRs con coeficientes variables


([Choi92]), corresponde a una EDMR definida como
X ' (t ) = X (t )T2 k (t ) + T2 k (t ) X (t ) b(t ) X 2 (t ) b(t ) I 2 k ; X (0) = I 2 k , t 0.

donde X (t ) 2 , y T2 k 2 est definida como


k

a(t ) b(t )
T2 =
,
b(t ) a(t )
T2 k = T2 I 2 k 1 + I 2 T2 k 1 , k 2 ,
siendo a (t ) = cos t y b(t ) = sen t .
La solucin analtica de la ecuacin anterior es
X (t ) =

1 + tan(cos t 1)
I k.
1 tan(cos t 1) 2

Los valores de los parmetros caractersticos de cada mtodo aparecen a continuacin.

dgedmrbdv: r=3, tol=1.0e-14, maxiter=100.

dgedmrlpv: q=2.

dgedmrlcv: q=2.

dgedmrlkv: p=3, tol=1.0e-14, q=1.

En la primera prueba se comparan los cuatro algoritmos al considerar n=4 (k=2), t=1 y
variar el incremento de tiempo t.

274

Captulo 5: Resultados Experimentales

t=0.1

Er

t=0.05

t=0.01

t=0.005

t=0.001

t=0.0005

dgedmrbdv 2.018e-02 4.726e-03 2.066e-04 5.217e-05 2.103e-06 5.269e-07


dgedmrlpv

5.335e-03 1.174e-03 5.061e-05 1.277e-05 5.147e-07 1.289e-07

dgedmrlcv

7.419e-02 2.240e-02 1.554e-03 4.563e-04 2.437e-05 6.751e-06

dgedmrlkv

4.718e-03 1.023e-03 4.386e-05 1.106e-05 4.457e-07 1.117e-07

Tabla 5.109: Errores relativos para n=2 y t=1, variando el


incremento de tiempo t.
t=0.1

Flops

t=0.05 t=0.01

dgedmrbdv 433518 744608


109554

t=0.005 t=0.001

t=0.0005

2817685 5650073

28126108 55959494

575795

5820995

dgedmrlpv

57102

dgedmrlcv

119068 226544

1254024 2529762

12931608 26110356

dgedmrlkv

48163

477419

4818236

91570

1158595

959731

11654823

9646194

Tabla 5.110: Nmero de flops para n=4 y t=1, variando el


incremento de tiempo t.
F/Fi

t=0.1 t=0.05 t=0.01 t=0.005 t=0.001 t=0.0005

dgedmrlpv 7.592

6.797

4.894

4.877

4.832

4.801

dgedmrlcv 3.641

3.287

2.247

2.233

2.175

2.143

dgedmrlkv 9.001

8.132

5.902

5.887

5.837

5.801

Tabla 5.111: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=4, t=1 y variar el incremento de tiempo t.

275

Captulo 5: Resultados Experimentales

Flops(dgedmrbdv)/Flops(dgedmrlpv)
Flops(dgedmrbdv)/Flops(dgedmrlcv)
Flops(dgedmrbdv)/Flops(dgedmrlk v)

9
8.5
8
7.5
7

F/Fi

6.5
6

5.5
5
4.5
4
3.5
3
2.5
2
0.1

0.05

0.01

0.005

0.001

0.0005

Figura 5.33: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=4, t=0.1 y variar el incremento de tiempo t.
En la segunda prueba se comparan los cuatro algoritmos para n=4 (k=2), t=0.1,
variando el instante t de tiempo.
t=5

Er

t=10

t=15

t=20

t=25

t=30

dgedmrbdv 7.687e-02 1.466e-02 1.245e-02 1.836e-02 9.549e-03 2.215e-02


dgedmrlpv

1.153e-02 1.081e-03 7.964e-04 3.157e-04 4.040e-03 1.190e-02

dgedmrlcv

5.057e-01 2.223e-01 2.455e-01 8.954e-01 3.474e-01 7.782e-01

dgedmrlkv

8.781e-03 2.464e-03 5.066e-04 4.081e-05 3.526e-03 1.072e-02

Tabla 5.112: Errores relativos para n=4 y t=0.1, variando el


tiempo t.

276

Captulo 5: Resultados Experimentales

t=5

Flops

t=10

t=15

t=20

t=25

t=30

dgedmrbdv 1934113 3797375 5680701 7503707 9382353 11245258


dgedmrlpv

296418

594418

885286

dgedmrlcv

584064

1078179 1505781 1938668 2438424 2957326

dgedmrlkv

241197

482487

723781

1178658 1477726 1776762

960212

1201523 1442843

Tabla 5.113: Nmero de flops para n=4 y t=0.1, variando el


tiempo t.
F/Fi

t=5

t=10

t=15

t=20

t=25

t=30

dgedmrlpv 6.525 6.388 6.417 6.366 6.349 6.329


dgedmrlcv 3.311 3.522 3.773 3.871 3.848 3.803
dgedmrlkv 8.019 7.870 7.849 7.815 7.809 7.794
Tabla 5.114: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=2, t=0.1 y variar el tiempo t.
9
Flops(dgedmrbdv)/Flops(dgedmrlpv)
Flops(dgedmrbdv)/Flops(dgedmrlcv)
Flops(dgedmrbdv)/Flops(dgedmrlk v)

F/Fi

3
5

10

15

20

25

30

Figura 5.34: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
n=4, t=0.1 y variar el tiempo t.
277

Captulo 5: Resultados Experimentales

En la tercera prueba se comparan los cuatro algoritmos considerando t=1 y t=0.1,


variando el tamao n del problema.
n=2

Er

n=4

n=8

n=16

n=32

n=64

dgedmrbdv 2.018e-02 2.018e-02 2.018e-02 2.018e-02 2.018e-02 2.018e-02


dgedmrlpv

5.374e-03 5.335e-03 5.303e-03 5.326e-03 5.497e-03 4.523e-03

dgedmrlcv

3.004e-02 7.419e-02 1.359e-01 2.153e-01 3.126e-01 4.283e-01

dgedmrlkv

4.718e-03 4.718e-03 4.718e-03 4.718e-03 4.718e-03 4.718e-03


Tabla 5.115: Errores relativos para t=1 y t=0.1, variando el
tamao n del problema.
n=2

Flops

n=4

n=8

n=16

n=32

n=64

dgedmrbdv 28919 433518 1331590 8717740 61494024 463083648


dgedmrlpv

10027 57102

376523

2714671 20575955 194870615

dgedmrlcv

15390 119068 480837

2834634 20135747 149904917

dgedmrlkv

11863 48163

1525323 10347743 75449843

250743

Tabla 5.116: Nmero de flops para t=1 y t=0.1, variando el


tamao n del problema.
F/Fi

n=2

n=4

n=8

n=16

n=32

n=64

dgedmrlpv 2.884 7.592 3.537 3.211 2.989 2.376


dgedmrlcv 1.879 3.641 2.769 3.075 3.054 3.089
dgedmrlkv 2.438 9.001 5.311 5.715 5.943 6.138
Tabla 5.117: Relacin entre el nmero de flops (F) del
algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1, t=0.1 y variar el tamao n del problema.

278

Captulo 5: Resultados Experimentales

10
Flops(dgedmrbdv)/Flops(dgedmrlpv)
Flops(dgedmrbdv)/Flops(dgedmrlcv)
Flops(dgedmrbdv)/Flops(dgedmrlk v)

9
8
7

F/Fi

6
5
4
3
2
1
0

10

20

30

40

50

60

70

Figura 5.35: Relacin entre el nmero de flops (F) del


algoritmo basado en el mtodo BDF (dgedmrbdv)
y el nmero de flops (Fi) de los algoritmos
basados en la linealizacin a trozos, al considerar
t=1, t=0.1 y variar el tamao n del problema.
Para comprobar el comportamiento de las rutinas implementadas cuando el tamao de la
matriz es elevado, se han realizado pruebas con las implementaciones FORTRAN para
tamaos del problema 512 y 1024.
Los valores elegidos para los parmetros caractersticos se muestran a continuacin.

dgedmrbdv: r=2, tol=1e-13, maxiter=100.

dgedmrlpv: q=2.

dgedmrlcv: q=3.

dgedmrlkv: p=3, tol=1e-13, q=1.

A continuacin se presentan los resultados obtenidos en cuanto a precisin y tiempos de


ejecucin en segundos.
Er

n=512

n=1024

dgedmrbdv 1.1616E-04 1.1616E-04


dgedmrlpv

5.3723E-05 5.4718E-05

dgedmrlcv

5.2306E-03 5.4516E-03

dgedmrlkv

4.4898E-04 44898E-05

Tabla 5.118: Errores relativos para t=1 y t=0.01, variando el


tamao n del problema.

279

Captulo 5: Resultados Experimentales

Te

n=512

n=1024

dgedmrbdv 1666.5 65757


dgedmrlpv

194.61 1501.4

dgedmrlcv

2834.5 29099

dgedmrlkv

181.12 1460.3

Tabla 5.119: Tiempos de ejecucin en segundos, considerando


t=1, t=0.01 y variar el tamao n del problema.
Te/Tei

n=512 n=1024

dgedmrlpc 8.56

43.80

dgedmrlcc 0.59

2.26

dgedmrlkc 9.20

45.03

Tabla 5.120: Relacin entre el tiempo de ejecucin (Te) de la


implementacin basada en el mtodo BDF
(dgedmrbdv) y el tiempo de ejecucin (Tei) de las
implementaciones basadas en la linealizacin a
trozos, al considerar t=1, t=0.01 y variar el
tamao n del problema.
De los resultados obtenidos se pueden extraer las siguientes conclusiones:

Los algoritmos con menor error relativo corresponden a los algoritmos basados en la
linealizacin a trozos mediante los subespacios de Krylov (dgedmrlkv) y mediante
aproximantes diagonales de Pad, seguidos muy de cerca por el algoritmo basado en
el mtodo BDF (dgedmrbdv). Los peores resultados se obtienen para el caso de
linealizacin a trozos mediante la ecuacin conmutante (dgedmrlcv).

Los menores costes computacionales corresponden al mtodo de linealizacin a


trozos basado en los subespacios de krylov (dgedmrlkv), seguido muy de cerca por
el basado en los aproximantes diagonales de Pad (dgedmrlpv). Los mayores costes
computacionales corresponden al algoritmo basado en el mtodo BDF (dgedmrbdv).

Para tamaos elevados del problema, las implementaciones basadas en los


algoritmos que utilizan la linealizacin a trozos tienen tiempos de ejecucin mucho
menores que la implementacin basada en el mtodo BDF (dgedmrbdv), destacando
la basada en los subespacios de krylov (dgedmrlkv) y la basada los aproximantes
diagonales de Pad (dgedmrlpv).

5.6 Conclusiones
Como se ha podido comprobar a lo largo del desarrollo de este captulo, se han
realizado un gran nmero de pruebas para comparar los algoritmos implementados,

280

Captulo 5: Resultados Experimentales

determinando para cada algoritmo los valores ptimos de sus parmetros caractersticos.
A continuacin se sintetizan los resultados ms destacables de las pruebas realizadas.
Funciones de matrices.
Los algoritmos basados en los aproximantes diagonales de Pad presentan una
buena precisin. En cuanto a eficiencia destacan las implementaciones
basadas en el mtodo de Paterson-Stockmeyer-Van Loan, eligiendo para ello
un factor adecuado de agrupamiento comprendido entre 3 y 5.
Los algoritmos basados en la descomposicin real de Schur de una matriz son,
en general, ms precisos que los mtodos basados en aproximantes diagonales
de Pad. En cuanto a eficiencia destacan la implementacin que utiliza los
aproximantes diagonales de Pad y la implementacin basada en la resolucin
por bloques de la Ecuacin Conmutante.
Las implementaciones basadas en los aproximantes diagonales de Pad son
ms rpidas que las implementaciones basadas en la descomposicin real de
Schur de una matriz.
Resolucin de EDOs.
Los valores ptimos de los parmetros caractersticos han sido, en la mayora
de los casos, valores pequeos. A modo de resumen, se citan a continuacin
los valores ms habituales.

dgeedobdf: r=2, 3; tol=1e-6; maxiter=100.


dgeedolpa-dgeedolpn: q=1.
dgeedolca-dgeedolcn: q=1.
dgeedolpa- dgeedolpn: p=2, 3, 4; tol=1e-6; q=1.

En las pruebas realizadas sobre EDOs autnomas se ha podido comprobar que


los errores relativos cometidos por los algoritmos basados en los mtodos de
linealizacin a trozos son similares a los cometidos por el algoritmo basado en
el mtodo BDF, aunque en el caso del algoritmo basado en la linealizacin a
trozos mediante la Ecuacin Conmutante este slo se puede utilizar si la
matriz Jacobiana es invertible y est bien condicionada.
En las pruebas realizadas sobre EDOs autnomas siempre ha sido posible
encontrar un algoritmo basado en la linealizacin a trozos que tuviese un coste
computacional menor que el basado en el mtodo BDF. Para problemas de
pequea dimensin destacan los algoritmos basados en los aproximantes
diagonales de Pad y en la Ecuacin Conmutante. Para problemas de mayor
dimensin destaca la implementacin basada en los subespacios de Krylov,
por tener un coste computacional menor que los costes computacionales
correspondientes al resto de algoritmos.
En las pruebas realizadas sobre EDOs no autnomas, se tiene que los errores
relativos cometidos por los algoritmos basados en los mtodos de linealizacin
a trozos son algo menores que los cometidos por el algoritmo basado en el
mtodo BDF, exceptuando el caso del algoritmo basado en el mtodo de
linealizacin a trozos mediante la Ecuacin Conmutante, por necesitar que la
matriz Jacobiana sea invertible y est bien condicionada.

281

Captulo 5: Resultados Experimentales

En las pruebas realizadas sobre EDOs no autnomas siempre ha sido posible


encontrar un mtodo basado en la linealizacin a trozos que tuviese un coste
computacional menor que el basado en el mtodo BDF. Para problemas de
pequea dimensin destacan el algoritmo basado en los aproximantes
diagonales de Pad y el basado en la Ecuacin Conmutante. Para problemas de
mayor dimensin destaca el algoritmo basado en los subespacios de Krylov.
Cabe destacar, en este sentido, los resultados obtenidos en el tercer caso de
estudio de EDOs no autnomas, al tener que el tiempo de ejecucin de la
implementacin basada en los subespacios de Krylov es mucho menor que la
implementacin basada en los otros mtodos.
Tanto los algoritmos basados en los mtodos de linealizacin a trozos como el
basado en el mtodo BDF presentan un buen comportamiento en problemas de
tipo rgido.
Resolucin de EDMRs.
Los valores ptimos de los parmetros caractersticos han sido, en la mayora
de los casos, valores pequeos. A modo de resumen, se citan a continuacin
los valores ms habituales.

dgedmrbdc: r=2, 3; tol=1e-6, 1e-14; maxiter=100.


dgedmrlpc-dgedmrlpv: q=1,2.
dgedmrlcc-dgedmrlcv: q=1,2,3.
dgedmrlpc-dgedmrlpv: p=2, 3, 5; tol=1e-6, 1e-14; q=1,2.

En las pruebas realizadas sobre EDMRs con coeficientes constantes se tiene


que los errores relativos cometidos por los cuatro algoritmos son similares,
salvo el segundo caso de estudio en el que el algoritmo basado en el mtodo
BDF y el basado en la linealizacin a trozos mediante los aproximantes
diagonales de Pad presentan grandes errores, si el incremento de tiempo es
del orden de dcimas.
En las pruebas realizadas sobre EDMRs con coeficientes constantes ha
resultado que los algoritmos basados en la linealizacin a trozos tienen un
coste computacional menor que el basado en el mtodo BDF. Entre ellos
destacan los algoritmos basados en los aproximantes diagonales de Pad y en
los subespacios de Krilov, sobresaliendo este ltimo cuando se consideran
problemas de gran dimensin.
El tiempo de ejecucin del mtodo de linealizacin a trozos basado en los
subespacios de Krylov, cuando se aplica sobre EDMRs con coeficientes
constantes de mediana o gran dimensin, es menor que el tiempo de ejecucin
del resto de las implementaciones. Cabe destacar, en este sentido, los
resultados obtenidos en el segundo y tercer caso de estudio (Problema 5.9,
Problema 5.10) cuando se considera un tamao del problema elevado, al tener
que el tiempo de ejecucin de la implementacin basada en los subespacios de
Krylov ha sido mucho menor que la implementacin basada en el mtodo
BDF.
En las pruebas realizadas sobre EDMRs con coeficientes variables, salvo un
caso de estudio de pequea dimensin (Problema 5.11), los algoritmos
basados en la linealizacin a trozos tienen un coste computacional menor que
el basado en el mtodo BDF.
282

Captulo 5: Resultados Experimentales

Para problemas de pequea dimensin destacan los basados en los


aproximantes diagonales de Pad y en la Ecuacin Conmutante.
Para problemas de mayor dimensin destaca el mtodo basado en los
subespacios de Krylov. En este sentido se pueden resaltar los resultados
obtenidos en el tercer caso de estudio de EDMRs con coeficientes variables
cuando se consideran tamaos del problema igual 1024, al tener que el
tiempo de ejecucin de la implementacin basada en los subespacios de
Krylov ha resultado ser unas cuarenta y cinco veces menor que el tiempo de
ejecucin de la implementacin basada en el mtodo BDF.

Tanto los algoritmos basados en la linealizacin a trozos como los basados en


el mtodo BDF presentan un buen comportamiento en problemas de tipo
rgido.

283

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

Captulo 6 Conclusiones y Lneas Futuras de


Investigacin

6.1 Resumen de Contenidos


En este captulo se resume el trabajo realizado en esta tesis, describiendo brevemente
los resultados ms destacados y perfilando las futuras lneas de investigacin. La
segunda seccin est dedicada a resumir las aportaciones realizadas en el marco de esta
tesis y los excelentes resultados obtenidos en las diferentes implementaciones. En la
tercera seccin se detallan las publicaciones realizadas durante el periodo de realizacin
de la tesis, muchas de las cuales han servido como base de la misma. En la cuarta
seccin se enumeran las posibles lneas de investigacin que se pueden abrir a partir de
este trabajo.

6.2 Conclusiones Finales


En el marco de esta tesis se han desarrollado nuevos mtodos y algoritmos para el
clculo de Funciones de Matrices y la aplicacin de Funciones de Matrices a la
simulacin y la resolucin de EDOs y EDMRs.
Para cada algoritmo desarrollado se ha implementado una funcin en MATLAB y una
rutina en FORTRAN. De este modo se dispone en la actualidad de tres libreras, escritas
en MATLAB y FORTRAN, que permiten calcular Funciones de Matrices y resolver
EDOs y EDMRs.
Las libreras obtenidas tienen las caractersticas propias de un software de computacin
numrica de calidad: eficientes, de altas prestaciones, portables, robustas y correctas.
Esto ha sido posible al utilizar un ciclo de vida que permite automatizar el desarrollo de
software numrico y disponer de herramientas que lo posibilitan como el entorno
MATLAB y las libreras de computacin numrica de altas prestaciones BLAS y
LAPACK.

6.2.1 Funciones de Matrices


Para el clculo de Funciones de Matrices se han desarrollado dos metodologas
generales, basadas en los aproximantes diagonales de Pad y en la descomposicin real
de Schur de una matriz, que calculan eficientemente Funciones de Matrices.
La metodologa basada en los aproximantes diagonales de Pad ha permitido poder
calcular funciones especiales de matrices, como las potencias fraccionarias, de una
manera nunca realizada hasta ahora. Tambin se puede destacar, como aspecto
novedoso, el clculo de la funcin seno matricial mediante esta metodologa. En
general, esta metodologa permite calcular funciones analticas de matrices de manera
eficiente. Esto ha sido posible porque la parte ms costosa de los algoritmos basados en
esta metodologa (clculo de la aproximacin de Pad) se ha realizado de la manera ms
eficiente posible (mtodo de Paterson-Stockmeyer-Van Loan).

285

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

Se han diseado nuevos algoritmos para el clculo de Funciones de Matrices que


utilizan la descomposicin real de Schur de una matriz como, por ejemplo, el basado en
la diagonalizacin a bloques de una matriz, los basados en la Ecuacin Conmutante
(orientados a columnas, diagonales y a bloques), los basados en la agrupacin en cluster
de los valores propios cercanos y el basado en los aproximantes diagonales de Pad.
El diseo de estos nuevos algoritmos ha conducido a la implementacin de
funciones/rutinas basadas en dichas metodologas, escritas en MATLAB y FORTRAN,
que calculan Funciones de Matrices. Las rutinas implementadas en FORTRAN utilizan
las libreras de computacin numrica BLAS y LAPACK, con la consiguiente
portabilidad y eficiencia del cdigo implementado. En este sentido cabe destacar el
hueco cubierto por este software desarrollado, ya que en la actualidad se dispone de un
nmero muy limitado de rutinas que calculan Funciones de Matrices.
Para analizar las prestaciones de los algoritmos implementados se han realizado una
gran cantidad de pruebas que han permitido comprobar la eficiencia y la precisin de las
rutias implementas. Estas pruebas adems han permitido determinar los valores de los
parmetros caractersticos de algunas de las implementaciones. Tambin se ha podido
comprobar cules pueden ser las mejores implementaciones para una determinada
funcin y una matriz dada. Por lo tanto, se puede disear un algoritmo que determine, a
partir de la funcin y de la matriz considerada, cul es el mejor mtodo y cules los
valores ptimos de sus parmetros caractersticos.
En cuanto a los resultados obtenidos se puede afirmar que se han desarrollado
implementaciones muy eficientes, en trminos de almacenamiento y coste
computacional, destacando las basadas en los aproximantes diagonales de Pad por su
rapidez y las basadas en la descomposicin real de Schur de una matriz por su precisin.

6.2.2 Aplicacin de las Funciones de Matrices


Se ha realizado un estudio completo del uso de Funciones de Matrices en la simulacin
de la propagacin de ondas en fibras de cristal fotnico. Las especiales caractersticas de
guiado de la luz de las fibras de cristal fotnico tienen potenciales aplicaciones en una
gran variedad de campos que van desde las comunicaciones pticas hasta la fabricacin
de dispositivos optoelectrnicos. Las propiedades de propagacin del campo
electromagntico en estos sistemas vienen determinadas por la configuracin particular
de la estructura dielctrica transversal. A partir de un modelo que representa la
propagacin no lineal de un campo monocromtico en un medio inhomogneo, se
analiza la evolucin no lineal del campo elctrico a lo largo de la fibra. Esta evolucin
consiste en un proceso iterativo en el que en cada paso se calcula la exponencial de la
raz cuadrada de una matriz de gran dimensin obtenida a partir del paso anterior. Esto
supone un alto coste computacional que puede acarrear semanas o incluso meses de
simulaciones. Se trataba, pues, de implementar un algoritmo que, manteniendo la
precisin adecuada, tuviese un tiempo de ejecucin lo menor posible. Partiendo de una
implementacin previa, basada en la diagonalizacin de una matriz, se realiz un
estudio en profundidad determinando otras posibilidades: mtodo basado en los
aproximantes diagonales de Pad y mtodo basado en la iteracin DB con aproximantes
diagonales de Pad. Tal como muestran los resultados, la implementacin basada en la
iteracin DB con aproximantes diagonales de Pad result tener un tiempo de ejecucin
aproximadamente igual a la mitad del tiempo de ejecucin de la primera
implementacin basada en la diagonalizacin de la matriz.

286

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

6.2.3 Resolucin de EDOs


En esta tesis se ha aplicado la tcnica de linealizacin a trozos para resolver EDOs con
una nueva aproximacin basada en el Teorema 4.1, desarrollado en el mbito de esta
tesis, el cual permite resolver EDOs aunque la matriz Jacobiana que aparece en cada
iteracin sea singular. Consecuencia de este teorema ha sido el desarrollo de nuevos
mtodo de resolucin de EDOs. Estos mtodos se basan en calcular en cada iteracin
una expresin en la que aparecen dos bloques de la exponencial de una matriz. Estos
mtodos se describen a continuacin:
Mtodo basado en los aproximantes diagonales de Pad. En este mtodo se
calculan los bloques que aparecen en la expresin que define la nueva
aproximacin, sin el clculo explicito de la exponencial que los contiene. Para ello
se realiza una adaptacin de los aproximantes diagonales de Pad. Para reducir los
costes computacionales y de almacenamiento, se ha adaptado adecuadamente el
mtodo anterior cuando se aplica sobre EDOs autnomas.
Mtodo basado en los subespacios de Krylov. En este mtodo se trasforma la
expresin que define a la nueva aproximacin en el producto de la exponencial de
una matriz definida a bloques por un vector. Para calcular eficientemente dicho
producto, se utiliza una aproximacin basada en subespacios de Krylov. Es
posible adaptar el mtodo anterior para resolver EDOs autnomas, reduciendo con
ello los costes computacionales y de almacenamiento.
Mtodo basado en la Ecuacin Conmutante En este mtodo se aplica la Ecuacin
Conmutante a la matriz Jacobiana, para encontrar los bloques que aparecen en la
expresin que define la nueva aproximacin. En este caso es necesario que la
matriz Jacobiana sea invertible. Al igual que ocurre en los otros dos mtodos, se
han reducido los costes computacionales y de almacenamiento cuando se
resuelven EDOs autnomas, adaptando para ello el mtodo anterior.
Para cada uno de los mtodos anteriores se ha desarrollo un algoritmo que permite
resolver EDOs:
EDOs no autnomas: Algoritmo 4.5, Algoritmo 4.7 y Algoritmo 4.11.
EDOs autnomas: Algoritmo 4.14, Algoritmo 4.16 y Algoritmo 4.18.
Adems, se han implementado los algoritmos anteriores en MATLAB y FORTRAN,
determinando los parmetros caractersticos de cada uno de ellos y optimizando sus
costes espaciales y temporales.
Se han presentado siete casos de estudio, realizando una gran variedad de pruebas sobre
ellos. Los resultados obtenidos han mostrado por una parte, cules suelen ser los valores
ptimos de los parmetros caractersticos y, por otra, las ventajas que tienen frente a un
mtodo clsico de resolucin de EDOs (mtodo BDF). Hay que resaltar dos aspectos en
este sentido:
Se han elegido algunos casos de estudio que corresponden a problemas de tipo
rgido.
Se han seleccionado algunos casos de estudios en los que la solucin analtica es
conocida, y as poder comprobar la precisin de los algoritmos implementados.

287

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

Se ha elegido un caso de estudio que corresponde a un problema de gran


dimensin, y as comprobar la eficiencia de los mtodos implementados para este
tipo de problemas.
Para cada caso de estudio se han determinado los valores ptimos de los
parmetros caractersticos de todos los cdigos implementados para, de este
modo, no favorecer a uno de ellos frente al resto.
Aunque se han analizado ms casos de estudio que los presentados en esta tesis,
se ha podido constatar que los resultados obtenidos en estos otros casos han
resultado ser similares.
A continuacin se hace un breve resumen de los resultados obtenidos:
Para un mismo incremento de tiempo, la precisin obtenida en los algoritmos
basados en la linealizacin a trozos de EDOs ha resultado ser similar e incluso
mayor que la obtenida en el algoritmo basado en el mtodo BDF.
Los algoritmos basados en los mtodos de linealizacin tienen un excelente
comportamiento en la resolucin de EDOs de tipo rgido.
Para cada uno de los caso de estudios considerados, al menos uno de los
algoritmos basados en la linealizacin a trozos ha tenido un coste computacional
menor que el correspondiente al mtodo BDF.
Para problemas de pequea dimensin han destacado, en cuanto coste
computacional, los algoritmos basados en la linealizacin a trozos mediante los
aproximantes diagonales de Pad y mediante la Ecuacin Conmutante.
Para problemas de mediano y gran tamao, destaca la implementacin basada en
la linealizacin a trozos mediante los subespacios de Krylov, por tener un tiempo
de ejecucin mucho menor que los tiempos de ejecucin correspondientes a las
otras implementaciones.

6.2.4 Resolucin de EDMRs


Se ha desarrollado una nueva metodologa para la resolucin de EDMRs que consiste en
la vectorizacin y posterior aplicacin de la linealizacin a trozos de EDOs. Debido al
enorme coste computacional y de almacenamiento necesarios, se han desarrollado tres
nuevos mtodos de resolucin de EDMRs. Entre las aportaciones de esta tesis en
relacin a la resolucin de EDMRs se encuentran las siguientes:
Demostracin de cuatro teoremas (Teorema 4.3, Teorema 4.4, Teorema 4.5,
Teorema 4.6) que permiten, mediante su aplicacin, resolver EDMRs tal como a
continuacin se detalla.
Desarrollo de tres nuevos mtodos, basados en la linealizacin a trozos, para la
resolucin de EDMRs:
Mtodo basado en los aproximantes diagonales de Pad. En cada iteracin se
calculan ciertos bloques de dos exponenciales matriciales, utilizando para ello
aproximaciones diagonales de Pad. Este mtodo est basado en el Teorema
4.3, el cual permite transformar un problema vectorial de gran dimensin,
problema que aparece al aplicar la linealizacin a trozos a la EDO obtenida
por vectorizacin de la EDMR, en un problema matricial. Para EDMRs con
coeficientes constantes es necesario reducir tanto el nmero de operaciones
como la memoria necesaria. Por ello se demuestra una adaptacin del

288

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

Teorema 4.3 para EDMRs con coeficientes constantes (Teorema 4.5). En este
caso slo se calculan dos bloques de una exponencial matricial.
Mtodo basado en la Ecuacin Conmutante. Este mtodo se basa en el
Teorema 4.4, el cual permite trasformar un problema vectorial de gran
dimensin en un problema matricial consistente en resolver tres ecuaciones
matriciales de Sylvester. Para EDMRs con coeficientes constantes se
demuestra el Teorema 4.6, el cual permite reducir el nmero de operaciones y
la memoria necesaria, pues en este caso slo hace falta resolver una ecuacin
matricial de Sylvester.
Mtodo basado en los subespacios de Krylov. Al igual que en los mtodos
anteriores, se aplica el mtodo de linealizacin a trozos a la EDO obtenida tras
la vectorizacin de la EDMR. En este caso la solucin aproximada en un
instante de tiempo se obtiene al multiplicar la exponencial de una matriz a
bloques de gran dimensin por un vector. Para calcular el producto anterior se
realiza una adaptacin del mtodo de los subespacios de Krylov aplicado a
matrices definidas a bloques. Para reducir el nmero de operaciones y la
memoria necesaria, se realiza tambin una adaptacin de este mtodo para el
caso de EDMRs con coeficientes constantes.
Desarrollo de seis algoritmos basados en los mtodos anteriores:
EDMRs con coeficientes variables: Algoritmo 4.21, Algoritmo 4.23 y
Algoritmo 4.26.
EDMRs con coeficientes constantes: Algoritmo 4.27, Algoritmo 4.29 y
Algoritmo 4.31.
Desarrollo de funciones/rutinas escritas en MATLAB y FORTRAN que permiten
resolver EDMRs. Hay que destacar que actualmente no se dispone de funciones
escritas en MATLAB que resuelvan EDMRs y, en el caso de rutinas escritas en
FORTRAN, tan slo se dispone del paquete DRSOL, pero nicamente para datos
en simple precisin.
En esta tesis se han presentado seis casos de estudio, realizando una gran variedad de
pruebas sobre ellos. Los resultados obtenidos han mostrado, por una parte, cules suelen
ser los valores ptimos de los parmetros caractersticos de cada uno de los mtodos y,
por otra, las ventajas que tienen frente a un mtodo BDF. Cabe mencionar tambin que
se han elegido los valores ptimos de parmetros caractersticos, de manera que no se
ha favorecido a uno de los algoritmos (o implementaciones) frente a los dems. Aunque
en la tesis se han reflejado seis casos de estudio, se han analizado ms casos, habindose
obtenido resultados similares. En cuanto a los casos de estudio cabe destacar:
Se han elegido algunos casos de estudio que corresponden a problemas de tipo
rgido.
Se han seleccionado algunos casos de estudios en los que la solucin analtica es
conocida, y as poder comprobar la precisin de los algoritmos implementados.
Se han elegido tres casos de estudio que corresponden a problemas de gran
dimensin, y as comprobar la eficiencia de los mtodos implementados para este
tipo de problemas. Dos de ellos corresponde a EDMRs con coeficientes
constantes y otro a EDMRs con coeficientes variables.
A continuacin se resumen brevemente los resultados obtenidos:
289

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

Los algoritmos basados en la linealizacin a trozos tienen una precisin similar e


incluso mayor que los algoritmos basados en el mtodo BDF. En un caso de
estudio (Problema 5.12), se ha podido comprobar que para incrementos de tiempo
del orden de una dcima se ha producido error en la implementacin del mtodo
BDF, no as en dos implementaciones de los mtodos de linealizacin a trozos
(implementacin basada en la Ecuacin Conmutante e implementacin basada en
los subespacios de Krylov).
Los algoritmos basados en los mtodos de linealizacin tienen un excelente
comportamiento en la resolucin de EDMRs de tipo rgido.
El coste computacional de los algoritmos basados en la linealizacin a trozos es
menor que el coste computacional de los algoritmos basados en el mtodo BDF.
Este es un aspecto a destacar, puesto que los algoritmos basados en el mtodo
BDF se encuentran entre los ms utilizados, actualmente, en la resolucin de
EDMRs.
Para EDMRs con coeficientes constantes, los algoritmos basados en los mtodos
de linealizacin tienen un coste computacional menor que el algoritmo basado en
el mtodo BDF. Entre ellos destacan el basado en los subespacios de Krylov,
fundamentalmente por su buen comportamiento a medida que el tamao del
problema se va haciendo mayor, y el basado en los aproximantes diagonales de
Pad. En este sentido, se ha comprobado que para tamaos elevados de un
problema, el tiempo de ejecucin de la implementacin basada en los
subespacios de Krylov ha sido mucho menor que la implementacin basada en el
mtodo BDF.
Para EDMRs con coeficientes variables, el algoritmo basado en el mtodo de
linealizacin a trozos mediante los subespacios de Krylov, presenta, en general,
menores errores que los otros algoritmos. Los algoritmos basados en los mtodos
de linealizacin a trozos presentan costes computacionales menores que el
basado en el mtodo BDF, destacando el basado en la Ecuacin Conmutante y el
basado en los subespacios de Krylov. Para tamaos elevados de un problema, el
tiempo de ejecucin de la implementacin basada en los subespacios de Krylov
ha sido mucho menor que la implementacin basada en el mtodo BDF.

6.3 Publicaciones en el Marco de la Tesis

M. Marqus, Vicente Hernndez Garca, J. Javier Ibez Gonzlez, Parallel


Algorithms for Computing Functions of Matrices on Shared Memory
Multiprocessors. Parallel Computing and Transputer Applications, IO Press, pp.
157-166, 1992.

Vicente Hernndez Garca, J. Javier Ibez Gonzlez, G. Quintana, A.M. Vidal, V.


Vidal, Experiencias Docentes Sobre el Uso del LAPACK en Multiprocesadores
con Memoria Compartida. Jornadas sobre Nuevas Tecnologas en la Enseanza de
las Matemticas en la Universidad. E.T.S.I. de Telecomunicacin Universidad
Politcnica de Valencia, pp. 163-178, 1993.

Vicente Hernndez Garca, J. Javier Ibez Gonzlez, Calculo de la Exponencial


de una Matriz: Algoritmos Paralelos Basados en la Descomposicin Real de Schur.
Informe Tcnico/Technical Report DSIC-II-36/93, Departamento de Sistemas
Informticos y Computacin, Universidad Politcnica de Valencia, Valencia 1993.

290

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

Juan Carlos Fernndez, Enrique S. Quintana, Vicente Hernndez, Javier Ibez,


Algoritmos Paralelos para la Resolucin de la Ecuacin Conmutante Sobre
Multiprocesadores con Memoria Distribuida". Informe Tcnico/Technical Report
DSIC-II-12/95, Departamento de Sistemas Informticos y Computacin,
Universidad Politcnica de Valencia, Valencia 1995.

Enrique Arias Antnez, Vicente Hernndez Garca, J. Javier Ibez Gonzlez,


Discretization of Continuous-Time Linear Control Systems: A High Performance
Computing Approach. 3rd Portuguese Conference on Automatic Control:
CONTROLO98, pp. 47-51, 1998.

Enrique Arias Antnez, Vicente Hernndez Garca, J. Javier Ibez Gonzlez,


Algoritmos Secuencial y Paralelo para la Resolucin del Problema de la
Discretizacin de Sistemas Lineales Continuos. Informe Tcnico/Technical Report
DSIC-II-45/98, Departamento de Sistemas Informticos y Computacin,
Universidad Politcnica de Valencia, Valencia 1998.

Enrique Arias Antnez, Vicente Hernndez Garca, J. Javier Ibez Gonzlez,


Distributed Memory Parallel Algoritms for Computing Integrals Involving the
Matrix Exponential. First Niconet Workshop on Numerical Software in Control
Engineering, Universidad Politcnica de Valencia, Diciembre de1998.

Enrique Arias Antnez, Vicente Hernndez Garca, J. Javier Ibez Gonzlez, Un


Algoritmo Paralelo para el Clculo de Exponenciales de Matrices e Integrales con
Exponenciales de Matrices. X Jornadas de Paralelismo, La Manga del Mar Menor,
pp. 55-60, Septiembre de 1999.

Enrique Arias Antnez, Vicente Hernndez Garca, J. Javier Ibez Gonzlez,


Algoritmos Paralelos para el Clculo de Integrales con Exponenciales de
Matrices. Informe Tcnico/Technical Report DSIC-II-20/99, Departamento de
Sistemas Informticos y Computacin, Universidad Politcnica de Valencia,
Valencia 1999.

Enrique Arias Antnez, Vicente Hernndez Garca, Ignacio Blanquer Espert, J.


Javier Ibez Gonzlez, Nonsingular Jacobian Free Piecewise Linearization of
Ordinary Differential Equations (EDO). Second Niconet Workshop on Numerical
Software in Control Engineering, Institut National de Recherche en Informatique et
en Automatique, pp. 1-5, Diciembre de1999.

E. Arias, V. Hernndez, J. J. Ibez, Non Singular Jacobian Free Piecewise


Linealization of the State Equation. Controlo2000: 4th Portuguese Conference on
Automatic Control, pp. 630-635, October of 2000.

E. Arias, V. Hernndez, J. J. Ibez, Algoritmos de Altas Prestaciones para la


Resolucin de Ecuaciones Diferenciales Ordinarias y Algebraicas. XII Jornadas de
Paralelismo. Valencia, pp. 205-209, Septiembre del 2001.

E. Arias, V. Hernndez, J. J. Ibez, High Performance Algorithms for Computing


Nonsingular Jacobian Free Piecewise Linealization of Differential Algebraic
Equations. Integral Methods in Science and Engineering, Analytic and Numerical
Techniques, Birkhuser Boston, pp. 7-12, 2004.

E. Arias, V. Hernndez, J. J. Ibez and J. Peinado, Solving Differential Riccati


Equations by Using BDF Methods. Technical Report, DSIC-II/05/05, Universidad
Politcnica de Valencia, 2005.

291

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

6.4 Lneas Futuras de Investigacin


Las lneas futuras de investigacin se centrarn en la aplicacin del clculo de
Funciones de Matrices en la resolucin de problemas de ingeniera, la aplicacin de la
linealizacin a trozos y de otras metodologas para la resolucin de ecuaciones
diferenciales vectoriales y matriciales, y, fundamentalmente, el desarrollo e
implementacin de los algoritmos paralelos correspondientes a los mtodos
desarrollados en esta tesis.
Aplicacin del clculo de Funciones de Matrices a la resolucin de problemas
de ingeniera.

Se trata de abordar el anlisis de problemas reales en los que aparece la necesidad de


calcular Funciones de Matrices. Para cada problema de este tipo se debe realizar un
estudio de cul es el algoritmo ptimo para ese problema y su posterior
implementacin. En la actualidad se han realizado diversas implementaciones en este
sentido: simulacin de la propagacin de ondas en fibras de cristal fotnico o ajuste
dinmico de los parmetros de control para cambios en los periodos de muestreo en
sistemas de control.
Aplicacin del clculo de Funciones de Matrices a la resolucin de problemas
de ingeniera en los que aparezca la necesidad de resolver EDOs con valores
iniciales o valores de contorno.

Se trata de resolver nuevos o antiguos problemas en los que es necesario resolver EDOs,
aplicando para ello las tcnicas desarrolladas en esta tesis. En particular, para problemas
de valores de contorno se puede aplicar la tcnica que consiste en desacoplar la
ecuacin diferencial en dos problemas, uno de valores iniciales y otro de valores finales,
mediante la resolucin de una EDMR (vase subapartado 2.4.4.5).
Aplicacin de la linealizacin a trozos para la resolucin de ecuaciones
diferenciales.

Por una parte, se tratara de mejorar los algoritmos ya desarrollados, en cuanto a la


eleccin de un tamao variable del incremento de tiempo, aprovechar la estructura
dispersa de muchos de estos problemas, para disear adaptaciones de los algoritmos
desarrollados, etc. Por otra parte, se tratara de aplicar tcnicas similares, pero para la
resolucin de otros tipos de ecuaciones diferenciales como:
Ecuaciones Diferenciales Matriciales de Sylvester (EDMSs).
Ecuaciones Diferenciales Matriciales Lineales (EDMLs).
Ecuaciones Diferenciales Algebraicas (EDAs).
Etc.
Desarrollo de nuevos mtodos de resolucin de EDOs y EDMOs basados en
aproximaciones cuadrticas.

Se tratara de realizar una aproximacin cuadrtica a trozos de la funcin


vectorial/matricial que define a la EDO/EDMO. En este caso la complejidad matemtica
y computacional es mayor, al aparecer trminos cuadrticos, en donde adems de la
matriz Jacobiana aparece la matriz Hessiana de la funcin que define a la EDO/EDMO.
Es por ello que, quizs, su aplicacin est ms limitada que el caso de linealizacin a
trozos, pero las ventajas, en cuanto a precisin, pueden resultar interesantes para el
desarrollo de nuevos mtodos de resolucin de ecuaciones diferenciales.

292

Captulo 6: Conclusiones y Lneas Futuras de Investigacin

Implementaciones paralelas de los algoritmos.

Es indudable que los procesadores secuenciales actuales ms rpidos, an utilizando


tcnicas de segmentacin o de computacin vectorial, estn limitados por su velocidad
de reloj. La nica manera posible de incrementar la capacidad de procesamiento es
utilizar sistemas multiprocesador, de memoria compartida o distribuida, al poder utilizar
de manera cooperativa varios procesadores. En la actualidad, existen numerosos
sistemas multiprocesador muy rpidos y a un precio muy asequible. Por otra parte, en
los ltimos tiempos se ha desarrollado software estndar para la programacin paralela
de esos sistemas entre los que destaca el ScaLapack ([ScLA97]). Una lnea de
investigacin claramente definida es el desarrollo e implementacin de algoritmos
paralelos para la resolucin de todos los problemas planteados en esta tesis:
En el caso de Funciones de Matrices hay que destacar el potencial de los
algoritmos paralelos basados en los aproximantes diagonales de Pad, aunque no
hay que descartar los basados en la descomposicin real de Schur de una matriz.
El cdigo que aparece en los algoritmos basados en los aproximantes diagonales
de Pad corresponde a operaciones bsicas del tipo matriz-matriz o matriz-vector,
y a la resolucin de sistemas de ecuaciones lineales. En el caso de los algoritmos
basados en la descomposicin real de Schur de una matriz, adems de las
operaciones antes mencionadas, necesitan del clculo de la descomposicin real
de Schur de una matriz. Con las herramientas actualmente disponibles para el
desarrollo de software paralelo, como es el caso del ScaLapack, los cdigos que
contienen operaciones bsicas de matrices y vectores y la resolucin de sistemas
de ecuaciones lineales, suelen ser muy eficientes en sistemas multiprocesador. En
el caso de la obtencin de la forma real de Schur, los cdigos no son tan eficientes
debido a las caractersticas del algoritmo iterativo QR que utiliza. Hay que
mencionar al respecto que, aunque no se han incluido en esta tesis
implementaciones paralelas, se han realizado algunas implementaciones de
algoritmos paralelos basados, tanto en la descomposicin real de Schur de una
matriz, como en los aproximantes diagonales de Pad.
En el caso de la resolucin de EDOs y EDMRs, destacan los mtodos basados en
los subespacios de Krylov y en los aproximantes diagonales de Pad, pues
contienen operaciones bsicas del tipo matriz-matriz o matriz-vector, y la
resolucin de sistemas de ecuaciones lineales. En el caso de los mtodos BDF
existentes y el mtodo de linealizacin a trozos basado en la Ecuacin
Conmutante, la paralelizacin de los cdigos no ser tan eficiente, por tener que
utilizar la descomposicin real de Schur de una matriz a la hora de resolver la
ecuacin matricial de Sylvester.

293

Apndice A: Conceptos Bsicos y Notaciones

Apndice A.

Conceptos Bsicos y Notaciones

Las matrices y vectores que aparecen en esta tesis, se encuentran definidas sobre un
cuerpo F , que puede ser el cuerpo de los nmeros complejos C o el cuerpo de los
nmeros reales .
Un vector de dimensin n de sobre el cuerpo F se denotar como
v = [vi ] F

o bien como
v1
v
v = 2 F
M

vn

Una matriz A de orden mxn sobre un cuerpo F


A = [aij ] F

se denotar como
mxn

o bien
a11 a12
a
a22
A = 21
M
M

am1 am 2

L a1n
L a2 n
.
O M

L amn

Con I n se representa a la matriz identidad de orden n ,


1
0
In =
M

0
Con 0mxn F

mxn

0 L 0
1 L 0
.
M O M

0 L 1

se representa a la matriz nula de dimensin mxn ,

0mxn

en particular, 0 n F

nxn

0
0
=
M

0 L 0
0 L 0
F
M O M

0 L 0

mxn

representa a la matriz nula de orden n .

Una notacin muy usada en computacin numrica es la notacin de los dos puntos.
Esta notacin permite referenciar fcilmente submatrices, y en particular filas o
columnas de una matriz, como a continuacin se detalla.

295

Apndice A: Conceptos Bsicos y Notaciones

Dada una matriz A = [aij ] F

mxn

, se denota con A(i1 : i2 , j1 : j2 ) , para 1 i1 i2 m y

1 j1 j2 n , a la submatriz de A que consiste en seleccionar los elementos de A


cuyos ndices de filas se encuentran entre i1 e i2 , y cuyos ndices de columnas se
encuentran entre j1 y j2 , es decir,

ai1 j1 L ai1 j2

A(i1 : i2 , j1 : j2 ) = M O M .
ai j L ai j
2 2
21
De este modo, A(1 : m, j ) denota a la columna j-sima de la matriz A y A(i,1 : n) la fila
i-sima de la matriz A .
A continuacin se presentan algunos conceptos bsicos del algebra matricial que se
utilizarn en esta tesis, junto con algunas de sus propiedades.
Definicin 6.1.

Se denomina traza de una matriz A = [aij ] F

nxn

,a

traza ( A) = a11 + a22 + L + ann F .


Definicin 6.2.
A = [aij ] F

nxn

es una matriz diagonal si


aij = 0 , i j , para i, j = 1,2,L, n .

Definicin 6.3.

AF

nxn

es diagonal por bloques si es de la forma


A1
0
A=
M

donde Ai F

ni xni

, i = 1,2,L, r , siendo

Para expresar que A F


siguientes notaciones:

nxn

0
A2
M
0
r

n
i =1

0
L 0
,
O M

L Ar

= n.

es una matriz diagonal por bloques se suelen utilizar las


A = diag( A1 , A2 ,L, Ar )

o
A = A1 A2 L Ar ,

indicando que A es la denominada suma directa de las matrices A1 , A2 ,L, Ar .

296

Apndice A: Conceptos Bsicos y Notaciones

Definicin 6.4.
A = [aij ] F

nxn

es una matriz triangular superior si


aij = 0 , i > j , i, j = 1,2,L, n .

Definicin 6.5.
A = [aij ] F

nxn

es una matriz casi triangular superior si tiene la forma


A11
0
A=
M

donde Aij F

ni xn j

A1r
L A2 r
,
O M

L Arr

A12 L
A22
M
0

, para i, j = 1,L, r , siendo ni , n j {1,2} .

Definicin 6.6.
A = [aij ] F

nxn

es una matriz triangular inferior si


aij = 0 , i < j ; i, j = 1,2,L, n .

Si adems, aii = 1 , i = 1,2, L , n , se dice que A es triangular inferior unidad.


Definicin 6.7.
A = [aij ] F

nxn

es una matriz superior de Hessenberg si


aij = 0 , i > j + 1 ; i, j = 1,2,L, n .

Definicin 6.8.
A = [aij ] F

nxn

es una matriz inferior de Hessenberg si


aij = 0 , j > i + 1 ; i, j = 1,2,L, n .

Definicin 6.9.

Dada una matriz A = [a ij ] F

mxn

, se define la matriz traspuesta de A como


AT = [bij ] F

nxm

siendo bij = a ji , i = 1,2, L , n , j = 1,2,L, m .


Segn esto, un vector se puede representar como
v = [v1 , v2 ,L, vn ] F
T

siendo vi F , i = 1,2,L, n .
Definicin 6.10.

Una matriz A = [aij ] F

nxn

se dice que es simtrica si

297

Apndice A: Conceptos Bsicos y Notaciones

AT = A .
Definicin 6.11.

Dada una matriz A = [aij ] C

mxn

, la matriz conjugada de A se define como


A = [aij ] C

mxn

donde aij , i = 1,2,L, m , j = 1,2,L, n , es el complejo conjugado de aij .


Definicin 6.12.

Dada una matriz A C

mxn

, se define la matriz conjugada traspuesta de A como


A* = A T C

mxn

Definicin 6.13.

Una matriz A C

mxn

, se dice que es hermtica si


A* = A .

Definicin 6.14.

Una matriz A nxn se dice ortogonal si


A1 = AT .
Definicin 6.15.

Una matriz A C

nxn

se dice unitaria si
A 1 = A * .

Definicin 6.16.

Se define la matriz de Vandermonde asociada a c1 , c 2 , L , c n 1 , c n F , como


1
c
1
V = M
n2
c1
c1n 1

c2

L cn 1

O M
L cnn11

cnn1

n2
2
n 1
2

1
cn
M F
n 1
cn
cnn 1

nxn

Definicin 6.17 ([HoJo99], pgina 38).

Se denomina polinomio caracterstico de A F

mxn

, al polinomio
n 1

p( ) = det(I n A) = n ck k .
k =0

Definicin 6.18.

A cada una de las races del polinomio caracterstico de la matriz A F nxn se le


denomina valor propio de A . Si es un valor propio de A , entonces existe al menos

298

Apndice A: Conceptos Bsicos y Notaciones

un vector no nulo x F
que

, denominado vector propio de A asociado a , de manera


Ax = x .

Definicin 6.19.

Dada una matriz A F


valores propios.

nxn

, se denomina espectro A al conjunto ( A) de todos sus

Propiedad 6.1 ([BaSa98], pgina 313).

Si A F

nxn

, entonces los coeficientes del polinomio caracterstico de A son


ck = traza k +1 ( A) , k = 1,L, n 1 ,
c0 = det( A),

siendo traza k +1 ( A) la suma de todos los menores principal de orden k + 1 de A que


contienen en su diagonal principal k + 1 elementos de la diagonal principal de A .
Definicin 6.20.

Se dice que la matriz B F nxn es semejante a la matriz A F


no singular X F nxn de manera que

nxn

, si existe una matriz

B = XAX 1 .
Definicin 6.21.

Se dice que una funcin f (x) es analtica en un abierto U del cuerpo F , si se puede
expresar en la forma

f ( x) = ck x k , x U ,
k =0

siendo ck F , k 0 .
Teorema 6.1 (descomposicin cannica de Jordan).

Si A F
( 6.1 )

nxn

, entonces existe una matriz no singular X F

nxn

de manera que

X 1 AX = diag( J 1 , J 2 ,L, J r ) ,

donde J i denota al i-simo bloque de Jordan de A,


i
0

J i = M

0
0

i
M
0
0

0
O 0 0
O O M F

L i 1
L 0 i

i = 1,2,L, r ,

n
i =1

ni xni

= n.

299

Apndice A: Conceptos Bsicos y Notaciones

La matriz diag( J 1 , J 2 , L , J r ) se denomina forma cannica de Jordan de la matriz A .


Definicin 6.22.

Una matriz A F nxn es derogatoria si existe un valor propio de A , que aparece, al


menos, en dos bloques distintos de la forma cannica de Jordan de A.
Definicin 6.23.

Sean A F

nxn

y
n 1

p( ) = n ck k ,
k =0

su polinomio caracterstico. Se define la matriz compaera asociada a p( ) , como


0
0

B=M

0
c0

1 L

0 O

0 L

c1 L cn 2

0
0
M C

1
cn 1

nxn

Si n es elevado, entonces la matriz B es dispersa pues tiene un porcentaje alto de


elementos nulos
Propiedad 6.2

Dadas las matrices A y B de la Definicin 6.23, entonces A y B tienen el mismo


polinomio caracterstico.
Propiedad 6.3

Sean A y B las matrices de la Definicin 6.23. Si V es la matriz de Vandermonde


correspondiente a los valores propios de B , entonces V 1BV est en la forma de
Jordan.
Propiedad 6.4

Sean A y B las matrices de la Definicin 6.23. Si A no es derogatoria, entonces A es


semejante a una matriz compaera; en caso contrario, A es semejante a una suma
directa de matrices compaeras.
Definicin 6.24

Se dice que la matriz


M
M = 11
M 21

M 12
2 nx 2 n ,

M 22

M 11 , M 12 , M 21 , M 22 nxn ,
es Hamiltoniana si cumple que

J 1 M T J = M ,

300

Apndice A: Conceptos Bsicos y Notaciones

siendo
0
J = n
I n

In
.
0 n

Definicin 6.25

Se dice que la matriz


M
M = 11
M 21

M 12
2 nx 2 n ,
M 22

M 11 , M 12 , M 21 , M 22 nxn ,
es simplctica si cumple que

J 1 M T J = M 1 ,
siendo
In
.
0 n

0
J = n
In

Definicin 6.26.

Se define la funcin
diag : F

de manera que dado v = [v1 , v2 , L , vn ] F


T

F
n

nxn

, entonces

v1 0
0 v
2
diag(v) =
M M

0 0

0
L 0
.
O M

L vn

Teorema 6.2 (Descomposicin LU sin pivotamiento).

Si la matriz A = [aij ] F

nxn

verifica que det( A(1 : i,1 : i)) 0 , i = 1,2, L , n , entonces

existe una matriz triangular inferior unidad L F


U F nxn de manera que

nxn

y una matriz triangular superior

A = LU ,

siendo esta descomposicin nica.


Definicin 6.27.

Se dice que P nxn es una matriz permutacin, si cada columna (o fila) de P ,


contiene un solo elemento igual a 1, siendo el resto de los elementos de dicha fila (o
columna) iguales a 0. Esto es, si (1 , 2 , L , n ) es una permutacin de (1,2, L , n) ,
entonces
P = [eT1 , eT2 , L , eTn ] ,

301

Apndice A: Conceptos Bsicos y Notaciones

siendo eT i , i = 1,2, L , n , la columna de ndice i de la matriz identidad I n .


Teorema 6.3 (Descomposicin LU con pivotamiento parcial de filas).

Si la matriz A F nxn es invertible, entonces existe una matriz de permutacin


P nxn , una matriz triangular inferior unidad L F nxn y una matriz triangular
superior U F nxn , de manera que
PA = LU ,

siendo esta descomposicin nica.


Teorema 6.4 (Descomposicin QR).

Dada una matriz A C nxn , existe una matriz unitaria Q C


superior R C nxn , de manera que

nxn

y una matriz triangular

A = QR .
Si adems A es no singular, entonces R puede elegirse de manera que todos sus
elementos diagonales sean positivos y, por tanto, dicha descomposicin ser nica.
Teorema 6.5 (Descomposicin real QR).

Dada una matriz A nxn , existe una matriz ortogonal Q nxn y una matriz
triangular superior R nxn , de manera que
A = QR .
Si adems A es no singular, entonces R puede elegirse de manera que todos sus
elementos diagonales sean positivos y, por tanto, dicha descomposicin ser nica.
Teorema 6.6 (Descomposicin de Schur).

Dada una matriz A C nxn , existe una matriz unitaria Q C nxn y una matriz triangular
superior T C nxn , denominada forma de Schur de A , de manera que
A = QTQ * ,
donde los elementos de la diagonal de la matriz T coinciden con los valores propios de
la matriz A .
Teorema 6.7 (Descomposicin real de Schur de una matriz).

Dada una matriz A nxn , existe una matriz ortogonal Q nxn y una matriz casi
triangular superior S nxn , denominada forma real de Schur de A , de manera que

( 6.2 )

S11
0
A = QSQ T = Q
M

S12 L S1m
S 22 L S 2 m T
Q ,
M O M

0 L S mm

302

Apndice A: Conceptos Bsicos y Notaciones

donde cada bloque diagonal S ii , para i = 1,2, L , m , es de orden 1x1 2x 2 . Los


bloques diagonales de orden 1x1 corresponden a valores propios reales de A y los de
orden 2x 2 a un par de valores propios complejos conjugados de A .
Teorema 6.8 (Descomposicin en Valores Singulares).

Si A mxn , entonces existen dos matrices ortogonales U mxm y V nxn de


manera que
U T AV = diag( 1 , 2 , L , p ) pxp , p = min(m, n) ,

siendo 1 2 L p 0 los llamados valores singulares de la matriz A .


Como consecuencia de este teorema, se define la Descomposicin en Valores
Singulares (DVS) de la matriz A , como
A = UV T ,
siendo
= diag( 1 , 2 , L , p ) pxp .

Definicin 6.28.

Dadas las matrices A = [aij ] F

mxn

y B = [bij ] F

pxq

, se define la matriz producto de

Kronecker de A por B como


a11B a12 B
a B a B
22
A B = 21
M
M

am1B am 2 B

L a1n B
L a2 n B
F
O
M

L amn B

mpxnq

Propiedad 6.5.

Si A F

mxn

y B, C F

pxq

, entonces
A (B + C) = A B + A C .

Propiedad 6.6.

Si A, B F

mxn

y C, D F

pxq

, entonces

( A B)(C D) = AC BD .
Definicin 6.29.

Una norma vectorial en F

es una funcin
F

que verifica las siguientes propiedades:


1. || x || 0, x F

2. || x ||= 0 si y solo si x es el vector nulo,

303

Apndice A: Conceptos Bsicos y Notaciones

3. || x ||=| | || x || , F , x F
4. || x + y |||| x || + || y || , x, y F

Definicin 6.30.

Dado un entero positivo p , se define la p-norma vectorial en F

como

|| x || p = p | x1 | p + | x2 | p + L + | xn | p ,

siendo x = [ x1 , x2 , L , xn ]T F

En particular, se define la -norma como


|| x || = lim p | x1 | p + | x2 | p + L + | xn | p = max (| xi |) .
p
1i n

Definicin 6.31.

Una norma matricial en F

mxn

es una funcin
F

nxn

que verifica las siguientes propiedades:


1. || A || 0 , A F

mxn

2. || A ||= 0 si y solo si A = 0 mxn .


3. || A ||=| | || A || , F , A F
4. || A + B |||| A || + || B || , A, B F

mxn

mxn

Definicin 6.32.

Se define la norma matricial subordinada || || M a la norma vectorial || ||v , como


|| A || M = max(|| Ax ||v ) , A F

mxn

|| x||v =1

siendo x F

Definicin 6.33.

Dado un entero positivo p , se define la p-norma matricial sobre F


|| A || p = max(|| Ax || p ) , A F

mxn

|| x|| p =1

siendo x F

mxn

como

Definicin 6.34.

Se define la norma de Frobenius de una matriz A = [aij ] F


|| A || F =

| a
i =1 j =1

ij

mxn

como

|2 .

304

Apndice A: Conceptos Bsicos y Notaciones

Definicin 6.35.

Se denomina nmero de condicin de una matriz invertible A F


norma matricial subordinada || || , al nmero real

nxn

relativo a la

cond || || ( A) =|| A || || A 1 || .

En particular, con cond p ( A) se designa al nmero de condicin de la matriz A


asociado a la p-norma matricial.
Definicin 6.36.

Se define la funcin vec ,

vec : F

mxn

como la aplicacin que a una matriz A = [aij ] F

mn
mxn

, le asocia como imagen el vector

vec( A) F mn que se obtiene colocando las columnas de A una a continuacin de otra


en el orden natural, es decir,
vec( A) = [a11 , a21 , L , am1 , a12 , a22 , L, am 2 , L , a1n , a2 n , L, amn ]T .
Propiedad 6.7

Si A, B F

mxn

, entonces

vec( A + B) = vec( A) + vec( B) .


Propiedad 6.8

Si A F

mxn

, BF

nxp

y C F

pxq

, entonces

vec( ABC ) = (C T A) vec( B) .


Definicin 6.37.

Dados dos enteros positivos m y n , se define la funcin mat mxn ,


mat mn : F

mn

mxn

como la aplicacin que a un vector de tamao mn


v = [v1 , v2 , L, vm , vm+1 , vm+ 2 , L, v2 m , L , vmnm+1 , vmnm+ 2 , L , vmn ]T F

mn

le asocia como imagen la matriz mxn que se obtiene colocando las componentes de v,
una a continuacin de otra en el orden natural, en columnas de tamao m, es decir,
v1
v
mat mxn (v) = 2
M

v m

vm+1 L vmnn1
vm + 2
vmnn
mxn .

v2 m
vmn

305

Apndice A: Conceptos Bsicos y Notaciones

Definicin 6.38.

Un flop es el tiempo necesario para realizar una operacin aritmtica (suma, resta,
producto o divisin) en coma flotante.

306

Apndice B: Rutinas Auxiliares

Apndice B.

MATLAB

MATLAB (MAThematical LABoratory) es un entorno de programacin que permite


realizar clculos cientficos y de ingeniera basados en vectores y matrices. Se puede
trabajar con l de forma interactiva o utilizando un intrprete de un lenguaje propio que
lleva incorporado. Se distingue de otros lenguajes, como FORTRAN o C, porque opera
en un nivel superior, pues permite realizar operaciones bsicas entre vectores y
matrices, incorporando adems un gran nmero de funciones cuyos argumentos son
vectores y matrices. Por otra parte, MATLAB dispone de numerosas herramientas de
desarrollo y depuracin de cdigo que lo hacen muy til en el desarrollo de algoritmos.
En la actualidad MATLAB se ha convertido en el estndar de desarrollo de algoritmos
en computacin numrica. Trefethen llega a afirmar en la introduccin de [Tref00] que
con MATLAB ha nacido una nueva era en la computacin cientfica porque puede
hacer una cantidad astronmica de clculos con muy pocas lneas de programa y en
unos pocos segundo de tiempo. Charles F. Van Loan en [VanL00] afirma que
MATLAB ha cambiado la forma de calcular e investigar en las ciencias de la
computacin. J. Higham, inminente investigador de funciones matrices, ha utilizado
extensamente este software en todos sus trabajos, habiendo publicado recientemente un
libro sobre MATLAB ([HiHi00]). MATLAB se ha convertido en una poderosa
herramienta para investigar y resolver problemas prcticos sobre todo con el desarrollo
de las Toolbox. Las Toolbox contienen funciones de MATLAB que resuelven
problemas aplicados a diferentes reas.

Resolucin de EDOs
MATLAB es capaz de calcular la evolucin en el tiempo de la solucin de EDOs
lineales y no lineales con valores iniciales
( 6.3 )

x' (t ) = f (t , x(t )) , t 0 t t f ,
x(t 0 ) = x0 ,

siendo x(t ) n y f (t , x) una funcin vectorial.


La sintaxis bsica de las funciones que resuelven EDOs en MATLAB es la siguiente:
[t , Y ] = solvername(' F ' , tspan, y0 ) .

solvername : nombre de la funcin de MATLAB que resuelve la EDO.

F : nombre del fichero que contiene la definicin de la funcin f ( x, t ) .

tspan : vector que indica los instantes en los que se va a evaluar la funcin. Si
contiene slo dos nmeros, stos representan el comienzo y el final del intervalo
de integracin. Si contiene ms de dos elementos, indica en qu instantes se
quiere obtener la solucin,

y0 : vector columna con el valor inicial.

307

Apndice B: Rutinas Auxiliares

Y : matriz con tantas filas como tiempos de salida y tantas columnas como
dimensin del vector y 0 .

t : vector que contiene los instantes en los que se obtiene la solucin.

En la siguiente tabla se muestran las funciones que resuelven EDOs en MATLAB.


Funcin Tipo de problema Mtodo utilizado
ode45

no rgido

Runge-Kutta de orden 4 y 5

ode23

no rgido

Runge-Kutta de orden 2 y 3

ode113

no rgido

Mtodos lineales multipaso de rdenes 1 a 13

ode15s

rgido

BDF de rdenes 1 a 5

ode23s

rgido

Rosembrock modificados de orden 2 y 3

ode23t

poco rgido

Regla de los trapecios

ode23tb rgido
Tabla 6.1:

Runge-Kutta implcito de orden 2 y 3


Funciones de MATLAB para la resolucin de EDOs.

MATLAB permite utilizar una sintaxis ms completa para la resolucin de EDOs:


[t , Y , s ] = solvername(' F ' , tspan, y0 , options ) .

s : vector que contiene ciertos resultados estadsticos de la integracin.

options : estructura definida por la funcin odeset, que permite definir ciertas
caractersticas del mtodo utilizado en la funcin.

La sintaxis de odeset es
options = odeset (' param1 ' , val1 , ' param2 ' , val2 , L)

o bien
options = odeset (oldopt , ' param1 ' , val1 , ' param2 ' , val2 , L) .

Entre los parmetros ms importantes de esta funcin se encuentran los siguientes:

Tratamiento del error: RelTol , AbsTol . El test de error est acotado por
err (i ) max( AbsTol , RelTol | x(i ) |) .

Para el paso: InitialStep , MaxStep .

Matriz Jacobiana: Jacobian , JConstant , JPattern , Vectorized .

Especificacin de la salida: OutputFcn , OutputSel , Refine , Stats .

Funciones de Matrices
MATLAB posee numerosas funciones de matrices, las cuales se detallan a
continuacin:
308

Apndice B: Rutinas Auxiliares

Funcin exponencial.

B = expm(A) calcula B = e A . Esta funcin utiliza la aproximacin de Pad con escalado


y potenciacin.

Funcin logaritmo.

B = logm(A) calcula el logaritmo principal de la matriz A , utilizando para ello el


Algoritmo 2.2. Si la matriz A es singular o tiene algn valor propio en el semieje real
negativo, entonces B no se puede calcular, devolviendo logm un mensaje de error.
La funcin logm tambin admite la sintaxis
[B, exitflag] = logm(A),
devolviendo, adems del logaritmo principal en caso de existir, el entero exitflag que
describe la condicin de salida de logm:

Si exitflag = 0, el logaritmo principal se ha podido calcular.

Si exitflag = 1, alguna evaluacin de la serie de Taylor, utilizada en el clculo de


Fii = f (Tii ) mediante el Algoritmo 2.2, no converge. Incluso en este caso, el
valor devuelto puede ser exacto.

Funcin raz cuadrada.

B = sqrtm(A) calcula la raz cuadrada principal de la matriz A . Si A tiene algn valor


propio con parte real negativa entonces la matriz devuelta en B es compleja. Si A es
singular entonces A no puede tener una raz cuadrada, mostrando sqrtm un mensaje de
error.
La funcin sqrtm tambin admite otras sintaxis.

[ X , r ] = sqrtm( A) .
En este caso no se muestran mensajes de error, devolviendo en r el valor del
residuo
|| A X 2 || F
.
|| A || F

[ X , , c] = sqrtm( A) .
En este caso en se devuelve un factor de estabilidad y en c una estimacin
del nmero de condicin asociado a la raz cuadrada X . El residuo est
acotado aproximadamente por n y el error relativo cometido al calcular la
raz cuadrada est acotado aproximadamente por nc , siendo n la dimensin
de la matriz A y el redondeo unidad ([GoVa96], pgina 61).

Si X es real, simtrica y definida positiva, o compleja, hermtica y definida positiva,


entonces tambin es posible calcular su raz cuadrada.

Funciones en general.

funm(A,fun) calcula f ( A) para una funcin dada en el argumento fun. La


implementacin de esta funcin est basada en el Algoritmo 2.2. Esta funcin debe
admitir un desarrollo en serie de Taylor con un radio de convergencia infinito, excepto
para fun = @log, la cul es tratada de forma especial. Los posibles valores de fun son

309

Apndice B: Rutinas Auxiliares

@exp, @log, @sin, @cos, @sinh y @cosh. Admite adems otras sintaxis que permiten
controlar ciertos parmetros para el clculo de la funcin matricial.

310

Apndice C: BLAS y LAPACK

Apndice C.

BLAS y LAPACK

La clave para utilizar eficientemente ordenadores de altas prestaciones es evitar


referencias innecesarias a memoria. En la mayora de los ordenadores, los datos fluyen
desde memoria a registros de la mquina o viceversa. Este flujo de datos puede ser ms
costoso que las operaciones aritmticas entre los datos. Por lo tanto, las prestaciones de
los algoritmos pueden estar determinadas por la cantidad de trfico hacia memoria ms
que por el nmero de operaciones en coma flotante realizadas. Este coste motiva la
reestructuracin de los algoritmos existentes en base a disear otros nuevos que
minimicen dicho movimiento.
Una forma de conseguir eficiencia en la solucin de problemas del lgebra lineal es
utilizar BLAS (Basic Linear Algebra Subroutines). En 1973, Hanson, Krogh y Lawson
describieron las ventajas de utilizar un conjunto de rutinas bsicas para problemas del
lgebra lineal. El BLAS ha tenido mucho xito en este sentido y se ha utilizado en una
gran diversidad de software numrico y muchos de los algoritmos publicados por ACM
Transactions on Mathematical Software. Las rutinas del BLAS ayudan a la claridad,
portabilidad, modularidad y mantenimiento del software, y, adems, se ha convertido en
un estndar en lo referente a operaciones vectoriales y matriciales.
El deseo de obtener software numrico que pueda ser utilizado por una gran variedad de
sistemas informticos ha culminado en la disponibilidad comercial de una variedad de
libreras (por ejemplo, NAG e IMSL) y tambin de software de dominio pblico (por
ejemplo, LINPACK, EISPACK, NETLIB). Un intento de obtener un software numrico
que fuera portable en sistemas MIMD (Multiple Instruction Multiple Data) fue la
creacin del LAPACK. El desarrollo del LAPACK ha sido un paso natural despus de
que las especificaciones de los niveles BLAS 2 y BLAS 3 fueran diseadas entre 198486 y 1987-88. La investigacin de algoritmos numricos paralelos continu varios aos,
haciendo posible la construccin de un nuevo paquete de software que sustituyese al
LINPACK y EISPACK, permitiendo una mayor eficiencia en el uso de las nuevas
computadoras de altas prestaciones. La propuesta inicial del LAPACK fue especificada,
aunque todava el BLAS 3 se estaba desarrollando, en un proyecto financiado por la
National Science Foundation (USA).
El LAPACK, escrito en FORTRAN 77 estndar para datos en simple y en doble
precisin de nmeros reales y complejos, implementa un gran nmero de algoritmos
que resuelven problemas tpicos del lgebra lineal entre los que se encuentran: la
resolucin de sistemas lineales de ecuaciones, las descomposiciones matriciales (LU,
Cholesky, QR), el clculo de valores propios y singulares de una matriz, etc. Las
matrices utilizadas en dichos algoritmos se subdividen en bloques de tamao adecuado
y se utilizan rutinas del BLAS para la realizacin de operaciones bsicas entre ellos.
Para obtener una alta eficiencia en la ejecucin de las rutinas del LAPACK sobre
mquinas paralelas, ya sea sobre procesadores vectoriales o multiprocesadores con o sin
registros vectoriales, es necesario disponer de una versin optimizada del BLAS que
permita el uso eficaz del hardware. Por lo tanto, el paralelismo en la ejecucin de dichas
rutinas se encuentra en las llamadas al BLAS, estando oculto este paralelismo a los ojos
del usuario.

311

Apndice C: BLAS y LAPACK

Inicialmente las rutinas del LAPACK se disearon especficamente para que se


ejecutaran eficientemente sobre multiprocesadores con memoria compartida. Por ello,
se basan en algoritmos orientados a bloques, es decir, las matrices se dividen en
bloques, y las operaciones bsicas que aparecen en los algoritmos son productos y
actualizaciones de matrices y vectores. Estas operaciones utilizan llamadas al BLAS 2
(operaciones del tipo matriz-vector) o al BLAS 3 (operaciones del tipo matriz-matriz).
El uso de tamaos adecuados de bloques es fundamental para el rendimiento de las
rutinas. Estos tamaos dependen, fundamentalmente, de la mquina sobre la que se
utilizan.
En www.netlib.org/lapack/ se puede encontrar el manual completo de LAPACK en
formato html, los cdigos fuentes de BLAS y LAPACK, algunas libreras compiladas
para varias arquitecturas y sistemas operativos, etc.
Una forma sistemtica de obtener software de altas prestaciones consiste en
implementar los algoritmos, expresados por ejemplo en MATLAB, en un lenguaje de
alto nivel, utilizando ncleos computacionales de altas prestaciones como BLAS y
LAPACK. Si se dispone de libreras optimizadas para una determinada arquitectura de
BLAS y LAPACK se obtiene un software eficiente y de altas prestaciones. Adems, se
posibilita el posterior desarrollo de implementaciones paralelas utilizando, por ejemplo,
la librera SCALAPACK ([ScLA97]) con la consiguiente ganancia en velocidad.

BLAS
Convenciones en el BLAS

Los nombres de las rutinas del BLAS tienen la forma xyyzz. La primera letra del nombre
(x) indica el tipo de dato utilizado y su precisin:
S: real en simple precisin.
D: real en doble precisin.
C: complejo en simple precisin.
Z: complejo en doble precisin.
En BLAS 2 y BLAS 3, las dos siguientes letras (yy) indican el tipo de matriz utilizada y
las dos ltimas el problema que resuelven; as por ejemplo, MM indica producto de dos
matrices, MV producto de matriz por un vector, SM resolucin de un sistema lineal
triangular mltiple, SV resolucin de un sistema lineal triangular, etc. El BLAS 1 suele
tener una notacin propia para todas las letras (salvo la primera).
GE: general

GB: general banda

SY: simtrica

SB: simtrica banda

SP: simtrica empaquetada

HE: hermitiana HB: hermitiana banda HP: hermitiana empaquetada


TR: triangular
Tabla 6.2:

TB: triangular banda

TP: triangular empaquetada

Valores de yy en los nombres de las rutinas del BLAS2 y del BLAS3.

312

Apndice C: BLAS y LAPACK

Estructura del BLAS


BLAS 1.

El conjunto de rutinas de este nivel resuelven problemas bsicos de complejidad lineal


como, por ejemplo, las operaciones el producto escalar de vectores, la actualizacin de
un vector a partir de otro, generacin de rotaciones, clculo de normas vectoriales, etc.
Las principales subrutinas y funciones son:
_AXPY

y = x + y ,

_SCAL

x = x ,

_SWAP

intercambia x e y ,

_COPY

y = x,

_DOT

realiza el producto escalar x T y ,

_NRM2

calcula la 2-norma de x ,

_ROT

genera una rotacin en el plano,

donde x e y son vectores y un escalar.


BLAS 2.

Versiones especiales del BLAS 1, en algunos casos versiones en cdigo mquina, se


han implementado sobre un gran nmero de mquinas, por lo que se ha mejorado la
eficiencia del BLAS 1. Sin embargo, en algunas arquitecturas modernas, el uso del
BLAS 1 no es el mejor camino para mejorar la eficiencia de cdigos de alto nivel. Por
ejemplo, en mquinas vectoriales se necesita optimizar operaciones del tipo matrizvector para aprovechar la potencial eficiencia de la mquina, sin embargo, el uso del
BLAS 1 inhibe esta optimizacin, puesto que el BLAS 1 oculta al compilador la
naturaleza de estas operaciones.
Para resolver esta problemtica se dise el BLAS 2, el cual implementa un conjunto
reducido de operaciones matriz-vector que aparecen muy a menudo en la
implementacin de muchos algoritmos del lgebra lineal. Las operaciones que
implementan estas subrutinas tienen un coste cuadrtico.
Los tres siguientes tipos de operaciones bsicas son implementados en este nivel:

Operaciones del tipo matriz-vector.

_GEMV

y = op( A) x + y .

_TRMV

x = op( A) x

( A triangular).

Actualizaciones de rango uno o rango dos.

_GER :

A = xy T + A .

_SYR2 :

A = xy T + yx T + A ( A simtrica).

Resolucin de sistemas de ecuaciones lineales triangulares.

_TRSV :

x = op( A 1 ) x

( A triangular).

313

Apndice C: BLAS y LAPACK

En las expresiones anteriores A es una matriz, x e y vectores, y escalares y


op( X ) = X , X T , X * .
BLAS 3.

Muchos algoritmos pueden codificarse de manera que la mayor parte del clculo
vectorial o matricial se realice mediante llamadas al BLAS 2. Cuando se trabaja con
mquinas vectoriales es aconsejable utilizar longitudes de vectores tan grandes, como
sea posible, y as los resultados son calculados sobre un vector (fila o columna) de una
sola vez, de manera que las prestaciones aumentan al reutilizar los registros vectoriales
en lugar de devolver sus valores a memoria.
Desafortunadamente la aproximacin anterior no es apropiada en los ordenadores con
una jerarqua de memorias o en ordenadores con procesamiento en paralelo. Para estas
arquitecturas es preferible dividir la matriz o matrices en bloques y realizar las
operaciones de tipo matriz-matriz sobre bloques. Organizando los clculos de este
modo, se posibilita la completa reutilizacin de los datos de aquellos bloques que se
encuentran en la memoria cach. Esta aproximacin evita el excesivo movimiento de
datos desde y hacia la memoria. Sobre arquitecturas que permiten el procesamiento en
paralelo, el paralelismo se puede explotar de dos formas: (1) las operaciones sobre
diferentes bloques puede realizarse en paralelo (concurrencia), y (2) las operaciones
vectoriales y escalares en cada bloque pueden realizarse sobre los registros vectoriales
(vectorizacin).
El BLAS 3 se dise con el objeto de llevar a cabo operaciones matriz-matriz y as
disear algoritmos por bloques que permitiesen la realizacin de un nmero mayor de
operaciones sobre las memoria cach. Las rutinas se han desarrollado de forma similar a
la realizada en los niveles 1 y 2 del BLAS, reemplazando los vectores x e y por
matrices A , B y C . La ventaja de disear el software de manera consistente con el
nivel 2 del BLAS es que es ms fcil recordar las secuencias de llamadas y las
convenciones en los parmetros.
Las principales subrutinas de BLAS 3 son las siguientes:

Producto matriz-matriz.

_GEMM:

C = op( A)op( B ) + C .

_TRMM:

C = op( A) B + C , C = op( A) B ( A triangular).

Actualizaciones de rango k de una matriz simtrica.

_SYRK:

C = AA T + C , C = AT A + C ( C simtrica).

_SYRK2:

C = AB T + BA T + C ( C simtrica).

Resolucin de mltiples sistemas lineales triangulares de ecuaciones.

_ TRSM : B = op ( A 1 ) B, B = Bop( A 1 ) ( A triangular).

En las expresiones anteriores A , B y C son matrices, y escalares y


op( X ) = X , X T , X * .

314

Apndice C: BLAS y LAPACK

LAPACK
Estructura del LAPACK

Las rutinas del LAPACK se clasifican en:

Rutinas driver: Estas rutinas resuelven un problema completo, por ejemplo, la


resolucin de un sistema lineal de ecuaciones o el clculo de los valores propios de
una matriz real simtrica.

Rutinas computacionales: Estas rutinas resuelven diferentes tareas computacionales,


por ejemplo, la factorizacin LU, la reduccin de una matriz simtrica a la forma
tridiagonal, etc. Cada rutina driver llama a una secuencia de rutinas computacionales
para realizar su funcin.

Rutinas auxiliares. Estas rutinas se clasifican como sigue:

Rutinas que realizan subtareas de algoritmos orientados a bloques, en particular,


rutinas que implementan versiones de algoritmos no orientadas a bloques.

Rutinas que realizan algunos clculos computacionales muy comunes de bajo


nivel, por ejemplo, el escalado de una matriz, el clculo de normas matriciales, la
generacin de matrices elementales de Householder, etc. Algunas de estas rutinas
pueden tener inters para los analistas numricos o desarrolladores del software,
y pueden considerarse como futuras ampliaciones del BLAS.

Rutinas que amplan al BLAS como, por ejemplo, rutinas que realizan rotaciones
en el plano complejo u operaciones del tipo matriz-vector que involucran
matrices complejas simtricas (no existen rutinas en el BLAS que realicen estas
funciones).

El LAPACK dispone de rutinas que trabajan con datos en simple y en doble precisin
de nmeros reales y complejos. En la mayora de los casos hay rutinas semejantes para
los diferentes tipos de datos, pero existen algunas excepciones. Por ejemplo, para la
resolucin de sistemas lineales de ecuaciones indefinidos y simtricos, existen rutinas
que resuelven sistemas simtricos complejos y hermticos complejos, puesto que ambos
tipos de sistemas complejos aparecen en aplicaciones prcticas. Sin embargo, no hay un
caso complejo anlogo al de la rutina que calcula los valores propios de una matriz
tridiagonal simtrica, puesto que toda matriz hermitiana compleja se puede reducir a
una matriz real tridiagonal simtrica.
Las rutinas que realizan la misma funcin para datos reales y complejos, siempre que
esto sea posible, han sido codificadas para mantener una correspondencia cercana entre
ellas. Sin embargo, en algunas reas, especialmente en problemas de valores propios no
simtricos, la correspondencia es necesariamente ms lejana.
Las versiones en doble precisin se han generado automticamente, utilizando el
Toolpack/1 (vase [Poll89]). Las rutinas de doble precisin para matrices complejas
requieren el tipo de datos no estndar COMPLEX*16, el cual se encuentra disponible
para la mayora de mquinas.
Los nombres de las rutinas driver y computacionales tienen la forma xyyzzz, siendo el
sexto carcter un blanco para ciertas rutinas driver. Las tres primeras letras tienen el
mismo significado que el utilizado en la denominacin de las rutinas del BLAS 2 y del
BLAS 3; la primera letra (x) para indicar el tipo de dato y las dos siguientes (yy) para
indicar el tipo de matriz, apareciendo otros tipos de matrices, adems de los que

315

Apndice C: BLAS y LAPACK

aparecen en la Tabla 6.2 (vase [ABBD92], pgina 9). Las siguientes tres letras (zzz)
indican la funcin o algoritmo que implementan. Por ejemplo, con xyySVX se
referencian a todas las rutinas driver expertas para la resolucin de sistemas lineales
de ecuaciones, y con xyySV a todas las rutinas driver simples que resuelven sistemas
lineales de ecuaciones.
Los nombres de rutinas auxiliares siguen un esquema similar excepto que las letras yy
son normalmente LA. Hay dos tipos de excepciones a esta regla. Las rutinas que
implementan versiones no orientadas a bloques de un algoritmo orientado a bloques,
tienen nombres similares a las rutinas que implementan los algoritmos orientados a
bloques, con el sexto carcter igual a 2. Por ejemplo, la rutina SGETF2 es una versin
no orientada a bloques de la rutina SGETRF (esta rutina calcula la descomposicin LU
con pivotamiento parcial de filas de una matriz). La otra excepcin la presentan ciertas
rutinas que pueden ser vistas como extensiones del BLAS utilizando, en este caso, un
esquema similar al usado en las rutinas del BLAS.
A continuacin se detallan los problemas resueltos por algunas de las rutinas del
LAPACK.
Rutinas driver.

Resolucin de mltiples sistemas lineales de ecuaciones.

Resolucin del problema lineal de mnimos cuadrados.

Obtencin de los valores propios (factorizacin de Schur) y singulares


(descomposicin en valores singulares) de una matriz.

Obtencin de los valores propios generalizados de una matriz.

Rutinas computacionales:

Resolucin de un sistema lineal de ecuaciones.

Factorizaciones ortogonales de una matriz: QR, RQ, LQ y QL.

Resolucin de problemas parciales relacionados con el clculo de valores propios


y singulares: equilibrado de una matriz, clculo de nmeros de condicin y
subespacios invariantes de una matriz, etc.
Tratamiento de Errores en el LAPACK

Adems de proporcionar rutinas ms rpidas que las que se tenan anteriormente, el


LAPACK aade, al software de computacin numrica anterior, unas cotas de error ms
precisas y comprensibles.
Las cotas de error tradicionales estn basadas en el hecho de que los algoritmos en el
LAPACK, al igual que los de sus predecesores LINPACK y EISPACK, son estables
hacia atrs. Las cotas de error dadas por algunas rutinas del LAPACK dependen de
algoritmos que satisfacen una condicin ms fuerte de estabilidad, llamada estabilidad
hacia atrs relativa a las componentes.
La rutina del LAPACK _LAMCH permite calcular toda una serie de parmetros
caractersticos de la mquina sobre la que se implementa el LAPACK.
A continuacin se presenta un anlisis de errores estndar para la evaluacin de una
funcin escalar y = f (z ) . Sea alg(z ) la salida de una rutina que implementa a f (z ) ,

316

Apndice C: BLAS y LAPACK

incluyendo los errores de redondeo. Si alg( z ) = f ( z + ) , con pequeo, entonces se


dice que alg es un algoritmo estable hacia atrs para f (z ) o que el error hacia atrs
es pequeo. En otras palabras, alg(z ) es el valor exacto de f (z ) para una entrada
ligeramente perturbada z + (algunas veces los algoritmos satisfacen nicamente
alg( z ) = f ( z + ) + , donde y son pequeos, aunque esto no cambia
significativamente el anlisis de error).
Si se supone que f ( z ) es derivable, entonces se puede realizar la aproximacin

f ( z + ) f ( z ) + f ( z ) ,
por lo que se puede estimar el error cometido a partir de la expresin

alg( z ) f ( z ) = f ( z + ) f ( z ) f ( z ) .
Por lo tanto, si es pequeo y la derivada f ' ( z ) no es elevada, entonces el error
alg( z ) f ( z ) ser pequeo. En general, solo es necesario que se cumpla la condicin
de Lipschitz, para utilizar la constante de Lipschitz en lugar de f ' ( z ) en la obtencin de
la cota del error.
El error relativo cometido ser
alg( z ) f ( z )
f ( z ) z

( f , z) | / z | ,
f ( z)
f ( z) z
donde ( f , z ) es el nmero de condicin de f (z ) y | / z | el error relativo regresivo
de z . Por lo tanto, se puede obtener una cota del error multiplicando el nmero de
condicin por el error regresivo. El problema est mal condicionado si su nmero de
condicin es grande, y mal formulado si su nmero de condicin es infinito (o no
existe).
Si f (z ) es una funcin vectorial, entonces f ' ( z ) es la matriz Jacobiana, de manera que
los valores absolutos anteriores se sustituyen por p-normas vectoriales y matriciales. En
este caso, se puede hablar de estabilidad regresiva. Por ejemplo, un mtodo estable para
resolver sistemas de ecuaciones lineales
Ax = b ,

permite obtener una solucin x' que satisface

( A + E ) x' = b + f
siendo
|| E ||
|| A ||
y
|| f ||
|| b ||
valores cercanos a la precisin de la mquina .
La mayor parte de los algoritmos en el LAPACK son estables en el sentido descrito:
cuando se aplican sobre una matriz A , producen resultados exactos para una matriz
ligeramente perturbada A + E , donde el cociente
317

Apndice C: BLAS y LAPACK

|| E ||
|| A ||
est cercano a . Hay algunas matizaciones a esta afirmacin. Cuando se calcula la
inversa de una matriz, la matriz de error regresivo E es pequea considerando que las
columnas de la matriz inversa se calculan una a una, con una E diferente para cada
columna. Esto mismo es cierto en el clculo de vectores propios de una matriz no
simtrica. Cuando se calculan los valores y vectores propios de
A B , AB I ,

con A simtrica y B simtrica y definida positiva (utilizando las rutinas xSYGV o


xHEGV), entonces el mtodo puede no ser estable hacia atrs, si B tiene un nmero de
condicin elevado, aunque tambin se tengan cotas de error tiles. La resolucin de la
ecuacin matricial de Sylvester
AX + XB = C ,

puede no ser estable hacia atrs, aunque otra vez se obtengan cotas del error tiles para
X.
El clculo de nmeros de condicin puede ser a veces muy costoso. Por ejemplo, el
coste aritmtico de resolver el sistema Ax = b es de orden n 3 y el del clculo de ( A)
es exactamente tres veces mayor. En este caso, ( A) puede ser estimado con un coste
de orden n 2 . En general, los nmeros de condicin y las cotas de error se basan en la
estimacin de nmeros de condicin ([Hage84], [High873], [High882]). El precio
pagado por utilizar estimadores es que el error puede ser subestimado en algunas
ocasiones. Aos de experiencia confirman la exactitud de los estimadores utilizados,
aunque se pueden construir ejemplos en los que no ocurre esto ([High902]).
El anterior anlisis de errores tiene un inconveniente: Si se utiliza la -norma para
medir el error regresivo, entonces entradas de igual magnitud en contribuyen de igual
manera a la cota del error final

( f , z) =

|| ||
.
|| z ||

Esto indica que si z es disperso o tiene algunas entradas pequeas, entonces un


algoritmo estable hacia atrs puede producir grandes cambios comparados con los
valores originales. Si estos valores son conocidos exactamente por el usuario, puede
ocurrir que estos errores sean inaceptables o que las cotas de error sean
inaceptablemente elevadas.
Sea, por ejemplo,
Ax = b

un sistema diagonal de ecuaciones lineales.


Cada componente de la solucin del sistema anterior se puede calcular mediante
eliminacin Gaussiana
xi =

bi
.
aii

La cota de error usual es aproximadamente igual a

318

Apndice C: BLAS y LAPACK

( A) =

max i | aii |
min i | aii |

la cual puede sobrestimar el error verdadero.


El LAPACK resuelve este problema utilizando algunos algoritmos cuyo error regresivo
es un pequeo cambio relativo en cada componente de z ( | i |= O( ) | zi | ). Este
error regresivo tiene en cuenta tanto la estructura dispersa de z como la informacin de
las pequeas entradas. Estos algoritmos son estables hacia atrs relativos a las
componentes. Adems, las cotas del error reflejan estos errores regresivos ms
pequeos.
Si los datos de entrada tienen una incertidumbre independiente en cada componente,
cada componente debe tener al menos una incertidumbre relativa pequea, puesto que
cada una ellas es un nmero en coma flotante. En este caso, el algoritmo contribuye a
una incertidumbre extra que no es mucho peor que la incertidumbre de los datos de
entrada, de manera que se podra decir que la respuesta dada por un algoritmo estable
hacia atrs relativo a las componentes es tan exacta como la que garantiza el dato.
Cuando se resuelve el sistema lineal
Ax = b

utilizando, por ejemplo, la rutina driver experta xyySVX o la rutina computacional


xyyRFS, se calcula una solucin x' que satisface
( A + E ) x' = b + f ,
siendo eij pequeos cambios relativos en aij y f i un pequeo cambio en bi . En
particular, si A es diagonal, entonces la correspondiente cota de error es siempre
pequea, como cabra esperar.
El LAPACK alcanza esta exactitud en la resolucin de sistemas de ecuaciones lineales,
en la descomposicin bidiagonal en valores singulares de una matriz o en el problema
tridiagonal y simtrico de los valores propios, dando facilidades para alcanzar esta
exactitud en problemas de mnimos cuadrados.
Equilibrado y Condicionamiento en LAPACK

Existen dos pasos previos que permiten un clculo ms sencillo de los valores propios
de una matriz.
El primer paso consiste en una permutacin de filas y columnas de la matriz A de
manera que la matriz A' est ms cerca de una estructura triangular superior (ms
cercana a la forma Schur):
A' = PAP T ,
siendo P una matriz de permutacin.
El segundo paso consiste en escalar la matriz A' por medio de una matriz diagonal D
que permite que las filas y las columnas de A' ' estn entre s ms cercanas en norma:
A' ' = DA' D 1 .
El escalado puede reducir la norma de la matriz A con respecto a los valores propios,
posibilitando la disminucin de los errores de redondeo ([WiRe71]).

319

Apndice C: BLAS y LAPACK

El equilibrado de una matriz se realiza mediante la rutina driver xGEEVX, la cual


realiza una llamada a la rutina computacional xGEBAL. El usuario puede indicar a
xGEEVX si desea permutar, escalar, realizar ambas o no hacer ninguna de las dos
operaciones; esto se especifica mediante el parmetro de entrada BALANC. La
permutacin no tiene efecto sobre los nmeros de condicin o su interpretacin como se
ha descrito anteriormente. Sin embargo, el escalado cambia su interpretacin, como a
continuacin se detalla.
Los parmetros de salida de xGEEVX, SCALE (vector real de longitud n ),
ILO(entero), IHI(entero) y ABNRM(real) describen el resultado de equilibrar una
matriz A de dimensin n , obtenindose una matriz A' ' . La matriz A' ' es triangular
superior por bloques con al menos tres bloques: de 1 a ILO-1, de ILO a IHI, y de IHI+1
a n . El primer y ltimo bloque son triangulares superiores. Estos bloques no estn
escalados; solo el bloque que se encuentra entre ILO a IHO est escalado. La uno norma
de A' ' es devuelta en la variable ABNRM.
Los nmeros de condicin descritos en anteriormente son calculados para la matriz
equilibrada A' ' y, por lo tanto, es necesario realizar alguna interpretacin para
aplicarlos a los valores y vectores propios de la matriz original A . Para poder utilizar
las cotas destinadas a los valores propios de las tablas anteriores se deben reemplazar
|| E ||2 y || E || F por O( ) || A' ' ||= O( )ABNRM . Para poder utilizar las cotas de los
vectores propios, se debe tener en cuenta que las cotas sobre rotaciones de vectores
propios son las dadas por los vectores propios x' ' de A' ' , los cuales estn relacionados
con los vectores propios x de A mediante
DPx = x' ' , x = P T D 1 x .

Proyector Espectral y Separacin de Matrices

Sea A nxn en la forma de Schur. Si se considera un grupo de m 1 valores propios


de A , incluyendo sus multiplicidades, entonces A se puede descomponer como
( 6.4 )

A
A = 11
0

A12
,
A22

donde los valores propios de la submatriz A11 nxn son exactamente los
correspondientes al grupo elegido. En la prctica, si los valores propios sobre la
diagonal de A estn en otro orden, la rutina xTREXC permite desplazarlos al primer
bloque diagonal.
Se define el proyector espectral, o simplemente el proyector P correspondiente a los
valores propios de A11 ([Stew73], [Karl59]), como
I
P= m
0

R
,
0

donde R satisface la ecuacin matricial de Sylvester


( 6.5 )

A11 R RA22 = A12

que puede resolverse utilizando la rutina xTRSYL.


Asociado al proyector espectral se encuentra el nmero

320

Apndice C: BLAS y LAPACK

s=

1
1
=
.
|| P ||2
1+ || R ||22

Puesto que el valor de s es difcil calcular, se utiliza una estimacin del mismo definida
como
1
1+ || R ||2F

Esta aproximacin difiere como mucho de su valor correcto en un factor igual a


min(m, n m) .
La estimacin de sep( A11 , A22 ) se realiza con la rutina xLACON (vase [Hage84],
[Hig187] y [High882]), la cual estima la norma de un operador lineal
|| T ||1 = max j i| tij | ,
mediante el clculo de Tx y T T x , para cualquier vector arbitrario x . En este caso, la
multiplicacin de T por un vector arbitrario x , se obtiene resolviendo la ecuacin
matricial de Sylvester ( 6.5 ) mediante la rutina xTRSYL con un miembro derecho
arbitrario, y el producto de T T por un vector arbitrario x , resolviendo la misma
T
. El coste aritmtico necesario
ecuacin, pero reemplazando A11 por A11T y A22 por A22
para resolver cualquiera de las ecuaciones es O(n 3 ) o como poco O(n 2 ) , si m << n .
Puesto que al utilizar || T ||1 en lugar del valor verdadero de sep, que es || T ||2 , entonces
la estimacin de sep puede diferir del valor verdadero como mucho en un factor
m( n m) .

Otra formulacin que permite, en principio, calcular exactamente el valor de


sep( A11 , A22 ) es
T
Im ) .
sep( A11 , A22 ) = min ( I nm A11 A22

Este mtodo es generalmente impracticable, puesto que hay que calcular el menor valor
singular de una matriz de orden m(n m) . Por lo tanto, se requiere un espacio de
trabajo extra del orden n 4 y del orden de n 6 operaciones, valores mucho mayores que
los obtenidos en el mtodo de estimacin del anterior prrafo.
La expresin sep( A11 , A22 ) mide la separacin del espectro de A11 y A22 en el
siguiente sentido. Este valor es cero si y solo si las matrices A11 y A22 tienen un valor
propio comn, y es pequeo si existe una pequea perturbacin de cualquiera de ellas
que haga que tengan en comn un valor propio. Si A11 y A22 son matrices hermitianas,
entonces sep( A11 , A22 ) es precisamente el intervalo o mnima distancia entre un valor
propio de A11 y otro de A22 . Por otra parte, si A11 y A22 no son hermitianas, entonces
sep( A11 , A22 ) puede ser mucho mayor que esta distancia.

321

Apndice C: BLAS y LAPACK

Otras Caractersticas del LAPACK


Argumentos Matriciales

Cada argumento de tipo matricial de dos dimensiones se encuentra seguido, en la lista


de argumentos, por su dimensin principal (LDA), cuyo nombre viene expresado por
LD<nombre de la matriz>. Los argumentos de una matriz estn declarados
normalmente como matrices de tamao supuesto (segunda dimensin igual a *). As por
ejemplo, una matriz A se puede declarar como
REAL A(LDA,*)
INTEGER LDA,
aunque las lneas comentadas de la rutina indican que A es dimensin (LDA,N),
indicando con ello que el valor mnimo requerido para la segunda dimensin es N. Esta
declaracin se utiliza para superar algunas limitaciones en el FORTRAN 77 estndar.
En particular, permite que la rutina pueda ser invocada cuando la dimensin relevante
(N, en este caso) sea igual cero. Sin embargo, las dimensiones de la matriz actual en el
programa que llama debe ser al menos 1 (LDA en este ejemplo).
Matrices de Trabajo

Muchas de las rutinas del LAPACK requieren que una o ms matrices de trabajo sean
pasadas como argumentos. Estas matrices suelen representarse con el nombre WORK y,
algunas veces, como IWORK, RWORK o BWORK, para distinguir entre las matrices
de trabajo de tipo entero, real o lgico.
Muchas rutinas que implementan algoritmos orientados a bloques necesitan un espacio
de trabajo suficiente para contener un bloque de filas o columnas de la matriz. En tales
casos, la longitud declarada para la matriz de trabajo debe ser pasada mediante un
argumento separado LWORK, el cual se encuentra a continuacin del argumento
WORK en la lista de argumentos.
Argumento Info

Todas las rutinas documentadas tienen un argumento de diagnstico INFO que indica el
xito o fallo en la ejecucin de la rutina, como a continuacin se detalla:

INFO=0: indica una finalizacin con xito.

INFO<0: valor ilegal de uno o varios argumentos.

INFO>0: fallo en la realizacin de clculos.

Todas las rutinas driver y auxiliares comprueban que los argumentos de entrada, tales
como N o LDA, o los argumentos de opcin tengan valores adecuados. Si se encuentra
un valor ilegal en el i-simo argumento, la rutina pone INF con valor i, llamando a
continuacin a la rutina de tratamientos de errores XERBLA. La versin estndar de
XERBLA da un mensaje de error y finaliza la ejecucin de la rutina.
Determinacin del Tamao de Bloque ptimo

Las rutinas del LAPACK que implementan algoritmos orientados a bloques necesitan
determinar el tamao de bloque ptimo. El diseo del LAPACK est realizado de
manera que la eleccin del tamao de bloque est oculta, tanto como sea posible, a la
vista de los usuarios, pero al mismo tiempo sea fcilmente accesible para los

322

Apndice C: BLAS y LAPACK

instaladores del software, puesto que optimizan el LAPACK para una determinada
mquina.
Las rutinas del LAPACK llaman a la funcin ILAENV para obtener, entre otros valores,
el tamao ptimo de bloque. Esta rutina contiene valores por defecto que conducen a un
buen comportamiento sobre un gran nmero de mquinas pero, para poder obtener
rendimientos ptimos, es necesario modificar ILAENV para cada mquina en particular.
El tamao de bloque puede depender tambin de la rutina de llamada, de la
combinacin de argumentos opcionales (si los hay) y de las dimensiones del problema.
Si ILAENV devuelve un tamao de bloque igual a 1, entonces la rutina ejecuta el
algoritmo no orientado a bloques, llamando a rutinas del nivel 2 del BLAS y nunca a las
del nivel 3.
Las rutinas que utilizan a la rutina ILAENV realizan los siguientes pasos:
1. Determinacin del tamao de bloque ptimo usando ILAENV.
2. Si el valor de LWORK indica que se ha proporcionado suficiente espacio de
trabajo, entonces la rutina usa el tamao ptimo; de otro modo, la rutina
determina el bloque de mayor tamao que puede utilizarse con la cantidad de
espacio de trabajo proporcionada.
3. Si el nuevo tamao de bloque no es inferior a un valor umbral (tambin devuelto
por ILAENV), la rutina utiliza este nuevo valor; de otro modo, la rutina utiliza la
versin no orientada a bloques del algoritmo.
El mnimo valor de LWORK, que puede necesitarse para utilizar el tamao de bloque
ptimo, se devuelve en WORK(1). Por lo tanto, la rutina utiliza el mayor tamao de
bloque posible del espacio de trabajo proporcionado.
La especificacin de LWORK da el valor mnimo necesario para obtener resultados
correctos. Este valor coincide con el espacio de trabajo necesario para ejecutar la
versin no orientada a bloques del algoritmo. Si el valor proporcionado es menor que
ese valor mnimo, entonces se producir un error en el argumento LWORK.
Si hay duda del espacio de trabajo necesario, los usuarios deben suministrar una
cantidad suficiente de memoria y examinar a continuacin el valor de WORK(1) en la
salida.
Prestaciones del LAPACK

El LAPACK fue diseado inicialmente para obtener buenas prestaciones sobre


mquinas vectoriales de un solo procesador o sobre multiprocesadores con memoria
compartida. El software del LAPACK tambin ha sido usado posteriormente sobre
nuevas mquinas obtenindose tambin buenos resultados (estaciones de trabajo
superescalares de altas prestaciones). A continuacin se comentan los principales
factores que afectan a las prestaciones del LAPACK sobre diferentes tipos de mquinas.

Vectorizacin: Disear algoritmos vectorizables en lgebra lineal es normalmente


sencillo. Sin embargo, para muchos clculos computacionales existen diversas
variantes, todas ellas vectorizables, pero con prestaciones diferentes. Las
prestaciones dependen de las caractersticas de la mquina, tales como el
encadenamiento de sumas y productos vectoriales. Sin embargo, cuando los
algoritmos se escriben en un cdigo FORTRAN 77 estndar, las prestaciones
pueden disminuir, debido normalmente a que los compiladores del lenguaje

323

Apndice C: BLAS y LAPACK

FORTRAN no optimizan el nmero de accesos a memoria, es decir, se produce un


nmero excesivo de carga y almacenamiento de vectores en memoria.

Movimiento de datos: La causa principal de la limitacin del rendimiento de una


unidad en coma flotante escalar o vectorial es la velocidad de transferencia entre los
diferentes niveles de memoria en una mquina. Por ejemplo, la transferencia de
operandos vectoriales entre registros vectoriales, la transferencia de operandos
escalares en un procesador escalar, el movimiento de datos entre la memoria
principal y la memoria local o memoria cach, y la paginacin entre la memoria
actual y la del disco en sistemas con memoria virtual. Es deseable maximizar la
razn entre la realizacin de operaciones en coma flotante y los accesos a memoria,
as como reutilizar datos, tanto como sea posible, mientras son almacenados en los
niveles ms altos de la jerarqua de memoria (por ejemplo, registros vectoriales o
memoria cach de alta velocidad). El programador de FORTRAN no tiene un
control explcito sobre estos tipos de movimientos de datos, aunque puede a menudo
influir sobre ellos imponiendo al algoritmo una determinada estructura.

Paralelismo: La estructuras de bucles anidados que aparecen en los algoritmos del


lgebra lineal ofrecen la posibilidad de ser paralelizados cuando se implementan
sobre multiprocesadores con memoria compartida. Este es el principal tipo de
paralelismo que se explota en el LAPACK. Este paralelismo puede ser
automticamente generado por un compilador, aunque habitualmente es necesario
utilizar directivas de compilacin que lo permitan.

La clave para obtener en el LAPACK eficiencia y portabilidad es construir el software


haciendo uso, tanto como sea posible, de llamadas al BLAS. La eficiencia del LAPACK
depende de la eficiencia de la implementacin del BLAS en la mquina. Por lo tanto, el
BLAS es un interfaz de bajo nivel entre el software del LAPACK y la arquitectura de la
mquina. La portabilidad en el LAPACK se obtiene, por tanto, haciendo uso de
llamadas al BLAS.
El BLAS 1 se utiliza en el LAPACK ms por conveniencia que por prestaciones. Las
llamadas del LAPACK a rutinas del BLAS 1 corresponden a una fraccin insignificante
de los clculos computacionales que se realizan, no pudindose alcanzar una alta
eficiencia sobre la mayor parte de las supercomputadoras modernas.
El BLAS 2 puede alcanzar las prestaciones mximas en muchos de los procesadores
vectoriales. Sin embargo, sobre otros procesadores vectoriales las prestaciones del
LAPACK se encuentran limitadas por la velocidad de movimientos de datos entre los
diferentes niveles de memoria.
Esta limitacin es superada en el BLAS 3, al realizar operaciones en coma flotante de
orden cbico sobre conjuntos de datos de cardinalidad cuadrtica.

324

Apndice D: SGI Altix 3700

Apndice D.

SGI Altix 3700

El componente hardware constituye una parte fundamental de un computador puesto


que, de alguna forma, indica el mximo rendimiento que un equipo ser capaz de
ofrecer. Complementariamente, ser preciso disponer de un sistema operativo eficaz y
verstil que permita manejarlo de manera cmoda y simple y, por otra parte, que los
compiladores y utilidades de desarrollo permitan acercar el rendimiento real al mximo
impuesto por el hardware.

Arquitectura
EL SGI 3700 es un sistema multiprocesador con arquitectura NUMA (Non Uniform
Memory Access) perteneciente a la serie SGI 3000 [SGIA03]. En esta mquina la
memoria est fsicamente distribuida sobre todos los procesadores, pero la combinacin
del sistema operativo y unos controladores hardware especiales mantienen una imagen
de memoria compartida a nivel de usuario.

Figura 6.1.
Los procesadores corresponden al Intel Itanium II CPU [SGIA03] trabajando a 1.3Ghz,
con 3MB de memoria cach (conocida como Madison). La memoria total es de 44
Gb. El hardware se haya dispuesto en forma modular mediante la divisin en bricks:
C-Bricks (Computational bricks), R-bricks (Router bricks), IX-Bricks (Peripheral
bricks) y M-Bricks( Memory bricks). Cada C-Brick contiene un total de 4 procesadores
con un ancho de banda total de 3.2Gb/s.

Software
El servidor SGI Altix 3000 funciona bajo el sistema operativo Linux de 64 bits Red Hat
7.2 con el kernel de Linux 2.4.19. Para mejorar las prestaciones, SGI incluye un entorno
de desarrollo optimizado para la arquitectura Altix 3000, denominado SGI ProPack, que
permite obtener el mximo rendimiento del sistema.
Red Hat es una de las distribuciones de LINUX ms popular del mercado hoy en da,
siendo emulada por muchas otras. Es muy sencilla de instalar e incluye la deteccin
automtica de dispositivos, un instalador grfico y un excelente conjunto de
aplicaciones comerciales en su distribucin oficial.

325

Apndice D: SGI Altix 3700

Compiladores

La serie SGI 3000 dispone en la actualidad de varias versiones de los compiladores


GNU (gcc, g77 y g++) e Intel. Los compiladores de Intel se han diseado para sacar el
mximo partido posible de las prestaciones tericas mximas del hardware (tanto del
procesador como del resto de la arquitectura) de los servidores Altix 3000. La ltima
versin instalada corresponde a la versin 9. Los compiladores de Intel soportan los
lenguajes C, C++ y los estndares de FORTRAN 77, 90 y 95.
El compilador de C y C++ cumple las siguientes caractersticas:

Compatible con el estndar Ansi C y C++.

Compatible binario con GNU gcc.

Soporta la mayora de las extensiones de lenguaje GNU C y C++.

Compatibilidad con C99 (subconjunto).

Se pueden mezclar binarios de cdigo C con gcc 3.x e Intel 7.0.

Ficheros objetos C pueden ser enlazados con el compilador de Intel o con gcc.

Si se comparan el cdigo generado por los compiladores de Intel con los de GNU, el
primero resulta ser varias veces ms rpido que el correspondiente a GNU.
Libreras

Para el Altix 3700 se disponen de dos libreras optimizadas del BLAS y LAPACK: Intel
MKL [IMKL03] versin 8.0, y el SGI SCSL (Scientific Computing Software Library),
versin 1.5.1. En las implementaciones realizadas se ha utilizado las libreras SCSL,
pues contiene al BLAS y al LAPACK totalmente optimizados y paralelizados para la
arquitectura de SGI. La documentacin de las rutinas de estas libreras se encuentra
disponible en la pgina http://techpubs.sgi.com.

326

Bibliografa

Bibliografa
[ABBD92]
[ABHI00]
[Abra71]
[AHBI99]

[AHIP05]
[AlPr81]
[AnDo92]
[AnMo71]
[ArCa76]
[AsPe91]
[BaGr96]
[Balz80]
[Barr79]
[BaSt71]
[BaSt72]
[BeDo91]
[Bell53]
[Bell83]
[BeMe04]
[Benn02]
[Benn04]
[Bern05]
[Bhat97]
[BiHM04]

E. Anderson, Z. Bai, C. Bischof, J. Demmel and others, LAPACK Userss Guide. SIAM,
1992.
E. Arias, I. Blanquer, V. Hernndez y J. Ibez, Nonsingular Jacobian Free Piecewise
Linealization of State Equation. Controlo 2000, Portuguese Association of Automatic
Control, 2000.
A. A. Abramov, On the Boundary Conditions at a Singular Point for Linear Ordinary
Differentials Equations, U.S.S.R. Computational Mathematics and Mathematical Physics,
vol. 11, pp. 363-367, 1971.
E. Arias Antnez, V. Hernndez Garca, I. Blanquer Espert and J. Ibez Gonzlez,
Nonsingular Jacobian Free Piecewise Linearization of Ordinary Differential Equations
(EDO). Second Workshop Niconet on: Numerical Control Software: SILICOT,
Rocquencourt, France, 1999.
E. Arias, V. Hernndez, J. J. Ibez and J. Peinado, Solving Differential Riccati Equations
by Using BDF Methods. Technical Report DSIC-II/05/05, UPV, Valencia, 2005.
R. C. Allen and S. A. Pruess, An Analysis of an Inverse Problem in Ordinary Differential
Equations. SIAM J. Sci. Statist. Comput., 2, pp. 176185, 1981.
E. Anderson, J. Dongarra and S. Ostrouchov, LAPACK Working Note 41 Installation
Guide for LAPACK. Department of Computer Science University of Tennessee
Knoxville, Tennessee, 1992.
B. D. Anderson and J. B. Moore, Linear Optimal Control. Prentice Hall, Englewood
Cliffs, N.J., 1971.
E. S. Armstron and A. K. Caglayan, An Algorithm for the Weighting Matrices in the
Sampled-Data Optimal Linear Regulator Problem. NASA Langley Res. Ctr., Hampton,
VA, NASA Tech. Note NASA TN D-8372, 1976.
U. M. Ascher, L.R. Petzold, Computer Methods for Ordinary Differential Equations and
Differential-Algebraic Equations. SIAM, 1998.
G. A. Baker, Jr. and P. Graves-Morris, Pad Approximants. 2nd ed., Encyclopedia Math.
Appl., Cambridge University Press, Cambridge, UK, 1996.
L. A. Balzer, Accelerated Convergence of the Matriz Sign Function Method of Solving
Lyapunov, Riccati, and other Matriz Equations. Internat. J. Control, Vol. 32, pp. 10571078, 1980.
A. Y. Barraud, Investigations Autor de la Function Signe dune Matrice-Application
lquation de Riccati. R.A.I.R.O. Automat. Syst. Anal. Control, Vol. 13, pp. 335-368,
1979.
R. H. Bartels and G. W. Stewart, Algorithm 432, Solution of the Matrix Equation
AX+XB=C, Communications of the ACM, Vol. 15, N 9, pp. 820-913, 1972.
R.H. Bartels and G.W. Stewart, Solution of the Matrix Equation AX + XB = C: Algorithm
432. Comm. ACM, 15, pp. 820826, 1972.
A. Beguelin, J. Dongarra, et al., A users Guide to PVM: Parallel Virtual Machine. Tech.
Report TM-11826, Oak Ridge National Laboratory, 1991.
R. Bellman, Stability Theory of Differential Equations. McGraw-Hill Book Co. Inc.,
New York, 1953.
R. Bellman, On the Calculation of Matrix Exponential. Linear and Multilinear Algebra,
41, pp. 73-79, 1983.
P. Benner and H. Mena, BDF Methods for Large-Scale Differential Riccati Equations.
Fakultt fr Mathematik Technische Universitt Chemnitz, D-09107 Chemnitz, Germany,
2004.
P. Benner, Efficient Algorithms for Large-Scale Quadratic Matrix Equations. Proc. Appl.
Math. Mech., 1(1), 492495, 2002.
P. Benner, Solving Large-Scale Control Problems. IEEE Control Systems Magazine,
14(1), pp. 4459, 2004.
D. S. Bernstein, Matrix Mathematics. Pricenton University Press, 2005.
R. Bhatia, Matrix Analysis, Springer-Verlag, New York, 1997.
D. A. Bini, N. J. Higham, And Beatrice Meini, Algorithms for the Matrix pth Root.
Numerical Analysis Report 454, Manchester Centre for Computational Mathematics,
University of Manchester, 2004.

327

Bibliografa
[BjHa83]
[BlDo99]
[Brew78]
[BrGS92]
[BrHi89]
[BrLo87]
[Butc87]
[Byer87]
[ByHi75]
[CDOP95]
[ChAL90]
[Chan69]
[ChHi01]
[ChLa87]
[Choi90]
[Choi92]
[Coen01]
[Copp74]
[DaH103]
[DaH203]

[Dahl63]
[DaMa73]
[DaSm02]

[Davi04]

A. Bjrck and S. Hammarling, A Schur Method for the Square Root of a Matrix. Linear
Algebra Appl. 52/53, pp. 127-140, 1983.
S. Blackford, J. Dongarra, LAPACK Working Note 41 Installation Guide for LAPACK,
Version 3.0. Department of Computer Science University of Tennessee Knoxville,
Tennessee, 1999.
J. W. Brewer, Kronecker Product and Matrix Calculus in System Theory. IEEE
Transactions on Circuits and Systems, 25 (9), pp. 772-781, September, 1978.
R.W. Brankin, I. Gladwell, and L.F. Shampine, RKSUITE: a suite of Runge-Kutta codes
for the initial value problem for ODEs. Softreport 92-S1, Department of Mathematics,
Southern Methodist University, Dallas, Texas, U.S.A, 1992.
P. N. Brown and A. C. Hindmarsh, Reduced Storage Matrix Methods in Stiff ODE
Systems. J. Appl. Math. & Comp., 31, pp.40-91, 1989.
D. Brown and J. Lorenz, A High-Order Method for Stiff BVPs with Turning Points.
SIAM J. Sci. Statist. Comput., pp. 790-805, 1987.
J. C. Butcher, The Numerical Analysis of Ordinary Differential Equations: Runge-Kutta
and General Linear Methods. Wiley, Chichester, 1987.
R. Byers, Solving the Algebraic Riccati Equation with the Matrix Sign Function. Linear
Algebra Appl., Vol. 85, pp. 267279, 1987.
G. D. Byrne and A. C. Hindmarsh, A Polyalgorithm for the Numerical Solution of
Ordinary Differential Equations. ACM Transactions on Mathematical Software, 1, pp. 7196, 1975.
J. Choi, J. Dongarra, S. Ostrouchov, A. Petitet, D. Walker, and R. C. WHALEY, A
Proposal for a Set of Parallel Basic Linear Algebra Subprograms. Computer Science Dept.
Technical Report CS-95-292, University of Tennessee, Knoxville, TN, May 1995.
C. H. Choi and A. J. Laub, Efficient Matrix-valued Algorithms for Solving Stiff Riccati
Differential Equations. IEEE Trans. on Automatic Control, 35(7), pp. 770776, 1990.
K. W. Chang, Remarks on a Certain Hypothesis in Singular Perturbations. Proc.
American Math. Soc., 23 , pp. 41-45, 1969.
S. H. Cheng, N. J. Higham, C. S. Kenney, and A. J. Laub, Approximating the Logarithm
of a Matrix to Specified Accuracy. SIAM J. Matrix Anal. Appl., 22, pp. 11121125, 2001.
C. H. Choi and A.J. Laub, Improving the Efficiency of Matrix Operations in the
Numerical Solution of Large Implicit Systems of Linear Differential Equations. Int. J.
Control, 46, pp. 991-100, 1987.
C. H. Choi, Efficient Algorithms for Solving Stiff Matrix-valued Riccati differential
equations. Phd., 1988.
C. H. Choi, Time-Varyng Riccati Differential Equations with Known Analytic Solutions.
IEEE Trans. on Automatic Control, 37(5), pp. 642645, 1992.
Stphane Coen et al., White-light Supercontinuum Generation with 60-ps Pump Pulses in
a Photonic Crystal Fiber. Opt. Lett 26, 1356 (2001).
W. A. Coppel., Matrix Quadratic Equations. Bull. Australian Math. Soc., 10 pp 377-401,
1974.
P. I. Davies and N. J. Higham, A Schur-Parlett Algorithm for Computing Matrix
Functions. SIAM J. Matrix Analysis Appl., Vol. 25, No. 2, pp 464-485, 2003.
P. I. Davies and N. J. Higham, Computing f(A)b for Matrix Functions f. Numerical
Analysis Report No. 436, Manchester Centre for Computational Mathematics, Manchester,
England, November 2003. Submitted to Proceedings of the Third International Workshop
on QCD and Numerical Analysis, Edinburgh, 2003.
G. Dahlquist, A Special Stability Problem for Linear Multistep Methods. BIT 3, pp. 2743, 1963.
E. J. Davison and M. C. Maki, The Numerical Solution of the Matrix Riccati Differential
Equation. IEEE Trans. on Automatic Control, AC-18, pp. 71-73, 1973.
P. I. Davies and M. I. Smith, Updating the Singular Value Decomposition. Numerical
Analysis Report No. 405, Manchester Centre for Computational Mathematics, Manchester,
England, August 2002. To appear in J. Comput. Appl. Math.
P. I. Davies, Structured Conditioning of Matrix Functions. Numerical Analysis Report
No. 441, Manchester Centre for Computational Mathematics, Manchester, England,
January 2004.

328

Bibliografa
[DBMS79]

J. J. Dongarra, J. R. Bunch, C. B. Moler and G. W. Stewart, LINPACK Users Guide.


SIAM, Philadelphia, PA, 1979.
[DDHH90] J. J. Dongarra, J. Du Croz, S. Hammerling, and R. J. Hanson, A Set of Level 3 Basic
Linear Algebra Subprograms. ACM Trans. Math. Soft, 16(90), 1990.
[DeBe76]
E. D. Denman and A. N. Beavers, The Matrix Sign Function and Computations in
Systems. Appl. Math. Comp., vol. 2, pp. 63-94, 1976.
[DEES82]
G. Dahlquist, L. Edsberg, G. Skollermo and G. Soderlind, Are the Numerical Methods
and Software Satisfactory for Chemical Kinetecs?. Numerical Integration of DE and
Large Linear Systems, J. Hinze, ed. Springer-Verlag, pp. 149-164, 1982.
[DeHi90]
J. W. Demmel and N. J. Higham, Improved Error Bounds for Undetermined Systems
Solvers. Computer Science Dept. Technical Report CS-90-113, University of Tennesse,
Knoxville, 1990.
[DeSc83]
J. E. Dennis and R. B. Schnabel, Numerical Methods for Unconstrained Optimization and
Nonlinear Equations. Prentice-Hall, Englewood Cliffs, NJ, 1983.
[Diec92]
L. Dieci, Numerical Integration of the Differential Riccati Equation and some Related
Issues. SIAM, 29(3), pp. 781815, 1992.
[DiEi94]
L. Dieci and T. Eirola, Positive Definitess in the Numerical Solution of Riccati
Differential Equations. Numerical Math, 67, pp. 303313, 1994.
[DiPa00]
L. Dieci and A. Papini, Conditioning and Pad Approximation of the Logarithm of a
Matrix. SIAM J. Matrix Anal. Appl., Vol. 21, pp. 913930, 2000.
[DoLe76]
P. Dorato and A. Levis, Optimal Linear Regulators: The Discrete Time Case. IEEE
Trans. Automat. Control, col AC-16, 1971.
[DoVan92] J. Dongarra, R. Van De Geijn and D. W. Walter, A Look at Scalable Dense Linear
Algebra Libraries. Proceedings of the Scalable High-Performance Computing Conference,
IEEE Publishers, pp. 372-379, 1992.
[DoWhS95] J. Dongarra and R. C. Whaley, A User's Guide to the BLACS v1.1. Computer Science
Dept. Technical Report CS-95-281, University of Tennessee, Knoxville, TN, 1995.
[DrGr98]
V. Druskin, A. Greenbaum and L. Knizhnerman, Using Nonorthogonal Lanczos Vectors
in the Computation of Matrix Functions. SIAM J. Sci. Comput. 19, pp. 38-54, 1998.
[Fadd59]
V. N. Faddeeva, Computational Methods of Linear Algebra. Dover Publications, New
York, 1959.
[Fehl69]
E. Fehlberg, Low-order Classical Runge-Kutta Formulas with Step-size Control and their
Application to some Heat Transfer Problems. NASA Rept TR R-315, Huntsville, AL, April
15, 1969.
[FeZF03]
A. Ferrando, M. Zacars, P. Fernndez de Crdoba, D. Binosi y J.A. Monsoriu, Spatial
Soliton Formation in Photonic Crystal Fibers. Optics Express 11, 452, 2003.
[FeZF04]
A. Ferrando, M. Zacars, P. Fernndez de Crdoba, D. Binosi y J.A. Monsoriu, Vortex
Solitons in Photonic Crystal Fibers. Optics Express 12, 817, 2004.
[Gant90]
F. R. Gantmacher, The Theory of Matrices. Vol. I, Chelsey, New York, 1990.
[Garc98]
Carmen Garca Lpez, Mtodos de Linealizacin para la Resolucin Numrica de
Ecuaciones Diferenciales. Tesis Doctoral, Mlaga, 1998.
[GaSa92]
E. Gallopoulos and Saad, Efficient Solution of Parabolic Equations by Krylov
Approximation Methods. SIAM J. Sci. Statist. Comput., 13, pp. 1236-1264, 1992.
[GoLR82]
I. Gohberg, P. Lancaster and L. Rodman., Matrix Polinomials. Academic Press, New
York, 1982.
[GoNV79] G. H. Golub, S. Nash and C. F. Van Loan, A Hessenberg-Schur Method for the Matrix
Problem AX+XB=C. IEEE Trans. Auto. Cont., AC-24, pp. 909-913, 1979.
[GoVa96]
G. H. Golub and C. F. Van Loan, Matrix Computations. Third Edition, Johns Hopkins
University Press, Baltimore, Maryland, 1996.
[GoWi76]
G. H. Golub and J. H. Wilkinson, Ill-Conditioned Eigensystems and the Computation of
the Jordan Canonical Form. SIAM Review 18, 1976.
[Grif81]
D. H. Griffel, Applied Functional Analysis. Ellis Hordwood Series, Mathematics and its
applications, 1981.
[GrLS94]
W. Group, E. Lusk, A. Skjellum, Using MPI: Portable Parallel Programming with the
Message-Passing Interface. MIT Press, Cambridge, Massachusetts, 1994.
[GuSA03]
S. Gugercin, D.C. Sorensen, and A.C. Antoulas, A Modified Low-rank Smith Method for
Large-scale Lyapunov Equations. Numerical Algorithms, 32(1), pp. 2755, 2003.
[Hage84]
W. W. Hager, Condition estimators. SIAM J. Sci Stat. Comput., 5, pp. 311-316, 1984.

329

Bibliografa
[HaHS00]

[HaNW87]
[HaWa91]
[HaWa96]
[HiBy75]
[Hig103]
[Hig187]
[Hig194]
[Hig203]
[Hig287]
[Hig297]
[High01]
[High02]
[High04]
[High84]
[High86]
[High873]
[High88]
[High882]
[High90]
[HiHi00]
[HiMN03]

[HiMN04]
[Hind74]
[Hind83]

M. A. Hasan, J. A. K. Hasan, and L. Scharenroich, New Integral Representations and


Algorithms for Computing nth Roots and the Matrix Sector Function of Nonsingular
Complex Matrices. Proceedings of the 39th IEEE Conference on Decision and Control,
Sydney, Australia, pp. 42474252, 2000.
E. Hairer, S. P. Norsett and G. Wanner, Solving ODE. Nonstiff Problems. Springer
Verlag, 1987.
E. Harier and G. Wanner, Computer Methods for Ordinary Differential Equations and
Differential Algebraic Equations, SIAM, 1998.
E. Hairer and G. Wanner, Solving Ordinary Differential Equations II: Stiff and
Differential-Algebraic Problems. Springer-Verlag, 1996.
A. C. Hindmarsh and G. D. Byrne, Episode, an Experimental Package for the Integration
Of Systems Of Ordinary Differential Equations, Ucid-30112, L.L.L., May, 1975.
N. J. Higham, A Schur-Parlett Algorithm for Computing Matrix Functions. SIAM J.
Matrix Anal. Appl., Vol. 25, No. 2, pp. 464-485, 2003.
N. J. Higham, A Survey of Condition Number Estimation for Triangular Matrices. SIAM
Review, 29, pp. 575-596, 1987.
N. J. Higham, The Matrix Sign Decomposition and its Relation to the Polar
Decomposition. Linear Algebra and Appl., 212/213:3-20, 1994.
N. J. Higham, Computing the Matrix Cosine. Kluwer Academic Publishers, Numerical
Algorithms 34, pp. 1326, 2003.
N. J. Higham, Computing Real Square Roots of a Real Matrix. Linear Algebra and
Appl.,88/89, pp. 405-430, 1987.
N. J. Higham, Stable Iterations for the Matrix Square Root. Numerical Algorithms, Vol.
15, pp. 227-242, 1997.
N. J. Higham, Evaluating Pad Approximants of the Matrix Logarithm. SIAM J. Matrix
Anal. App., Vol. 22, N 4, pp. 1126-1135, 2001.
Nicholas J. Higham, The Matrix Computation Toolbox for MATLAB. Department of
Mathematics, University of Manchester, Manchester, 2002.
N. J. Higham, The Scaling and Squaring Method for the Matrix Exponential Revisited.
Numerical Analysis Report 452, Manchester Centre for Computational Mathematics, 2004.
N. J. Higham, Newtons Method for the Matrix Square Root. Numerical Analysis Report
No. 91, Univ. of Manchester, 1984.
N. J. Higham, Computing the Polar Decomposition with Applications. SIAM J. Sci. Stat.
Comput., Vol. 7, pp. 1160-1174, 1986.
N. J. Higham, A Survey of Condition Number Estimation for Triangular Matrices. SIAM
Review, 29, pp. 575-596, 1987.
N. J. Higham, FORTRAN Codes for Estimating the One-Norm of a Real or Complex
Matrix, with Applications to Condition Estimation. ACM Trans. Math. Soft., 14, pp. 381396, 1988.
N. J. Higham, FORTRAN Codes for Estimating the One-norm of a Real or Complex
Matrix, with Applications to Condition Estimation. ACM Trans. Math. Soft., 14, pp. 381396, 1988.
N. J. Higham, Experience with a Matrix Norm Estimator. SIAM J. Sci. Stat. Comput.,11,
pp. 804-809,1990.
D. J. Higham and N. J. Higham, MATLAB Guide. Society for Industrial and Applied
Mathematics (SIAM), Philadelphia 2000.
N. J. Higham, D. S. Mackey, N. Mackey and F. Tisseur, Computing the Polar
Decomposition and the Matrix Sign Decomposition in Matrix Groups. Numerical
Analysis Report No. 426, Manchester Centre for Computational Mathematics, Manchester,
England, April 2003. Revised November 2003. To appear in SIAM J. Matrix Anal. Appl.
N. J. Higham, D. S. Mackey, N. Mackey, and F. Tisseur, Functions Preserving Matrix
Groups and Iterations for the Matrix Square Root. Numerical Analysis Report 446,
Manchester Centre for Computational Mathematics, Manchester, England, March 2004.
A. C. Hindmarsh, Gear, Ordinary differential Equation System Solver. Ucid-30001, rev.
3, l.l.l., December, 1974.
A. C. Hindmarsh, ODEPACK, a Systematized Collection of ODE Solvers. Scientific
Computing, R. S. Stepleman et al. (eds.), North-Holland, Amsterdam, Vol. 1 of IMACS
Transactions on Scientific Computation, pp. 55-64, 1983.

330

Bibliografa
[HiSh90]
[HoJo91]
[HoLS97]
[HoWa78]
[Hunt79]
[Iba97]
[IMKL03]
[Iser98]
[KaBu61]
[KaEn66]
[Kall73]
[Kalm61]
[Kamm76]
[Karl59]
[KaRu74]
[KeL189]
[KeL289]
[KeLa91]
[KeLa92]
[KeLa98]
[KeLe82]
[KeLe85]
[Kniz91]
[KoBa95]
[Lain76]
[LaMi85]
[Laub82]

N. J. Higham and R. S. Schreiber, Fast Polar Decomposition of an Arbitrary Matrix.


SIAM J. Sci. Stat. Comput., 11, pp. 648-655,1990.
R. A. Horn and C. R. Johnson, Topics in Matrix Analysis. Cambridge University Press,
London, 1991.
M. Hochbruck, C. Lubich and H. Selhofer, Exponential Integrators for Large Systems of
Differential Equations. SIAM J. Numer. Anal. 34, pp. 1911-1925, 1997.
W. D. Hoskins and D. J. Walton, A Faster Method of Computing the Square Root of a
Matrix. IEEE Trans. Automat. Control. AC-23(3), pp. 494495, 1978.
E. Huntley, A Note on the Application of the Matrix Riccati Equation to the Optimal
Control of Distributed Parameter Systems. IEEE Trans. On Automatic Control, AC-24,
pp. 487-489, 1979.
J. Javier Ibez Gonzlez, Algoritmos Paralelos para el Clculo de la Exponencial de una
Matriz sobre Multiprocesadores de Memoria Compartida. Proyecto Fin de Carrera UPV,
1997.
Intel Corporation, Intel Math Kernel Library, Reference Manual. 2003.
A. Iserles, A First Course in the Numerical Analysis of Differential Equations.
Cambridge Texts in Applied Mathematics, University of Cambridge, 1988.
R. E. Kalman and R. S. Bucy, New Results in Linear Filtering and Prediction Theory.
Trans. ASME, J. Basic Eng., 83, Series D , pp. 95-108, 1961.
R. E. Kalman and T. S. Englar, A User's Manual for the Automatic Synthesis Program.
NASA Report CR-475, 1966.
C. Kallstrom, Computing Exp(A) and Exp(As). Report 7309, Division of Automatic
Control, Lund Institute of Technology, Lund, Sweden, 1973.
R. E. Kalman, Contributions to the Theory of Optimal Control. Bol. Soc. Mat. Mex., 5,
pp. 102-119, 1961.
D. W. Kammler, Numerical Evaluation of Exp(At) when A is a Companion Matrix.
unpublished manuscript, University of Southern Illinois, Carbondale, IL,1976.
S. Karlin, Mathematical Methods and Theory in Games, Programming, and Economics.
Addison-Wedsley Pub. Co., Mass., 1959.
B. Kgstrm and A. Ruhe, An algorithm for Numerical Computation of the Jordan
Normal Form of a Complex Matrix. Report UMONF 51.74, Department of Information
Processing, University of Umea, Umea, Sweden, 1974.
C. S. Kenney and A. J. Laub, Pad Error Estimates for the Logarithm of a Matrix.
International J. Control, 50, pp. 707730, 1989.
C. S. Kenney and A. J. Laub, Condition Estimates for Matrix Functions. SIAM J. Matrix
Anal. Appl., Vol. 10, pp. 191209, 1989.
C. S. Kenney and A. J. Laub, Rational Iterative Methods for the Matrix Sign Function.
SIAM J. Matrix Anal. Appl., 12(2):273-291, 1991.
C. S. Kenney and A. J. Laub, On Scaling Newtons Method for Polar Decomposition and
the Matrix Sign Function. SIAM J. Matrix Anal. Appl. 13(3), pp. 688706, 1992.
C. S. Kenney and A. J. Laub, A Schur-Frchet Algorithm for Computing the Logarithm
and Exponential of a Matrix. SIAM J. Matrix Anal. Appl., Vol. 19, N 3, pp. 640-663,
1998.
H. B. Keller and M. Lentini, Invariant Embedding, the Box Scheme and an Equivalence
between them. SIAM J. Numerical Analysis, 19, pp. 942-962, 1982.
C. S. Kenney and R. B. Leipnik, Numerical Integration of the Differential Matrix Riccati
Equation. IEEE Trans. on Automatic Control, AC-30, pp.962-970, 1985.
L. A. Knizhnerman, Calculation of Functions of Unsymmetric Matrices Using Arnoldis
Method. Comput Math. and Math. Phys. 31, pp. 1-9, 1991.
C. K. Koc and B. Bakkaloglu, Halleys Method for the Matrix Sector Function. IEEE
Trans. Automat. Control, 40, pp. 944949, 1995.
Lainiotis, D.G., Partitioned Riccati Solutions and Integration-free Doubling Algorithms
IEEE Trans. on Automatic Control, AC-21, pp. 677-689, 1976.
P. Lancaster and M. Tismenetsky, The theory of Matrices Second Edition with
Applications. Computer Science and Applied Mathematics, Academic Press Inc., 1985.
A. J. Laub, Schur Techniques for Riccati Differential Equations. Feedback Control of
Linear and Nonlinear Systems, D. Hinrichsen and A. Lsidori (Eds.), Springer-Verlag, New
York, pp. 165-174, 1982.

331

Bibliografa
[Leip85]
[LiSw98]
[Macd56]
[MaHI92]
[Mart99]
[Mast69]
[Meht89]
[MiQD95]
[MoLK78]
[MoVa03]
[MoVa78]
[NgPa87]
[PaKL90]
[Parl74]
[Parl76]
[PaSt73]
[PeCK91]
[Poll89]
[Prue86]
[RaHi93]
[Rine78]
[Robe71]
[Robe80]
[RuBi95]
[Rusn88]
[Saad92]
[SaCa94]
[Sanz92]

B. Leipnik, A Canonical Form and Solution for the Matrix Riccati Differential Equation.
Bull. Australian Math. Soc., 26, pp. 355-361, 1985.
W. M. Lioen, J. J. B. de Swart, Test Set for Initial Value Problems Solvers.
http://www.cwi.nl/cwi/projects/IVPtestset.
C. C. MacDuffee, The Theory of Matrices, Chelsea, New York, 1956.
M. Marqus, V. Hernndez and J. Ibez, Parallel Algorithms for Computing Functions of
Matrices on Shared Memory Multiprocessors. Pacta92, part 1, pp 157-166, 1992.
G. Martn Herrn, Symplectic Methods for the Solution to Riccati Matrix Equations
Related to Macroeconomic Models. Computational Economics, 13, pp. 61-91, 1999.
E. J. Mastascusa, A Relation between Lious Method and Forth Order Runge-Kutta
Method for Evaluation of Transient Response, Proc. IEEE, 57, 1969.
M. L. Mehta, Matrix Theory: Selected Topics and Useful Results. Hindustan Publishing
Company, Delhi, second edition, 1989.
P. Misra, E. Quintana and P. M. Van Dooren, Numerically Reliable Computation of
Characteristic Polynomials. American Control Conference, Seattle, WA, 1995.
M. Morf, B. Levy and T. Kailath, Square-root Algorithms for the Continuous Time Linear
Least-square Estimation Problem. IEEE Trans. on Automatic Control, 23, pp. 907-911,
1978.
C. B. Moler and Van Loan. Nineteen Dubious Ways to Compute the Exponential of a
Matrix, Twenty-Five Years Later*. SIAM Review 45, pp. 3-49, 2003.
C. B. Moler and Van Loan. Nineteen Dubious Ways to Compute the Exponential of a
Matrix. SIAM Review 20, pp. 801-36, 1978.
K.C. Ng and B. N. Parlett, Programs to Swap Diagonal Blocks. CPAM report, University
of California, Berkeley, 1987.
P. Pandey, C. Kenney and A. J. Laub, A Parallel Algorithm for the Matrix Sign
Function, Int. J. High Speed Computing, 2(2), 181-191, 1990.
B. N. Parlett, Computation of Matrix-value Functions. SIAM J. Matrix Anal., Vol 14, pp.
1061-1063, 1974.
B. N. Parlett, A Recurrence among the Elements of Functions of Triangular Matrices,
Linear Algebra Appl., Vol 14, pp. 117-121, 1976.
M. S. Paterson and L. J. Stockmeyer, On the Number of Nonscalar Multiplications
Necessary to Evaluate Polynomials. SIAM J. Comput., Vol 2, pp. 6066, 1973.
P. Petkov, N. Christov and D. Konstantinov, Computational Methods for Linear Control
Systems. Prentice Hall International Series in Systems and Control Engineering, 1991.
A. A. Pollicini, Using Toolpack Software Tools. Kluwer Academic, 1989.
S. Pruess, Interpolation Schemes for Collocation Solution of TPBVPs. SIAM J. Sci.
Statist. Comput. 7, pp. 322-333, 1986.
K. Radhakrishnan and A. C. Hindmarsh, Description and Use of LSODE, the Livermore
Solver for Ordinary Differential Equations. LLNL Report UCRL-ID-113855, December
1993.
R. F. Rinehart, The Equivalence of Definitions of a Matrix Functions. IEEE Trans. Auto.
Cont., AC-24, pp. 320-321, 1978.
J. D. Roberts, Linear Model Reduction and Solution of the Algebraic Riccati Equation by
Use of the Sign Function. CUED/B-Control/TR13, Departament of Engineering,
University of Cambridge, 1971.
J. D. Roberts, Linear Model Reduction and Solution of the Algebraic Riccati Equation by
Use of the Sign Function. International Journal Control, vol. 32. pp. 677-687, 1980.
P. St. J. Russell, T. A. Birks, y F. D. Lloyd-Lucas, Photonic Bloch Waves and Photonic
Band Gaps. Confined electrons and Photons: New Physics and Applications, E. Burstein
and C. Weisbuch, eds. Plenum, New York, 1995.
L. Rusnak, Almost Analytic Representation for the Solution of the Differential Matrix
Riccati Equation. IEEE Trans. on Automatic Control, 33, pp. 191-193, 1988.
Y. Saad, Analysis of some Krylov Subspace Approximations to the Matrix Exponential
Operator. SIAM J. Numerical Analysis, Vol. 29, pp. 209-228, 1992.
J. M. Sanz-Serna, M. P. Calvo, Numerical Hamiltonian Problems. Mathematical
Computation 7, Chapman&Hall, 1994.
J. M. Sanz-Serna, Symplectic Integrators for Hamiltonian Problems: An Overview. Act.
Numer. 1, pp. 243-286, 1992.

332

Bibliografa
[SBDG76]
[SBIK76]
[ScLA97]
[Scra71]
[SeBl80]
[Serb79]
[SGIA03]
[Shah71]
[ShGo75]
[ShTs84]
[ShWD76]
[Sibu66]
[SiSp76]
[Smit03]
[SpGu79]
[Stew73]
[StLe96]
[Tref00]
[Trot59]
[TsSY88]
[VanL00]
[VanL78]
[VanL79]
[Varah79]
[Varg62]
[Vaug69]
[Wach88]

B. T. Smith, J. M. Boyle, J. J. Dongarra, B. S. Garbow, V. C. Klema, and C. B. Moler,


Matrix Eigensystem Routines- EISPACK Guide. Vol 7 of Lecture Notes in Computer
Science, Spronger-Verlag, Berlon, 1976.
B. T. Smith, J. M. Boyle, Y. Ikebe, V. C. Klema, and C. B. Moler, Matrix Eigensystem
Routines: EISPACK Guide, 2nd Ed.. Lecture Notes in Comp. Sd., 6, Springer Verlag,
New York, 1976.
S. Blackford, J. Choi, A. Cleary, E. DAzevedo, I. Dhillon, J. Demmel, J. Dongarra, S.
Hammarling, G. Henry, A. Petitet, K. Stanley, D. Walker, R.C. Whaley, ScaLAPACK
Users Guide. SIAM Publications, Philadelphia, 1997.
R. E. Scraton, Comment on Rational Approximants to the Matrix Exponential. Electron.
Lett., 7, 1971.
S.M. Serbin and S.A. Blalock, An Algorithm for Computing the Matrix Cosine. SIAM J.
Sci. Statist. Comput. Vol 1(2), pp. 198204, 1980.
S.M. Serbin, Rational Approximations of Trigonometric Matrices with Application to
Second-order Systems of Differential equations. Appl. Math. and Comput., Vol. 5, pp. 7592, 1979.
SGI Altix Applications Development an Optimization, Release August 1, 2003.
M. M. Shah, On the Evaluation of Exp(At). Cambridge Report CUED/B-Control TR.,
Cambridge, England, 1971.
L. F. Shampine and M. K. Gordon, Computer Solution of Ordinary Differential
Equations: the Initial Value Problem. W. H. Freeman and Co., San Francisco, January,
1975.
L. S. Shieh, Y. T. Tsay, and C. T. Wang, Matrix Sector Functions and their Applications
to Systems Theory. Proc. IEE-D, 131, pp. 171181, 1984.
L. F. Shampine, H. A Watts and S. M. Davenport, Solving Non-stiff Ordinary Differential
Equations-the State of the Art. SIAM Rev. 18, pp. 376-411, 1976.
Y. Sibuya, A Block-diagonalization Theorem for Systems of Ordinary Differential
Equations and its Applications. SIAM J. on Applied Mathematics, 14, pp. 468-475, 1966.
B. Singer and S. Spilerman, The Representation of Social Processes by Markov Models.
Amer. J. Sociology, 82, pp. 154, 1976.
M. I. Smith, A Schur Algorithm for Computing Matrix pth Roots. SIAM J. Matrix Anal.
Appl., Vol. 24. No. 4, pp. 971-989, 2003.
J. L Speyer and D. E. Gustafson, Estimation of Phase Processes in Oscillatory Signals and
Asymptotic Expansions. IEEE Trans. on Automatic Control, AC-24, pp. 657-659, 1979.
G. W. Stewart, Error and Perturbations Bounds for Subspaces Associated with certain
Eigenvalues Problems. SIAM Review, 15, pp. 727-764, 1973.
D. E. Stewart and T.S. Leyk, Error Estimates for Krylov Subspace Approximations of
Matrix Exponentials. J. Comput. Appl. Math. 72, pp. 359-369, 1996.
L. N. Trefethen, Spectral Methods in MATLAB. Society for Industrial and Applied
Mathematics (SIAM), 2000.
H. F. Trotter, Product of Semigroups of Operators. Prpc. Amer. Math. Soc., 10, 1959.
J. S. H. Tsai, L. S. Shieh, and R. E. Yates, Fast and Stable Algorithms for Computing the
Principal nth Root of a Complex Matrix and the Matrix Sector Function. Comput. Math.
Applic., Vol. 15(11), pp. 903913, 1988.
C.F.Van Loan, Introduction to Scientific Computing. A Matrix-Vector Approach Using
MATLAB. Prentice-Hall, 2000.
C. F. Van Loan, Computing Integrals Involving the Matrix Exponential. IEEE
Transactions on Automatic Control, Vol. AC-23, 1978.
C. F. Van Loan, A Note on the Evaluation of Matrix Polynomials. IEEE Transactions on
Automatic Control, Vol. AC-24, 1979.
J. M. Varah, On the Separation of Two Matrices. SIAM J. Numerical Analysis, Vol. 16,
pp. 216-222, 1979.
R. S. Varga, Matrix Iterative Analysis. Prentice Hall, Englewood Cliffs, New Jersey,
1962.
d. r. Vaughan, A negative Exponential Solution for the Matrix Riccati Equation. IEEE
Trans. on Automatic Control AC-14, pp. 72-75, 1969.
E.L. Wachspress, Iterative Solution of the Lyapunov Matrix Equation. Appl. Math.
Letters, 107:8790, 1988.

333

Bibliografa
[Ward77]
[Whit69]
[Wilk92]
[WiRe71]
[Wonh68]
[Zaca05]
[Zaca05]

R. C. Ward, Numerical Computation of the Matrix Exponential with Accuracy Estimate.


SIAM Journal Numerical Analysis, 14, 1977.
D. E. Whitney, More Similarities between Runge-Kutta and Matrix Exponential Methods
for Evaluating Transient Response. Ibid., 57, 1969.
J. H. Wilkinson, The Algebraic Eigenvalues Problem. Clarendon Press, Oxford.
Reprinted, 1992.
J. H. Wilkinson and C. Reinsch, Handbook for Automatic Computation. Vol. 2, Linear
Algebra, Springer-Verlag, Heidelberg, 1971.
W. M. Wonham, On a Matrix Riccati Equation of Stochastic Control. SIAM J. on
Control, 6, pp. 681-697, 1968.
M. Zacars Gonzlez, Mtodos Modales para el Anlisis de la Propagacin no Lineal en
Fibras pticas. Tesis Doctoral, Departamento de ptica de la Universidad de Valencia,
2005.
M. Zacars Gonzlez, Mtodos Modales para el Anlisis de la Propagacin no Lineal en
Fibras pticas. Tesis Doctoral, Departamento de ptica de la Universidad de Valencia,
2005.

334

También podría gustarte