非线性回归

时间:2017-02-01 05:04:30

标签: matlab regression non-linear-regression

我正在尝试进行非线性回归,找到常数Is和n,最小二乘曲线拟合。这是公式Is(exp(1).^(V/26.*n)) 这是我的代码

fun = @(n,Is)Is(exp(1).^(V/26.*n));
x0 = [0,14];
x = lsqcurvefit(fun,x0,V,I)

它改编了以下

  

矩阵尺寸必须达成一致。

     

@(n,Is)中的错误是(exp(1)。^(V / 26. * n))

     

lsqcurvefit出错(第202行)               initVals.F = feval(funfcn_x_xdata {3},xCurrent,XDATA,varargin {:});

     

引起:       初始目标函数评估失败。 LSQCURVEFIT无法继续。

1 个答案:

答案 0 :(得分:0)

来自https://www.mathworks.com/help/optim/ug/lsqcurvefit.html

  

要拟合的函数,指定为函数句柄或函数名称。 fun是一个带有两个输入的函数:向量或矩阵x,向量或矩阵xdata。 fun返回向量或矩阵F,在x和xdata处评估目标函数。

在您的情况下,fun仅获取适合您的参数,而不是您的数据。我建议将其改为

fun = @(X,V) X(2)*(exp(1).^(V/26.*X(1)));