PDA

View Full Version : [Fortran] Problema con rotazioni di Givens per minimi quadrati


Kawloon
30-09-2010, 14:25
Ciao a tutti,
Sto implementando una rete RBF in fortran e per l'addestramento dei pesi del secondo layer uso il metodo ai minimi quadrati lineare che risolvo tramite fattorizzazione QR con rotazioni di Givens. La matrice di ingresso A non è quadrata ma m*n (con m>n), per cui Q è una matrice m*m ed R rimane m*n e sarà composta da un minore n*n triangolare superiore ed una matrice (m-n)*n nulla.

Su un sito ho trovato una parte di un programma scritta in pseudo c con la quale sono riuscito a buttar giù un algoritmo che esegue le rotazioni su A ricavando così R. Il primo problema è che i valori degli elementi sul triangolo superiore (quelli non nulli per intendersi) mi lasciano perplesso. La prima riga, in particolare, è di un ordine di grandezza superiore rispetto alle altre, poi proseguendo dalla seconda alle successive si osserva comunque una diminuzione del modulo, seppure molto lieve. Un comportamento del genere è normale oppure c'è qualcosa di sbagliato?

Inoltre non ho ben capito come devo trattare il vettore dei termini noti: è sufficiente pre-moltiplicarlo per la trasposta di Q come A oppure devo considerarlo come un'ulteriore colonna di A (in questo caso caso devo fare (m-n-1) rotazioni in più).

Grazie :rolleyes: