2015-04-03 175 views

回答

2

根據文檔np.linalg.cond被定義爲數組的常量乘以數組的常量的倒數,這不是你正在尋找的。但是你想要做什麼可以很容易地完成:

import numpy as np 

    Eigs = np.linalg.eigvals(yourarrayhere) 
    cond = np.max(Eigs)/np.min(Eigs) 
+1

條件數是大1和小*奇異值*的比值,而不是特徵值的比率。對於一般的矩陣來說,這些並不是一回事。對於所謂的[正常矩陣](https://en.wikipedia.org/wiki/Normal_matrix),奇異值是特徵值的絕對值。 – 2015-04-03 08:46:22

+0

我認爲有些人對條件編號有不同的定義。例如,在Bertsekas的非線性編程中,第二版和第三版印刷中,他特別將第67頁的條件編號的最大特徵值與最小特徵值的比值稱爲條件編號。如果條件編號較大,他會調用矩陣條件不良的條件 – jfish003 2015-04-03 12:38:28

+0

標準線性代數定義就是上述2-範數的比例,即奇異值的比例。這等於僅用於(正定)正態矩陣的特徵值的比率。你上面寫的是不正確的,因爲numpy.linalg.cond使用標準定義。 – 2015-04-03 20:02:55