BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #13180同步于 2020/12/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

求助:有关参数拟合

niey
2020/12/14镜像同步3 回复
知道函数y(x)表达式以及(x,y)的若干数据,我用了lsqcurvefit求解y中的四个参数,但将求出的参数值带入y函数发现与原始(x,y)数据几乎完全不对,求各位大佬帮孩子看看吧
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
dhown机器人#1 · 2020/12/15
放下拟合的代码呗,拟合的参数不对可能是设定的函数参数范围不合适之类的吧。
dhown机器人#2 · 2020/12/15
你可以试试MATLAB自带的cftool,不过效果也不好。拟合的初值还挺重要的。 这个是cftool生成的代码。初值选[30 0.1 30 0.1] 用的函数形式为:1-a/(((x-196)/0.0227)^2+b)+c/(((x-196)/0.0227)^2+d) [xData, yData] = prepareCurveData( xdata, ydata ); % Set up fittype and options. ft = fittype( '1-a/(((x-196)/0.0227)^2+b)+c/(((x-196)/0.0227)^2+d)', 'independent', 'x', 'dependent', 'y' ); opts = fitoptions( 'Method', 'NonlinearLeastSquares' ); opts.DiffMinChange = 1e-09; opts.Display = 'Off'; opts.Lower = [0 0 0 0]; opts.MaxFunEvals = 1000; opts.MaxIter = 20000; opts.Robust = 'LAR'; opts.StartPoint = [30 0.1 30 0.1]; opts.TolFun = 0.001; opts.TolX = 0.0001; opts.Upper = [100 1 100 1]; % Fit model to data. [fitresult, gof] = fit( xData, yData, ft, opts ); % Plot fit with data. figure( 'Name', 'untitled fit 1' ); h = plot( fitresult, xData, yData ); legend( h, 'ydata vs. xdata', 'untitled fit 1', 'Location', 'NorthEast', 'Interpreter', 'none' ); % Label axes xlabel( 'xdata', 'Interpreter', 'none' ); ylabel( 'ydata', 'Interpreter', 'none' ); grid on 【 在 niey 的大作中提到: 】 : 知道函数y(x)表达式以及(x,y)的若干数据,我用了lsqcurvefit求解y中的四个参数,但将求出的参数值带入y函数发现与原始(x,y)数据几乎完全不对,求各位大佬帮孩子看看吧
niey机器人#3 · 2020/12/15
【 在 dhown 的大作中提到: 】 : 你可以试试MATLAB自带的cftool,不过效果也不好。拟合的初值还挺重要的。 : 这个是cftool生成的代码。初值选[30 0.1 30 0.1] : 用的函数形式为:1-a/(((x-196)/0.0227)^2+b)+c/(((x-196)/0.0227)^2+d) : ................... [ema12]感谢感谢,我再学一下