四种范数及其matlab代码实现

范数与条件数

矩阵范数(Matrix Norm)是用来衡量矩阵大小的一种数值量度。它有很多种定义方式,下面简要讲解四种常见的矩阵范数,以及对应的条件数(Condition Number)。

一阶范数(1-norm):

一阶范数,也称为列和范数,是矩阵各列向量绝对值之和的最大值。对于一个m×n矩阵A,其一阶范数定义为:
‖A‖₁ = max(∑|aᵢⱼ|) (i从1到m,j从1到n)
条件数:K₁(A) = ‖A‖₁ · ‖A⁻¹‖₁

二阶范数(2-norm):

二阶范数,也称为谱范数,是矩阵A的奇异值的最大值。对于一个m×n矩阵A,其二阶范数定义为:
‖A‖₂ = σ₁(A) (σ₁表示A的最大奇异值)
条件数:K₂(A) = ‖A‖₂ · ‖A⁻¹‖₂

无穷范数(∞-norm):

无穷范数,也称为行和范数,是矩阵各行向量绝对值之和的最大值。对于一个m×n矩阵A,其无穷范数定义为:
‖A‖∞ = max(∑|aᵢⱼ|) (i从1到m,j从1到n)
条件数:K∞(A) = ‖A‖∞ · ‖A⁻¹‖∞

F范数(Frobenius norm):

F范数,也称为弗罗贝尼乌斯范数,是矩阵各元素平方之和的平方根。对于一个m×n矩阵A,其F范数定义为:
‖A‖F = √(∑|aᵢⱼ|²) (i从1到m,j从1到n)
条件数:KF(A) = ‖A‖F · ‖A⁻¹‖F

范数的用途与求法

这里的条件数是用来衡量矩阵的病态程度,即矩阵对输入向量的扰动如何影响输出向量的扰动。条件数越大,矩阵越病态,数值计算可能出现较大误差。
各种矩阵范数有不同的用途,主要用于衡量矩阵的大小、稳定性和病态程度,以及在数值计算、优化问题和线性代数等领域的应用。

一阶范数(1-norm):

一阶范数主要用于衡量矩阵列向量的大小。在某些优化问题中,使用1范数可以产生稀疏解。
MATLAB求解一阶范数:

A = [ ... ]; % 输入你的矩阵
norm_A_1 = norm(A, 1);

二阶范数(2-norm):

二阶范数主要用于衡量矩阵的大小和稳定性。在机器学习和优化问题中,使用2范数可以得到平滑解。

A = [ ... ]; % 输入你的矩阵
norm_A_2 = norm(A, 2);

无穷范数(∞-norm):

无穷范数主要用于衡量矩阵行向量的大小。在某些优化问题中,使用∞范数可以得到特定性质的解。

A = [ ... ]; % 输入你的矩阵
norm_A_inf = norm(A, inf);

F范数(Frobenius norm):

F范数主要用于衡量矩阵整体元素的大小。在矩阵近似、压缩和机器学习中经常使用F范数。

A = [ ... ]; % 输入你的矩阵
norm_A_F = norm(A, 'fro');

对应的条件数可以使用MATLAB的cond函数求解:

A = [ ... ]; % 输入你的矩阵
cond_A_1 = cond(A, 1);
cond_A_2 = cond(A, 2);
cond_A_inf = cond(A, inf);
cond_A_F = cond(A, 'fro');
posted @   klpsn  阅读(2871)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示