首页 > 代码库 > p norm

p norm

http://en.wikipedia.org/wiki/Norm

经常会听到p norm的说法,其实很简单,可以看成2范数的扩展,但是有一点需要注意:p的范围是[1, inf)p在(0,1)范围内定义的并不是范数因为违反了三角不等式(||x+y|| <= ||x|| + ||y||)。见下面wikipedia的截图

 

在p范数下定义的unit ball都是凸集(convex set,简单地说,若集合A中任意两点的连线段上的点也在集合A中,则A是凸集),但是当0<p<1时,在该定义下的unit ball并不是凸集(注意:我们没说在该范数定义下,因为如前所述,0<p<1时,并不是范数).下图展示了p取不同值时unit ball的形状

 

技术分享

 

当0<p<1时,上面类似p范数的定义不能对任意两点满足三角不等式,也就是说,存在两点,它们不满足三角不等式。这个论断证明起来很简单,只要找出两个这样的点就行了。

在一维空间中,按照p范数的定义,三角不等式总是成立。于是我们可以考虑在二维空间选点(因为二维空间比较简单),考虑特殊一点的,比如,取x=(0,1), y=(1,0)

||x|| = 1, ||y|| = 1,||x+y|| = 2^(1/p) > 2 == ||x|| + ||y||,这就是一个违反三角不等式的例子,证毕。

对于更高维空间都可以取类似的例子,比如三维就取(0,0,1), (0, 1, 0), (1,0,0)

 

 

--

第一个图是截图后用MyPaint做的标记(红线),这是一个ubuntu(Linux)平台上类似于window画图的工具,比较轻量级,找了我好一会……

p norm