张永涛 贾延明
(商丘工学院 商丘 476000)
最小二乘法中代数多项式曲线拟合的分析及实现*
张永涛 贾延明
(商丘工学院 商丘 476000)
最小二乘法是广泛使用的数据分析方法,它通过一组实验数据,按残差平方和最小准则,寻求一个解析函数,从而描述几个变量之间的关系。论文介绍了求解最小二乘法中代数多项式曲线拟合的数学关系,并给出了通用的C语言程序被调用函数。
最小二乘法; 代数多项式; 曲线拟合; C程序
在工程技术和科学实验中,由于影响因素的复杂性及各种各样的原因,量与量之间往往找不到完全确定的函数关系[3]。而最小二乘法是广泛使用的数据分析方法,它通过一组实验数据,按残差平方和最小准则,寻找一个解析函数,以此来描述几个变量之间的关系,从而揭示大量实测数据之间的客观规律。
例如,某化学反应中,生成物的浓度与时间的关系,如表1,求浓度y与t之间的函数关系。
又如,合成纤维抽丝工段,第一导丝盘的速度v与电源频率x的关系,对丝的质量影响很大。由生产记录得到的数据为表2,试求速度v与电源频率x之间的函数关系。
表1 生成物的浓度与时间的关系
表2 速度与电源频率的关系
诸如此类的问题中,量与量之间既存在相互依赖关系,但又不能由一个(或几个)变量的值,通过精确的解析表达式求出另一个变量的值[5]。人们只能通过实验,使用仪器获得大量的实测数据。通过进一步的研究表明,这些大量的偶然现象,其内部隐藏着客观规律[6]。
假设通过某种实验观测手段得到了m组数据(ti,yi),i=1,2,3,…,m,现在的任务是如何寻求一近似函数f(x)去逼近y。依据最小二乘法原理,采用代数多项式曲线拟合的方法,可以寻求到近似函数f(x)[10]。
设有n-1次多项式:
(1)
求拟合已知数据。
令
ri=yn(ti)-yi(i=1,2,…,m)
(2)
式中ri为残量,表示拟合的误差。一般ri≠0。本文目的是按最小二乘法准则,确定式(1)中诸系数xi,即求解使残量ri的平方和为最小的xi[8]。因为
=I(x1,x2,…,xn)
(3)
取最小值,于是就归结为求多元函数I的极值问题。为使I取最小值,x1,x2,…,xn必须满足
(k=1,2,…,n)
即
(4)
方程组(4)写成矩阵形式为
(5)
令系数矩阵为C,变量列向量为X,常数项列向量为B,则方程组(5)可简写为
CX=B
(6)
方程组(6)是含有n个未知数、n个方程的方程组,称为正规方程组。该方程组是否有唯一解呢?
根据正规方程组有唯一解的条件可知,对方程组(6)来说,必须有|C|≠0,才能保证有唯一解[1]。下面来证明|C|≠0。
现用反证法予以证明。假设|C|=0,根据给定的实测数据,则齐次线性方程组
(7)
有非零解(x1,x2,…,xn)T。
在式(7)中的方程分别乘以x1,x2,…,xn,然后相加,并除以式(1)可得
(8)
由式(8)可知,yn(ti)=0,i=1,2,…,m,即yn(t)有m个零点。但n≤m,yn(t)是n-1次多项式,零点个数不超过n-1个,除非yn(t)的所有系数均为0,即x1=x2=…xn=0,这与方程组(7)有非零解矛盾。因此,假设|C|=0是错误的,而|C|≠0,方程组(6)有唯一解。
用主元消去法解方程组(6)得解向量X,X即为多项式yn(t)的系数列向量[2]。
根据前面的原理总结出最小二乘线性拟合算法的具体步骤为
第2步:输入数据获得矩阵
第3步:计算A的转置矩阵
解方程组获得系数a0,a1;
第6步:输出运算结果[7]。
根据以上步骤总结出算法流程如图1所示。
图1 算法流程图
/*主元素消去法解方程组被调用函数*/
float proc1(float c[m][m],n)
{ int i,j,k,p,q;
哪有什么星星,天阴着呢,范青青就是在找借口和他约会,他们出去吃了夜市,范青青那晚特别兴奋,眉眼之中写满快乐,和之前的范青青有点儿不一样。田铭的心也跟着陌生地愉悦起来。
float e,r,l[n],s1[n];
for(i=1;i<=n;i++)
{
{p=i;q=1;e=c[i][1];}
for(j=1;j<=n;j++)
{
for(k=1;k<=n;k++)
if(fabs(c[i][k])<=fabs(e)) continue;
else
{e=c[j][k];p=j;q=k;}
}
if(fabs(e>=1e-6)) goto loop3;
else
printf("no unigue solution. ");
return;
loop3:if(p==i) goto loop4;
for(k=1;k<=n+1;k++)
{
s1[k]=c[i][k];
c[i][k]=c[p][k];
c[p][k]=s1[k];
}
loop4:for(j=1;j<=n;j++)
{
if(j==i) continue;
if(c[j][q]==0) continue;
r=c[j][q]/c[i][q];
for(k=1;k<=n+1;k++)
c[j][k]=c[j][k]-c[i][k]*r;
}
l[i]=q;
}
for(i=1;i<=n;i++)
{q=l[i];
s1[g]=c[i][n+1]/c[i][g];
}
return;
在日常的工作和学习中,我们不时会遇到各方面的数据问题,然而不是所有的数据都是有用的,此时必需对所给数据适当的进行处理和筛选,以使达到预期的目的[9]。在这个过程中采取曲线拟合不失为一种可取的方法,当然这也是曲线拟合的相关应用所在[4]。值得注意的是曲线拟合的最小二乘法的应用并不局限,比如:数据采集、模型建立、部分问题求解及获取设备故障率等,因此对曲线拟合知识的掌握、对最小二乘法的研究与运用是值得的也是必需的。本文只是对曲线拟合的相关方法及实现作了一定介绍,不少地方还有待完善与提高。
[1] 高盼.基于最小二乘法的道路平面曲线拟合[J].测绘信息与工程,2011,36(2):19-21. GAO Pan. Filtering of LiDAR Data Based on Modified Slope Filtering Algorithm[J]. Journal of Geomatics,2011,36(2):19-21.
[2] 张亚军,陈立新.最小二乘法和熔丝编程[J].电子与封装,2012,12(2):15-18. ZHANG Yajun, CHEN Lixin. Least Square and Fuse Programming[J]. Electronics & Packaging,2012,12(2):15-18.
[3] 袁慰平,孙志忠.计算方法与实习[M].第四版.南京:东南大学出版社,2011:56-62. YUAN Weiping, SUN Zhizhong. Computational Methods and Practice[M]. Fourth Edition. Nanjing: Southeast University Press,2011:56-62.
[4] 唐旭清.数值计算方法[M].北京:科学出版社,2015:88-102. TANG Xuqing. Numerical Calculation Method[M]. Beijing: Science Press,2015:88-102.
[5] 罗海明,韩亚萍.最小二乘法在伏安法测电阻实验中的应用[J].大学物理实验,2012,25(2):88-90. LUO Haiming, HAN Yaping. Applications of Least-squares Method in the Experiment of Voltammetry Measuring Resistance[J]. Physical Experiment of College,2012,12(2):15-18.
[6] 兰燕娜,薛同莲.基于VB语言实现最小二乘法直线拟合[J].长江大学学报(自然科学版),2011,8(6):92-94. LAN Yanna, XUE Tonglian. Based on VB Language of the Least Square Method of Linear Fitting[J]. Journal of Yangtze University(Nat Sci Edit),2011,8(6):92-94.
[7] 唐妍霞.用最小二乘法解决的一个物理问题[J].河北北方学院学报(自然科学版),2012,28(1):8-11. TANG Yanxia. A Physical Problem Solved with Least Square Mehod[J]. Journal of Hebei North University(Natural Science Edition),2012,28(1):8-11.
[8] 贾小勇,徐传胜.最小二乘法创立及其思想方法[J].西北大学学报(自然科学版),2006,36(3):507-511. JIA Xiaoyong, XU Chuansheng. The invention and way of thinking on leastsquares[J]. Journal of Northwest University(Natural Seience Edition),2006,36(3):507-511.
[9] Jinsiang Shaw. Noniterative solution of inverse problems by the linear least square method[J]. Applied Mathematical Modelling,2001.
[10] Pradova V, Walczak B, Massart DL, et al. A comparison of two algorithms for warping of analytical signals[J]. Analytical Chimica Acta,2001.
Analysis and Program Implementation of Least Squares Polynomial Curve Fitting
ZHANG Yongtao JIA Yanming
(Shangqiu Institute of Technology, Shangqiu 476000)
The method of least square is a widely used data analysis methods, it is through a set of experimental data, according to the rule of minimum residual sum of squares, seeking an analytic function, which describes the relationship of several variables. Were introduced in this paper to solve the least squares polynomial curve fitting mathematical relationships, and gives the general C programming language of the called function.
least squares, polynomial, curve fitting, C program Class Number TP301
2016年10月21日,
2016年11月28日
张永涛,男,硕士,讲师,研究方向:算法与分析。贾延明,男,硕士,讲师,研究方向:算法与分析。
TP301
10.3969/j.issn.1672-9722.2017.04.009