Azzera filtri
Azzera filtri

getting slope information from griddedInterpolant

18 visualizzazioni (ultimi 30 giorni)
dominik
dominik il 30 Gen 2014
Commentato: Matt J il 31 Gen 2014
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 Commenti
dominik
dominik il 31 Gen 2014
Modificato: dominik il 31 Gen 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 il 31 Gen 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.,

Accedi per commentare.

Risposte (1)

Matt J
Matt J il 30 Gen 2014
Modificato: Matt J il 31 Gen 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 Commento
dominik
dominik il 31 Gen 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.

Accedi per commentare.

Categorie

Scopri di più su Interpolation in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by