Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 求解7个未知量的线性联立方程组_Python_Arrays_Numpy - Fatal编程技术网

Python 求解7个未知量的线性联立方程组

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

我试图解决一个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,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]])
这有助于感谢大家!