我正在尝试进行非线性回归,找到常数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无法继续。
答案 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)));