当前位置: 首页 > 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.lryc.cn/news/612758.html

相关文章:

  • agno fastapi对外接口案例
  • 北京JAVA基础面试30天打卡04
  • Node.js特训专栏-实战进阶:21.Nginx反向代理配置
  • 使用Spring Boot + Angular构建安全的登录注册系统
  • 剧本杀小程序系统开发:推动社交娱乐产业创新发展
  • GitCode 7月:小程序积分商城更名成长中心、「探索智能仓颉!Cangjie Magic 体验有奖征文活动」圆满收官、深度对话栏目持续热播
  • qt系统--事件
  • OpenAI推出开源GPT-oss-120b与GPT-oss-20b突破性大模型,支持商用与灵活部署!
  • Numpy科学计算与数据分析:Numpy数组操作入门:合并、分割与重塑
  • 水库大坝安全监测系统主要概述
  • Python 数据类型及数据类型转换
  • Python Socket 脚本深度解析与开发指南
  • 目标检测数据集 - 自动驾驶场景道路异常检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • Jenkins全链路教程——Jenkins用户权限矩阵配置
  • 东莞立晟精密硅胶科技有限公司将携重磅产品亮相 AUTO TECH China 2025 广州国际汽车技术展
  • oracle 11G安装大概率遇到问题
  • 计算机网络:固定网络位长度子网划分flsm和可变长子网掩码划分vlsm的区别
  • QT项目 -仿QQ音乐的音乐播放器(第五节)
  • 全局异常处理器
  • [特殊字符] 未来图钉式 AI 时代的智能生态布局:副脑矩阵与人机共振的系统构想
  • Linux->信号
  • 如何在 VS Code 中进行 `cherry-pick`
  • 计算机毕业设计java疫情防控形势下的高校食堂订餐管理系统 高校食堂订餐管理系统在疫情防控背景下的设计与实现 疫情防控期间高校食堂线上订餐管理平台
  • 【已解决】-bash: mvn: command not found
  • 2025数字马力一面面经(社)
  • [优选算法专题一双指针——两数之和](双指针和哈希表)
  • git branch -a无法查看最新的分支
  • 垃圾桶满溢识别准确率↑32%:陌讯多模态融合算法实战解析
  • 计算机基础·linux系统
  • 一篇文章入门TCP与UDP(保姆级别)