MATLAB入门线性代数.ppt_第1页
MATLAB入门线性代数.ppt_第2页
MATLAB入门线性代数.ppt_第3页
MATLAB入门线性代数.ppt_第4页
MATLAB入门线性代数.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第三章第三章 线性代数线性代数 3.1 3.1 常用矩阵函数常用矩阵函数 norm : 矩阵或向量范数 For vectors. norm(V,P) = sum(abs(V).P)(1/P). norm(V) = norm(V,2). norm(V,inf) = max(abs(V). norm(V,-inf) = min(abs(V). 例 x=1 2 3 4 5; x=1 20 300 40 5; x=10000 2000 300 40 5; norm(x,1), norm(x,2), norm(x,3), norm(x,inf) For matrices. norm(X) is the largest singular value of X, max(svd(X). norm(X,2) is the same as norm(X). norm(X,1) is the 1-norm of X, the largest column sum, = max(sum(abs(X). norm(X,inf) is the infinity norm of X, the largest row sum, = max(sum(abs(X). norm(X,fro) is the Frobenius norm, sqrt(sum(diag(X*X). norm(X,P) is available for matrix X only if P is 1, 2, inf or fro. 例 x=1 20 300 ;400 50 6;70 800 9; norm(x,1), norm(x,2), norm(x,inf) , norm(x, fro) n dot(x,y) 向量的内积 n det(A) 方阵的行列式; nrank(A) 矩阵的秩; ntrace(A) 矩阵的迹; nrref(A) 初等变换化矩阵A为阶梯矩阵 ninv(A) 矩阵的逆;即 A-1 npinv(A) 矩阵的广义逆A+ n null(A) 零空间的基阵 n roth(A) 值空间的基阵 n orth(A) 将A标准正交化 n cond(A,flag) 矩阵的条件数, flag=2, 1, inf, fro; 例:分别求x=1 3 7 8 -2,y=3 9 3 -3 9的 长度与它们的夹角。 x=1 3 7 8 -2;y=3 9 3 -3 9; xx=norm(x,2); yy=norm(y,2); theta=acos(dot(x,y)/(xx*yy); s=xx,yy,theta 例:给定一组线性无关的向量,将其标准正交化 a=magic(5); b=orth(a) nd=eig(A) : 方阵的特征值; V,D=eig(A) : A*V=V*D n V,J=jordan(A) : A*V=V*J n c=condeig(A) : 向量c中包含矩阵A关于 各 特征值的条件数 n V,D,c=condeig(A): 例: nA=1 0 0;1 2 0;1 2 3, nd=eig(A), nV,D=eig(A), nC=condeig(A), V,D,C=condeig(A), 例:观察7阶随机矩阵特征值的分布 a=rands(7,7) %产生7阶随机矩阵 e=eig(a) title(特征值的分布); plot(real(e),imag(e),o) xlabel(实轴); ylabel(虚轴); 注:本例验证了如下定理:实方阵的特征值或为实 数或呈共轭对出现。 例:观察正交矩阵的特征值分布 a=rands(7,7); b=orth(a); %构造一个正交矩阵 theta=0:0.01:2*pi; e=eig(b); plot(real(e),imag(e),r*,cos(theta),sin(theta); axis equal title(正交矩阵特征值的分布); xlabel(实轴); ylabel(虚轴); 注:本例验证了正交矩阵的特征值分布在复平面的单 位圆上。 3.2 矩阵的运算 一、矩阵的转置、乘积,逆 nA=1 0 0;1 2 0;1 2 3, A_trans=A nH=1 2 3 ; 2 1 0 ; 1 2 3 , nK=1 2 3 ; 2 1 0 ; 2 3 1 nHK=H*K nH_inv=inv(H),K_inv=K-1 二、矩阵的左除和右除 n左除“ ”: 求矩阵方程AX=B的解;( A 、B的行要保持一致) 解为 X=AB; 当A为方阵且可逆时有X=AB=inv(A)*B; n右除“ / ”: 求矩阵方程XA=B的解 (A 、B的列要保持一致) 解为 X=B/A , 当A为方阵且可逆时有X=B/A=B*inv(A) 【例】“求逆”法和“左除”法解恰定方程的性能对比 (1)构造一个条件数很大的高阶恰定方程 randn(state,0); A=gallery(randsvd,100,2e13,2); x=ones(100,1); b=A*x; cond(A) ans = 1.9990e+013 (2)用“求逆”法求解 tic xi=inv(A)*b; ti=toc eri=norm(x-xi) rei=norm(A*xi-b)/norm(b) ti = 0.4400 eri = 0.0469 rei = 0.0047 (3)用“左除”法求解 tic;xd=Ab; td=toc, erd=norm(x-xd), red=norm(A*xd-b)/norm(b) td = 0.0600 erd = 0.0078 red = 2.6829e-015 ti = 0.4400 eri = 0.0469 rei = 0.0047 n求矩阵方程: 设A、B满足关系式:AB2B+A,求B。 其中A=3 0 1; 1 1 0; 0 1 4。 n解:有(A-2I)BA n程序 : A=3 0 1; 1 1 0;0 1 4; B=inv(A-2*eye(3)*A, BB=(A-2*eye(3)A n观察结果: 三.矩阵函数的计算 给定n阶方阵A,求exp(A),sqrt(A),log(A)矩 阵函数的Matlab函数分别为 expm(A),sqrtm(A),logm(A) 例:求三个特殊矩阵函数 a=magic(3); e=expm(a) %求矩阵函数 ee=exp(a) % 求矩阵中每个元素的函数值 s=sqrtm(a) ss=sqrt(a) l=logm(a) ll=log(a) L,U,P=lu(A) : PA=LU r=chol(A) : A=LLT , r=LT Q,R=qr(A), Q,R=qr(A,0) : A=QR U,S,V=svd(A) : A=USVT Q,R=schur(A) : QTAQ=R P,H=hess(A) : PAP-1=H 3.3 3.3 常用矩阵分解函数常用矩阵分解函数 n实方阵的初等化简分解: nA1=3 1 3;2 5 2;1 2 3, n L,U=lu(A1) nA2=1 1 2;1 2 3;1 2 1;1 1 6, n Q,R=qr(A2), Q1,R1=qr(A2,0) nA3=2 1 1;1 4 -1;1 -1 3, n r=chol(A3) n奇异值分解: nA=1 1;1 1;0 0, n U,D,V=svd(A), U1,D1,V1=svd(A,0) n实方阵的正交相似化简: Q,R=schur(A) nA1=3 1 0;-4 -1 0;4 8 -2, n Q1,R1=schur(A1) nA2=9 -31 49 30;1 0 0 0;1 1 0 0;0 0 1 0, n Q2,R2=schur(A2) nA3=2 1 1;1 4 -1;1 -1 3, n Q3,R3=schur(A3) n实方阵的上Hessenberg分解:P,H=hess(A) nA1=3 1 0;-4 -1 0;4 8 -2, n P,H=hess(A1) nP*H*inv(P) 3.4 3.4 稀疏矩阵稀疏矩阵 一一. .稀疏矩阵的特点和存储稀疏矩阵的特点和存储 在编辑器内建立一个 数据文本文件:st.m 行 列 aij 1 1 3 2 1 2 1 2 1 2 2 1 3 2 5 4 2 1 2 3 4 3 3 2 load st.m sa=spconvert(st) sa = (1,1) 3 (2,1) 2 (1,2) 1 (2,2) 1 (3,2) 5 (4,2) 1 (2,3) 4 (3,3) 2 二二. .稀疏矩阵的运算稀疏矩阵的运算 例: a=full(sa) a = 3 1 0 2 1 4 0 5 2 0 1 0 pa=0 1 0 0;1 0 0 0 0 0 0 1;0 0 1 0 pa = 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 pa*sa ans = 2 1 4 3 1 0 0 1 0 0 5 2 1.稀疏矩阵的初等变换 行初等变换 pv=2 1 4 3; s1=sa(pv,:) 列初等变换 pv=2 1 3; s2=sa(:,pv) s1=spa*sa s1 = (1,1) 2 (2,1) 3 (1,2) 1 (2,2) 1 (3,2) 1 (4,2) 5 (1,3) 4 (4,3) 2 spa=sparse(pa) spa = (2,1) 1 (1,2) 1 (4,3) 1 (3,4) 1 2.稀疏矩阵的分解函数 L,U,P=lu(sa) L,U=luinc(sa,0) r=chol(sa) r=cholinc(sa, 0) Q,R=qr(sa) eigs(sa) svds(sa) 例 A=4 1 0 0 0;1 4 1 0 0;0 1 4 1 0; 0 0 1 4 1;0 0 0 1 4; sa=sparse(A); L,U,P=lu(sa) 用下面例子说明稀疏矩阵的处理优点 xs.m %设n=3000,输入 n=3000;b=1:n; a1=sparse(1:n,1:n,1,n,n); a2=sparse(2:n,1:n-1,1,n,n); a=4*a1+a2+a2; %输出用稀疏矩阵求解的时间t1 tic;x=ab;t1=toc aa=full(a); %输出用满矩阵求解的时间t2 tic;xx=aab;t2=toc %为检验x与xx是否相同分别输出其分量之和 y=sum(x) yy=sum(xx) %结果y与yy相同,而t1与t2相差巨大 1.不用预优矩阵的共轭斜量法 x=pcg(a,b,tol,kmax) 2.用预优矩阵的共轭斜量法 (1)x=pcg(a,b,tol,kmax,m) (2) r=chol(m) x=pcg(a,b,tol,kmax,r,r,x0) 3.未给定预优矩阵的共轭斜量法 r=cholinc(sa,0) x=pcg(a,b,tol,kmax,r,r,x0) 3.5 用预条件共轭斜量法求解线性方程组 其中a,m为 对称正定矩阵 1.不用预优矩阵的双共轭梯度法 x=bicg(a,b,tol,kmax) 2.用预优矩阵的双共轭梯度法 l,u=lu(m) x= bicg(a,b,tol,kmax,l,u,x0) 3.未给定预优矩阵的双共轭梯度法 l,u=luinc(sa,0) x= bicg(a,b,tol,kmax,l,u,x0) 3.6 求解大型稀疏非对称正定的线性方程组 一.双共轭梯度法 二.广义极小残差法 gmres 3.7 不可解问题 例:考察下面三个线性方程组的解 (A1) -x+y=1 (A2) -x+y=1 (A3) x+2y=-2 -2x+2y=2 -x+y=0 -x+y=1 2x-y=0 nA1=-1 1;-2 2, b1=1;2,x1=A1b1 nA10=-1 1, b10=1,x10=A10b10 nA2=-1 1;-1 1, b2=1;0,x2=A2b2 nA3=1 2;-1 1;2 -1, b3=-2;1;0,x3=A3b3 注:系数矩阵A必须是行满秩或列满秩 3.8 病态问题 例:考察舍入误差对线性方程组解的影响 0.12065x+0.98775y=2.01045 0.12032x+0.98755y=2.00555 nA=0.12065 0.98775;0.12032 0.98755, n b=2.01045;2.00555,x=Ab nA=0.12065 0.98775;0.12032 0.98755, n b1=2.01145;2.00555,x1=Ab1 nA1=0.12165 0.98775;0.12032 0.98755, n b=2.01144;2.00555,x2=A1b 3.9 关于多项式的MATLAB命令 一、 多项式表达方式的约定 多项式 用行向量表示 用比较习惯的方式显示多项式:pp=poly2str(p,x) 【例】多项式 可表示为 p=2 1 4 5 pp=poly2str(p,x) 二、多项式运算函数 r=roots(p):求多项式的零点 p=poly(r) : 以r为零点的多项式 p=poly(A): A的特征多项式 PA=polyval(p,S):按数组运算规则,计算多项式的值 其中S,PA为矩阵 PM=polyvalm(p,S):按矩阵运算规则,计算多项式的值, 其中S,PM为矩阵 p=conv(p1,p2):多项式的乘积 q,r=deconv(p1,p2):多项式的除法,p1/p2 p1(x)=p2(x)q(x)+r(x) 【例】由给定根向量求多项式系数向量。 R=-0.5,-0.3+0.4*i,-0.3-0.4*i; P=poly(R) PPR=poly2str(P,x) P = 1.0000 1.1000 0.5500 0.1250 PPR = x3 + 1.1 x2 + 0.55 x + 0.125 【例】求多项式 的零点。 r=roots(1 -6 15 -20 15 -6 1) r = 1.0042 + 0.0025i 1.0042 - 0.0025i 1.0000 + 0.0049i 1.0000 - 0.0049i 0.9958 + 0.0024i 0.9958 - 0.0024i 注:尽管利用MATLAB使得从系数转换到零点或从零点转换到 系数都非常容易,但是使用时一定要注意计算的精度。如果存 在重根,这种转换可能会降低精度。对于数值计算,计算重根 是最困难的问题之一。 【例】求3阶方阵A的特征多项式。 A=11 12 13;14 15 16;17 18 19; PA=poly(A) PPA=poly2str(PA,x) PA = 1.0000 -45.0000 -18.0000 -0.0000 PPA = x3 - 45 x2 - 18 x - 2.8387e-015 【例】求 的“商”及“余”多项式。 p1=conv(1,0,2,conv(1,4,1,1); p2=1 0 1 1; q,r=deconv(p1,p2); cq=商多项式为 ; cr=余多项式为 ; disp(cq,poly2str(q,x) disp(cr,poly2str(r,x) 商多项式为 x + 5 余多项式为 5 x2 + 4 x + 3 【例】两种多项式求值指令的差别。 S=pascal(4) P=poly(S);PP=poly2str(P,s) PA=polyval(P,S

温馨提示

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

评论

0/150

提交评论