1 数表的拟合计算
多项式拟合
所谓拟合是指寻找一条平滑的曲线,最不失真地去表现测量数据。反过来说,对测量
的实验数据,要对其进行公式化处理,也就是用一种计算方法,构造一个函数来近似表达
数表的函数关系。由于函数构造方法的不同,有许多的逼近方法,机械设计中常用最小平
方逼近(最小二乘法理论)来实现曲线的拟合。根据该理论可推导出计算公式,而 MATLAB
在此数学基础上用一个函数命令 polyfit 即可实现,命令格式为:
p
polyfit
,(
),
nyx
式中:x 、y 为已知数据,n 为拟合多项式的阶次,p 为返回所得多项式的系数向量,
通常多项式拟合中阶数越大,拟合的精度就越高。
y
i
例 1:在工程技术中,通过实验获得一组
( i
xf
)
实验数据如下表 1:
表 1 实验实测数据
x
0
1
2
3
4
5
6
7
8
9
0
5.2
9.8
12.4
16.8
21.2
25.5
28.4
1.2
y
下面程序分别设 1n , 2n
4.3
进行一阶和二阶的拟合,结果如图 1 所示。
% 曲线拟合(Curve fitting)
x=[0,1,2,3,4,5,6,7,8,9]
y=[0.0,1.2,3.8,8.5,17.1,20.2,34.8,45.0,67.6,85.0]
%绘实验节点数据
plot(x,y,'*r')
hold on
grid
%绘一阶拟合曲线
p1=polyfit(x,y,1)
py1=polyval(p1,x)
plot(x,py1,'g')
hold on
grid
%绘二阶拟合曲线
p2=polyfit(x,y,2)
py2=polyval(p2,x)
plot(x,py2,'b')
grid
hold on
图 1 曲线拟合
根据所编制的程序,在 MATLAB 的工作空间可得:
1n 时,
.3[
p
1
4545
.2
3188
.2
x
.1
8358
]
,线性拟合得一条直线,即直线方程式为:
4545
.0
,拟合得一条二次曲线,即曲线方
]
4773
3188
.3
y
1
.0[
1648
时,
2n
程式为:
p
2
y
2
.0
1648
x
2
.1
8358
x
.0
4773