MATLAB中的矩阵与向量运算.docx

上传人:b****6 文档编号:5828556 上传时间:2023-01-01 格式:DOCX 页数:9 大小:19.67KB
下载 相关 举报
MATLAB中的矩阵与向量运算.docx_第1页
第1页 / 共9页
MATLAB中的矩阵与向量运算.docx_第2页
第2页 / 共9页
MATLAB中的矩阵与向量运算.docx_第3页
第3页 / 共9页
MATLAB中的矩阵与向量运算.docx_第4页
第4页 / 共9页
MATLAB中的矩阵与向量运算.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

MATLAB中的矩阵与向量运算.docx

《MATLAB中的矩阵与向量运算.docx》由会员分享,可在线阅读,更多相关《MATLAB中的矩阵与向量运算.docx(9页珍藏版)》请在冰豆网上搜索。

MATLAB中的矩阵与向量运算.docx

MATLAB中的矩阵与向量运算

4.1数组运算和矩阵运算

从外不雅外形和数据构造来看,二维数组和数学中的矩阵没有差别.但是,矩阵作为一种变换或映射算符的表现,矩阵运算有着明白而严厉的数学规矩.而数组运算是MATLAB软件所界说的规矩,其目标是为了数据治理方面,操纵简略,指令情势天然和履行盘算有用.所以,在应用MATLAB时,特别要明白搞清数组运算和矩阵运算的差别.表4.1.1列出了两种运算指令情势的本质内在的异同.

4.1.1数组运算和矩阵运算指令情势和本质内在

数组运算矩阵运算

指令寄义指令寄义

A.'非共轭转置A'共轭转置

A=s把标量s赋给数组A的每个元素

s+B把标量s分离与数组B的每个元素相加sB,Bs标量s分离与数组B的元素之差

s.*A标量s分离与数组A的元素之积s*A标量s分离与矩阵A的元素之积

s./B,B.\s标量s分离被数组B的元素除s*inv(B)矩阵B的逆乘标量s

A.^n数组A的每个元素的n次方A^nA为方阵时,矩阵A的n次方

A+B数组对应元素的相加A+B矩阵相加

AB数组对应元素的相减AB矩阵相减

A.*B数组对应元素的相乘A*B内维雷同矩阵的乘积

A./BA的元素被B的对应元素除A/BA右除B

B.\A必定与上雷同B\AA左除B(一般与右除不合)

exp(A)以e为底,分离以A的元素为指数,求幂expm(A)A的矩阵指数函数

log(A)对A的各元素求对数logm(A)A的矩阵对数函数

sqrt(A)对A的积各元素求平方根sqrtm(A)A的矩阵平方函数

从上面可以看到,数组运算的运算如:

乘,除,乘方,转置,要加"点".所以,我们要特别留意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的差别.别的,在履行数组与数组运算时,介入运算的数组必须同维,运算所得的成果数组也是总与原数组同维.

4.2数组的根本运算

在MATLAB中,数组运算是针对多个数履行同样的盘算而应用的.MATLAB以一种异常直不雅的方法来处理数组.

4.2.1点转置和共轭转置

.'——点转置.非共轭转置,相当于conj(A').

>>a=1:

5;

>>b=a.'

b=

1

2

3

4

5

>>c=b.'

c=

12345

这标明对行向量的两次转置运算便得到本来的行向量.

'——共轭转置.对向量进行转置运算并对每个元素取其共轭.如:

>>d=a+i*a

d=

Columns1through3

1.0000+1.0000i2.0000+2.0000i3.0000+3.0000i

Columns4through5

4.0000+4.0000i5.0000+5.0000i

>>e=d'

e=

1.00001.0000i

2.00002.0000i

3.00003.0000i

4.00004.0000i

5.00005.0000i

4.2.2纯量(标量)和数组的四则运算

纯量和数组之间可以进行简略数学运算.如:

加,减,乘,除及其混杂运行.

>>g=[1234

5678

9101112]

>>g=g2

g=

1012

3456

78910

>>2*g1

ans=

3113

57911

13151719

4.2.3数组间的四则运算

在MATLAB中,数组间进行四则运算时,介入运算的数组必须具有雷同的维数,加,减,乘,除运算是按元素与元素的方法进行的.个中,数组间的加,减运算与矩阵的加,减运算要同,运算符为:

