La Relajación Sucesiva en Métodos Numéricos

La resolución de sistemas de ecuaciones lineales es un problema fundamental en muchas aplicaciones científicas y de ingeniería. Aunque existen métodos directos como la eliminación de Gauss, para sistemas grandes y esparcidos, los métodos iterativos como la Relajación Sucesiva (Successive Over-Relaxation, SOR) son frecuentemente preferidos debido a su eficiencia y menor requerimiento de memoria.

¿Qué es la Relajación Sucesiva?

La Relajación Sucesiva (SOR) es una mejora del Método de Gauss-Seidel, que es a su vez una variante del Método de Jacobi. Estos métodos son iterativos, lo que significa que comienzan con una solución inicial y la refinan a través de múltiples iteraciones hasta alcanzar la convergencia. El SOR introduce un factor de relajación, ω, para acelerar la convergencia.

Cómo Funciona

El método SOR se basa en la actualización de los valores de las variables en cada iteración de la siguiente manera:

SOR


El valor de ω es crucial para la eficiencia del método. Si ω = 1, el método SOR se convierte en el método de Gauss-Seidel estándar. Si ω > 1, el método se llama “sobre-relajación”, mientras que si 0 < ω < 1, se llama “sub-relajación”.

Ventajas y Desventajas

Ventajas:

  1. Eficiencia: Puede ser significativamente más rápido que el método de Gauss-Seidel para ciertos sistemas.
  2. Convergencia: Para sistemas diagonales dominantes, el SOR generalmente asegura una convergencia más rápida.

Desventajas:

  1. Selección del Factor de Relajación: Elegir el valor óptimo de ω puede no ser trivial y podría requerir experimentación o técnicas adicionales.
  2. No Garantiza Convergencia: Como otros métodos iterativos, no siempre garantiza la convergencia, especialmente si el sistema no es adecuadamente condicionado.

Aplicaciones

El SOR es ampliamente utilizado en simulaciones numéricas y en la solución de ecuaciones diferenciales parciales (EDPs) que surgen en diversos campos como la física, la ingeniería y la economía. Un ejemplo típico es la solución de problemas de flujo de fluidos y transferencia de calor.

La Relajación Sucesiva es una poderosa herramienta en el arsenal de métodos numéricos. Su capacidad para mejorar la convergencia de métodos iterativos tradicionales la hace valiosa para resolver sistemas grandes y esparcidos. No obstante, requiere una cuidadosa selección del factor de relajación para alcanzar su máximo potencial.


Ejemplo:


Consideremos el siguiente sistema de ecuaciones lineales:


4x1-x2 = 3

-2x1 +5x2 = -3


Podemos escribir este sistema en forma matricial Ax=bAx = b donde:


A=(4125),x=(x1x2),b=(33)A = \begin{pmatrix} 4 & -1 \\ -2 & 5 \end{pmatrix}, \quad x = \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}, \quad b = \begin{pmatrix} 3 \\ -3 \end{pmatrix}

Supongamos que usamos un factor de relajación ω=1.25\omega = 1.25. Aquí está el procedimiento para resolver este sistema utilizando SOR:

  1. Elige una solución inicial: x(0)=(00)x^{(0)} = \begin{pmatrix} 0 \\ 0 \end{pmatrix}

  2. Itera utilizando la fórmula SOR:

Para x1x_1:

x1(k+1)=(1ω)x1(k)+ωa11(b1j=1,j12a1jxj(k))x_1^{(k+1)} = (1 - \omega)x_1^{(k)} + \frac{\omega}{a_{11}} \left( b_1 - \sum_{j=1, j \neq 1}^{2} a_{1j} x_j^{(k)} \right)

Para x2x_2:

x2(k+1)=(1ω)x2(k)+ωa22(b2j=1,j22a2jxj(k+1))x_2^{(k+1)} = (1 - \omega)x_2^{(k)} + \frac{\omega}{a_{22}} \left( b_2 - \sum_{j=1, j \neq 2}^{2} a_{2j} x_j^{(k+1)} \right)

Donde:

x1(k+1)=(11.25)x1(k)+1.254(3+x2(k))x2(k+1)=(11.25)x2(k)+1.255(3+2x1(k+1))x_1^{(k+1)} = (1 - 1.25)x_1^{(k)} + \frac{1.25}{4} \left( 3 + x_2^{(k)} \right) \\ x_2^{(k+1)} = (1 - 1.25)x_2^{(k)} + \frac{1.25}{5} \left( -3 + 2x_1^{(k+1)} \right)

Vamos a realizar algunas iteraciones para ver cómo se actualizan los valores:

Iteración 1:

x1(1)=(11.25)(0)+1.254(3+0)=0.9375x2(1)=(11.25)(0)+1.255(3+2×0.9375)=0.28125x_1^{(1)} = (1 - 1.25)(0) + \frac{1.25}{4}(3 + 0) = 0.9375 \\ x_2^{(1)} = (1 - 1.25)(0) + \frac{1.25}{5}(-3 + 2 \times 0.9375) = -0.28125

Iteración 2:

x1(2)=(11.25)(0.9375)+1.254(3+(0.28125))=0.86328125x2(2)=(11.25)(0.28125)+1.255(3+2×0.86328125)=0.3291015625x_1^{(2)} = (1 - 1.25)(0.9375) + \frac{1.25}{4}(3 + (-0.28125)) = 0.86328125 \\ x_2^{(2)} = (1 - 1.25)(-0.28125) + \frac{1.25}{5}(-3 + 2 \times 0.86328125) = -0.3291015625

Y así sucesivamente, hasta que los valores converjan a una solución con la precisión deseada. Tras suficientes iteraciones, los valores de x1x_1 y x2x_2 deberían aproximarse a la solución exacta del sistema.


Redactado con ayuda de Inteligencia Artificial

Felipe Gutiérrez Cerda

Felipe Gutiérrez Cerda is a researcher, and transport engineer from from Pontifical Catholic University of Valparaíso since 2005, and also is a graduate of Magister on same area and University since 2017.

Artículo Anterior Artículo Siguiente