Python 求解7个未知量的线性联立方程组
我试图解决一个7个线性方程组的系统,以完成“转运单纯形算法”问题中涉及的一个步骤。我使用numpy库编写了以下代码:Python 求解7个未知量的线性联立方程组,python,arrays,numpy,Python,Arrays,Numpy,我试图解决一个7个线性方程组的系统,以完成“转运单纯形算法”问题中涉及的一个步骤。我使用numpy库编写了以下代码: import numpy as np # Coefficients matrix A = [[1,0,0,0,0,0,0], [1,0,0,0,0,0,1], [0,1,0,1,0,0,0], [0,1,0,0,1,0,0], [0,1,0,0,0,0,1], [0,0,1,0,0,1,0], [0,0,1,0,0,1,0]] # RHS matrix B = [0,120
import numpy as np
# Coefficients matrix
A = [[1,0,0,0,0,0,0], [1,0,0,0,0,0,1], [0,1,0,1,0,0,0], [0,1,0,0,1,0,0], [0,1,0,0,0,0,1], [0,0,1,0,0,1,0], [0,0,1,0,0,1,0]]
# RHS matrix
B = [0,120,100,40,10,60,100]
# Solution matrix
X = np.linalg.inv(A).dot(B)
print (X)
但是,当我运行此代码时,我收到以下错误:
lgerror_singular
raise LinAlgError("Singular matrix")
numpy.linalg.LinAlgError: Singular matrix
A = np.array([1,0,0,0,0,0,0], [1,0,0,0,0,0,1], [0,1,0,1,0,0,0], [0,1,0,0,1,0,0], [0,1,0,0,0,0,1], [0,0,1,0,0,1,0], [0,0,1,0,0,1,0])
TypeError: array() takes from 1 to 2 positional arguments but 7 were given
我曾尝试使用np.linalg.solve(A,B)
方法,但这会返回相同的错误
我也尝试过这样定义矩阵B=np.array([0120100,40,10,60100])
,但这会返回以下错误:
lgerror_singular
raise LinAlgError("Singular matrix")
numpy.linalg.LinAlgError: Singular matrix
A = np.array([1,0,0,0,0,0,0], [1,0,0,0,0,0,1], [0,1,0,1,0,0,0], [0,1,0,0,1,0,0], [0,1,0,0,0,0,1], [0,0,1,0,0,1,0], [0,0,1,0,0,1,0])
TypeError: array() takes from 1 to 2 positional arguments but 7 were given
我知道我一定是做错了什么,任何帮助都将不胜感激
A
是一个奇异矩阵。您的Ax=B
可能没有解决方案。a
的最后两行相等(使a
强制单数)。也许最后一行有输入错误?还要注意的是,对于A=np.array([1,0…],…)
,您需要将参数放入一个列表中(添加一对额外的方括号)。像A=np.array([1,0…],[…,[…,0]])
这有助于感谢大家!