Invertire una matrice di bande


9

Ho una matrice di bande : una rada, quadrata, simmetricaN×N matrice la cui struttura è simile alla seguente:

matrice di bande

Qui, l'area sotto le strisce blu sono gli elementi diversi da zero; tutto il resto è zero

Esiste un algoritmo per invertire questo tipo di matrice che è semplice ma più efficiente dell'eliminazione gaussiana e della decomposizione LU?


3
Quelle matrici sono chiamate matrici di bande (e per quanto ne so, erano la motivazione originale per trovare la larghezza di banda di un grafico ), e forse questo documento potrebbe essere un utile punto di partenza.
G. Bach,

@ G.Bach Grazie, darò un'occhiata al documento. Potresti dirmi la complessità computazionale del metodo?
rnels12,

Scusate, non lo so, ho cercato su Google per un minuto o due ma dall'astratto sembrava un inizio promettente.
G. Bach,

2
Vuoi invertirlo o vuoi risolvere il sistema lineare? La risposta è probabilmente quest'ultima, perché l'inverso di una matrice di bande è generalmente denso. Domanda aggiuntiva: c'è più struttura da sfruttare?
Pseudonimo,

2
OK. Il motivo per cui chiedo è che nella maggior parte dei casi le persone che pensano di voler invertire una matrice probabilmente non lo fanno. Ad ogni modo, è una buona domanda!
Pseudonimo il

Risposte:


5

Poiché nessuno dei commenti ha dato la risposta concreta, la scriverò esplicitamente qui nel caso qualcuno ne avesse bisogno (come ho fatto io).

In primo luogo, sfortunatamente, l'inverso di una matrice limitata in banda è una matrice completa (non limitata in banda) in generale, quindi sarebbe sufficiente compilare le voci della matrice inversa Ω(n2). Quindi suppongo che tu voglia solo risolvere un sistema lineareUNX=B.

Usando l'algoritmo in questo documento , una matrice generale limitata in bandaUN di dimensioni n×n con larghezza di banda K può essere scomposto in triangolare Kmatrici a larghezza di banda L e U in O(K2n)tempo. Da li,LUX=B può essere risolto rapidamente in O(Kn)tempo. Quindi, nel complesso, il tempo di esecuzione saràO(K2n). Come seguito, seK è costante, ciò significa che il sistema può essere risolto in tempo lineare (molto utile).

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.