前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见向量范数和矩阵范数及其MATLAB实现

常见向量范数和矩阵范数及其MATLAB实现

作者头像
狼啸风云
修改2022-09-04 22:15:24
7.4K0
修改2022-09-04 22:15:24
举报

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-范数。  比如:

代码语言:javascript
复制
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取共轭(各项实部不变,虚部取相反数),然后再转置,比如:

代码语言:javascript
复制
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的特征值方法如下:

代码语言:javascript
复制
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作验证如下:

代码语言:javascript
复制
>> 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-范数即对矩阵最大特征值开方,如下:

代码语言:javascript
复制
>> [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-范数的方法,如下:

代码语言:javascript
复制
>> norm_2 = norm(A,2)
norm_2 =
   16.8481

两种方法计算出的结果是一样的。

∞-范数(行和范数)

和1-范数(列和范数)类似,这里是沿行方向取绝对值求和,将最大的那个值作为矩阵的∞-范数。matlab代码如下:

代码语言:javascript
复制
>> 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。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年01月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、向量范数
  • 2、矩阵范数
  • 1-范数(列和范数)
  • 2-范数(最大特征值开方)
  • 2-1 共轭转置矩阵
  • 2-3 矩阵的2-范数
  • ∞-范数(行和范数)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档