首页 > 编程笔记 > MATLAB笔记 阅读:2

MATLAB norm()函数:求范数(附带实例)

在 MATLAB 中,利用 norm() 函数可以求解向量和矩阵的范数,其调用格式如下:
n = norm(v)                % 返回向量 v 的欧几里得范数。该范数也称为 2-范数、向量模或欧几里得长度
n = norm(v,p)              % 返回广义向量 p-范数,p ≥ 1
n = norm(X)                % 返回矩阵 X 的 2-范数或最大奇异值,该值近似于 max(svd(X))
n = norm(X,p)              % 返回矩阵 X 的 p-范数,其中 p 为 1、2 或 Inf
n = norm(X,'fro')          % 返回矩阵或数组 X 的 Frobenius 范数
p 表示范数类型,指定为 2(默认值)、正实数标量、Inf 或 -Inf。p 的有效值及其返回的内容取决于 norm 函数的第一个输入为矩阵还是向量,如下表所示:

表:选项说明
p 的取值 矩阵 向量
1 max(sum(abs(X))) sum(abs(v))
2 max(svd(X)) sum(abs(v).^2)^(1/2)
正实数标量 sum(abs(v).^p)^(1/p)
Inf max(sum(abs(X'))) max(abs(v))
-Inf min(abs(v))

【实例】根据定义和利用函数分别求解向量的范数。在命令行窗口中输入以下语句,并查看输出结果。
>> clear
>> x = [1:6];          % 输入向量 x
>> y = x.^2;

1) 根据定义求解各阶范数:
>> N2 = sqrt(sum(y))
N2 =
     9.5394
>> Ninf = max(abs(x))
Ninf =
     6
>> Nvinf = min(abs(x))
Nvinf =
     1

2) 使用 norm 函数求解范数:
>> n2 = norm(x)
n2 =
     9.5394
>> ninf = norm(x,inf)
ninf =
     6
>> nvinf = norm(x,-inf)
nvinf =
     1
由结果可以看出,根据范数定义得到的结果和用 norm 函数得到的结果完全相同。

相关文章