Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂

摘要:
使用该模块,我们可以计算逆矩阵,找到特征值,求解线性方程,并求解行列式。为了对矩阵运算进行数值分析,我们需要引入一些向量和矩阵“大小”的度量。范数是向量和矩阵的度量,它实际上是二维和三维向量长度概念的推广。向量范数范数理论的一个小推论告诉我们:1≥ 2.≥ ∞ 矩阵范数范数汇总再版地址http://blog.csdn.net/u011361880/article/details/73527229矩阵行列式方阵的逆矩阵、伴随矩阵和逆矩阵运算属性代码#-*-编码:utf-8-*-“”CreatedonSatJul2915:33:392017@author:管理员om。兰特(5,5)inv_ a=净现值。invdet_ a=np.linag。detdet_ inv_ A=np。最终的detprintprinta=np。随机的rand(3,3)printprintprint(“#############解决AXB=C?
转自:https://blog.csdn.net/qq_30138291/article/details/76327051   老师课堂总结,请勿转载 Numpy中的核心线性代数工具

numpy.linalg模块包含线性代数的函数。使用这个模块,我们可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。

求解矩阵的范数

在实数域中,数的大小和两个数之间的距离是通过绝对值来度量 的。在解析几何中,向量的大小和两个向量之差的大小是 “长度 ” 和 “ 距 离 ”的概念来度量的。为了对矩阵运算进行数值分析,我们需要对向量 和矩阵的 “大小 ”引进某种度量。范数是绝对值概念的自然推广。

"范数 "是对向量和矩阵的一种度量,实际上是二维和三维 向量长度概念的一种推广.

向量范数

Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第1张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第2张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第3张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第4张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第5张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第6张

范数理论的一个小推论告诉我们:ℓ1≥ℓ2≥ℓ∞

矩阵的范数

Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第7张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第8张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第9张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第10张

范数汇总

转载地址http://blog.csdn.net/u011361880/article/details/73527229

Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第11张

矩阵行列式
Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第12张
方阵的逆矩阵

Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第13张

Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第14张

Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第15张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第16张

伴随矩阵

Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第17张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第18张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第19张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第20张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第21张

逆矩阵运算性质

Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第22张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第23张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第24张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第25张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第26张Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂第27张

代码
  1.  
    # -*- coding: utf-8 -*-
  2.  
    """
  3.  
    Created on Sat Jul 29 15:33:39 2017
  4.  
     
  5.  
    @author: Administrator
  6.  
    """
  7.  
     
  8.  
    import numpy as np
  9.  
     
  10.  
    print("###########向量范数#########")
  11.  
    print("向量为:",[1,5,6,3,-1])
  12.  
    print("1范数:",np.linalg.norm([1,5,6,3,-1],ord = 1),"向量元素绝对值之和")
  13.  
    print("2范数:",np.linalg.norm([1,5,6,3,-1],ord = 2),"向量元素绝对值的平方和再开方")
  14.  
    print("无穷范数:",np.linalg.norm([1,5,6,3,-1],ord = np.inf),"所有向量元素绝对值中的最大值")
  15.  
     
  16.  
    print("###########矩阵范数#########")
  17.  
    a = np.arange(12).reshape(3,4)
  18.  
    print("矩阵a为:")
  19.  
    print(a)
  20.  
    print("F范数",np.linalg.norm(a,ord = 'fro'),"矩阵元素绝对值的平方和再开平方")
  21.  
    print("1范数",np.linalg.norm(a,ord = 1),"列和范数,即所有矩阵列向量绝对值之和的最大值")
  22.  
    print("2范数",np.linalg.norm(a,ord = 2),"谱范数,即ATA矩阵的最大特征值的开平方")
  23.  
    print("无穷范数",np.linalg.norm(a,ord = np.inf),"行和范数,即所有矩阵行向量绝对值之和的最大值")
  24.  
     
  25.  
     
  26.  
    print("###########行列式#########")
  27.  
    a = np.arange(1,17).reshape(4,-1)
  28.  
    print("矩阵a为")
  29.  
    print(a)
  30.  
    print("a的行列式为:",np.linalg.det(a))
  31.  
     
  32.  
    print("###########逆矩阵np.linalg.inv()#########")
  33.  
    a = np.array([[1,-1],[1,1]])
  34.  
    b = np.array([[1/2,1/2],[-1/2,1/2]])
  35.  
    print("矩阵相乘为单位矩阵E:")
  36.  
    print(np.dot(a,b))
  37.  
     
  38.  
    print("###########伴随矩阵#########")
  39.  
    print(a)
  40.  
    det_a = np.linalg.det(a)
  41.  
    print("a的行列式为:",det_a)
  42.  
    inv_a = np.linalg.inv(a)####求a的逆矩阵
  43.  
    print("a的逆矩阵为:",inv_a)
  44.  
    print("a的伴随矩阵为:")
  45.  
    bansui = det_a*inv_a
  46.  
    print(bansui)
  47.  
    print("验证:",np.dot(bansui,a))
  48.  
     
  49.  
    print("###########A与A逆行列式#########")
  50.  
    a = np.random.rand(5,5)
  51.  
    inv_a = np.linalg.inv(a)
  52.  
    det_a = np.linalg.det(a)
  53.  
    det_inv_a = np.linalg.det(inv_a)
  54.  
    print(det_a*det_inv_a)
  55.  
     
  56.  
    print("###########矩阵的幂matrix_power()#########")
  57.  
    a = np.random.rand(3,3)
  58.  
    print(a)
  59.  
    print(np.linalg.matrix_power(a,2))
  60.  
     
  61.  
    print("###########求解AXB=C?#########")
  62.  
    a = np.array([[1,2,3],[2,2,1],[3,4,3]])
  63.  
    b = np.array([[2,1],[5,3]])
  64.  
    c = np.array([[1,3],[2,0],[3,1]])
  65.  
    det_a = np.linalg.det(a)
  66.  
    det_b = np.linalg.det(b)
  67.  
    inv_a = np.linalg.inv(a)
  68.  
    inv_b = np.linalg.inv(b)
  69.  
    if det_a != 0:
  70.  
    if det_b !=0:
  71.  
    x = np.dot(np.dot(inv_a,c),inv_b)
  72.  
    print(x)
  1.  
    ###########向量范数#########
  2.  
    向量为: [1, 5, 6, 3, -1]
  3.  
    1范数: 16.0 向量元素绝对值之和
  4.  
    2范数: 8.48528137424 向量元素绝对值的平方和再开方
  5.  
    无穷范数: 6.0 所有向量元素绝对值中的最大值
  6.  
    ###########矩阵范数#########
  7.  
    矩阵a为:
  8.  
    [[ 0 1 2 3]
  9.  
    [ 4 5 6 7]
  10.  
    [ 8 9 10 11]]
  11.  
    F范数 22.4944437584 矩阵元素绝对值的平方和再开平方
  12.  
    1范数 21.0 列和范数,即所有矩阵列向量绝对值之和的最大值
  13.  
    2范数 22.4092981633 谱范数,即ATA矩阵的最大特征值的开平方
  14.  
    无穷范数 38.0 行和范数,即所有矩阵行向量绝对值之和的最大值
  15.  
    ###########行列式#########
  16.  
    矩阵a为
  17.  
    [[ 1 2 3 4]
  18.  
    [ 5 6 7 8]
  19.  
    [ 9 10 11 12]
  20.  
    [13 14 15 16]]
  21.  
    a的行列式为: 4.73316543133e-30
  22.  
    ###########逆矩阵np.linalg.inv()#########
  23.  
    矩阵相乘为单位矩阵E:
  24.  
    [[ 1. 0.]
  25.  
    [ 0. 1.]]
  26.  
    ###########伴随矩阵#########
  27.  
    [[ 1 -1]
  28.  
    [ 1 1]]
  29.  
    a的行列式为: 2.0
  30.  
    a的逆矩阵为: [[ 0.5 0.5]
  31.  
    [-0.5 0.5]]
  32.  
    a的伴随矩阵为:
  33.  
    [[ 1. 1.]
  34.  
    [-1. 1.]]
  35.  
    验证: [[ 2. 0.]
  36.  
    [ 0. 2.]]
  37.  
    ###########A与A逆行列式#########
  38.  
    1.0
  39.  
    ###########矩阵的幂matrix_power()#########
  40.  
    [[ 0.66673632 0.24542188 0.24331174]
  41.  
    [ 0.81223569 0.41511886 0.20157493]
  42.  
    [ 0.07107783 0.64497704 0.29675985]]
  43.  
    [[ 0.66117181 0.42244142 0.28390083]
  44.  
    [ 0.89304891 0.50167529 0.34112338]
  45.  
    [ 0.59235659 0.47658948 0.23537168]]
  46.  
    ###########求解AXB=C?#########
  47.  
    [[ -2. 1.]
  48.  
    [ 10. -4.]
  49.  
    [-10. 4.]]

