




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章线性代数方程组及矩阵特征值,线性方程组,情形1:m=n在MATLAB中的求解命令有:,情形2:mn(超定方程),多用于曲线拟合。,解线性方程组的一般函数文件如下:functionx,y=line_solution(A,b)m,n=size(A);y=;ifnorm(b,1)0%非齐次方程组ifrank(A)=rank(A,b)%方程组相容ifrank(A)=m%有唯一解x=Ab;else%方程组有无穷多个解,基础解系disp(原方程组有有无穷个解,其齐次方程组的基础解系为y,特解为x);y=null(A,r);x=Ab;end,else%方程组不相容,给出最小二乘解disp(方程组的最小二乘法解是:);x=Ab;endelse%齐次方程组ifrank(A)=n%列满秩x=zero(m,1)%0解else%非0解disp(方程组有无穷个解,基础解系为x);x=null(A,r);endendreturn,如在MATLAB命令窗口,输入命令A=2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2;b=4,6,12,6;x,y=line_solution(A,b)及:A=2,7,3,1;3,5,2,2;9,4,1,7;b=6,4,2;x,y=line_solution(A,b)分别显示其求解结果。,求解线性方程组的主要方法有:,一、Gauss消去法,设有,线性代数:方法不好时工作量非常大,工作量小的方法是Gauss消去法。,3.1解线性方程组的直接法,消元:,以此类推,最后方程组化为:,回代:,二、列主元素消去法-计算结果可靠,到此原方程组化为,到此原方程组化为,(上三角方程组)(3.2),(n-1)原方程组化为,以上为消元过程。,(n)回代求解公式,(3.3)是回代过程。,(3.3),说明:(1)也可采用无回代的列主元消去法(叫Gauss-Jordan消去法),该法同时消去对角元上下的元素,且仍旧需要选主元,但比有回代的列主元消去法的乘除运算次数多。GaussJordan消去法的优点之一是用它来计算逆矩阵的算法非常容易解释。(2)有回代的列主元消去法所进行的乘除运算次数为,量很小。,例1:在MATLAB上,用Gauss消去法求解方程组:,程序如下:clear;a=-0.040.040.123;0.56-1.560.321;-0.241.24-0.280x=0,0,0;tempo=a(2,:);a(2,:)=a(1,:);a(1,:)=tempo;aa(2,:)=a(2,:)-a(1,:)*a(2,1)/a(1,1);a(3,:)=a(3,:)-a(1,:)*a(3,1)/a(1,1);a,tempo=a(3,:);a(3,:)=a(2,:);a(2,:)=tempo;aa(3,:)=a(3,:)-a(2,:)*a(3,2)/a(2,2);ax(3)=a(3,4)/a(3,3);x(2)=(a(2,4)-a(2,3)*x(3)/a(2,2);x(1)=(a(1,4)-a(1,2:3)*x(2:3)/a(1,1);x,运行得方程组的解为:,例2:用GaussJordan消去法求解上例中的矩阵的逆矩阵。,clearA=-0.040.040.12;0.56-1.560.32;-0.241.24-0.28a=A,eye(3);tempo=a(2,:);a(2,:)=a(1,:);a(1,:)=tempo;a(1,:)=a(1,:)/a(1,1)fori=2:3;a(i,:)=a(i,:)-a(i,1)*a(1,:);end;atempo=a(3,:);a(3,:)=a(2,:);a(2,:)=tempo;aa(2,:)=a(2,:)/a(2,2);a,fori=1:3ifi=2,a(i,:)=a(i,:)-a(i,2)*a(2,:);endendaa(3,:)=a(3,:)/a(3,3)fori=1:3;ifi=3,a(i,:)=a(i,:)-a(i,3)*a(3,:);end;end;aA_inv=a(:,4:6)A*A_inv,三、Gauss全主元消去法:优点-计算结果更可靠;缺点-挑主元花机时更多,次序有变动,程序复杂。,四、应用(1)求行列式(2)求逆矩阵,(以上过程都应选主元),在MATLAB中用命令det(A),在MATLAB中用命令inv(A)或A(-1)或rref(A,E),记,,则,(下三角上三角)(三角因子分解),Gauss消元,初等行变换,化原方程组为上三角型。,五矩阵三角分解法,定义3.1,叫,的三角(因子)分解,其中是,是上三角。,下三角,为单位下三角阵(对角元全为1),,为上三角阵,则称,为Doolittle分解;,若是下三角,,是单位上三角,则称,定理3.1n阶阵,有唯一Doolittle分解(Crout),的前n-1个顺序主子式不为0.,三角分解不唯一,为此引入,定义3.2若,为Crout分解。,为什么要讨论三角分解?若在消元法进行前能实现三角分解,,则,容易回代求解,回代求解很容易,如,在Gauss消去法中,选主元改变了行的次序,尽管对于Gauss消去法来说,这种次序的变换无法事先知道,但是这个变化的影响却可以用一个算子P表示,其中P是一个置换矩阵。用P左乘原始矩阵A得到:PAx=Py或对做Gauss消去法不需要选主元,所以对做LU分解,同样不需要选主元。,实际上,将选主元Gauss消去法里的行交换同样作用于单位矩阵,所得矩阵即为P。,在MATLAB中,LU分解的命令是lu,有两种格式:(1)l,u,p=lu(A)其中A是待分解矩阵;l,u,p分别代表L,U,和置换矩阵P满足:(2)l,u=lu(A)其中,所以,六、解三对角方程组追赶法,给定方程组,按行严格对角占优,(三对角方程组),其求解算法是Gauss消去法的一种变形,称为三对角法(追赶法)。解法如下:,由第一个方程得,令,则,将其代入第二个方程,得:,再令,得:,以此类推,一般地,令,得,最后,将代入第n个方程可解得:,以上过程称为“追”;,然后按公式依顺序,进行回代,求得方程组的解,该过程称为“赶”。,具体算法如下:,三对角方程组的求解程序tri_diag.m如下:,%tri_diag(a,b,c,d,n)solvesatridiagonalequation.functionf=tri_diag(a,b,c,d,n)fori=2:nr=a(i)/b(i-1);b(i)=b(i)-r*c(i-1);d(i)=d(i)-r*d(i-1);endd(n)=d(n)/b(n);fori=n-1:-1:1d(i)=(d(i)-c(i)*d(i+1)/b(i);endf=d;,一.简单迭代法1.迭代法建立.考虑,(矩阵B不唯一),对应写出,3.2解线性方程组的迭代法,产生向量序列,若收敛,记,则于(3.4)两端取极限有:,上式说明:,是解向量,从而当k充分大时,注意:迭代阵B不唯一,影响收敛性。,解向量,(3.4)叫简单迭代法,B叫迭代矩阵。,2.收敛性.定义3.3称,为矩阵B的谱半径。,定理3.4,定理3.3简单迭代法,设有方程组(其中)Ax=b,即,(3.5),作等价变形,(3.6),-Jacobi迭代法,于是有迭代公式,(k=0,1,2,),(3.7),矩阵形式为:,简记为,(3)设方程组(3.5)的系数矩阵A按行严格对角占优即:,或按列严格对角占优,即,例3,Jacobi迭代算法,A=9-1-1;-110-1;-1-115;b=7;8;13;x=0;0;0;er=1;k=0;whileer0.00005er=0;k=k+1;fori=1:3s=0;t=x(i);forj=1:3ifi=j,s=s+A(i,j)*x(j);endendx(i)=t;y(i)=(b(i)-s)/A(i,i);er=max(abs(x(i)-y(i),er);endx=y;xend,0.77780.80000.86670.96300.96440.97190.99290.99350.99520.99870.99880.99910.99980.99980.99981.00001.00001.00001.00001.00001.0000,二、迭代法设有简单迭代法即,(3.8),称如下迭代法,(3.9),为与(3.8)对应的迭代法,其迭代矩阵可用“代入法”求得。,与(3.7)对应的迭代公式为:,-Seidel迭代法,(1)迭代法(3.9)对任意收敛(2)若则迭代法(3.9)对任意收敛;(3)若简单迭代法(3.8)的迭代矩阵满足或,则相应的Seidel迭代法(3.9)对任意收敛.,迭代法(3.9)的收敛性,例3,Gauss-Seidel迭代算法,A=9-1-1;-110-1;-1-115;b=7;8;13;x=0;0;0;er=1;k=0;whileer0.00005er=0;k=k+1;fori=1:3s=0;t=x(i);forj=1:3ifi=j,s=s+A(i,j)*x(j);endendx(i)=(b(i)-s)/A(i,i);er=max(abs(x(i)-t),er);endxend,0.77780.87780.97700.98390.99610.99870.99940.99980.99991.00001.00001.00001.00001.00001.0000,松弛因子,=1即Seidel方法(3.10),(3.11)是一种加权平均。,三.超松弛迭代法(SOR法),SOR方法的收敛性如下(不加证明):,(1)SOR方法对任意都收敛的必要条件是:(2)若系数矩阵A对称正定,则时SOR方法求解对任意收敛;(3)若系数矩阵A按行(或按列)严格对角占优,则时SOR方法对任意收敛。,如前例,用SOR法求解,A=9-1-1;-110-1;-1-115;b=7;8;13;x=0;0;0;er=1;k=0;w=1.1;whileer0.00005er=0;k=k+1;fori=1:3s=0;t=x(i);forj=1:3ifi=j,s=s+A(i,j)*x(j);endendx(i)=w*(b(i)-s)/A(i,i)+(1-w)*x(i);er=max(abs(x(i)-t),er);endxend,0.85560.97411.08751.02201.01460.99390.99880.99771.00040.99991.00031.00001.00001.00001.00001.00001.00001.0000,3.3不可解问题,线性方程组并不总是数值可解的,考虑如下三个方程组。,在MATLAB中分别求解如下:,有无穷多个解,其中一个解,方程组不相容,最小二乘解,3.4病态问题,有许多线性方程组理论上是可解的,但实际计算中由于受到舍入误差的干扰而无法得到精确解,此类问题称为病态问题。,常用范数:,矩阵A的条件数记为Cond(A),定义为:,条件数总满足:,当矩阵是病态时,其条件数一定很大,但并不能直接说明解的误差。,MATLAB中计算条件数的命令是:cond(A),对于病态矩阵,逆矩阵和行列式的计算都会变得不精确。所以具备下列特征的问题可认为是病态的:,例4:Hilbert矩阵:,计算从55到1414的Hilbert矩阵的条件数、行列式和。,clearforn=5:14fori=1:nforj=1:n,a(i,j)=1/(i+j-1);endendc=cond(a);d=det(a)*det(a(-1);fprintf(n=%3.0fcond(a)=%edet*det=%en,n,c,d)en
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮服务标准流程及客户满意度提升
- 足球运动员职业生涯梦想规划
- 现代教育设计及考试题库管理方案
- 企业ERP系统SAP操作培训手册
- 高三文科数学月考模拟题及教师点评
- 上海三年级综合实践教案范本
- 大型企业信息化建设方案设计
- 电商平台客服服务流程培训材料
- 企业数据隐私保护管理流程
- 高校语文教学设计与课堂实录
- 2025年国网陕西省电力有限公司高校毕业生提前批招聘行程安排笔试参考题库附带答案详解
- 体育运动的安全防范课件
- 泰国安全防卫培训课件
- 锅炉工艺规程培训课件
- 企业销售业务标准作业手册
- 石材购销合同范本简单
- 中国南方航空数字化和双中台方案
- 安徽省物业管理行业专题调研分析报告
- 2023国家电网作业安全风险管控典型生产作业风险定级库
- 媒介经营与管理(课程)课件
- 项目组织供应能力说明
评论
0/150
提交评论