最小二乘法曲线拟合算法研究C++源代码(2)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

最小二乘法曲线拟合算法研究C++源代码(2)

本文通过最小二乘的误差指标来进行曲线拟合。已知一组离散数据,求解数据点与估计点的误差平方和的最小值,我们可以确定函数系数,从而确定模拟函数。根据这一原理,用程序实现最小二乘法曲线拟合的算法主要由两个步骤组成,第一个步骤就是根据给出的测量值生成关于拟合多项式系数的矩阵方程组,第二个步骤就是解这个方程组,求出拟合多项式的各个系数。最小二乘法虽然在形成步骤上简洁明了,但若手工计算则会带来很多麻烦,因此运用Matlab等数学工具解决这一问题。

在科学研究和数学实验中,曲线拟合算法是确定模拟函数的常用方法,从科学研究到日常生活曲线拟合算法都有着广泛的应用。本文介绍了最小二乘法的原理与实现步骤,并且用C语言实现最小二乘法的曲线拟合,最后结合相关实例进行分析总结,得出结论。

2 曲线拟合算法

2。1曲线拟合的算法简介

曲线拟合的方法有很多,如最小二乘法,移动最小二乘法,NURBS三次曲线拟合以及基于RBF的曲线拟合,它们各有各的优势。最小二乘法的思想是建立一个求最小误差和的函数,这也是本文重点讨论的方法。移动最小二乘法与传统的最小二乘法相比,有两个比较大的改进:一是拟合函数的建立不同。这种方法建立拟合函数不是采用传统的多项式或其它函数,而是由一个系数向量a(x)和基函数p(x)构成,这里a(x)不是常数,而是坐标x 的函数;二是引入紧支(Compact Support)概念,认为点x 处的值y 只受x 附近子域内节点影响,这个子域称作点x 的影响区域,影响区域外的节点对x的取值没有影响。在影响区域上定义一个权函数w(x),如果权函数在整个区域取为常数,就得到传统的最小二乘法。这些改进能够带来许多优点,减缓或解决传统曲线曲面拟合过程中存在的困难。可以取不同阶的基函数以获得不同的精度,取不同的权函数以改变拟合曲线(曲面)的光滑度,这是其它拟合方法无法做到的。

2。2曲线拟合的最小二乘法

已知函数 的一组实验数据,现构造函数S(x)使其尽可能多地逼近原函数区间上的基点,即使数据点和拟合点之间的误差平方和最小,这就是最小二乘曲线拟合的基本思想 。具体数学原理如下:

已知函数 的一组离散点集{( ),i=0,1,n},这里 ,要求一个函数 与所给数据拟合,若记误差 (i=0,1,n), ,   。设 是已知区间上线性无关函数族,在 中找一个函数  ,使误差平方和来*自-优=尔,论:文+网www.youerw.com

这就是曲线拟合的最小二乘法 。

2。3函数模型的确定

用最小二乘法求拟合曲线时,首先要确定S(x)的形式。这不但是单纯的数学问题,还与所研究问题的运动规律及所得观测数据( )有关。函数模型可能是线性也可能是非线性,通常要从问题的运动规律或给定数据描图,通过观察法,即根据数学知识分析函数分布,从而判断函数关系。

 的一般表达式为线性形式或多项式形式 。

(责任编辑:qin)