MATLAB中的非线性最小二乘误差

MATLAB中的非线性最小二乘误差,matlab,Matlab,我试图用MATLAB中的非线性方程拟合一些数据。我使用的是lsqnonlin软件包。我似乎无法找出为什么我的估计会出错。我的代码如下所示: fun = @(x)x(1)*log(x(2)/v)-y; x0 = [15,15]; lb = [15,15]; ub = [1000,1000]; options = optimoptions('lsqnonlin','Display','iter'); [x,resnorm,residual,exitflag,output] = lsqnonlin(f

我试图用MATLAB中的非线性方程拟合一些数据。我使用的是lsqnonlin软件包。我似乎无法找出为什么我的估计会出错。我的代码如下所示:

fun = @(x)x(1)*log(x(2)/v)-y;
x0 = [15,15];
lb = [15,15];
ub = [1000,1000];
options = optimoptions('lsqnonlin','Display','iter');
[x,resnorm,residual,exitflag,output] = lsqnonlin(fun,x0,lb, ub, options)
x   
其中v是我的数据。V的范围从0.2到~14,因此我将下限设置为15,以便始终定义我的函数。然而,当我运行程序时,我仍然得到一个错误,指出目标函数在初始点返回未定义的值


非常感谢您的任何想法。

如果您为重现错误的
v
y
给出准确的值,并给出错误本身,这将是非常有帮助的。正如Phil所提到的,请确保您的问题包含a,否则您将面临被关闭的风险(出于两个不同的原因)。如果您为重现错误的
v
y
给出准确的值,并给出错误本身,这将非常有帮助。正如Phil所提到的,请确保您的问题包含a,否则您可能会将其作为离题关闭(出于两个不同的原因)。