# [SciPy-User] inverse function of a spline

josef.pktd@gmai... josef.pktd@gmai...
Fri Sep 30 11:37:20 CDT 2011

```On Thu, Sep 29, 2011 at 12:37 PM, Jeff Brown <brownj@seattleu.edu> wrote:
>  <josef.pktd <at> gmail.com> writes:
>
>>
>> On Fri, May 7, 2010 at 4:37 PM, nicky van foreest <vanforeest <at> gmail.com>
> wrote:
>> > Hi Josef,
>> >
>> >> If I have a cubic spline, or any other smooth interpolator in scipy,
>> >> is there a way to get the
>> >> inverse function directly?
>> >
>> > How can you ensure that the cubic spline approx is non-decreasing? I
>> > actually wonder whether using cubic splines is the best way to
>> > approximate distribution functions.
>>
>> Now I know it's not, but I was designing the extension to the linear case
>> on paper instead of in the interpreter, and got stuck on the wrong
>> problem.
>>
>
> There's an algorithm for making constrained-to-be-monotonic spline interpolants
> (only in one dimension, though).  The reference is Dougherty et al 1989
> Mathematics of Computation, vol 52 no 186 pp 471-494 (April 1989).  This is
> available on-line at www.jstor.org.

Thanks for the reference. Maybe Ann's interpolators in scipy that take
derivatives could be used for this.

Shape preserving splines or piecewise polynomials would make a nice
addition to scipy, but I'm only a potential user.

I have dropped this for the moment, after taking a detour with
(global) orthonormal polynomial approximation, where I also haven't
solved the integration and function inversion problem yet (nice pdf
but only brute force cdf and ppf).

Josef

>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
```