Molteplicità algebrica e molteplicità geometrica

La molteciplità algebrica di un autovalore definisce quante volte l'autovalore annulla il polinomio caratteristico. La molteplicità geometrica di \(\lambda_0\) indica la dimensione dell'autospazio relativo all'autovalore \(\lambda_0\) (cardinalità della base estratta come indicato nella sezione "Autovalori e autovettori di una matrice"). Con \(n\) = ordine della matrice quadrata, si indica con \(n-rk(A-\lambda_0Id_n)\)

\(1 \le molt. geometrica \le molt. algebrica \le n\) Quindi se la molteplicità algebrica è = 1 allora si sa già che quella geometrica è 1.

Funzione riassumibile ed esempi

def autovaloriMolteplicita(A):
    dimensione = A.shape[1]
    eigenvals = A.eigenvals()
    autovalori = list(eigenvals.keys())
    molt_algebriche = list(eigenvals.values())
    print("autovalori", autovalori)

    basi_autospazi = []
    molt_geometriche = []

    """ Ricerva autospazi-autovettori-molt geometriche """
    for l in autovalori:
        """Definizione incognite"""
        incognite = {}
        for i in range(dimensione):
            incognite["_"+str(i)] = sp.symbols("_"+str(i))

        """matrice identit su autovalore"""
        l1Id3 = sp.eye(dimensione)*l
        print("matrice identit autovalore", l1Id3)

        """Vettore colonna incognite"""
        v = sp.Matrix()
        for i in range(dimensione):
            v = v.row_insert(i, sp.Matrix([[incognite["_"+str(i)]]]))

        matl1 = (A-l1Id3)*v

        """sistema e base da sistema"""
        sistema = []
        for i in range(dimensione):
            sistema.append(matl1.row(i)[0])
        base = baseDaSpazioSoluzioniSistema(sistema, list(incognite.values()))
        basi_autospazi.append(base)
        molt_geometriche.append(base.shape[0])

    return {
        "autovalori": autovalori,
        "molteplicitaAlgebriche": molt_algebriche,
        "basiAutospazi": basi_autospazi,
        "molteplicitaGeometriche": molt_geometriche
    }

Esempio 1

\(A = \begin{bmatrix}0&1&0\\1&0&0\\0&0&1\end{bmatrix}\)

Attendo \(\lambda_0 = 1\) e \(\lambda_1=-1\) con rispettive molteplicità algebriche:

\(m_a(1)=2\) e \(m_a(-1)=1\)

e geometriche:

\(m_g(1)=2\) e \(m_g(-1)=1\)

A =  sp.Matrix(([0,1,0], [1,0,0], [0,0,1]))
res = autovaloriMolteplicita(A)
pprint.pprint(res)

{'autovalori': [-1, 1], 'basiAutospazi': [Matrix([[1, -1, 0]]), Matrix([ [1, 1, 0], [0, 0, 1]])], 'molteplicitaAlgebriche': [1, 2], 'molteplicitaGeometriche': [1, 2]}

Come da esercizio.

Riferimenti

  • https://www.youmath.it/lezioni/algebra-lineare/matrici-e-vettori/1580-molteplicita-algebrica-e-geometrica-di-un-autovalore.html