필터 지우기
필터 지우기

Derivative constraint in curve fitting

조회 수: 14 (최근 30일)
Ane Følgesvold Reines
Ane Følgesvold Reines 2019년 10월 31일
댓글: Ane Følgesvold Reines 2019년 11월 1일
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
darova 2019년 10월 31일
You can add two points at the beginning. Derivative means df/dx = tan(a) (tangens of an angle)
12333.png
Ane Følgesvold Reines
Ane Følgesvold Reines 2019년 10월 31일
I dont know if I managed to make my problem clear. I have a lot of data points, one of them being in (1,1). The curve I want to fit (either it is power series, Fourier, polynomial, etc) must go through this point. Also in that point (1,1) i want its first derivative to be 0, i.e. this should be the curve's global maxima. Those two constraints must be fulfilled by the curve I fit.

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

답변 (2개)

Matt J
Matt J 2019년 10월 31일
You can do spline fits with those kinds of constraints using this,
  댓글 수: 3
Matt J
Matt J 2019년 10월 31일
A spline of order 2 or higher will have continuous first derivatives and the SLM toolbox provides tools for evaluating them.
Ane Følgesvold Reines
Ane Følgesvold Reines 2019년 11월 1일
But there will still be loads of different polynomials (one for each interval right?)? I dont doubt that I will be able to use them for my purpose with code, but it shall be implemented into some analytical mathematical expressions where I need to express the derivative of the function at an arbitrary point on the range considered. This seems very unpractical if I have many spline polynomials...
But thank you anyways. I will look more into it just in case it might work

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


Cyrus Tirband
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:
if the constraints are y'(1) = 0, and y(1) = 1; we get
Your fitting equation then becomes
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
Ane Følgesvold Reines
Ane Følgesvold Reines 2019년 10월 31일
Yeah I guess I can do it mathematically, was just hoping somehow Matlab had an inbuildt function for the constraints.
So far it seems that 8th degree polynomial is the best polynomial for my data.
Cyrus Tirband
Cyrus Tirband 2019년 10월 31일
Matlab does not have this functionality.

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

카테고리

Help CenterFile Exchange에서 Curve Fitting Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by