向量:指具有大小和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的量叫做数量,数量只有大小,没有方向;

范数:是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小;

 

 

向量的1范数:向量的各元素的绝对值之和

向量范数计算_范数

||X||₁ = |1| + |-2| + |3| + |4| = 10

代码1:

Array(1,-2,3,4).map(abs(_)).sum


代码2:

norm(DenseVector(1,-2,3,4),1)

 

向量的2范数:向量的各元素的平方之和再开平方根

向量范数计算_范数_02

||X||₂ = (1x1 + -2x-2 + 3x3 + 4x4)^(1/2)  = 5.477225575051661

代码1:

math.sqrt(
Array(1,-2,3,4).map(v=>{
math.pow(v,2)
}).sum)


代码2:

norm(DenseVector(1,-2,3,4),2)

 

向量的P范数:向量的各元素的P次方之和再开P次方根

向量范数计算_向量_03

||X||p = (|1|^p + |-2|^p + |3|^p + |4|^p)^(1/p) 

代码1:

math.pow(
Array(1,-2,3,4).map(v=>{
math.pow(abs(v),3)
}).sum
,1.0/3)


代码2:

norm(DenseVector(1,-2,3,4),3)

 

向量的负无穷范数:向量的各元素的绝对值中最小的

向量范数计算_向量_04

||X||-∞ = [1,-2,3,-4] = 1

代码1:

Array(1,-2,3,-4).map(abs(_)).min



向量的正无穷范数:向量的各元素的绝对值中最大的

向量范数计算_范数_05

||X||∞ = [1,-2,3,-4] = 4

代码1:

Array(1,-2,3,-4).map(abs(_)).maxArray(1,-2,3,-4).map(abs(_)).max