We have been trying to fit experimental diffusion results to the diffusion equation using Matlab to evaluate the Diffusion coefficient. The equation we used: y=C*erfc(x/(2*sqrt(D*t))) Experimental values [x],[y] and t are given. C and D are to be evaluated from the curve fit. We used cftool of Matlab. We have a problem in getting the results. We get error message as: "Error using ==> <a href="error:C:\Program Files\MATLAB\R2007b\toolbox\curvefit\curvefit\@fittype\feval.m,97,0">fittype.feval at 97</a> Error in fittype expression ==> C.*erfc(x./(2.*sqrt(D.*300))) ??? Error using ==> erfcore Input must be real." Can anyone help?
It looks like the problem is that the error function requires real input arguments. Looking at your expression I would say the most likely problem is that the D parameter gets negative during the fitting, and as such maybe you could try to use abs(D) instead, although this could lead to the fitting algorithm having problems finding the right values.