病态线性方程组的求解

上传人:新** 文档编号:507545064 上传时间:2023-02-06 格式:DOC 页数:7 大小:136KB
返回 下载 相关 举报
病态线性方程组的求解_第1页
第1页 / 共7页
病态线性方程组的求解_第2页
第2页 / 共7页
病态线性方程组的求解_第3页
第3页 / 共7页
病态线性方程组的求解_第4页
第4页 / 共7页
病态线性方程组的求解_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《病态线性方程组的求解》由会员分享,可在线阅读,更多相关《病态线性方程组的求解(7页珍藏版)》请在金锄头文库上搜索。

1、安徽工业大学数理科学与工程学院病态线性方程组的求解 专 业 数学与应用数学 班 级 数*班 学 号 * 姓 名 * 指导教师 * 二一五年五月一、设计目的:为了更加透彻的熟悉数值分析课程,学习各种数学软件的使用,锻炼自己对知识的实际运用能力。二、引言:用直接法求解AX=F线性方程组,对于系数矩阵A对角占优是很有效的。方程阶数不高时,人们经常使用;而当方程组阶数大时,由于积累误差,导致结果失真。为了克服误差积累问题,通常用迭代法。它具有可达到所要求的精度和对计算内存要求不大的优点,对求解大型线性方程组,迭代法计算时间远比直接法少,所以在实际计算中,迭代法也被人们广泛使用。然而迭代法要研究迭代格式

2、的收敛性,如Jacobi迭代对系数矩阵为病态矩阵不收敛,为此我们提供一种修改的Jacobi迭代,并给出一些数值例子来说明有较好的效果。三、解线性方程组迭代法的描述设线性方程组AX=P,这里A:a,X:x,F:f,1i,jn,为了更广泛地应用,对A只限制实的非奇异矩阵,那么,若给定初值x,我们熟知的有:Jacobi迭代:x=(f-)/a j, 1in四、求解病态线性方程组的另一种迭代解法设线性方程BX=F, 这里系数矩阵B是病态的,指的是矩阵条件数是较大的。条件数越大,就越难求得准确解,为此,我们将方程的两端同加DX项,那 么相应的Jacobi迭代有:X (1)这里,A为B的对角阵,即A: b,

3、H:b j 1i,jn,记M= ,,那么有:由此可见(1)式收敛,迭代矩阵M 的谱半径应满足p(M )1,谱半径若用M的特征值判断,则较为繁锁;若B 不可约,根据线性代数对角占优简单迭代必收敛的性质,为简单起见,我们取D为对角线阵,即D: d,为保证收敛就得取d=Sign,符号Signa,b的含义是与b同号,数值取a,这是充分条件,实际计算中有时可放宽处理,比如可取d=Sign或者d=Sign j,因而相应的Jacobi迭代修改为:x=(f-)/(b+d) (2) 下面列举普通Jacobi迭代不收敛,解不出正确结果,而用修改的Jacobi迭代可求出满意结果的例子:例 1:A= F=精确解为X=

4、,普通Jacobi迭代不收敛,取d=Sign j, 1i,j3用(2)式迭代40步,X=例 2:方程系数为Hilbert阵H: F: 1i,jn精确解X=,普通Jacobi迭代发散,取d=Sign用修改的(2)式迭代,n=1200时迭代10870步结果摘录如下:五、结论与问题以上数值试验表明该迭代算法对求解病态线性方程组是有效的,其优点是可达到预定的精度。求解病态方程组大条件数的系数矩阵,要获得较正确的解是很困难的。本文的算法迭代虽能保证收敛,但与精确解的误差到底怎样,还应将解代入原方程,衡量、检验求得解的可信程度;另外,如何克服求解病态线性方程组收敛缓慢的问题,还有待于进一步工作。附录例 1

5、的matlab计算程序:clearm=40;n=3;A=2 -1 1;1 1 1;1 1 -2;F=-2 -3 0;x=zeros(n,m);for i=1:n x(i,1)=0;endfor i=1:n if i=1 d(i)=max(abs(A(i,2:n)*A(i,i)/abs(A(i,i); elseif i=n d(i)=max(abs(A(i,1:n-1)*A(i,i)/abs(A(i,i); else d(i)=max(max(abs(A(i,1:i-1),max(abs(A(i,i-1:n)*A(i,i)/abs(A(i,i); endendfor k=2:m for i=1:

6、n x(i,k)=(F(i)-A(i,:)*x(:,k-1)+A(i,i)*x(i,k-1)+d(i)*x(i,k-1)/(A(i,i)+d(i); endendx(:,m)例 2的matlab计算程序:clearn=1200;m=10870;for i=1:n for j=1:n H(i,j)=1/(i+j-1); endendfor i=1:n f(i)=sum(H(i,:);endfor i=1:n d(i)=sum(abs(H(i,:)*H(i,i)/abs(H(i,i);endfor i=1:n x(i,1)=0;endfor k=1:m for i=1:n x(i,k+1)=(f(i)-H(i,:)*x(:,k)+H(i,i)*x(i,k)+d(i)*x(i,k)/(H(i,i)+d(i); endendx(:,m)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号