Jawaban yang sangat cepat ...
Eksponensial dari matriks Hamilton adalah symplectic, properti yang mungkin ingin Anda pertahankan, jika tidak, Anda hanya akan menggunakan metode pelestarian non-struktur. Memang, tidak ada keuntungan kecepatan nyata dalam menggunakan metode terstruktur, hanya pelestarian struktur.
Cara yang mungkin untuk menyelesaikan masalah Anda adalah sebagai berikut. Pertama menemukan matriks symplectic sehingga H = M - 1 H M = [ A - G 0 - Sebuah T ] adalah Hamiltonian dan memblokir segitiga atas, dan A memiliki nilai eigen di babak-pesawat kiri. Anda mendapatkan matriks ini misalnya dengan mengambil [ I 0 X I ] , di mana X memecahkan persamaan Riccati yang terkait dengan HH^= M- 1HM.= [ A^0- G^- A^T]SEBUAH^[ SayaX0saya]XH, Atau (lebih stabil karena itu ortogonal) oleh penataan kembali Schur dekomposisi dan menerapkan trik Laub (yaitu, menggantikan faktor Schur kesatuan [ U 11 U 12 U 21 U 22 ] dengan [ U 11 - U 12 U 12 U 11 ] ). Anda mungkin mengalami kesulitan melakukannya jika Hamiltonian memiliki nilai eigen pada sumbu imajiner, tetapi itu adalah cerita yang panjang dan untuk saat ini saya kira itu tidak terjadi pada masalah Anda.H[ U11U21U12U22][ U11U12- U12U11]
Setelah Anda memiliki , Anda memiliki exp ( H ) = M exp ( H ) M - 1 , dan Anda dapat menghitung
exp ( H ) = [ exp ( A ) X 0 exp ( - A T ) ] ,
di mana X memecahkan persamaan Lyapunov tertentu, saya percaya sesuatu seperti A X + X A TM.exp( H) = Mexp( H^) M- 1
exp( H^) = [ exp( A^)0Xexp( - A^T)] ,
X (tanda-tanda mungkin salah; memaksakan
exp ( H ) H = H exp ( H ) dan memperluas blok untuk mendapatkan persamaan yang benar. Cari "metode Schur-Parlett" untuk referensi trik ini).
SEBUAH^X+ XSEBUAH^T= - exp( A^) G^- G^exp( - A^T)
exp( H^) H^= H^exp( H^)
Kemudian ketiga faktor tersebut bersifat simplektik. Cukup gunakan secara terpisah: jangan menghitung produk atau Anda akan kehilangan properti ini secara numerik.