矩阵和向量的各种范数(定义 + 例题)

这篇具有很好参考价值的文章主要介绍了矩阵和向量的各种范数(定义 + 例题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 矩阵和向量的各种范数

定义

矩阵的不同范数的定义如下:

1. 1范数(L1范数):矩阵的每一列的绝对值之和中的最大值。

2. 2范数(L2范数):矩阵的特征值中的最大值的平方根。

3. 无穷范数:矩阵的每一行的绝对值之和中的最大值。

4. F范数(Frobenius范数):矩阵的每个元素的平方和的平方根。

对于向量的不同范数的定义如下:

1. 0范数:向量中非零元素的个数。

2. 1范数(L1范数):向量的每个元素的绝对值之和。

3. 2范数(L2范数):向量的每个元素的平方和的平方根。

4. 无穷范数:向量中绝对值最大的元素。

例题

1.求矩阵的[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]的1范数、2范数、无穷范数、F范数。求向量x=(-1, 2, 4)^T的0范数,1范数,2范数和无穷范数。 首先给出具体的计算公式,然后给出实现代码和基于代码的计算结果

计算公式: 略

实现代码:文章来源地址https://www.toymoban.com/news/detail-755381.html

import numpy as np
# 定义矩阵
matrix = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# 1范数
norm_1 = np.linalg.norm(matrix, ord=1)
# 2范数
norm_2 = np.linalg.norm(matrix, ord=2)
# 无穷范数
norm_inf = np.linalg.norm(matrix, ord=np.inf)
# F范数
norm_F = np.linalg.norm(matrix, ord='fro')
# 输出
print(f"矩阵的1范数:{norm_1}")
print(f"矩阵的2范数:{norm_2}")
print(f"矩阵的无穷范数:{norm_inf}")
print(f"矩阵的F范数:{norm_F}")

# 定义向量
vector = np.array([-1, 2, 4])
# 0范数
norm_0 = np.count_nonzero(vector)
# 1范数
norm_1 = np.linalg.norm(vector, ord=1)
# 2范数
norm_2 = np.linalg.norm(vector, ord=2)
# 无穷范数
norm_inf = np.linalg.norm(vector, ord=np.inf)
# 输出
print(f"向量的0范数:{norm_0}")
print(f"向量的1范数:{norm_1}")
print(f"向量的2范数:{norm_2}")
print(f"向量的无穷范数:{norm_inf}")

2.求向量x=(4,2,4,3)^T的0范数,1范数,2范数和无穷范数。自动生成一个3行列的矩阵,求矩阵的1-范数、2-范数、无穷-范数、F-范数。首先给出具体的计算公式,然后给出实现代码和基于代码的计算结果。

计算公式:略

实现代码:

import numpy as np

# 定义向量x
x = np.array([4, 2, 4, 3])

# 计算不同范数
norm_0 = np.count_nonzero(x)
norm_1 = np.sum(np.abs(x))
norm_2 = np.linalg.norm(x)
norm_inf = np.max(np.abs(x))

print(f"向量x的0范数:{norm_0}")
print(f"向量x的1范数:{norm_1}")
print(f"向量x的2范数:{norm_2}")
print(f"向量x的无穷范数:{norm_inf}")

# 生成一个3x3的随机矩阵M
M = np.random.rand(3, 3)

# 计算不同范数
norm_1 = np.max(np.sum(np.abs(M), axis=0))
norm_2 = np.sqrt(np.max(np.linalg.eigvals(M.T @ M)))
norm_inf = np.max(np.sum(np.abs(M), axis=1))
norm_F = np.linalg.norm(M, ord='fro')

print(f"矩阵M的1范数:{norm_1}")
print(f"矩阵M的2范数:{norm_2}")
print(f"矩阵M的无穷范数:{norm_inf}")
print(f"矩阵M的F范数:{norm_F}")

3.随机初始化一个10维向量,求向量的0范数,1范数,2范数和无穷范数。求矩阵[[5, 1, 0, -2], [2, 0, 3, 1], [4, 1, 2, 5], [0, -3, 1, 2]]的1-范数、2-范数、无穷范数、F-范数。首先给出具体的计算公式,然后给出实现代码和基于代码的计算结果。

计算公式:略

实现代码:

random_vector = np.random.rand(10)

# 计算不同范数
norm_0 = np.count_nonzero(random_vector)
norm_1 = np.sum(np.abs(random_vector))
norm_2 = np.linalg.norm(random_vector)
norm_inf = np.max(np.abs(random_vector))

print(f"随机向量的0范数:{norm_0}")
print(f"随机向量的1范数:{norm_1}")
print(f"随机向量的2范数:{norm_2}")
print(f"随机向量的无穷范数:{norm_inf}")

# 定义矩阵
matrix = np.array([[5, 1, 0, -1], [2, 0, 3, 1], [4, 1, 2, 5], [0, -3, 1, 2]])

# 计算不同范数
norm_1 = np.max(np.sum(np.abs(matrix), axis=0))
norm_2 = np.sqrt(np.max(np.linalg.eigvals(matrix.T @ matrix)))
norm_F = np.linalg.norm(matrix, ord='fro')

print(f"矩阵的1范数:{norm_1}")
print(f"矩阵的2范数:{norm_2}")
print(f"矩阵的F范数:{norm_F}")

到了这里,关于矩阵和向量的各种范数(定义 + 例题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用python实现矩阵和向量的范数(包括一范数,二范数,无穷范数)

    首先,导入需要用到的库: 创建一个矩阵和一个向量并输出: 计算矩阵的第一范数: 计算矩阵的第二范数: 计算矩阵的无穷范数: 计算向量的第一范数: 计算向量的第二范数: 计算向量的无穷范数: 完整代码如下:

    2024年04月22日
    浏览(35)
  • 3.3 向量与矩阵的范数

      要学习向量与矩阵的范数,我会采取以下几个步骤: 了解基本概念:首先,我会了解向量和矩阵的范数的基本概念和定义,以及它们的性质和特点,这是理解和掌握范数的基础。 学习具体算法:其次,我会学习具体的算法和计算方法,如计算向量的L1、L2、无穷范数,计算

    2023年04月22日
    浏览(31)
  • 向量与矩阵范数的详细解读

    L0范数:向量中非零元素的个数,也称为0范数 L1范数:为绝对值之和,也称为范数或者1范数 L2范数:通常意义上的模,也称为2范数 p范数:即向量元素绝对值的 p p p 次方和的 1 / p 1/p 1/ p 次幂 ∞ infty ∞ 范数:取向量的最大值 − ∞ -infty − ∞ 范数:取向量的最小值 假设有

    2024年02月09日
    浏览(41)
  • <3>【深度学习 × PyTorch】必会 线性代数 (含详细分析):点积 | 矩阵-向量积 | Hadamard积 | 矩阵乘法 | 范数/矩阵范数

      拍照的意义在于你按下快门的那一刻,万里山河的一瞬间变成了永恒。   🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌟[2] 2022年度博客之星人工智能领域TOP4🌟   🏅[3] 阿里云社区特邀专家博主🏅   🏆[4] CSDN-人工智能领域

    2024年02月05日
    浏览(53)
  • shader中,向量的三种乘法

    总结一下 两个向量的元素相乘、点乘和叉乘可以使用内建的GLSL(OpenGL Shading Language)函数进行计算。以下是如何在Cocos的GLSL着色器中实现这些操作: 元素相乘(Element-wise multiplication): 点乘(Dot product): 对于3D向量: 叉乘(Cross product)

    2024年02月09日
    浏览(29)
  • 【数值计算方法(黄明游)】解线性代数方程组的迭代法(一):向量、矩阵范数与谱半径【理论到程序】

       注意:速读可直接跳转至“4、知识点总结”及“5、计算例题”部分   当涉及到线性代数和矩阵理论时, 向量、矩阵范数以及谱半径 是非常重要的概念,下面将详细介绍这些内容: a. 定义及性质   考虑一个 n n n 维向量 x x x ,定义一个实值函数 N ( x ) N(x) N ( x ) ,

    2024年01月25日
    浏览(46)
  • 1.矩阵的三种不变因子

    本文主要介绍多项式矩阵的基本概念和等价,用于为相似标准型进行铺垫 此处将由数组成的矩阵拓展为以多项式为元的矩阵,即多项式矩阵 【定义】多项式矩阵的秩 设 A ( λ ) ∈ F [ λ ] m × n , A ( λ ) ≠ 0 A(lambda)in F[lambda]^{mtimes n},A(lambda)neq0 A ( λ ) ∈ F [ λ ] m × n , A

    2024年01月20日
    浏览(38)
  • Vue定义全局组件的三种方式

    第一种方式 1.1使用 Vue.extend 来创建全局的Vue组件 1.2使用 Vue.component(‘组件的名称’, 创建出来的组件模板对象) Vue.component 第一个参数:组件的名称,引用组件的时候,就是一个HTML 标签形式来引入的 第二个参数: Vue.extend 创建的组件 ,其中 template 就是组件将来要展示的HTML内容 1

    2024年02月07日
    浏览(48)
  • C++入门学习(三十)一维数组的三种定义方式

    数组是什么? 数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处

    2024年02月19日
    浏览(44)
  • 【微信小程序】使用自定义字体的三种方法

    小程序官方提供的接口,最便捷的加载字体的方法,不过限制颇多。必须https且同源,canvas等原生组件不支持。注意!!使用本地文件无效,必须使用网络地址。 官方文档:wx.loadFontFace(Object object) | 微信开放文档 演示代码: 传统的css规则,跟loadFontFace限制一样,必须https且同

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包