¿Existe una forma preferida de cómo implementar una evaluación rápida (aproximada) del polinomio de interpolación de Chebyshev en una cuadrícula uniforme (dados los valores de función en los nodos de Chebyshev)? Mi problema es que la interpolación se vuelve lenta cuando aumenta el grado del polinomio de interpolación.
Las siguientes ideas me vinieron a la mente:
- Intente adaptar las técnicas de FFT no uniforme (NFFT)
- Use FFT para calcular los derivados en los nodos de Chebyshev, posiblemente después de ir primero a una cuadrícula más fina (Chebyshev). Luego use una interpolación cúbica por partes para la evaluación (aproximada).
- Use alguna fórmula que solo use valores de función (y potencialmente derivados) en nodos de Chebyshev "cercanos" (esto está relacionado con una técnica NFFT específica).
interpolation
fourier-analysis
fftw
Thomas Klimpel
fuente
fuente
Respuestas:
¿Has pensado en usar la interpolación baricéntrica ? Una descripción detallada sobre cómo hacerlo eficientemente para los nodos de Chebyshev se da en la Sección 5 de este documento.
Esta es en realidad una evaluación exacta del interpolante de Chebyshev. Si está evaluando un polinomio de grado en nodos, el costo está en .n O ( n m )m O(nm)
Actualizar
Otra alternativa, si tiene los coeficientes de Chebyshev de su polinomio interpolador, es utilizar el algoritmo de Clenshaw . Si solo tiene los valores de función en los nodos de Chebyshev, pero tiene que evaluar el polinomio varias veces, podría calcular los coeficientes con una FFT.
El algoritmo de Clenshaw es algo más rápido que la interpolación barcéntrica, ya que solo requiere adiciones y multiplicaciones, y que también se vectoriza bastante bien.
fuente