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