作业帮 > 综合 > 作业

Matlab 多项式拟合问题

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 20:34:03
Matlab 多项式拟合问题
在张志涌《精通matlab6.5版》P151里有如下内容
5.10.1.3多项式拟合的MATLAB实现
【*例5.10.1.3-1】实施函数拟合的较完整描述示例.
在进行函数拟合时,有几个问题要回答:(1)采用什么函数模型?(2)模型的结构参数是什么?(3)参数的估计值如何计算?(4)估计参数的离差?
本例采用多项式模型,模型阶数(结构参数)通过 量确定,多项式系数运用最小二乘估计,并给出相应的离差.具体如下.
%被拟合的原始数据
x=0:0.1:1;y=[2.1,2.3,2.5,2.9,3.2,3.3,3.8,4.1,4.9,5.4,5.8];
dy=0.15;%原数据y的标准差
for n=1:6%依次用1到6阶多项式去拟合
[a,S]=polyfit(x,y,n);%计算拟合多项式系数
A{n}=a;%用元胞数组记录不同阶次多项式的系数
da=dy*sqrt(diag(inv(S.R'*S.R)));%计算各系数的误差
DA{n}=da';%用元胞数组记录不同阶次多项式系数的误差
freedom(n)=S.df;%记录自由度
[ye,delta]=polyval(a,x,S);%计算拟合多项式值的范围
YE{n}=ye;%用元胞数组记录不同阶次拟合多项式的均值
D{n}=delta;%用元胞数组记录不同阶次拟合多项式的离差
chi2(n)=sum((y-ye).^2)/dy/dy;%计算不同阶次的 量.
end
Q=1-chi2cdf(chi2,freedom);%用于判断拟合良好度
%适当度的图示
subplot(1,2,1),plot(1:6,abs(chi2-freedom),'b')
xlabel('阶次'),title('chi 2与自由度')
subplot(1,2,2),plot(1:6,Q,'r',1:6,ones(1,6)*0.5)
xlabel('阶次'),title('Q 与0.5 线')
dy=0.15;是如何得出的?或者是什么含义啊!这个在程序中好像很重要啊!
Matlab 多项式拟合问题
dy应该是已知条件,原数据y的标准差,即y中的每一个点的测量误差,用它来估算拟合系数的误差
再问: 可是,我有一组x和y,要拟合曲线,确定最佳阶数的话,怎么定dy呢?
再答: 如果不需要计算系数误差就无需dy。 判断拟合良好度是用chi2(n)=sum((y-ye).^2)/dy/dy,在这里dy是个常数,它取多少都不影响不同阶数间拟合度相对好坏的评价。
再问: 呵呵,厉害,有点茅塞顿开啊! 想请教,如果我要确定最佳阶数,还有什么其他方法吗?
再答: 我不知道还有什么其他方法
再问: 谢谢你啊