MATLAB如何进行矩阵计算(详细代码+解读+彻底说明)

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

  1. 什么是范数
    根据线性代数的知识,某个向量 x = ( x 1 , x 2 , … … , x n ) \textbf{x}=(x_1, x_2, ……,x_n ) x=(x1,x2,……,xn),其对应的p级范数为 ∣ ∣ x ∣ ∣ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 / p ||x||_p = (\sum_{i=1}^{n} |x_i|^{p})^{1/p} ∣∣xp=(i=1nxip)1/p, 并且有
    ∣ ∣ A ∣ ∣ ∞ = max ⁡ 1 ≤ i ≤ n ∣ x i ∣ ||A||_{\infty} = \max_{1 \leq i \leq n} |x_i| ∣∣A=1inmaxxi
    ∣ ∣ A ∣ ∣ − ∞ = min ⁡ 1 ≤ i ≤ n ∣ x i ∣ ||A||_{-\infty} = \min_{1 \leq i \leq n} |x_i| ∣∣A=1inminxi
    矩阵范数是基于向量范数的,具体表达式为:
    ∣ ∣ A ∣ ∣ = max ⁡ ∀ ≠ 0 ∣ ∣ A x ∣ ∣ ∣ ∣ 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 = 1 n ∣ a i j ∣ ||\textbf A||_1 =\max_{1 \leq i \leq n} \sum_{i=1}^{n} |a_{ij}| ∣∣A1=1inmaxi=1naij ∣ ∣ A ∣ ∣ 2 = S m a x ( A T A ) ||\textbf A||_2 = \sqrt{S_{max} (A^{T}A)} ∣∣A2=Smax(ATA) ∣ ∣ A ∣ ∣ ∞ = max ⁡ 1 ≤ i ≤ n ∑ j = 1 n ∣ a i j ∣ ||\textbf A||_{\infty} = \max_{1 \leq i \leq n} \sum_{j=1}^{n} |a_{ij}| ∣∣A=1inmaxj=1naij
    其中 S m a x ( A T A ) S_{max} (A^{T}A) Smax(ATA)表示的是矩阵A的最大奇异值的平方。以后的文章再说这个怎么求。
  2. 求解向量范数和矩阵范数的命令是什么?
    n = n o r m ( A ) n=norm(A) n=norm(A), 计算向量或者矩阵的2阶范数。
    n = n o r m ( 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)

标题

你可能感兴趣的:(matlab,矩阵,机器学习)