matlab数值计算第二次.ppt_第1页
matlab数值计算第二次.ppt_第2页
matlab数值计算第二次.ppt_第3页
matlab数值计算第二次.ppt_第4页
matlab数值计算第二次.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第二章MATLAB数值计算(第二讲),本章学习目标掌握生成特殊矩阵的方法。掌握矩阵分析的方法。掌握求解线性方程组的各种方法。了解矩阵的稀疏存储方式。掌握数据统计和分析的方法。掌握多项式常用运算。,2.3线性方程组求解,2.3.1矩阵求逆及线性代数方程组求解1矩阵求逆inv(A)函数用于计算方阵的逆矩阵。【例.8】求方阵A的逆矩阵并赋值给B,且验证与是互逆的。A=1-11;5-43;211;B=inv(A)B=-1.40000.40000.20000.2000-0.20000.40002.6000-0.60000.2000,2.3线性方程组求解,A*Bans=1.00000.00000.0000-0.00001.00000.0000-0.00000.00001.0000B*Aans=1.00000.0000-0.0000-0.00001.00000.00000.0000-0.00001.0000,2.3线性方程组求解,2利用矩阵求逆方法解线性方程组【例.】利用矩阵求逆方法解线性方程组A=1,-2,3;3,-1,5;2,1,5;b=1;2;3;x=inv(A)*bx=-0.33330.33330.6667,2.3线性方程组求解,2.3.2利用左除运算符求解线性方程组对于线性方程组Ax=b,可以利用左除运算符“”求解:x=Ab【例2.10】用左除运算符求解下列相同系数矩阵的两个线性代数方程组的解。,2.3线性方程组求解,解法1:分别解线性方程组。A=1,-1,1;5,-4,3;2,1,1;b1=2;-3;1;b2=3;4;-5;x=Ab1x=-3.80001.40007.2000y=Ab2y=-3.6000-2.20004.4000,解法2:将两个线性方程组连在一起求解。A=1,-1,1;5,4,3;2,1,1;b=2,3;-3,4;1,-5;xy=Abxy=-3.8000-3.60001.4000-2.20007.20004.4000,2.4矩阵分解,矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解以及Schur分解、Hessenberg分解、奇异分解等。2.4.1矩阵的LU分解矩阵的LU分解又称Gauss消去分解或三角分解,就是将一个方阵表示为一个行交换下三角矩阵和一个上三角矩阵的乘积形式。方阵A是非奇异的,LU分解总是可以进行的。LU分解主要用于简化一个大矩阵的行列式值的计算过程、求反矩阵和求解联立方程组。,2.4矩阵分解,MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式如下。L,U=lu(X):产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。L,U,P=lu(X):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PX=LU。当然矩阵X同样必须是方阵。当使用第1种格式时,矩阵L往往不是一个下三角矩阵,但可以通过行交换成为一个下三角阵。,2.4矩阵分解,【例2.11】设,对矩阵进行分解。a=1-11;5-43;211;L,U=lu(a)L=0.2000-0.07691.00001.0000000.40001.00000,2.矩阵分解,U=5.0000-4.00003.000002.6000-0.2000000.3846lu=L*Ulu=1-115-43211,2.矩阵分解,LUP=lu(a)L=1.0000000.40001.000000.2000-0.07691.0000U=5.0000-4.00003.000002.6000-0.2000000.3846P=010001100,2.矩阵分解,lu=L*Ulu=5-432111-11inv(p)*L*u?Undefinedfunctionorvariablep.inv(P)*L*Uans=1-115-43211,2.矩阵分解,2.矩阵分解,clearA=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;ticx2=Ab;%用左除运算求解tocticx1=inv(A)*b;%用求逆运算求解tocticL,U=lu(A);%LU分解x3=U(Lb);%用LU分解求解tocx1=x1x2=x2x3=x3,其中tic和toc两个函数配合使用用于计算程序的执行时间,tic记录当前时间,toc记录或显示使用tic函数以来所花费的时间。运行结果说明,x1、x2、x3的值相同,通过LU分解求值所花运行时间最少。,2.矩阵分解,.4.2矩阵的QR分解对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q和一个上三角矩阵R的乘积形式。MATLAB的函数qr可用于对矩阵进行QR分解,其调用格式如下。Q,R=qr(X):产生一个一个正交矩阵Q和一个上三角矩阵R,使之满足X=QR。Q,R,E=qr(X):产生一个一个正交矩阵Q、一个上三角矩阵R以及一个置换矩阵E,使之满足XE=QR。,2.矩阵分解,【.】设对矩阵进行分解。A=2,1,1,4;1,2,-1,2;1,-1,3,3;Q,R=qr(A),2.矩阵分解,Q=-0.81650-0.5774-0.4082-0.70710.5774-0.40820.70710.5774R=-2.4495-1.2247-1.6330-5.30720-2.12132.82840.7071000.57740.5774QR=Q*RQR=2.00001.00001.00004.00001.00002.0000-1.00002.00001.0000-1.00003.00003.0000,2.矩阵分解,Q,R,E=qr(A)Q=-0.7428-0.1980-0.6396-0.3714-0.67300.6396-0.55710.71260.4264R=-5.3852-2.0426-0.9285-2.414002.6130-2.2567-0.356000.2132-0.2132E=0001001001001000,2.矩阵分解,Q*R/E%验证A=Q*R*inv(E)ans=2.00001.00001.00004.00001.00002.0000-1.00002.00001.0000-1.00003.00003.0000实现分解后,线性方程组的解()或()。,2.矩阵分解,.4.3矩阵的Cholesky分解如果矩阵X是对称正定的,则Cholesky分解将矩阵X分解成一个下三角矩阵和上三角矩阵的乘积。设上三角矩阵为R,则下三角矩阵为其转置,即X=RR。MATLAB函数chol(X)用于对矩阵X进行Cholesky分解,其调用格式如下。R=chol(X):产生一个上三角阵R,使RR=X。若X为非对称正定,则输出一个出错信息。R,p=chol(X):这个命令格式将不输出出错信息。当X为对称正定的,则p=0,R与上述格式得到的结果相同;否则p为一个正整数。如果X为满秩矩阵,则R为一个阶数为q=p1的上三角阵,且满足RR=X(1:q,1:q)。,2.矩阵分解,【例2.14】对矩阵进行分解。A=2,1,1;1,2,-1;1,-1,3;R=chol(A)R*R利用第2种格式对矩阵A进行Cholesky分解:R,p=chol(A),2.矩阵分解,A=2,1,1;1,2,-1;1,-1,3;R=chol(A)R=1.41420.70710.707101.2247-1.2247001.0000R*Rans=2.00001.00001.00001.00002.0000-1.00001.0000-1.00003.0000R,p=chol(A)R=1.41420.70710.707101.2247-1.2247001.0000p=0,2.4矩阵的分解,【例2.15】b=3-2-0.92*eps;-24-1-eps;-eps/4eps/2-10;-0.5-.5.11;b,p=chol(b)b=1.7321-1.154701.6330p=3,2.4矩阵的分解,b=3-2-0.92*eps;-24-1-eps;-eps/4eps/2-10;-0.5-.5.11;x=chol(b)?Errorusing=cholMatrixmustbepositivedefinite.,2.矩阵分解,2.4.4矩阵的QZ分解在MATLAB中,QZ分解可由函数qz来实现。qz函数常用的调用格式:AA,BB,Q,Z,V=qz(A,B):要求矩阵A,B是方阵。产生的矩阵AA,BB是上三角矩阵,Q,Z是正交矩阵,矩阵V是特征矢量矩阵。其中,满足Q*A*Z=与Q*B*ZBBAA,BB,Q,Z,V=qz(A,B,flag):对于方阵A,B的QZ分解取决于参数flag。参数flag可以取complex与real其中,complex表示复分解产生三角矩阵AA,real表示实分解产生三角矩阵AA。,2.4矩阵分解,【例2.15】a=120;25-1;410-1;x=134;265;324;b,c,e,z,v=qz(a,x)b=-0.1783-0.0000i-1.4551+0.4813i-3.0105+0.2715i05.6957-1.6531i10.1589-1.1010i000.9081+0.2636ic=2.7199-7.4009+0.2393i-2.2295+1.2686i06.95870.4560-1.1530i001.1095e=-0.5730-0.0018i-0.7935-0.0026i0.2051+0.0007i0.0758-0.0217i0.1978+0.0143i0.9769-0.0053i-0.8158+0.0013i0.5753+0.0057i-0.0531+0.0255iz=0.8670-0.0028i0.4652-0.0196i0.1583-0.0804i-0.3824+0.0012i0.4177-0.1304i0.8099-0.0801i-0.3196+0.0010i0.7624+0.1027i-0.5396-0.1223iv=0.9968-0.0032i0.9510-0.0490i0.0519-0.9481i-0.4397+0.0014i-0.1409-0.0406i0.0400+0.1407i-0.3674+0.0012i0.0671+0.0607i-0.0603-0.0671i,2.4矩阵分解,2.4.5矩阵的奇异值分解在matlab中矩阵的奇异值分解由函数svd来实现,其调用格式为:b,c,d=svd(A)。例如:a=120;25-1;410-1;bcd=svd(a)b=-0.17990.5217-0.8340-0.4434-0.7998-0.4047-0.87810.29700.3752c=12.31710000.51490000.1577d=-0.37180.2136-0.9034-0.92210.02750.38600.10730.97650.1868,2.4矩阵分解,2.4.6矩阵的Schur分解在matlab中,矩阵的Schur分解由函数schur函数来实现,其调用格式:b,c=schur(A),其中c为Schur矩阵。例如:a=120;25-1;410-

温馨提示

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

评论

0/150

提交评论