首页 > 解决方案 > MATLAB 函数 norm() 有什么作用?

问题描述

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

同样在文档中,它说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

标签: matlabnormalization

解决方案


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


推荐阅读