选列主元的高斯消去法实验报告2文档格式.docx

上传人:wj 文档编号:4640766 上传时间:2023-05-03 格式:DOCX 页数:5 大小:100.20KB
下载 相关 举报
选列主元的高斯消去法实验报告2文档格式.docx_第1页
第1页 / 共5页
选列主元的高斯消去法实验报告2文档格式.docx_第2页
第2页 / 共5页
选列主元的高斯消去法实验报告2文档格式.docx_第3页
第3页 / 共5页
选列主元的高斯消去法实验报告2文档格式.docx_第4页
第4页 / 共5页
选列主元的高斯消去法实验报告2文档格式.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

选列主元的高斯消去法实验报告2文档格式.docx

《选列主元的高斯消去法实验报告2文档格式.docx》由会员分享,可在线阅读,更多相关《选列主元的高斯消去法实验报告2文档格式.docx(5页珍藏版)》请在冰点文库上搜索。

选列主元的高斯消去法实验报告2文档格式.docx

对于非奇异矩阵A,求解线性方程组Ax=b可以使用gauss消去法进行。

但是,gauss消去法要求系数矩阵A的顺序主子式非奇异。

为此做出改进:

每次消元之前,首先选出第i列(i<

=k)中最大的作为列主元,这样,就能保证消元乘数

不仅不被系数矩阵A的顺序主子式非奇异的限制,还这样就能有效的防止误差的传播与放大。

算法:

(1)对增广矩阵[ab]进行第i次消元,首先选取列主元a(i,k)=Max|a(I,i:

n),交换第i行与第k行;

(2)以列主元进行消元,计算公式为

a(k,i)=a(k,i)/a(i,i);

(k=i+1:

n)

a(k,j)=a(k,j)-a(k,i)*a(i,j);

(j=i:

(3)回代法计算结果,计算公式为:

x(n)=b(n)/a(n,n);

x(p)=[b(p)-∑a(p,j)x(j)]/a(p,p)(j=p+1:

注:

gauss(a,b)为选取列主元gauss消去法,gauss2(a,b)为gauss消去法。

三,实验MATLAB程序代码

实验的MATLAB程序代码如下

四,实验结果与分析

1,两种算法对系数矩阵的顺序主子式奇异线性方程的效果分析

实验结果(如图一)对于顺序主子式奇异的系数矩阵,使用gauss消去法(gauss2(a,b))不能解出,而使用选列主元的gauss消去法(gauss(a,b))能够解出。

主要是选列主元的gauss消去法每次都选出最大的列主元,从而保证了每次用作除数的a(I,i)≠0.

图一:

两种算法对系数矩阵的顺序主子式奇异线性方程的效果

2,两种算法对舍入误差的放大效应分析

用随机生成函数random('

Normal'

1,7,10,10)生成10*10矩阵,分别gauss消去法和选列主元的高斯消去法解出,并用公式erx=||x-x*|||x|≤conda*|r||b|估计其误差,结果如下图。

图二:

两种算法对舍入误差的放大效应分析

可以看到,对同一个方程组,选列主元的高斯消去法得到的结果中范数norm(r=a*ans'

-b,inf)=6.6613e-016<

高斯消去法得到的结果中范数norm(r=a*ans'

-b,inf)=7.6605e-015,两者相差一个数量级,由公式erx=||x-x*|||x|≤conda*|r||b|可知,对应的误差也就相差一个数量级。

选列主元的高斯消去法因为每次消元之前,首先选出第i列(i<

=k)中最大的作为列主元,这样,就能保证消元乘数小于1,因此选列主元的高斯消去法能有效的防止误差的传播与放大。

3,对于恶性矩阵:

希尔伯特矩阵,选列主元的高斯消去法的表现:

由以下代码生成希尔伯特矩阵:

fori=1:

n

forj=1:

a(i,j)=1/(i+j-1);

end

end

取方程组Hx=ones(n,1);

当n=5,结果为:

norm(a*ans'

-b,inf)=8.7311e-011;

erx=||x-x*|||x|≤conda*|r||b|=(4.7661e+005*1.4211e-014)/2.2361=3.0290*-09;

可见误差比较小;

结果还可以接受。

当n=10,结果为:

-b,inf)=8.7311e-011;

erx=||x-x*|||x|≤conda*|r||b|=(1.6025e+013*8.7311e-011)/3.1623=4.4720*+02;

此时,误差已经大到无法接受。

对于这样的情况,需要用以下方法改进:

(1)算出残余矩阵r=b-a*x;

(2)解出a*y=r;

(3)X’=x+y;

但是这种改进只对病态不是很严重的矩阵有帮助,对病态严重的矩阵,比如对于H10,我们有:

改进后,解得:

x=(x+y)=1.0e+006*[-0.00000.0010-0.02380.2402-1.26113.7834-6.72607.0006-3.93790.9237],

对应误差为

erx=||x-x*|||x|≤conda*|r||b|=(1.6025e+013*8.0036e-011)/3.1623=4.0558*+02,

可见改进并无很好效果。

五,实验心得

(1)通过具体的实验,我真正明白了gauss消去法的原理,而且明白了选列主元的gauss消去法对于减小系数矩阵的要求和减少舍入误差的传播方面的优点。

(2)由于MATLAB我是才开始接触,因此在编程的时候碰到了许多问题,花了不少时间,但是也让我对MATLAB的使用有了进一步的了解。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2