1、向量范数
1-范数:,即向量元素绝对值之和,matlab调用函数norm(x, 1) 。
2-范数:,Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方,matlab调用函数norm(x, 2)。
∞-范数:,即所有向量元素绝对值中的最大值,matlab调用函数norm(x, inf)。
-∞-范数:,即所有向量元素绝对值中的最小值,matlab调用函数norm(x, -inf)。
p-范数:,即向量元素绝对值的p次方和的1/p次幂,matlab调用函数norm(x, p)。
2、矩阵范数
1-范数:, 列和范数,即所有矩阵列向量绝对值之和的最大值,matlab调用函数norm(A, 1)。
2-范数:,谱范数,即A'A矩阵的最大特征值的开平方。matlab调用函数norm(x, 2)。
∞-范数:,行和范数,即所有矩阵行向量绝对值之和的最大值,matlab调用函数norm(A, inf)。
F-范数:,Frobenius范数,即矩阵元素绝对值的平方和再开平方,matlab调用函数norm(A, ’fro‘)。
下面是解释和理解。
1-范数(列和范数)
将矩阵沿列方向取绝对值求和,然后擢选出数值最大的那个值作为1-范数。
比如:
-
A =
-
-
1
2
3
-
4
5
6
-
7
8
9
-
-
>> norm_1 = norm(A,
1)
-
-
norm_1 =
-
-
18
第一列求和结果为:|1|+|4|+|7|=12
第二列求和结果为:|2|+|5|+|8|=15
第三列求和结果为:|3|+|6|+|9|=18
里面最大的就是18,因此矩阵A的列和范数为18。
2-范数(最大特征值开方)
这一部分涉及到的我不懂的概念比较多,接下来一一说明。
2-1 共轭转置矩阵
指的是A的共轭转置矩阵,也有这个写法。如果A里面全是实数,那效果就与无二;如果A里面也有复数,则是先对A取共轭(各项实部不变,虚部取相反数),然后再转置,比如:
-
A
=
-
-
1.0000
+
0.
0000i
0.0000
-
2.
0000i
-
3.0000
+
0.
0000i
0.0000
-
4.
0000i
-
-
>>
A'
-
-
ans
=
-
-
1.0000
+
0.
0000i
3.0000
+
0.
0000i
-
0.0000
+
2.
0000i
0.0000
+
4.
0000i
在matlab中A’的意思就是求共轭转置矩阵。
2-2 特征值
矩阵A的特征值被定义为:
其中被称为“矩阵A的特征向量”,λ被称为“矩阵A的特征值”。
在matlab中求解矩阵A的特征值方法如下:
-
A
=
-
-
1
2
3
-
4
5
6
-
7
8
9
-
-
>> [
V,
D]
=
eig(A)
-
-
V
=
-
-
-0.2320
-0.7858
0.4082
-
-0.5253
-0.0868
-0.8165
-
-0.8187
0.6123
0.4082
-
-
D
=
-
-
16.1168
0
0
-
0
-1.1168
0
-
0
0
-0.0000
矩阵V的每一列都是一个特征向量,D中对应列中的值即与该特征向量相匹配的特征值。以上例V、D第一列为例,此时特征值λ=16.1168,特征向量,用matlab作验证如下:
-
>>
A
= [
1,
2,
3
;4,
5,
6
;7,
8,
9]
-
-
A
=
-
-
1
2
3
-
4
5
6
-
7
8
9
-
-
>>
v
= [
-0.2320,
-0.5253,
-0.8187]
'
-
v =
-
-0.2320
-
-0.5253
-
-0.8187
-
>> lambda = 16.1168
-
lambda =
-
16.1168
-
>> A * v
-
ans =
-
-3.7387
-
-8.4667
-
-13.1947
-
>> lambda * v
-
ans =
-
-3.7391
-
-8.4662
-
-13.1948
可知满足。
2-3 矩阵的2-范数
矩阵的2-范数即对矩阵最大特征值开方,如下:
-
>> [
V,
D]
=
eig(A'*A)
-
-
V
=
-
-
-0.4082
-0.7767
0.4797
-
0.8165
-0.0757
0.5724
-
-0.4082
0.6253
0.6651
-
-
D
=
-
-
0.0000
0
0
-
0
1.1414
0
-
0
0
283.8586
-
-
>>
sqrt(283.8586)
-
-
ans
=
-
-
16.8481
(这里最大特征值为283.8586)
当然,matlab中也有更直接的计算矩阵2-范数的方法,如下:
-
>> norm_2 = norm(A,
2)
-
norm_2 =
-
16.8481
两种方法计算出的结果是一样的。
∞-范数(行和范数)
和1-范数(列和范数)类似,这里是沿行方向取绝对值求和,将最大的那个值作为矩阵的∞-范数。matlab代码如下:
-
>>
A
-
-
A
=
-
-
1
2
3
-
4
5
6
-
7
8
9
-
-
>>
norm(A,inf)
-
-
ans
=
-
-
24
第一行求和结果为:|1|+|2|+|3|=6
第二行求和结果为:|4|+|5|+|6|=15
第三行求和结果为:|7|+|8|+|9|=24
里面最大的就是24,因此矩阵A的行和范数为24。