python中最基本的线性代数方程



假设我有以下方程组:

x  + y = 3
5x - y = 3

这里x=1y=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,这是我们所期望的。

相关内容

  • 没有找到相关文章

最新更新