python求矩阵范数_[数值计算] 向量和矩阵范数

  • Post author:
  • Post category:python


1. 向量范数

1.1 定义:一个从向量空间V到实数空间的映射,且满足以下条件


  • ,且
  • 对于任意实数


    ,有
  • 满足三角不等式,

根据三角不等式还可以证明 逆三角不等式:

1.2 常见范数

最常见的是欧几里得范数(

2-范数

2-范数是p-范数的一个特例

p-范数的一个特例是

∞-范数

,即绝对值最大的元素的绝对值

例子,对于向量


,调用python的np.linalg.norm(x,p)函数来计算p-范数,可以发现随着p值增大,p-范数越来越来越接近∞-范数

574a4d3a4ddb3db815228da34f2b1e8f.png
Credit to http://iacs-courses.seas.harvard.edu/courses/am205/slides/am205_lec06.pdf

对于

1-范数

,计算结果是对向量的每个元素的绝对值求和。

1.3 Are all norms created equal?

虽然不同的范数给出的值会不一样,但在一个有限维度的空间


里,所有的范数都是等价的。等价的意思是,对于两个不同的范数


,任意一个在

内的向量

,都存在一组正常数

使得

根据这个性质,很容易在证明一个范数的不等式后,推广到任意范数。

对一些特殊的情况,可以直接计算出


,比如1-范数和2-范数。
  • 下界比较容易证明

  • 通过Cauchy-Schwarz不等式得到上界

  • 结合上面两条

1.4 可视化

n=2时,另


,画出轮廓。p=1时候是菱形,p=2是圆形,p=6是圆角矩形,p=∞是方形。

f80750341f7b1875aae935e103f44321.png
Credit to https://ncatlab.org/nlab/show/p-norm

对于渲染voronoi图或者机器学习的时候,使用不同范数将获得不同的边界。下图展示了离两个固定点距离相同的点组成的边界,范数定义不同,边界也不同。2-范数最简单,一直是垂直平分线,1-范数和∞-范数都存在折线,而且随着两固定点连线和x轴夹角的变化,会出现边界突变的情况。另外,这三个范数绘制的边界都经过2-范数定义的中点。有兴趣可以试下p>2时候的情况。

e3fad994a81e3cd676abf10592cb548c.png
Credit to 我自己!(画了老半天)

2. 矩阵范数

2.1 Frobenius范数

2.2 通过向量定义的矩阵范数(通常最有用)

一条可以根据定义证明的性质是:

另外,1-范数和∞-范数可以直接给出形式:

1-范数是最大的列(绝对值)求和,∞-范数是最大的行(绝对值)求和



版权声明:本文为weixin_30662937原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。