"+","".但是,数组间的乘,除运算与矩阵间的乘,除运算完整不合,运算符号也有不同,数组间的乘,除运算符为:

".*","./"或".\".

1.数组按元素相加,减

>>g=[1234

5678

9101112]

>>h=[1111;2222;3333]

>>g+h%按元素相加

ans=

2345

78910

12131415

>>ansh%按元素相减

ans=

1234

5678

9101112

>>2*gh%混杂运算

ans=

1357

8101214

15171921

2.按元素乘

>>g.*h

ans=

1234

10121416

27303336

3.按元素除

数组间的除法运算符有两个,即左除:

"./"和右除:

".\",它们之间的关系是:

a./b=b.\a

>>g./h

ans=

1.00002.00003.00004.0000

2.50003.00004.10004.0000

3.00003.33333.66674.0000

>>h.\g

ans=

1.00002.00003.00004.0000

2.50003.00004.10004.0000

3.00003.33333.66674.0000

4.2.4幂运算

在MATLAB中,数组的幂运算的运算为:

".^",暗示每一个元素进行幂运算.

>>g.^2%数组g每个元素的平方

ans=

14916

25364964

81100121144

>>g.^

(1)%数组g的每个元素的倒数

ans=

1.00000.50000.33330.2500

0.20000.16670.14290.1250

0.11110.10000.09090.0833

>>2.^g%以g的每个元素为指数对2进行乘方运算

ans=

24816

3264128256

512102420484096

>>g.^h%以h的每个元素为指数对g中响应元素进行乘方运算

ans=

1234

25364964

729100013311728

>>g.^(h1)

ans=

1111

5678

81100121144

4.2.5数组的指数,对数和开方运算

在MATLAB中,所谓数组的运算本质是是数组内部每个元素的运算,是以,数组的指数,对数和开方运算与标量的运算规矩完满是一样的,运算符函数分离为:

exp(),log(),sqrt()等.

>>a=[134;265;324];

>>c=exp(a)

c=

2.718320.085554.5982

7.3891403.4288148.4132

20.08557.389154.5982

>>

数组的对数,开方运算与数组的指数运算,其方法完整一样,这里不胪陈.

4.3向量运算

对于一行或一列的矩阵,为向量,MATLAB有专门的函数来进行向量点积,叉积和混杂积的运算.

4.3.1向量的点积运算

在高级数学中,我们知道,两向量的点积指两个向量在个中一个向量偏向上的投影的乘积,通经常应用来界说向量的长度.在MATLAB中,向量的点积用函数"dot"来实现,其挪用格局如下:

C=dot(A,B)——返回向量A与B的点积,成果存放于C中.

C=dot(A,B,DIM)——返回向量A与B在维数为DIM的点积,成果存放于C中.

>>A=[24531];

>>B=[38101213];

>>C=dot(A,B)

C=

137

>>C=dot(A,B,4)

C=

632503613

4.3.2向量的叉积运算

在高级数学中,我们知道,两向量的叉积返回的是与两个向量构成的平面垂直的向量.在MATLAB中,向量的点积用函数"cross"来实现,其挪用格局如下:

C=cross(A,B)——返回向量A与B的叉积,即:

成果存放于C中.

C=cross(A,B,DIM)——返回向量A与B在维数为DIM的叉积,成果存放于C中.

>>A=[245];

>>B=[3810];

>>C=cross(A,B)

C=

054

4.3.3向量的混杂运算

>>D=dot(A,cross(B,C))

D=

41

上例标明,起首进行的是向量B与C的叉积运算,然后再把叉积运算的成果与向量A进行点积运算.

4.4矩阵的根本运算

假如说MATLAB的最大特色是壮大的矩阵运算功效,此话毫不为过.事实上,MATLAB中所有的盘算都是以矩阵为根本单元进行的.MATLAB对矩阵的运算功效最周全,也是最为壮大的.矩阵在情势上与构造方面是等同于前面所述的数组的,当其数学意义倒是完整不合的.

矩阵的根本运算包含矩阵的四则运算,矩阵与标时的运算,矩阵的幂运算,指数运算,对数运算,开方运算及以矩阵的逆运算,行列式运算等.

4.4.1矩阵的四则运算

