我想在不使用numpy.linalg.inv的情况下反转矩阵.
原因是我使用Numba加速代码,但是不支持numpy.linalg.inv,所以我想知道我是否可以使用'经典'Python代码反转矩阵.
使用numpy.linalg.inv,示例代码如下所示:
import numpy as np
M = np.array([[1,0,0],[0,1,0],[0,0,1]])
Minv = np.linalg.inv(M)
Run Code Online (Sandbox Code Playgroud) 通常我会在for循环中反转一个3x3矩阵的数组,如下例所示.不幸的是for循环很慢.有没有更快,更有效的方法来做到这一点?
import numpy as np
A = np.random.rand(3,3,100)
Ainv = np.zeros_like(A)
for i in range(100):
Ainv[:,:,i] = np.linalg.inv(A[:,:,i])
Run Code Online (Sandbox Code Playgroud) A具有以下矩阵,例如:

我想做一些矩阵操作而不添加数字,因为它们可能会有所不同,我想从中得到一般方程式.
我怎样才能得到类似的东西.如果我想做乘法或简单的操作似乎很好,但似乎没有什么工作的逆.
我试过很多像:
from sympy import *
from numpy import matrix
from numpy import linalg
from sympy import Matrix
a1, a2, a3, b1, b2, b3, c1, c2, c3, x, y, z = symbols('a1 a2 a3 b1 b2 b3 c1 c2 c3 x y z')
A = matrix( [[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]]) # Creates a matrix.
B = matrix( [[x],[y],[z]])
C= A*B #That works fine
A_inverse = A.inv() #Doesn't work
Run Code Online (Sandbox Code Playgroud)