Problema dei minimi quadrati con equazioni normali e Cholesk
Salve a tutti avrei da implementare in Matlab il seguente problema:
Assegnato il problema lineare ai minimi quadrati
$min_{k in RR^n} || Ax-b|| $ , $ A in RR^(m*n) $ , $ b in RR^m $
scrivere un sottoprogramma Matlab per il calcolo della sua soluzione. Si usi
il metodo delle equazioni normali. Per il sistema lineare associato usare (ed
implementare) il metodo di Choleski.
La mia idea è :
Devo ricercare x che è la soluzione del problema lineare ai minimi quadrati
Il metodo delle equazioni normali mi dice che i punti di minimo sono tutte e sole le soluzioni del sistema : $A^T*x = A^T*b $
Come indicato dal testo devo utilizzare Cholesky per verificare che $ A^T*A $ di dimensione nXn è simmetrica e definita positiva. Ora qui mi sono bloccata. Una volta che so che la matrice è simmetrica e definita positiva cosa faccio per concludere il problema??
Grazie
Assegnato il problema lineare ai minimi quadrati
$min_{k in RR^n} || Ax-b|| $ , $ A in RR^(m*n) $ , $ b in RR^m $
scrivere un sottoprogramma Matlab per il calcolo della sua soluzione. Si usi
il metodo delle equazioni normali. Per il sistema lineare associato usare (ed
implementare) il metodo di Choleski.
La mia idea è :
Devo ricercare x che è la soluzione del problema lineare ai minimi quadrati
Il metodo delle equazioni normali mi dice che i punti di minimo sono tutte e sole le soluzioni del sistema : $A^T*x = A^T*b $
Come indicato dal testo devo utilizzare Cholesky per verificare che $ A^T*A $ di dimensione nXn è simmetrica e definita positiva. Ora qui mi sono bloccata. Una volta che so che la matrice è simmetrica e definita positiva cosa faccio per concludere il problema??
Grazie
Risposte
Secondo me devi verificare che la matrice $A^TA$ sia simmetrica e definita positiva usando l'algebra lineare, e in seguito con questa ipotesi puoi risolvere il sistema applicando il metodo di Choleski. Ora devi scrivere qualche riga di codice che implementa il metodo e restituisce $x$
Il metodo delle equazioni normali non dice che $A^T x = A^T b$ ma che $A^T A x = A^T b$.
La matrice $A^T A$ è per forza definita positiva se $A$ non è singolare, perché $x^T (A^T A) x = (x^T A^T) (A x) > 0$ per $x \ne 0$.
Il fatto che $A^T A$ sia definita positiva ti consente di usare il metodo di Choleski.
La matrice $A^T A$ è per forza definita positiva se $A$ non è singolare, perché $x^T (A^T A) x = (x^T A^T) (A x) > 0$ per $x \ne 0$.
Il fatto che $A^T A$ sia definita positiva ti consente di usare il metodo di Choleski.
Quindi il sistema delle equazioni normali $ A^T*A*x = A^T*b $ essendo simmetrico e definito positivo si può risolvere tramite la fattorizzazione di Cholesky della matrice $A^T*A = L^T*L$ da cui:
$ A^T*A*x = A^T*b hArr L(L^T*x) = A^T*b hArr {(Ly=A^Tb rArr sost. avanti ),(L^Tx=y rArr sost. indietro):}$
Giusto??
$ A^T*A*x = A^T*b hArr L(L^T*x) = A^T*b hArr {(Ly=A^Tb rArr sost. avanti ),(L^Tx=y rArr sost. indietro):}$
Giusto??
Sì, a parte che 'in' ti è diventato $in$