矩阵的四则运算与前面介绍的数组的四则运算基底细同.但也有一些不同.

1.矩阵的加减

矩阵的加,减与数组的加,减是完整雷同的,运算时请求两矩阵的大小完整雷同.

>>a=[12;35;26];

>>b=[24;18;90];

>>c=a+b

c=

36

413

116

2.矩阵的相乘

对于矩阵的乘法,从线性代数中,我们知道,请求进行相乘的两矩阵有雷同的公共维.如:

>>a=[12;35;26];

>>b=[241;890];

>>c=a*b

c=

18221

46573

52622

设A矩阵为一个阶的矩阵,则请求与之相乘的B矩阵必须是一个阶,得到矩阵是阶的.即,只有当第一个矩阵(左矩阵)的列数等于第二个矩阵(右矩阵)的行数时,两个矩阵的乘积才有意义.

3.矩阵的除法

对于矩阵的除法有两个运算符号,分离为左除符号"\"和右除符号"/".矩阵的右除运算速度要慢一点,而左除运算可以防止奇怪矩阵的影响.

对于方程,若此方程为超定的方程,则应用除法可以主动找到使的平方最小化的解.若此方程为不定方程,则应用除法运算符至少求得的解至多有rank(A)(矩阵A的秩)个非零元素,并且求得的解是这种类型的解中范数最小的一个.

>>a=[213420;57820;211417;343138];

>>b=[10203040]';

>>x=b\a

x=

0.76671.18670.8767

上面方程是超定方程.要留意的:

成果矩阵x是列向量情势.假如,

>>a=[2134205;78202114;17343138];

>>b=[102030]';

>>x=b\a

x=

1.62861.25711.10711.0500

上面的方程为不定方程.

4.矩阵与标量间的四则运算

矩阵与标量的四则运算和数组与标量间的四则运算完整雷同,即矩阵中的每个元素与标量进行加,减,乘,除四则运算.须要解释的是,当进行除法运算时,标量只能做除数.

5.矩阵的幂运算

矩阵的幂运算与标量的幂运算不合.用符号"^",它不是对矩阵的每个元素进行幂运算,而是与矩阵的某种分化有关.

>>b=[213420;782021;173431];

>>c=b^2

c=

343320741754

355537662631

35362312

6.矩阵的指数,对数运算与开方运算

矩阵的指数运算,对数运算与开方运算与数组响应的运算是不合的.它其实不是对矩阵中的单个元素的运算,而是对全部矩阵的运算.这些运算函数如下:

expm,expm1,expm2,expm3——指数运算函数;

logm——对数运算函数;

sqrtm——开方运算函数.

>>a=[134;265;324];

>>c=expm(a)

c=

1.0e+004*

0.46680.76940.9200

0.79191.30651.5613

0.48070.79190.9475

>>c=logm(a)

c=

0.5002+2.4406i0.59600.6800i0.78811.2493i

0.4148+0.4498i1.46600.1253i1.01080.2302i

0.57801.6143i0.4148+0.4498i1.0783+0.8263i

>>c=sqrtm(a)

c=

0.6190+0.8121i0.81280.2263i1.16230.4157i

0.3347+0.1497i2.30220.0417i1.14750.0766i

1.02710.5372i0.3347+0.1497i1.6461+0.2750i

7.矩阵的转置,逆运算与行列式运算

矩阵的转置的运算符为"'".求逆用运算函数:

inv().而用函数:

det()则可求的矩阵行列式的大小.

>>a=[120;251;4101];

>>c=a'

c=

124

2510

011

>>b=inv(a)

b=

522

211

021

>>d=det(a)

d=

1

4.5矩阵的特别运算

矩阵的特别运算包含矩阵特点值运算,前提数运算,奇怪值运算,范数运算,秩运算,正交化运算,迹运算,伪逆运算等,这些运算,MATLAB都可以异常便利地给出.

4.5.1矩阵的特点值运算

在线性代数中,盘算矩阵的特点值进程相当庞杂.而在MATLAB中,矩阵特点值运算只需用函数"eig()"或"eigs()"盘算即可得到.其应用格局如下.

E=eig(X)——生成由矩阵X的特点值所构成的一个列向量;

[V,D]=eig(X)——生成两个矩阵V和D,个中V是以矩阵X的特点向量作为列向量构成的矩阵,D是由矩阵X的特点值作为主对角线元素构成的对角矩阵.

