论文总字数:8501字
摘 要
在科学研究和数学实验中,曲线拟合算法是确定模拟函数的常用方法。本文通过最小二乘的误差指标来进行曲线拟合:已知一组实验数据,根据数据点与估计点的误差平方和的最小值来确定函数系数,从而确定函数。从科学研究到日常生活,曲线拟合算法都有着广泛的应用。本文介绍了最小二乘法的原理与推导过程,并且用C语言实现曲线拟合,最后结合相关实例进行分析总结,得出结论。关键词:数值分析,曲线拟合,最小二乘法,C语言
Abstract:In numerical analysis and scientific experiment, curve fitting is a common way of functional approximation. In this paper, curve fitting is based on the least square method. We get a fitting function through calculating the smallest quadratic sum between the estimated value and the data value. From daily life to scientific research, curve fitting can be used in many aspects. By introducing curve fitting and the least square method, we analyze its principle and derivation process and realize it with related knowledge of C Language. At last, we come to a further conclusion by analyzing a relevant example .
Keywords:numerical analysis ,curve fitting, least square method, C language
目 录
1 引言…………………………………………………………………………… 4
2 曲线拟合算法……………………………………………………………… 5
2.1方法简介…………………………………………………………………… 5
2.2最小二乘法…………………………………………………………………… 5
2.3函数模型的确定…………………………………………………………………5
2.4数学推导过程…………………………………………………………………… 6
2.5函数模型的线性化………………………………………………………………7
2.6 Matlab实现…………………………………………………………………… 7
3 运用C语言实现最小二乘法曲线拟合………………………………… 8
3.1设计思路……………………………………………………………… 8
3.2设计流程图…………………………………………………………… 9
3.3最小二乘法的C语言源代码………………………………………… 9
4 曲线拟合算法在生产生活中的应用………………………………… 12
4.1 问题背景探索…………………………………………………………… 12
4.2 实际问题分析…………………………………………………………… 12
4.3 运行结果………………………………………………………………… 13
结论 ………………………………………………………………………………… 14
参考文献……………………………………………………………………………… 15
致谢 ………………………………………………………………………………… 16
- 引言
在数值计算以及生产实践中常常需要计算函数值以及了解自变量与因变量之间的函数关系,而在实际生活中我们往往只能在有限区间上获得有限的离散数据。因此,我们需要用已知函数逼近复杂函数,即函数的逼近,来解决实际问题。插值法是函数逼近问题的一种,如拉格朗日插值,牛顿差值多项式,样条插值等。这种插值方法要求模拟函数严格通过每一个已知函数点,因此适合数据量小且数据精确的情况。但当数据量过大且不精确时我们需要利用另一种方法─—曲线拟合。
曲线拟合是指用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之间的函数关系。推求一个解析函数使其通过或近似通过有限序列的点,通常用多项式函数通过最小二乘法求得此拟合函数。在数值分析中,曲线拟合就是用解析表达式逼近离散数据,即离散数据的公式化。实践中,离散点组或数据往往是各种物理问题和统计问题有关量的多次观测值或实验值,它们是零散的,不仅不便于处理,而且通常不能确切和充分地体现出其固有的规律。这种缺陷正可由适当的解析表达式来弥补。例如科学和工程遇到的很多问题,往往只能通过诸如采样、实验等方法获得若干离散的数据。根据这些数据,如果能够找到一个连续的函数(也就是曲线)或者更加密集的离散方程,使得实验数据与方程的曲线能够在最大程度上近似吻合,就可以根据曲线方程对数据进行数学计算,对实验结果进行理论分析,甚至对某些不具备测量条件的位置的结果进行估算。
现在几种常用的曲线拟合算法有:简单的线性数据拟合、样条曲线拟合和最小二乘法曲线拟合。每种算法都各自具有各自的特点,在不同领域都有着广泛的应用。本文将重点研究基于最小二乘法的曲线拟合。
本文通过最小二乘的误差指标来进行曲线拟合。已知一组离散数据,求解数据点与估计点的误差平方和的最小值,我们可以确定函数系数,从而确定模拟函数。根据这一原理,用程序实现最小二乘法曲线拟合的算法主要由两个步骤组成,第一个步骤就是根据给出的测量值生成关于拟合多项式系数的矩阵方程组,第二个步骤就是解这个方程组,求出拟合多项式的各个系数。最小二乘法虽然在形成步骤上简洁明了,但若手工计算则会带来很多麻烦,因此运用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曲线拟合的最小二乘法
剩余内容已隐藏,请支付后下载全文,论文总字数:8501字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;