向量:指具有大小和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的量叫做数量,数量只有大小,没有方向;
范数:是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小;
向量的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范数:向量的各元素的平方之和再开平方根
||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次方根
||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) |
向量的负无穷范数:向量的各元素的绝对值中最小的
||X||-∞ = [1,-2,3,-4] = 1
代码1:
Array(1,-2,3,-4).map(abs(_)).min |
向量的正无穷范数:向量的各元素的绝对值中最大的
||X||∞ = [1,-2,3,-4] = 4
代码1:
Array(1,-2,3,-4).map(abs(_)).maxArray(1,-2,3,-4).map(abs(_)).max |
原文:https://blog.51cto.com/u_15261296/2883251