eigs()函数应用迭代法求解矩阵的特点值和特点向量.

D=eigs(X)——生成由矩阵X的特点值所构成的一个列向量.X必定是方阵,最好是大型稀少矩阵;

[V,D]=eigs(X)——生成两个矩阵V和D,个中V是以矩阵X的特点向量作为列向量构成的矩阵,D是由矩阵X的特点值作为主对角线元素构成的对角矩阵.

>>a=[120;251;4101];

[b,c]=eig(a)

b=

0.24400.91070.4472

0.33330.33330.0000

0.91070.24400.8944

c=

3.732100

00.26790

001.0000

4.5.2矩阵(向量)的范数运算

为了反应了矩阵(向量)某些特点,线性代数中引入了范数的概念,它分为2范数,1范数,无限范数和Frobenius范数等.在MATLAB中,用函数norm()或normest()盘算矩阵(向量)的范数.其应用格局如下.

norm(X)——盘算矩阵(向量)X的2范数;

norm(X,2)——同上;

norm(X,1)——盘算矩阵(向量)X的1范数;

norm(X,inf)——盘算矩阵(向量)X的无限范数;

norm(X,'fro')——盘算矩阵(向量)X的Frobenius范数;

normest(X)——只盘算矩阵(向量)X的2范数;并且是2范数的估量值,实用于盘算norm(X)比较费时的情形.

>>X=hilb(4)

X=

1.00000.50000.33330.2500

0.50000.33330.25000.2000

0.33330.25000.20000.1667

0.25000.20000.16670.1429

>>norm(4)

ans=

4

>>norm(X)

ans=

1.5002

>>norm(X,2)

ans=

1.5002

>>norm(X,1)

ans=

2.0833

>>norm(X,inf)

ans=

2.0833

>>norm(X,'fro')

ans=

1.5097

>>normest(X)

ans=

1.5002

4.5.3矩阵的前提数运算

矩阵的前提数是断定矩阵"病态"程度的一个量值,矩阵A的前提数越大,标明A越"病态",反之,标明A越"良态".如Hilbert矩阵就是一个著名的病态矩阵.

cond(X)——返回矩阵X的2范数的前提数;

cond(X,P)——返回矩阵X的P范数的前提数,个中P为1,2,inf或fro;

rcond(X)——用于盘算矩阵前提数的倒数值,当矩阵X为"病态"时,rcond(X)就接近0,X为"良态"时,rcond(X)就接近1.

condest(X)——盘算关于矩阵X的1范数的前提数的估量值.

>>M=magic(3)

M=

816

357

492

>>H=hilb(4)

H=

1.00000.50000.33330.2500

0.50000.33330.25000.2000

0.33330.25000.20000.1667

0.25000.20000.16670.1429

>>c1=cond(M)

c1=

4.3301

>>c2=cond(M)

c2=

4.3301

>>c3=rcond(M)

c3=

0.1875

>>c4=condest(M)

c4=

5.3333

>>h1=cond(H)

h1=

1.5514e+004

>>h2=cond(H,inf)

h2=

2.8375e+004

>>h3=rcond(H)

h3=

3.5242e005

>>h4=condest(H)

h4=

2.8375e+004

从上盘算可以看出,魔方矩阵比较"良态",而Hilbert矩阵是"病态"的.

4.5.4矩阵的秩

秩是线性代数中的相当主要的概念之一,平日矩阵可以经由初等行列式或列变换,将其转化为行阶梯形矩阵,而行阶梯矩阵所包含非零行的行数是一个定的,这个肯定的非零行的行数就是矩阵的秩.矩阵中的秩用函数rank()来盘算.

>>T=rand(6)

T=

0.95010.45650.92180.41030.13890.0153

0.23110.01850.73820.89360.20280.7468

0.60680.82140.17630.05790.19870.4451

0.48600.44470.40570.35290.60380.9318

0.89130.61540.93550.81320.27220.4660

0.76210.79190.91690.00990.19880.4186

>>r=rank(T)

r=

6

由上盘算可知,矩阵T为满秩矩阵.

>>T1=[111;223]

T1=

111

223

>>r=rank(T1)

r=

2

由上盘算可知,矩阵T1为行满秩矩阵.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1