I minimi quadrati lineari possono essere risolti da
0) Utilizzo del solutore dei minimi quadrati lineari di alta qualità, basato su SVD o QR, come descritto di seguito, per minimi quadrati lineari non vincolati, o basato su una versione di Programmazione quadratica o ottimizzazione conica per minimi quadrati rilegati o vincolati linearmente, come descritto di seguito. Un tale risolutore è pre-inscatolato, pesantemente testato e pronto all'uso: usalo.
1) SVD, che è il metodo più affidabile e numericamente accurato, ma richiede anche più elaborazione rispetto alle alternative. In MATLAB, la soluzione SVD del problema dei minimi quadrati lineari non vincolati A * X = b è pinv (A) * b, che è molto accurata e affidabile.
2) QR, che è abbastanza affidabile e numericamente preciso, ma non tanto quanto SVD, ed è più veloce di SVD. In MATLAB, la soluzione QR del problema dei minimi quadrati lineari non vincolati A * X = b è A \ b, che è abbastanza accurata e affidabile, tranne quando A è mal condizionata, cioè ha un numero di condizione elevato. A \ b è più veloce da calcolare rispetto a pinv (A) * b, ma non altrettanto affidabile o preciso.
3) Formare le equazioni normali (TERRIBILE dal punto di vista dell'affidabilità e dell'accuratezza numerica, perché quadra il numero della condizione, il che è una cosa molto brutta da fare) e
3a) risoluzione mediante fattorizzazione di Cholesky (non buona)
3b) invertendo esplicitamente la matrice (ORRIBILE)
4) Risoluzione come problema di programmazione quadratica o problema del cono del secondo ordine
4a) Risolvere utilizzando un software di programmazione quadratica di alta qualità. Questo è affidabile e numericamente preciso, ma richiede più tempo di SVD o QR. Tuttavia, è facile aggiungere vincoli lineari vincolati o generali, o penalità lineari o quadratici (due norme) o termini di regolarizzazione alla funzione obiettivo, e ancora risolvere il problema utilizzando il software di programmazione quadratica.
4b) Risolvi il problema del cono del secondo ordine utilizzando un software di ottimizzazione conica di alta qualità. Le osservazioni sono le stesse del software di programmazione quadratica, ma è anche possibile aggiungere vincoli lineari vincolati o generali e altri vincoli conici o termini di funzione oggettiva, come termini di penalità o di regolarizzazione in varie norme.
5) Risolvi utilizzando un software di ottimizzazione non lineare di alta qualità per scopi generici. Questo potrebbe ancora funzionare bene, ma in generale sarà più lento del software di programmazione quadratica o di ottimizzazione conica e forse non altrettanto affidabile. Tuttavia, potrebbe essere possibile includere non solo vincoli lineari e generali, ma anche vincoli non lineari nell'ottimizzazione dei minimi quadrati. Inoltre, può essere utilizzato per minimi quadrati non lineari e se alla funzione obiettivo vengono aggiunti altri termini non lineari.
6) Risolvi usando pessimi algoritmi di ottimizzazione non lineare per scopi generici -> NON FARE MAI QUESTO.
7) Risolvi utilizzando l'algoritmo di ottimizzazione non lineare IL PIÙ POSSIBILE possibile, ovvero la discesa del gradiente. Usalo solo se vuoi vedere quanto può essere cattivo e inaffidabile un metodo di soluzione Se qualcuno ti dice di usare la discesa gradiente per risolvere i problemi dei minimi quadrati lineari
7 i) Scopri il calcolo statistico da qualcuno che ne sa qualcosa
7 ii) Impara l'ottimizzazione da qualcuno che ne sa qualcosa.