进行范数分析——使用norm函数

  1. 什么是范数
    根据线性代数的知识,某个向量 x=(x1,x2,……,xn)\textbf{x}=(x_1, x_2, ……,x_n )x=(x1,x2,……,xn),其对应的p级范数为∣∣x∣∣p=(∑i=1n∣xi∣p)1/p||x||_p = (\sum_{i=1}^{n} |x_i|^{p})^{1/p}∣∣xp=(i=1nxip)1/p, 并且有
    ∣∣A∣∣∞=max⁡1≤i≤n∣xi∣||A||_{\infty} = \max_{1 \leq i \leq n} |x_i|∣∣A=1inmaxxi
    ∣∣A∣∣−∞=min⁡1≤i≤n∣xi∣||A||_{-\infty} = \min_{1 \leq i \leq n} |x_i| ∣∣A=1inminxi
    矩阵范数是基于向量范数的,具体表达式为:
    ∣∣A∣∣=max⁡∀≠0∣∣Ax∣∣∣∣x∣∣ ||\textbf A||=\max_{\forall \not = 0} \frac{||\textbf A x||}{||x||} ∣∣A∣∣==0max∣∣x∣∣∣∣Ax∣∣
    在实际应用中,常用的1阶和2阶以及∞\infty阶范数,定义如下:∣∣A∣∣1=max⁡1≤i≤n∑i=1n∣aij∣||\textbf A||_1 =\max_{1 \leq i \leq n} \sum_{i=1}^{n} |a_{ij}|∣∣A1=1inmaxi=1naij ∣∣A∣∣2=Smax(ATA)||\textbf A||_2 = \sqrt{S_{max} (A^{T}A)}∣∣A2=Smax(ATA) ∣∣A∣∣∞=max⁡1≤i≤n∑j=1n∣aij∣||\textbf A||_{\infty} = \max_{1 \leq i \leq n} \sum_{j=1}^{n} |a_{ij}| ∣∣A=1inmaxj=1naij
    其中Smax(ATA)S_{max} (A^{T}A)Smax(ATA)表示的是矩阵A的最大奇异值的平方。以后的文章再说这个怎么求。
  2. 求解向量范数和矩阵范数的命令是什么?
    n=norm(A)n=norm(A)n=norm(A), 计算向量或者矩阵的2阶范数。
    n=norm(A,p)n=norm(A,p)n=norm(Ap), 计算向量或者矩阵的p阶范数。
    其中,当求的是无穷阶范数时,可以将p设置为inf或者-inf.
  3. 有范数运算的例子吗?
clc;
x = [1:6];% 输入向量
y = x.^2; % 计算平方
N2 = sqrt(sum(y));  % 使用定义求解2阶范数
Ninf = max(abs(x)); % 使用定义求解正无穷阶范数
Nvinf = min(abs(x)); % 使用定义求解负无穷阶范数

n2 = norm(x);         % 使用函数求解2阶范数
ninf = norm(x,inf);   % 使用函数求解正无穷阶范数
nvinf = norm(x,-inf); % 使用函数求解正无穷阶范数

disp('The method of definition:') % disp函数:可以直接将要显示的字符放入括号中,进行表达。
fprintf('The 2-norm is %6.4f\n', N2)
fprintf('The inf-norm is %6.4f\n', Ninf)
fprintf('The misusinf-norm is %6.4f\n', Nvinf)
fprintf('\n//----------------------------------------//\n\n')

fprintf('The 2-norm is %6.4f\n', n2)
fprintf('The inf-norm is %6.4f\n', ninf)
fprintf('The misusinf-norm is %6.4f\n', nvinf)

标题

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