Cuando hablamos del pivoteo
en la eliminación gaussiana fue para resolver el caso de que en el
lugar de un pivote nos encontrábamos con un cero. Veremos ahora que
también si el pivote es un número pequeño en comparación con los de
su columna (si la eliminación gaussiana es por filas) también debería
ser "evitado".
Para comprobarlo resuelve el siguiente sistema de ecuaciones
lineales, conservando en cada operación solo tres cifras decimales:0.000001x+y=1-x+y=0}
Pero... la verdadera solución es x=1, y=1, como puedes comprobar
sustituyendo en las ecuaciones originales; el hecho de tomar 100000 en
lugar de 100001, ha cambiado la solución, de x=1 a x=0.
Si en la eliminación gaussiana intercambiamos las filas,(10−611−110)P21⟶(−11010−611)P21(10−6)⟶(−110011)⇒{1y=1⇒y=1−x+1=0⇒x=1
Conclusión: los pivotes muy pequeños producen inestabilidad
numérica y para evitarlo hemos de realizar el pivoteo parcial, que
consiste en comparar el elemento de la fila i con los que tiene por
debajo, en su misma columna, intercambiando las filas entre si para que
el de mayor valor absoluto pase a ser el pivote.
Cuando se trata de matrices definidas positivas no es necesario el
pivoteo parcial; cualesquiera que sea el valor de los pivotes, el algoritmo es
estable frente a los errores de redondeo.