数值分析教学课件:ch02高斯消去法_第1页
数值分析教学课件:ch02高斯消去法_第2页
数值分析教学课件:ch02高斯消去法_第3页
数值分析教学课件:ch02高斯消去法_第4页
数值分析教学课件:ch02高斯消去法_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第五章

解线性方程组的数值解法(直接法)2线性方程组直接解法

自然科学和工程计算中,很多问题最终都需要求解一个线性代数方程组3线性方程组解的存在唯一性

如果线性方程组Ax=b的系数行列式不为零,即det(A)0,则该方程组有唯一解。

克莱姆(Cramer)法则

此公式计算量为(n+1)n!(n-1),当n较大时,计算量相当惊人。

比如:n=20,则

这个工作量在每秒作1010运算的计算机上计算,需要大约162年4线性方程组的数值解法

直接法:指假设计算过程中不产生含入误差,经过有限步四则运算可求得方程组准确解的方法。迭代法:从给定的方程组的一个近似值出发,构造某种算法逐步将其准确化,一般不能在有限步内得到准确解

请注意:由于在计算中某些数据实际上只能用有限位小数,即不可避免地存在着舍入误差的影响,因而即使是准确解法,也只能求到近似解。

5直接法的基本思路

利用方程组的同解变形,逐步将原方程组转化为简单易于求解的特殊形式的线性方程组。

三角形方程组的解法6很容易得到上三角形方程组的解

上述求解过程称为回代过程(backsubstitution)。

计算量为7

如何将方程组化为三角形方程组1.高斯消去法

2.非奇异矩阵三角分解回忆高斯消去法解:先用方程①消去方程②③中的8高斯消去法GaussianElimination即②-①,③-2①得再⑤+2④得同解三角方程组回代求解得:9高斯消去法GaussianElimination

上述过程相当于

可以看出,用高斯消去法解线性方程组可简单分为消元和回代两个过程。

10高斯消去法的主要思路:将系数矩阵A化为上三角矩阵,然后回代求解。考虑n阶线性方程组:矩阵形式=顺序高斯消去法GaussianElimination11Gauss消去法第一步:消去第一列依次将增广矩阵的第i行+mi1第1行,得设,计算其中第二步:消去第二列依次将上述矩阵的第i行+mi2第2行,得其中设,计算记,即。12Gauss消去法高斯消去法第k步:消去第k列依此类推,直到第n-1步,原方程化为设,计算回代求解:计算(i=k+1,…,n)(i=n-1,…,1

)13几点注记

主元(pivotelement):

顺序Gauss消去法能进行到底的条件:主元全不为0定理:(i=1,2,...,n)的充要条件是A

的顺序主子式不为零,即14计算量第k步:消第k列计算计算(i=k+1,…,n)回代求解:(i=k+1,…,n)n–k

次(n–k)2

次n–k

次n(n+1)/2

顺序Gauss消去法的乘除运算量为:15顺序高斯消去法的计算步骤1.顺序消元2.回代求解16MATLABForGaussianEliminationfunctionX=gauss(A,b)%Input—Aisann×nnonsingullarmatrix%---bisann×1matrix%Output—XisthesolutiontothesystemAX=b[n,n]=size(A);

%确定A的维数

X=zeros(n,1);fork=1:n-1fori=k+1:n%消元过程m=A(i,k)/A(k,k);%A(k,k)≠0A(i,k+1:n)=A(i,k+1:n)-m*A(k,k+1:n);b(i)=b(i)-m*b(k);

endend17MATLABForGaussianEliminationX(n)=b(n)/A(n,n);fori=n-1:-1:1X(i)=(b(i)-A(i,i+1:n)*X(i+1:n))/A(i,i);endA的第i行、第i+1到n列元素构成的行向量18顺序高斯消去法的优缺点

Gauss消元法简单易行,且计算量小。

顺序高斯消去法只适用于从1到n

1阶顺序主子式均不为零的矩阵A,即当主元素为零时,顺序高斯消去法不能进行;出现小主元时,会严重影响计算结果的精度,甚至导出错误的结果。

19用顺序消去法(高斯消去法)求解(用舍入的4位浮点数运算),则消元过程矩阵表示为回代求解得比较准确解比较严重失真。20

列主元素Gauss消去法

例列主元素法的消元过程:①先选取列主元:②ifik

k

交换第k行和第ik行③消元

在第k步消元时,在第k列的剩余部分选取主元21列主元素列主元素回代后,得22消元换行停机回代求解输出无解信息Gauss列主元消去法的算法设计23列主元Gauss消去法%a为系数矩阵,b为列向量(行列式右侧)n为系数矩阵阶数functionu=gaussline(a,b)aug=[ab]

%取得增广矩阵fork=1:n

fori=k+1:n

r=k;

det=abs(aug(k,k));

forj=k+1:n

%选主元

ifdet<abs(aug(j,k))

det=abs(aug(j,k));

end

end

ifr~=k

%交换r,k

temp=r;

r=k;

24k=temp;endifabs(aug(k,k))<eps%消元失败

disp('err!');

pause;

exit;

end

fori=k+1:n%第i行

m=aug(i,k)/aug(k,k);%行因子

forj=k:n+1

aug(i,j)=aug(i,j)-m*aug(k,j);

endend

endend25x(n)=aug(n,n+1)/aug(n,n);%最后一个解fori=n-1:-1:1%回代消元

s=0;

forj=i+1:n

s=s+aug(i,j)*x(j);

end

x(i)=(aug(i,n+1)-s)/aug(i,j-1);%求第i各解endu=x;26对前面的例题在Matlab命令窗口中输入:>>A=[0.012,0.010,0.167;1,0.83

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论