python 中最基本的线性代数方程
Most basic linear algebra equation in python
假设我有以下方程组:
x + y = 3
5x - y = 3
此处 x=1
和 y=2
。使用 scipy 或其他一些线性代数求解器,最基本的方法是什么。例如,类似于:
A = np.array([1,1],[5,-1])
A'inverse = [3,3] # how to do this?
您可以使用 Numpy 的线性代数部分:
import numpy as np
A = np.array(([1,1],[5,-1]))
# Calculating inverse of A
B = np.linalg.inv(A)
# array([[ 0.16666667, 0.16666667],
# [ 0.83333333, -0.16666667]])
# Calculating matrix multiplication of B and A: Expecting Identical Matrix
np.matmul(B,A)
# Very close to 0 and 1
# array([[ 1.00000000e+00, 2.77555756e-17],
# [-5.55111512e-17, 1.00000000e+00]])
# Converting to integer
np.int32( np.matmul(B,A) )
# array([[1, 0],
# [0, 1]], dtype=int32)
来自 aminrd 使用 np.linalg
的建议:
import numpy as np
A = np.array(([1,1],[5,-1])) # initialize 2x2 matrix
B = np.array([3,3]) # initialize the (x,y) column vector
A_inv = np.linalg.inv(A) # get A'
np.matmul(A_inv,B) # Ax = B --> x = A'B
# array([1., 2.])
这里可以看到答案是X=1, Y=2
,这也是我们所期望的
假设我有以下方程组:
x + y = 3
5x - y = 3
此处 x=1
和 y=2
。使用 scipy 或其他一些线性代数求解器,最基本的方法是什么。例如,类似于:
A = np.array([1,1],[5,-1])
A'inverse = [3,3] # how to do this?
您可以使用 Numpy 的线性代数部分:
import numpy as np
A = np.array(([1,1],[5,-1]))
# Calculating inverse of A
B = np.linalg.inv(A)
# array([[ 0.16666667, 0.16666667],
# [ 0.83333333, -0.16666667]])
# Calculating matrix multiplication of B and A: Expecting Identical Matrix
np.matmul(B,A)
# Very close to 0 and 1
# array([[ 1.00000000e+00, 2.77555756e-17],
# [-5.55111512e-17, 1.00000000e+00]])
# Converting to integer
np.int32( np.matmul(B,A) )
# array([[1, 0],
# [0, 1]], dtype=int32)
来自 aminrd 使用 np.linalg
的建议:
import numpy as np
A = np.array(([1,1],[5,-1])) # initialize 2x2 matrix
B = np.array([3,3]) # initialize the (x,y) column vector
A_inv = np.linalg.inv(A) # get A'
np.matmul(A_inv,B) # Ax = B --> x = A'B
# array([1., 2.])
这里可以看到答案是X=1, Y=2
,这也是我们所期望的