MATLAB中的矩阵与向量运算上课讲义.docx
- 文档编号:1931966
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:9
- 大小:20.83KB
MATLAB中的矩阵与向量运算上课讲义.docx
《MATLAB中的矩阵与向量运算上课讲义.docx》由会员分享,可在线阅读,更多相关《MATLAB中的矩阵与向量运算上课讲义.docx(9页珍藏版)》请在冰豆网上搜索。
MATLAB中的矩阵与向量运算上课讲义
4.1数组运算和矩阵运算
从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操作简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表4.1.1列出了两种运算指令形式的实质内涵的异同.
4.1.1数组运算和矩阵运算指令形式和实质内涵
数组运算矩阵运算
指令含义指令含义
A.'非共轭转置A'共轭转置
A=s把标量s赋给数组A的每个元素
s+B把标量s分别与数组B的每个元素相加s-B,B-s标量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矩阵相加
A-B数组对应元素的相减A-B矩阵相减
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.0000-1.0000i
2.0000-2.0000i
3.0000-3.0000i
4.0000-4.0000i
5.0000-5.0000i
4.2.2纯量(标量)和数组的四则运算
纯量和数组之间可以进行简单数学运算.如:
加,减,乘,除及其混合运行.
>>g=[1234
5678
9101112]
>>g=g-2
g=
-1012
3456
78910
>>2*g-1
ans=
-3-113
57911
13151719
4.2.3数组间的四则运算
在MATLAB中,数组间进行四则运算时,参与运算的数组必须具有相同的维数,加,减,乘,除运算是按元素与元素的方式进行的.其中,数组间的加,减运算与矩阵的加,减运算要同,运算符为:
"+","-".但是,数组间的乘,除运算与矩阵间的乘,除运算完全不同,运算符号也有差别,数组间的乘,除运算符为:
".*","./"或".\".
1.数组按元素相加,减
>>g=[1234
5678
9101112]
>>h=[1111;2222;3333]
>>g+h%按元素相加
ans=
2345
78910
12131415
>>ans-h%按元素相减
ans=
1234
5678
9101112
>>2*g-h%混合运算
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.^(h-1)
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=
0-54
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
3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 中的 矩阵 向量 运算 上课 讲义