Czlug: Interpolazione lineare
Nicola Chiriano [wls]
webmaster@liceosiciliani.cz.it
Sab 20 Gen 2007 10:03:29 CET
Finalmente un OT matematico ;O)))
1) Per il problema da te posto, la retta dei minimi quadrati non è la soluzione migliore, in quanto ad ogni iterazione devi ricalcolare tutto daccapo e quindi non è affatto un'iterazione :-)
Ti consiglio invece l'interpolazione lineare iterata di Aitken, che serve a calcolare il polinomio interpolatore di Lagrange ma, contrariamente al metodo di Neville, elimina l'inconveniente di ripartire da zero ogni volta che si aggiunge un ulteriore punto base. In pratica, due interpolazioni lineari corrispondono ad una parabolica ecv.
L'algoritmo è quindi ricorsivo e puoi inoltre avere un'indicazione dell'accuratezza nel passare dal polinomio di grado k-1 a quello di grado k.
2) Se i polinomi non ti servono e vuoi una retta, allora devi rassegnarti alla r.m.q. ;O) Riguardo l'errore con la r.m.q., in realtà la stessa è costruita in modo che "la somma dei quadrati dei residui sia minima", ossia se la tua retta è, diciamo, y=ax+b e i tuoi punti base (x[i],y[i]) i=1...n, viene resa minima la quantità SOMMA[ (ax[i]+b-y[i])^2 ; i=1..n], che può essere quindi usata come indicatore di accuratezza.
Spero ti possa servire. Per ulteriori sviluppi (in serie?) magari discutiamo in pvt x non scocciare i pinguini. ;O) Ciao!
Nick
----- Original Message -----
From: Pier
To: czlug@lists.linux.it
Sent: Friday, January 19, 2007 11:04 AM
Subject: Czlug: Interpolazione lineare
Ciao a tutti!
Ho un problema e spero che qualcuno mi possa aiutare. Devo costruire un
algoritmo che mi permetta di approssimare una serie di punti con una
retta e che opera in questo modo.
Parto da due punti e trovo la retta passante per essi.
Successivamente viene aggiunto un nuovo punto e io dovrei riuscire a
trovare la retta che approssima meglio tutti e tre i punti; ovviamente
questa può essere differente dalla prima.
Il procedimento continua in modo iterativo, ad ogni passo viene aggiunto
un nuovo punto e io devo trovare la retta migliore per tutti.
Quando l'errore di approssimazione supera una certa soglia posso
supporre che l'ultimo punto faccia parte di una nuova retta
approssimante e ricomincio dall'inizio.
Ora ho due domande.
1. Quale metodo matematico (o algoritmo) posso utilizzare per costruire
la retta? Io avevo pensato ai minimi quadrati, ma non riesco a trovare
una spiegazione dettagliata che mi permetta di implementarlo. Secondo
voi può andare bene oppure ce ne sono altri migliori? Qualche link in
merito?
2. Come posso fare per determire l'errore? Per esempio calcolare la
distanza di tutti i punti dalla retta che ho trovato e sommarle tra loro
ha senso? In questo caso però potrebbe essere complicato determinare un
buon valore di soglia
Se potete aiutarmi...
Grazie.
Pier
--
Mailing list info: http://lists.linux.it/listinfo/czlug
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.linux.it/pipermail/czlug/attachments/20070120/677f3657/attachment.htm
Maggiori informazioni sulla lista
Czlug