当前位置:文档之家› 数值分析MATLAB上机实验

数值分析MATLAB上机实验

数值分析实习报告姓名:gestepoA学号:201*******班级:***班序言随着计算机技术的迅速发展,数值分析在工程技术领域中的应用越来越广泛,并且成为数学与计算机之间的桥梁。

要解决工程问题,往往需要处理很多数学模型,不仅要研究各种数学问题的数值解法,同时也要分析所用的数值解法在理论上的合理性,如解法所产生的误差能否满足精度要求:解法是否稳定、是否收敛及熟练的速度等。

而且还能减少大量的人工计算。

由于工程实际中所遇到的数学模型求解过程迭代次数很多,计算量很大,所以需要借助如MATLAB,C++,VB,JAVA的辅助软件来解决,得到一个满足误差限的解。

本文所计算题目,均采用MATLAB进行编程,MATLAB被称为第四代计算机语言,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来MATLAB最突出的特点就是简洁,它用更直观的、符合人们思维习惯的代码。

它具有以下优点:1友好的工作平台和编程环境。

MATLAB界面精致,人机交互性强,操作简单。

2简单易用的程序语言。

MATLAB是一个高级的矩阵/阵列语言,包含控制语言、函数、数据结构,具有输入、输出和面向对象编程特点。

用户可以在命令窗口中将输入语句与执行命令同步,也可以先编好一个较大的复杂的应用程序(M 文件)后再一起运行。

3强大的科学计算机数据处理能力。

包含大量计算算法的集合,拥有600多个工程中要用到的数学运算函数。

4出色的图像处理功能,可以方便地输出二维图像,便于我们绘制函数图像。

目录1 第一题 (4)1.1 实验目的 (4)1.2 实验原理和方法 (4)1.3 实验结果 (5)1.3.1 最佳平方逼近法 (5)1.3.2 拉格朗日插值法 (7)1.3.3 对比 (8)2 第二题 (9)2.1实验目的 (9)2.2 实验原理和方法 (10)2.3 实验结果 (10)2.3.1 第一问 (10)2.3.2 第二问 (11)2.3.3 第三问 (11)3 第三题 (12)3.1实验目的 (12)3.2 实验原理和方法 (12)3.3 实验结果 (12)4 MATLAB程序 (14)1第一题某过程涉及两变量x 和y ,拟分别用插值多项式和多项式拟合给出其对应规律的588719448 721570234795 743847392⑴请用次数分别为3,4,5,6的多项式拟合并给出最好近似结果f(x)。

⑵请用插值多项式给出最好近似结果。

1.1实验目的:学习逼近和插值的原理和编程方法,由给出的已知点构造多项式,在某个范围内近似代替已知点所代表的函数,以便于简化对未知函数的各种计算。

1.2试验原理和方法:实验原理:拉格朗日插值法中先构造插值基础函数:l k (x )=∏x−x ixk −x in j=0j≠k(k =0,1,2,⋯,n ),然后构造出拉格朗日多项式:p n (x )=∑(∏x−x ixk −x in j=0j≠k)n k=0f (x k )。

最佳平方逼近中,设逼近函数P n (x )=a 0+a 1x +a 2x 2+⋯+a n x n ,逼近函数和真实函数之差r =P n (x )−y ,[r 1r 2⋮r n ]=[11⋮x 1x 2⋮⋯⋯⋱x 1n x 2n ⋮1x n⋯x nn ][a 0a1⋮a n ]−[y 1y 2⋮y n ],即:r =Xa −Y ,根据最小二乘准则令∑r i 2n i=0=min ,可以得到a =(X T X )−1X TY 。

实验方法:逼近法采用最佳平方逼近,依据最小二乘原则:∑r i 2n i=0=min ,由已知条件采用离散型。

插值法采用拉格朗日插值法。

在逼近法中,由于是离散型的,所以法方程系数阵设计成求和。

分别求出3、4、5、6次的多项式,逼近结果和真实值有一定差距,最小二乘正是让这些差距达到最小,理论上多项式次数越高结果和真实值差距越小。

拉格朗日插值法中“la=la*(p-x(j))/(x(k)-x(j))”语句实现的是我们通常书写的连乘形式拉格朗日插值多项式,但是表示不方便,而如果用“s=collect(s)”函数将其展开成降幂排列多项式以后,由于余项问题结果会和原本的多项式有偏差,这种偏差随着x 的增大而增大。

求出多项式后和题目中给出的参考点进行比较。

最后,选择六次最佳平方逼近多项式和拉格朗日插值多项式(九次)进行比较,选取xi=a+ih=1+0.2*i(i=0,1,⋯,45),分别绘制两者的图像进行比较。

1.3试验结果1.3.1最佳平方逼近法三次多项式:- 1.033*x^3 + 19.33*x^2 - 94.48*x + 131.8拟合结果:0000000000四次多项式:- 0.3818*x^4 + 7.368*x^3 - 42.14*x^2 + 73.53*x+ 0.745拟合结果:y 39.121232.080210.0852-5.5638-2.73021.560261.1172100.5882115.457272.045五次多项式:0.09807*t^5 - 3.079*t^4 + 34.5*t^3 - 163.5*t^2 + 304.7*t - 139.5拟合结果:12345678910 x 1 2 3 4 5 6 7 8 9 10y 33.219120-16.5003-8.906335840六次多项式:0.01936*t^6 - 0.5408*t^5 + 5.114*t^4 - 16.9*t^3 - 0.867*t^2 + 66.38*t - 18.7拟合结果:y 34.505640-13.9486-12.2250409460对比可知,六次多项式拟合结果最好。

