rounding - lsqcurvefit when expecting small coefficients -
i've generated plot of attenutation seen in electrical trace frequency of 14e10 rad/s. ydata ranges approximately 1-10 np/m. i'm trying generate fit of form
y = a*sqrt(x) + b*x + c*x^2.
i expect around 10^-6, b around 10^-11, , c around 10^-23. however, smallest coefficient lsqcurvefit return 10^-7. also, return nonzero coefficient a, while returning 0 b , c. fit looks physics indicates b , c should not 0.
here how i'm calling function
% measurement estimate x_alpha = [1e-6 1e-11 1e-23]; lb = [1e-7, 1e-13, 1e-25]; ub = [1e-3, 1e-6, 1e-15]; x_alpha = lsqcurvefit(@modelfun, x_alpha, omega, alpha_t, lb,ub)
here model function
function [ yhat ] = modelfun( x, xdata ) yhat = x(1)*xdata.^.5 + x(2)*xdata + x(3)*xdata.^2; end
is possible lsqcurvefit return such small coefficients? error in rounding or else? ways can change tolerance see fit closer expect?
found stackoverflow page seems address issue!
Comments
Post a Comment