迹运算丨 trace t r a c e
线性代数运用挺多的运算,学习一下。
理论知识
迹运算返回的矩阵对角元素的和:
迹运算因为很多原因而受到关注。若不使用求和符号,有些矩阵运算很难描述,而通过矩阵乘法和迹运算符号,可以清楚地表示。例如,迹运算提供了另一种描述矩阵 Frobenius F r o b e n i u s 范数的方式:
Frobenius 范数,即矩阵元素绝对值的平方和再开平方。范数讲解
用迹运算表示表达式,我们可以使用很多有用的等式来操纵表达式。例如,迹运算在转置运算下是不变的:
多个矩阵乘积的迹,和将这些矩阵中最后一个挪到最前面之后乘积的迹是相同的。当然,我们需要考虑挪动之后矩阵乘积依然定义良好:
即使循环置换后矩阵乘积得到的矩阵形状变了,迹运算的结果依然不变。例如,假设矩阵
A∈Rm×n
A
∈
R
m
×
n
,矩阵
B∈Rn×m
B
∈
R
n
×
m
,我们可以得到:
即使 AB∈Rm×m A B ∈ R m × m 和 BA∈Rn×n B A ∈ R n × n 。
另一个有用的事实是标量在迹运算后仍然是它自己: a=Tr(a) a = T r ( a ) 。
Matlab 实现
定义矩阵A:
% 矩阵a
a=[1,3,4;
3,2,4;
1,1,2]
输入:
% 求迹,主对角线之和
>> trace(a)
ans =
5
% Frobenius 范数
>> norm(a,'fro');
ans =
7.8102
% 上述公式实现
>> sqrt(trace(a*a'))
ans =
7.8102