[英]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.