【问题标题】:What does the MATLAB function norm() do?MATLAB 函数 norm() 有什么作用?
【发布时间】:2020-03-17 02:17:13
【问题描述】:

据我所知,norm(X) 用于计算矩阵X 的2-范数。

同样在文档中,它说norm(X) 近似于max(svd(X)),它们确实有相同的结果。

但是,为什么这两个计算不相等,因为它们都是欧几里得范数?

m = [1, 2, 3; 4, 5, 6; 7, 8, 9];
norm(m)  % 16.8481
sum(m.^2, 'all').^0.5  % 16.8819

【问题讨论】:

  • 正如你已经提到的,文档说 norm(X) 近似于 max(svd(X)),根据定义,这意味着它们没有相同的结果!该文档还区分了向量和矩阵的 2 范数。向量的 2 范数是欧几里得范数,表示向量在欧几里得空间中的长度。因此,当计算向量的欧几里得范数时,计算 norm(v)=sum(v.^2)^0.5 是合适的。而对于矩阵则不是。相反 norm(m) 是计算代表 2 范数的最大奇异值 (en.wikipedia.org/wiki/Singular_value)。
  • @mattesyo:这看起来像是一个完整的答案。请考虑这样发布。

标签: matlab normalization


【解决方案1】:

正如您已经提到的,文档中说 norm(X) 近似于 max(svd(X)),根据定义,这意味着它们没有相同的结果!该文档还区分了向量和矩阵的 2 范数。向量的 2 范数是欧几里得范数,表示向量在欧几里得空间中的长度。因此,在计算向量的欧几里得范数时,计算 norm(v)=sum(v.^2)^0.5 是合适的。而对于矩阵则不是。相反 norm(m) 是计算代表 2 范数的最大奇异值 (en.wikipedia.org/wiki/Singular_value)。

【讨论】:

    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2023-03-11
    • 1970-01-01
    • 2018-11-19
    • 2014-05-23
    • 2017-06-19
    相关资源
    最近更新 更多