1
我需要計算一個矩陣的最大和最小特徵值的比率,據我所知,它被稱爲「條件數」。我找到了計算矩陣的條件數的numpy.linalg.cond
,但我想知道這是否與最大和最小特徵值之間的比例相對應。有人可以給我說明嗎?numpy.linalg.cond是否返回最大和最小特徵值的比率?
我需要計算一個矩陣的最大和最小特徵值的比率,據我所知,它被稱爲「條件數」。我找到了計算矩陣的條件數的numpy.linalg.cond
,但我想知道這是否與最大和最小特徵值之間的比例相對應。有人可以給我說明嗎?numpy.linalg.cond是否返回最大和最小特徵值的比率?
根據文檔np.linalg.cond被定義爲數組的常量乘以數組的常量的倒數,這不是你正在尋找的。但是你想要做什麼可以很容易地完成:
import numpy as np
Eigs = np.linalg.eigvals(yourarrayhere)
cond = np.max(Eigs)/np.min(Eigs)
條件數是大1和小*奇異值*的比值,而不是特徵值的比率。對於一般的矩陣來說,這些並不是一回事。對於所謂的[正常矩陣](https://en.wikipedia.org/wiki/Normal_matrix),奇異值是特徵值的絕對值。 – 2015-04-03 08:46:22
我認爲有些人對條件編號有不同的定義。例如,在Bertsekas的非線性編程中,第二版和第三版印刷中,他特別將第67頁的條件編號的最大特徵值與最小特徵值的比值稱爲條件編號。如果條件編號較大,他會調用矩陣條件不良的條件 – jfish003 2015-04-03 12:38:28
標準線性代數定義就是上述2-範數的比例,即奇異值的比例。這等於僅用於(正定)正態矩陣的特徵值的比率。你上面寫的是不正確的,因爲numpy.linalg.cond使用標準定義。 – 2015-04-03 20:02:55