目录1 绪论 (1)2 实验题目(一) (2)2.1 题目要求 (2)2.2 NEWTON插值多项式 (3)2.3 数据分析 (4)2.3.1 NEWTON插值多项式数据分析 (4)2.3.2 NEWTON插值多项式数据分析 (6)2.4 问答题 (6)2.5 总结 (7)3 实验题目(二) (8)3.1 题目要求 (8)3.2 高斯-塞德尔迭代法 (8)3.3 高斯-塞德尔改进法—松弛法 (9)3.4 松弛法的程序设计与分析 (9)3.4.1 算法实现 (9)3.4.2 运算结果 (9)3.4.3 数据分析 (11)4 实验题目(三) (13)4.1 题目要求 (13)4.2 RUNGE-KUTTA 4阶算法 (13)4.3 RUNGE-KUTTA 4阶算法运算结果及数值分析 (14)总结 (16)附录A (17)1绪论数值分析是计算数学的一个主要部分,它主要研究各类数学问题的数值解法,以及分析所用数值解法在理论上的合理性。
实际工程中的数学问题非常复杂,所以往往需要借助计算机进行计算。
运用数值分析解决问题的过程:分析实际问题,构建数学模型,运用数值计算方法,进行程序设计,最后上机计算求出结果。
数值分析这门学科具有面向计算机、可靠的理论分析、好的计算复杂性、数值实验、对算法进行误差分析等特点。
本学期开设了数值分析课程,该课程讲授了数值分析绪论、非线性方程的求解、线性方程组的直接接法、线性方程组的迭代法、插值法、函数逼近与曲线拟合、数值积分和数值微分、常微分方程初值问题的数值解法等内容。
其为我们解决实际数学问题提供了理论基础,同时我们也发现课程中很多问题的求解必须借助计算机运算,人工计算量太大甚至无法操作。
所以学好数值分析的关键是要加强上机操作,即利用计算机程序语言实现数值分析的算法。
本报告就是基于此目的完成的。
本上机实验是通过用计算机来解答数值分析问题的过程,所用的计算工具是比较成熟的数学软件MATLAB。
MATLAB是Matrix Laboratory的缩写,是以矩阵为基础的交互式程序计算语言。
MATLAB是一款具有强大的矩阵运算、数据处理和图形显示功能的软件,其输出结果可视化,编程效率极高,用极少的代码即可实现复杂的运行,因此它使工程技术人员摆脱了繁琐的程序代码,以便快速地验证自己的模型和算法。
其主要特点包括:强大的数值运算功能;先进的资料视觉化功能高阶但简单的程序环境;开方及可延展的构架;丰富的程式工具箱。
在科学研究和工程计算领域经常会遇到一些非常复杂的计算问题,利用计算器或手工计算是相当困难或无法实现的,只能借助计算机编程来实现。
MATLAB将高性能的数值计算和可视化的图形工具集成在一起,提供了大量的内置函数,使其在科学计算领域具有独特的优势。
最后感谢数值分析课程任课教师赵海良老师的悉心指导!2实验题目(一)2.1题目要求已知:a=-5,b=5, 以下是某函数f(x)的一些点(x k,y k), 其中x k=a+0.1(k-1) ,k=1,..,101 请用插值类方法给出函数f(x)的一个解决方案和具体结果。
并通过实验考虑下列问题(1)Ln(x)的次数n越高,逼近f(x)的程度越好?(2)高次插值收敛性如何?(3)如何选择等距插值多项式次数?(4)若要精度增高,你有什么想法?比如一定用插值吗?(5)逼近某个函数不用插值方式,有何变通之举?(6)函数之间的误差如何度量,逼近的标准又是什么?(7)如何比较好的使用插值多项式呢?x k =-5.0000:0.1:5.0000;y(x k)=y k=Columns 1 through 725.0000 24.0100 23.0400 22.0900 21.1600 20.2500 19.3600 Columns 8 through 1418.4900 17.6400 16.8100 16.0000 15.2100 14.4400 13.6900Columns 15 through 2112.9600 12.2500 11.5600 10.8899 10.2397 9.6093 8.9991 Columns 22 through 288.4092 7.8405 7.2941 6.7705 6.2693 5.7866 5.3144 Columns 29 through 354.8403 4.3522 3.8463 3.3402 2.8832 2.5554 2.4475 Columns 36 through 422.61543.0219 3.4920 3.7149 3.3232 2.0435 -0.1277 Columns 43 through 49-2.8066 -5.2470 -6.5469 -5.9893 -3.3862 0.7365 5.2312Columns 50 through 568.6985 10.0000 8.6985 5.2312 0.7365 -3.3862 -5.9893 Columns 57 through 63-6.5469 -5.2470 -2.8066 -0.1277 2.0435 3.3232 3.7149 Columns 64 through 703.4920 3.0219 2.6154 2.4475 2.5554 2.8832 3.3402 Columns 71 through 773.84634.3522 4.84035.3144 5.78666.2693 6.7705 Columns 78 through 847.2941 7.8405 8.4092 8.9991 9.6093 10.2397 10.8899 Columns 85 through 9111.5600 12.2500 12.9600 13.6900 14.4400 15.2100 16.0000 Columns 92 through 9816.8100 17.6400 18.4900 19.3600 20.2500 21.1600 22.0900Columns 99 through 10123.0400 24.0100 25.00002.2 Newton 插值多项式n 阶差商的定义:[][]0110211010,,,,,)(],,,[],,,[x x x x x f x x x f x f x x x x x x f n n n n n --==-ΛΛΛΛ牛顿插值公式)()()(x R x P x f n n +=牛顿插值多项式)())(](,,,[)](,[)()(110100100----++-+=n n n x x x x x x x x x f x x x x f x f x P ΛΛΛ牛顿插值余项)(],,,,[)(010i n i n n x x x x x x f x R -∏==Λ其差商表如下所示:表1差商标计算规律:任一个k(≥1) 阶均差的数值等于一个分式的值,其分子为所求均差左侧的数减去左上侧的数,分母为所求均差同一行最左边的基点值减去由它往上数第k 个基点值。
2.3数据分析2.3.1Newton插值多项式数据分析图1各阶牛顿插值的结果取x1=[-5 0 5],y1=[25 10 25]时,进行牛顿二阶插值:图2二阶牛顿插值的结果取x2=[-5:2.5:5];,y2=[25 6.2693 10 6.2693 25]时,进行牛顿四阶插值:图3四阶牛顿插值的结果取x3=[-5:2:5],y3=[25 8.9991 2.0435 2.0435 8.9991 25]时,进行牛顿五阶插值:图4五阶牛顿插值的结果取x4=[-5:1:5],y4=[25 16 8.9991 3.8463 2.0435 10 2.0435 3.8463 8.9991 16 25]时,进行牛顿十阶插值:图5十阶牛顿插值的结果2.3.2 Newton 插值多项式数据分析从上面的计算结果绘图可以看出以下几点:(1)当等距选取的插值节点过少时,会产生较大的插值误差,相应增加等距选取的插值节点能减小插值的误差,这从二阶插值倒三、四阶插值插值计算结果越来越接近原函数可以看出。
(2)过大的选取等距插值节点的个数会造成龙格现象,插值的效果反而不好,这可以从十阶插值的结果绘图看出。
总的来说,适当的选取等距插值节点的个数对于提高插值误差和避免龙格现象很重要。
2.4 问答题(1)Ln(x)的次数n 越高,逼近f(x)的程度越好?答:这说法不正确,并非次数越高逼近程序越好,事实上对于高次的拉格朗日插值,在插值的次数过大时会发生龙格现象,导致在节点两端的波动很大,从而Ln(x)不能一致逼近于f(x)。
(2)高次插值收敛性如何?答:对于高次的拉格朗日插值,误差满足下式:1max |()()|()0()(1)!n n a x b M f x L x b a n n +≤≤-≤-→→∞+式中,[a,b]为插值区间,(1)1max |()|n n a x bM f x M ++≤≤=≤。
由此看出,当插值节点的个数越多(即n+1越大),误差越小,但不能简单地认为对所有插值问题当插值节点的个数越多,误差就越小,这是因为误差估计式是有条件的,在[a,b]上函数f(x)要有高阶导数,而高阶导数要一致有界,如果M n+1无限增大,就不能保证Ln(x)收敛于f(x)。
故高次插值的收敛性是有条件的,其取决于其高阶导数是否有界,如果其高阶导数有界则,其高次插值收敛,否则不收敛。
(3)如何选取等距插值多项式次数?答:在本题当中,f(x)的高阶导数有界,故高次插值收敛,在进行插值时我在101个点当中选择了部分点进行牛顿插值,通过画图比较插值函数和原函数,得出图像是收敛的,另外对于高阶导数无界的函数,在用多项式插值时不宜选取高次多项式插值(七八次以上),这样就能有效的避免龙格现象。
(4)若要精度增高,你有什么想法?比如一定用插值么?答:采用曲线拟合,通过拟合出的曲线带入插值点的值计算插值点的函数值;插值函数曲线是通过所给全部插值节点的,这将使插值函数保留数据的全部测量误差,并且当插值函数的阶数较高时,曲线摆动很大,而求得的插值函数与实验规律较远,而数值拟合构造的数学函数则能从整体上较好地逼近函数,从而保持比较好的精度。
(5) 逼近某个函数不用插值方式,有何变通之举?答:曲线拟合。
(6) 函数之间的误差如何度量,逼近的标准又是什么?答:函数之间的误差可以通过求其余项来进行比较得到度量,而逼近的标准在于n 趋近于无穷时,余项趋近于0,这样插值函数就无限接近于f(x)即实现逼近了。
(7)如何比较好的使用插值多项式呢?答:根据插值数据的特点选取适当的插值方式,要注意避免龙格现象,总之,具体情况具体分析,使用插值多项式应当从插值对象出发选取适合的插值多项式。