Matrice esponenziale di una matrice hamiltoniana


10

Siano matrici reali, quadrate, dense. e sono simmetrici. PermettereA,G,QGQ

H=[AGQAT]

essere una matrice hamiltoniana. Voglio calcolare l'esponenziale della matrice di . Ho bisogno dell'esponenziale matrice completa, , non solo del prodotto matrice-vettore. Ci sono algoritmi o librerie specializzati disponibili per calcolare l'esponenziale di una matrice hamiltoniana?HetH


2
Vuoi l'esponenziale della matrice stessa o vuoi davvero risolvere l'ODE ? z˙=Hz
Daniel Shapero,

Ho bisogno della matrice esponenziale stessa. Ma equivalentemente posso risolvere l'ODE . Z˙=HZ, Z(0)=I
Max Behr,

2
La struttura di Benner che preserva gli eigensolvers può gestire la trasformazione della somiglianza per facilitare il calcolo esponenziale della matrice.
Percusse

1
@RichardZhang Il modo brutale è la decomposizione QZ. Controllare ad esempio a partire da link.springer.com/article/10.1007/s002110050315 per maggiori dettagli.
Percusse

2
L'articolo 25 Dubious Ways to Compute the Exponential of a Matrix, 25 Years Later copre molti modi cattivi (e alcuni buoni) per calcolare l'esponenziale della matrice. Non è specifico per i problemi di Hamilton, ma è comunque prezioso se stai lavorando su questo tipo di problemi.
Daniel Shapero,

Risposte:


6

Risposta molto rapida ...

L'esponenziale di una matrice hamiltoniana è semplice, una proprietà che probabilmente vorresti preservare, altrimenti utilizzeresti semplicemente un metodo che non preserva la struttura. In effetti, non esiste un reale vantaggio di velocità nell'uso del metodo strutturato, ma solo della conservazione della struttura.

Un possibile modo per risolvere il tuo problema è il seguente. Per prima cosa trova una matrice simplettica tale che è hamiltoniano e blocca triangolare superiore e ha autovalori nel semipiano di sinistra. Ottieni questa matrice ad esempio prendendo , dove risolve l'equazione di Riccati associata a , o (più stabile poiché è ortogonale) riordinando la decomposizione di Schur di e applicare il trucco di Laub (ovvero sostituire il fattore Schur unitario con A [ I 0 X I ]H^=M1HM=[A^G^0A^T]A^[I0XI]XHH[U11U12U21U22][U11U12U12U11] ). Potresti avere difficoltà a farlo se l'hamiltoniano ha autovalori sull'asse immaginario, ma questa è una lunga storia e per ora suppongo che non accada nel tuo problema.

Una volta che hai , hai e puoi calcolare dove risolve una certa equazione di Lyapunov, credo che qualcosa come (i segni possono essere sbagliati; imporre ed espandi i blocchi per ottenere l'equazione corretta. Cerca "Metodo Schur-Parlett" per un riferimento a questo trucco).Mexp(H)=Mexp(H^)M1

exp(H^)=[exp(A^)X0exp(A^T)],
X
A^X+XA^T=exp(A^)G^G^exp(A^T)
exp(H^)H^=H^exp(H^)

Quindi i tre fattori sono esattamente simplettici. Utilizzali solo separatamente: non calcolare il prodotto o perderai numericamente questa proprietà.


1
Attualmente lo sto facendo in un modo leggermente diverso. Uso la soluzione spd stabilizzante di ARE per impostare la trasformazione di similiarità per e ottenere come nel tuo suggerimento. Quindi lascia che la soluzione di Lyap.eqn e imposta un secondo trasferimento di somiglianza. . Applicandolo a e ottenendo , che è una diagonale a blocchi con e come blocchiHH~=[A^G0A^T]XLA^XL+XLA^T=GM2=[IXL0I]H^H^^A^AT^
Max Behr,

1

Potresti avere un'opzione per usare le matrici gerarchiche ( -matrices) e la corrispondente funzionalità delle librerie che le supportano.H

In effetti, se ogni matrice , e sono ben ed efficacemente rappresentate in formato matrice matematica , allora il blocco matrice hamiltoniana è effettivamente un blocco matrice matematica. La domanda sulla rappresentazione di , e nella forma gerarchica giunge alla loro origine: se si possono trovare strutture di basso rango al loro interno (possibili permutazioni di indici di riga / col), allora questo approccio è praticabile. Un esempio plausibile sarebbe se , eG Q H H H A G Q A G QAGQHHHAGQAGQ provengono da un'equazione integrale che spiegherà anche la loro struttura densa e il potenziale di compressione (a seconda del kernel).

Il requisito formale per far funzionare questo metodo sarà se è rappresentabile in formato -matrix; tuttavia, inizierei direttamente dalla costruzione della rappresentazione della matrice matematica di , e e spero per il meglio. H H A G Q(HλI)1HHAGQ

L'applicazione delle matrici alla matrice esponenziale è ben discussa in:H

Esistono diverse librerie che supportano le matrici matematiche. So che la vecchia Lib supportava qualche esponenziale di matrice di forma e aveva i pezzi necessari per costruirne una.HHH

Svantaggi di questo approccio:

  • si affida alla rappresentazione efficiente di , eG QAGQ
  • non sfrutta la struttura hamiltoniana

Positivi:

  • la rappresentazione compressa della matrice esponenziale, sebbene sia ancora una matrice, non solo un modo per fare un MVP
  • complessità logaritmica lineare (purché ci sia l'assunto di basso rango)
  • la biblioteca potrebbe trarre vantaggio dalla trasposizione e dalla simmetria nei blocchi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.