1.3.2拉格朗日插值法插值多项式5.353*10^(-5)*x^9 - 0.003088*x^8 + 0.07229*x^7 - 0.8792*x^6 + 5.932*x^5 -22.41*x^4 + 50.11*x^3 - 86.47*x^2 + 113.5*x - 25.2注:此多项式为拉格朗日多项式的近似式,当x=10的时候偏差可以达到23以上。

对比数据:插值结果:054493其中红点表示参考点。

1.3.3比较选取xi=a+ih=1+0.2*i(i=0,1,⋯,45),分别绘制六次多项式拟合和拉格朗日插值结果图:其中绿线表示拉格朗日插值多项式图像,蓝线表示六次多项式拟合图像。

两者效果近似但后者比前者低三次。

2第二题用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b1或Ax=b2,研究其收敛性。

上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。

(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4];b1=[-3,2,4]T;b2=[100,-200,345]T。

(2) A行分别为A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1] T;b2=[5,0,-10]T。

(3)A行分别为A1=[1,3],A2=[-7,1];b1=[4,6]T。

2.1试验目的学习jacobi迭代法和GuassSeidel迭代法的原理和编程方法,研究方程组系数阵和右边项对方程的解及其收敛性的影响,判断迭代法的收敛条件。

2.2实验原理和方法实验原理:将方程组系数阵A分解为A=D+L+U,其中D为对角阵,L为减去D的下三角阵,U 为减去D的上三角阵。

Jacobi迭代法中构造如下迭代公式:x(k+1)=−D−1(L+U)x(k)+D−1b而Gauss-Seidel迭代法的迭代公式为:x(k+1)=−(D+L)−1Ux(k)+(D+L)−1b初始值直接选取为0。

在判断其收敛性时,分别求解其迭代矩阵的谱半径ρ(G),ρ(G)=max1≤i≤≤n|λi|,λi为迭代矩阵的特征值。

实验方法:分别编写jacobi迭代及其收敛判别函数和Seidel迭代及其收敛判别函数。

如果在初试迭代步数之内还未收敛就进行收敛判别,收敛判别的依据是迭代矩阵的谱半径是否小于1。

比较同一方程组的jacobi迭代法和Seidel迭代法的结果是否相同,在达到精度要求后比较两种方法的迭代次数,比较哪一个的效率更高。

比较方程组系数阵和等号右边的变化会对方程的解和收敛速度造成什么影响。

如果迭代不收敛,那么考虑为什么不收敛,如果把方程组系数阵进行强对角占优处理,是否会收敛。

2.3实验结果规定误差界:1e-42.3.1第一问①A=[62−11−341−24],b=[−324].由jacobi迭代法求得x=[ −0.72730.80810.2525],设定迭代20次,实际迭代16次,精度为9.4022e-005。

由seidel迭代法求得x=[ −0.72720.80810.2525],设定迭代20次,实际迭代10次,精度为:9.0769e-005②A=[62−1 1−341−24],b=[100−200345]由jacobi 迭代法求得x =[ 36.3636−2.0707114.0404],设定迭代40次,实际迭代23次,精度为6.9948e -005。

由Seidel 迭代法求得x =[ 36.3637−2.0707114.0404],设定迭代20次,实际迭代15次,精度为8.6384e -005③通过对比可知:1、Seidel 迭代的收敛速度明显高于jacobi 迭代。

2、b 矩阵对收敛速度和误差精度有影响,b 中元素较大时会放慢收敛速度并加大误差。

2.3.2第二问① A =[10.80.80.80.810.80.81],b =[321] 由jacobi 迭代法求解,100次迭代尚且不能达到精度。

此时调用jacobi 迭代法的收敛判别函数,求得特征值为:λ1=−1.6,λ2、3=0.8,ρ(G J )=1.6>1,迭代不收敛。

由于Seidel 迭代法求解x =[ 5.76910.7693 −4.2307],迭代次数31,精度为8.7826e-005 ② A =[10.80.80.80.810.80.81],b =[50−10] Jacobi 迭代不收敛。

Seldel 迭代法求得x =[ 32.69227.6922 −42.3076] ,迭代次数38,精度为8.4552e -005。

比较①②得知A 矩阵元素如果相差很小,迭代次数会大幅增加,综合比较⑴⑵可知b 矩阵元素如果相差很大会增加迭代次数。

2.3.3第三问试验结果和讨论A =[13−71],b =[46] 此时ρ(G J )=4.5826>1,ρ(G G )=21>1,jacobi 迭代法和Seidel 迭代法都不收敛。

如果交换A 中行的顺序,得到[−7113],用jacobi 迭代计算,迭代8次,解得x =[−0.63641.5454]。

相关主题