我知道sympy在python中可以設置變量的假設,例如x是正數,負數,實數,複數等。我在想,sympy是否可以設置相對變量的假設到其他變量。例如,如果我有變量x和y,我可以設置sympy在其解決方案中假定x> y。或者,或者,如果我有兩個變量a和b,我可以設置sympy來假設a + 2B < 1?這些假設可能有助於sympy簡化複雜的解決方案來解決()和特徵向量。在Sympy中設置變量相對於其他變量的假設
我已經看了全部,還沒有找到有關在sympy中設置這些假設的信息。
我問,因爲我試圖找到一個特定的矩陣
a,b = symbols('a,b', nonnegative=False)
M = Matrix([ [1-a-2*b, a, b, b],
[a, 1-a-2*b, b, b],
[b, b, 1-a-2*b, a],
[b, b, a, 1-a-2*b] ])
Sympy的特徵向量找到正確的特徵值
M.eigenvals()
我通過MATLAB和WolframAlpha的,已經證實所有給出相同的結果。然而,該特徵向量是一團糟
M.eigenvects()
MATLAB和WolframAlpha的的[1,1,1,1] [-1,-1,1,1] [0,0,-1,1都返回特徵向量] [-1,1,0,0],這是正確的特徵向量。我甚至沒有試圖簡化sympy的結果,因爲它們非常漫長而複雜。我懷疑它與變量的假設有關,例如指定a + 2b < 1,但我不確定。
你好,你似乎知道了很多關於假設系統中。我在哪裏可以瞭解當前的狀態更加的實用技巧假設系統在2016年年底?Sympy現在處於版本1,並且似乎仍然存在兩個假設系統,因爲假設模塊和符號構造器假設都存在。文檔沒有解釋爲什麼仍然存在兩個系統或提供指導要知道何時使用其中一個或另一個 – Shaun 2016-12-02 19:14:24
@Shaun,要求更新說明的最佳位置是sympy郵件列表。 – Krastanov 2016-12-04 04:57:18