当前位置: 首页 > news >正文

范数的定义、分类与 MATLAB 应用实践

范数的定义、分类与应用

在数学分析、数值计算及工程应用中,“范数”(Norm)是一个非常重要的概念。范数可以看作是一种“度量工具”,它定义在向量空间或矩阵空间上,用于衡量元素的“大小”或“距离”,是理解空间结构和构建算法的基础。

本文将对范数的定义、常见类型及其应用进行系统性整理和介绍。

一、范数的基本定义

VVV 是一个向量空间,范数是一个函数 ∥⋅∥:V→R\|\cdot\| : V \to \mathbb{R}:VR,满足以下三个公理:

  1. 非负性(Positivity):对于任意 x∈V\mathbf{x} \in VxV,有 ∥x∥≥0\|\mathbf{x}\| \geq 0x0,且仅当 x=0\mathbf{x} = \mathbf{0}x=0 时取等号;
  2. 齐次性(Homogeneity):对任意标量 α\alphaα 和向量 x∈V\mathbf{x} \in VxV,有 ∥αx∥=∣α∣⋅∥x∥\|\alpha \mathbf{x}\| = |\alpha| \cdot \|\mathbf{x}\|αx=αx
  3. 三角不等式(Triangle Inequality):对任意 x,y∈V\mathbf{x}, \mathbf{y} \in Vx,yV,有 ∥x+y∥≤∥x∥+∥y∥\|\mathbf{x} + \mathbf{y}\| \leq \|\mathbf{x}\| + \|\mathbf{y}\|x+yx+y

二、向量范数(Vector Norms)

向量范数用于度量向量在空间中的“长度”或“大小”。最常见的向量范数为 LpL_pLp 范数,定义如下:

∥x∥p=(∑i=1n∣xi∣p)1/p,p≥1 \|\mathbf{x}\|_p = \left( \sum_{i=1}^n |x_i|^p \right)^{1/p}, \quad p \geq 1 xp=(i=1nxip)1/p,p1

1. 常见的 LpL_pLp 范数类型

  • L1L_1L1 范数(曼哈顿距离)

    ∥x∥1=∑i=1n∣xi∣ \|\mathbf{x}\|_1 = \sum_{i=1}^n |x_i| x1=i=1nxi

    例如:x=(3,−4)\mathbf{x} = (3, -4)x=(3,4),其 L1L_1L1 范数为 7。

  • L2L_2L2 范数(欧几里得范数)

    ∥x∥2=∑i=1nxi2 \|\mathbf{x}\|_2 = \sqrt{\sum_{i=1}^n x_i^2} x2=i=1nxi2

    对应于平面几何中常用的距离度量方法,如前例中 L2L_2L2 范数为 5。

  • L∞L_\inftyL 范数(切比雪夫距离)

    ∥x∥∞=max⁡1≤i≤n∣xi∣ \|\mathbf{x}\|_\infty = \max_{1 \le i \le n} |x_i| x=1inmaxxi

    例如:max⁡(∣3∣,∣−4∣)=4\max(|3|, |-4|) = 4max(∣3∣,4∣)=4

2. 其他向量范数

  • 加权范数:引入权重 wi>0w_i > 0wi>0,定义为

    ∥x∥w=(∑i=1nwi∣xi∣p)1/p \|\mathbf{x}\|_w = \left( \sum_{i=1}^n w_i |x_i|^p \right)^{1/p} xw=(i=1nwixip)1/p

  • 核范数(需结合核函数):用于高维映射与特征学习中。

三、矩阵范数(Matrix Norms)

矩阵范数是矩阵空间中的“度量工具”,不仅需满足基本范数公理,还需满足一致性条件
A,BA, BA,B 可乘,则

∥AB∥≤∥A∥⋅∥B∥ \|AB\| \leq \|A\| \cdot \|B\| ABAB

1. 诱导范数(算子范数)

由向量范数引出,用于描述矩阵对向量的最大“拉伸能力”,定义为:

∥A∥p=max⁡x≠0∥Ax∥p∥x∥p \|A\|_p = \max_{\mathbf{x} \neq \mathbf{0}} \frac{\|A\mathbf{x}\|_p}{\|\mathbf{x}\|_p} Ap=x=0maxxpAxp

