控制系统/矩阵运算
矩阵必须是兼容的大小才能使运算有效
- 加法
- 矩阵必须具有相同的维度(相同行数,相同列数)。矩阵加法是可交换的
- 乘法
- 矩阵必须具有相同的内部维度(第一个矩阵的列数必须等于第二个矩阵的行数)。例如,如果矩阵 A 为 n × m,矩阵 B 为 m × k,那么我们可以乘以
- 其中 C 为 n × k 矩阵。矩阵乘法不可交换
- 由于不可交换,必须区分“左乘”和“右乘”。
- 除法
- 在矩阵代数中没有除法,尽管乘以矩阵的逆矩阵执行相同的基本功能。要找到逆矩阵,矩阵必须是非奇异的,并且必须具有非零行列式。
矩阵的转置,用
表示,是将 X 的行和列互换得到的矩阵。在某些情况下,矩阵的转置用
表示。当在单个等式中对大量矩阵使用上标 T 时,这种简写表示法会使用,否则表示法会变得过于拥挤。当本书中使用这种表示法时,导数将用
矩阵的行列式是一个标量值。它类似于标量的绝对值
如果矩阵是方阵,并且矩阵的行列式不为零,则矩阵具有逆矩阵。
矩阵 A 的逆矩阵,我们在这里用“B”表示,是任何满足以下等式的矩阵
具有这种伴随矩阵的矩阵被称为“可逆矩阵”或“非奇异矩阵”。没有满足此等式的逆矩阵的矩阵称为“奇异矩阵”或“不可逆矩阵”。
逆矩阵可以用多种不同的方法计算
- 将矩阵 A 与相同大小的单位矩阵拼接。使用行变换使矩阵的左侧成为单位矩阵。拼接矩阵的右侧将是逆矩阵
- 逆矩阵由伴随矩阵除以行列式给出。伴随矩阵是伴随矩阵的转置。
- 逆矩阵可以从凯莱-哈密尔顿定理计算。
矩阵的特征值,用希腊字母 lambda λ 表示,是矩阵特征方程的解
特征值仅存在于方阵中。非方阵没有特征值。如果矩阵 X 是实矩阵,特征值将全部为实数,或者将存在复共轭对。
矩阵的特征向量是特征方程的零空间解
对于每个不同的特征值,至少存在一个不同的特征向量。特征向量的倍数也是特征向量。然而,线性无关的特征值被称为“非不同”特征向量,可以忽略。
左特征向量是特征方程的右手零空间解
这些也是逆转换矩阵的行。
在重复特征值的情况下,可能不存在与这些特征值相关的完整的一组 *n* 个不同特征向量(右或左特征向量)。广义特征向量可以按如下方式生成
由于广义特征向量是相对于另一个特征向量或广义特征向量形成的,因此它们构成一个有序集,并且不应该在该顺序之外使用。
变换矩阵是所有特征向量或广义特征向量有序集的矩阵
逆转换矩阵是左特征向量的矩阵
通过乘以转换矩阵,可以对矩阵进行对角化
或
如果矩阵有一组不完整的特征向量,因此有一组广义特征向量,则该矩阵无法对角化,但可以转换为约旦标准型
MATLAB 编程环境专门为矩阵代数和操作而设计。以下是关于如何在 MATLAB 中操作矩阵的简要复习
- 加法
- 要将两个矩阵加在一起,请使用加号(“+”)
C = A + B;
- 乘法
- 要将两个矩阵相乘,请使用星号(“*”)
C = A * B;
- 如果您的矩阵尺寸不正确,MATLAB 将发出错误。
- 转置
- 要查找矩阵的转置,请使用单引号(“’”)
C = A';
- 行列式
- 要查找行列式,请使用det函数
d = det(A);
- 逆矩阵
- 要查找矩阵的逆矩阵,请使用函数inv
C = inv(A);
- 特征值和特征向量
- 要查找矩阵的特征值和特征向量,请使用eig命令
[E, V] = eig(A);
- 其中 E 是一个方阵,其对角线条目是 A 的特征值,而 V 是由相应的特征向量组成的矩阵。如果特征值不不同,则特征向量将重复。MATLAB 不会计算广义特征向量。
- 左特征向量
- 要查找左特征向量,假设存在一组完整的不同右特征向量,我们可以取特征向量矩阵的逆矩阵
[E, V] = eig(A); C = inv(V);
C 的行将是矩阵 A 的左特征向量。
有关 MATLAB 的更多信息,请参阅维基教科书MATLAB 编程。