簡體   English   中英

查找行簡化矩陣python的解決方案

[英]Finding solutions to row reduced matrix python

假設我的簡化矩陣形式如下:

   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]]

我想要一個包含解決方案的數組。

在這種情況下,我想返回

  z    y     x
[1.0, 0.5, -1.0]

我們可以假設它是沒有自由變量的理想三角形。

我正在看scipy.linalg.solve來解決,但是它需要Ax=B的形式,而且我不確定如何轉換為這種形式。

您已經擁有使用numpy.linalg.solve所需的所有信息。 A由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)

輸出:

[-1.   0.5  1. ]

進一步閱讀:

備注比:

     [2.0, 4.0, 4.0, 4.0]  x     0
     [0.0, 2.0, 1.0, 2.0]  y  =  0
     [0.0, 0.0, 1.0, 1.0]  z     0
     [0.0, 0.0, 0.0,-1.0]  t     1

有相同的解決方案,t = -1。

因此,讓I=np.eye(4)b=I[3] 解決方案如下:

In [2]: solve(A-I*b,b)[:-1]
Out[2]: array([-1. ,  0.5,  1. ])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM