getting slope information from griddedInterpolant

11 views (last 30 days)
Hey when evaluating a griddedInterpolant, the computer should at some pont determine the slope of the interpolant at the query point. is there a way to modify the griddedInterpolant such that he not only provides the value at the query point but also the slope (without any additional computations).
i.e. instead of interpolant(x)=approximation(f(x)) interpolant(x)=approximation([f(x) f'(x)])
If not, does anyone have a handmade interpolant code that runs similarilye efficient?
Thanks
Dominik
  3 Comments
dominik
dominik on 31 Jan 2014
Edited: dominik on 31 Jan 2014
Allright, the slope is not there but most of the calculation is done already (i assume the expensive bit is finding i, not accessing v or evaluating t or vi). All thats need to be done is (v(i)-v(i+1))/t.
Also it would be easy and not more expensive to rewrite your expression in terms of the slope.
For the spline i guess a similar point could be made (since you know the analytical expression of the interpolant between x(i) and x(i+t) you could evalute its analytical derivative at xquery) but im not sure.
But the question i guess is: can i edit the griddedInterpolant? No. So are there effieceintly coded interpolants available that can be adapted (ideally including spline and extrapolation)?
Matt J
Matt J on 31 Jan 2014
There are a variety of interpolation routines on the FEX, which you could try to modify. There are also routines dedicated to splines and their derivatives, e.g.,

Sign in to comment.

Answers (1)

Matt J
Matt J on 30 Jan 2014
Edited: Matt J on 31 Jan 2014
griddedInterpolant is a built-in function and can't be modified.
Assuming you're talking about 1D interpolation, you can use this form of interp1 (see doc interp1)
pp = interp1(...'pp');
to get the piecewise polynomial representing the interpolated data, and then apparently this FEX file
to get derivatives, (though I haven't used it myself). Unfortunately, it appears that the above interp1 syntax is soon to be removed from MATLAB!
  1 Comment
dominik
dominik on 31 Jan 2014
Thanks, unfortunatley i was speaking about the general case ( in my case 2D and 3D). Plus Interp1 is far to slow and uses griddedInterpolant.

Sign in to comment.

Categories

Find more on Interpolation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!