Attempting to fit data with a sigmoid curve, but not an option in curvefitter toolbox

조회 수: 22 (최근 30일)
I am working on fitting data with a sigmoidal curve, but my CurveFitter toolbox does not have the sigmoidal option under fit types. I have tried a custom fit, but it is not giving me any useable fits.
eqn:
'a/(1+exp(-b*(x-c)))'

답변 (3개)

Star Strider
Star Strider 2024년 8월 21일
Perhaps something like this —
s = fittype('a/(1+exp(-b*(x-c)))', 'Coefficients',{'a','b','c'}, 'Independent','x', 'Dependent','y')
s =
General model: s(a,b,c,x) = a/(1+exp(-b*(x-c)))
x = linspace(0, 10, 20);
y = rand(size(x));
sfit = fit(x(:), y(:), s)
Warning: Start point not provided, choosing random start point.
sfit =
General model: sfit(x) = a/(1+exp(-b*(x-c))) Coefficients (with 95% confidence bounds): a = 58.84 (-1.583e+05, 1.584e+05) b = 0.05918 (-1.317, 1.435) c = 85.92 (-4.764e+04, 4.781e+04)
figure
plot(sfit, x, y)
grid
.

Sam Chak
Sam Chak 2024년 8월 21일
The latest Curve Fitting Toolbox has only three Sigmoidal Curves in its library of models.
rng(0,"twister")
x = linspace(-1, 1, 101)';
y = 1./(1 + exp(- 10*x)) + 0.02*randn(101, 1);
y(y>1) = 1;
y(y<0) = 0;
logsigm = fit(x, y, 'logistic')
logsigm =
General model Logistic: logsigm(x) = a/(1 + exp(-b*(x-c))) Coefficients (with 95% confidence bounds): a = 0.9933 (0.9863, 1) b = 10.2 (9.769, 10.63) c = -0.001955 (-0.006753, 0.002844)
plot(logsigm, x, y), grid on, grid minor

Image Analyst
Image Analyst 2024년 8월 21일
Attach your actual data so we can work with it. In the meantime, I'm attaching my demo of fitting a sigmoid, though it uses a different formula than yours. However, you can adapt it to use your formula.

카테고리

Help CenterFile Exchange에서 Linear and Nonlinear Regression에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by