MATLAB Answers

Cubic spline interpolation with slope at left end equal to zero?

18 views (last 30 days)
Qingjie
Qingjie on 25 Apr 2014
Commented: Qingjie on 30 Apr 2014
Hi, all,
I am doing a cubic spline interpolation with some data points. I want the slope at the left end to be zero and don't do anything to the slope at the right end(In the online example, both slope at both ends are forced to be zero). Does anyone know how to do this? Thank you.
Here is my data points:
if true
x = [0,0.152789493879,0.305539702586,0.458371723707,...
0.59356259,0.728929965449,0.864429595769,1];
y = [0,0.013083199999528,0.155041100006201,0.209241100004874,...
0.178395800001454,0.093888600007631,-0.033515100003569,-0.196524899991346];
end

  2 Comments

John D'Errico
John D'Errico on 25 Apr 2014
Why do you think you need the (if true) conditional wrapped around it?
Qingjie
Qingjie on 25 Apr 2014
Physically, the left point is a energy minimum point, which means the slope should be zero. But due to the limited number of data points, I guess spline interpolation cannot produce a zero slope at the left point.

Sign in to comment.

Accepted Answer

John D'Errico
John D'Errico on 25 Apr 2014
My SLM tool box will let you create an interpolating spline with the properties you desire.
pp = slmengine(x,y,'knots',x,'leftslope',0,'result','pp');
There are many other things it can do, but this is a simple one. You can get the result in a pp form as I show, or in my own SLM format.

  3 Comments

Qingjie
Qingjie on 25 Apr 2014
Thank you John. I haven't used such tool box before, should I put it in the toolbox directory of MATLAB after I download it?
John D'Errico
John D'Errico on 26 Apr 2014
No. Never put downloaded files in the MATLAB toolbox directories. This will cause problems. Instead, put the downloaded (unzipped) directory some place on your drive, then add that directory to your MATLAB search path. (Use pathtool for this, saving the new search path afterwards.)
Qingjie
Qingjie on 30 Apr 2014
Thank you very much John. It works really well. Also thank you for a very wonderful comment on my previous question on nonlinear fitting.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!