《数值代数方向相关函数幻灯片.ppt》由会员分享,可在线阅读,更多相关《数值代数方向相关函数幻灯片.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数数值代数方向相关函代数方向相关函数数第1页,共35页,编辑于2022年,星期六一、创建稀疏矩阵一、创建稀疏矩阵 在在MATLAB中,通过函数中,通过函数sparse()把普通矩阵转换为稀疏把普通矩阵转换为稀疏矩阵,该函数的调用格式如下。矩阵,该函数的调用格式如下。1.S=sparse(A):该函数将矩阵该函数将矩阵A转换为稀疏矩阵转换为稀疏矩阵S。当矩阵。当矩阵A是系数存储时,则函数调用相当于是系数存储时,则函数调用相当于S=A。2.S=sparse(m,n):该函数产生一个该函数产生一个mxn的所有元素都是的所有元素都是0的稀的稀疏矩阵。疏矩阵。第2页,共35页,编辑于2022年,星期六3
2、.S=sparse(u,v,S):该函数的输入参数该函数的输入参数u,v和和S是是3个等长的个等长的向量。向量。S是要建立的稀疏矩阵的非是要建立的稀疏矩阵的非0元素,元素,u(i),v(i)分别是分别是s(i)的行和列下标,该函数建立一个的行和列下标,该函数建立一个max(u)行、行、max(v)列,列,并以并以s为非零元素的稀疏矩阵。为非零元素的稀疏矩阵。4.S=sparse(i,j,s,m,n):该函数中该函数中i和和j分别是稀疏矩阵中非零元素分别是稀疏矩阵中非零元素的行和列,的行和列,s为相应的元素值,为相应的元素值,m和和n分别是矩阵的行和列。分别是矩阵的行和列。第3页,共35页,编辑
3、于2022年,星期六例:将普通矩阵转换为稀疏矩阵,代码如下:例:将普通矩阵转换为稀疏矩阵,代码如下:clear all;A=rand(15,10)0.98S=sparse(A)%产生稀疏矩阵产生稀疏矩阵whos例:将稀疏矩阵转换为普通矩阵,代码如下:例:将稀疏矩阵转换为普通矩阵,代码如下:clear all;A=0 0 0 2;0 0 3 0;0 0 0 0;4 0 0 0S1=sparse(A)%产生稀疏矩阵产生稀疏矩阵S2=sparse(4,2,1,1,3,4,4 3 2,4,4)%产生稀疏矩阵产生稀疏矩阵B=full(S1)%转换为普通矩阵转换为普通矩阵第4页,共35页,编辑于2022年
4、,星期六计算数学专业数值代数方向的计算数学专业数值代数方向的Matlab相关函数相关函数一、创建稀疏矩阵一、创建稀疏矩阵二、矩阵特征、范数以及条件数二、矩阵特征、范数以及条件数三、矩阵的分解三、矩阵的分解四、特殊矩阵的生成四、特殊矩阵的生成五、最小二乘拟合直线五、最小二乘拟合直线第5页,共35页,编辑于2022年,星期六二、矩阵特征、范数以及条件数二、矩阵特征、范数以及条件数(一)矩阵特征(一)矩阵特征y1=det(A)求矩阵求矩阵A的行列式的行列式V,D=eig(A)求矩阵求矩阵A的特征向量、特征值构成的对角阵的特征向量、特征值构成的对角阵b1=diag(A)获取获取A的主对角元素的主对角元
5、素B2=diag(A,i)获取第获取第i条对角元素(对角线以上)条对角元素(对角线以上)triu(A)返回矩阵返回矩阵A的上三角矩阵的上三角矩阵Tril(A)返回矩阵返回矩阵A的下三角矩阵的下三角矩阵triu(A,k)返回矩阵返回矩阵A的第的第k条对角线以上的元素条对角线以上的元素C=inv(A)求逆(求逆(A为可逆方阵)为可逆方阵)D=pinv(A)求求A的广义逆的广义逆d=rank(A)求矩阵求矩阵A的秩的秩第6页,共35页,编辑于2022年,星期六(二)(二)矩阵范数矩阵范数n1=norm(A,1)计算矩阵的计算矩阵的1-范数范数n2=norm(A)计算矩阵的计算矩阵的2-范数范数n3=
6、norm(A,inf)计算矩阵的无穷范数计算矩阵的无穷范数n3=norm(A,fro)计算矩阵的计算矩阵的Frobenius范数范数n5=normest(A)计算矩阵计算矩阵2-范数的估计值范数的估计值第7页,共35页,编辑于2022年,星期六(三)条件数及其他(三)条件数及其他c1=cond(A,1)矩阵的矩阵的1-范数下的条件数范数下的条件数c2=cond(A,2)矩阵的矩阵的2-范数下的条件数范数下的条件数c3=cond(A,inf)矩阵无穷范数下的条件数矩阵无穷范数下的条件数x1=expm(A)计算矩阵的指数计算矩阵的指数X2=logm(A)计算矩阵计算矩阵A的对数的对数X1=funm
7、(A,sin)计算矩阵的正弦计算矩阵的正弦第8页,共35页,编辑于2022年,星期六计算数学专业数值代数方向的计算数学专业数值代数方向的Matlab相关函数相关函数一、创建稀疏矩阵一、创建稀疏矩阵二、矩阵特征、范数以及条件数二、矩阵特征、范数以及条件数三、矩阵的分解三、矩阵的分解四、特殊矩阵的生成四、特殊矩阵的生成五、最小二乘拟合直线五、最小二乘拟合直线第9页,共35页,编辑于2022年,星期六三、矩阵的分解三、矩阵的分解(一)(一)Cholesky分解分解1.R=chol(A):该函数对正定矩阵该函数对正定矩阵A进行进行Cholesky分解,返分解,返回值回值R为上三角矩阵,满足为上三角矩阵
8、,满足A=R*R。如果矩阵。如果矩阵A不是正不是正定矩阵,则返回出错信息。定矩阵,则返回出错信息。2.R,p=chol(A):当矩阵当矩阵A是正定矩阵时,进行是正定矩阵时,进行Cholesky分解,返回值分解,返回值R为上三角矩阵,满足为上三角矩阵,满足A=R*R,p=0。如。如果矩阵果矩阵A不是正定矩阵,则返回值不是正定矩阵,则返回值p是一个正整数,是一个正整数,R为为上三角矩阵,其阶数为上三角矩阵,其阶数为p-1,且满足,且满足A(1:p-1,1:p-1)=R*R第10页,共35页,编辑于2022年,星期六例:利用函数进行矩阵的例:利用函数进行矩阵的Cholesky分解分解clear al
9、l;A=pascal(4)%产生产生4阶的帕斯卡矩阵阶的帕斯卡矩阵eig(A)R=chol(A)%矩阵的矩阵的Cholesky分解分解R*R第11页,共35页,编辑于2022年,星期六(二)(二)LU分解分解 高斯消去法又称为高斯消去法又称为LU分解,将方阵分解,将方阵A分解为下三角分解为下三角矩阵的置换矩阵矩阵的置换矩阵L和上三角矩阵和上三角矩阵U的乘积。即满足的乘积。即满足A=L*UL1,U1=lu(A):该函数将矩阵该函数将矩阵A分解为下三角矩阵的置换分解为下三角矩阵的置换矩阵矩阵L1和上三角矩阵和上三角矩阵U1,它们满足,它们满足A=L1*U1。L2,U2,P=lu(A):该函数将矩阵
10、该函数将矩阵A分解为下三角矩阵分解为下三角矩阵L2和和上三角矩阵上三角矩阵U2,以及置换矩阵,以及置换矩阵P,它们满足,它们满足L2*U2=P*AY=lu(A):该函数将下三角矩阵和上三角矩阵合并在矩阵该函数将下三角矩阵和上三角矩阵合并在矩阵Y中,矩阵中,矩阵Y的对角元素为上三角矩阵的对角元素,并且满的对角元素为上三角矩阵的对角元素,并且满足足Y=L2+U2-eye(size(A)第12页,共35页,编辑于2022年,星期六例:利用函数例:利用函数lu()进行矩阵的进行矩阵的LU分解,代码如下分解,代码如下clear all;A=2 3 4;8 4 9;5 3 1L1,U1=lu(A)%矩阵的
11、矩阵的LU分解分解L2,U2,P=lu(A)Y1=lu(A)%矩阵的矩阵的LU分解分解L1*U1%验证验证Y2=L2+U2-eye(size(A)%验证验证第13页,共35页,编辑于2022年,星期六(三)(三)QR分解分解 矩阵的正交分解,又称为矩阵的正交分解,又称为QR分解。分解。QR分解将一个分解将一个mxn的矩阵的矩阵A分解为一个正交矩阵分解为一个正交矩阵Q(大小为(大小为mxn)和一)和一个上三角矩阵个上三角矩阵R(大小为(大小为mxn)的乘积,即)的乘积,即A=Q*R。在。在MATLAB中通过函数中通过函数qr()进行矩阵的进行矩阵的QR分解。该函数的分解。该函数的调用格式为调用格
12、式为Q,R=qr(A),其中,其中Q味正交矩阵,味正交矩阵,R为上三角为上三角矩阵。矩阵。第14页,共35页,编辑于2022年,星期六(四)(四)SVD分解分解1.s=svd(A):该函数对矩阵该函数对矩阵A进行奇异值分解,返回由奇异进行奇异值分解,返回由奇异值组成的列向量,奇异值按照从大到小的顺序进行排列。值组成的列向量,奇异值按照从大到小的顺序进行排列。2.U,S,V=svd(A):该函数对矩阵该函数对矩阵A进行奇异值分解,其中进行奇异值分解,其中U和和V为酉矩阵,为酉矩阵,S为一个对角矩阵,对角线元素为矩阵奇为一个对角矩阵,对角线元素为矩阵奇异值的降序排列。异值的降序排列。第15页,共3
13、5页,编辑于2022年,星期六例:利用函数例:利用函数svd()进行矩阵的奇异值分解,代码如下:进行矩阵的奇异值分解,代码如下:clear all;A=2 3 4;8 4 9;5 3 1s=svd(A)%矩阵的矩阵的SVD分解分解U,S,V=svd(A)%矩阵的矩阵的SVD分解分解U*S*V%验证验证norm(A)第16页,共35页,编辑于2022年,星期六(五)(五)Schur分解分解 矩阵矩阵A的的Schur分解公式为分解公式为A=U*S*U,矩阵矩阵A必须是必须是方阵,方阵,U为酉矩阵,为酉矩阵,S为块对角矩阵,由对角线上的为块对角矩阵,由对角线上的1x1和和2x2等小块组成。等小块组成
14、。1.U,S=schur(A):该函数将矩阵该函数将矩阵A进行进行Schur 分解,返回分解,返回酉矩阵酉矩阵U和块对角矩阵和块对角矩阵S。2.S=schur(A):该函数仅返回块对角矩阵该函数仅返回块对角矩阵S。第17页,共35页,编辑于2022年,星期六例:利用函数例:利用函数schur()进行矩阵的进行矩阵的Schur分解,代码如下:分解,代码如下:clear all;A=pascal(4)%产生产生4阶帕斯卡矩阵阶帕斯卡矩阵U,S=schur(A)%矩阵的矩阵的Schur分解分解U*S*U%验证验证第18页,共35页,编辑于2022年,星期六(六)(六)Hessenberg分解分解1.
15、H=hess(A):该函数对方阵该函数对方阵A进行进行Hessenberg分解,返回分解,返回Hessenberg矩阵矩阵H。2.P,H=hess(A):该函数对方阵该函数对方阵A进行进行Hessenberg分解,分解,返回值为返回值为P和和H,满足,满足A=P*H*P,并且并且P*P=eye(size(P).第19页,共35页,编辑于2022年,星期六例:利用函数例:利用函数hess()进行矩阵的进行矩阵的Hessenberg分解,代码如下:分解,代码如下:clear all;A=1 3 5 3;2 6 9 1;7 4 1 10;2 5 9 3;H1=hess(A)%矩阵的矩阵的Hessen
16、berg分解分解P2,H2=hess(A)%矩阵的矩阵的Hessenberg分解分解B=P2*H2*P2%验证验证C=P2*P2第20页,共35页,编辑于2022年,星期六计算数学专业数值代数方向的计算数学专业数值代数方向的Matlab相关函数相关函数一、创建稀疏矩阵一、创建稀疏矩阵二、矩阵特征、范数以及条件数二、矩阵特征、范数以及条件数三、矩阵的分解三、矩阵的分解四、特殊矩阵的生成四、特殊矩阵的生成五、最小二乘拟合直线五、最小二乘拟合直线第21页,共35页,编辑于2022年,星期六四、特殊矩阵的生成四、特殊矩阵的生成(一)全零矩阵(一)全零矩阵1.A=zero(N):该函数产生该函数产生Nx
17、N的全零矩阵的全零矩阵2.A=zero(M,N):该函数产生该函数产生MxN的全零矩阵的全零矩阵3.A=zero(M,N,P):该函数产生该函数产生NxNxPx的全零矩阵的全零矩阵4.A=zero(size(B):该函数产生和矩阵该函数产生和矩阵B维数相同的全零矩维数相同的全零矩阵阵第22页,共35页,编辑于2022年,星期六(二)全(二)全1矩阵和单位矩阵矩阵和单位矩阵 在在Matlab中,采用函数中,采用函数one()产生产生1矩阵,该函数的矩阵,该函数的调用格式和函数调用格式和函数zeros()基本一致。基本一致。采用函数采用函数eye()产生单位矩阵,该函数的调用格式如产生单位矩阵,该
18、函数的调用格式如下。下。A=eye(N):该函数产生该函数产生NxN单位矩阵。单位矩阵。A=zeros(M,N):该函数产生该函数产生MxN的矩阵,对角线元素为的矩阵,对角线元素为1,其余元素均为其余元素均为0。A=zeros(size(B):该函数产生和矩阵该函数产生和矩阵B维数相同的单位矩阵维数相同的单位矩阵第23页,共35页,编辑于2022年,星期六(三)范得蒙矩阵(三)范得蒙矩阵 范得蒙(范得蒙(Vandermonde)矩阵最后一列全为)矩阵最后一列全为1,倒数,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一
19、个指定向量生成一个范得蒙矩阵。列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。在在Matlab中,通过函数中,通过函数vander(V)生成以向量生成以向量V为基为基础向量的范得蒙矩阵。础向量的范得蒙矩阵。第24页,共35页,编辑于2022年,星期六(四)希尔伯特矩阵(四)希尔伯特矩阵在在MATLAB中,通过函数中,通过函数hilb()生成希尔伯特生成希尔伯特(Hilbert)矩阵,该函数的调用格式为)矩阵,该函数的调用格式为hilb(n),产生,产生n阶阶的希尔伯特矩阵。希尔伯特矩阵是一种病态矩阵,矩阵中的希尔伯特矩阵。希尔伯特矩阵是一种病态矩阵,矩阵中任何一个元素发生微小得变化,整个矩阵
20、的值和逆矩阵都任何一个元素发生微小得变化,整个矩阵的值和逆矩阵都发生巨大的变化。发生巨大的变化。在在MATLAB中,通过函数中,通过函数invhilb()求希尔伯特矩阵求希尔伯特矩阵的逆矩阵,该函数的调用格式为的逆矩阵,该函数的调用格式为invhilb(n),该函数产生,该函数产生n阶的希尔伯特矩阵的逆矩阵。阶的希尔伯特矩阵的逆矩阵。第25页,共35页,编辑于2022年,星期六例:希尔伯特矩阵和其逆矩阵,代码如下例:希尔伯特矩阵和其逆矩阵,代码如下clear all;A=hilb(3)%产生希尔伯特矩阵产生希尔伯特矩阵B=hilb(4)%产生希尔伯特矩阵产生希尔伯特矩阵C=invhilb(3)
21、%产生希尔伯特逆矩阵产生希尔伯特逆矩阵D=invhilb(4)%产生希尔伯特矩阵产生希尔伯特矩阵A*C%验证验证第26页,共35页,编辑于2022年,星期六(五)托普利兹矩阵(五)托普利兹矩阵托普利兹(托普利兹(Toeplitz)矩阵除第一行和第一列外,其)矩阵除第一行和第一列外,其他每个元素都与左上角的元素相同,在他每个元素都与左上角的元素相同,在MATLAB中,通中,通过函数过函数toeplitz()生成托普利兹矩阵。该函数的调用格式生成托普利兹矩阵。该函数的调用格式如下。如下。1.toeplitz(x):该函数用向量该函数用向量x生成一个对称的托普利兹矩阵生成一个对称的托普利兹矩阵2.t
22、oeplitz(x,y):该函数产生一个以该函数产生一个以x为第一列,为第一列,y为第一行为第一行的托普利兹矩阵。的托普利兹矩阵。X和和y均为向量,两者不必等长。需要均为向量,两者不必等长。需要注意的是,向量注意的是,向量x和和y的第一个元素必须相等。的第一个元素必须相等。第27页,共35页,编辑于2022年,星期六例:利用函数例:利用函数toeplitz()生成托普利兹矩阵,代码如下生成托普利兹矩阵,代码如下clear all;A=toeplitz(3:6)%产生托普利兹矩阵产生托普利兹矩阵x=3:8y=3:7B=toeplitz(x,y)%产生托普利兹矩阵产生托普利兹矩阵第28页,共35页
23、,编辑于2022年,星期六在在MATLAB中,通过函数中,通过函数compan()产生伴随矩阵,产生伴随矩阵,该函数的调用格式为该函数的调用格式为compan(p),其中,其中p味多项式的系数味多项式的系数向量,高次幂系数排在前,低次幂排在后。向量,高次幂系数排在前,低次幂排在后。第29页,共35页,编辑于2022年,星期六(六)帕斯卡矩阵(六)帕斯卡矩阵二次项(二次项(x+y)n展开后的系数随展开后的系数随n的增大组成一个的增大组成一个三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵三角形表,称为杨辉三角形。由杨辉三角形表组成的矩阵称为帕斯卡(称为帕斯卡(Pascal)矩阵。该函数的调用格
24、式为)矩阵。该函数的调用格式为Pascal(n),产生一个,产生一个n阶的帕斯卡矩阵。阶的帕斯卡矩阵。第30页,共35页,编辑于2022年,星期六例:利用函数例:利用函数 pascal()生成帕斯卡矩阵,代码如下生成帕斯卡矩阵,代码如下clear all;A=pascal(4)%产生产生4阶帕斯卡矩阵阶帕斯卡矩阵B=pascal(5)%产生产生5阶帕斯卡矩阵阶帕斯卡矩阵第31页,共35页,编辑于2022年,星期六计算数学专业数值代数方向的计算数学专业数值代数方向的Matlab相关函数相关函数一、创建稀疏矩阵一、创建稀疏矩阵二、矩阵特征、范数以及条件数二、矩阵特征、范数以及条件数三、矩阵的分解三
25、、矩阵的分解四、特殊矩阵的生成四、特殊矩阵的生成五、最小二乘拟合直线五、最小二乘拟合直线第32页,共35页,编辑于2022年,星期六五、最小二乘拟合直线五、最小二乘拟合直线在在MATLAB中,使用函数中,使用函数Isline()绘制最小二乘拟合绘制最小二乘拟合直线,该函数的调用格式如下:直线,该函数的调用格式如下:1.Isline:返回已知样本数据的最小二乘拟合直线,可以使用返回已知样本数据的最小二乘拟合直线,可以使用除除“-”、“”和和“.-”之外的其他线条样式绘制图形。之外的其他线条样式绘制图形。2.h=Isline:该函数返回函数句柄。该函数返回函数句柄。第33页,共35页,编辑于2022年,星期六例:利用函数例:利用函数 Isline()绘制最小二乘拟合直线,其实现的绘制最小二乘拟合直线,其实现的MATLAB程序如下:程序如下:clear all;x=1.2 3.4 4.5 6.3 7.1 8.2 9.5 10.3 13.6;figure;plot(x,b*);%绘制样本点绘制样本点h=Isline%绘制最小二乘拟合直线绘制最小二乘拟合直线第34页,共35页,编辑于2022年,星期六The End计算数学计算数学 李苏丹李苏丹 2014310005第35页,共35页,编辑于2022年,星期六