Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Computacin
Universidad Politcnica de Valencia
Tesis Doctoral
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
1.3
Metodologa...................................................................................................... 4
1.4
Estructura de la Tesis....................................................................................... 7
Captulo 2
2.1
Resumen de Contenidos.................................................................................. 11
2.2
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
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
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.5
Conclusiones................................................................................................... 84
Captulo 3
3.1
Resumen de Contenidos.................................................................................. 87
3.2
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
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
4.1
4.2
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
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
5.1
5.2
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
Conclusiones................................................................................................. 280
Captulo 6
6.1
6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.3
6.4
Apndice A.
Apndice B.
MATLAB...................................................................... 307
IX
Apndice C.
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.
Arquitectura ....................................................................................................................................325
Software..........................................................................................................................................325
Compiladores .............................................................................................................................326
Libreras .....................................................................................................................................326
Captulo 1: Introduccin
Captulo 1 Introduccin
Captulo 1: Introduccin
Captulo 1: Introduccin
Captulo 1: Introduccin
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
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)
Captulo 1: Introduccin
(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
Captulo 1: Introduccin
Captulo 1: Introduccin
11
f ( A) =
1
f ( z )( Iz A) 1 dz .
2i
f kj =
1
1
f ( z )ekT (Iz A) e j dz ,
2i
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).
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
AX = XA ,
12
Propiedad 2.3
Sea A C
nxn
n
i =1
= n,
entonces
f ( A) = diag( f ( A1 ), f ( A2 ), L , f ( Ar )) .
Corolario 2.1.
( 2.2 )
( 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]).
13
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.
f ( z ) = ck z k ,
k =0
c A
k =0
f ( A) = ck Ak .
k =0
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
1 k
z ,
k = 0 k!
ez =
1 k
A .
k = 0 k!
eA =
14
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
Al cumplirse que
15
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
Propiedad 2.5.
Si A C
nxn
Propiedad 2.6.
nxn
, son 1 .
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
0 0
16
1 0
A=
0 0
.
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]).
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
( )
( 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 ,
Sea A C
nxn
donde J i C
ni xni
n
i =1
17
Toda matriz hermtica y definida positiva tiene una nica raz cuadrada hermtica y
definida positiva.
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
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.
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
nxn
nxn
= 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
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
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]).
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
( )
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 ,
de i .
Teorema 2.6 ([Smit03]).
Sea A C
nxn
A = Xdiag J 1 , J 2 ,L, J r X 1 ,
donde J i C
ni xni
n
i =1
20
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 ,
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).
nxn
nxn
tal que
21
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
sen A = (1) k
k =0
A 2 k +1
(2k + 1)!
A2k
cos A = (1)
.
(2k )!
k =0
k
22
nxn
f ( z ) = ck z k .
k =0
f ( A) = ck Ak .
k =0
S L = ck Ak .
k =0
donde
23
( 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 ) =
e A R pq ( A) = D pq ( A)
] [N
1
pq
( A) .
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
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|| .
24
lim R pq (tA).
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)
25
[R (A / 2 )]
2j
[T (A / 2 )]
j
2j
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
27
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
!
28
Mtodos Multipaso
Sea
n 1
c( z ) = det( zI A) = z n ck z k ,
k =0
nxn
A k = kj A j ,
j =0
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 =
j (t ) = kj
k =0
tk
,
k!
29
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
Se basa en la expresin
n
e At = e
j =1
jt
k =1
k j
A k I n
.
j k
30
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
Aj =
k =1
k j
A k I n
, j = 1,2,L, n ,
j k
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
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 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
c( s)
1
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
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
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 ,
Hf
hik f i , k = 2,3, L , n .
hk 1k
i=k
nxn
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 .
35
e B +C = lim e B / m e C / m
m
36
H pt
e1T ,
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
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
38
Sean 1( k ) , L, (mk )
} los
( )
* 2
k
( 2.11 )
1 i cos i j cos j
i j i cos j j cos i
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]),
1/ 2
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
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
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
, 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
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
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
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
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
2.1.2 Calcular R
j 1
k = i +1
ik
Rij( m ) .
q 1
h =0
m =0
42
log A = 2 k log A1 / 2 ,
k
43
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)
(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
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
45
Etapa 2:
1
2
nxn
nxn
( 2.14 )
k =i
k =i +1
ik
Fkj .
nxn
triangular superior y Q C
nxn
unitaria.
46
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
k =i +1
ik
S kj
B = QV 1 FVQ *
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
48
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]).
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
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.
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
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
1
2
0
0 .
1
2
50
0
2
3
2 1
3 4
1
4
1
.
0
4
3
4
0
1
2
0.
1
1
3
0
1
6
1
2
0
1
3
0
0
1
6
Definicin 2.8
Mtodos de Gauss.
Mtodo del punto medio implcito.
1
2
1
2.
1
51
0
1
0
1
2
1
2
0
1
.
2
1
2
0
5
24
1
6
1
6
0
1
3
2
3
2
3
0
1
24
1 .
6
1
6
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
x(tn ) = x(tn 1 ) +
tn
f (t , x(t ))dt .
t n 1
0 = 1 , 1 = 1 y j = 0 para j > 1 .
52
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
xn = xn 1 + h
f n 1
f n2 +
f n 3 .
12
12
12
=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:
53
xn = xn1 + h j f n j .
j =0
r=1 k=1 1
r=2 k=1 1/2
1/2
8/12
-1/12
19/24
-5/24
1/24
646/720
-264/720
106/720
-19/720
-482/1440
-173/1440
27/1440
xn = j xn j + h f (tn , xn ) .
j =1
54
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
Tabla 2.4:
-3/25
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
y (t ) = y0 + e J 0 ( t ) [ f 0 + g 0 ( t 0 )]d , t [t 0 , t1 ] ,
t0
y (t ) = y1 + e J1 ( t ) [ f1 + g1 ( t1 )]d , t [t1 , t 2 ] .
t1
( 2.22 )
y (t ) = yi + e J i (t ) [ f i + g i ( t i )]d , t [ti , ti +1 ] .
ti
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 )] .
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
57
2.4 Ecuaciones
(EDMRs)
Diferenciales
Matriciales
de
Riccati
( 2.25 )
f ij
x pq
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 )
d U (t ) A(t ) R(t ) U (t )
=
, t0 t t f ,
dt V (t ) Q(t ) B(t ) V (t )
58
X (t ) = V (t )U 1 (t ) , t [t0 , t f ] .
( 2.28 )
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 .
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
59
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])
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 .
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
(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
tf
, kN ,
2k
de manera que se produzca un error de truncamiento menor que una cierta cota positiva
elegida previamente, siguiendo el siguiente esquema:
tf
k
, kN ,
de manera que se produzca un error de truncamiento menor que una cierta cota positiva
elegida previamente, siguiendo el siguiente esquema:
61
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 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 )
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 )
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
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 )
U W11 W12 U
U
V = W = W W ,
22 V
V 21
d U (t ) D 0 U (t )
,
dt V (t ) 0 D V (t )
In
U (t0 )
1
= W X .
V (t0 )
0
64
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 .
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
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 )
d U (t ) S11
=
dt V (t ) 0
S12 U (t )
,
S 22 V (t )
I
U (t0 )
T n
= K .
X0
V (t0 )
65
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
( 2.48 )
t0
K12
.
K 22
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
66
0
[L1 (t0 ) L2 (t0 )]T = L(t0 ) SLT (t0 ) ,
I r m
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 .
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 ) .
X (t , t 0 )
= K (t , t 0 ) SKT (t , t 0 ) .
t 0
67
dK (t )
= AT K (t ) H K (t ) , K (t 0 ) = L(t 0 ) ,
dt
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
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
( 2.60 )
siendo X (k ) = X (k ,0 ) y = t k +1 t k .
69
( 2.61 )
X (0) = X 0 ,
siendo ( A, H ) estabilizable, (G, A) observable y X 0 matriz definida positiva.
Lema 4 ([Wonh68])
( 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 )
d
( X X ) = ( X X ) A + A T ( X X ) ( X X ) HH T ( X X ) .
dx
Z ' = ( X X ) 1 ( X X ) ( X X ) 1 ,
dx
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 )
d
(Z Z ) = A (Z Z ) + (Z Z ) A T , t > 0
dt
70
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
Este mtodo, debido a Leipnik ([Leip85]), permite resolver EDMRs simtricas con
coeficientes constantes.
Lema 5 ([Leip85])
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 = Z T X 1Z + H ,
siendo
A1 = Z ( A RH ) Z 1 ,
R1 = ZRZ T ,
Q1 = Z T (Q + HA + AT H HRH ) Z 1 .
71
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 )
d U A1 R1 U
,
=
dt V R1 A1 V
U (0) I n
V (0) = X (0) .
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
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
( 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 ).
S ' (t ) = C L (t ) + C D (t ) S (t ) , S (t 0 ) = S 0 ,
2
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
siendo
X 0 = X 0 X ,
X n = X (t n ) X
y
t
D = e K Re K d .
T
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 ) ,
74
( 2.79 )
( 2.80 )
X (t ) = (t , s ) X ( s ) T (t , s ) + (t , )C ( ) T (t , )d ,
s
(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:
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
h
h
X k +1 = k X k + C k Tk + C k +1 .
2
4
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
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 ] .
76
Al = A BBT Pl .
2
3
( F T + p j I n )QTj = WW T Q j 1 ( F p j I n ) ,
2
nxr j
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
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
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
( 2.84 )
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 ,
79
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
J=
1
qx 2 ( y, t ) + ru 2 ( y, t ) dydt ,
200
2x
y se considera
y 2
x' (t ) = Ax(t ) + u (t ) ,
donde
80
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
( 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
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 ,
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
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
( 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 )
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
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 0 = X (t 0 ) = B121 B11 ,
siendo
( 2.96 )
[0
Por lo tanto, para resolver el problema de contorno ( 2.93 ) se siguen los siguientes
pasos:
1.
2.
3.
Calcular y (t ) = S (t ) w(t ) .
83
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
85
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
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.
89
Coseno: [SeBl80].
90
91
Matriz B = f ( A) nxn .
f ( x) = a k x k
k =0
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
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
( 3.2 )
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
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
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
93
[ 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
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
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
Si
l
p ( A ) = pi A i ,
i =0
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
95
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
2l
2n
2n 3 + 2sn 2 = 2n 2 l + 2 .
s
s
C ( s ) = 2( s 1)n 3 + 2n 2 l + 2 = 2n 2 ( s 1)n +
+ 2l flops.
s
96
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
a ( x) = 1 + x +
1 2 1 3
1
x + x +L+
x 2 l +1 .
2!
3!
(2l + 1)!
97
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 .
B1 = e A1 = e DA2 D = De A2 D 1 = DB2 D 1 .
98
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 .
2nl
8l
2n 2 ( s 1)n +
+ l 2 flops.
+ 2l + nj +
s
3
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
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
(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
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 .
B = d Ac = d A1/ m
cm
= d A1
cm
= B1 .
100
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
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
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 .
A1 = A1/ 2 :
1.2.1 A1 = A
1.2.2 Para i = 1 : j
j
2
3
4
+ 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.
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
102
a ( x) = 1 + x
1 2 1 3 1 4
1
x + x x +L+
x 2l +1 .
2
3
4
2l + 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
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
A1 = A1 / 2 :
1.2.1 A1 = A
1.2.2 Para i = 1 : j
j
1.2.2.1
2
3
4
5
(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.
a ( x) = 1
1 2
1 2l
x + L + (1) l
x + 0 x 2l +1 .
2!
(2l )!
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 .
105
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
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
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 .
In y A
conmutan, entonces
106
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
Matriz B = f ( A) nxn .
n
i =1
= n,
( 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,
siendo Z ij
ni xn j
matrices a determinar.
109
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
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 .
n j xn j
ni xn j
110
Z12
I n2
M
0
L Z1 p
L Z 2 p
,
O M
L I n p
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
sep( S ii , S jj ) = min
X 0
|| S ii X XS jj || F
|| X || F
([Varah79]),
|| S ii X XS jj || F
|| X || F
X 0
min | | ,
(Tii )
(T jj )
Matriz B = f ( A) nxn .
2
3
Calcular B = QFQ 1
112
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
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
( 3.18 )
( 3.19 )
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
113
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
b z 0 bc
bc 0 z c
b
,
bc
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
114
( 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
y
B11
0
B=
M
Bij
ni xn j
B12 L B1s
B22 L B2 s
nxn ,
M O M
0 L Bss
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
j 1
k =i +1
k =1
115
Aii X ij + X ij B jj = Cij
( 3.22 )
j 1
k =i +1
k =1
Aik X kj X ik Bkj .
j 1
r
( 3.23 )
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
X ij = mat mi xn j ( xij )
116
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
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
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
Fij
Fik, j<km
Fkj, 1k<i
F = dqtfunscd (S ) .
Entradas: Matriz casi triangular superior S nxn .
Salida:
1
2
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
S ii Fij S ij T jj = Fik S kj
k =i
k =i +1
ik
Fkj .
119
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
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
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
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
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
[ 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 )
123
[ 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:
actualizada Q nxn .
1
2
3
4
124
B = dqtfunspp ( A) .
Entrada: Matriz A nxn y funcin f (x) .
Salida:
1
Matriz B = f ( A) nxn .
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.
126
127
129
130
x' (t ) = f (t , x(t )) , t [t 0 , t f ] ,
x(t0 ) = x0 n ,
131
Ji =
f
(ti , yi ) nxn ,
x
gi =
f
(ti , yi ) n .
t
0n
I n .
0 n
In
0n
0n
Demostracin.
y (t ) = yi + e J i (t ) [ f i + g i ( t i )]d .
ti
= 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
132
Ji
C i = 0 n
0 n
( 4.4 )
In
0n
0n
0n
I n ,
0 n
( 4.5 )
F22( i ) ( ) F23(i ) ( ) ,
= 0n
0n
F33(i ) ( )
0n
=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
I n 0n
F22( i ) ( ) F23( i ) ( )
0n 0n
0n
F33( i ) ( )
0n
F33(i ) ( )
= 0n
.
0n
0n
0n
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
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 )
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
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
135
[c1 , c2 ] = dlapex(q )
1
2
3
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 ) =
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
136
( 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
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
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
X 11 = X 11 J i ,
138
8.2.
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
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
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 ,
139
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
F11 = F112 .
140
J nxn , vector
f n , vector
g n , vector
yi n ,
nor = t || J ||
3
4
5
6
X 11 = J ; X 12 = sI n ; X 13 = 0 n
t
; J i = sJ
2 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
2 q + 3 j Jt + n 3 flops,
3
141
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
3.2
3.3
t = ti +1 ti
yi +1 = dlaop3( J , f , g , yi , t , c1 , c2 ) (Algoritmo 4.4)
In
0n
0n
0n
I n
0 n
e Ci ti
e J i ti
= 0n
0n
In
I n ti
0n
I n
In
0n
0n
e J i t i
= 0n
0n
0n e J i t i
I n 0n
0n 0n
In
I n ti
0n
I n
In
I n ti 0n
0n
I n 0n
In
0n
0n
0n
I n .
0n
142
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 )
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
yi +1 = dlaoc3( J , f , g , yi , t , c1 , c2 ) .
Entradas: Matriz
J nxn , vector
f n , vector
g n , vector
yi n ,
2 q + j Jt + n 3 flops,
3
3.2
3.3
t = ti +1 ti
yi +1 = dlaoc3( J , f , g , yi , t , c1 , c2 ) (Algoritmo 4.6)
144
( 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
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
145
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 tanto
vopt = V p xopt = V pV p e A v .
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 ,
por lo que
( 4.22 )
Hp
= V pT e AV p .
146
w = dlaexpkry( A,v,p,tol , c1 , c2 ) .
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
147
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 ,
6
7
148
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)
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
( 4.25 )
y (t ) = yi + e J i ( t ) fi d , t [ti , ti +1 ] ,
ti
149
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 ,
J
Ci = i
0 n
In
.
0 n
Demostracin.
yi +1 = yi + F12(i ) (ti ) f i ,
eCi t i ,
con
J
Ci = i
0 n
In
.
0 n
150
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
151
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:
nor = t || J ||
3
4
5
6
X 11 = J ; X 12 = sI n
t
; J = sJ
2j
2 q + 2 j Jt + n 3 flops,
3
152
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)
In
0 n
y
e J i ti
e Ci ti =
0n
F12( i ) (ti )
In
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
J i F12(i ) (ti ) f i = (e J i ti I n ) f i .
153
Salida:
1
2
3
4
5
2 q + j Jt + n 3 flops,
3
3.2
3.3
t = ti +1 ti
y i +1 = dlaoc 2( J , f , y i , t , c1 , c 2 ) (Algoritmo 4.15)
154
( 4.31 )
donde
J
Ci = i
0 n
In
,
0 n
0
vi = nx1 .
fi
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
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
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
4.2.2
V (1 : n,1)
T
01xn
= w(1 : n) V (1 : n,1) = 0 .
0
nx1
4.2.1
4.2.2
V (1 : n, i )
01xn
= w(1 : n)T V (1 : n, i ) .
0 nx1
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
156
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
=|| 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)
157
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)
siendo
( 4.34 )
o
( 4.36 )
Supngase que las segundas derivadas de las funciones de matrices Aij (t ) , para
158
( 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
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 .
159
coeficiente de la EDMR
A22 (t ) mxm , derivadas de las
A11' (t ) nxn , A12' (t ) nxm ,
X 0 mxn .
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 ))
Una forma de resolver la EDMR ( 4.32 ) se basa en el teorema que aparece en este
subapartado.
Lema 4.1 ([Bern05], pgina 422])
e I n A+ B I m = e B e A .
Teorema 4.3.
160
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
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 ,
y (t ) = yi + e J i ( t ) [ f i + g i ( t i )]d .
ti
= t ti ,
entonces
ds = d ,
t = t s ti = s ,
por lo que, aplicando el lema anterior, se tiene que
161
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 .
Fi
,
Bi
y la exponencial de la matriz Ci ,
e
Ci
F11(i ) ( ) F12( i ) ( )
=
.
F22( i ) ( )
0 nxm
( 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 ,
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
( 4.51 )
dF12(i ) ( )
= Ai F12(i ) ( ) + Fi F22( i ) ( ) , F12( i ) (0) = 0 mxn .
d
F12( i ) ( ) = e Ai ( s ) Fi e Bi s ds .
( 4.52 )
0 mxn
I n ,
Bi
Gi
Bi
0 nxn
y la exponencial de la matriz Di ,
e Di
( 4.53 )
(i )
(i )
= 0 nxm
( ) H 23
( ) ,
H 22
0 nxm
0 nxn
H 33(i ) ( )
=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
(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
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
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
dH 13( i ) ( )
= Ai H 13( i ) ( ) + Gi e Bi , H 13( i ) (0) = 0 mxn ,
d
cuya solucin viene dada por
164
( 4.60 )
H ( ) = e Ai ( s ) Gi e Bi s sds .
(i )
13
(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 )
165
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
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
166
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
167
Teorema 4.4.
( 4.63 )
( 4.64 )
( 4.65 )
( 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
J i F12( i ) f i = e J i ti f i f i .
J i F13(i ) gi = F12( i ) gi ti gi .
Si se definen
( 4.69 )
168
( 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 ,
AiW g W g Bi = Wi Gi t i .
169
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 .
Ai X XBi = E a FEb F .
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 .
( 4.75 )
siendo
170
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 .
1
2
3
4
5
6
7
8
9
10
11
Yi +1 = Yi + Qa (F + G )QbT
171
Si las matrices A y B
Yi +1 = Yi + Ft + 0.5G (t ) 2 .
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:
1
2
3
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
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
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
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
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))
174
1
2
3
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
siendo
175
( 4.79 )
( 4.80 )
o bien
( 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
( yi ) = I n Ai BiT I m ,
x
donde
( 4.85 )
y (t ) = yi + F12(i ) (t ti ) f i ,
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 )
176
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:
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
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.
177
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
= 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.
( 4.93 )
Y (t ) = Yi + e Ai ( s ) Fi e Bi ( s ) ds
0
Fi
,
Bi
y la exponencial de la matriz Ci ,
F ( i ) ( ) F12( i ) ( )
e Ci = 11
.
F22( i ) ( )
0 nxm
178
( 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 ,
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
( 4.98 )
( 4.99 )
( ) =
Ai ( s )
Fi e Bi s ds .
179
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:
nor = [ A F ]
3
4
5
6
7
8
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
180
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
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)
Yi +1 = Yi + Wi ,
AiWi Wi Bi = e Ai t i Fi e Bi t i Fi .
Demostracin.
181
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
( 4.104 )
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 )
siendo
Fi = mat mxn ( f i ) .
A partir de ( 4.104 ) y teniendo en cuenta las expresiones ( 4.105 ) y ( 4.106 ), se tiene
182
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:
1
2
3
4
5
6
7
8
F = QaT FQb
F = Ea FEb F
F = dtrsyl ( A, B, F ) (Algoritmo 3.14)
Yi +1 = Yi + Qa FQbT
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)
siendo
J
Ci = i
0 mn
I mn
0 mn
y
0
vi = mnx1 .
fi
184
7
8
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))
185
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)
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
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
189
|| f ( A) B ||1
.
|| f ( A) ||1
|| 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 .
190
g=5
g=6
g=7
g=8
g=9
dgefpohor
0.51
0.513
0.442
191
Te
g=10
g=11
g=12
g=13
g=14
dgefpohor
0.453 0.455
0.51
Te
g=5
g=6
g=7
dgefpohor
g=8
g=9
3.1983 3.1986
3.6336
192
Te
g=10
g=11
g=12
g=13
g=14
dgefpohor
3.6329
4.0723
193
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
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
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
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
dgefrahlu
3.68e-06 1.15e-06
195
Ec
g=5
g=6
g=7
g=8
g=9
dgefrahqr
2.54e-3
dgefrahlu
4.11e-3
2.82e-3
3.63e-03
1.93e-03
3.40e-03
2.12e-03
dgefraplu s=2
dgefraplu s=3
2.89e-4
3.57e-03
1.47e-03
3.59e-03
1.93e-03
dgefraplu s=4
dgefraplu s=5
2.83e-03
1.55e-03
dgefraplu s=6
dgefraplu s=7
1.3e-08
1.3e-08
4.23e-03
1.3e-08
4.85e-07 1e-06
2.69e-4
3.30e-03
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
Te
g=5
g=6
g=7
g=8
g=9
dgefrahqr
dgefrahlu
0.411 0.534
197
Te
g=5
g=6
g=7
g=8
g=9
dgefrahqr
0.934 1.06
1.19
1.32
1.44
dgefrahlu
1.17
1.30
0.813 0.818
0.545 0.549
0.47
0.755
198
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
8
dgefraplu(s=3)
dgefraplu(s=4)
dgefraplu(s=5)
Tiempo (segundos)
Figura 5.4:
9
10
Grado g
11
12
13
14
199
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.
Descomposicin LU
Mtodo de Paterson - Stockmeyer - Van Loan
Descomposicin QR
Clculo de f(A)
Mtodo de Horner Descomposicin LU
Descomposicin QR
Figura 5.5:
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).
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
g=5
g=6
g=7
g=8
g=9
g=10
g=11
g=12
g=13
g=14
Er .177e-12
Ec .252e-13
g=6
g=7
g=8
g=9
g=11
g=12
g=13
g=14
201
g=5
g=6
g=7
g=8
g=9
g=11
g=12
g=13
g=14
Los errores relativos Er y Ec son similares, siendo estos ltimos algo menores.
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.
202
Te
g=5
dgefexhlu
dgefexhqr
1.6
dgefexplu s=2
g=6
g=7
g=8
g=9
1.82 1.96
1.2
1.47
203
Te
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
1.52
1.64
1.64
1.65
1.3
1.43
1.43
1.43
1.45
1.58
1.58
1.59
1.35
1.36
1.36
1.37
1.37
1.51
1.51
1.52
1.53
1.29
1.29
1.42
1.42
1.43
1.49
1.57
1.58
1.59
1.4
1.36
1.41
1.36
1.56
1.51
1.52
1.51
1.64
1.41
1.41
1.42
1.42
1.42
1.57
1.57
1.66
1.58
dgefexplu s=4
dgefexplu s=5
dgefexplu s=6
dgefexplu s=7
dgefexplu s=8
1.29
204
Te
g=5
dgefexhlu
11.2 12
dgefexhqr
dgefexplu s=2
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
dgefexpqr s=6 10
dgefexplu s=6
dgefexplu s=7
11.8 11.8
205
Te
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
12.8
13.5
13.6
14.4
10.2
10.3
11.1
11.2
11.1
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
11.3
11.2
11.3
11.3
9.78
9.79
10.6
10.7
10.6
10.9
11.7
11.8
11.7
10.3
10.2
10.2
10.3
11.1
11.3
11.2
11.3
12.1
10.7
10.7
10.6
10.7
10.6
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
206
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
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
|| B 3 A ||1
|| A ||1
g=6
g=7
g=8
g=9
g=11
g=12
g=13
g=14
208
Te
g=5
g=6
g=7
g=8
g=9
dgefpfplu s=7
dgefpfplu s=8
3.2190 3.2244
g=11
g=12
g=13
g=14
209
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.
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
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
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
211
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
500
1000
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
212
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.
500
1000
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
214
Slice
Defecto
Aire
Figura 5.8:
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
1.45 slice
n0 ( x, y )
(ndices de refraccin),
aire
1
1 slice
( x, y ) =
.
0 aire
( 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 ) ,
Ah
0 0
0
L 0
,
O M
L n
Ah
= Ve i
V 1 ,
Dh
216
siendo
ei
Dh
e i 1 h
0
=
M
i h
L e n
0
e
L
L
O
i 2 h
M
0
0
0
M
Ah
mediante la diagonalizacin
B = zgefereig( A, h) .
Entradas: Matriz A C
nxn
Matriz B = ei
Ah
Salida:
nxn
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
Ah
Ah
zh
217
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
Ah
Matriz B = ei
Ah
nxn
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
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
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
219
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
Figura 5.9:
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).
220
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
221
x' =
x3
, t 0,
2
222
x(0) = 1 .
La solucin de esta EDO es
x(t ) =
1
1+ t
dgeedolpa: q=1.
dgeedolca: q=1.
Er
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
223
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
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
224
Er
t=10
t=20
t=30
t=40
t=50
t=60
t=5
t=10
t=15
t=20
t=25
t=30
8101
6301
8401
10501 12601
t=5
t=10
t=15
t=20
t=25
t=30
225
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
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
dgeedolpa: q=1.
dgeedolca: q=1.
Er
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
F/Fi
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
227
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
t=3
t=6
t=9
t=12
t=15
t=18
228
t=3
t=15
t=18
5858
dgeedolpa 811
4861
dgeedolca 631
3781
Flops
t=6
t=9
t=12
F/Fi
t=6
t=9
t=12
t=15
t=18
2.5
F/Fi
1.5
0.5
10
t
12
14
16
18
r1 r2 + r3
f ( x) =
,
r2 r3 2r4
r2 r3 + 2r5
r5
k2
y1 y5 ,
K
r4 = k 3 y1 y 42 ,
r5 = k 4 y 66 y 20.5 ,
p(CO2 )
Fin = klA
y2 .
H
= 18.7,
= 0.58,
= 0.09,
= 0.42,
K = 34.4,
klA = 3.3,
p (CO2 ) = 3.3
H = 737.
230
dgeedolpa: q=1.
Er
t=0.05
t=0.01
t=0.005
t=0.001
t=0.0005
t=0.1
dgeedobdf 68915
651012
1302056
6510424
13020896
964537
1929081
9645449
19290913
dgeedolka 33832
332848
665698
3328477
6656950
66898
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
231
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
Er
t=10
t=15
t=20
t=25
t=30
t=5
t=10
t=15
t=20
t=25
t=30
998848
232
F/Fi
t=5
t=10
t=15
t=20
t=25
t=30
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
233
1.71 y1 8.75 y2
f ( x) =
280 y6 y8 1.81y7
280 y6 y8 + 1.81y7
dgeedolpa: q=1.
t=0.1
t=0.05
t=0.01
t=0.005
t=0.001
t=0.0005
234
t=0.1
Flops
t=0.05 t=0.01
t=0.005 t=0.001
t=0.0005
1807166
18073278
903502
2320075 3237239
16186679 32373499
dgeedolka 87281
628419
6281415
158617
1256679
9036520
12562747
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
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
235
Er
t=50
t=100
t=150
t=200
t=250
t=300
t=50
dgeedobdf 9039384
t=100
t=150
t=200
t=250
t=300
45198754
54238534
5465055
7670055
9875055
12080055
14285055
t=50
236
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
x' = (t x) 2 + 1 , t 3 ,
con la condicin inicial
x(3) = 2 .
237
1
.
2t
dgeedolpn: q=1.
dgeedolcn: q=1.
t=0.1
t=0.05
t=0.01
t=0.005
t=0.001
t=0.0005
3.806e-16 6.344e-16
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
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
dgeedolpn
1.545e-16
1.545e-16
t=3.5 t=4
t=4.5 t=5
t=5.5 t=6
dgeedobdf 318
638
958
dgeedolpn 166
330
495
660
824
989
dgeedolcn 136
271
406
541
676
811
239
F/Fi
t=3.5
t=4
t=4.5
t=5
t=5.5
t=6
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
240
Problema 5.6: El segundo caso de estudio de una EDO no autnoma ([AsPe91], pgina
153) corresponde a una EDO definida como
dgeedolpn: q=1.
dgeedolcn: q=1.
Er
t=0.05
t=0.01
t=0.005
t=0.001
t=0.0005
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
241
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
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
242
t=5
Er
t=10
t=15
t=20
t=25
t=30
Error
Error
t=10
dgeedobdf 2542
5092
dgeedolpn 1901
3801
5701
7563
9463
11363
dgeedolcn 1351
2701
4051
5374
6724
8074
43510
53860
64210
Flops
t=15
t=20
t=25
t=30
t=5
t=10
t=15
t=20
t=25
t=30
4.989
4.030
3.381
243
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
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
siendo
j =
2( j 1) 3
,
c2
j =
( j 1) 4
,
c2
(t ) =
dgeedolpn: q=1.
t=1.0e-5
t=1.0e-4
dgeedobdf 0.85619
8.5590
74.806
734.80
7333.9
dgeedolpn 0.79621
7.9022
78.901
783.92
7908.3
4.5451
45.468
245
Te/Tei
dgeedolpn 1.08
1.08
0.95
0.94
0.93
dgeedolkn 187.27
188.32
164.65
161.67
161.30
Matriz X mxn
AX + XB = C .
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
246
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)
247
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)
0
0
0
0 1
0 1
0
A11 =
, A12 =
, A21 =
, A22 =
,
100 1
100 0
10 0
10 1
249
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 )
dgedmrlpc: q=1.
dgedmrlcc: q=1.
Er
t=0.05
t=0.01
t=0.005
t=0.001
t=0.0005
dgedmrlcc
dgedmrlkc
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
250
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
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
251
t=5
Er
t=10
t=15
t=20
t=25
t=30
dgedmrlcc
dgedmrlkc
t=5
t=10
t=15
t=20
t=25
t=30
22187 44087
65987
87887
dgedmrlcc
44074 88043
dgedmrlkc
20057 35407
50407
68071
109787 131687
97279
126703
t=5
t=10
t=15
t=20
t=25
t=30
252
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
X (t ) = ( X 0 + I )et ( X 0 I )e t
] [ ( X
1
+ I )et + ( X 0 I )e t ,
dgedmrlpc: q=1.
253
dgedmrlcc: q=1.
Er
t=0.05
t=0.01
t=0.005
t=0.001
t=0.0005
dgedmrlcc
dgedmrlkc
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
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
254
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
Er
t=10
t=15
t=20
t=25
t=30
dgedmrlcc
dgedmrlkc
255
t=5
Flops
t=10
t=15
t=20
t=25
t=30
47605
59505
dgedmrlcc
dgedmrlkc
57214
71514
71405
85814
t=5
t=10
t=15
t=20
t=25
t=30
4.5
4
F/Fi
3.5
3
2.5
2
1.5
1
5
10
15
20
25
30
Er
n=10
n=15
n=20
n=25
n=30
dgedmrlcc
dgedmrlkc
Flops
n=10
n=15
n=20
n=25
n=30
25086
170161 540286
1240461 2375686
4050961
dgedmrlcc
48962
314197 972482
2200817 4176202
7075637
dgedmrlkc
23907
153402 478947
1090542 2078187
3531882
n=5
dgedmrlpc 5.84
5.63
5.60
5.58
5.57
3.23
3.23
3.24
3.24
6.46
6.45
6.45
6.44
257
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
n=500
n=1000
1.2019E-05 1.2019E-05
dgedmrlcc
1.2019E-05 1.2019E-05
dgedmrlkc
1.9543E-05 1.9543E-05
258
Te
n=500
n=1000
73.335 498.42
dgedmrlcc
189.91 3128.5
dgedmrlkc
42.062 350.02
n=500 n=1000
dgedmrlpc 6,12
13,13
dgedmrlcc 2,36
2,09
dgedmrlkc 10,68
18,70
T2k 1
, k 2.
T2k 1
k +1
2
(a 2 + 1)
tanh(t )T2 k ,
dgedmrlpc: q=1.
dgedmrlcc: q=1.
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
dgedmrlcc
dgedmrlkc
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
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
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
Er
t=10
t=15
t=20
t=25
t=30
dgedmrlcc
dgedmrlkc
t=5
t=10
t=15
t=20
t=25
t=30
60092
dgedmrlcc
dgedmrlkc
33703
71942
38953
t=5
t=10
t=15
t=20
t=25
t=30
262
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
Er
n=4
n=8
n=16
n=32
dgedmrlcc
dgedmrlkc
263
n=2
Flops
n=4
n=8
n=16
n=32
2790
23548
273024
3062132
32756918
dgedmrlcc
4940
30462
224468
1646839
13805349
dgedmrlkc
2987
13907
83587
576243
4265235
n=8
n=16
n=32
5.226
4.490
3.800
6.356
8.348
9.016
F/Fi
n=4
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
Er
dgedmrbdc 5.8356e-07
dgedmrlpc
1.9944e-15
dgedmrlcc
9.6766e-15
dgedmrlkc
9.9517e-15
n=512
dgedmrbdc 47870.00
dgedmrlpc
579.98
dgedmrlcc
456.08
dgedmrlkc
136.17
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
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).
1/
, n = m = 1, 1 t 1 .
0
dgedmrlpv: q=1.
dgedmrlcv: q=1.
Er
t=0.05
Error
4.917e-05
dgedmrlcv
4.391e-05 4.988e-05
dgedmrlkv
4.326e-05 4.988e-05
t=0.1 t=0.05
dgedmrbdv 7203
12140
dgedmrlpv
3426
8145
dgedmrlcv
5049
9704
dgedmrlkv
18728
35018
t=0.1 t=0.05
dgedmrlpv 2.102
1.490
dgedmrlcv 1.427
1.251
dgedmrlkv 0.385
0.347
267
Flops(dgedmrbdv)/Flops(dgedmrlpv)
Flops(dgedmrbdv)/Flops(dgedmrlcv)
Flops(dgedmrbdv)/Flops(dgedmrlk v)
F/Fi
1.5
0.5
0.1
0.05
Er
t=10
t=15
t=20
t=25
t=30
dgedmrlcv
dgedmrlkv
t=0.001
268
t=5
Flops
t=10
t=15
t=20
t=25
t=30
dgedmrbdv 767164
2707812
3192812
dgedmrlpv
830433
4563233
5603633
dgedmrlcv
6172989
7391186
dgedmrlkv
t=5
t=10
t=15
t=20
t=25
t=30
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
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/
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.
dgedmrlpv: q=3.
dgedmrlcv: q=1.
270
t=0.1
t=0.05
t=0.01
dgedmrbdv 1.414
1.414
dgedmrlpv
Error
Error
dgedmrlcv
dgedmrlkv
6.283e-08 4.577e-16
Er
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
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
271
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
Er
t=0.2
t=0.3
t=0.4
t=0.5
t=0.6
dgedmrlcv
4.671e-12
dgedmrlkv
272
t=0.1
Flops
t=0.2
t=0.3
t=0.4
t=0.5
t=0.6
dgedmrlcv
dgedmrlkv
F/Fi
t=0.2
t=0.3
t=0.4
t=0.5
t=0.6
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
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
dgedmrlpv: q=2.
dgedmrlcv: q=2.
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
t=0.1
Er
t=0.05
t=0.01
t=0.005
t=0.001
t=0.0005
dgedmrlcv
dgedmrlkv
Flops
t=0.05 t=0.01
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
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
275
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
Er
t=10
t=15
t=20
t=25
t=30
dgedmrlcv
dgedmrlkv
276
t=5
Flops
t=10
t=15
t=20
t=25
t=30
296418
594418
885286
dgedmrlcv
584064
dgedmrlkv
241197
482487
723781
960212
1201523 1442843
t=5
t=10
t=15
t=20
t=25
t=30
F/Fi
3
5
10
15
20
25
30
Er
n=4
n=8
n=16
n=32
n=64
dgedmrlcv
dgedmrlkv
Flops
n=4
n=8
n=16
n=32
n=64
10027 57102
376523
dgedmrlcv
dgedmrlkv
11863 48163
250743
n=2
n=4
n=8
n=16
n=32
n=64
278
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
dgedmrlpv: q=2.
dgedmrlcv: q=3.
n=512
n=1024
5.3723E-05 5.4718E-05
dgedmrlcv
5.2306E-03 5.4516E-03
dgedmrlkv
4.4898E-04 44898E-05
279
Te
n=512
n=1024
194.61 1501.4
dgedmrlcv
2834.5 29099
dgedmrlkv
181.12 1460.3
n=512 n=1024
dgedmrlpc 8.56
43.80
dgedmrlcc 0.59
2.26
dgedmrlkc 9.20
45.03
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).
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
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.
281
283
285
286
287
288
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
290
291
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.
292
293
Apndice A.
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
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
0
Con 0mxn F
mxn
0 L 0
1 L 0
.
M O M
0 L 1
0mxn
en particular, 0 n F
nxn
0
0
=
M
0 L 0
0 L 0
F
M O M
0 L 0
mxn
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
mxn
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.
nxn
,a
nxn
Definicin 6.3.
AF
nxn
donde Ai F
ni xni
, i = 1,2,L, r , siendo
nxn
0
A2
M
0
r
n
i =1
0
L 0
,
O M
L Ar
= n.
o
A = A1 A2 L Ar ,
296
Definicin 6.4.
A = [aij ] F
nxn
Definicin 6.5.
A = [aij ] F
nxn
donde Aij F
ni xn j
A1r
L A2 r
,
O M
L Arr
A12 L
A22
M
0
Definicin 6.6.
A = [aij ] F
nxn
nxn
Definicin 6.8.
A = [aij ] F
nxn
Definicin 6.9.
mxn
nxm
siendo vi F , i = 1,2,L, n .
Definicin 6.10.
nxn
297
AT = A .
Definicin 6.11.
mxn
mxn
mxn
mxn
Definicin 6.13.
Una matriz A C
mxn
Definicin 6.14.
Una matriz A C
nxn
se dice unitaria si
A 1 = A * .
Definicin 6.16.
c2
L cn 1
O M
L cnn11
cnn1
n2
2
n 1
2
1
cn
M F
n 1
cn
cnn 1
nxn
mxn
, al polinomio
n 1
p( ) = det(I n A) = n ck k .
k =0
Definicin 6.18.
298
un vector no nulo x F
que
Definicin 6.19.
nxn
Si A F
nxn
nxn
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
nxn
de manera que
X 1 AX = diag( J 1 , J 2 ,L, J r ) ,
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
Sean A F
nxn
y
n 1
p( ) = n ck k ,
k =0
B=M
0
c0
1 L
0 O
0 L
c1 L cn 2
0
0
M C
1
cn 1
nxn
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
siendo
0
J = n
I n
In
.
0 n
Definicin 6.25
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
F
n
nxn
, entonces
v1 0
0 v
2
diag(v) =
M M
0 0
0
L 0
.
O M
L vn
Si la matriz A = [aij ] F
nxn
nxn
A = LU ,
301
nxn
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
Definicin 6.28.
mxn
y B = [bij ] F
pxq
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.
es una funcin
F
303
3. || x ||=| | || x || , F , x F
4. || x + y |||| x || + || y || , x, y F
Definicin 6.30.
como
|| x || p = p | x1 | p + | x2 | p + L + | xn | p ,
siendo x = [ x1 , x2 , L , xn ]T F
Definicin 6.31.
mxn
es una funcin
F
nxn
mxn
mxn
mxn
Definicin 6.32.
mxn
|| x||v =1
siendo x F
Definicin 6.33.
mxn
|| x|| p =1
siendo x F
mxn
como
Definicin 6.34.
| a
i =1 j =1
ij
mxn
como
|2 .
304
Definicin 6.35.
nxn
relativo a la
cond || || ( A) =|| A || || A 1 || .
vec : F
mxn
mn
mxn
Si A, B F
mxn
, entonces
Si A F
mxn
, BF
nxp
y C F
pxq
, entonces
mn
mxn
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
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.
MATLAB
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 ,
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,
307
Y : matriz con tantas filas como tiempos de salida y tantas columnas como
dimensin del vector y 0 .
no rgido
Runge-Kutta de orden 4 y 5
ode23
no rgido
Runge-Kutta de orden 2 y 3
ode113
no rgido
ode15s
rgido
BDF de rdenes 1 a 5
ode23s
rgido
ode23t
poco rgido
ode23tb rgido
Tabla 6.1:
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) .
Tratamiento del error: RelTol , AbsTol . El test de error est acotado por
err (i ) max( AbsTol , RelTol | x(i ) |) .
Funciones de Matrices
MATLAB posee numerosas funciones de matrices, las cuales se detallan a
continuacin:
308
Funcin exponencial.
Funcin logaritmo.
[ 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).
Funciones en general.
309
@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
311
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
SY: simtrica
312
y = x + y ,
_SCAL
x = x ,
_SWAP
intercambia x e y ,
_COPY
y = x,
_DOT
_NRM2
calcula la 2-norma de x ,
_ROT
_GEMV
y = op( A) x + y .
_TRMV
x = op( A) x
( A triangular).
_GER :
A = xy T + A .
_SYR2 :
A = xy T + yx T + A ( A simtrica).
_TRSV :
x = op( A 1 ) x
( A triangular).
313
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:
_SYRK:
C = AA T + C , C = AT A + C ( C simtrica).
_SYRK2:
C = AB T + BA T + C ( C simtrica).
314
LAPACK
Estructura del LAPACK
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
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.
Rutinas computacionales:
316
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 ,
( 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
|| 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 ,
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 ||
bi
.
aii
318
( A) =
max i | aii |
min i | aii |
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
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
320
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
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
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:
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
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
323
324
Apndice D.
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
Compiladores
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]
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]
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]
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]
333
Bibliografa
[Ward77]
[Whit69]
[Wilk92]
[WiRe71]
[Wonh68]
[Zaca05]
[Zaca05]
334