python求逆矩阵的方法,Python 如何求矩阵的逆

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

import numpy as np

kernel = np.array([1, 1, 1, 2]).reshape((2, 2))

print(kernel)

print(np.linalg.inv(kernel))

b14af8225d2bac426e6d5a932815669f.png

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

79116c75da0ce332071a1ed3e9b55986.png

补充: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函数这种。

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

时间: 2021-03-09

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

liunx php的项目地址,在 Linux 配置 PHP 项目

在 Linux 配置 PHP 项目一, 搭建测试环境软件环境:(PHP 项目)PHP5.4Apache(httpd2.4)mysql5.7二, 安装1挂载:1. 把 iso 的镜像文件放到虚拟机 Linux 的 CD/ROM(在右下角 (网络适配器 / 桥接模式) 旁有个光盘, 点击连接, 之后页面出现一个光盘)2. 使用挂载命令, 把 CD/ROM 设备里…

php中改变函数路由,通过PHP重启路由器以更换IP(原创)

在采集大批量数据时常常会触发对方服务器的“自我保护”,请求过于频繁就限制访问。这时需要停留很长一段时间(十几分钟到几十分钟不等)才能恢复访问,这样采集数据的速度就受到非常大的限制。解决方法有两个:1 通过图片识别绕过验证码机制&…

krpano 场景切换 通知_一个基于Vulkan的异步场景加载设计

异步场景加载基本流程验证完成。此方法理论上只需要使用3个Vulkan的指令队列。对于移动平台上的Vulkan,指令队列数量极少,比如Adreno640只有3个指令队列可用。所以理论上这一设计也适合目前的移动平台使用。(1) graphic_queue:用于完成当前场…

如何查询linux服务器的网卡,Linux服务器如何查看有没有无线网卡

还是实验室那台服务器,连不上网。有没有界面,所以想着如何用一些命令来链接上热点。当然,在Linux下链接wifi没有win下那么一点就好了!首先我们需要的基本条件就是: 服务器上有无线网卡。[roottomato2 ~]# iwconfiglo n…

python的多行语句可以使用反斜杠_python 为什么不用分号作终止符?

作者:豌豆花下猫 来源:Python猫一般而言,编程语言中使用分号“;”来实现两种目的:作为语句分隔符:使用分号来分隔语句(statement),这样就能在一行代码中书写多条语句(一行…

linux svn 备份脚本,SVN热备份脚本

SVN热备份脚本2011-08-03 徐磊#!/bin/sh########################################################## Script to do incremental rsync backups# modidfy: wanjie.info# date: 2010/06/04# 这个脚本不是xulei写的,我只是拿来主义,当然如果大家看不明白…

linux 关闭scp服务器,Linux系统如何关闭scp和sftp命令

Linux系统如何关闭scp和sftp命令。sftp介绍sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能scp介绍两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方…

linux db2 归档,DB2的归档模式设置方法

当做在线备份,即加上online参数后,可以看到如下告警:[db2inst1localhost backup]$ db2 backup db sample online to /dev/nullSQL2413N Online backup is not allowed because the database is not recoverableor a backup pending condition…

css提取页面元素唯一性_下面这个函数,能够获取一个元素的任意 CSS 属性值。...

在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如下:1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属性中的值(style”…”),而无…

linux+cp+-rdf,简单构建基于RDF和SPARQL的KBQA(知识图谱问答系统)

本文主要通过python实例讲解基于RDF和SPARQL的KBQA系统的构建。该项目可在python2和python3上运行通过。注:KBQA即是我们通常所说的基于知识图谱的问答系统。这里简单构建的EasyKBQA,数据来源于网络,源码地址看下面补充说明。目录&#xff1a…

变形监测期末复习_寒假即将来临,中小学期末考试时间是什么时候?

2019年下学期也快结束,各个区的中小学考试时间安排已经公布了。今年,初二将首次进行全市统考,统考的意义重大,希望家长们可以督促孩子们重视起来,考出好成绩!下面,让我们来看一下2019下学期深圳各区中小学期…

为什叫c语言,为什么c语言叫c语言?

1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。1973年初,C语言的主体完成。Thompson和Ritchie用它完全重写了UNIX。随着UNIX的发展&…

gddr6速率_Rambus展示18GT/s的GDDR6内存子系统:高频信号纯净度仍然非常好

Rambus最近展示了他们最新的GDDR6内存子系统,把传输速率提升到了18GT/s,而目前的市场上的GDDR6显存多为14GT/s,少数为16GT/s,18GT/s对于Rambus和GDDR6来说都是一个新的记录。在18GT/s的传输速率下,单颗位宽为32-bit的G…

株洲c语言培训机构,株洲好就业的学c语言程序设计,计算机专业地址

株洲好就业的学c语言程序设计衡阳市潇湘职业中等专业学校是由衡阳市教育主管,在衡阳校区的基础上设置的一所综合性全日制中等职业学校。坐落在国内优秀旅游城市、国内高新技术产业基地、名人辈出的全国历史文化名城-----衡阳市。我校依托长沙医校院,实现…

er图外键怎么表示_本周话题:取消考研复试最能实现相对公平?你怎么看?

2020取消研究生复试的呼声越来越高?考研er们:压力太大!近日,红网作者李诗元的一篇《取消考研复试最能实现相对公平》引起热议国家线的出台和调剂系统5月20日的才开的通知让大家直接炸开了郭就山西大学来说 往年都是调剂生和一志愿…

append 后如何删除_如何在STATA中合并数据文件呢?

❝作者:江小白邮箱:jieresearch163.com❞我们在使用stata进行数据分析时,可能涉及多个数据文档的合并操作或者同时使用不同数据集中的多个变量,这都需要我们进行文档间不同变量的归并。例如,我们需要使用CFPS(中国家庭…

linux 内网怎么安装git环境_linux 安装go环境

官网下载安装包The Go Programming Language​golang.google.cngo1.4.linux-amd64.tar.gz解压:tar -C /usr/local -zxvf go1.4.linux-amd64.tar.gz添加环境变量:export PATH$PATH:/usr/local/go/bin安装完成输入go测试安装成功,写个简单的代码…

cups支持的打印机列表_Win10“Microsoft Print to PDF”虚拟打印机不见了,如何找回?...

MS酋长很早以前在介绍Windows10的新功能时,就提到过《Win10原生支持把文件转换成PDF格式》,该功能实际上是基于“Microsoft Print to PDF”虚拟打印机来实现的。当你点击打印时,在打印机列表中就可以看到“Microsoft Print to PDF”虚拟打印机…

循环队列的进队算法c语言,循环队列的定义,入队算法,出队算法,遍历算法,及其代码实现-Go语言中文社区...

队列 的定义:一种可以是实现“先进先出”的存储结构。数据的进出类似于排队购票。队只允许队尾一端(rear)添加,在另一端队头(front)删除。队有队头(front)和队尾(rear)两个指针。队头front指向第一个元素,队尾rear指向无实际意义的元素&#…

java office文件加水印_文档预览加水印——或可一用的防泄密方式

给文件加水印是常见的一种宣示版权的方式。像Office、WPS都自带加水印功能,能够给文档加上"保密"、"严禁复制"这样的水印。在多可系统中,也有这么一个添加水印的功能。启用该功能后,在使用HTML5预览时,多可系…