Valutazione rapida (approssimativa) del polinomio di Chebyshev


9

Esiste un modo preferito come implementare una valutazione rapida (approssimativa) del polinomio di interpolazione di Chebyshev su una griglia uniforme (dati i valori delle funzioni sui nodi di Chebyshev)? Il mio problema è che l'interpolazione diventa lenta quando aumenta il grado del polinomio interpolante.

Mi sono venute in mente le seguenti idee:

  • Cerca di adattare le tecniche FFT (NFFT) non uniformi
  • Utilizzare FFT per calcolare i derivati ​​sui nodi di Chebyshev, potenzialmente dopo essere passati a una griglia più fine (Chebyshev). Quindi utilizzare un'interpolazione cubica a tratti per la valutazione (approssimativa).
  • Utilizzare una formula che utilizza solo valori di funzione (e potenzialmente derivati) in nodi Chebyshev "vicini" (questa è correlata a una tecnica NFFT specifica).

Dai un'occhiata a chebfun ! È un'intera libreria che si basa su rappresentazioni di funzioni mediante polinomi di Chebyshev. È open source, altamente ottimizzato e ben mantenuto e immagino che se esiste un modo preferito per la valutazione puntuale di un polinomio, allora lo troverai lì.
Jan

Risposte:


11

Hai pensato di usare l' interpolazione baricentrica ? Una descrizione dettagliata di come farlo in modo efficiente per i nodi di Chebyshev è riportata nella Sezione 5 di questo documento.

nmO(nm)

Aggiornare

Un'altra alternativa, se hai i coefficienti di Chebyshev del tuo polinomio interpolatorio, è usare l' algoritmo di Clenshaw . Se hai solo i valori della funzione nei nodi Chebyshev, ma devi valutare il polinomio più volte, puoi calcolare i coefficienti con un FFT.

L'algoritmo di Clenshaw è in qualche modo più veloce dell'interpolazione baricentrica in quanto richiede solo aggiunte e moltiplicazioni e anche vettorializza abbastanza bene.


Attualmente, lo faccio precompilando i pesi relativi ai valori delle funzioni sui nodi Chebyshev per un punto di valutazione specifico, quindi valuto questo punto per tutte le interpolazioni che devo fare (ce ne sono molte, tutte con nodi Chebyshev identici e punti di valutazione identici) , quindi passare al punto di valutazione successivo.
Thomas Klimpel,

[-1,1]±1±1/2
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.