MATLAB 的基本数学功能.doc
文本预览下载声明
第二章 MATLAB 的基本数学功能(一)
分类:matlab
Chapter two: fundamental Math function of MATLAB
一 算术运算(Arithmetic Computation)
MATLAB 提供的两种运算方式:
(1)普通的数组运算方式:(Array computation[k?mpju‘tei??n]) 在数组中对应元素之间进行运算;
(2)矩阵运算方式:(matrix computations) 将标量当作1×1阶矩阵,一维数组当作一行或一列的矢量(即1×n阶或 n×1阶的矩阵),二维数组当作m×n阶矩阵,然后按照矩阵的运算规则进行运算。
二者输入形式和书写方法相同,差别仅在于使用不同的运算符号,执行不同的计算过程,数组的运算是对应元素之间的运算,而矩阵运算是根据矩阵的运算规则进行。
1. 加、减运算(addition and subtraction)
矩阵与数组的加减运算没有区别,运算符均为“+”、“-”,运算方法相同,但两个运算对象必须是同阶矩阵,否则将给出错误信息。如下例:
a=[1 2 3;4 5 6;7 8 9];
b=[1 3 5];
a+b
运行结果给出错误信息:
??? Error using ==±
Matrix dimensions[di?men??n] must agree.
但标量,即1×1阶矩阵可以和其他不同维数的矩阵进行加减运算,如:a+5
ans =
6 7 8
9 10 11
12 12 14
2. 乘除运算(Multiplication and division)
矩阵在进行乘除运算时与通常的运算符号相同(*, /, \ ,.*,./,.\),而数组在进行乘除运算时要在通常的符号前加“.”,如:“.* ” 和“./ ” (或 “.\ ”)
(1) 矩阵乘法:(Matrix multiplication)
条件:两矩阵中前一矩阵的列数与后一矩阵的行数相同, 如
x=[1 2 ; 3 4];
y=[5 6 ; 7 8];
x*y
ans =
19 22
43 50
x.*y
ans =
5 12
21 32
也可以实现两个相同维数矢量的内积(点乘,dot product),如:
a=[-1? 0? 2 ]’? ?% (输入行矢量转置为列矢量,等同于a=[-1;0;2])
b=[-2? -1? 1]’
a’*b
b’*a?????
a =?-1
???? 0
???? 2
b = -2
??? -1
???? 1
ans =?4
ans =?4
MATLAB计算点乘(dot product)和叉乘(cross product)有专门的命令,用dot(a,b)计算矢量a和b的点乘,用cross(a,b) 计算叉乘。
矩阵可以和标量相乘,标量可以是乘数也可以是被乘数,都是将矩阵中的每一个元素与标量相乘。如:
x=[-1? 0 ?2];
pi*x
ans =
?? -3.1416???????? 0??? 6.2832
(2) 数组的乘法 (Array multiplication)
条件:a,b两数组必须有相同的维数,则a.*b 表示a和b中对应元素之间相乘,即z(i,j)=x(i,j)*y(i,j).如:
x=[1 2 3];
y=[4 5 6];
x.*y
ans =
4 10 18
x*y
??? Error using == mtimes
Inner matrix dimensions must agree.
x=[1 2 3];
y=[4 5 6];
x*y (x的转置x’)
ans =
4 5 6
8 10 12
12 15 18
(3) 矩阵除法 (Matrix division)
条件:a矩阵是非奇异方阵,则a\b(左除)和b/a(右除)都可以实现。a\b等效于a矩
阵的逆左乘b矩阵,即a\b=inv(a)*b, b/a等效于a矩阵的逆右乘b矩阵,即b/a=b*inv(a).
通常x=a\b 是a*x=b 的解,x=b/a 是x*a=b的解。一般a\ b≠b/a,
右除与左除的关系为:(b/a)’=(a’\b’),如;
(4) 数组的除法(Array division)
条件:a与b必须具有相同的维数。符号“. \ ”或 “. / ”,运算结果相同(她说的意思是a./b=b.\a:表示b中的元素分别除以a中的对应元素,即z(i,j)=x(i,j)\y(i,j)=y(i,j)/x(i,j)。如:
x=[1 2 3];
y=[4 5 6]
显示全部