matlab 使用lsqcurvefit函数出错 需要拟合的函数m文件:function f = nihehanshu(a,t)f = (a(1)/a(2))^a(1)*t^(a(1)-1)*exp(-t*a(1)/a(2))/gamma(a(1));程序:t = [1,1.26,1.58,2,2.51,3.16,3.98,5.01,6.31,7.94,10,12.59,15.85,19.95,25.12,31.62];
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/11 21:24:24
![matlab 使用lsqcurvefit函数出错 需要拟合的函数m文件:function f = nihehanshu(a,t)f = (a(1)/a(2))^a(1)*t^(a(1)-1)*exp(-t*a(1)/a(2))/gamma(a(1));程序:t = [1,1.26,1.58,2,2.51,3.16,3.98,5.01,6.31,7.94,10,12.59,15.85,19.95,25.12,31.62];](/uploads/image/z/4510846-46-6.jpg?t=matlab+%E4%BD%BF%E7%94%A8lsqcurvefit%E5%87%BD%E6%95%B0%E5%87%BA%E9%94%99+%E9%9C%80%E8%A6%81%E6%8B%9F%E5%90%88%E7%9A%84%E5%87%BD%E6%95%B0m%E6%96%87%E4%BB%B6%EF%BC%9Afunction+f+%3D+nihehanshu%28a%2Ct%29f+%3D+%28a%281%29%2Fa%282%29%29%5Ea%281%29%2At%5E%28a%281%29-1%29%2Aexp%28-t%2Aa%281%29%2Fa%282%29%29%2Fgamma%28a%281%29%29%3B%E7%A8%8B%E5%BA%8F%EF%BC%9At+%3D+%5B1%2C1.26%2C1.58%2C2%2C2.51%2C3.16%2C3.98%2C5.01%2C6.31%2C7.94%2C10%2C12.59%2C15.85%2C19.95%2C25.12%2C31.62%5D%3B)
matlab 使用lsqcurvefit函数出错 需要拟合的函数m文件:function f = nihehanshu(a,t)f = (a(1)/a(2))^a(1)*t^(a(1)-1)*exp(-t*a(1)/a(2))/gamma(a(1));程序:t = [1,1.26,1.58,2,2.51,3.16,3.98,5.01,6.31,7.94,10,12.59,15.85,19.95,25.12,31.62];
matlab 使用lsqcurvefit函数出错
需要拟合的函数m文件:
function f = nihehanshu(a,t)
f = (a(1)/a(2))^a(1)*t^(a(1)-1)*exp(-t*a(1)/a(2))/gamma(a(1));
程序:
t = [1,1.26,1.58,2,2.51,3.16,3.98,5.01,6.31,7.94,10,12.59,15.85,19.95,25.12,31.62];
y = [0.0012,0.0024,0.0044,0.0078,0.0134,0.0217,0.033,0.0462,0.0586,0.0662,0.0656,0.0404,0.024,0.0113,0.004];
a0 = [1,1];
[a,resnorm] = lsqcurvefit(@nihehanshu,a0,t,y)
程序提示出错:
Error using ==> mpower
Matrix must be square.
Error in ==> nihehanshu at 2
f = (a(1)/a(2))^a(1)*t^(a(1)-1)*exp(-t*a(1)/a(2))/gamma(a(1));
Error in ==> lsqcurvefit at 209
initVals.F = feval(funfcn_x_xdata{3},xCurrent,XDATA,varargin{:});
Error in ==> Nakagami_fit at 47
[a,resnorm] = lsqcurvefit(@nihehanshu,a0,t,Pr)
Caused by:
Failure in initial user-supplied objective function evaluation.LSQCURVEFIT cannot continue.
matlab 使用lsqcurvefit函数出错 需要拟合的函数m文件:function f = nihehanshu(a,t)f = (a(1)/a(2))^a(1)*t^(a(1)-1)*exp(-t*a(1)/a(2))/gamma(a(1));程序:t = [1,1.26,1.58,2,2.51,3.16,3.98,5.01,6.31,7.94,10,12.59,15.85,19.95,25.12,31.62];
function f = nihehanshu(a,t)
f = (a(1)/a(2))^a(1)*t.^(a(1)-1).*exp(-t*a(1)/a(2))/gamma(a(1)); %矩阵对应元素计算,要加点
----------------------------------------------
t = [1.26,1.58,2,2.51,3.16,3.98,5.01,6.31,7.94,10,12.59,15.85,19.95,25.12,31.62];
y = [0.0012,0.0024,0.0044,0.0078,0.0134,0.0217,0.033,0.0462,0.0586,0.0662,0.0656,0.0404,0.024,0.0113,0.004]; %t和y的长度要一致
a0 = [4,13]; % lsqcurvefit 对初值的精确度要求较高
[a,resnorm] = lsqcurvefit(@nihehanshu,a0,t,y)