【问题标题】:Solve linear equation in python XA = B [duplicate]在python XA = B中求解线性方程[重复]
【发布时间】:2018-10-15 23:55:41
【问题描述】:

一个线性方程XA = B,我们知道'X = B * inv(A)'。其中A, B, X 都是矩阵。

在matlab中可以解决:

X = B / A

它避免对fast 的矩阵进行逆运算。 python中有没有使用numpy的等价形式?

【问题讨论】:

  • 你不能只做x = b * 1/a吗?还是我真的不擅长这个
  • 很抱歉,它们都是矩阵,我会更新它们
  • 恐怕numpy中没有这个功能。见mathesaurus.sourceforge.net/matlab-numpy.html
  • 好资源,有什么办法可以在python中解决XA = B
  • 你见过this related吗?

标签: python numpy inverse


【解决方案1】:

使用 numpy linalg.inv 函数:

import numpy as np
x = np.matmul(b, np.linalg.inv(a))

【讨论】:

  • 酷。它与matlab的结果相同。
  • @jason 它可能会给出相同的答案,但如果a 很大,则由于反转a 而需要更长的时间。考虑改用np.linalg.solve(a, b)(或np.linalg.lstsq(a, b),如果a不是线性独立的)。它们与MATLAB 进行类似的短路,但没有完全反转。
【解决方案2】:
import numpy as np
a = np.array([[1,7],[2,9]])
b = np.array([[2,6],[7,5]])

# XA = B
# X = BA^-1

x = np.matmul(b,np.linalg.inv(a))

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
猜你喜欢
  • 2016-06-15
  • 1970-01-01
  • 2017-11-22
  • 1970-01-01
  • 2019-10-13
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
  • 2017-07-27
相关资源
最近更新 更多