Está en la página 1de 8

ALGORITMOS CON

PIVOTEO
César Guerra
cguerra@pucp.pe
Problemas en la Eliminación
División entre cero
12 x1 + 10 x2 − 7 x3 = 15
6 x1 + 5 x2 + 3x3 = 14
10 x2 − 7 x3 = 3
24 x1 − x2 + 5 x3 = 28
6 x1 + 2 x2 + 3x3 = 11
5 x1 − x2 + 5 x3 = 9 12 10 − 7  x1  15
6 5 3   x2  = 14 
    
0 10 − 7  x1   3  24 − 1 5   x3  28
6 2 3   x2  = 11
     12 10 − 7  x1   15 
5 − 1 5   x3   9  0 0 6.5  x2  = 6.5
    
12 − 21 19   x3  − 2
La división por cero es una posibilidad en
cualquier paso de la eliminación.
Problemas en la Eliminación
Errores de redondeo

 20 15 10  x1   45 
 − 3 − 2.249 7   x  = 1.751
   2  
 5 1 3   x3   9 

Solución exacta Con precisión 6 Con precisión 5

 x1  1  x1   0.9625   x1   0.625 


 x  = 1  x  =  1.05   x  =  1.5 
 2    2    2  
 x3  1  x3  0.999995  x3  0.99995
Posibles soluciones
Incrementar la precisión
Aumentar la precisión disminuye el error en la solución. A bajo nivel esto esta
limitado a doble y/o cuádruple precisión.
• Disminuye el error por redondeo.
• No evita la división por cero.

Eliminación con pivoteo


El elemento en la diagonal por el que se divide una fila se llama pivote. El
pivoteo consiste en cambiar el pivote si su valor es cero o pequeño.
• Evita la división por cero.
• Reduce el error por redondeo.
Pivoteo Parcial
Se selecciona como pivote el valor más grande en valor absoluto que sea
posible mediante el intercambio de filas.

Estrategia
 Si se quiere reducir el error numérico, para cada pivote 𝑎𝑎𝑝𝑝,𝑝𝑝 localizamos
la fila 𝑢𝑢 ≥ 𝑝𝑝 en la que se cumple:

𝑎𝑎𝑢𝑢,𝑝𝑝 = 𝑚𝑚𝑚𝑚𝑚𝑚𝑝𝑝≤𝑖𝑖≤𝑛𝑛 𝑎𝑎𝑖𝑖,𝑝𝑝

y luego intercambiamos las filas 𝑢𝑢 y 𝑝𝑝.

 Si solo se quiere evitar la división por cero, se intercambian las filas 𝑢𝑢 y


𝑝𝑝 sólo si 𝑎𝑎𝑝𝑝,𝑝𝑝 es cero.
Pivoteo Completo
Se selecciona como pivote el valor más grande en valor absoluto que sea
posible mediante el intercambio de filas y columnas.

Estrategia
 Si se quiere reducir el error numérico, para cada pivote 𝑎𝑎𝑝𝑝,𝑝𝑝 localizamos
la fila 𝑢𝑢 ≥ 𝑝𝑝 y la columna 𝑣𝑣 ≥ 𝑝𝑝 en la que se cumple:

𝑎𝑎𝑢𝑢,𝑣𝑣 = 𝑚𝑚𝑚𝑚𝑚𝑚𝑝𝑝≤𝑖𝑖,𝑝𝑝≤𝑗𝑗 𝑎𝑎𝑖𝑖,𝑗𝑗

e intercambiamos las filas 𝑢𝑢 y 𝑝𝑝 y en seguida las columnas 𝑣𝑣 y 𝑝𝑝.

 Si sólo se quiere evitar la división por cero, se intercambian las filas 𝑢𝑢 y


𝑝𝑝 y las columnas 𝑣𝑣 y 𝑝𝑝 sólo si 𝑎𝑎𝑝𝑝,𝑝𝑝 es cero.
Pivoteo Parcial Implícito
Se escoge como pivote el elemento que sería el más grande si todas las
ecuaciones originales se hubieran escalado para que tengan su coeficiente
más grande igual a la unidad.

Estrategia
Calculamos factores de escala para cada fila: 𝑠𝑠𝑖𝑖 = 𝑚𝑚𝑚𝑚𝑚𝑚1≤𝑗𝑗≤𝑛𝑛 𝑎𝑎𝑖𝑖,𝑗𝑗 para 𝑖𝑖 =
1,2, … , 𝑛𝑛. Para cada 𝑎𝑎𝑝𝑝,𝑝𝑝 localizamos la fila 𝑢𝑢 ≥ 𝑝𝑝 tal que se cumple:

𝑎𝑎𝑢𝑢,𝑝𝑝 /𝑠𝑠𝑢𝑢 = 𝑚𝑚𝑚𝑚𝑚𝑚𝑝𝑝≤𝑖𝑖≤𝑛𝑛 𝑎𝑎𝑖𝑖,𝑝𝑝 /𝑠𝑠𝑖𝑖

y luego intercambiamos las filas 𝑢𝑢 y 𝑝𝑝. Nótese que los factores de escala
se tienen que intercambiar según sus correspondientes filas.
Observaciones
 El intercambio de filas no cambia el conjunto solución (CS).

 El intercambio de columnas cambia el orden de las filas del CS. Este se


debe reordenar siguiendo los intercambios en orden inverso.

 Si se usa una matriz aumentada para calcular la inversa, el intercambio


de filas no cambia la inversa, pero el intercambio de columnas cambia
el orden de las filas de la inversa.

 Si se usa la matriz inicial para calcular la matriz inversa, el intercambio


de filas cambia el orden de las columnas de la inversa y el intercambio
de las columnas cambia el orden de las filas de la inversa.

También podría gustarte