Curve fitter app with custom function

조회 수: 5 (최근 30일)
HYZ
HYZ 2022년 9월 2일
댓글: Walter Roberson 2022년 9월 6일
Hi, I have a gaussian function y=A*exp(-(x-mu).^2/(2*sigma^2)).
I want to use custom equation in curve fitter. The default setting in the custom equation is a*exp(-b*x)+c.
How should I key in mu and sigma in custom equation? I put "a*exp(-(x-b).^2/(2*c^2))" but the curve doesn't look correct.
I used Gaussian option with 'gauss2' and the curve looks fine but the equation for gauss2 is not exactly same as my custom function. that's why I want to use custom function. Please advise.
thanks.

채택된 답변

Walter Roberson
Walter Roberson 2022년 9월 2일
If you are using cftool, then when you get to the place to enter the custom equation, you can just enter
A*exp(-(x-mu).^2/(2*sigma^2))
and it will estimate all of the parameters.
Note: you might want to consider adding a constant term to the equation.
  댓글 수: 6
HYZ
HYZ 2022년 9월 3일
Hi Walter, thanks a lot for explanation. I changed the Lower bound for a1 to 0. I got a better fitted graph with these coefficients.
though a2 is reduced to around 180 as you said, a1 is pretty higher than the raw data.
a1 = 1.583e+06 (-5.126e+08, 5.158e+08)
b1 = 706.8 (-1.249e+04, 1.391e+04)
c1 = 129.7 (-1933, 2192)
a2 = 179.6 (-466.8, 826.1)
b2 = 121.9 (77.94, 165.9)
c2 = 23.27 (-31, 77.53)
Actually, I am following the below bold method for fitting. I don't think I can find equal width sigma using cftool. could you please suggest? I first time use Gaussian fitting so I am quite lost. thanks again for your help.
Walter Roberson
Walter Roberson 2022년 9월 6일
I would suggest constraining b1 as well to positive... keep constraining more variables to positive until you stop getting coefficients that cross 0 in the confidence bounds.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Interpolation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by