线形代数方程组的解法

线形代数方程组的解法

ID:20012030

大小:318.00 KB

页数:63页

时间:2018-10-09

线形代数方程组的解法_第1页
线形代数方程组的解法_第2页
线形代数方程组的解法_第3页
线形代数方程组的解法_第4页
线形代数方程组的解法_第5页
资源描述:

《线形代数方程组的解法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章线形代数方程组的解法学习目标了解求解线性代数方程组的基本定理掌握高斯消元法及其计算机实现理解用矩阵分解法求解线性方程组的原理掌握大型稀疏方程组的迭代法5.1线形代数方程组的直接解法n阶线形方程组:(5.1)矩阵形式:其中要求A非奇异.解的判断数值求解方法有以下三条途径(三种框架)直接法:利用Gauss消元或矩阵分解,通过有限次运算可求出精确解。迭代法:构造迭代格式,产生迭代序列,通过无限次迭代过程求解。高斯消元法是一个古老的直接法,由它改进得到的选主元法,是目前计算机上常用于求低阶稠密矩阵方程组的有效方法,其特点就是通过消元将一般线性方程组的求解问题转化为三角方

2、程组的求解问题。高斯消元法的求解过程,可大致分为两个阶段:首先,把原方程组化为上三角形方程组,称之为“消元”过程;然后,用逆次序逐一求出上三角方程组(原方程组的等价方程组)的解,称之为“回代”过程.5.1.1高斯消去法5.1.1高斯消去法思想:把矩阵A化为一个上三角矩阵,从而将原方程组约化为容易求解的等价三角方程组,再通过回代过程既可逐一求出各未知数.方法:逐列消元.例:矩阵形式:增广矩阵:对A的第一列消元,进行行变换把A21,A31化为零:对A的第二列消元,进行行变换把A32化为零:进一步:计算x,对于n阶方程组,增广矩阵为:对第一列消元:重新记为:对第二列消元得到

3、:继续消元过程,最后得到:计算x的值:或者写成:注1:在消元过程中所有不能为零.MATLAB程序:functionx=gauss1(A,B)%gauss消去法解线性方程组Ax=Bn=length(B);C=[AB];fori=1:nifC(i,i)~=0C(i,:)=C(i,:)/C(i,i);forj=i+1:nC(j,:)=C(j,:)-C(j,i)*C(i,:);endelseerror('对角线元素为零');endendx(n)=C(n,n+1);fori=n-1:(-1):1ss=C(i,i+1:end-1)*x(i+1:end)';x(i)=C(i,n+1

4、)-ss;end>>A=[231;111;1-2-1];>>B=[9;4;-4];>>x=gauss1(A,B)x=121>>A=[031;111;1-2-1];>>x=gauss1(A,B)???Errorusing==>gauss1对角线元素为零注2:在消元过程中,若相对于该列中对角线以下的元素相比,其绝对值很小时,尽管消去运算可以进行下去,但是用其作除数,即使很小的舍入误差也会引起计算结果的严重扩散和失真。例:其准确到小数点后第9位的解为但是若按照高斯消去法且在编程计算过程中采用4位浮点数求解,用第一个方程消去第二个方程的,得回代以后解得与我们的精确结果相比较,

5、结果严重失真。其主要原因是除数太小,导致舍入误差增大,有效数字失效。若我们在消元前交换两个方程的位置,变为:对上述方程组消元得到三角方程组回代得解5.1.2高斯列主元消去法优点:解决直接消去法中的问题.提高计算精度.方法:消元过程中取该列中(尚未消元的行)绝对值最大的作为主元进行消元.例:增广矩阵:对第一列找主元‘381’进行行变换:消元:对第二列选主元,消元计算x在消元过程中不会出现待消的某列全为零的情况,否则A奇异.如:方程:得:>>A=[1e-162;11];>>B=[2;3];>>x=gauss1(A,B)x=4.00001.0000>>ABans=2.00

6、001.0000高斯列主元消去法程序:functionx=gauss2(A,B)%gauss列主元消去法解线性方程组Ax=Bn=length(B);C=[A,B];fori=1:nc=abs(C(i:end,i));k=find((c-max(c))==0);k=k(1)+i-1;Ci=C(i,:);C(i,:)=C(k,:);C(k,:)=Ci;ifC(i,i)~=0C(i,:)=C(i,:)/C(i,i);forj=i+1:nC(j,:)=C(j,:)-C(j,i)*C(i,:);endelseerror('矩阵A奇异');endendx(n)=C(n,n+1);

7、fori=n-1:(-1):1ss=C(i,i+1:end-1)*x(i+1:end)';x(i)=C(i,n+1)-ss;endfind()函数:找出非零元素.k=find(x)返回向量x的非零元素下标.[i,j]=find(X)返回矩阵X的非零元素下标.[i,j,v]=find(X)返回矩阵X的非零元素下标,同时返回非零元素的值.>>x=[11033055];>>k=find(x)k=135>>y=x(find(x))y=113355>>find(x==0)ans=24>>x==0ans=01010>>find(x>20)ans=35>>M=[1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。