Punto fijo

Es un método iterativo para resolver sistemas de ecuaciones no necesariamente lineales, especialmente para encontrar raíces de funciones f(x), siempre que se cumplan criterios de convergencia.

Se transforma la ecuación f(x) = 0 en la forma x = g(x). Si se cumple que x = g(x), entonces x es un punto fijo de g.

¿Para qué sirve?

Sirve para aproximar soluciones de ecuaciones cuando no es posible (o práctico) encontrar soluciones exactas algebraicamente. Es ampliamente usado en:

  • Ingeniería: resolución de ecuaciones no lineales en estructuras, electricidad, fluidos, etc.
  • Economía: modelos de equilibrio, tasas de interés, optimización.
  • Ciencias físicas: problemas de transferencia de calor, dinámica, etc.
  • Computación: algoritmos de optimización, inteligencia artificial, machine learning.

¿Cómo se usa en la vida real?

Ejemplo:
Imaginemos que se está diseñando un sistema de calefacción y necesitas saber la temperatura de equilibrio en una tubería donde entra agua caliente. La temperatura depende de una fórmula complicada, y no puedes resolverla fácilmente de forma directa.

Entonces, conviertes esa ecuación a la forma x = g(x), y eliges un valor inicial x0. Luego aplicas el método iterativo hasta que la temperatura se estabilice dentro de una tolerancia aceptable.

Algoritmo:

  1. Sumar x a ambos términos de la ecuación.
  2. Despejar la x del término del primer grado de la ecuación.
  3. Evaluar la convergencia:
    • Derivar la función g(x).
    • Verificar que el valor inicial cumpla con el criterio de convergencia: |g'(x)| < 1.
  4. Obtener una nueva aproximación usando la fórmula:
    xn+1 = g(xn)
  5. Evaluar la aproximación relativa:

    Ecuación del error relativo:

    Ea = |
    xn+1 − xn

    xn+1
    | × 100
  6. Si el error es mayor que la tolerancia, repetir el proceso. Si no, finalizar.
  7. El valor xn se considera la raíz aproximada.
Ejemplo 1

f(x) = cos(x) - x

Esta función su primer punto es: 0.5.


Ejemplo 2

f(x) = x³ - x - 2

Esta función su primer punto es: 0.5.


Ejemplo 3

f(x) = e^(−x) −x

Esta función su primer punto es: 0.5.


EXPLICACIÓN DE CÓDIGO

Método de Punto Fijo en Python


import sympy as sp

# Definir el símbolo
x = sp.Symbol('x')

# Paso 1: Definir la función f(x)
def f(x):
    return sp.exp(-x) - x

# Paso 2: Reescribir f(x) = 0 en la forma x = g(x)
def g(x):
    return sp.exp(-x)

# Paso 3: Derivar g(x) para evaluar la convergencia
g_expr = g(x)
g_prime = sp.diff(g_expr, x)

# Paso 4: Evaluar la derivada en el valor inicial
Xi = 0.5  # Valor inicial
g_prime_val = abs(g_prime.subs(x, Xi))

# Paso 5: Verificar el criterio de convergencia
if g_prime_val >= 1:
    print(f"El método puede no converger ya que |g'(x)| = {g_prime_val} ≥ 1 en x = {Xi}")
else:
    print(f"El método puede converger ya que |g'(x)| = {g_prime_val} < 1 en x = {Xi}")

    # Paso 6: Configurar la tolerancia y el número máximo de iteraciones
    Es = 0.05  # Tolerancia del 5%
    max_iter = 20

    print("\nIteración\tXi\t\tg(Xi)\t\tEa (%)")
    for i in range(1, max_iter + 1):
        Xr = g(Xi)
        Ea = abs((Xr - Xi) / Xr) * 100

        print(f"{i}\t\t{Xi:.8f}\t{Xr:.8f}\t{Ea:.8f}")

        if Ea < Es:
            print(f"\nRaíz aproximada encontrada: {Xr:.8f}")
            print(f"Error aproximado: {Ea:.8f}%")
            break

        Xi = Xr
    else:
        print("\nNo se alcanzó la tolerancia deseada en el número máximo de iteraciones.")