필터 지우기
필터 지우기

Strange results using Curve Fitting tool

조회 수: 4 (최근 30일)
Sergio
Sergio 2020년 11월 1일
편집: Sergio 2020년 11월 1일
Hello,
I'm trying to fit a function of the type "a1*cos(b1*x+c1) + a2*cos(b2*x+c2)" to my data using the curve fitting tool -> custom equation. However, the fitting results are terrible (since I know the data, I know the results should be reasonably good).
Thus, I tested the function "a1*sin(b1*x+c1) + a2*sin(b2*x+c2)" and the results remain terrible! The weirdest thing, though, is that when I use the "sum of sine" option (which is the exact same thing) the results are great, as expected.
Any ideas?
  댓글 수: 2
Matt J
Matt J 2020년 11월 1일
If the "sum of sine" option worked, why do you still require a custom solution?
Sergio
Sergio 2020년 11월 1일
To verify if I was inputting the custom function correctly.

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

답변 (1개)

Matt J
Matt J 2020년 11월 1일
편집: Matt J 2020년 11월 1일
Not many, since without your data and code, we cannot reproduce what you are seeing. One possible culprit though is the initial guess of the parameters. If you're going to use a custom model, you need to supply your own strategy for selecting an initial guess, since Matlab has no educated way of choosing one automatically for a custom equation. Since you did not mention any such strategy, I can only assume you just let the curve fitter pick an arbitrary initial guess, and that can certainly lead to poor results.
Also, I would recommend that you parametrize the equation terms asymmetrically, so that the solver can distinguish between the them, e.g., "a1*cos(b1*x+c1) + (a1+a2)*cos(b2*x+c2)"
  댓글 수: 5
Matt J
Matt J 2020년 11월 1일
Thiw worked,
>> ffit=fit(x,y,ft,'StartPoint',[1 1 0.74 0.064 -2.797 3.059] );
>> plot(ffit,x,y);scf
Sergio
Sergio 2020년 11월 1일
It sure did! It was the order of the starting parameters, right?
Thanks a lot for your help!

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

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by