连续系统仿真实验报告 实验数据拟合建模 姓名: 专业: 学号: 时间:2013 年 5 月 1 日 实验单元二 实验数据拟合建模 一、实验目的 1、用C 语言实现最小二乘的多项式拟合和LU 分解法; 2、熟练掌握最小二乘拟合和LU 分解法的基本原理。 3、体会用计算机编程解决计算问题的方法。 二、需求说明 (一)、需求阐述 本次实验是要求根据已知的自变量和函数值,通过多项式拟合来分别计算2、3、4 阶拟合多项式,并根据拟合结果分别计算出待求点的函数值。其中解拟合系数方程组时采用LU 分解的方法计算拟合多项式的系数。 (二)、实验公式 m 次拟合函数公式为: 01x =++mmaa xa x 计算系数ia 的方程组为: { 001 10++...+=mms as as at102 1+11++...+=mms as asat⋮0+1 12++...+=mmmms asasat ○1 其中 ++= 0=nkjjkiisx, = 0=njiiity x 所以,在编程计算时,先计算出方程组○1 ,再用LU 分解法计算求出ia 的值,即可得到拟合多项式。LU 分解法的公式为: [ 1ᵅ21ᵅ31 ⋮ᵅᵅ101ᵅ32⋮ᵅᵅ2001⋮⋯⋯⋯⋱⋱⋯0 0⋮01] [ ᵆ 110000 ᵆ 12 ᵆ 22000 ᵆ 13 ᵆ 23 ᵆ 33⋱⋯⋯⋯⋱⋱0 ᵆ 1ᵅ ᵆ 2ᵅ⋮ ᵆ ᵅ− 1ᵅ ᵆ ᵅᵅ ] =[ a11a21a31⋮an1a12a22a32⋮an2a13a23a33⋮an3⋯⋯⋯⋱⋯a1n a2na3n⋮ann] 其中L 矩阵和U 矩阵的计算公式如下: 第一步,当 k=1,有: { 11= ( =2,3,,n )jjuaj1111111== ( =2,3,,n )iiiaaliua 第二步,当k=2,3,⋯ ,n-1 时,有: { -1=1=- (j= +1, +2, )kkjkjkrrjrual ukkn-1(k )=1(k )-= (j= , +1, )kikirrkrikkkal ulk knu 最后求 u nn:-1=1=-nnnnnnrrnrual u 三、设计说明 (一)、数据结构 程序采用一维数组的形式来读取文件中给出的已知点处的值和要计算的未知点处的自变量值,最终的拟合计算结果也是采用一维数组的形式输出到文件中。 拟合多项式的系数a 和拟合系数方程组的参数t 都是采用一维数组来存储的,而拟合系数方程组中的参数s 和L、U 矩阵都是用二维数组来表示的。由于要分别计算2、3、4 阶拟合结果,所以数组的规模取为5,矩阵的规模取为5*5. (二)、算法设计及效率分析 在进行 LU 分解函数中,在计算L 矩阵和U 矩阵时,因为当k=2,3,⋯ ,n -1 时,计算-1=1kirrkrl u和-1=1kkrrjrl u的循环条件不允许 k =1 时进入,而正好 k =1 时,计...