Norma 2 di matrice

vicio_93
Salve ragazzi, vorrei sapere se c'è un modo più comodo di calcolare la norma 2 di matrice magari sfruttando qualche proprietà visto che è abbastanza scomodo calcolare gli autovalori dall'equazione caratteristica. Se la matrice è quadrata gli autovalori della matrice e della simmetrica sono gli stessi da qui non si può sfruttare qualche proprietà sugli autovlori della matrice prodotto? Grazieee :D :D

Risposte
Raptorista1

vicio_93
Per calcolarmi la norma 2 non devo calcolare gli autovalori della matrice A*At??

Raptorista1
La pagina wiki dice che devi calcolare la traccia di \(A^t A\), giusto?

vicio_93
Ah quindi nel caso della norma 2 il raggio spettrale di At*A equivale alla traccia sempre di At*A, senza relativo calcolo di autovalori?

Raptorista1
Fai uno sforzo così grande ad aprire il collegamento che ti ho segnalato due messaggi fa?

vicio_93
L'avevo aperta. Il mio messaggio era per avere una conferma..

vict85
Il metodo più rapido per calcolarla è fare la somma dei quadrato di tutti gli elementi della matrice e poi farne la radice quadrata. La scrittura con la trasposta ha una sua utilità ma non nel fare i calcoli. Tieni conto che fare il calcolo della matrice è una operazione \(O(n^3)\) e la traccia è \(O(n)\) quindi faresti \(O(n^3)\) calcoli invece dei \(O(n^2)\) necessari. Se preferisci puoi anche fare \(n\) prodotti scalari e sommarli tra di loro (ma è sostanzialmente la stessa cosa di sommare i quadrati degli elementi. Ovviamente la somma dei quadrati non è particolarmente robusta, quindi se sai di poter avere a che fare con una matrice con elementi molto grandi oppure molto piccoli dovresti tenerne conto nell'implementazione dell'algoritmo.

vicio_93
Grazie per la risposta. Effettivamente è la via più rapida. Ma quella che stai calcolando tu non è la norma F(Frobenius)? Da wiki vedo che comunque è equivalente alla norma 2, ma nella pratica vedo che i valori che assumono sono leggermente differenti. Come mai?

vict85
Semplicemente perché ho confuso le due norme. Comunque nota che devi trovare l'autovalore più grande in valore assoluto, non hai bisogno di calcolarli tutti. Immagino che esistano metodi iterativi per farlo. A livello pratico è probabilmente sufficiente considerare altre norme.

Raptorista1
Mi sembra il caso di mettere un po' di ordine in questa discussione.
  • Wikipedia riporta erroneamente che la norma di Frobenius e la norma 2 sono la stessa norma, questo ci aveva imbrogliato inizialmente e adesso vedo se riesco a correggerlo. [Edit: questo non è vero, è solo scritto male e può ingannare ad una lettura rapida, vedi prossimo messaggio].
  • Per il calcolo della norma 2, vict dice correttamente che ci sono metodi numerici apposta per il calcolo di un autovalore specifico di una matrice, come il metodo delle potenze.

  • Sul resto, un commento sull'analisi di complessità computazionale di vict: essa assume che il calcolo di \(tr(A^t A)\) implichi il calcolo di \(A^t A\), mentre è richiesto solo il calcolo degli elementi diagonali di \(A^t A\), che successivamente verranno sommati. Con questa accortezza il calcolo effettivo si riduce alla formula che coinvolge la somma dei quadrati degli elementi della matrice.

    Raptorista1
    Mi sto accorgendo che c'è un po' di confusione sull'argomento, vediamo se riesco a fare un punto chiaro della situazione; Wiki non sbaglia, ma non fa chiarezza su un'ambiguità di notazione che ora cerco di esplicitare.

    Da una parte ci sono le norme matriciali indotte, cioè le norme ottenute considerando le matrici come operatori lineari e definite da
    \[
    ||A|| = \sup_{x \ne 0} \frac{||Ax||}{||x||};
    \]
    in particolare, quindi, queste norme sono definite dalla norma vettoriale corrispondente ignorando la rappresentazione della matrice come "tabella di numeri".
    Nel caso particolare in cui sono indotte da una norma \(p\) vettoriale, queste sono definite anche "norme \(p\) indotte" e sono definite come
    \[
    ||A||_p = \sup_{x \ne 0} \frac{||Ax||_p}{||x||_p}.
    \]
    In questo caso, la norma-2 rispetta la relazione col raggio spettrale
    \[
    ||A||_2 = \rho(A)
    \]

    Definizione indipendente è quella delle norme matriciali \(p\) per componente, cioè
    \[
    ||A||_p = \left( \sum_j \sum_i |a_{ij}|^p \right)^{\frac{1}{p}}
    \]
    che sfortunatamente sono indicate con lo stesso simbolo. Inizialmente io [e credo anche vict] pensavamo a questa come "norma-2" in questione ed abbiamo scritto di conseguenza.
    Per questo secondo caso si ha che la norma 2 è equivalente alla norma di Frobenius e vale quello che ho scritto sopra.

    Rispondi
    Per rispondere a questa discussione devi prima effettuare il login.