Calcolo del polinomio caratteristico della matrice sparsa reale


9

Data una matrice sparsa generica con m << n (correzione: ) elementi diversi da zero (in genere ). è generico nel senso che non ha proprietà specifiche (ad es. La positività positiva) e non si assume alcuna struttura (ad es. La banda).UNRn×nm«n2mO(n)UN

Quali sono alcuni dei buoni metodi numerici per calcolare il polinomio caratteristico o il polinomio minimo di ?UN


3
Sembra che tu voglia calcolare tutti gli autovalori. Perché vuoi il polinomio e come lo vuoi esprimere? La base monomiale è estremamente mal condizionata, quindi i coefficienti probabilmente non possono essere calcolati stabilmente in aritmetica di precisione finita.
Jed Brown,

@JedBrown più di una contemplazione. Nella mia risposta a questa domanda ho dato un metodo algebrico per invertire una matrice, che è ben nota nell'algebra del computer (ad esempio matrici su anelli e campi commutativi). Voglio sapere se potrei usarlo per matrici numeriche. Si noti che, per questa domanda, sono interessato a metodi numerici per trovare il polinomio caratteristico / minimo piuttosto che inverso.

Risposte:


1

Se la complessità non è un tappo, allora potresti voler esaminare il metodo Danilevskii. È abbastanza noto nella letteratura russa sull'algebra lineare numerica, ma non ci sono molte informazioni in inglese. Puoi iniziare da questo link .O(n3)

L'idea è piuttosto semplice: la matrice viene gradualmente ridotta alla forma normale di Frobenius da trasformazioni di somiglianza simili all'eliminazione gaussiana. Se non trovi le informazioni, posso rendere l'algoritmo più elaborato.


1

È possibile utilizzare un metodo numerico come QR Factorization o Power Method e i suoi realtives (potenza inversa ecc.) Per calcolare gli autovalori della matrice generica. Successivamente, puoi calcolare il tuo polinomio caratteristico per fattorizzazione come: (λ-λ1) (λ-λ2) ... (λ-λn) = 0 dove λi sono gli autovalori calcolati. Ecco una breve presentazione sui metodi di alimentazione e QR:

QR-Power


0

m«O(n2)m«O(n)nO(m)


m«n2,mO(n)
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.