Existe um algoritmo eficiente para frações contínuas com valor de matriz?

18

Suponha que eu tenha uma equação de matriz definida recursivamente como

A[n] = inverse([1 - b[n]A[n+1]]) * a[n]

Então a equação para A [1] se parece com uma fração contínua, para a qual existem métodos altamente eficientes que evitam o recálculo tedioso (consulte "Receitas numéricas" para alguns exemplos).

No entanto, gostaria de saber se existem métodos análogos que permitem que os coeficientes b [n] e a [n] sejam matrizes, com a única restrição de que b [n] A [n + 1] seja uma matriz quadrada para que a matriz

1 - b[n]A[n+1]

é realmente invertível.

Lagerbaer
fonte
Esta é a pergunta que você fez em math.SE alguns meses antes, não? é quadrado ou retangular? UMA
JM
Lembro-me de que alguém nos comentários de math.SE sugeriu que eu perguntasse isso aqui quando o beta estiver online :) No meu caso especial, A é retangular. As equações recursivas correspondem a um conjunto hierárquico de equações e o número de quantidades cresce com . No meu caso, a dimensão de A [n] é nx (n-1)n
Lagerbaer
Apenas curioso, qual é o aplicativo para o qual você deseja usar isso?
precisa saber é o seguinte
1
Muito resumidamente, a identidade usando de Dyson para um determinado Hamiltonian gera funções de Green que eu pode rotular com um certo índice . A coleta de todas as funções com o mesmo índice em um vetor me permite escrever usando a identidade de Dyson e uma aproximação adequada. Usando um ponto de corte para que para todos os permita-me encontrar as matrizes para que e essas matrizes sejam dadas pela minha equação de estilo de fração contínua. Essa técnica pode, por exemplo, computar as funções de Green da treliça para modelos de ligação rígida. V N V N = α N V N - 1 + β N V N + 1 V N = 0 n N A n V n = A n V n - 1NVNVN=αNVN-1+βNVN+1VN=0 0nNUMAnVn=UMAnVn-1
Lagerbaer
1
Não é minha área de atuação, mas estive um tempo atrás em um seminário em que algo referente a esse problema foi apresentado. [Aqui] [1] é o único vestígio que eu encontrei online. Realmente não sei se isso ajuda. [1]: mh2009.ulb.ac.be/ResActiv.pdf
user189035 4/12/12

Respostas:

9

Os dois métodos a seguir são apresentados em Funções de matrizes: Teoria e computação de Nicholas Higham, na página 81. Essas fórmulas avaliam

X

r(X)=b0 0+uma1Xb1+uma2Xb2++uma2m-1Xb2m-1+uma2mXb2m
onde é uma matriz quadrada.X

Método descendente:

P-1=Eu,Q-1=0 0,P0 0=b0 0Eu,Q0 0=Eu

para j = 1: 2m

Pj=bjPj-1+umajXPj-2

Qj=bjQj-1+umajXQj-2

fim

rm=P2mQ2m-1


Método de baixo para cima:

Y2m=(uma2m/b2m)X

para j = 2m − 1: −1: 1

Resolva para .Y j(bjEu+Yj+1)Yj=umajXYj

fim

rm=b0 0Eu+Y1


A pergunta pede avaliação da forma mais geral

b0 0+uma1X1b1+uma2X2b2++uma2m-1X2m-1b2m-1+uma2mX2mb2m

Isso pode ser avaliado por uma simples generalização das fórmulas acima; por exemplo, o método de baixo para cima se torna

Y2m=(uma2m/b2m)X2m

para j = 2m − 1: −1: 1

Solução para .(bjEu+Yj+1)Yj=umajXjYj

fim

rm=b0 0Eu+Y1 .

David Ketcheson
fonte
Isso parece muito interessante. Vou ver se eu posso aplicá-lo para o meu problema específico, mas que responde à pergunta desde a minha b [n] * A [n + 1] é uma matriz quadrada
Lagerbaer
X
Ok, eu generalizei.
David Ketcheson
6

Eu sei que essa resposta faz muitas suposições, mas pelo menos generaliza seu algoritmo:

{UMAn}{Bn}VN{UMAn}{Bn}vocêVNvocê=ΛNvocêUMAnvocê=ΩnvocêBnvocê=ΔnvocêΛN{Ωn}{Δn}

Uma vez que dissemos decomposição, por indução,

Vn=(Eu-BnVn+1)-1UMAn=(Eu-vocêΔnvocêvocêΛn+1você)-1vocêΩnvocê,

que pode ser reorganizado no formato

Vn=você(Eu-ΔnΛn+1)-1ΩnvocêvocêΛnvocê,

Λn{Vn}ΛnVN

UMAnαnEuBnβnEuVN

Jack Poulson
fonte