如何获得python矩阵的逆矩阵?我自己实现了它,但它是纯粹的Python,我怀疑有更快的模块来做到这一点。Python的逆矩阵
回答
如果你做矩阵处理,你应该看看numpy。这是一个主要用C语言编写的模块,比用纯Python编程要快得多。这里是一个如何反转矩阵和其他矩阵操作的例子。
from numpy import matrix
from numpy import linalg
A = matrix([[1,2,3],[11,12,13],[21,22,23]]) # Creates a matrix.
x = matrix([[1],[2],[3]]) # Creates a matrix (like a column vector).
y = matrix([[1,2,3]]) # Creates a matrix (like a row vector).
print A.T # Transpose of A.
print A*x # Matrix multiplication of A and x.
print A.I # Inverse of A.
print linalg.solve(A, x) # Solve the linear equation system.
您还可以看看array模块,这是一种更有效的执行名单时,你必须只处理一个数据类型。
numpy也出现在书“美丽的代码”。 :-) – Deestan 2008-10-17 07:35:21
此处还要注意,没有发生倒转,并且按照John D. Cook的答案,系统直接被解决。 – 2008-10-26 16:12:39
考虑使用numpy [数组而不是矩阵](https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html#array-or-matrix-which-should-i -使用)。随着[`numpy.linalg`](https://docs.scipy.org/doc/numpy/reference/routines.linalg.html),你可以得到几乎所有你想要的,而不使用笨拙的`numpy.matrix `。 – Praveen 2017-06-13 02:38:17
如果你讨厌numpy,就拿出RPy和R的本地副本,然后用它来代替。因为它是不必要的,所以在R中,例如,linalg.solve和solve()函数实际上并不实际完成一个反演)。
从来没有使用R,但为什么外部程序和它的Python绑定程序比最知名的Python的科学软件包更好? – 2012-08-16 14:25:11
确保您确实需要反转矩阵。这通常是不必要的,并且可能在数值上不稳定。当大多数人问如何反转矩阵时,他们真的想知道如何求解Ax = b,其中A是矩阵,x和b是向量。使用代码直接求解方程Ax = b的代码比计算A inverse反而将B乘以B反而更加高效和准确。即使您需要为许多b值求解Ax = b,也不是一个好主意倒置A.如果必须解决多个b值的系统问题,请保存A的Cholesky分解,但不要倒置它。
很可惜的是,选择矩阵,这里再次重复,或者是单数或严重空调:
A = matrix([[1,2,3],[11,12,13],[21,22,23]])
根据定义,当通过矩阵A自乘A的逆矩阵必须给一个单元矩阵。在得到赞扬的解释中选择的A不会这样做。事实上,只看倒数就会发现反演不能正常工作。看看单个术语的大小 - 与原始A矩阵的条件相比,它们非常非常大...
很显然,人类在挑选矩阵的例子时经常设法选择奇异矩阵!
我确实遇到了解决方案的问题,所以仔细研究了一下。在ubuntu-kubuntu平台上,debian软件包numpy没有矩阵和linalg子软件包,除了导入numpy外,还需要导入scipy。
如果A的对角项乘以足够大的因子,例如2,矩阵很可能不再是单数或接近单数。所以
A = matrix([[2,2,3],[11,24,13],[21,22,46]])
变得既不奇异也不接近奇异和例子给出有意义的结果......当浮点数处理一个必须警惕的inavoidable舍入误差的影响。
感谢您的贡献,
OldAl。
numpy的将是适合大多数人,但你也可以做matrices in Sympy
尝试运行这些命令在http://live.sympy.org/
M = Matrix([[1, 3], [-2, 3]])
M
M**-1
为了好玩,尝试M**(1/2)
- 1. Python中的矩阵和逆矩阵
- 2. Python:计算伪逆矩阵的逆
- 3. PHP逆矩阵
- 4. VBA:矩阵逆
- 5. 逆矩阵3f
- 6. 矩阵逆Swift
- 7. 在python中有大值的矩阵的矩阵求逆
- 8. JavaScript矩阵求逆
- 9. 逆矩阵误差
- 10. 乘以逆矩阵?
- 11. 矩阵求逆R
- 12. 矩阵模板库矩阵求逆
- 13. R中的矩阵的逆
- 14. SymPy中矩阵的逆?
- 15. C++的PETSc矩阵求逆
- 16. 图像矩阵的逆
- 17. 逆矩阵的在C++
- 18. OpenCL中的矩阵求逆
- 19. CUDA中非矩形矩阵的计算机逆矩阵
- 20. 矩阵求逆方法
- 21. Java逆矩阵计算
- 22. numpy/python中的矩阵求逆没有给出正确的矩阵?
- 23. python矩阵的矩阵
- 24. Java中矩阵的Co因子(用于确定矩阵的逆矩阵)
- 25. matlab中具有符号工具箱的矩阵的逆矩阵
- 26. 如何使用JAMA(Java矩阵包)计算矩阵的伪逆矩阵?
- 27. 使用lapack在C/C++中计算矩阵的逆矩阵
- 28. 矩阵和数值积分的逆矩阵R
- 29. 矩阵的非零元素的逆
- 30. Doxygen的要求跟踪/逆矩阵
你可以请出示你的算法? – 2016-12-23 12:05:22
这里有答案,如果有人想要一个代码片段 https://stackoverflow.com/questions/32114054/matrix-inversion-without-numpy – Alex 2017-09-30 10:20:24