Esiste un algoritmo efficiente per le frazioni continue valutate a matrice?


18

Supponiamo di avere un'equazione di matrice definita ricorsivamente come

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

Quindi l'equazione di A [1] sembra simile a una frazione continua, per la quale esistono alcuni metodi altamente efficienti che evitano il noioso ricalcolo (vedere "Ricette numeriche" per alcuni esempi).

Tuttavia, mi chiedo se ci sono metodi analoghi che consentono ai coefficienti b [n] e a [n] di essere matrici, con l'unico vincolo che b [n] A [n + 1] sia una matrice quadrata in modo che la matrice

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

è in realtà invertibile.


Questa è la domanda che hai posto in matematica.SE qualche mese prima, no? È quadrato o rettangolare? A
JM,

Ricordo che qualcuno nei commenti su math.SE mi ha suggerito di chiedere questo una volta che la beta è online :) Nel mio caso speciale, A è rettangolare. Le equazioni ricorsive corrispondono a un insieme gerarchico di equazioni e il numero di quantità cresce con . Nel mio caso, la dimensione di A [n] è nx (n-1)n
Lagerbaer,

Solo curioso, per quale applicazione vuoi utilizzarlo?
Hjulle,

1
In estrema sintesi, l'identità usando di Dyson per un particolare hamiltoniana genera funzioni di Green che posso etichettare con un determinato indice . Raccogliere tutte le funzioni con lo stesso indice in un vettore mi consente di scrivere usando l'identità di Dyson e un'approssimazione adeguata. Usando un cut-off in modo che per tutto mi permetta di trovare le matrici modo che e queste matrici siano date dalla mia equazione di stile a frazione continua. Questa tecnica può, ad esempio, calcolare le funzioni di Green di reticolo per modelli a rilegatura stretta. 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=αNVN1+βNVN+1VN=0nNAnVn=AnVn1
Lagerbaer

1
Non è il mio campo, ma ero qualche tempo fa in un seminario in cui era stato presentato qualcosa di pertinente a questo problema. [Qui] [1] è l'unica traccia che ho potuto trovare online. Davvero non so se sia d'aiuto. [1]: mh2009.ulb.ac.be/ResActiv.pdf
user189035

Risposte:


9

I seguenti due metodi sono riportati in Funzioni delle matrici: Teoria e calcolo di Nicholas Higham, a pagina 81. Queste formule valutano

X

r(X)=b0+a1Xb1+a2Xb2++a2m1Xb2m1+a2mXb2m
dove è una matrice quadrata.X

Metodo top-down:

P1=I,Q1=0,P0=b0I,Q0=I

per j = 1: 2m

Pj=bjPj1+ajXPj2

Qj=bjQj1+ajXQj2

fine

rm=P2mQ2m1


Metodo dal basso:

Y2m=(a2m/b2m)X

per j = 2m − 1: −1: 1

Risolvi per .Y j(bjI+Yj+1)Yj=ajXYj

fine

rm=b0I+Y1


La domanda richiede una valutazione del modulo più generale

b0+a1X1b1+a2X2b2++a2m1X2m1b2m1+a2mX2mb2m

Questo può essere valutato con una semplice generalizzazione delle formule sopra; ad esempio il metodo bottom-up diventa

Y2m=(a2m/b2m)X2m

per j = 2m − 1: −1: 1

Risolvi per .(bjI+Yj+1)Yj=ajXjYj

fine

rm=b0I+Y1 .


Questo sembra molto interessante. Vedrò se posso applicarlo al mio problema specifico ma risponde alla domanda poiché la mia b [n] * A [n + 1] è una matrice quadrata
Lagerbaer,

Ah, ma ho appena notato che la matrice è la stessa ovunque nella tua soluzione, ma la mia non è necessariamente. X
Lagerbaer,

Ok, l'ho generalizzato.
David Ketcheson,

6

So che questa risposta fa molte ipotesi, ma almeno generalizza il tuo algoritmo:

Supponiamo che , e la matrice di seeding, , formino tutti una famiglia di matrici normali, in cui le decomposizioni di autovalori di e sono note a priori , ad esempio , e , dove è unitario e , e sono matrici diagonali a valore complesso.{ B n{An}{Bn}VN{An}{Bn}UVNU=ΛNUAnU=ΩnUBnU=ΔnUΛN{Ωn}{Δn}

Una volta che abbiamo detto decomposizione, per induzione,

Vn=(IBnVn+1)1An=(IUΔnUUΛn+1U)1UΩnU,

che può essere riorganizzato nel modulo

Vn=U(IΔnΛn+1)1ΩnUUΛnU,

dove è ovviamente ancora diagonale, quindi l'intera famiglia sarà necessariamente commutata con gli altri operatori, e abbiamo dimostrato che i valori diagonali di ogni sono disaccoppiati, quindi la tua formula di ricorsione scalare veloce può essere applicata indipendentemente dagli autovalori di e dalle matrici dei coefficienti. { V n } Λ n V NΛn{Vn}ΛnVN

Si noti che un caso speciale è quando e , quindi l'unico requisito è che sia una matrice normale.B nβ n I V NAnαnIBnβnIVN

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.