2017-09-22 138 views
1

我使用Jupyter QtConsole上運行的Python v.3.6。我試圖用Sympy在一個數據集上做一些線性代數,用於將預測與調查分數聯繫起來的個人項目。本質上,我設置了一個增廣矩陣,其中N = 14個線性方程組和M = 5個未知數,並且試圖解決這個系統。我的問題是,當我使用solve_linear_system命令我增廣矩陣,我沒有得到任何輸出我的代碼:sympy問題解決線性系統

import sympy 
from sympy import * 
from sympy import Matrix, solve_linear_system 
from sympy.abc import x, y, z, u, v 
system = Matrix(((1,1,-1,0,0,1),(1,1,-1,0,0,2),(0,0,-1,0,-1,3), 
(0,0,-1,0,-1,2),(0,0,0,1,0,1),(1,0,1,1,-1,2),(0,0,-1,0,-1,2),(1,0,1,0,0,1), 
(1,1,1,0,1,3),(1,1,1,0,0,2),(-1,1,0,0,-1,3),(1,-1,-1,-1,0,2),(-1,1,1,1,-1,3), 
(0,-1,0,0,0,2))) 
solve_linear_system(system, x, y, z, u, v) 
>> 

有人能解釋可能是什麼問題,如何補救?我嘗試了其他矩陣,它似乎與他們一起工作,那麼我在問什麼是Sympy todo還是它的方法有什麼根本錯誤? 謝謝。

回答

1

原因是在增強型系統中沒有解決方案的參考。
(可能太多的限制,你可以嘗試通過消除一些多餘的方程來放鬆吧)

如果你盯着你的矩陣一小會兒,你會發現,有不兼容的公式,例如,行2(0,0,-1,0,-1,3),(0,0,-1,0,-1,2)或行0和1:(1,1,-1, 0,0,1),(1,1,-1,0,0,2)。也可能有多餘的。

+0

感謝您的及時回覆,但我嘗試了7個方程(最後一個值不等於2的方程),仍然沒有輸出,不僅如此,還擔心信息丟失。但如果這是唯一的解決方案,我可以考慮更多地研究它? – Jonesn11

+0

如果你盯着你的矩陣一會兒,你會發現有不相容的方程,例如第2行和第3行:'(0,0,-1,0,-1,3),(0,0 ,-1,0,-1,2)'或行0和1:'(1,1,-1,0,0,1),(1,1,-1,0,0,2)' 。也可能有多餘的。 –

+0

這是合理的。然而,鑑於我嘗試了所有等式不包含等於2的等式,它是否仍然能夠找到解決方案? – Jonesn11