Complementary error function curve fitting

103 views (last 30 days)
Hi,
I have an experimental dataset which I know would be fitted by erfc(x)
I tried using the custom equation option in the curve fitting toolbox, but it does not work.
The generated code looks like this
ft=fittype('A*erfc(2e5*sqrt(a*x))+c', 'independent', 'x', 'dependent', 'y' );
fitresult=fit(x,y,ft);
plot(fitresult,x,y)
and the figure after fitting
I do not know where I am going wrong.

Answers (1)

Star Strider
Star Strider on 4 Aug 2014
Edited: Star Strider on 4 Aug 2014
You likely need to allow the function to find its own centre:
ft=fittype('A*erfc(2e5*sqrt(a*(x-b)))+c', 'independent', 'x', 'dependent', 'y' );
Your equation assumes your data are centred about x=0. Changing the expression from ‘a*x’ to ‘a*(x-b)’ allows the function to centre around b. I can’t test your code, but that should work.
  2 Comments
Nachiketa
Nachiketa on 4 Aug 2014
Thanks for the reply!
x-b does not work (since its not real)
I tried x+b... but I still get the above figure without any fitting.
Star Strider
Star Strider on 4 Aug 2014
My pleasure!
Actually this is what I intended:
ft=fittype('A*erfc(2e5*sqrt(a*x)-b)+c', 'independent', 'x', 'dependent', 'y' );
I initially put b in the wrong place in the erfc argument. My apologies. (I was up late last night fighting a spambot here on MATLAB Answers.)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!