实验数据与曲线拟合

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验数据与曲线拟合

1. 曲线拟合

1. 曲线拟合的定义

2. 简单线性数据拟合的例子

2. 最小二乘法曲线拟合

1. 最小二乘法原理

2. 高斯消元法求解方程组

3. 最小二乘法解决速度与加速度实验

3. 三次样条曲线拟合

1. 插值函数

2. 样条函数的定义

3. 边界条件

4. 推导三次样条函数

5. 追赶法求解方程组

6. 三次样条曲线拟合算法实现

7. 三次样条曲线拟合的效果

4. 12.1 曲线拟合

5. 12.1.1 曲线拟合的定义

6. 曲线拟合(Curve Fitting)的数学定义是指用连续曲线近似地刻画或比拟平面上一组离散点所表示的坐

标之间的函数关系,是一种用解析表达式逼近离散数据的方法。曲线拟合通俗的说法就是“拉曲线”,也就是将现有数据透过数学方法来代入一条数学方程式的表示方法。科学和工程遇到的很多问题,往往只能通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,如果能够找到一个连续的函数(也就是曲线)或者更加密集的离散方程,使得实验数据与方程的曲线能够在最大程度上近似吻合,就可以根据曲线方程对数据进行数学计算,对实验结果进行理论分析,甚至对某些不具备测量条件的位置的结果进行估算。

7. 12.1.2 简单线性数据拟合的例子

8. 回想一下中学物理课的“速度与加速度”实验:假设某物体正在做加速运动,加速度未知,某实验人员

从时间t0 = 3秒时刻开始,以1秒时间间隔对这个物体连续进行了12次测速,得到一组速度和时间的离散数据,请根据实验结果推算该物体的加速度。

9. 表 12 – 1 物体速度和时间的测量关系表

10. 在选择了合适的坐标刻度之后,我们就可以在坐标纸上画出这些点。如图12–1所示,排除偏差明显

偏大的测量值后,可以看出测量结果呈现典型的线性特征。沿着该线性特征画一条直线,使尽量多的测量点能够位于直线上,或与直线的偏差尽量小,这条直线就是我们根据测量结果拟合的速度与时间的函数关系。最后在坐标纸上测量出直线的斜率K,K就是被测物体的加速度,经过测量,我们实验测到的物体加速度值是1.48米/秒2。

11.

12. 图 12 – 1 实验法测量加速度的过程

13.

14. 12.2 最小二乘法曲线拟合

15. 使用数学分析进行曲线拟合有很多常用的方法,这一节我们先介绍一下最简单的最小二乘法,并给出

使用最小二乘法解决上一节给出的速度与加速度实验问题。

16.

17. 12.2.1 最小二乘法原理

18. 最小二乘法(又称最小平方法)通过最小化误差的平方和寻找数据的最佳函数匹配,利用最小二乘法

可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小,当然,做为一种插值方法使用时,最小二乘法也可以用于曲线拟合。使用最小二乘法进行曲线拟合是曲线拟合种早期的一种常用方法,不过,最小二乘法理论简单,计算量小,即便是在使用三次样条曲线或RBF(Radial Basis Function)进行曲线拟合大行其道的今天,最小二乘法在多项式曲线或直线的拟合问题上,仍然得到广泛地应用。使用最小二乘法,选取的匹配函数的模式非常重要,如果离散数据呈现的是指数变化规律,则应该选择指数形式的匹配函数模式,如果是多项式变化规律,则应该选择多项式匹配模式,如果选择的模式不对,拟合的效果就会很差,这也是使用最小二乘法进行曲线拟合时需要特别注意的一个地方。

19. 下面以多项式模式为例,介绍一下使用最小二乘法进行曲线拟合的完整步骤。假设选择的拟合多项式

模式是:

20.

21. 这m个等式相当于m个方程,a0,a1,…a m是m个未知量,因此这m个方程组成的方程组是可解的,最小

二乘法的第二步处理就是将其整理为针对a0,a1,…a m的正规方程组。最终整理的方程组如下:

22.

23. 最小二乘法的第三步处理就是求解这个多元一次方程组,得到多项式的系数a0,a1,…a m,,就可以得到曲线

的拟合多项式函数。求解多元一次方程组的方法很多,高斯消元法是最常用的一种方法,下一节就简单介绍一下最小二乘算法实现所用的高斯消元法算法。

24. 12.2.2 高斯消元法求解方程组

25. 在数学上,高斯消元法是线性代数中的一个算法,可用来求解多元一次线性方程组,也可以用来求矩

阵的秩,以及求可逆方阵的逆矩阵。高斯消元法虽然以数学家高斯的名字命名,但是最早出现在文献资料中应该是中国的《九章算术》。

26. 高斯消元法的主要思想是通过对系数矩阵进行行变换,将方程组的系数矩阵由对称矩阵变为三角矩阵,

从而达到消元的目的,最后通过回代逐个获得方程组的解。在消元的过程中,如果某一行的对角线元素的值太小,在计算过程中就会出现很大的数除以很小的数的情况,有除法溢出的可能,因此在消元的过程中,通常都会增加一个主元选择的步骤,通过行交换操作,将当前列绝对值最大的行交换到当前行位置,避免了除法溢出问题,增加了算法的稳定性。

27. 高斯消元法算法实现简单,主要有两个步骤组成,第一个步骤就是通过选择主元,逐行消元,最终行

程方程组系数矩阵的三角矩阵形式,第二个步骤就是逐步回代的过程,最终矩阵的对角线上的元素就是方程组的解。下面就给出高斯消元法的一个算法实现:

76/*带列主元的高斯消去法解方程组,最后的解在matrixA的对角线上*/

77bool GuassEquation::Resolve(std::vector& xValue)

78{

79 assert(xValue.size()== m_DIM);

80

81/*消元,得到上三角阵*/

82for(int i =0; i < m_DIM -1; i++)

83{

84/*按列选主元*/

85int pivotRow = SelectPivotalElement(i);

86if(pivotRow != i)/*如果有必要,交换行*/

87{

88 SwapRow(i, pivotRow);

89}

90if(IsPrecisionZero(m_matrixA[i * m_DIM + i]))/*主元是0? 不存在唯一解*/

相关文档
最新文档