常见诱导范数包括:

  • L1L_1L1 诱导范数(列和范数)

    ∥A∥1=max⁡j∑i∣Aij∣ \|A\|_1 = \max_j \sum_i |A_{ij}| A1=jmaxiAij

  • L2L_2L2 诱导范数(谱范数)

    ∥A∥2=λmax⁡(ATA) \|A\|_2 = \sqrt{\lambda_{\max}(A^T A)} A2=λmax(ATA)

    即矩阵最大奇异值,广泛用于数值计算与机器学习中。

  • L∞L_\inftyL 诱导范数(行和范数)

    ∥A∥∞=max⁡i∑j∣Aij∣ \|A\|_\infty = \max_i \sum_j |A_{ij}| A=imaxjAij

2. 元素范数(Entrywise Norm)

直接基于矩阵元素定义:

  • Frobenius 范数(F-范数)

    ∥A∥F=∑i,j∣Aij∣2 \|A\|_F = \sqrt{\sum_{i,j} |A_{ij}|^2} AF=i,jAij2

    可视为矩阵元素平方和的平方根,相当于向量化矩阵后的 L2L_2L2 范数。

  • 核范数(nuclear norm)

    ∥A∥∗=∑i=1rσi \|A\|_* = \sum_{i=1}^r \sigma_i A=i=1rσi

    其中 σi\sigma_iσi 为奇异值,常用于低秩矩阵重建和稀疏优化问题。

3. Schatten 范数(奇异值范数)

Schatten 范数定义为:

∥A∥Sp=(∑i=1rσip)1/p \|A\|_{S_p} = \left( \sum_{i=1}^r \sigma_i^p \right)^{1/p} ASp=(i=1rσip)1/p

其中 p=1p = 1p=1 为核范数,p=2p = 2p=2 为Frobenius范数。

四、范数的应用领域

范数在多个学科和工程应用中发挥重要作用:

  • 机器学习与正则化

    • L1L_1L1 正则化用于特征选择与稀疏模型构建(如Lasso);
    • L2L_2L2 正则化用于防止过拟合(如Ridge回归)。
  • 数值分析与矩阵计算
    评估矩阵条件数、控制误差传播。

  • 控制理论与稳定性分析
    Lyapunov函数中使用范数评估系统状态的收敛与发散。

  • 图像处理与信号压缩
    核范数用于图像重建、低秩补全等。

五、小结

范数作为度量空间中“大小”的重要工具,不仅具有清晰的数学结构,还广泛应用于各类实际问题中。掌握不同类型的范数及其性质,有助于我们从更深层次理解线性代数、优化理论和机器学习等领域的核心原理,并在实际工程中选择合适的数学工具来简化问题和提升算法性能。

六、MATLAB代码

以下是使用 MATLAB 求各种常见向量范数与矩阵范数的代码示例,便于你结合理论进行实践验证和计算分析。

✅ 一、向量范数计算

假设有向量 x = [3, -4, 1],可以使用 norm() 函数计算不同范数:

x = [3, -4, 1];% L1 范数(曼哈顿距离)
norm_L1 = norm(x, 1);% L2 范数(欧几里得范数)
norm_L2 = norm(x, 2);% L∞ 范数(切比雪夫范数)
norm_Linf = norm(x, Inf);% Lp 范数(例如 p = 3)
p = 3;
norm_Lp = norm(x, p);% 自定义加权 L2 范数(举例)
w = [0.5, 2, 1]; % 权重
norm_weighted = (sum(w .* abs(x).^2))^(1/2);

✅ 二、矩阵范数计算

假设有矩阵:

A = [1, -2, 3; 4, 0, -1];

1. 诱导范数(基于 norm 函数)

% L1 范数(列和最大值)
norm_A1 = norm(A, 1);% L2 范数(谱范数 / 最大奇异值)
norm_A2 = norm(A, 2);% L∞ 范数(行和最大值)
norm_Ainf = norm(A, Inf);

2. Frobenius 范数

% Frobenius 范数
norm_F = norm(A, 'fro');

3. 核范数(nuclear norm)

% 核范数(奇异值之和)
s = svd(A);
norm_nuclear = sum(s);

4. Schatten p-范数(p = 3 示例)

