矩阵运算--北太天元学习16
设A是m×n矩阵,设x是长度为n的列向量。A和x的乘积是A的列的线性组合,使用x中的
相应项作为权重,如下所示:

A*x = x(1)*A(:,1) + ... + x(n)*A(:,n);
请注意,A的列数必须等于x的元素个数, A与x乘积Ax是长度为m的列向量。
以下是一些关于矩阵向量乘法的有用规则。
设A∈ R^{m×n},u,v∈R^n,α∈R。那么
1. A* (u+v) = A*u + A*v
2. A* (α*u))= α * ( A*u);
两个矩阵A和B的乘积使用第一个矩阵A与第二个矩阵B的列的依次做矩阵向量乘积
A*B =[A*B(:,1) , ... , A*B(:,end)]
上面的 B(:,1) 表示矩阵的第一列, B(:,end) 表示矩阵的最后一列.

乘积A*B的每一列将是矩阵A与B中相应列向量的乘积。这意味着矩阵乘法要满足这样的条件,
A的列数必须与B的行数相匹配 (B的每一个列向量的长度都等于B矩阵的行数)。
因此,对于A∈R^{m×n},B∈R^{n×r}, 我们得到了乘积A*B∈R^{m×r}。由于这种情况,
请注意,通常A*B可能存在,而B*A可能不存在。 如果这两种乘积都存在,
那么这两者往往不相等。
考虑2×3矩阵 A=[ 1 -2 1; 3 0 2] 乘以 3×4矩阵B=[2 3 1 -5; -1 1 -2 3; -4 2 -1 1].
我们用北太天元做矩阵 A*B 得到,

做B*A 会报错说无法做乘法, 这说明BA不存在,因为B∈R^{3×4}和A∈R^{2×3}不具有匹配的
列-行维度。矩阵B有4列,而矩阵A有2行。
特殊矩阵
1. 如果行数等于列数,则矩阵是一个方阵。(如果A∈R^{n×n},则A是方阵。)
2. 如果一个方阵除主对角线上的元素外,所有元素都为零,则该方阵是对角矩阵。
示例:
A=[ 2 0 0; 0 1 0; 0 0 −3].
在北太天元中可以用下面的命令生成上面的对角阵:
>> A = diag( [ 2 1 -3] );

3. n×n的对角矩阵,如果所有的对角元素都为1,那么称此矩阵为单位阵,记作为I_{n}。
在北太天元中可以用 eye(n) 来生成单位阵, 例如
>> A = eye(3);

矩阵逆定义
设A是一个n×n矩阵,设I_{n}是n×n单位矩阵。假设存在一个n×n矩阵C,使得
A*C=I_{n}=C*A,
那么称A是可逆的或非奇异的,并且C是A的逆。(我们也说A是C的逆)。
不可逆的矩阵称为奇异矩阵。
为了表示矩阵A的逆,我们使用符号A^{−1},因此AA^{−1}=I_{n},A^{−1}A=I_n。
了解矩阵的逆对于求解变量数量等于方程数量的方程组非常有用。特别地,
假设A是可逆的n×n矩阵,b是R^n中的向量。为了求解矩阵方程Ax=b,我们可以将左边的两边
乘以A−1,得到A^{−1}Ax=A^{−1}b。这简化为I_{n}x=A^{−1}b,或者简单地简化为x=A^{−1}b。
回想一下,矩阵乘法在一般情况下是不可交换的。这就是为什么我们必须在用A^{−1}乘哪一边的问题上保持一致。
在2×2的情况下,你可以证明A=[a b ; c d]的逆由A^{−1}=1/(ad−bc)[ d - b; -c, a ]
给出的。
或者,我们可以使用北太天元命令inv(A)来计算矩阵A的逆。
>> A = [ 1 2 3 ; 9 2 1 ; 2 4 4 ] ;
>> B = inv(A);
>> A*B
>> B*A

特别是,行列式可以告诉我们矩阵是否可逆。行列式的定义和性质通常在线性代数的
课程中涵盖,然而2×2的情况足够简单,2×2矩阵的行列式定义为
det( [a b; c d])=ad−bc。
我们将使用北太天元来计算行列式,将nxn矩阵行列式的定义保留给大学里的线性代数课程再学习。
在北太天元,我们使用命令det(A)来计算矩阵A的行列式。

我们已经在北太天元学习14中用把线性方程组写成矩阵形式来求解,如果方程的个数和
未知数的个数相等时,我们得到系数矩阵是一个方阵。当系数矩阵的行列式不等于零,
我们可以断定线性方程组有唯一解。
例如,你可以输入下面的命令
A = [ 1 2 3 ; 9 2 1 ; 2 4 4 ] %输入一个3x3方阵
x = [ 1; 2 ;3 ] % 输入一个R^3的向量
b = A*x % 计算矩阵乘以向量
A(:,1)*x(1) + A(:,2)*x(2) + A(:,3)*x(3) % A的各列的线性组合,系数是x的元素
%对比 A的各列的线性组合和 A*x 的乘积得到b,二者是相等的
A\b % 对比 A\b的结果和 x 的值,二者是相等的。
