Sto cercando di adattare una trasformazione da un insieme di coordinate a un altro.Soluzione dei minimi quadrati alle equazioni simultanee
x' = R + Px + Qy
y' = S - Qx + Py
Where P,Q,R,S are constants, P = scale*cos(rotation). Q=scale*sin(rotation)
C'è una ben nota formula "per mano" per il montaggio di P, Q, R, S su un insieme di punti corrispondenti. Ma ho bisogno di avere una stima dell'errore sulla misura - quindi ho bisogno di una soluzione dei minimi quadrati.
Leggi 'Numerical Recipes', ma sto avendo problemi a lavorare fuori come fare questo per i set di dati con xey in loro.
può puntare a chiunque di un campione di esempio/tutorial/codice di come fare questo?
Non troppo preoccupato per la lingua.
Ma - usa solo la funzione incorporata di Matlab/Lapack/numpy/R probabilmente non utile!
modifica: Ho un ampio set di vecchi (x, y) nuovi (x, y) per adattarli. Il problema è sovradeterminato (più punti di dati che incognite), quindi l'inversione di matrice non è sufficiente e, come ho detto, ho davvero bisogno dell'errore sull'adattamento.
Avete un set di (x_i, y_i, x'_i, y'_i) s oppure x +/- dx, y +/- dy ... o cosa? Se hai esattamente uno ciascuno di x, y, x ', y' puoi * solo * fare una soluzione esatta, e non c'è modo di estrarre una stima dell'errore ... – dmckee
Nessuna delle funzioni minimizza tipo LMA/Gauss- Newton dà un errore diretto. Suppongo che potrei calcolare la misura migliore e poi solo calcolare l'errore da ogni punto. Avevo pensato che fosse molto più semplice di questo (cioè una semplice modalità di un linerar LSquers) e mi stavo solo stupendo –
Interessante problema! Ho postato un codice che dovrebbe fare il trucco, ma la parte divertente è stata di nuovo le mie vecchie abilità matematiche arrugginite :) –