MATLAB norm()函数:求范数(附带实例)
在 MATLAB 中,利用 norm() 函数可以求解向量和矩阵的范数,其调用格式如下:
【实例】根据定义和利用函数分别求解向量的范数。在命令行窗口中输入以下语句,并查看输出结果。
1) 根据定义求解各阶范数:
2) 使用 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 函数得到的结果完全相同。