代码之家  ›  专栏  ›  技术社区  ›  carloscc

非线性回归

  •  0
  • carloscc  · 技术社区  · 7 年前

    我正在尝试用最小二乘曲线拟合来进行非线性回归,以找到常数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行) 初始化。F=feval(funfcn_x_xdata{3},xCurrent,xdata,varargin{:});

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Noel Segura Meraz    7 年前

    从…起 https://www.mathworks.com/help/optim/ug/lsqcurvefit.html

    要拟合的函数,指定为函数句柄或函数名称。乐趣是一种需要 两个输入:向量或矩阵x和向量或矩阵扩展数据。 fun返回向量或矩阵F,目标函数在x和xdata处求值。

    在你的情况下 fun 仅获取要拟合的参数,而不是数据。我建议改为

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