您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 西南交通大学-数值分析--报告
数值分析课程上机作业计算报告班级:学号:姓名:专业:大地测量学及测绘工程指导老师:联系电话:西南交通大学-数值分析--报告2/21序言通过数值分析的理论知识的学习,此次实验将我们学过的理论知识运用于实践之中。本次实验,我选用的计算机语言为MATLAB,其主要有一下几个特点。1.编程效率高MATLAB是一种面向科学与工程计算的高级语言,允许使用数学形式的语言编写程序,且比BASIC、FORTRAN和C等语言更加接近我们书写计算公式的思维方式,用MATLAB编写程序犹如在演算纸上排列出公式与求解问题。因此,MATLAB语言也可通俗地称为演算纸式科学算法语言。由于它编写简单,所以编程效率高,易学易懂2.用户使用方便MATLAB语言与其他语言相比,较好的解决了上述问题,把编辑、编译、链接和执行融为一体。它能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误以至语义错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。3.方便的绘图功能MATLAB的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标、半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不能及的。目录1.实验一··························································································11.1题目······················································································11.2计算思路················································································11.3计算结果················································································11.4总结······················································································62.第二题··························································································72.1题目······················································································72.2松弛思想分析·········································································72.3问题的求解·············································································72.4总结·····················································································103.第三题·························································································113.1题目·····················································································113.2Runge-Kutta法的基本思想·························································113.3问题的求解···········································································113.4问题的总结············································································14总结·······························································································15附件·······························································································16实验一程序设计··········································································16实验二程序设计··········································································16实验三程序设计··········································································171实验一:插值问题1.1题目已知:a=-5,b=5,以下是某函数f(x)的一些点(xk,yk),其中xk=a+0.1(k-1),k=1,..,101;(数据略)。请用插值类方法给出函数f(x)的一个解决方案和具体结果。并通过实验考虑下列问题:(1)Ln(x)的次数n越高,逼近f(x)的程度越好?(2)高次插值收敛性如何?(3)如何选择等距插值多项式次数?(4)若要精度增高,你有什么想法?比如一定用插值吗?(5)逼近某个函数不用插值方式,有何变通之举?(6)函数之间的误差如何度量,逼近的标准又是什么?(7)如何比较好的使用插值多项式呢?1.2计算思路本题我选用拉格朗日插值函数,拉格朗日插值函数的构建算法是从101组数据中等距选取n组数据来构造n阶的拉格朗日插值函数,然后在[-5,5]区间选取m个插值点带入插值多项式计算出m组(x,y),本题中,我分别取了n=6,8,10,20四种不同的阶数,然后利用matlab绘图命令查看插值函数图像与原函数图像的逼近效果。11.3计算结果当阶数为5阶时,插值图像与原函数图象如下所示(红色曲线为插值函数曲线,蓝色为原函数曲线)表1(迭代数据)iXiYi1-5.000025.000026-2.50006.269351010.0000711.00006.26931015.000025.0000由图象可以看出,除了在插值点附近的拟合效果还可以,其他的点都差距比较大,总的来说效果不是很好。西南交通大学-数值分析--报告3/21当阶数为7阶时图象如下:表2(迭代数据)iXiYi1-5.000025.000017-3.400011.560033-1.80002.883249-0.20005.2312651.40003.0219813.00008.9991974.600021.1600由此图象可以看出,利用7阶插值来进行计算,在0值附近的拟合不是很好,但总得来说比5阶函数较好。西南交通大学-数值分析--报告4/21当阶数为10阶时,图象如下:表3(迭代数据)iXiYi1-5.000025.000012-3.900015.210023-2.80007.840534-1.70002.5554...……893.800014.44001004.900024.0100利用10阶函数进行插值计算时,在函数的两端会出现相比于原函数偏离比较大的点,这就是runge(龙格)现象,但不是很明显。西南交通大学-数值分析--报告5/21当阶数为20阶时,图象如下:表4(迭代数据)iXiYi1-5.000025.00006-4.500020.250011-4.000016.000016-3.500012.2500...……914.000016.0000964.500020.2500由此图像可以看出,runge(龙格)现象已经非常明显了,由于在两端的龙格现象太明显,所以此图是在去除了两端偏离比较大的点。西南交通大学-数值分析--报告6/211.4总结利用拉格朗日插值函数构造插值多项式是比较常用的插值计算的方法之一,其解决了不需要求解方程组的问题,它也有一定的缺点:(1)从实验中可以看出,并不是拉格朗日的插值阶数越高,其插值效果越好,虽然在一些局部拟合的效果较好,但是当阶数超过7阶时就容易出现runge现象,由上图中的阶数n=20时就可以看出;(2)但是当插值阶数太少时,插值的效果又不是很好,由上图中阶数n=5时可以看出,插值效果非常不好;(3)由上面的图象可以分析,利用拉格朗日进行插值计算时,所选取的插值点并不是在区间里平均选取最好,根据不同的函数曲线,应当用不同的方法选点。西南交通大学-数值分析--报告7/21实验二2.1题目松弛因子对SOR法收敛速度的影响。用SOR法求解方程组Ax=b,其中3-2-.2-2-3-B4114114114,......要求程序中不存系数矩阵A,分别对不同的阶数取w=1.1,1.2,...,1.9进行迭代,记录近似解x(k)达到||x(k)-x(k-1)||10-6时所用的迭代次数k,观察松弛因子对收敛速度的影响,并观察当w0或w2会有什么影响?2.2松弛思想分析SOR法(松弛法),是由高斯-塞德尔迭代方法演变来的。高斯-塞德尔迭代方法的迭代格式为1kkiixxx,而松弛法的迭代格式为1kkiixxwx,通过大量的实验发现,ω的取值很关键,如果取了好的ω,迭代方程的收敛速度会加快,根据理论基础可以知道,当0ω2时松弛法才能够收敛。2.3问题的求解分别取不同阶数系数矩阵和不同松弛因子进行计算,结果如下图所示:当取阶数为5时,ω=1.1时:西南交通大学-数值分析--报告8/21迭代次数:迭代过程:x=0.82500.77690.76360.76001.0340x=0.95610.94530.94261.01761.0014x=0.98930.98681.00691.00051.0000x=0.99741.00251.00011.00001.0000x=1.00101.00011.00001.00001.0000x=0.99991.00001.00001.00001.0000x=1.00001.00001.00001.00001.0000x=1.00001.00001.00001.00001.0000当阶数n=6,ω=1.3时:迭代次数:西南交通大学-数值分析--报告9/21迭代过程:x=0.97500.96690.96420.96340.96311.2880x=0.99670.99730.99790.99831.10410.9474x=1.00011.00021.00011.03440.96291.0037x=1.00001.00001.01110.98121.00621.0009x=1.00001.00360.99171.00501.00000.9997x=1.00120.99661.00300.99950.99971.0000x=0.99851.00150.99940.99991.00001.0000x=1.00090.99971.00
本文标题:西南交通大学-数值分析--报告
链接地址:https://www.777doc.com/doc-7334364 .html