《Matlab多项式拟合》由会员分享,可在线阅读,更多相关《Matlab多项式拟合(3页珍藏版)》请在金锄头文库上搜索。
1、MATLAB 学习-多项式拟合(1 )(l)polyfit 函数MATLAB的polyfit函数用于多项式拟合,其语法为:p = polyfit(x, y, k);其中,x, y分别是横纵坐标向量,它们不仅元素个数相同,而且同为行向量或同为列向量。k为非负整数,是待拟合的多项式的最高次数。p是输岀项,为待拟合的多项式的系数向量(由高次到低次排列)。例子:在MATLAB的命令窗口输入以下代码: x = 1, 2, 3, 4; y = 3, 5, 7, 9; p = polyfit(x, y,1)敲击回车键,得到输出结果:p =2.0000 1.0000所以拟合得的函数就是:y = 2.0000X
2、 + 1.0000.在进行多项式拟合时,必须注意的是,拟合的精度是有限的,一般而言,需要满足以下条件:记m为不重复的横坐标的数目,则拟合次数k clear x = 1, 2, 3; y = 3, 5, 7; p = polyfit(x, y,1); % 得到拟合多项式:y =2*x +13,4, 5; t = 1, 2, s = polyval(p, t)得到结果:s =3.00005.00007.00009.000011.0000(3 )计算多项式拟合的方差已知原始数据x和y,拟合得到多项式 p,判断拟合效果好坏的一个重要指标是方差,方差的计 算方法是e = sum(y - polyval(
3、p, x).A2).polyval(p, x)得到拟合值向量,y是真实值向量,两者相减得到真实值和拟合值的差值向量,sum“ .A2表示对矩阵中的每一个元素进行平方运算,于是得到差值向量中每一个元素的平方,是求和函数,显然就是求差值向量元素的平方和,而这就是方差。例子:编写代码求多项式: X = 1, 2, 3, 4; y = 4, 5, 6, 7; p = polyfit(x, y,1)得到p =1.00003.0000于是拟合的多项式为:y = 1.0000X +3.0000编写代码求方差: e = sum(y - polyval(p, x).a2)得到方差:e =3.1554e-030可见,方差-0.表明拟合效果很好。