簡體   English   中英

計算矩陣的簡化梯形形式的Sympy錯誤

[英]Sympy error on calculating reduced echelon form of matrix

我是線性代數和 sympy 的新手。 我正在嘗試使用 sympy Matrix 的.rref()函數來獲得簡化的梯形形式。 我的目標是取一個隨機矩陣,減去單位矩陣並找到新矩陣的簡化梯形形式。 當我執行這些操作時,我沒有得到矩陣的簡化梯形形式的正確答案。 但是,當我將所需的矩陣分配給變量而不執行任何先前的操作時,rref 會返回正確的結果。 見下圖。 謝謝! 任何幫助是極大的贊賞。

在此處輸入圖片說明

發生這種情況是因為您使用的是浮點數而不是 Rational。 您可以使用 nsimplify 將浮點數轉換為 Rational:

In [14]: PP = Matrix([[.9, .7], [.1, .3]]).applyfunc(nsimplify)                                                                                               

In [15]: PP                                                                                                                                                   
Out[15]: 
⎡9/10  7/10⎤
⎢          ⎥
⎣1/10  3/10⎦

In [16]: II = Matrix([[1, 0], [0, 1]])                                                                                                                        

In [17]: DIF = PP - II                                                                                                                                        

In [18]: DIF                                                                                                                                                  
Out[18]: 
⎡-1/10  7/10 ⎤
⎢            ⎥
⎣1/10   -7/10⎦

In [19]: DIF.rref()                                                                                                                                           
Out[19]: 
⎛⎡1  -7⎤      ⎞
⎜⎢     ⎥, (0,)⎟
⎝⎣0  0 ⎦      ⎠

暫無
暫無

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

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