MATLAB中的矩阵与向量运算Word下载.docx
- 文档编号:21429035
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:9
- 大小:19.69KB
MATLAB中的矩阵与向量运算Word下载.docx
《MATLAB中的矩阵与向量运算Word下载.docx》由会员分享,可在线阅读,更多相关《MATLAB中的矩阵与向量运算Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
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.数组按元素相加,减
h=[1111;
2222;
3333]
g+h%按元素相加
2345
12131415
ansh%按元素相减
1234
9101112
2*gh%混合运算
1357
8101214
15171921
2.按元素乘
g.*h
10121416
27303336
3.按元素除
数组间的除法运算符有两个,即左除:
和右除:
它们之间的关系是:
a./b=b.\a
g./h
1.00002.00003.00004.0000
2.50003.00004.10004.0000
3.00003.33333.66674.0000
h.\g
4.2.4幂运算
在MATLAB中,数组的幂运算的运算为:
.^"
暗示每一个元素进行幂运算.
g.^2%数组g每个元素的平方
14916
25364964
81100121144
g.^
(1)%数组g的每个元素的倒数
1.00000.50000.33330.2500
0.20000.16670.14290.1250
0.11110.10000.09090.0833
2.^g%以g的每个元素为指数对2进行乘方运算
24816
3264128256
512102420484096
g.^h%以h的每个元素为指数对g中相应元素进行乘方运算
729100013311728
g.^(h1)
1111
4.2.5数组的指数,对数和开方运算
在MATLAB中,所谓数组的运算实质是是数组内部每个元素的运算,因此,数组的指数,对数和开方运算与标量的运算规则完全是一样的,运算符函数分别为:
exp(),log(),sqrt()等.
a=[134;
265;
324];
c=exp(a)
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)
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)
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
36
413
116
2.矩阵的相乘
对于矩阵的乘法,从线性代数中,我们知道,要求进行相乘的两矩阵有相同的公共维.如:
b=[241;
890];
c=a*b
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]'
1.62861.25711.10711.0500
上面的方程为不定方程.
4.矩阵与标量间的四则运算
矩阵与标量的四则运算和数组与标量间的四则运算完全相同,即矩阵中的每个元素与标量进行加,减,乘,除四则运算.需要说明的是,当进行除法运算时,标量只能做除数.
5.矩阵的幂运算
矩阵的幂运算与标量的幂运算分歧.用符号"
^"
它不是对矩阵的每个元素进行幂运算,而是与矩阵的某种分解有关.
b=[213420;
782021;
173431];
c=b^2
343320741754
355537662631
35362312
6.矩阵的指数,对数运算与开方运算
矩阵的指数运算,对数运算与开方运算与数组相应的运算是分歧的.它其实不是对矩阵中的单个元素的运算,而是对整个矩阵的运算.这些运算函数如下:
expm,expm1,expm2,expm3——指数运算函数;
logm——对数运算函数;
sqrtm——开方运算函数.
265;
324];
c=expm(a)
1.0e+004*
0.46680.76940.9200
0.79191.30651.5613
0.48070.79190.9475
c=logm(a)
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)
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'
124
2510
011
b=inv(a)
522
211
021
d=det(a)
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的特征值作为主对角线元素构成的对角矩阵.
[b,c]=eig(a)
0.24400.91070.4472
0.33330.33330.0000
0.91070.24400.8944
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=
0.50000.33330.25000.2000
0.33330.25000.20000.1667
0.25000.20000.16670.1429
norm(4)
norm(X)
1.5002
norm(X,2)
norm(X,1)
2.0833
norm(X,inf)
norm(X,'
)
1.5097
normest(X)
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=
c1=cond(M)
c1=
4.3301
c2=cond(M)
c2=
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=
从上计算可以看出,魔方矩阵比较"
而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)
由上计算可知,矩阵T1为行满秩矩阵.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 中的 矩阵 向量 运算
![提示](https://static.bdocx.com/images/bang_tan.gif)