高斯消元选部分主元为什么要选最大的?

  数学 线性代数 数值计算    浏览次数:4409        分享
1

高斯消元选主元的时候用到了部分主元(partial pivot),这里部分主元为什么要选一列中最大的数呢?

如果选最小的数,那下面消每一行的时候要乘的是一个整数;

而选最大的数,下面消每一行要乘一个分数;

所以为什么不选最小的数?

 

BsLee   2018-04-14 14:40



   1个回答 
2

我觉得这个主要是计算机的考虑,因为计算机有浮点误差,如果你选最小的数作为主元,浮点误差就会显得格外明显。

比如一列当中有100,10,0.00001。0.00001最小,但是这个数值当中有多少是因为浮点误差造成的呢,比重就相对很大了。100的话就安全得多了。


SofaSofa数据科学社区DS面试题库 DS面经

雷猴   2018-04-15 00:16

对,在做高斯消元时,0.00001和100包含的round-off error的扩散(propagation)会差1e7倍。 - Zealing   2018-04-15 05:32


  相关讨论

常说的低秩分解或者低秩逼近是什么意思?

python里怎么求矩阵的条件数?

什么是Hessian矩阵和Jacobian矩阵

关于随机梯度下降法(SGD)的问题

计算中的截断误差是什么意思?

能不能用梯度下降法求平方根或者立方根?

怎么用牛顿法近似求解根号2?

随机梯度下降(SGD)可以被并行计算吗?

半正定或者正定矩阵一定要是对称的吗?

两个线性空间的并集一定是一个线性空间吗

  随便看看

条件概率证明P(a,b|c) > P(a,b)

python里的<<或者>>符号是什么意思?

plt.scatter plot怎么让不同的类别有不同的颜色

自助法(bootstrap)的0.632是怎么来的?

kappa statistic怎么理解?有什么意义?