1、向量范数
1-范数
各个元素的绝对值之和
2-范数
每个元素的平方和再开平方根
无穷范数
p-范数
正无穷范数
负无穷范数
2、矩阵范数
1-范数
所有矩阵列向量绝对值之和的最大值
2-范数
其中为的特征值,矩阵的最大特征值开平方根
无穷范数
矩阵的每一行上的元素绝对值先求和,再从中取个最大的,(行和最大)
核范数
矩阵的奇异值(将矩阵svd分解)之和,这个范数可以用来低秩表示(因为最小化核范数,相当于最小化矩阵的秩——低秩)
Matlab代码:JZhfs=sum(svd(A))
L0范数
矩阵的非0元素的个数,通常用它来表示稀疏,L0范数越小0元素越多,也就越稀疏。
L1范数
矩阵中的每个元素绝对值之和,它是L0范数的最优凸近似,因此它也可以近似表示稀疏
Matlab代码:JZL1fs=sum(sum(abs(A)))
F范数
矩阵的各个元素平方之和再开平方根,它通常也叫做矩阵的L2范数,它的有点在它是一个凸函数,可以求导求解,易于计算
Matlab代码:JZFfs=norm(A,'fro')
L21范数
矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后再将得到的结果求L1范数(也可认为是向量的1范数),很容易看出它是介于L1和L2之间的一种范数
Matlab代码:JZL21fs=norm(A(:,1),2) + norm(A(:,2),2) + norm(A(:,3),2)++ norm(A(:,4),2)
clear all;clc;
%% 求向量的范数
X=[2, 3, -5, -7]; %初始化向量X
XLfs1=norm(X,1); %向量的1-范数
XLfs2=norm(X,2); %向量的2-范数
XLfsz=norm(X,inf); %向量的正无穷范数
XLfsf=norm(X,-inf); %向量的负无穷范数
%% 求矩阵的范数
A=[2, 3, -5, -7;
4, 6, 8, -4;
6, -11, -3, 16]; %初始化矩阵A
JZfs1=norm(A,1); %矩阵的1-范数
JZfs2=norm(A,2); %矩阵的2-范数
JZfswq=norm(A,inf); %矩阵的无穷范数
JZhfs=sum(svd(A)); %矩阵的核范数
JZL1fs=sum(sum(abs(A)));% 矩阵的L1范数
JZFfs=norm(A,'fro'); %矩阵的F范数
JZL21fs=norm(A(:,1),2) + norm(A(:,2),2) + norm(A(:,3),2)++ norm(A(:,4),2);% 矩阵的L21范数