【发布时间】: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