-
2022-05-06 00:10:53
4X4矩阵求逆:
import numpy as np A = np.mat("1 2 3 0; 4 5 6 0; 9 8 10 0;0 0 0 1") print("A\n", A) inverse = np.linalg.inv(A) print("inverse: \n", inverse)
更多相关内容 -
python求矩阵的逆
2020-08-21 15:30:22可用于求解希尔密码密钥的逆矩阵,根据逆矩阵与密文相乘再mod 26计算出明文 -
python求矩阵逆、伪逆、转置、矩阵乘法
2022-06-02 11:34:17python求矩阵逆、伪逆、转置、矩阵乘法1. python求矩阵的转置
G1 = np.transpose(G)
>>> import numpy as np >>> G = np.array([[1,0,0,1],[0,1,0,-1],[0,0,1,1]]) >>> G1=np.transpose(G) >>> G1 array([[ 1, 0, 0], [ 0, 1, 0], [ 0, 0, 1], [ 1, -1, 1]])
2. python求矩阵乘法
G2 = np.dot(G,G1)
>>> import numpy as np >>> G = np.array([[1,0,0,1],[0,1,0,-1],[0,0,1,1]]) >>> G1=np.transpose(G) >>> G1 array([[ 1, 0, 0], [ 0, 1, 0], [ 0, 0, 1], [ 1, -1, 1]]) >>> G2 = np.dot(G,G1) >>> G2 array([[ 2, -1, 1], [-1, 2, -1], [ 1, -1, 2]])
3. python求矩阵的逆
G3 = np.linalg.inv(G2)
>>> import numpy as np >>> G = np.array([[1,0,0,1],[0,1,0,-1],[0,0,1,1]]) >>> G1=np.transpose(G) >>> G1 array([[ 1, 0, 0], [ 0, 1, 0], [ 0, 0, 1], [ 1, -1, 1]]) >>> G2 = np.dot(G,G1) >>> G2 array([[ 2, -1, 1], [-1, 2, -1], [ 1, -1, 2]]) >>> G3 = np.linalg.inv(G2) >>> G3 array([[ 0.75, 0.25, -0.25], [ 0.25, 0.75, 0.25], [-0.25, 0.25, 0.75]])
4. python求矩阵的伪逆
K = np.linalg.pinv(J)
>>> import numpy as np >>> J = np.array([[1,0,0,1],[1,1,0,0],[0,1,1,0],[0,0,1,1]]) >>> K = np.linalg.pinv(J) >>> K array([[ 0.375, 0.375, -0.125, -0.125], [-0.125, 0.375, 0.375, -0.125], [-0.125, -0.125, 0.375, 0.375], [ 0.375, -0.125, -0.125, 0.375]])
5 python求解矩阵的特征值
B = np.linalg.eigvals(A)
>>> A = np.mat("0 0 0; -1 1 -1; 1 -1 1") >>> A matrix([[ 0, 0, 0], [-1, 1, -1], [ 1, -1, 1]]) >>> B = np.linalg.eigvals(A) >>> B array([2., 0., 0.])
6 python求解矩阵的特征值和特征向量
B,C = np.linalg.eig(A)
>>> A = np.array([[1,0,-1,0],[0,1,0,-1],[-1,0,1,0],[0,-1,0,1]]) >>> A array([[ 1, 0, -1, 0], [ 0, 1, 0, -1], [-1, 0, 1, 0], [ 0, -1, 0, 1]]) >>> B,C = np.linalg.eig(A) >>> B array([2., 0., 2., 0.]) >>> C array([[ 0.70710678, 0.70710678, 0. , 0. ], [ 0. , 0. , 0.70710678, 0.70710678], [-0.70710678, 0.70710678, 0. , 0. ], [ 0. , 0. , -0.70710678, 0.70710678]])
注: 这是返回单位化的特征向量
-
Python 如何求矩阵的逆
2021-04-27 08:32:27我就废话不多说了,大家还是直接看代码吧~import numpy as npkernel = np.array([1, 1, 1, 2]).reshape((2, 2))print(kernel)print(np.linalg.inv(kernel))注意,Singular matrix奇异矩阵不可求逆补充:python+numpy...我就废话不多说了,大家还是直接看代码吧~
import numpy as np
kernel = np.array([1, 1, 1, 2]).reshape((2, 2))
print(kernel)
print(np.linalg.inv(kernel))
注意,Singular matrix奇异矩阵不可求逆
补充: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
-
Python求矩阵的逆矩阵
2020-12-06 16:43:34import numpy as np A = np.matrix([[1,2,3],[4,5,6],[7,8,9]]) B = np.array([1,2,3,4,5,6,7,8,9]).reshape((3,3)) print(A) print(B) print("*" * 50) print(np.linalg.inv(A)) print(np.linalg.inv(B)) ...import numpy as np A = np.matrix([[1,2,3],[4,5,6],[7,8,9]]) B = np.array([1,2,3,4,5,6,7,8,9]).reshape((3,3)) print(A) print(B) print("*" * 50) print(np.linalg.inv(A)) print(np.linalg.inv(B))
结果为:
[[1 2 3] [4 5 6] [7 8 9]] [[1 2 3] [4 5 6] [7 8 9]] ************************************************** [[ 3.15251974e+15 -6.30503948e+15 3.15251974e+15] [-6.30503948e+15 1.26100790e+16 -6.30503948e+15] [ 3.15251974e+15 -6.30503948e+15 3.15251974e+15]] [[ 3.15251974e+15 -6.30503948e+15 3.15251974e+15] [-6.30503948e+15 1.26100790e+16 -6.30503948e+15] [ 3.15251974e+15 -6.30503948e+15 3.15251974e+15]]
-
python求逆矩阵
2021-09-28 18:37:13方法1: from numpy import * import numpy as np A=np.array([[1,2],[3,4]]) B=np.linalg.inv(A) print(B) print(np.dot(B,A)) 方法2: from numpy import * ...print(a2*a1) -
【20211125】【Python】Python求逆矩阵
2021-11-25 19:07:47假定有方阵A,求 A 的逆矩阵。Python 中使用 numpy 库函数命令实现。 import numpy as np A_1 = np.linalg.inv(A) # 逆矩阵(奇异矩阵没有逆矩阵,不可以用此命令计算) A_2 = np.linalg.pinv(A) # 伪逆矩阵... -
python/sympy求解矩阵方程的方法
2020-09-19 23:43:29今天小编就为大家分享一篇python/sympy求解矩阵方程的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
Python求方阵的逆矩阵与求非方阵的伪逆矩阵
2022-03-17 14:25:59在Python中,无论是求方阵的逆矩阵,还是求非方阵的伪逆矩阵,都有现成的模块可供调用 -
09-30:Python矩阵求逆
2021-01-12 09:01:35A的逆等于U的逆乘于L的逆,L的逆就利用下三角矩阵求逆算法进行求解,U的逆可以这样求:先将U转置成下三角矩阵,再像对L求逆一样对U的转置求逆,再将得到的结果转置过来,得到的就是U的逆。因此,关键是下三角矩阵的... -
短小精悍算例: 用Python求矩阵的秩和逆矩阵
2021-02-26 01:02:401、用Python求解矩阵的秩 import numpy as np a = np.array([[1, 2, 3], [3, 5, 6], [1, 3, 5]]) ...2、用Python求解矩阵的逆矩阵 # 求逆矩阵 print(np.linalg.inv(a)) 结果: array([[ 7., -1., -3.], [- -
python实现简单的求矩阵的逆
2020-04-04 01:31:14#模26运算下,求矩阵的逆。 #使用伴随矩阵求逆矩阵法。 #整个精度保持在整数位(方便求模运算)。 import numpy as np list_A1 = [] #目标矩阵A1 A1 = np.array([[3,13,21,9],[15,10,6,25],[10,17,4,8],[1,23,7,... -
Python中求矩阵的逆
2018-11-26 19:48:25import numpy as np kernel = np.array([1, 1, 1, 2]).reshape((2, 2)) print(kernel) print(np.linalg.inv(kernel)) 注意,Singular matrix奇异矩阵不可求逆 -
关于python矩阵求逆和矩阵相关 - 从0开始的re&&pwn 01
2021-11-19 15:53:08python矩阵求逆及矩阵相乘,求解,和矩阵转化等有关矩阵 -
python实现求矩阵行列式、求逆矩阵等各种矩阵操作(不使用numpy包)
2021-03-20 20:10:32矩阵A第i行第j列元素的余矩阵 p=len(A)#矩阵的行数 q=len(A[0])#矩阵的列数 C=[[A[x][y] for y in ... #按第一行展开递归求矩阵的行列式 p=len(A)#矩阵的行数 q=len(A[0])#矩阵的列数 if(p==1 and q==1): retur -
利用python求行列式、矩阵的秩和逆
2022-05-27 21:58:061.求行列式的值 import numpy as np ''' 计算 | 2 1 2 1| | 3 0 1 1| | -1 2 -2 1| | -3 2 3 1| 的行列式的值 ''' arr = np.array([[2, 1, 2, 1], [3, 0, 1, 1], [-1, 2, -2, 1], [-3, 2, 3, 1]]) print(np.... -
python求一个矩阵的逆矩阵、转置矩阵。将一个列表转化成矩阵。
2021-10-19 21:44:391.python中把一个列表转化成一个矩阵。(两种方法) import numpy as np a = np.array([[1, 2], [3, 4]]) # 初始化一...2.pyhon中求一个矩阵的逆矩阵。(两种求逆矩阵的方式) 3.python中求一个矩阵的转置矩阵 ... -
python 求矩阵的转置矩阵
2018-11-01 16:32:151:导入包numpy from numpy import * 2: 创建矩阵 A = mat([[1,2,0],[3,5,9]]) 3: 求逆矩阵 B = A.T -
Python笔试题之蛇形矩阵:
2020-12-21 23:40:45输入一个正整数N(N不大于100),输出一个n行的蛇形矩阵。 示例输入: 5 示例输出: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 解法一: while True: try: N = int(input()) tmp_begin = 1 # 第一行的数 for i in ... -
python中大值矩阵的矩阵求逆
2020-12-10 18:52:00我在python中做矩阵求逆,结果因数据规模不同而不同,这很奇怪。在在下面的代码中,预计A_inv/B_inv=B/A,但它表明A_inv/B_inv与B/A之间的差异随着数据规模的增大而越来越大。。。这是因为Python不能精确计算大值... -
python简单实现矩阵的乘,加,转置和逆运算示例
2020-09-19 02:57:03主要介绍了python简单实现矩阵的乘,加,转置和逆运算,结合实例形式分析了Python针对矩阵的乘,加,转置和求逆等运算相关实现技巧,需要的朋友可以参考下 -
python求向量和矩阵的范数、求矩阵的逆
2021-12-29 23:49:24np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数。 函数参数 x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False) import numpy as np a = np.array([[1, 2], [3, 4]... -
Python将矩阵的乘法与稀疏矩阵的逆相加
2020-12-19 10:32:12我正在尝试计算形式K = P * C.T * S ^ -1(卡尔曼滤波器的实现)的表达式所有涉及的矩阵都是稀疏的,我当然希望避免计算实际的逆矩阵.我试过用import scipy.sparse.linalg as splnself.K = self.P.dot(spln.spsolve(S.T... -
python-使用numpy的矩阵逆
2020-11-22 16:23:17使用python和numpy进行矩阵求逆:>>> import numpy as np>>> b = np.array([[2,3],[4,5]])>>> np.linalg.inv(b)array([[-2.5, 1.5],[ 2. , -1. ]])并非所有矩阵都可以求逆。 例如,奇异矩阵是不可逆的:>>> import ... -
Python 带变量矩阵求逆
2022-03-21 12:42:06import sympy from sympy import * t= symbols('t') px1, py1, pz1, vx1, vy1, vz1, ax1, ay1, az1 = symbols('px1 py1 pz1 vx1 vy1 vz1 ax1 ay1 az1') px2, py2, pz2, vx2, vy2, vz2, ax2, ay2, az2 = symbols('px2...