期望小系数时lsqcurvefit

时间:2013-09-04 00:51:25

标签: rounding curve-fitting

我已经生成了一个在14e10 rad / s频率的电气迹线中看到的注意力的图表。 ydata的范围约为1-10Np / m。我正在尝试生成一种形式

y = A * sqrt(x)+ B * x + C * x ^ 2。

期望 A约为10 ^ -6,B约为10 ^ -11,C约为10 ^ -23。但是,lsqcurvefit的最小系数将返回10 ^ -7。此外,它只返回A的非零系数,而B和C返回0。拟合实际看起来非常好,但物理学表明B和C不应该为0.

以下是我如何调用函数

% 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)

这是模型函数

function [ yhat ] = modelfun( x, xdata )

yhat = x(1)*xdata.^.5 + x(2)*xdata + x(3)*xdata.^2;
end

是否有可能让lsqcurvefit返回如此小的系数?四舍五入的错误还是其他的错误?我可以通过任何方式改变公差,使其看起来更符合我的期望吗?

1 个答案:

答案 0 :(得分:0)

找到了一个似乎解决了这个问题的stackoverflow页面!

fit using lsqcurvefit