Error in lsqcurvefit with 3 unknown parameters involved

2 Ansichten (letzte 30 Tage)
lvenG
lvenG am 20 Okt. 2021
Kommentiert: lvenG am 20 Okt. 2021
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)

Akzeptierte Antwort

Matt J
Matt J am 20 Okt. 2021
If your model has 3 unknown parameters, then your initial guess P40 must be a vector of length 3.
  1 Kommentar
lvenG
lvenG am 20 Okt. 2021
Thank you so much that finally made sense, didn't realize it at first.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by