AD

Matrice con elementi sulla diagonale con NumPy in Python

In questa pagina, esploreremo come generare una matrice con elementi sulla diagonale utilizzando NumPy in Python, fornendo esempi pratici e dettagli operativi per sfruttare al meglio le capacità della libreria.

Cos'è una matrice diagonale?

Una matrice diagonale è una matrice quadrata in cui tutti gli elementi al di fuori della diagonale principale sono zero. La diagonale principale è composta dagli elementi che vanno dall'angolo superiore sinistro all'angolo inferiore destro della matrice. Ad esempio, una matrice diagonale 3x3 può apparire così:

\(D = \begin{pmatrix} d_1 & 0 & 0\\ 0 & d_2 & 0 \\ 0 & 0 & d_3 \end{pmatrix}\)

Qui, d1, d2, e d3 sono gli elementi sulla diagonale principale. Le matrici diagonali sono utili perché semplificano molte operazioni matematiche, come la moltiplicazione e l'inversione.

Creazione di matrici diagonali con NumPy

Il metodo più diretto per creare una matrice con elementi specifici sulla diagonale in NumPy è utilizzare la funzione numpy.diag().

import numpy as np matrice_diagonale = np.diag(v)

dove v è un array o una lista di valori che saranno posizionati sulla diagonale principale della matrice.

Se si fornisce un array monodimensionale, NumPy creerà una matrice quadrata in cui gli elementi dell'array vengono posizionati sulla diagonale.

import numpy as np v = [4, 5, 6] matrice_diagonale = np.diag(v) print(matrice_diagonale)

In questo esempio, abbiamo creato una matrice diagonale 3x3 con gli elementi 4, 5 e 6 sulla diagonale principale. Tutti gli altri elementi della matrice sono zero.

Creazione di matrici con diagonali spostate

La funzione numpy.diag() può essere utilizzata anche per posizionare gli elementi su una diagonale diversa da quella principale. Questo può essere fatto utilizzando il parametro k.

import numpy as np v = [4, 5, 6] matrice_diagonale = np.diag(v, k=1) print(matrice_diagonale)

In questo caso, gli elementi 4, 5 e 6 sono posizionati sulla diagonale subito sopra quella principale (k=1), creando una matrice 4x4 con zeri altrove.

Creazione di matrici diagonali con numpy.eye()

Un'altra funzione utile in NumPy per creare matrici diagonali, anche se meno flessibile di diag(), è numpy.eye(). Questa funzione è principalmente utilizzata per creare matrici identità, ma può essere personalizzata per inserire 1 su una qualsiasi diagonale.

import numpy as np matrice_eye = np.eye(N, M=None, k=0, dtype=float)