一元函数拟合可用cftool工具箱, 对于一元多项式拟合也可用polyfit()
多元线性函数y=ax的拟合函数regress()
语法是:
[a, aint]=regress(y,x,alpha)
其中1-alpha是置信度, 默认alpha=0.05. 即置信度为�, aint是a的置信区间
多元非线性函数最小二乘拟合nlinfit()(在MATLAB的统计工具箱中); lsqcurvefit()(在MATLAB的优化工具箱中)
函数nlinfit()的语法是:
[a,r,J]=nlinfit(X,Y,Fun,a0,options)
其中Fun是函数y=f(a,x)的M-函数, 用@函数文件名表示, 或由inline()函数表示,X是自变量的实测数据阵,第j列是第j个自变量数据, Y是因变量的实测数据列向量,其第i列的值是函数y=Fun(a,x)中x取X的第i行时的测量值. a0是参数a的估计初值列向量,输出是在最小二乘意义下的最佳参数a列向量,残差r,残差r对a的Jacobi向量构成的矩阵J,options是选项, 可以在运行nlinfit前先用statset来修改默认的参数值
常用的参数为
'MaxIter' - 最大叠代次数,默认值为100.
'TolFun' - 残数平方和允许值. 默认值 1e-8.
'TolX' - 参数a的允许误差. 默认值 1e-8.
函数nlinfit 忽略NaN
设置法如
options=statset(‘MaxIter’, 200, ‘TolFun’, 1e-10)
再运行 c=nlparci(a,r,J)就得到置信度为95%的置信区间c
再用n=numel(c);
errorbar(1:n,a,c(:,1)-a,c(:,2)-a); 绘制出参数估计及其置信区间.
也可以用nlintool图形交互式窗口来拟合,格式是
nlintool(X,Y, Fun, a0, a, 'xname','yname');
函数lsqcurvefit()的语法是
[a, rnorm, r, exitflag]=lsqcurvefit(Fun, a0, X,Y, lb,ub,options)
其中lb,up是a的预估下界和上界向量,rnorm为误差平方和, exitflag是运行情况,
1 收敛

本文详细介绍了MATLAB中用于一元和多元函数拟合的工具,如cftool、polyfit、regress、nlinfit和lsqcurvefit。重点讲解了非线性函数最小二乘拟合的nlinfit和lsqcurvefit函数,包括其语法、参数设置以及实际应用示例。此外,还提到了优化选项optimset的使用。
最低0.47元/天 解锁文章

3万+

被折叠的 条评论
为什么被折叠?



