查找行简化矩阵python的解决方案

Gre*_*ory 3 python numpy matrix linear-algebra scipy

假设我的简化矩阵形式如下:

   x    y    z    =
[[2.0, 4.0, 4.0, 4.0], 
 [0.0, 2.0, 1.0, 2.0], 
 [0.0, 0.0, 1.0, 1.0], 
 [0.0, 0.0, 0.0, 0.0]]
Run Code Online (Sandbox Code Playgroud)

我想要一个包含解决方案的数组。

在这种情况下,我想返回

  z    y     x
[1.0, 0.5, -1.0]
Run Code Online (Sandbox Code Playgroud)

我们可以假设它是没有自由变量的理想三角形。

我一直在寻找scipy.linalg.solve解决方案,但它需要表格,Ax=B而且我不确定如何转换为该表格。

mir*_*ulo 5

您已经拥有需要使用的所有信息numpy.linalg.solveA用2d数组的前3列表示,b是最后一列。因此,如果将数组分别切成这些元素,则可以调用.solve。请注意,我将最后一行切成片,这样您的系统就可以确定,就像numpy.linalg.solve需要一个确定的系统一样:

init_array = numpy.array(
        [[2.0, 4.0, 4.0, 4.0],
         [0.0, 2.0, 1.0, 2.0],
         [0.0, 0.0, 1.0, 1.0],
         [0.0, 0.0, 0.0, 0.0]])

A = init_array[0:3,:-1]
b = init_array[0:3, -1]
x = numpy.linalg.solve(A, b)
print(x)
Run Code Online (Sandbox Code Playgroud)

输出:

[-1.   0.5  1. ]
Run Code Online (Sandbox Code Playgroud)

进一步阅读: