La funzione linalg lstsq di python

La funzione linalg.lstsq mi permette di trovare le soluzioni dei sistemi di equazioni non quadrati, quelli con un numero diverso di incognite e di incognite. E' una funzione di algebra lineare della libreria numpy.

linalg.lstsq(x,b)

Il primo argomento (x) è la matrice dei coefficienti del sistema di equazioni.

Il secondo argomento (b) è il vettore dei termine noti.

esempio di sistema lineare a matrice

Nota. L'equazione può essere sovra o sottodeterminata. La funzione risolve l'equazione ax=b by elaborando un vettore che minimizza la norma euclidea ||b-ax||^2. Calcola i minimi quadrati di un sistema di equazioni a matrice lineare.

    Un esempio pratico

    Come prima cosa, importo in memoria il modulo numpy.

    import numpy as np

    Poi prendo un sistema di equazioni con due equazioni e tre incognite.

    E' un sistema di equazione non quadrato che non potrebbe essere risolto con la funzione linalg.solve.

    $$ \begin{cases} 2x+y=3 \\ x+5y+2z=1 \end{cases} $$

    Definisco la matrice dei coefficienti e il vettore dei termini noti tramite la funzione array().

    Li assegno rispettivamente alla variabile a e b.

    a=np.array([[2,1,0],[1,5,2]])
    b=np.array([3,1])

    Per trovare le soluzioni del sistema di equazioni uso la funzione linalg.lstsq().

    np.linalg.lstsq(a,b)

    Il risultato della funzione è il seguente:

    (array([ 1.48514851, 0.02970297, -0.31683168]), array([], dtype=float64), 2, array([5.64150235, 1.78141832]))

    La funzione restituisce la lista con le soluzioni delle incognite del sistema.

    $$ \begin{pmatrix} x=1.485 \\ y=0.029 \\ z=-0.316 \end{pmatrix} $$

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Numpy

    I metodi e le funzioni