Interpolating function with monotonic decresing first derivative

Hello, everyone.
I want to find an interpolating function with monotonic decreasing first derivative as shown in the figure.
The black points are the data and the red line is the interpolating function I want to get.
The only condition of interpolating function is: dY/dX should monotonic decreasing .
Is their any interpolating function and solve this problem in MATLAB??
Thanks for any helpful ideas.

9 Comments

There is an infinite number of interpolating functions matching these points and the condition. Is dy/dx < 0 wanted globally or only in the interpolated interval?
"dY/dX should monotonic decreasing "
Your cannot with this data dY/dx is increases in some discrete points so you can never get dY/dx decreases.
Now if you mistake "dY/dx decrease" for "Y decreases" of "dY/dx < 0", that is possible.
Signed by Mr pedantic
I missed you, Mr. exact Bruno. Maybe "decreasing derivative" is a weak formulation only, maybe it is the actual problem.
I think , that "red" function of the given graph, has an increasing derivative. I wonder whether the restriction is: dy/dx should be negative
I am sorry to cause confusion.
Yes, dY/dX itself should increasing and dY/dX is a negative value globally.
Maybe Y = a*exp(-b*X) with a,b to be determined is a good choice for the function.
The purpose of this project is making discontinuous data become continuous. So, I think both options are acceptable.

Sign in to comment.

 Accepted Answer

You can use PCHIP, either in the toolbox or as option of INTERP1 for shape-preserving interpolation.
For fitting you might take a look at my BSFK tool or John d'Errico SLM.

1 Comment

Thank you for your solution. I realized the interpolating method must pass the data which is not I want. I think I have to try fitting procedure through your opinion.

Sign in to comment.

More Answers (0)

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!