中南林业科技大学 电子与信息工程学院 《数值分析》 实验指导书 陈爱斌编 计算机教研室 2006年2月 s=99—5—9——5——5—4 9——9—9—9—9—9—999898—5——999=9=9=5——5—99999影
中南林业科技大学 电子与信息工程学院 《数值分析》 实 验 指 导 书 陈爱斌 编 计算机教研室 2006 年 2 月
目录 前言. 实验一函数插值方法 实验二函数逼近与曲线拟合 实验三数值积分与数值微分 实验四线方程组的直接解法 实验五解线性方程组的迭代法 实验六非线性方程求根 2345789 实验七矩阵特征值问题计算 实验八常微分方程初值问题数值解法 附录一:实验报告内容要求 附录二:部分程序示例 233 1、〖多项式系列程序〗 2、〖最小二乘法曲线拟合程序〗 3、〖 Romberg算法计算数值积分程序〗 8 4、〖线方程组的直接解法系列程序〗... 19 5、〖 Jacobi迭代法解线性方程组程序〗 6、〖牛顿法非线性方程求根程序〗 7、〖幂法求矩阵特征值程序〗 26 8、〖四阶经典的龙格-库塔方法解常微分方程程序〗
目 录 前 言................................................... 1 实验一 函数插值方法...................................... 2 实验二 函数逼近与曲线拟合................................ 3 实验三 数值积分与数值微分................................ 4 实验四 线方程组的直接解法................................ 5 实验五 解线性方程组的迭代法.............................. 7 实验六 非线性方程求根.................................... 8 实验七 矩阵特征值问题计算................................ 9 实验八 常微分方程初值问题数值解法....................... 11 附录一:实验报告内容要求................................ 12 附录二:部分程序示例.................................... 13 1、〖多项式系列程序〗................................. 13 2、〖最小二乘法曲线拟合程序〗......................... 15 3、〖Romberg 算法计算数值积分程序〗 ................... 18 4、〖线方程组的直接解法系列程序〗..................... 19 5、〖Jacobi 迭代法解线性方程组程序〗 .................. 24 6、〖牛顿法非线性方程求根程序〗....................... 25 7、〖幂法求矩阵特征值程序〗........................... 26 8、〖四阶经典的龙格-库塔方法解常微分方程程序〗 ........ 27
——鵡—。—一妮一== 数值分析实验指导书 前言 结合课程教学,配备适当的上机实验(16个学时)以便加深课堂 教学的实践性,同时通过实验可以加强对数学模型的总体分析,算法 选取,程序结构,上机调试和结果分析等环节的训练。本实验指导书 共包含8个实验,要求学生在16个实验课时内完成。为使实验更为 有成效,需要写出实验报告(格式要求见附录),以此可作为《数值分 析》课程成绩评定的参考。 第1页
数值分析实验指导书 1 前 言 第 1 页 结合课程教学,配备适当的上机实验(16 个学时)以便加深课堂 教学的实践性,同时通过实验可以加强对数学模型的总体分析,算法 选取,程序结构,上机调试和结果分析等环节的训练。本实验指导书 共包含 8 个实验,要求学生在 16 个实验课时内完成。为使实验更为 有成效,需要写出实验报告(格式要求见附录),以此可作为《数值分 析》课程成绩评定的参考
———————— 数值分析实验指导书 实验一函数插值方法 、问题提出 对于给定的一元函数y=/(x)的n+1个节点值y=/(x)j=(01,…,) 试用 Lagrange公式求其插值多项式或分段二次 Lagrange插值多项式。 数据如下: 0.4 0.550.65 1.05 0410750.578150.696750.90 1001.25382 求五次 Lagrange多项式L(x),和分段三次插值多项式,计算f(0.596f(0.99)的 值。(提示:结果为f(0596)≈0625732(099105423) (2) y 0.3680.350.0500.018000700020.001 试构造 Lagrange多项式L6(x),计算/(18)的值。 结果∫(1.8)≈0.164762f(615)≈00266 二、要求 1、利用 Lagrange插值公式 L()=门x二xp编写出插值多项式程序 2、给出插值多项式或分段三次插值多项式的表达式 3、根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何 4、对此插值问题用 Newton插值多项式其结果如何。 Newton插值多项式如下: ()=f(x)+∑八x…x](x k=1 j≠k flx f(x,) 其中: x =0 三、目的和意义 1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题 2、明确插值多项式和分段插值多项式各自的优缺点: 3、熟悉插值方法的程序编制 4、如果绘出插值函数的曲线,观察其光滑性 第2页 999999994—5—4—5—999999——5—99998
数值分析实验指导书 2 实验一 函数插值方法 一、问题提出 对于给定的一元函数 y = f (x) 的 n+1 个节点值 ( ) j j y = f x 。 试用 Lagrange 公式求其插值多项式或分段二次 Lagrange 插值多项式。 j = ( ) 0,1,L, n 数据如下: (1) j x 0.4 0.55 0.65 0.80 0.95 1.05 j y 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次 Lagrange 多项式 L 5 (x),和分段三次插值多项式,计算 f (0.596) ( , f 0.99) 的 值。(提示:结果为 f (0.596) ≈ 0.625732 f (0.99) ≈ 1.05423 ) (2) j x 1 2 3 4 5 6 7 j y 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造 Lagrange 多项式 L 6 (x),计算 f (1.8)的值。 结果 f (1.8) ≈ 0.164762 f (6.15) ≈ 0.001266 二、要求 1、 利用 Lagrange 插值公式 ( ) k n i k i k i i n k n y x x x x L x − − = ∑ ∏ ≠ = = 0 0 编写出插值多项式程序; 2、 给出插值多项式或分段三次插值多项式的表达式; 3、 根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何; 4、 对此插值问题用 Newton 插值多项式其结果如何。Newton 插值多项式如下: ( ) ∏ − ≠ = = = + ∑ • − 1 0 0 1 0 ( ) [ , ] ( ) k j k j k j n k n N x f x f x Lx x x 其中: ∏ ≠ = = − = ∑ k j i j i j i k i k x x f x f x x 0 0 0 ( ) ( ) [ ,L, ] 三、目的和意义 1、 学会常用的插值方法,求函数的近似表达式,以解决其它实际问题; 2、 明确插值多项式和分段插值多项式各自的优缺点; 3、 熟悉插值方法的程序编制; 第 2 页 4、 如果绘出插值函数的曲线,观察其光滑性
——鵡—。—一妮一== 数值分析实验指导书 实验二函数逼近与曲线拟合 、问题提出 从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验 中大量存在,通常利用数据的最小二乘法求得拟合曲线 在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量y与时间t的拟 合曲线。 1(分)051015 10-)0127216286344387415437451458402464 二、要求 1、用最小二乘法进行曲线拟合 2、近似解析表达式为()=a1+a212+a3 3、打印出拟合函数(),并打印出)与)的误差,j=12,…12 4、另外选取一个近似表达式,尝试拟合效果的比较 5、*绘制出曲线拟合图。 三、目的和意义 1、掌握曲线拟合的最小二乘法 2、最小二乘法亦可用于解超定线代数方程组 3、探索拟合函数的选择与拟合精度间的关系 第3页
数值分析实验指导书 3 实验二 函数逼近与曲线拟合 一、问题提出 从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验 中大量存在,通常利用数据的最小二乘法求得拟合曲线。 在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量 与时间t 的拟 合曲线。 y 二、要求 1、用最小二乘法进行曲线拟合; 2、近似解析表达式为 ( ) ; 3 3 2 1 2 ϕ t = a t + a t + a t 3、打印出拟合函数ϕ(t),并打印出 ( )j ϕ t 与 ( )j y t 的误差, j = 1,2,L,12 ; 4、另外选取一个近似表达式,尝试拟合效果的比较; 5、* 绘制出曲线拟合图。 三、目的和意义 1、掌握曲线拟合的最小二乘法; 2、最小二乘法亦可用于解超定线代数方程组; 3、探索拟合函数的选择与拟合精度间的关系 第 3 页 t( 分) 0 5 10 15 20 25 30 35 40 45 50 55 ( ) 4 10− y × 0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64
———————— 数值分析实验指导书 实验三数值积分与数值微分 、问题提出 选用复合梯形公式,复合 Simpson公式, Romberg算法,计算 ( dx(I≈1.5343916 (2)I ax(f(0)=1,I≈09460831) (3)I x 4+x2 ln(1+ 二、要求 1、编制数值积分算法的程序 2、分别用两种算法计算同一个积分,并比较其结果 3、分别取不同步长h=(b-a)n,试比较计算结果(如n=10,20等) 4、给定精度要求E,试用变步长算法,确定最佳步长。 三、目的和意义 1、深刻认识数值积分法的意义 2、明确数值积分精度与步长的关系 3、根据定积分的计算方法,可以考虑二重积分的计算问题 第4页 999999994—5—4—5—999999——5—99998
数值分析实验指导书 4 实验三 数值积分与数值微分 一、问题提出 选用复合梯形公式,复合 Simpson 公式,Romberg 算法,计算 (1) I = xdx ∫ − 4 1 0 2 4 sin (I ≈ 1.5343916) (2) I = dx x x ∫ 1 0 sin ( ) f (0) = 1, I ≈ 0.9460831 (3) I = dx x ex ∫ + 1 0 2 4 (4) I = ( )dx x x ∫ + + 1 0 2 1 ln 1 二、要求 1、 编制数值积分算法的程序; 2、 分别用两种算法计算同一个积分,并比较其结果; 3、 分别取不同步长 h = ( b − a )/ n ,试比较计算结果(如 n = 10, 20 等); 4、 给定精度要求ε ,试用变步长算法,确定最佳步长。 三、目的和意义 1、 深刻认识数值积分法的意义; 2、 明确数值积分精度与步长的关系; 第 4 页 3、 根据定积分的计算方法,可以考虑二重积分的计算问题
——鵡—。—一妮一== 数值分析实验指导书 实验四线方程组的直接解法 、问题提出 给出下列几个不同类型的线性方程组,请用适当算法计算其解。 1、设线性方程组 2-3-12100001x 4840 3650100 2-2-132-1 215-13-1 013 52323 426 86-8571726-35x 1610-11-917342-122 6339 3920124 00-18-3-24-863 2、设对称正定阵系数阵线方程组 42-402400 4-1141-8-356 20 0-216-1-4-33 43-3-44111 22 025-3-1011421x 15 3-4219 45 (1,-1,0,2,1,-1,0,2) 第5页
数值分析实验指导书 5 实验四 线方程组的直接解法 一、问题提出 给出下列几个不同类型的线性方程组,请用适当算法计算其解。 1、设线性方程组 − − − − − − − − − − − − − − − − − − − − − − − − − − 0 0 1 8 3 24 8 6 3 1 4 6 2 7 13 9 2 0 12 4 16 10 11 9 17 34 2 1 2 2 0 2 1 3 4 2 5 3 0 1 8 6 8 5 7 17 2 6 3 5 4 2 6 1 6 7 3 3 2 3 0 2 1 5 1 3 1 1 9 4 4 2 2 1 3 2 1 0 3 1 8 6 5 3 6 5 0 1 0 0 4 2 3 1 2 1 0 0 0 0 10 9 8 7 6 5 4 3 2 1 x x x x x x x x x x = − 21 19 38 13 46 3 2 3 12 5 x = ( 1, -1, 0, 1, 2, 0, 3, 1, -1, 2 ) T * 2、设对称正定阵系数阵线方程组 − − − − − − − − − − − − − − − − − − − − − − 0 0 6 3 3 4 2 19 0 2 5 3 10 1 14 2 4 3 3 4 4 11 1 4 2 1 8 1 22 4 10 3 0 2 1 6 1 4 3 3 4 1 14 1 8 3 5 6 2 2 1 2 1 3 2 0 4 2 4 0 2 4 0 0 8 7 6 5 4 3 2 1 x x x x x x x x = − − − 45 15 22 9 23 20 6 0 x = ( 1, -1, 0, 2, 1, -1, 0, 2 ) * T 第 5 页
——鵡—。—一妮一== 数值分析实验指导书 3、三对角形线性方程组 000 14-10000 000 000 000 14-1000 0000 000 14-100000 xxxxxxxxxx 75126 0-14-10000 14-1000 00000-14-100 000 000 000 000 000 14-10 0 00-14 x=(2,1,-3,0,1,-2,3,0,1,-1)2 二、要求 1、对上述三个方程组分别利用 Gauss顺序消去法与 Gauss列主元消去法:平方根法与 改进平方根法;追赶法求解(选择其一); 2、应用结构程序设计编出通用程序 3、比较计算结果,分析数值解误差的原因; 4、尽可能利用相应模块输出系数矩阵的三角分解式。 、目的和意义 1、通过该课题的实验,体会模块化结构程序设计方法的优点: 2、运用所学的计算方法,解决各类线性方程组的直接算法 3、提高分析和解决问题的能力,做到学以致用 4、通过三对角形线性方程组的解法,体会稀疏线性方程组解法的特点
数值分析实验指导书 6 3、三对角形线性方程组 = − − − − − − − − − − − − − − − − − − 0 0 0 0 0 0 0 0 1 4 0 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 1 4 1 0 0 0 0 0 0 0 4 1 0 0 0 0 0 0 0 0 10 9 8 7 6 5 4 3 2 1 x x x x x x x x x x − − − − 5 5 4 14 12 6 2 13 5 7 x = ( 2, 1, -3, 0, 1, -2, 3, 0, 1, -1 ) * T 二、要求 1、 对上述三个方程组分别利用 Gauss 顺序消去法与 Gauss 列主元消去法;平方根法与 改进平方根法;追赶法求解(选择其一); 2、 应用结构程序设计编出通用程序; 3、 比较计算结果,分析数值解误差的原因; 4、 尽可能利用相应模块输出系数矩阵的三角分解式。 三、目的和意义 1、通过该课题的实验,体会模块化结构程序设计方法的优点; 2、运用所学的计算方法,解决各类线性方程组的直接算法; 3、提高分析和解决问题的能力,做到学以致用; 第 6 页 4、通过三对角形线性方程组的解法,体会稀疏线性方程组解法的特点
———————— 数值分析实验指导书 实验五解线性方程组的迭代法 、问题提出 对实验四所列目的和意义的线性方程组,试分别选用 Jacobi迭代法, Gauss-Seidol 迭代法和SOR方法计算其解 、要求 体会迭代法求解线性方程组,并能与消去法做以比较 2、分别对不同精度要求,如E=10-3,10-10-5由迭代次数体会该迭代法的收敛快慢 3、对方程组2,3使用SOR方法时,选取松弛因子⑨=08,09,1,1.1,1,2等,试 看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者 给出各种算法的设计程序和计算结果 三、目的和意义 1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较 2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序; 3、体会上机计算时,终止步骤-x(予给的选代次数),对迭 代法敛散性的意义 、体会初始解x,松弛因子的选取,对计算结果的影响 第7页 999999994—5—4—5—999999——5—99998
数值分析实验指导书 7 实验五 解线性方程组的迭代法 一、问题提出 对实验四所列目的和意义的线性方程组,试分别选用 Jacobi 迭代法,Gauss-Seidol 迭代法和 SOR 方法计算其解。 二、要求 1、体会迭代法求解线性方程组,并能与消去法做以比较; 2、分别对不同精度要求,如 由迭代次数体会该迭代法的收敛快慢; 3 4 5 10 ,10 ,10 − − − ε = 3、对方程组 2,3 使用 SOR 方法时,选取松弛因子ω =0.8,0.9,1,1.1,1.2 等,试 看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者; 4、给出各种算法的设计程序和计算结果。 三、目的和意义 1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较; 2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序; 3、体会上机计算时,终止步骤 ∞ + − (k 1) (k ) x x (予给的迭代次数),对迭 代法敛散性的意义; 第 7 页 4、体会初始解 x ( ,松弛因子的选取,对计算结果的影响。 0)
———————— 数值分析实验指导书 实验六非线性方程求根 、问题提出 设方程f(刈)=x-3×-1=0有三个实根x1=1.8793,X2=0.34727,X3=-153209 现采用下面六种不同计算格式,求f(x=0的根x1或x2 X= 3、x=√3x+1 6、X=X 要求 1、编制一个程序进行运算,最后打印出每种迭代格式的敛散情况: 2、用事后误差估计x4-x(E来控制迭代次数,并且打印出迭代的次数 3、初始值的选取对迭代收敛有何影响 4、分析迭代收敛和发散的原因。 目的和意义 通过实验进一步了解方程求根的算法 认识选择计算格式的重要性 掌握迭代算法和精度控制 4、明确迭代收敛性与初值选取的关系 第8页 999999994—5—4—5—999999——5—99998
数值分析实验指导书 8 实验六 非线性方程求根 设方程 f(x)=x - 3x –1=0 有三个实根 x * 1 =1.8793 , x * =-0.34727 ,x =-1.53209 现采用下面六种不同计算格式,求 f(x)=0 的根 x * 1 或 x * 2 3 2 * 3 一、问题提出 1、 x = 2 3 1 x x + 2、 x = 3 1 3 x − 3、 x = 3 3x +1 4、 x = 3 1 2 x − 5、 x = x 1 3 + 6、 x = x - ( ) 1 3 1 3 1 2 3 − − − x x x 二、要求 1、编制一个程序进行运算,最后打印出每种迭代格式的敛散情况; 2、用事后误差估计 k k x − x +1 〈 ε 来控制迭代次数,并且打印出迭代的次数; 3、初始值的选取对迭代收敛有何影响; 4、分析迭代收敛和发散的原因。 三、目的和意义 1、通过实验进一步了解方程求根的算法; 2、认识选择计算格式的重要性; 3、掌握迭代算法和精度控制; 第 8 页 4、明确迭代收敛性与初值选取的关系