A.2 向量、矩阵和线性代数
数学家将向量定义为向量空间的成员,不过我们将使用一个更具体的定义:一个向量是值的有序序列。例如,在二维空间中,我们有诸如x=3,4和y=0,2这样的向量。遵循通常的习惯,我们用黑体字母表示向量名,虽然有些作者倾向于在向量名上加一个箭头或者横杠:或者
。我们通过下标的方式访问向量的元素:z=z1,z2,…,zn。
向量的两个基本运算是向量的加法和数乘。向量加法x+y是逐个元素求和:x+y=<3+0,4+2>=<3,6>。数乘则将向量的每一个元素都与某个常数相乘:5x=<5×3,5×4>=<15,20>。
向量的长度记作|x|,为所有元素平方和的平方根:。两个向量的点积(也称为数积)x⋅y 是两个向量对应元素乘积的和,也就是,x⋅y=ixiyi,或者在我们这个特定的例子中有x⋅y=3×0+4×2=8。
向量经常被解释为n维欧氏空间中的一条有向线段(箭头)。向量加法等价于将一个向量的末端放到另一个向量的首端,而点积x⋅y则等于|x||y|cos θ,其中θ是x和y之间的夹角。
矩阵是排列成行和列的值形成的矩形阵列。这里是一个3 × 4的矩阵m:
mi, j的第一个下标表示行,第二个下标表示列。在程序设计语言中,常把mi, j写作m[i,j]或者m[i][j]。
两个矩阵的和定义为把对应元素相加,因此(m+n)i, j=mi, j+ni, j(如果m和n的大小不一致,它们的和是没有定义的)。我们也可以定义矩阵的数乘:(c m)i, j=c mi, j。矩阵乘法(两个矩阵的乘积)比较复杂。乘积m n只有当m的大小为a×b,而n的大小为b×c 时才有定义(也就是说,第二个矩阵的行数等于第一个矩阵的列数);乘积的结果是一个a×c矩阵。这意味着矩阵乘法不是可交换的:一般而言m n≠n m。如果两个矩阵的大小合适,那么结果为
单位矩阵I满足当i=j时元素Ii, j等于1,否则等于0。它具有一个性质:对于任何m都有m I=m。m的转置,记作mT,是通过将m的行和列进行交换得到的,反之亦然;或者更形式化地说,。
矩阵可以用于通过一个称为高斯-约当消元法的过程求解线性方程组,这是一个O(n3)算法。考虑下列方程组,其中我们希望求解x, y和z:
+2x+y−z=8
−3x−y+2z=11
−2x+y+2z=−3
我们可以将这个方程组表示为一个矩阵:
这里的x y z c并不是矩阵的一部分,写在这里只是为了提醒读者。我们知道,如果在方程两端同时乘上一个常数或者将两个方程相加,我们会得到一个同样有效的方程。高斯-约当消元就是通过反复不断进行这些运算而实现的,它采用这样一种方式:我们首先从第一个变量(x)开始,将它从除了第一个方程以外的所有其它方程中消去,然后继续进行,对所有的i,将第i个未知数从除了第i个方程以外的所有其它方程中消去。将第一个方程乘以 3/2 然后加到第二个方程上去,我们便从第二个方程中消去了x。我们得到了下面的矩阵:
继续按这种方式消去x,y和z,直到我们得到:
表明x=2,y=3,z=−1是一个解。(自己验证一下!)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。