Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: pchip with 2 variables
Replies: 4   Last Post: Jan 16, 2013 3:24 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Derek Goring

Posts: 3,892
Registered: 12/7/04
Re: pchip with 2 variables
Posted: Jan 16, 2013 1:48 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On Thursday, January 17, 2013 7:37:08 AM UTC+13, samar wrote:
> Dear Cédric,
>
>
>
> I want tu use Pchip function to interpolate my 2-dimensional data set.
>
> I'm actually using spline interpolation (with csapi function) but it doesn't work well.
>
> I think that Pchip will be better for my data set but I have no idea how to use it with 2 variables ( x1 and x2 are my variables they take their values over a given list and V=f(X1,X2) is the matrix that gives the value taken by f on each couple (x1,x2))
>
>
>
> The second question can we have the result of pchip in PPFORM?
>
>
>
> Thank you very much for you help!
>
>
>
> "Cédric Louyot" <cedric.louyot@NOSPAMonera.fr> wrote in message <eee8cbc.3@webx.raydaftYaTP>...
>

> > In fact, I'm not having any problem with the pchip function.
>
> > Actually, it works real fine on the set of data I'm dealing with in
>
> > 2D. However I also have to work on a set of 3D data (that looks
>
> > really similar to the 2D set). Therefore, I try to understand the 2D
>
> > algorithm in details in order to build a pchip3d (or even a pchipnd)
>
> > function that could work on sets of data of the form:
>
> > z(x,y) = f(x,y) (or even z(x1, x2, ..., xn))
>
> >
>
> > I've already tried the interp2 options ('linear','spline' and
>
> > 'cubic') but they don't yield satisfactory results with my data.
>
> > That's why I try to build a pchip3d function.
>
> >
>
> > Is there any chance it has already been done before by someone else ?
>
> > Do you know where I could find the Fritsch and Carlson paper ? I've
>
> > already looked for it in vain.
>
> >
>
> > Thanks,
>
> >
>
> > Cédric
>
> >
>
> > John D'Errico wrote:
>
> > >
>
> > >
>
> > > In article <eee8cbc.-1@webx.raydaftYaTP>,
>
> > > "Cédric Louyot" <cedric.louyot@NOSPAMonera.fr> wrote:
>
> > >
>
> > >> I'm looking for a precision regarding the algorithm that the
>
> > > function
>
> > >> pchip uses. In particular, according to the MATLAB function
>
> > > reference
>
> > >> :
>
> > >> "The slopes at the xj are chosen in such a way that P(x)
>
> > > preserves
>
> > >> the shape of the data and respects monoticity."
>
> > >>
>
> > >> Could anybody explain to me what is hidden behing "in such a
>
> > way"
>
> > > ?
>
> > >> How does pchip computes the slopes at the xj ?
>
> > >>
>
> > >> Thanks for your help,
>
> > >>
>
> > >> Cédric
>
> > >
>
> > > From the comments, we see that pchip is derived from
>
> > > a nice paper by Fritsch and Carlson.
>
> > >
>
> > > % F. N. Fritsch and R. E. Carlson, "Monotone Piecewise Cubic
>
> > > % Interpolation", SIAM J. Numerical Analysis 17, 1980, 238-246.
>
> > >
>
> > > The idea is you choose a decent set of estimates of the
>
> > > slopes at the knots. Then you test to see if they satisfy
>
> > > some approximation to the monotonicity constraints put
>
> > > forth in the F&C paper.
>
> > >
>
> > > These constraints form a boundary, one edge of which is
>
> > > elliptic, around the set of cubic segments. If the choice
>
> > > of slopes falls outside the set of monotone cubic segments,
>
> > > then you adjust the derivatives so this does not happen.
>
> > > Its a nice algorithm that runs quite quickly and does not
>
> > > require the solution of a set of simultaneous linear
>
> > > equations as a simple interpolating spline does.
>
> > >
>
> > > The disadvantages to pchip are
>
> > >
>
> > > 1. It results in a C1 interpolant. (Discontinuous second
>
> > > derivatives, whereas an interpolating cubic spline is C2.)
>
> > > This is rarely a problem, although I have seen cases where
>
> > > the second derivative discontinuities were a significant
>
> > > flaw.
>
> > >
>
> > > 2. Since pchip is designed to produce locally monotone
>
> > > interpolants, it sometimes produces less than desireable
>
> > > results on spiky data. (By locally monotone, I mean it
>
> > > does not introduce any extrema in the curve that is not
>
> > > already in the data.)
>
> > >
>
> > > What happens when you have a spike in your data? Pchip
>
> > > forces the derivative to zero at the maximum (or minimum)
>
> > > of the spike. Again, this is by design.
>
> > >
>
> > > Are you having problems with pchip? Very often this
>
> > > suggests that you may have data which is inappropriate
>
> > > for pchip. For example, I would not use pchip to
>
> > > interpolate an illuminant spectral power curve.
>
> > > Especially not for one derived from a fluorescent light.
>
> > >
>
> > > HTH,
>
> > > John D'Errico
>
> > >
>
> > >
>
> > > --
>
> > > There are no questions "?" about my real address.
>
> > >
>
> > > The best material model of a cat is another, or
>
> > > preferably the same, cat.
>
> > > A. Rosenblueth, Philosophy of Science, 1945
>
> > >

First of all, don't top post. It makes the thread hard to follow.
Put your reply UNDERNEATH.

Simply use interp1:
pp=interp1(x,y,'pchip');



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.