#MATLAB数值计算功能_第1页
#MATLAB数值计算功能_第2页
#MATLAB数值计算功能_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、数值计算功能向量及其运算1、向量生成(1) 、直接输入向量元素用“”括起来,用空格或逗号生成行向量,用分号生成列向量a1=11 14 17 18a2=11,14,17,18 a2=11;14;17;18% 列向量用“'可以进行向量转置a1=11 14 17 18a4=a1'%a1行向量,a4列向量也可以用组合方法:A=1 2 3;B=7 8 9;C=A 4 ones(1,2) B(2) 、等差元素向量生成冒号生成法:Vec=VecO:n:Vecn,其中 Vec表示生成的向量,VecO表示第一个元素,n表示步长,Vecn表示最后一个元素使用linespace函数:Vec=line

2、space(VecO,n,Vecn),其中Vec表示生成的向量,VecO表示第一个元素,n表示生成向量元素个数(默认n=100),Vecn表示最后一个元素vec1=10:5:50vec2=50:-5:10vec3=li nspace(10,50,6)2、向量的基本运算(1) 、向量和数的四则运算向量中每个元素和数的加减乘除运算(除法运算时,向量只能作为被除数,数只能作为除数)vec1=li nspace(10,50,6)vec1+100vec2=logspace(0,10,6)%对数等分向量vec2/100(2) 、向量和向量之间的加减运算向量中的每个元素和另一个向量中相对应的元素的加减运算v

3、ec1=li nspace(10,50,6)vec2=logspace(0,2,6)vec3=vec1+vec2(3) 、点积、叉积和混合机点积:dot函数,注意向量维数的一致性x仁11 22 33 44x2=1 2 3 4a=dot(x1,x2)sum(x1.*x2)%还可以采用 sum 函数计算向量的点积叉积: cross 函数,注意向量维数的一致性(由几何意义可知,向量维数只能为3)x1=11 22 33 44x2=1 2 3 4x3=cross(x1,x2)%报错,维数只能为 3x1=11 22 33x2=1 2 3x3=cross(x1,x2)混合积:结果为一个数,先求cross,再

