norm 函数的基本功能
`norm` 函数可以接受多种参数形式,最常见的是针对向量和矩阵的操作:
1. 对向量使用 `norm`
当 `norm` 用于向量时,它默认计算的是欧几里得范数(Euclidean Norm),也就是我们常说的向量的长度:
```matlab
v = [3, 4];
length_v = norm(v); % 返回值为5,因为sqrt(3^2 + 4^2) = 5
```
你也可以指定不同的范数类型,比如:
- `p=1` 表示计算向量的一范数(绝对值之和)
- `p=inf` 表示计算向量的无穷范数(最大元素的绝对值)
```matlab
v = [-1, 2, -3];
one_norm = norm(v, 1); % 返回6,即|-1| + |2| + |-3|
inf_norm = norm(v, inf); % 返回3,即max(|-1|, |2|, |-3|)
```
2. 对矩阵使用 `norm`
当 `norm` 用于矩阵时,它可以计算矩阵的不同范数:
- 默认情况下,`norm(A)` 计算的是矩阵的最大奇异值(即谱范数)。
- 如果指定 `p=1`,则计算的是列范数(列向量的最大一范数)。
- 如果指定 `p=2` 或省略 `p`,则计算的是谱范数。
- 如果指定 `p=inf`,则计算的是行范数(行向量的最大一范数)。
```matlab
A = [1, 2; 3, 4];
spectral_norm = norm(A); % 返回最大奇异值
column_norm = norm(A, 1); % 返回列向量的最大一范数
row_norm = norm(A, inf); % 返回行向量的最大一范数
```
应用场景
`norm` 函数在很多领域都有广泛应用,例如信号处理、机器学习、图像处理等。在这些领域中,它通常用来衡量数据的变化范围或者误差的大小。
例如,在机器学习中,L2 范数常被用来作为正则化项,以防止模型过拟合:
```matlab
lambda = 0.01;
weights = [0.5, -0.3, 0.8];
regularization_term = lambda norm(weights)^2;
```
总结
`norm` 函数是 MATLAB 中一个强大且灵活的工具,能够帮助用户快速计算向量或矩阵的范数。通过合理选择参数,你可以实现各种不同类型的范数计算,从而满足不同的需求。掌握这个函数对于从事科学计算和数据分析的人来说是非常重要的。