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

조회 수: 10 (최근 30일)
Qingjie
Qingjie 2014년 4월 25일
댓글: Qingjie 2014년 4월 30일
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
John D'Errico
John D'Errico 2014년 4월 25일
Why do you think you need the (if true) conditional wrapped around it?
Qingjie
Qingjie 2014년 4월 25일
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.

댓글을 달려면 로그인하십시오.

채택된 답변

John D'Errico
John D'Errico 2014년 4월 25일
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
John D'Errico
John D'Errico 2014년 4월 26일
편집: John D'Errico 2014년 4월 26일
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 2014년 4월 30일
Thank you very much John. It works really well. Also thank you for a very wonderful comment on my previous question on nonlinear fitting.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Splines에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by