免责声明:文章转载自《Numpy入门学习之(二)linalg库----向量范数、矩阵范数、行列式、矩阵逆、幂》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇2019年北航OO第二单元(多线程电梯任务)总结客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHP二维数组如何根据某个字段排序

分享下PHP二维数组如何根据某个字段排序的方法。 从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组...

R数据挖掘 第二篇:基于距离评估数据的相似性和相异性

聚类分析根据对象之间的相异程度,把对象分成多个簇,簇是数据对象的集合,聚类分析使得同一个簇中的对象相似,而与其他簇中的对象相异。相似性和相异性(dissimilarity)是根据数据对象的属性值评估的,通常涉及到距离度量。相似性(similarity)和相异性(dissimilarity)是负相关的,统称为临近性(proximity)。 在聚类分析中,聚类...

61 相机投影原理、相机模型中的坐标系统以及标定方法

0 引言   世界坐标系下的点如何投影到CCD镜头上,通过成像的方式得到点在二维图像上的像素坐标值,这是摄影测量中的一个基础而核心的问题。这个问题中核心的东西有两个:1、坐标系的定义及其空间转换矩阵  2、成像中的误差 下面将从这两个角度对这个问题进行详细探讨。文章参考了 # 陈建平: 《相机成像原理》PPThttps://blog.csdn.net/...

PHP 如何获取二维数组中某个key的集合(高性能查找)

分享下PHP 获取二维数组中某个key的集合的方法。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'email' => 'zhangsan@sina.com', ), 1 => a...

矩阵方程的计算求解(Matlab实现)

一、Lyapunov方程的计算求解1、连续Lyapunov方程连续Lyapunov方程可以表示为: AX + XA* = -C % 其中A*是A的转置1Lyapunov方程源于微分方程稳定性理论,其中要求-C为对称正定的nxn矩阵,从而可以证明解X亦为nxn对称矩阵。Lyapunov类的方程求解是很困难的,可以利用Matlab控制系统工具箱中提供的lyap...

移植UE4的Spline与SplineMesh组件到Unity5

一个月前,想开始看下UE4的源码,刚开始以为有Ogre1.9与Ogre2.1源码的基础 ,应该还容易理解,把源码下起后,发现我还是想的太简单了,UE4的代码量对比Ogre应该多了一个量级,毕竟Ogre只是一个渲染引擎,而UE4包含渲染,AI,网络,编辑器等等,所以要理解UE4的源码,应该带着目地去看,这样容易理解。 在看UE4提供的ContentExamp...