欢迎来到天天文库
浏览记录
ID:48128697
大小:95.00 KB
页数:6页
时间:2020-01-21
《数值分析实验-病态线性方程组的算法设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数值分析课程实验报告实验名称病态线性方程组的算法设计班级学号姓名序号任课教师评分一、实验目的1、初步病态线性方程组的判定。2、初步了解常规方法在求解病态线性方程组时遇到的困难。3、针对病态问题设计求解算法并验证算法的有效性。二、用文字或图表记录实验过程和结果1、Hilbert矩阵如下:其中,它是一个对称正定矩阵,并且随着的增加迅速增加,利用Matlab分析如下:可以发现在阶数不断增大Hilbert矩阵的条件数不断增大,这样使得求解Hilbert病态方程变得非常困难,即使A或b有微小扰动时,即使求解过程是精确进行的(即没
2、有舍入误差),所得的解相对于原方程的解也会有很大的相对误差。这就需要提出病态线性方程组的求解方法,对于一般的方程求解常用的有高斯(选主元)消去算法、高斯—赛德尔迭代。本试验先使用用列主元高斯消去算法和高斯-赛德尔迭代算法求解线性方程组:其中。2、高斯列主元消去算法(1)设计流程图:开始给定阶数n自动生成Hilbert矩阵和常数向量b将j列主元Ajj存放在top中
3、Aij
4、>
5、Ajj
6、交换i=i+1计算并储存结果在上三角矩阵j=j+1j=n回代结束图1高斯列主元消去算法流程图(2)计算结果:nX(i)i=1,2…….n3
7、1.00001.00001.000051.00001.00001.00001.00001.0000101.00001.00001.00001.00000.99991.00020.99971.00030.99981.0000201.00001.00001.00070.98451.1685-0.07885.3022-9.928518.5579-16.621414.3775-14.766420.8247-4.8790-19.013129.7824-15.57405.11500.76360.9842401.00001.0003
8、0.98981.1715-0.51098.6090-21.542839.5435-36.233231.7510-41.592813.747665.5399-15.4594-82.5762-26.8622125.4556-13.6811-9.9732-7.3397-115.6481200.0592-38.9658-116.4953-112.5598175.2760184.9966-54.0737-164.9719-228.9714377.1052-22.3954-83.7536-57.839711.5290123.567
9、1-106.404587.1689-82.999832.3404(3)误差分析:从表中明显发现当Hilbert矩阵的阶数较大时(n=40),与精确解X=1完全不一样,而且误差很大,究其原因,在有Hilbert矩阵的病态性,对于算法中的舍入误差,即使不是很大,而且在算法中的步骤也是精确的,会经过相应的算法将误差进行放大,导致矩阵的条件数随着阶数的升高而不断增大,条件数反映了方程组解对原始数据变化的敏感程度,其值越大,这种敏感性就越高,对于微小的扰动,解的相对误差就可能越大。通常认为条件数是初始的相对误差引起解的相对误差的
10、放大倍数。当n=20时,由于计算机的本身的保存问题,带入了微小的扰动误差,因此导致条件数的不断增大和解的不准确。3、高斯-赛德尔迭代算法(1)设计流程图开始生成Hilbert矩阵和常数b向量给定阶数n和迭代精度tol给定初始解y和准确解并赋值x1迭代求解y
11、
12、y-x1
13、
14、15、10.99961.00050.99990.99951.00001.00050.9997201.00001.00001.00010.99971.00050.99990.99960.99991.00021.00031.00021.00000.99980.99970.99981.00001.00021.00031.00020.9997401.00000.99971.00190.99541.00191.00331.00100.99860.99760.99790.99891.00021.00121.00181.00191.00116、71.00121.00060.99990.99930.99890.99860.99840.99840.99860.99890.99930.99981.00031.00071.00111.00141.00161.00161.00141.00111.00050.99970.99860.9973(3)误差分析:高斯—赛德尔迭代是对于线性
15、10.99961.00050.99990.99951.00001.00050.9997201.00001.00001.00010.99971.00050.99990.99960.99991.00021.00031.00021.00000.99980.99970.99981.00001.00021.00031.00020.9997401.00000.99971.00190.99541.00191.00331.00100.99860.99760.99790.99891.00021.00121.00181.00191.001
16、71.00121.00060.99990.99930.99890.99860.99840.99840.99860.99890.99930.99981.00031.00071.00111.00141.00161.00161.00141.00111.00050.99970.99860.9973(3)误差分析:高斯—赛德尔迭代是对于线性
此文档下载收益归作者所有