lsqcurvefit initial values stays the same
6 次查看(过去 30 天)
显示 更早的评论
Hi all, I am working on this non-linear square curvefit function, however, despite many attempts, the initial guessess were always chosen despite of given boundaries. Unbounded worked. But that isn't within the bounds. I really at my end of working on possible ideas. The data given as a total of 101 for each array.
EDIT: I have made some changes which is now bounded and using the default trust-region-reflective algorithm
T = readtable('skin3.csv','ReadVariableNames',true); %skin3 Measured data
x = T{:,1}; %freq
y = T{:,2}; %real
%Transpose
freq = x.';
e_real = y.';
%optimoptions(@lsqnonlin,'StepTolerance',1e-6);
options = optimset('MaxFunEvals',10000);
options=optimset(options,'MaxIter',10000);
guess = 40;
UB = guess + 10;
LB = guess - 10;
lb = [-20,LB,1,0,-0.1];
ub = [20,UB,40,1,0.1];
x0 = [0.9,guess,8.2,0.236,0.05];
x = lsqcurvefit(@flsq,x0,freq,e_real,lb,ub,options)
e_f = x(1);
e_del = x(2)*1e2;
tau1 = x(3)*1e-12;
alf1 = x(4);
sig = x(5);
yfit = real(flsq(x,freq));
%plot e_real against freq
plot(freq,e_real,'k.',freq,yfit,'b-')
legend('Data','Fitted exponential')
title('Data and Fitted Curve')
Function:
function y = flsq(x,freq)
x(3)=x(3)*1e-12;
y = x(1) + (x(2)-x(1))./(1 + ((1j*2*pi.*freq*x(3)).^(1-x(4))))+x(5)./(1j*2*pi*freq*8.854e-12);
end
As you can see the result remained the same while the curve is not even close:
2 个评论
Torsten
2019-9-4
I guess you get complex numbers for x(1),...,x(5) when simulating the unbounded case.
Upper and lower bounds on the parameters only make sense if they are real-valued.
Do you see the problem ?
Matt J
2019-9-13
Alex Sha's comment moved here:
Hi, chuen kai chung, would you please attach your data file please, either in Excel format or text format
采纳的回答
Alex Sha
2019-9-13
Have a look the results below, it is curve fitting of complex function:
Root of Mean Square Error (RMSE): 0.41174673299835
Sum of Squared Residual: 34.2461451712325
Correlation Coef. (R): 0.993473244156721
R-Square: 0.986989086855279
Adjusted R-Square: 0.98661284187563
Determination Coef. (DC): 0.984776903952251
F-Statistic: 6477.07873557149
Parameter Best Estimate
-------------------- -------------
x1 -11.6554338755058
x2 42.431711066831
x3 -4.55460615654172E-12
x4 0.295425568159937
x5 -0.527862954468673
1 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Get Started with Curve Fitting Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!