How to constraint the second derivative value while fitting polynomial to set of data

Hello all,
I hope somebody can help me, knowing that I am not an expert in matlab.
Here is my problem: I need to match a polynomial of order n to a set of points (x,y). I know that the found curve has no physical meaning if the second order derivative is higher than 0 or that its sign changes (inflexions). So, I want to constraint the second order derivative of the polynomial to be always negative (not only at the ends).
I am currently using polyfit, which does not offer this option. I have found many articles on this website abount constraints on derivative, ends, but not second derivative on the entire set of points.
Basically, I want to find something always like the green curve (picture below), and not the yellow one, with a 5 order polynomial, for example.
Thank you in advance for your help.
Gaëtan.

Answers (1)

This FEX package has that capability,
See the 'concavedown' input option.

1 Comment

thanks, that's a nice tool! Howerver I'm a bit afraid of the complexity of it, knowing I need to run it hundreds of time in my code, and also that I might have issue explaining why I use Hermite spline. But thanks, I will dig into it to see how it is built, to see if I can find an easy way to do the concavedown.

Sign in to comment.

Categories

Products

Release

R2016a

Asked:

on 2 Jul 2018

Commented:

on 2 Jul 2018

Community Treasure Hunt

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

Start Hunting!