p = 3;
s = svd(A);
norm_Schatten = (sum(s.^p))^(1/p);

✅ 三、条件数计算(衍生应用)

范数在矩阵条件数计算中也很常见:

% A 的条件数(默认使用 2-范数)
cond_A = cond(A);% A 的1-范数条件数
cond_A1 = cond(A, 1);% A 的∞-范数条件数
cond_Ainf = cond(A, Inf);

✅ 四、小结

名称MATLAB命令备注说明
向量 L1 范数norm(x,1)元素绝对值之和
向量 L2 范数norm(x,2)norm(x)向量欧氏范数
向量 L∞ 范数norm(x,Inf)元素绝对值最大值
矩阵 L1 范数norm(A,1)列绝对值和的最大值
矩阵 L2 范数norm(A,2)最大奇异值(谱范数)
矩阵 L∞ 范数norm(A,Inf)行绝对值和的最大值
Frobenius 范数norm(A,'fro')所有元素平方和开根号
核范数sum(svd(A))奇异值之和
Schatten-p 范数sum(svd(A).^p)^(1/p)奇异值的 LpL_pLp 范数

向量范数对比

% 示例向量
x = [3, -4, 1, 2];% 范数计算
norm_L1     = norm(x, 1);
norm_L2     = norm(x, 2);
norm_Linf   = norm(x, Inf);
norm_L3     = norm(x, 3);
norm_L0p5   = sum(abs(x).^0.5)^(1/0.5);  % L_0.5 伪范数(非真正范数)% 汇总数据
norm_values = [norm_L1, norm_L2, norm_L3, norm_Linf, norm_L0p5];
norm_labels = {'L1', 'L2', 'L3', 'L∞', 'L0.5'};% 绘图
figure;
bar(norm_values);
set(gca, 'XTickLabel', norm_labels, 'FontSize', 12);
ylabel('范数值');
title('不同向量范数对比');
grid on;

在这里插入图片描述

矩阵范数对比

A = [1, -2, 3; 4, 0, -1];
norms = [norm(A,1), norm(A,2), norm(A,Inf), norm(A,'fro'), sum(svd(A))];
labels = {'L1', 'L2', 'L∞', 'Frobenius', 'Nuclear'};figure;
bar(norms);
set(gca, 'XTickLabel', labels, 'FontSize', 12);
ylabel('范数值');
title('不同矩阵范数对比');
grid on;

在这里插入图片描述

http://www.dtcms.com/a/319735.html

相关文章:

  • 解决React白板应用中的画布内容丢失问题
  • 3363. 最多可收集的水果数目
  • 关键字 - 第二讲
  • Spring AI + Redis:构建高效AI应用缓存方案
  • 【物联网】基于树莓派的物联网开发【25】——树莓派安装Grafana与Influxdb无缝集成
  • 在 Linux 系统上安装 Docker 的步骤如下(以 Ubuntu/Debian为例)
  • 前缀和
  • 简洁明了的讲明什么是哈希(hash)函数
  • [激光原理与应用-170]:测量仪器 - 能量型 - 光功率计的工作原理与内部功能模块组成
  • 【第7话:相机模型3】自动驾驶IPM图像投影拼接技术详解及代码示例
  • 直连微软,下载速度达18M/S
  • Mysql 单行函数 聚合函数
  • MySQL聚簇索引与非聚簇索引详解
  • 北京企业数据防泄漏指南:5款适合北方市场的安全加密工具评测
  • 【华为机试】332. 重新安排行程
  • MySQL——黑马
  • STM32U5 周期性异常复位问题分析
  • 【MyQSL】库 表—基操
  • 性能优化——GPU的影响
  • [C++20]协程:语义、调度与异步 | Reactor 模式
  • Kafka原理--主题、分区、消费者的关系
  • windows内核研究(内存管理-线性地址的管理)
  • 【PHP 中的 `use` 关键字完全指南】
  • Linux图文理解进程
  • fiddler实用用法,抓包内容导入到apipos
  • 数据库管理系统:入门需要了解的内容
  • Modbus核心参数,调试工具,接线注意事项
  • Mongodb常用命令简介
  • C++线程库的学习
  • 从Centos 9 Stream 版本切换到 Rocky Linux 9