Respuesta muy rápida ...
La exponencial de una matriz hamiltoniana es simpléctica, una propiedad que probablemente desee preservar, de lo contrario simplemente usaría un método que no preserva la estructura. De hecho, no existe una ventaja de velocidad real al usar un método estructurado, solo la preservación de la estructura.
Una posible forma de resolver su problema es la siguiente. En primer lugar encontrar una matriz simpléctica tal que H = M - 1 H M = [ A - G 0 - A T ] es hamiltoniano y bloquear triangular superior, y A tiene valores propios en el semiplano de la izquierda. Obtiene esta matriz, por ejemplo, tomando [ I 0 X I ] , donde X resuelve la ecuación de Riccati asociada a HH^=M−1HM=[A^0−G^−A^T]A^[IX0I]XH, o (más estable ya que es ortogonal) reordenando la descomposición de Schur de y aplicando el truco de Laub (es decir, reemplazando el factor de Schur unitario [ U 11 U 12 U 21 U 22 ] con [ U 11 - U 12 U 12 U 11 ] ). Es posible que tenga problemas para hacerlo si el Hamiltoniano tiene valores propios en el eje imaginario, pero esa es una larga historia y por ahora supongo que no sucede en su problema.H[U11U21U12U22][U11U12−U12U11]
Mexp(H)=Mexp(H^)M−1
exp(H^)=[exp(A^)0Xexp(−A^T)],
XA^X+XA^T=−exp(A^)G^−G^exp(−A^T)
exp(H^)H^=H^exp(H^)
Entonces los tres factores son exactamente simplécticos. Simplemente utilícelos por separado: no calcule el producto o perderá esta propiedad numéricamente.