Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.- Introducción.
2.- Eliminación gaussiana simple.
3.- Sistemas mal condicionados.
4.- Técnicas de mejoramiento de soluciones.
4.1. Uso de más cifras significativas.
4.2. Pivoteo.
4.3. Escalamiento.
5.- Método de Gauss-Seidel.
1
8.1. Introducción
Cuando nos encontremos con un número bajo de incógnitas (𝑛𝑛 ≤ 3), los sistemas se
podrán resolver por los métodos de análisis clásico (igualación, sustitución, Cramer, etc.)
o por los métodos gráficos (aunque este método solo es eficiente para 𝑛𝑛 = 2).
Sin embargo, cuando el número de incógnitas es elevado, empieza a ser útil recurrir al
método de Gauss y/o a métodos numéricos. El método de Gauss, a pesar de su antigüedad,
permanece hasta nuestros días como uno de los algoritmos de mayor importancia a la
hora de resolver sistemas de ecuaciones lineales. Ello es debido a su facilidad de
programar y de aplicar con el uso de ordenadores.
1. Manejar las ecuaciones para eliminar una incógnita en la segunda ecuación, dos
incógnitas en la tercera… hasta llegar a quedarnos con una incógnita en la última
ecuación. Durante el manejo de las ecuaciones se permite:
a. Cambiar el orden de las ecuaciones.
b. Multiplicar una ecuación por un número distinto de cero.
c. Sumar a una ecuación una combinación lineal de alguna o algunas de las
otras.
2. La última ecuación, donde ya solo queda una incógnita, se resuelve directamente
y el resultado se sustituye hacia atrás en las ecuaciones escalonadas hasta
encontrar el valor de las incógnitas restantes.
2
Ejemplo 1. Resolver por Gauss el siguiente sistema:
𝑥𝑥 + 2𝑦𝑦 + 𝑧𝑧 = 4
−3𝑥𝑥 − 2𝑦𝑦 + 9𝑧𝑧 = 40 �
4𝑥𝑥 + 9𝑦𝑦 + 6𝑧𝑧 = 24
Solución:
𝐸𝐸𝐸𝐸2 + 3𝐸𝐸𝐸𝐸 1
↓
𝐸𝐸𝐸𝐸3 − 4𝐸𝐸𝐸𝐸1
𝑥𝑥 + 2𝑦𝑦 + 𝑧𝑧 = 4
4𝑦𝑦 + 12𝑧𝑧 = 52 �
𝑦𝑦 + 2𝑧𝑧 = 8
1
↓ 𝐸𝐸𝐸𝐸3 − 𝐸𝐸𝐸𝐸2
4
𝑥𝑥 + 2𝑦𝑦 + 𝑧𝑧 = 4
4𝑦𝑦 + 12𝑧𝑧 = 52 �
−𝑧𝑧 = −5
Ya tenemos el sistema escalonado, con una sola incógnita en la última ecuación. Ahora
hemos de calcular dicha incógnita y sustituyendo “hacia arriba” encontrar el valor de las
restantes:
𝑥𝑥 + 2𝑦𝑦 + 𝑧𝑧 = 4
4𝑦𝑦 + 12𝑧𝑧 = 52 �
−𝑧𝑧 = −5 𝑧𝑧 = 5
𝑥𝑥 + 2𝑦𝑦 + 𝑧𝑧 = 4
4𝑦𝑦 + 12𝑧𝑧 = 52 � 𝑦𝑦 = −2
−𝑧𝑧 = −5 𝑧𝑧 = 5
𝑥𝑥 + 2𝑦𝑦 + 𝑧𝑧 = 4 𝑥𝑥 = 3
4𝑦𝑦 + 12𝑧𝑧 = 52 � 𝑦𝑦 = −2
−𝑧𝑧 = −5 𝑧𝑧 = 5
𝑥𝑥 = 3
Solución → � 𝑦𝑦 = −2
𝑧𝑧 = 5
3
Ejemplo 2. Resolver por eliminación gaussiana simple el siguiente sistema:
Solución:
1
↓ 3 𝐸𝐸𝐸𝐸1
1
↓ 7.00333 𝐸𝐸𝐸𝐸2
Ya tenemos el sistema escalonado, con una sola incógnita en la última ecuación. Ahora
hemos de calcular dicha incógnita y sustituyendo “hacia arriba” encontrar el valor de las
4
restantes. Así pues, la solución es:
𝒙𝒙𝟏𝟏 = 𝟑𝟑. 𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎
𝒙𝒙𝟐𝟐 = −𝟐𝟐. 𝟓𝟓𝟓𝟓𝟓𝟓𝟓𝟓𝟓𝟓
𝒙𝒙𝟑𝟑 = 𝟕𝟕. 𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎
Vamos a considerar sistemas de dos ecuaciones con dos incógnitas para que se pueda
representar gráficamente la búsqueda de soluciones y se pueda ilustrar el problema del
mal condicionamiento. Sean los siguientes sistemas de ecuaciones:
1
− 𝑥𝑥1 + 𝑥𝑥2 = 1
2 � → 𝑅𝑅(𝐴𝐴) = 1 ≠ 2 = 𝑅𝑅(𝐴𝐴∗ )
1 1
− 𝑥𝑥1 + 𝑥𝑥2 =
2 2
(1) SI
1
− 𝑥𝑥1 + 𝑥𝑥2 = 1
2 � → 𝑅𝑅(𝐴𝐴) = 1 = 𝑅𝑅(𝐴𝐴∗ ) < 𝑛𝑛
−𝑥𝑥1 + 2𝑥𝑥2 = 2
(2) SCI
2.3
− 𝑥𝑥 + 𝑥𝑥2 = 1.1
5 1 � → 𝑅𝑅(𝐴𝐴) = 2 = 𝑅𝑅(𝐴𝐴∗ ) = 𝑛𝑛
1
− 𝑥𝑥1 + 𝑥𝑥2 = 1
2
(3) SCD
5
4𝑥𝑥1 + 3𝑥𝑥2 = 27
� → 𝑅𝑅(𝐴𝐴) = 2 = 𝑅𝑅(𝐴𝐴∗ ) = 𝑛𝑛
9𝑥𝑥1 − 5𝑥𝑥2 = 45
(4) SCD
Los sistemas (3) y (4) tienen solución única. Sin embargo, hay una diferencia fundamental
entre ellos y es la sensibilidad de sus resultados ante pequeñas variaciones de los
coeficientes.
En el sistema (4) una pequeña variación en uno de sus coeficientes provoca una pequeña
variación en el resultado final del sistema ya que las rectas que lo componen tienen
pendientes muy distintas.
En el sistema (3) una pequeña variación en sus coeficientes provoca una gran variación
en los resultados pues sus pendientes son muy similares y, una pequeña variación de una
de las dos pendientes provoca que el punto de corte se desplace mucho. A este tipo de
sistemas se denominan sistemas mal condicionados.
6
Sistema MAL CONDICIONADO
Vemos que pequeñas variaciones en los valores de los coeficientes y/o términos
independientes provocan una gran variación en las soluciones del sistema. Estamos, pues,
ante un sistema mal condicionado.
Observación. Si estos sistemas se resuelven con Matlab, la solución del primer y tercer
sistema coinciden con las soluciones dadas, pero el sistema segundo tiene como solución:
7
Ejemplo 4. Consideremos un ejemplo más simple:
𝑥𝑥1 + 2𝑥𝑥2 = 10 𝑥𝑥 = 4
�→� 1
1.1𝑥𝑥1 + 2𝑥𝑥2 = 10.4 𝑥𝑥2 = 3
𝑥𝑥1 + 2𝑥𝑥2 = 10 𝑥𝑥 = 8
�→� 1
1.05𝑥𝑥1 + 2𝑥𝑥2 = 10.4 𝑥𝑥2 = 1
𝑎𝑎21 𝑘𝑘2 ⎬
𝑥𝑥2 = − 𝑥𝑥1 + ⎪
𝑎𝑎22 𝑎𝑎22 ⎭
𝑎𝑎11 𝑎𝑎21
≃
𝑎𝑎12 𝑎𝑎22
Es difícil especificar cuánto de cerca debe estar el determinante de cero para diagnosticar
un mal condicionamiento. Y esto se complica más si recordamos que un determinante
cambia su valor si multiplicamos una o varias ecuaciones por un escalar sin alterarse la
solución del sistema.
8
Para evitar esto se recurre a escalar las ecuaciones de forma tal, que el valor máximo que
pueda haber como coeficiente sea 1. De esta forma, un valor próximo a cero del
determinante nos dará una idea del mal condicionamiento del sistema.
Ejemplo 5. Sabiendo que, en los siguientes sistemas, el (a) no está mal condicionado y
el (b) está mal condicionado. Calcular el determinante de la matriz de los coeficientes
antes y después de escalar las ecuaciones.
Solución:
3𝑥𝑥1 + 2𝑥𝑥2 = 18
� → |𝐴𝐴| = 3 ∗ 2 − 2 ∗ (−1) = 8
−𝑥𝑥1 + 2𝑥𝑥2 = 2
1 1
3𝑥𝑥1 + 2𝑥𝑥2 = 18 3·𝐸𝐸𝑐𝑐1 𝑦𝑦 2·𝐸𝐸𝑐𝑐2 𝑥𝑥1 + 0.667𝑥𝑥2 = 6
� �⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯� �→
−𝑥𝑥1 + 2𝑥𝑥2 = 2 −0.500𝑥𝑥1 + 𝑥𝑥2 = 1
1 1
10𝑥𝑥1 + 20𝑥𝑥2 = 100 20·𝐸𝐸𝑐𝑐1 𝑦𝑦 20·𝐸𝐸𝑐𝑐2 0.50𝑥𝑥1 + 𝑥𝑥2 = 5
� �⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯� �→
11𝑥𝑥1 + 20𝑥𝑥2 = 104 0.55𝑥𝑥1 + 𝑥𝑥2 = 5.20
9
8.4. Técnicas de mejoramiento de soluciones.
Aparte de asegurar al máximo los coeficientes del sistema, el uso de un mayor número
de cifras significativas mejora la solución final en sistemas mal condicionados.
8.4.2. Pivoteo
Para reducir errores de redondeo, a la hora de eliminar incógnitas hemos de procurar que
la ecuación base no tenga el coeficiente de la incógnita a eliminar próximo a cero. Para
ello basta elegir, como ecuación base, la ecuación cuyo coeficiente sea mayor.
Solución:
a) Sin pivoteo
1
0.0003𝑥𝑥1 + 3.0000𝑥𝑥2 = 2.0001 𝐸𝐸𝑐𝑐2 − 0.0003 𝐸𝐸𝑐𝑐1
� �⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯�
1.0000𝑥𝑥1 + 1.0000𝑥𝑥2 = 1.0000
𝑥𝑥1 = 0
Solución → �
𝑥𝑥2 = 0.6667
b) Con pivoteo
10
1.0000𝑥𝑥1 + 1.0000𝑥𝑥2 = 1.0000
→ �
+ 2.9997𝑥𝑥2 = 1.9998
𝑥𝑥1 = 0.3333
Solución → �
𝑥𝑥2 = 0.6667
8.4.3. Escalamiento
Además de servir para la evaluación del mal condicionamiento, minimiza los errores de
redondeo cuando alguno de los coeficientes de un sistema es mucho más grande que los
demás.
a) Directamente.
b) Con escalamiento y pivoteo.
Solución:
a) Directamente
1
2𝑥𝑥1 + 100000𝑥𝑥2 = 100000 𝐸𝐸𝑐𝑐2 − 2 𝐸𝐸𝑐𝑐1 2𝑥𝑥1 + 100000𝑥𝑥2 = 100000
� �⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯� �
𝑥𝑥1 + 𝑥𝑥2 = 2 − 49999𝑥𝑥2 = −49998
𝑥𝑥1 = 0.00
→ Solución �
𝑥𝑥2 = 1.00
b) Escalamiento y pivoteo
1
2𝑥𝑥1 + 100000𝑥𝑥2 = 100000 100000 𝐸𝐸𝑐𝑐1 (Escalamiento)
� �⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯�
𝑥𝑥1 + 𝑥𝑥2 = 2
11
𝑥𝑥1 = 1.00
→ Solución �
𝑥𝑥2 = 1.00
Es aquí donde pueden resultar más exactos los métodos numéricos iterativos, pues se
pueden continuar aplicando hasta reducir el error al nivel deseado.
Método de Gauss-Seidel
Esta técnica muestra cierta similitud con el método de iteración de punto fijo para la
resolución de ecuaciones algebraicas ordinarias, ya que consiste en despejar una de las
incógnitas de una ecuación dejándola en función de las otras. Generalmente se despejan
las incógnitas que ocupan la diagonal principal del sistema.
12
𝑎𝑎11 𝑥𝑥1 + 𝑎𝑎12 𝑥𝑥2 + 𝑎𝑎13 𝑥𝑥3 + ... + 𝑎𝑎1𝑛𝑛 𝑥𝑥𝑛𝑛 = 𝑘𝑘1
𝑎𝑎21 𝑥𝑥1 + 𝑎𝑎22 𝑥𝑥2 + 𝑎𝑎23 𝑥𝑥3 + ... + 𝑎𝑎2𝑛𝑛 𝑥𝑥𝑛𝑛 = 𝑘𝑘2 ⎫⎪
𝑎𝑎31 𝑥𝑥1 + 𝑎𝑎32 𝑥𝑥2 + 𝑎𝑎33 𝑥𝑥3 + ... + 𝑎𝑎3𝑛𝑛 𝑥𝑥𝑛𝑛 = 𝑘𝑘3
. . . . . . ... . . . . ⎬⎪
𝑎𝑎𝑛𝑛1 𝑥𝑥1 + 𝑎𝑎𝑛𝑛2 𝑥𝑥2 + 𝑎𝑎𝑛𝑛3 𝑥𝑥3 + ... + 𝑎𝑎𝑛𝑛𝑛𝑛 𝑥𝑥𝑛𝑛 = 𝑘𝑘𝑛𝑛 ⎭
En el proceso iterativo, cada una de las aproximaciones de cada variable que se calcula
se sustituye inmediatamente en el cálculo de la siguiente variable en esa misma iteración;
es decir, en las fórmulas se sustituye siempre el valor más actualizado que se
disponga de cada variable. Posteriormente sustituimos esta solución aproximada en las
ecuaciones y volvemos a obtener una solución aún más aproximada. Así sucesivamente
hasta que se cumpla el criterio de parada (error relativo inferior a uno dado) para todas
las incógnitas. Es decir, que si paramos en la iteración k se ha de cumplir que:
𝑥𝑥𝑖𝑖𝑘𝑘 − 𝑥𝑥𝑖𝑖𝑘𝑘−1
𝜀𝜀𝑥𝑥 𝑘𝑘 =� � ∗ 100 ≤ 𝜀𝜀𝑟𝑟 , ∀𝑖𝑖 = 1,2, . . . , 𝑛𝑛
𝑖𝑖 𝑥𝑥𝑖𝑖𝑘𝑘
Siendo 𝜀𝜀𝑟𝑟 el error relativo máximo que hemos adoptado como criterio de parada para el
proceso iterativo.
1
Generalmente partiremos de esta solución.
13
Sin embargo, en caso de fallar el método se puede buscar un reordenamiento de las
ecuaciones, de tal manera que el sistema se transforme en otro cuya matriz de coeficientes
sea diagonalmente dominante, según el teorema siguiente:
𝑛𝑛
Cabe subrayar que son pocos los sistemas de ecuaciones que cumplen con el criterio de
convergencia antes mencionado, sin embargo, si se ordenan las ecuaciones para que el
sistema cumpla con tal criterio, entonces se tiene por seguro que el sistema convergerá.
En caso de no cumplirse por completo el teorema, por lo menos, se debe aproximar lo
más que se pueda, para obtener algún beneficio.
Ecuación 2. La incógnita que ocupa la diagonal principal es 𝑥𝑥2 , por tanto, su coeficiente
en valor absoluto debe ser mayor que la suma de los valores absolutos del resto de los
coeficientes de las restantes incógnitas que intervienen en la 2ª ecuación, es decir,
|−10| > |1| + |2| + |−1| SE CUMPLE.
Ecuación 3. La incógnita que ocupa la diagonal principal es 𝑥𝑥3 , por tanto, su coeficiente
en valor absoluto debe ser mayor que la suma de los valores absolutos del resto de los
coeficientes de las restantes incógnitas que intervienen en la 3ª ecuación, es decir,
|8| > |3| + |−2| + |−1| SE CUMPLE.
14
ejemplo, en la ecuación 4ª la incógnita que ocupa la diagonal principal es 𝑥𝑥4 , por tanto,
su coeficiente en valor absoluto debe ser mayor que la suma de los valores absolutos del
resto de los coeficientes de las restantes incógnitas que intervienen en la 4ª ecuación, pero
|3| < |6| + |−1| + |−1| NO SE CUMPLE.
A la hora de resolver el sistema, podemos abordarlo tal como está, sin tener asegurada su
convergencia, o realizar cambios en las ecuaciones para asegurarla.
Si nos decidimos por esta segunda opción, por ejemplo, en el sistema anterior, si
intercambiamos la ecuación 1ª con la 4ª obtenemos el sistema equivalente siguiente:
𝑥𝑥 − 3𝑦𝑦 + 12𝑧𝑧 = 10
5𝑥𝑥 + 12𝑦𝑦 + 2𝑧𝑧 = −33 �
𝑥𝑥 − 14𝑦𝑦 = −103
Solución:
Pero aún nos falta que se cumpla en la primera ecuación. Pero si sumamos a la ecuación
1 la ecuación 2:
15
la certeza de que el sistema siguiente, equivalente al inicial, convergerá con seguridad por
el método de Gauss-Seidel,
Ejemplo 10. Resolver por Gauss-Seidel, el siguiente sistema de ecuaciones, hasta que el
error relativo sea inferior al 1%. Utilizar 3 cifras decimales.
Solución:
Calculemos primero las fórmulas iterativas para este ejercicio, pero si queremos
asegurarnos la convergencia para este método, antes debemos comprobar que se cumple
que:
𝑛𝑛
Entonces, las fórmulas iterativas para este sistema que nos aseguran la convergencia son:
ITERACIÓN 1:
7.850+0.100·(0.000)+0.200·(0.000)
𝑥𝑥11 = = 2.617 ⎫
3
𝑥𝑥10 = 0.000 ⎪
⎪
𝑥𝑥20 = 0.000 �
→ 𝑥𝑥21 = −19.300−0.100𝑥𝑥1+0.300𝑥𝑥3 𝐴𝐴 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇
7 ⎬
𝑥𝑥30 = 0.000
71.400−0.300𝑥𝑥1 +0.200𝑥𝑥2
⎪
⎪
𝑥𝑥31 = ⎭
10
Ahora, para calcular la 𝑥𝑥2 , no tomamos el valor 𝑥𝑥1 = 0.000 pues ya disponemos de un
valor más actualizado, 𝑥𝑥1 = 2.617:
7.850+0.100·(0.000)+0.200·(0.000)
𝑥𝑥11 = ⎫ = 2.617
3
𝑥𝑥11 = 2.617 ⎪
⎪
𝑥𝑥20 = 0.000 �
→ 1
𝑥𝑥2 =
−19.300−0.100·(2.617)+0.300·(0.000)
= −2.795 𝐴𝐴 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇
7 ⎬
𝑥𝑥30 = 0.000
⎪
⎪
1 71.400−0.300𝑥𝑥1 +0.200𝑥𝑥2
𝑥𝑥3 = ⎭
10
Nuevamente, para calcular para calcular la 𝑥𝑥3 , no tomamos el valor 𝑥𝑥1 = 0.000, ni
𝑥𝑥2 = 0.000 pues ya disponemos de valores más actualizados, 𝑥𝑥1 = 2.617 y
𝑥𝑥2 = −2.795:
17
7.850+0.100·(0.000)+0.200·(0.000)
𝑥𝑥11 = = 2.617 ⎫
3
𝑥𝑥11 = 2.617 ⎪
⎪
𝑥𝑥21 = −2.795 �
→ 𝑥𝑥21 = −19.300−0.100·(2.617)+0.300·(0.000) = −2.795 𝐴𝐴 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇
7 ⎬
𝑥𝑥30 = 0.000
⎪
⎪
71.400−0.300·(2.617)+0.200·(−2.795)
𝑥𝑥31 = = 7.006 ⎭
10
2.617−0.000
𝜀𝜀𝑥𝑥11 = � 2.617
� ∗ 100 = 100% > 1%
𝜀𝜀𝑥𝑥21 = � (Colocar en tabla)
𝜀𝜀𝑥𝑥31 =
Como el error relativo en una de las incógnitas es superior al 1%, hemos de continuar el
proceso iterativo abordando la iteración 2.
ITERACIÓN 2:
Ahora, para calcular la 𝑥𝑥1 , tomamos en primer lugar los valores más actualizados de
𝑥𝑥2 = −2.795 y 𝑥𝑥3 = 7.006. A continuación, calcularemos 𝑥𝑥2 y después 𝑥𝑥3 con los
últimos valores de las variables que vayamos calculando.
2.991−2.617
𝜀𝜀𝑥𝑥12 = � 2.991
� ∗ 100 = 12.504% > 1%
𝜀𝜀𝑥𝑥22 = � (Colocar en tabla)
𝜀𝜀𝑥𝑥32 =
Como el error relativo en una de las incógnitas es superior al 1%, hemos de continuar el
proceso iterativo abordando la iteración 3.
ITERACIÓN 3:
Ahora, para calcular la 𝑥𝑥1 , tomamos en primer lugar los valores más actualizados de
𝑥𝑥2 = −2.500 y 𝑥𝑥3 = 7.000. A continuación, calcularemos 𝑥𝑥2 y después 𝑥𝑥3 con los
últimos valores de las variables que vayamos calculando.
3.000−2.991
𝜀𝜀𝑥𝑥13 = � 3.000
� ∗ 100 = 0.300% < 1% ⎫
⎪
⎪
−2.500+2.500
𝜀𝜀 𝑥𝑥 3= �
−2.500 � ∗ 100 = 0.000% < 1% (Colocar en tabla)
2 ⎬
⎪
⎪
7.000−7.000
𝜀𝜀𝑥𝑥33 = � 7.000 � ∗ 100 = 0.000% < 1% ⎭
19
Iteración 𝒙𝒙𝟏𝟏 𝒙𝒙𝟐𝟐 𝒙𝒙𝟑𝟑 𝜺𝜺𝒙𝒙𝟏𝟏 𝜺𝜺𝒙𝒙𝟐𝟐 𝜺𝜺𝒙𝒙𝟑𝟑
0 0.000 0.000 0.000
1 2.617 -2.795 7.006 100.000>1%
2 2.991 -2.500 7.000 12.504>1%
3 3.000 -2.500 7.000 0.300<1% 0.000<1% 0.000<1%
Ejercicios propuestos.
1.- Se deja como ejercicio la resolución, por el método de Gauss-Seidel, del sistema
propuesto en el ejemplo 8.
Solución: 𝑥𝑥1 = 1.5939; 𝑥𝑥2 = 2.0094; 𝑥𝑥3 = 2.7895 𝑦𝑦 𝑥𝑥4 = 4.0786.
2.- Se deja como ejercicio la resolución, por el método de Gauss-Seidel, del sistema
propuesto en el ejemplo 9.
Solución: 𝑥𝑥1 = −22.1143; 𝑥𝑥2 = 5.7775 𝑦𝑦 𝑥𝑥3 = 4.1206.
BIBLIOGRAFÍA
Burden, R. L. and J. D. Faires (1985). Análisis Numérico. México, Grupo Editorial
Iberoamericana, S. A.
García, A. et al. (1993). Calculo I. Teoría y problemas de análisis matemático en una variable.
Madird, CLAGSA.
Quintana, P. and et al. (2005). Métodos numéricos con aplicaciones en Excel. Barcelona.,
Editorial Reverté, S.A.
20