永发信息网

拟合函数时出错,请教大神如何解决

答案:2  悬赏:10  手机版
解决时间 2021-02-01 05:44
  • 提问者网友:浩歌待明月
  • 2021-01-31 16:29
m文件:function f=nihehanshu(x,xdata)
f=(9.516e-6)*exp(x(1).*xdata+x(2).*xdata.^2/2)*(1+4*1.01e5*(x(3)+x(4).*xdata+x(5).*xdata.^2)).^(-1/4)*4/3

命令窗口:
xdata=[293.874,396.817,491.807,594.812,697.754,792.807,895.687,998.63,1101.51,1196.93,1204.33,1291.86,1299.32,1394.81,1402.26,1497.19,1600.07,1702.89,1797.76,2209.15,2256.43,2738.28,3242.81,3612.59];
ydata=[95.4882,95.6257,95.7631,95.881,96.0185,96.1364,96.2933,96.4308,96.5887,96.5887,96.7642,96.7455,96.9016,96.883,97.039,97.1959,97.3528,97.5293,97.7056,98.3724,98.5093,99.5277,100.917,102.168];
x0=[10,10,10,10,10];
[x,resnorm]=lsqcurvefit(@nihehanshu,x0,xdata,ydata)
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> nihehanshu at 2
f=(9.516e-6)*exp(x(1).*xdata+x(2).*xdata.^2/2)*(1+4*1.01e5*(x(3)+x(4).*xdata+x(5).*xdata.^2)).^(-1/4)*4/3
Error in ==> lsqcurvefit at 209
initVals.F = feval(funfcn_x_xdata{3},xCurrent,XDATA,varargin{:});
Caused by:
Failure in initial user-supplied objective function evaluation. LSQCURVEFIT cannot
continue.
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-01-31 16:54
你的目标函数错误,自己核查一下。MATLAB不一定好用,可以试试origin 1stopt之类的软件
全部回答
  • 1楼网友:持酒劝斜阳
  • 2021-01-31 17:08
期待看到有用的回答!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