高斯消元选主元的时候用到了部分主元(partial pivot),这里部分主元为什么要选一列中最大的数呢?
如果选最小的数,那下面消每一行的时候要乘的是一个整数;
而选最大的数,下面消每一行要乘一个分数;
所以为什么不选最小的数?
1个回答
我觉得这个主要是计算机的考虑,因为计算机有浮点误差,如果你选最小的数作为主元,浮点误差就会显得格外明显。
比如一列当中有100,10,0.00001。0.00001最小,但是这个数值当中有多少是因为浮点误差造成的呢,比重就相对很大了。100的话就安全得多了。
对,在做高斯消元时,0.00001和100包含的round-off error的扩散(propagation)会差1e7倍。
-
Zealing
2018-04-15 05:32