Câu trả lời rất nhanh ...
Số mũ của ma trận Hamilton là symplectic, một thuộc tính mà bạn có thể muốn bảo tồn, nếu không, bạn chỉ cần sử dụng một phương pháp không bảo tồn cấu trúc. Thật vậy, không có lợi thế tốc độ thực sự trong việc sử dụng phương pháp có cấu trúc, chỉ bảo toàn cấu trúc.
Một cách có thể để giải quyết vấn đề của bạn là sau đây. Đầu tiên tìm thấy một ma trận symplectic mà H = M - 1 H M = [ A - G 0 - Một T ] là Hamilton và chặn hình tam giác trên, và A có giá trị riêng trong trái nửa mặt phẳng. Ví dụ, bạn lấy ma trận này bằng cách lấy [ I 0 X I ] , trong đó X giải phương trình Riccati liên quan đến HH^= M- 1HM= [ A^0- G^- A^T]Một^[ TôiX0Tôi]XHhoặc (ổn định hơn vì nó trực giao) bằng cách sắp xếp lại phân tách Schur của và áp dụng thủ thuật Laub (nghĩa là thay thế hệ số Schur đơn nhất [ U 11 U 12 U 21 U 22 ] bằng [ U 11 - U 12 U 12 U 11 ] ). Bạn có thể gặp khó khăn khi làm điều đó nếu Hamilton có giá trị riêng trên trục tưởng tượng, nhưng đó là một câu chuyện dài và bây giờ tôi sẽ cho rằng nó không xảy ra trong vấn đề của bạn.H[ U11Bạn21Bạn12Bạn22][ U11Bạn12- U12Bạn11]
Một khi bạn có , bạn có exp ( H ) = M exp ( H ) M - 1 , và bạn có thể tính
exp ( H ) = [ exp ( A ) X 0 exp ( - Một T ) ] ,
nơi X giải quyết một phương trình Lyapunov nhất định, tôi tin rằng một cái gì đó giống như một X + X một TMđiểm kinh nghiệm( H) = Mđiểm kinh nghiệm( H^) M- 1
điểm kinh nghiệm( H^) = [ điểm kinh nghiệm( Một^)0Xđiểm kinh nghiệm( - A^T)] ,
X (dấu hiệu có thể sai; áp đặt
exp ( H ) H = H exp ( H ) và mở rộng khối để có được phương trình chính xác. Tra cứu "Phương pháp Schur-Parlett" để tham khảo về thủ thuật này).
Một^X+ XMột^T= - điểm kinh nghiệm( Một^) G^- G^điểm kinh nghiệm( - A^T)
điểm kinh nghiệm( H^) H^= H^điểm kinh nghiệm( H^)
Sau đó, ba yếu tố là chính xác symplectic. Chỉ cần sử dụng chúng một cách riêng biệt: không tính toán sản phẩm hoặc bạn sẽ mất tài sản này bằng số.