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