Error in lsqcurvefit with 3 unknown parameters involved

3 views (last 30 days)
Hi. Would like to ask for any enlightenment here. I am using lsqcurvefit as a curvefitting method.... However, I could't decipher how the error keeps on appearing on the parameters even if I changed the values. As you can see below, the resulting equation is:
but it should be . Hence the error regarding array.
Hoping for some help here. Thank you.
syms i_x
syms parameter [1 2 3]
YYx=exp((-parameter(1).*valx./parameter(2))+parameter(3).*i_x)
YYHCl = 
fun4=matlabFunction(YYx,'vars',{parameter,i_x});
obj=@(P4,I_x) arrayfun(@(i_x) fun4(P4,i_x), I_x);
P40=0.003;
P4=lsqcurvefit(obj,P40,I_x(:),Y_x(:));
Index exceeds the number of array elements. Index must not exceed 1.

Error in symengine>@(in1,i_HCl)exp(i_HCl.*in1(3)-in1(1)./in1(2))

Error in solution (line 14)
obj=@(P4,I_HCl) arrayfun(@(i_HCl) fun4(P4,i_HCl), I_HCl);

Error in solution (line 14)
obj=@(P4,I_HCl) arrayfun(@(i_HCl) fun4(P4,i_HCl), I_HCl);

Error in lsqcurvefit (line 225)
initVals.F = feval(funfcn_x_xdata{3},xCurrent,XDATA,varargin{:});

Caused by:
Failure in initial objective function evaluation. LSQCURVEFIT cannot continue.
Y_HCl_calcc=obj(P4,I_HCl(:));
plot(I_HCl, Y_HCl, 'k*', I_HCl, Y_HCl_calcc, 'g-o')
legend({'Y_HCl exp)', 'Y_HCl calc)'}, 'location', 'best')
parameter1=P4(1)
parameter2=P4(2)
parameter3=P4(3)

Accepted Answer

Matt J
Matt J on 20 Oct 2021
If your model has 3 unknown parameters, then your initial guess P40 must be a vector of length 3.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!