Schnelle (ungefähre) Auswertung des Chebyshev-Polynoms


9

Gibt es eine bevorzugte Methode zur Implementierung einer schnellen (ungefähren) Auswertung des Chebyshev-Interpolationspolynoms auf einem einheitlichen Gitter (angesichts der Funktionswerte an den Chebyshev-Knoten)? Mein Problem ist, dass die Interpolation langsam wird, wenn der Grad des Interpolationspolynoms zunimmt.

Die folgenden Ideen kamen mir in den Sinn:

  • Versuchen Sie, ungleichmäßige FFT-Techniken (NFFT) anzupassen
  • Verwenden Sie FFT, um die Ableitungen an den Chebyshev-Knoten zu berechnen, möglicherweise nachdem Sie zuerst zu einem feineren (Chebyshev) Gitter gegangen sind. Verwenden Sie dann eine stückweise kubische Interpolation für die (ungefähre) Auswertung.
  • Verwenden Sie eine Formel, die nur Funktionswerte (und möglicherweise Ableitungen) an "nahe gelegenen" Chebyshev-Knoten verwendet (dies hängt mit einer bestimmten NFFT-Technik zusammen).

Schau dir chebfun an ! Es ist eine ganze Bibliothek, die auf Funktionsrepräsentationen mittels Chebyshev-Polynomen basiert. Es ist Open Source, hochoptimiert und gut gepflegt, und ich denke, wenn es einen bevorzugten Weg für die punktweise Bewertung eines Polynoms gibt, werden Sie ihn dort finden.
— Januar

Antworten:


11

Haben Sie daran gedacht, die baryzentrische Interpolation zu verwenden ? Eine ausführliche Beschreibung, wie dies für Chebyshev-Knoten effizient durchgeführt werden kann, finden Sie in Abschnitt 5 dieses Dokuments.

nmO(nm)

Aktualisieren

Eine andere Alternative, wenn Sie die Chebyshev-Koeffizienten Ihres interpolatorischen Polynoms haben, ist die Verwendung des Clenshaw-Algorithmus . Wenn Sie nur die Funktionswerte an den Chebyshev-Knoten haben, das Polynom jedoch mehrmals auswerten müssen, können Sie die Koeffizienten mit einer FFT berechnen.

Der Clenshaw-Algorithmus ist etwas schneller als die Barycentric-Interpolation, da er nur Additionen und Multiplikationen erfordert und auch sehr gut vektorisiert.


Derzeit berechne ich die Gewichte relativ zu den Funktionswerten an den Chebyshev-Knoten für einen bestimmten Bewertungspunkt vor und bewerte diesen Punkt dann für alle Interpolationen, die ich durchführen muss (es gibt viele, alle mit identischen Chebyshev-Knoten und identischen Bewertungspunkten). und fahren Sie dann mit dem nächsten Bewertungspunkt fort.
— Thomas Klimpel

[−1,1]±1±1/2
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.