Python 如何求矩阵的逆

作者:Kenn7 时间:2021-07-22 23:28:43 

我就废话不多说了,大家还是直接看代码吧~


import numpy as np
kernel = np.array([1, 1, 1, 2]).reshape((2, 2))
print(kernel)
print(np.linalg.inv(kernel))

Python 如何求矩阵的逆

注意,Singular matrix奇异矩阵不可求逆

Python 如何求矩阵的逆

补充:python+numpy中矩阵的逆和伪逆的区别

定义:

对于矩阵A,如果存在一个矩阵B,使得AB=BA=E,其中E为与A,B同维数的单位阵,就称A为可逆矩阵(或者称A可逆),并称B是A的逆矩阵,简称逆阵。(此时的逆称为凯利逆)

矩阵A可逆的充分必要条件是|A|≠0。

伪逆矩阵是逆矩阵的广义形式。由于奇异矩阵或非方阵的矩阵不存在逆矩阵,但可以用函数pinv(A)求其伪逆矩阵。

基本语法为X=pinv(A),X=pinv(A,tol),其中tol为误差,pinv为pseudo-inverse的缩写:max(size(A))*norm(A)*eps。

函数返回一个与A的转置矩阵A' 同型的矩阵X,并且满足:AXA=A,XAX=X.此时,称矩阵X为矩阵A的伪逆,也称为广义逆矩阵。

pinv(A)具有inv(A)的部分特性,但不与inv(A)完全等同。

如果A为非奇异方阵,pinv(A)=inv(A),但却会耗费大量的计算时间,相比较而言,inv(A)花费更少的时间。

代码如下:

1.矩阵求逆


import numpy as np
a = np.array([[1, 2], [3, 4]]) # 初始化一个非奇异矩阵(数组)
print(np.linalg.inv(a)) # 对应于MATLAB中 inv() 函数
# 矩阵对象可以通过 .I 求逆,但必须先使用matirx转化
A = np.matrix(a)
print(A.I)

2.矩阵求伪逆


import numpy as np
# 定义一个奇异阵 A
A = np.zeros((4, 4))
A[0, -1] = 1
A[-1, 0] = -1
A = np.matrix(A)
print(A)
# print(A.I) 将报错,矩阵 A 为奇异矩阵,不可逆
print(np.linalg.pinv(A)) # 求矩阵 A 的伪逆(广义逆矩阵),对应于MATLAB中 pinv() 函数

这就是矩阵的逆和伪逆的区别

截至2020/10/4,matrix函数还可以使用,但已经过时,应该是mat函数这种。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://blog.csdn.net/kane7csdn/article/details/84555209

标签:Python,矩阵,求逆
0
投稿

猜你喜欢

  • Oracle 存储过程总结(一、基本应用)

    2024-01-24 22:25:53
  • jQuery入门之–属性(一)

    2009-07-12 15:29:00
  • Python爬虫beautifulsoup4常用的解析方法总结

    2022-09-01 11:58:54
  • 浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求

    2023-03-30 14:35:25
  • 快速创建python 虚拟环境

    2023-10-04 08:58:31
  • 详解Java使用JDBC连接MySQL数据库

    2024-01-24 18:21:06
  • 详解Python中string模块除去Str还剩下什么

    2021-08-25 12:48:19
  • Centos7安装和配置Mysql5.7

    2024-01-21 12:02:22
  • Python基于文件内容实现查找文件功能

    2022-04-13 11:17:47
  • python SVD压缩图像的实现代码

    2023-04-18 18:23:30
  • python实现查找excel里某一列重复数据并且剔除后打印的方法

    2021-01-23 10:27:45
  • MySQL高并发生成唯一订单号的方法实现

    2024-01-28 00:27:38
  • mysql5.x升级到mysql5.7后导入之前数据库date出错的快速解决方法

    2024-01-22 10:09:17
  • PHP实现图片批量打包下载功能

    2024-05-11 09:47:21
  • JavaScript实现日期格式化的方法汇总

    2024-04-10 16:19:04
  • mysql中limit的用法深入分析

    2024-01-21 17:28:17
  • django ListView的使用 ListView中获取url中的参数值方式

    2022-06-17 10:41:57
  • Python学习笔记之变量与转义符

    2022-12-20 23:21:18
  • 利用Python制作简易的核酸检测日历

    2022-02-04 00:55:53
  • Python selenium如何设置等待时间

    2023-08-31 18:53:39
  • asp之家 网络编程 m.aspxhome.com