首页 文章

非线性回归

提问于
浏览
0

我试图做一个非线性回归找到常数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

    来自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)));
    

相关问题