For a problem in my research, I found myself looking for an interpolant function between five points: $(x_1,y_1)$, $(x_2,y_2)$, $(x_3,y_3)$, $(x_4,y_4)$, and $(x_5,y_5)$. These points are monotonically increasing, and I need the interpolant to also be monotonic. I know I could achieve this with a piecewise monotonic cubic interpolation, but due to details of my implementation, I need this to be a single, non-piecewise function. After trying a bunch of functional forms that technically have enough parameters to capture these points, I wasn't able to come up with anything that had a closed-form solution in terms of the $(x_i,y_i)$ coordinates.
Potential simplifications
- For my particular application, I know that the points follow the form: $(x_1,-1)$, $(x_3-\delta,-y_4)$, $(x_3,0)$, $(x_3+\delta,y_4)$, $(x_5,1)$. So there's some amount of symmetry with the middle points, but not the end points.
- While I would ideally like to avoid a piecewise definition, a piecewise definition would be acceptable if the coefficients of the piecewise curves could be easily written in closed-form. In all honesty, this will eventually have to be implemented in Fortran77 running in an environment without access to external packages, and I really don't want to have to write very complicated code since it's a painful enough language as it is!