2.2 向量
向量是一个有方向的量,它是高等数学、线性代数中的概念,在力学、电磁学等领域有着广泛应用。向量是由n个数a1,a2,…,an组成的有序数列,形式如下:
2.2.1 创建向量
2.2.1
在MATLAB中,向量主要采用一维数组来表示。创建向量主要有直接输入法、冒号表达式法和函数法。
1.直接输入法
在命令提示符之后直接输入一个向量,其格式如下:
【例2-1】采用直接输入法创建向量。
在命令行窗口中输入以下命令并显示输出结果。
说明:在后面的算例中,直接创建的向量或矩阵语句后采用了“;”结尾,表示不在命令行窗口中输出结果,不输入“;”可直接显示结果。
2.冒号表达式法
利用冒号表达式也可以创建向量,其格式如下:
其中,a1为向量的第一个元素;an为向量最后一个元素的限定值;step是变化步长,可以是正数、负数或者小数,省略时系统默认步长为1。
MATLAB支持构造任意步长的向量,步长甚至可以是负数。
【例2-2】利用冒号表达式法创建向量。
在命令行窗口中输入以下命令并显示输出结果。
3.函数法
MATLAB提供了两个函数用于直接创建向量:一个是实现线性等分的函数linspace;另一个是实现对数等分的函数logspace。
(1)函数linspace的通用格式如下:
其中,a1是向量的首元素,an是向量的尾元素,n把a1至an的区间分成向量首尾元素之外的其他n-2个元素。若省略n,则默认创建含有100个元素的线性等分向量。
(2)函数logspace的通用格式如下:
其中,a1是向量首元素的幂,即A(1)为10的a1次幂;an是向量尾元素的幂,即A(n)为10的an次幂;n是向量的维数。若省略n,则默认创建含有50个元素的对数等分向量。
【例2-3】利用线性等分函数及对数等分函数创建向量。
在命令行窗口中输入以下命令并查看输出结果。
采用冒号表达式法和线性等分函数都能创建线性等分向量,但在使用时有几点区别需要注意。
(1)在冒号表达式法中,an不一定恰好是向量的最后一个元素,只有当向量的倒数第二个元素加步长等于an时,an才正好构成尾元素。
(2)在使用线性等分函数前,必须先确定创建向量的元素个数,但使用冒号表达式法将依据步长和an的限制去创建向量,无须考虑元素个数的多少。
(3)实际应用时,同时限定尾元素和步长去创建向量,可能会出现矛盾,此时要么坚持步长优先,调整尾元素限制;要么坚持尾元素限制,调整等分步长。
2.2.2 向量的算术运算
2.2.2
在MATLAB中,维数相同的行向量可以相加减,维数相同的列向量也可以相加减,标量数值可以与向量直接相乘除。但是,不同维数的向量之间的加减运算是不允许的。
【例2-4】向量的加减和数乘运算示例。
在命令行窗口中输入以下命令并查看输出结果。
2.2.3 向量的点积和叉积运算
2.2.3
向量的点积即数量积,叉积又称向量积或矢量积。MATLAB是用函数来实现向量的点积、叉积运算的。
1.点积运算
点积运算的定义是将参与运算的两向量各对应位置上的元素相乘,再将各乘积相加。因此,向量点积的结果是一标量而非向量。
(1)对于长度为n的两个实数向量的点积为:
(2)对于复数向量,点积涉及复共轭。须确保向量与自身的内积都为实数正定矩阵。
点积运算函数是dot(),其调用格式为:
说明:如果A和B是向量,则它们的维数必须相同。如果A和B为矩阵或多维数组,则它们必须具有相同大小。对于实数向量,dot(u,v)=dot(v,u);对于复数向量,复数关系不可互换,dot(u,v)=conj(dot(v,u))。
2.叉积运算
两个三维向量A、B之间的叉积生成一个与这两个向量都垂直的新向量C,即C的方向垂直于A与B决定的平面。用三维坐标表示为
叉积运算的函数是cross(A,B),该函数计算的是A、B叉积后各分量的元素值,且A、B只能是三维向量。
叉积运算函数是dot(),其调用格式为:
说明:①如果A和B为向量,则它们的长度必须为3。②如果A和B为矩阵或多维数组,则它们必须具有相同大小,此时,cross函数将A和B视为三元素向量集合,计算对应向量沿大小等于3的第一个数组维度的叉积。
3.混合积运算
在三维向量之间,综合运用上述两个函数,可实现点积和叉积的混合运算。
【例2-5】向量的点积与叉积运算示例。
在命令行窗口中输入以下命令并查看输出结果。
在获取交叉乘积的维度中,A和B的长度必须为3。