first of all: english is not my native language, so there might be differences between what I meant and what you understood. Sorry for that in advance.

As a research project, I try to comprehend and re-implement an algorithm from a paper. Included in this algorithm is an interpolation of a function that is only known via some number of measurement points.

The authors claim to approximate the unknown function via Chebyshev polynomial approximation, namely by usage of the Chebyshev polynomial of degree 16. There is no further information about this. They are no mathematicians (neither am I...), and I came to understand that they used some MatLab library to do this (likely Chebfun).

My problem here is that I do not have access to this piece of software. Every program I found just output the Chebyshev polynomials (which I can calculate myself no problem) or does an approximation for a function, not a set of points. I know that Chebyshev interpolates at some radially determined points (the ones you get if you project equidistant points on a circle on its diameter line, as I understand it, so something from the domain of complex numbers), but I cannot generally assume that the measurements follow this property; they rather should be equidistant, but even this is not a thing I can take for granted. The program I found that can do the approximation needs a continuous function instead.

It makes no sense to me to use some other interpolation method and then approximate via Chebyshev since the calculation error would only get bigger.

Is there anything I missed here? I read through quite some pages worth of lecture concerning Chebyshev polynomials and the approximation, but nothing could explain how to do it with an arbitrary set of measurement points.

Is there maybe a method to non-linearly map a set of points to the chebyshev points, calculate the approximated function and map it back? Is this reasonable? If so, how do I do it?

Generally, how would you approximate the underlying function from just a number of arbitrary points? Could I use something else to 'simulate' what they did well enough with some other method?

Thanks for reading this wall of text; feel free to ask questions. And thanks for your answers in advance.

The program I write is in C++ by the way, so if you somehow happen to have some code snippets I could use, it would be even more appreciated.

  • 1
    $\begingroup$ If you don't have a MATLAB license, there is a Python version of Chebfun you can use. $\endgroup$ – David Ketcheson Jan 29 '16 at 8:24
  • 1
    $\begingroup$ Also, there may be an easy answer to your question if you post a link to the paper here. $\endgroup$ – David Ketcheson Jan 29 '16 at 8:25

Numerical Recipes, 3rd edition, Chapter 3 describes a vast number of interpolation methods with source code. It seems from what you are telling us that something is confused in the paper: Chebyshev interpolation has to do with picking points at which to minimize error of the ensuing result, but perhaps something else was meant/the usage is slightly different.


Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.