MATLAB_SWPU第三章 数学运算
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) MATLAB程序编辑器中输入: A = [ ...
16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0 ] (2) 存为:达式建立一个向量
>>A=rand(5)
>>b=ones(5,1) %生成5行全是1的列向量 >> x1=inv(A)*b % inv()矩阵求逆 >> x2=A\b
例如,a=[1,2,3;4,5,6;7,8,9];b=ones(3); a*b ans = 6 6 6 15 15 15 24 24 24 a.*b (表示元素对应相乘) ans = 1 2 3 4 5 6 7 8 9
第三章 数学运算
向量及其运算方法 数组及其运算方法
1.向量及其运算
在命令窗口中直接输入向量 等差元素向量的生成 向量与数的四则运算 向量与向量之间的加减运算 点积、叉积和混合积
(1)在命令窗口中直接输入向量
在MATLAB 7中,生成向量最简 单的方法就是在命令窗口中按 一定格式直接输入。输入的格 式要求是,向量元素用“[ ]” 括起来,元素之间用空格、逗 号或者分号相隔。需要注意的 是,用它们相隔生成的向量形 式是不相同的:用空格或逗号 生成行向量;用分号生成列向 量。
>> vec1=linspace(200,500,7) >> vec2=linspace(900,600,7) >> vec3=vec1+vec2 vec3 = Columns 1 through 5 1100 1100 1100 Columns 6 through 7 1100 1100 >>
>> a2=[15,21,27,93,101]; >> a1=[15;21;27;93;101]; >> a1 a1 = 15 21 27 93 101 >> a2 a2 = 15 21 27 93 101 >>
(2)等差元素向量的生成
当向量的元素过多,同 时向量各元素有等差的 规律,此时采用直接输 入法将过于繁琐。针对 该种情况 ,可以使用冒 号(:) 和linspace函数来 生成等差元素向量。
>> vec1=10:5:60 vec1 = 10 15 20 25 30 35 40 45 50 55 60 >> vec2=linspace (10,60,11) vec2 = 10 15 20 25 30 35 40 45 50 55 60
(3) 向量与数的四则运算
向量与数的加法(减法): 向量中的每个元素与 数的加法(减法)运算。 向量与数的乘法(除法): 向量中的每个元素与 数的乘法(除法)运算。
结果是
a= 1 4 2 5 3 6
7
8
9
2.利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个 M文件(是文本文件)。下面通过一个简单例子来说明如何利 用M文件创建矩阵。
例 利用M文件建立MYMAT矩阵。 (1) 启动有关编辑程序或MATLAB文本编辑器,并输入待建矩 阵: MYMAT=[101,102,103,104,105,106,107,108,109; 201,202,203,204,205,206,207,208,209; 301,302,303,304,305,306,307,308,309]; (2) 把输入的内容存盘(设文件名为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即运行该M文件, 就会自动建立一个名为MYMAT的矩阵,可供以后使用。
(2) 矩阵的基本数值运算
矩阵与常数的四 则运算 矩阵之间的四则 运算
>> A=[2 1 -1;2 1 0;1 -1 1] A = 2 1 -1 2 1 0 1 -1 1 >> B=[1 -1 3;4 3 2]; >> X=B/A X = -2.0000 2.0000 1.0000 -2.6667 5.0000 -0.6667 数学运算与此相同B*inv(A)
(5)矩阵开方、指数、对数运算
sqrtm()-矩阵的开方函数 expm()-矩阵的指数函数 logm()-矩阵的对数函数 inv()-矩阵的逆运算函数
矩阵的特征参数运算
3. 数组及其运算
数组寻址和排序 数组的基本数值运算 数组的关系运算 数组的逻辑运算
数组的形式和矩阵相同,也是由一组实数或复 数排成的阵列。和矩阵不同的是,它不是按照线性 代数的规则进行的,而是一种元素对元素的运算, 也就是说无论什么运算,对数组个的元素都是平等 进行的。所以MATLAB所提供的运算符列表中,除 了加、减法的运算符数组与矩阵相同以外,乘、除 、幂运算都是通过在标准的运算符前面加一个圆点 来特别指明是数组运算的。
>>A=[1 2 3 4;4 5 6 >>B=A^10 B= 1.0e+013* 0.7091 0.8608 1.4364 1.7436 1.4364 1.7436 2.4060 2.9207
7;4 5 6 7;8 9 10 11]
1.0124 2.0508 2.0508 3.4353
1.1641 2.3581 2.3581 3.9500
1100
1100
(5) 点积、叉积和混合积
两个向量的点积等于其中一个向量的模与另一 个向量在这个向量的方向上的投影的乘积 (维 数必须相同)。 叉积的几何意义是指过两个相交向量的交点, 并与此两向量所在平面垂直的向量 (向量维数 只能为3)。 向量的混合积的几何意义是它的绝对值表示以 向量为棱的平行六面体的体积
点积、叉积运算举例
点积 运算
叉积运算
>> x1=[11 22 33] x1 = 11 22 33 >> x2=[1 2 3] x2 = 1 2 3 >> x3=cross(x1,x2) x3 = 0 0 0 注意:叉积向量维数只 能为3
冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。 在MATLAB中,还可以用linspace函数产生行向量。其调用 格式为: linspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。
(1) 数组寻址和排序
通过对数组下表的访问来实现数组寻址
>> A=rand(1,5) A= 0.9501 0.2311 >> >> A(4) ans = 0.4860 >> >> A(2:3) ans = 0.2311 0.6068
0.6068
0.4860
0.8913
>> vec1=80:-9:10 vec1 = 80 71 62 53 44 35 26 17 >> vec1+101 ans = 181 172 163 154 145 136 127 118 >>
(4)向量与向量之间的加减运算
向量与向量的加法(减法)运算:向量中的每个 元素与另一个向量中相对应的元素的加法(减 法)运算。
>> x1=[11 22 33 44] >> x2=[1,2,3,4] >> a=dot(x1,x2) a= 330 >> sum(x1.*x2) ans = 330 >>
2. 矩阵及其运算 (1)矩阵的生成
矩阵的生成有多种方式, 通常使用的有4种方法:
在命令窗口中直接输入 矩阵 在M文件中建立矩阵 通过语句和函数产生矩 阵 从外部的数据文件中导 入矩阵
>> matrix=[1 ,1, 1, 1;2, 2, 2, 2;3, 3, 3, 3;4, 4, 4, 4] matrix = 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
1.直接输入法
最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具 体方法如下: 将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元 素,同一行的各元素之间用空格或逗号分隔,不同行的元 素之间用分号分隔。 如:a=[1,2,3;4,5,6;7,8,9]
即X= A\B; XA=B的解是A右除B,即X=B /A
>>A=[1 2;3 4;5 6];
>>B=[5 6;7 8;9 10]; >> C=A\B >> D=A/ B >> E= B \ A >> F= B / A
对于AX=b的线性方程组,有两种解法:一种是利
用矩阵求逆,即X=inv(A)*b; 另一种是用左除, 即X= A\ b 。除法的速度快。
>>X=10:20 >>X=0:0.1:0.5
>>X=linspace(0,pi,11) 或
>>X= linspace(0,1,11)* pi >>X=linspace(0,pi),缺省情况为输入100个元素 X= Columns 1 through 7 0 2.1991 0.3142 2.5133 0.6283 2.8274 0.9425 3.1416 1.2566 1.5708 1.8850 Columns 8 through 11
4、从外部的数据文件中导入矩阵
(1) 编辑一个文本文件: 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0 (2) 装入 该文本文件: load mymatrix.dat 或者: load mymatrix.txt (3) 创建一个变量名为mymatrix的矩阵 将以文本或二进制格式存储的数据读入 MATLAB 的另一种 方式是用 Import Wizard. File→Import Data
使用sort函数对数组进行排序
>> X = [3 7 5 0 4 2] >> sort(X,1) %1 表示第一维,即列方向 ans = 0 4 2 3 7 5 >> sort(2) %对2向量排序 ans = 2 >>sort(x,2) %2 表示第二维,即行方向 ans = 3 5 7 0 2 4 注意:如果是复数,则按照元素的模排序
(2) 矩阵的基本数值运算
1. 基本算术运算 MATLAB的基本算术运算有:+(加)、-(减)、*(乘)、 /(右除)、\(左除)、^(乘方)。 注意:运算是在矩阵意义下进行的,单个数据的算术运 算只是一种特例。 A / B = A*inv(B) A \ B = inv(A)*B 2. 点运算 点运算符有.*、./、.\和.^。两矩阵进行点运算是指它 们的对应元素进行相关运算,要求两矩阵的维数相同。 3.MATLAB常用数学函数
(1)矩阵加、减(+,-)运算
相加、减的两矩阵必须有相同的行和列, 两矩阵对应元素相加减。
允许参与运算的两矩阵之一是标量。标量 与矩阵的所有元素分别进行加减操作。
(2)矩阵乘()运算
A矩阵的列数必须等于B矩阵的行数
标量可与任何矩阵相乘。
(3)矩阵除( \ , / )运算
矩阵除的运算在线性代数中没有,有矩阵逆的 运算,在matlab中有两种矩阵除运算: \(左除): A\B表示A左除B ; /(右除): A/B表示B右除A 设A是可逆矩阵的运算, AX=B的解是A左除B,
(4)矩阵乘方(^ )运算
A ^p —— A 自乘p 次幂
设A为方阵, p为正整数,则A ^p 表示 A 自 乘p 次; 若A为方阵且非奇异, p为正整数, A ^(-p) 表示 A的逆自乘p 次。
对于p的其它值,计算将涉及特征值和特征向量, 如A , p 都是矩阵, A ^ p 则无意义。
a^0.5 ans = 0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i
1.5873 - 0.5940i
1.9503 - 0.1611i 2.3134 + 0.2717i