El pivoteo parcial
El pivoteo parcial

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 }

( 10 6 1 1 1 1 0 ) P 21 ( 10 6 ) ( 10 6 1 1 0 10 6 10 6 ){ 10 6 y= 10 6 y=1 10 6 x+1=1 x=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 6 1 1 1 1 0 ) P 21 ( 1 1 0 10 6 1 1 ) P 21 ( 10 6 ) ( 1 1 0 0 1 1 ){ 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.