4、求dota=1 2 3b=2 4 3c=5 2 1v=dot(a,cross(b,c)v=cross(a,dot(b,c)%报错矩阵及其运算MATLAB 的基本单位是矩阵,逗号或空格区分同一行不同元素,分号区分不同行 1、矩阵的生成4 种方法:在 command window 直接输入;通过语句和函数产生; M 文件中建立;外部数据 文件中导入(1) 、直接输入:把矩阵元素直接排列到方括号中,每行元素用逗号或空格相隔,行和行 之间用分号相隔martix=1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4冒号用法:A=1 1 1;1 2 3;1 3 6B=A(1:2,:)(2) 文件

5、导入:*.mat*.txt*.datload 文件名 参数直接导入:FileImport Data2、矩阵的基本数值运算(1) 、矩阵和是常数的四则运算(除法时,常数只能作为除数) matrix=1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4m1=100+matrixm2=100-matrixm3=100*matrixm4=matrix/2(2) 、矩阵之间的四则运算 加减法:矩阵各个元素之间的加减法,必须是同型矩阵 matrix=1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4m1=20*matrixm2=m1+matrixm3=11 22 33;1 2 3;4

6、 5 6 m4=matrix-m1 m5=m3+m1%报错,非同型矩阵乘法:用 *,左矩阵的列数需等于右矩阵的行数A=1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4B=1 5 9 2;6 3 5 7;2 5 8 9;4 5 6 3C=A*BD=1 5 9;6 3 5;2 5 8E=A*D % 报错, 4*4 矩阵不能和 3*3 矩阵相乘 除法:左除(AX=B则X=AB,相当于X=inv(A)*B,但是左除稳定性好)右除 / (XA=B 则 X=B/A,相当于 X=B*inv(A) 个人认为:左除相当于逆矩阵左乘,右除相当于逆矩阵右乘%解方程组 XA=B的解,本列中 A=2 1-

7、1; 2 1 0;1 -1 1 ;B=1 -1 3;4 3 2 A=2 1 -1; 2 1 0;1 -1 1B=1 -1 3;4 3 2X=B/A矩阵可以使用比较运算符:结果矩阵的对应位置为 0或 1 数据变换: floor ceil round fix remn,d=rat(A): A表示为两个整数阵对应元素相除的形式A=n./d3、矩阵的特征参数运算( 1 )、乘方和开方乘方:AAp计算A的p次方p>0: A 的 p 次方p<0: A逆矩阵的abs(p)次方A=1 2 3 4;4 5 6 7;4 5 6 7;8 9 10 11B=AA10开方:若有 X*X=A,则有sqrtm(

8、A)=XA=magic(5)B=sqrtm(A)BA2%验证正确性( 2)、指数和对数指数: expm(X)=V*diag(exp(diag(D)/V ( V,D=eig(X) )对数:L=logm(A),和指数运算互逆X=rand(4)Y=expm(X)A=randn(4)B=logm(A)(3) 、逆运算inv 函数,充要条件:矩阵的行列式不为 0A=1 0 0 0;1 2 0 0;2 1 3 0;1 2 1 4B=inv(A)广义逆矩阵(伪逆):pinv(A)非奇异矩阵的 pinv 和 inv 相同(4) 、行列式det 函数A=1 0 0 0;1 2 0 0;2 1 3 0;1 2 1

9、 4B=inv(A)x=det(A)y=det(B)i=x*y(5) 、特征值E=eig(X):生成由X的特征值组成的列向量V,D=eig(X): V是以X的特征向量为列向量的矩阵,D是由矩阵X的特征值构成的对角阵D=eigs(X):生成由X的特征值组成的列向量(eigs函数使用迭代法求解矩阵的特征值和特征 向量, X 必须是方阵,最好是大型稀疏矩阵)V,D=eig(X): V是以X的特征向量为列向量的矩阵,D是由矩阵X的特征值构成的对角阵X=magic(3)A=1 0 0;0 0 3;0 9 0E=eig(X)V D=eig(X)D=eigs(A)V D=eigs(A)(6) 、矩阵(向量)

10、的范数norm(X) : 2-范数norm(X,2): 2-范数norm(X,1): 1-范数norm(X,inf) :无穷范数norm(X, 'fro '): Frobenius 范数normest(X):只能计算2-范数,并且是2-范数的估计值,用于计算norm(X)比较费时的情况X=hilb(4)norm(4)norm(X)norm(X,2)norm(X,1)norm(X,inf)norm(X,'fro')normest(X)(7) 、矩阵的条件数运算矩阵的条件数是判断矩阵 “病态” 成都的一个度量, 矩阵 A 的条件数越大, 表明 A 越病态, 反之,表

11、明 A 越良态, Hilbert 矩阵就是有名的病态矩阵cond(X):返回关于矩阵 X的2-范数的条件数cond(X,P):关于矩阵X的P-范数的条件数(P为1、2、inf或'ro ')rcond(X):计算矩阵条件数的倒数值,该值越接近0就越病态,越接近1就越良态condest(X):计算关于矩阵 X的1-范数的条件数的估计值M=magic(3);H=hilb(4);c1=cond(M)c2=cond(M,1) c3=rcond(M) c4=condest(M) h1=cond(H) h2=cond(H,inf) h3=rcond(H)h4=condest(H)由以上结果可

12、以看出,魔术矩阵比较良态, Hilbert 矩阵是病态的(8) 、秩rank 函数T=rand(6)rank(T)%6,满秩矩阵T1=1 1 1;2 2 3r=rank(T1)%r=2,行满秩矩阵(9) 、迹trace 函数,主对角线上所有元素的和,也是特征值之和M=magic(5)T=trace(M)T1=eig(M)T2=sum(T1)4、矩阵的分解运算( 1 )、三角分解( lu )非奇异矩阵 A( n*n ),如果其顺序主子式均不为 0,则存在唯一的单位下三角 L 和上三角 阵U,从而使得A=LUL,U=lu(X):产生一个上三角矩阵 U和一个下三角矩阵 L,使得X=LU, X可以不为

13、方阵 L,U,P=lu(X):产生一个单位下三角矩阵 L、一个上三角矩阵 U和交换矩阵P,PX=LUY=lu(X):如果X是满矩阵,将产生一个lapack'的dgetrf和zgetrf的输出常式矩阵 Y;如果X 是稀疏矩阵,产生的矩阵Y将包含严格的下三角矩阵L和上三角矩阵U,这两种情况下,都不会有交换矩阵 PX=6 2 1 -1;2 4 1 0;1 1 4 -1;-1 0 -1 3L U=lu(X)L U P=lu(X)Y=lu(X)( 2)、正交分解( qr)对于矩阵A (n*n),如果A非奇异,则存在正交矩阵Q和上三角矩阵R,使得A满足关系式A=QR并且当R的对角元都为正时, QR

14、分解是唯一的Q,R=qr(A):产生一个和 A维数相同的上三角矩阵 R和一个正交矩阵 Q,使得满足 A=QR Q,R,E=qr(A):产生一个交换矩阵 E、一个上三角矩阵 R和正交阵Q,这三者满足 AE=QR Q,R=qr(A,0):对矩阵A进行有选择的 QR分解,当矩阵 A为m*n且m>n,那么只会产生具 有前 n 列的正交矩阵 QR=qr(A):只产生矩阵 R,并且满足 R=chol(A'*A)A=17 3 4;3 1 12;4 12 8Q R=qr(A)Q R E=qr(A)Q R=qr(A,0)R=qr(A)Q,R=qrdelete(A,j):去除第 j 列求 QR 分解

15、Q,R=qrdelete(A,j,x):在第j列插入x后求QR分解(3) 、特征值分解( eig)V,D=eig(X): V是以矩阵X的特征向量作为列向量构成的矩阵,D是矩阵X的特征值构成的对角阵,满足 XV=VDV,D=eig(A,B):对矩阵A、B做广义特征值分解,使得AV=BVDA=magic(4)V D=eig(A)Z=A*V-V*DB=17 3 4 2;3 1 12 6;4 12 8 7;1 2 3 4V D=eig(A,B)Z=A*V-B*V*D(4) 、 Chollesky 分解( chol)当矩阵A (n*n)对称正定时,则存在唯一的对角元素为正的上三角矩阵R,使得A=R

16、9;*R,当限定R的对角元素为正的时候,该分解是唯一的当矩阵A为非正定阵时,会提示出错A=4 -1 1;-1 4.25 2.75;1 2.75 3.5R=chol(A)R'*R %=AA=0 4 0;3 0 1;0 1 3R=chol(A)%报错,A为非正定阵( 5)奇异值分解( svd)U,S,V=svd(X):和矩阵X维数相同的对角阵 S、正交矩阵U和正交矩阵V,使得满足X=USV U,S,V=svd(X, 0): X为M*N矩阵,当M>N时,生成的矩阵U只有前N列元素被计算出来, 并且S为N*N矩阵X=1 2 3;4 5 6;7 8 9U S V=svd(X)X=1 2 3

17、;4 5 6;7 8 9;10 11 12U S V=svd(X)X=1 2 3;4 5 6;7 8 9;10 11 12cklU S V=svd(X,0)Schur分解(正交阵和 schur阵)U,T=schur(A): A=UTU'schur阵是主对角线元素为特征值的三角阵5、矩阵的一些特殊处理size(A):求矩阵A的行数、列数diag(A):求出矩阵A的对角元素repmat(A):将矩阵A作为单位,赋值成 m*n矩阵,其中每个元素都是A矩阵cat(k,A,B): k=1合并后形如A;B (A,B列数相等);k=1合并后形如A,B (A,B行数相等)(1) 、矩阵的变维resha

18、pe(X,M,N):将矩阵X的所有元素分配到一个M*N的新矩阵,当矩阵X的元素不是 M*N时,返回错误reshape(X,M,N,P,):返回由矩阵 X的元素组成的M*N*P* 多维矩阵,若果 M*N*P* 和X的元素数不同时,将返回错误resh ape(X,M,N,P,):和上一条相同A=rand(4,2)reshape(A,2,4)reshape(A,2,2,2)用冒号变维:A=1 2 3 4;5 6 7 8;9 10 11 12;B=ones(2,6);B(:)=A(:)(2) 、矩阵的变向rot90(A) : A 按逆时针旋转 90 度rot90(A,K): A按逆时针旋转 90*K度

19、filpud(X):将X上下翻转fliplr(X):将X左右翻转flipdim(X,DIM) :将 X 的第 DIM 维翻转X=1 4;2 5;3 6rot90(X)rot90(X,-1)flipud(X)fliplr(X)flipdim(X,2)%左右翻转6、特殊矩阵的生成(1) 、零矩阵和全 1 矩阵的生成A=zeros(M,N):生成 M*N的零矩阵A=zeros(size(B):生成和B同型的零矩阵A=zeros(N):生成N阶零矩阵仿真全1矩阵的生成和零矩阵的生成类似,使用ones函数A=zeros(4,5)B=1 2 3 4 5;2 3 4 5 6;9 8 7 6 5;8 7 6

20、5 4A=zeros(size(B)A=zeros(5)C=ones(5,6)C=ones(3)(2) 、对角矩阵的生成A=diag(V,K): V为某个向量,K为向量V偏离主对角线的列数,K=0表示V为主对角线,K>00 表示 V 在主对角线以上, K<0 表示 V 在主对角线以下A=diag(V):相当于 K=0v=1 9 8 1 6diag(v,1)diag(v)(3) 、随机矩阵的生成rand(N) :生成 N*N 的随机矩阵,元素值在 (0.0,1.0)之间 rand(M,N)randn(N):生成N*N的随机矩阵,元素之服从正态分布N(0,1)randn(M,N)ran

21、d(5)randn(5)(4) 、范德蒙德矩阵的生成A=vander(V):有 A(I,j)= v(i)n-jv=1 3 5 7 9A=vander(v)(5) 、魔术矩阵的生成它是一个方阵, 方阵的每一行, 每一列以及每条主对角线的元素之和都相同(2 阶方阵除外)magic(N):生成N阶魔术矩阵,使得矩阵的每一行,每一列以及每条主对角线元素和相等, N>0(N=2 除外)magic(2)magic(3)magic(4)(6) 、 Hilbert 矩阵和反 Hilbert 矩阵的生成Hilbert矩阵的第i行、第j列的元素值为1/(i+j-1),反Hilbert矩阵是Hilbert矩阵

22、的逆矩阵 hilb(N):生成N阶的Hilbert矩阵invhilb(N) :生成 N 阶的反 Hilbert 矩阵A=hilb(5)B=invhilb(5)C=A*Brandpem(n):随机排列 hess(A): hess矩阵 pascal(n): PascaI矩阵 hankel(c): Hankel 矩阵wilkinson(n): wilkinson 特征值测试矩阵blkdiag(a,b,c,d):产生以输入元素为对角线元素的矩阵注: diag 函数的输入参数只能有一个(可以为向量)compan(u):友矩阵hadamard(n): hadamard 矩阵 toeplitz(c,r):托

23、布列兹阵数组及其运算1 、数组寻址和排序(1)、数组的寻址A=randn(1,10)A(4)%访问A的第4个元素A(2:6)%访问A的第2到6个元素A(6:-2:1)A(1 3 7 4)%访问 A 中 1、 3、7 和 4 号元素A(4:end) %end 参数表示数组的结尾(2)、数组的排序sort(X):将数组X中的元素按升序排序X是多维数组时,sort(X)命令将X中的各列元素按升序排序X是复数时,sort(X)命令将X中的各个元素的模 abs(X)按升序排序X是一个字符型单元数组,sort(X)命令将X中的各列元素按 ASCII码升序排序'ascend '升Y=sort

24、(X,DIM,MODE): DIM 选择用于排列的维, MODE 决定了排序的方式(序,descend'降序),该命令生成的数组Y和X是同型的X=3 7 5;0 4 2sort(X,1)%纵向升序排序sort(X,2)%横向升序排序sort(2)2、数组的基本数值运算(1) 、加减法(和矩阵加减法相同)X=1 4 7Y=2 5 8Z=X-YV=X+Y(2) 、数组的乘除法乘法用“ *”: X、Y有相同维数,X.*Y表示X和Y中单个元素之间的对应乘积 除法用“ ./”:注意“ ./ ”和“ ”完全不同X=10 52 96 12 56Y=2 26 3 4 8Z=10 52 96 12 56

25、 42Z1=X.*YZ2=X.*Z%报错,维数问题Z3=X./Y%Z3=5,2,32,3,7Z4=X.Y%Z4=0.2,0.5,0.0313,0.3333,0.1429Z5=X.Z%报错,维数问题(3) 、数组的乘方 两个数组之间的乘方X=1 4 7Y=2 5 8Z=X.AY乘方运算时指数为标量X=3 6 9Z=X.A3乘方运算时底数为标量X=4 5 6 7 8 9Z=3.AX数组和矩阵也可以进行exp、 log、 sqrt 等运算,是对每个对应元素进行运算3、数组的关系运算小于( <),小于等于( <=),大于( >),大于等于( >=),等于( =),不等于( =)

26、, 结果为 1,则关系式为真,结果为0,则关系式为假%rem(X,n),求余函数,X为被除数,n为除数M=magic(7)N=(rem(M,3)N=(rem(M,3)<=1)N=(rem(M,3)=1)N=(rem(M,3)>=1)4、数组的逻辑运算和(&),或( |),非(),其中和、或可以比较两个标量或者两个同阶数组(或矩阵), 非运算时针对数组(或矩阵中的每一个元素),当逻辑为真则返回1,当逻辑为假则返回 0M=1 1 0;0 1 0;1 0 0N=1 0 1;1 1 1;0 0 0M|NM&NNcat :串接flipdimfliplrflipudkron:积

27、数组permute :重组repmatreshaperot90稀疏型矩阵1、稀疏矩阵的生成(1) 、 speye 函数:生成单位稀疏矩阵speye(size(A)speye(M,N):维数为 M和N中较小的一个speye(N)A=eye(10)speye(size(A)speye(7,6)speye(5)(2) 、sprand 函数:生成随机稀疏矩阵(元素服从0-1之间的随机分布)R=sprand(S):产生和稀疏矩阵 S结构相同的稀疏矩阵,但它的元素都是0-1上的随机数Rsprand(M,N,D):产生一个 M*N的随机稀疏矩阵 R,它的非您元素的个数近似为M*N*D, 注意 D 的值在 0

28、-1 之间且不要过大v=3 5 6 2 1 9 6 5 5 6S=diag(v)R=sprand(S)R=sprand(10,10,0.08)( 3)、 sparse 函数S=sparse(X):将矩阵X转化为稀疏矩阵SS=sparse(l,j,s,m,n,nzm):生成m*n的稀疏矩阵S,向量s的元素分布在以向量i的对应值和向 量 j 的对应值为坐标的位置上,其中 nzm=length(s)S=sparse(l,j,s):生成m*n的稀疏矩阵S,向量s的元素分布在以向量 i的对应值和向量j的对 应值为坐标的位置上,其中m=max(i),n=max(j)S=sparse(m,n):是 sparse(,m,n,0)的简化形式i=6 2 7 7 4 1 2 5j=1 3 2 7 2 8 3 2s=8 3 7 7 1 7 0 2X=diag(s,-2)S=sparse(X)S1=sparse(i,j,s,10,10,7)%报错, nzmax=length(s)S1=sparse(i,j,s,10,10,8)S2=sparse(i,j,s,10,9)%默认 nzmax=length(s)S2=sparse(i,j,s)%m=max(i),n=max(j)2、稀疏矩阵的操作(

温馨提示

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

评论

0/150

提交评论