Matriz exponencial de uma matriz hamiltoniana


10

Sejam matrizes reais, quadradas e densas. e são simétricos. DeixeiA,G,QGQ

H=[AGQAT]

ser uma matriz hamiltoniana. Eu quero calcular o exponencial matriz de . Preciso da exponencial da matriz completa, , não apenas do produto vetor de matriz. Existem algoritmos ou bibliotecas especializadas disponíveis para calcular o exponencial de uma matriz hamiltoniana?e t HHetH


2
Você quer a própria matriz exponencial ou realmente deseja apenas resolver o ODE ? z˙=Hz
Daniel Shapero

Eu preciso do próprio Matrix Exponential. Mas equivalentemente posso resolver a ODE . Z˙=HZ, Z(0)=I
Max Behr

2
A estrutura de Benner que preserva solventes próprios pode lidar com a transformação de similaridade para facilitar a computação exponencial da matriz.
percusse

11
@RichardZhang A maneira brutal é a decomposição de QZ. Verifique, por exemplo, a partir de link.springer.com/article/10.1007/s002110050315 para obter mais detalhes.
percusse

2
O artigo 19 maneiras dúbias de calcular o exponencial de uma matriz, 25 anos depois, aborda muitas maneiras ruins (e algumas boas) de calcular o exponencial da matriz. Não é específico para problemas hamiltonianos, mas é realmente valioso se você estiver trabalhando nesses tipos de problemas.
21718 Daniel Shapero

Respostas:


6

Resposta muito rápida ...

O exponencial de uma matriz hamiltoniana é simplético, uma propriedade que você provavelmente deseja preservar; caso contrário, você simplesmente usaria um método que não preserva a estrutura. De fato, não há vantagem real de velocidade no uso de método estruturado, apenas preservação de estrutura.

Uma maneira possível de resolver seu problema é o seguinte. Primeiro encontre uma matriz simplética tal que é hamiltoniano e bloqueia o triangular superior e possui valores próprios no semiplano esquerdo. Você obtém essa matriz, por exemplo, tomando , em que resolve a equação de Riccati associada a , ou (mais estável por ser ortogonal) reordenando a decomposição de Schur de e aplicando o truque de Laub (ou seja, substituindo o fator Schur unitário porH^=M1HM=[A^G^0A^T]A^[I0XI]XHH[U11U12U21U22][U11U12U12U11] ). Você pode ter problemas para fazê-lo se o Hamiltoniano tiver autovalores no eixo imaginário, mas essa é uma longa história e, por enquanto, vou supor que isso não ocorra no seu problema.

Depois de ter , você tem e pode calcular onde resolve uma certa equação de Lyapunov, acredito que algo como (os sinais podem estar errados; impor e expanda os blocos para obter a equação correta. Consulte "Método Schur-Parlett" para obter uma referência a esse truque).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^)

Então os três fatores são exatamente simpléticos. Apenas use-os separadamente: não calcule o produto ou você perderá essa propriedade numericamente.


11
Atualmente, estou fazendo isso de uma maneira um pouco diferente. Eu uso a solução estabilizadora spd do ARE para configurar a transformação de similaridade para e obter como na sua sugestão. Então deixe a solução do Lyap.eqn e configure uma segunda transf de similaridade. . Aplicando isso a e obtendo , que é diagonal de bloco com e como blocosHH~=[A^G0A^T]XLA^XL+XLA^T=GM2=[IXL0I]H^H^^A^AT^
Max Behr

1

Você pode ter uma opção para usar matrizes hierárquicas ( -matrices) e a funcionalidade correspondente das bibliotecas que as suportam.H

Efetivamente, se todas as matrizes , e são bem e eficientemente representadas no formato -matrix, a matriz Hamiltoniana do bloco é efetivamente uma matriz . A questão sobre a representação de , e na forma hierárquica se resume à sua origem: se alguém puder encontrar estruturas de baixo escalão dentro delas (possíveis permutações de índices de linha / coluna aplicadas), essa abordagem será viável. Um exemplo plausível seria se , eAGQHHHAGQAGQ provêm de uma equação integral que também explica sua estrutura densa e seu potencial de compressão (dependendo do kernel).

O requisito formal para que esse método funcione será se for representável no formato -matrix; no entanto, eu começaria diretamente da construção da representação matriz de , e e esperaria o melhor. H H A G Q(HλI)1HHAGQ

A aplicação de matrices na exponenciação da matriz é bem discutida em:H

Existem várias bibliotecas que suportam matrices. Eu sei que o antigo Lib suportava alguma exponenciação de matriz de formulário e tinha as peças necessárias para criar uma.HHH

Desvantagens dessa abordagem:

  • depende da representação eficiente de , eG QAGQ
  • não tira proveito da estrutura hamiltoniana

Positivos:

  • a representação compactada da matriz exponencial, embora ainda seja uma matriz, não apenas uma maneira de fazer um MVP
  • complexidade logarítmica linear (desde que exista a suposição de baixa patente)
  • a biblioteca pode tirar proveito da transposição e simetria nos blocos
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.