![12333.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/245900/12333.png)
Derivative constraint in curve fitting
14 次查看(过去 30 天)
显示 更早的评论
I have a set of data points in 2D that I want to use fit(x,y,'modeltype') function to test the curve fit of different types of functions. I have tried Fourier series, polynomial, two-term exponential and two-term power functions (one on the increasing and one on the decresing interval). I have two constraints that I want to implement but I dont know how. It is the value and the first derivative in one point. I want the following to hold (the data points are somewhat like an U upside down):
f(1)=1, df/dx(1)=0
How do I implement these connstraints? For these to hold (or be as close to 1 and 0 as possible) is more important than the curve to match all the other data points.
Thank you in advance!
2 个评论
darova
2019-10-31
You can add two points at the beginning. Derivative means df/dx = tan(a) (tangens of an angle)
![12333.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/245900/12333.png)
回答(2 个)
Cyrus Tirband
2019-10-31
If you absolutely have to make sure your constraints are met, you have to change your fitting equation so that all possible solutions satisfy your constraints. Consider the 2nd degree polynomial:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/245905/image.png)
if the constraints are y'(1) = 0, and y(1) = 1; we get
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/245908/image.png)
Your fitting equation then becomes
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/245909/image.png)
Which will give shitty results since it only has one degree of freedom. But this is just an example, if you start with a 4th degree polynomial, your fitting equation will have three degrees of freedom. The fit function will then take care of the rest and minimize the least squares cost.
2 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Curve Fitting Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!