Documentacióngauss_seidel_residuo(A, x, b)

gauss_seidel_residuo(A,x,b)\texttt{gauss\_seidel\_residuo}(A, x, b)

Nombre

gauss_seidel_residuo - Calcula el residuo r = b - A x de un sistema lineal.

Sinopsis

r = gauss.gauss_seidel_residuo(A, x, b)

Descripcion

Construye el vector residuo asociado a una solucion aproximada x.

Sirve para medir que tan bien satisface el sistema lineal una aproximacion obtenida por Gauss-Seidel u otro metodo iterativo.

Formula:

r=bAxr=b-Ax

Validaciones y casos borde

  • Valida que A sea cuadrada y no vacia.
  • Valida que x y b sean matrices columna compatibles con A.
  • Si alguna condicion falla, emite ERROR().

Comportamiento

  • Recorre las filas de A y acumula el producto A x fila a fila.
  • Resta ese valor a la componente correspondiente de b.
  • Retorna una MATRIZ columna con el residuo del sistema.

Funciones API relacionadas

  • gauss.gauss_seidel()
  • gauss.gauss_seidel_norma_infinito()
  • gauss.jacobi()
  • gauss.sor()

Parámetros

ParámetroTipoDescripción
AMATRIZMatriz de coeficientes A.
xMATRIZVector columna x, representado como MATRIZ.
bMATRIZVector columna b, representado como MATRIZ.

Valor de retorno

MATRIZ - Matriz columna r con el residuo b-Ax.

Ejemplo

ejemplo.blox
Solo lectura
INCLUIR "matrices.api"
INCLUIR "gauss.api"

FUNCION PRINCIPAL
INICIO
    MATRIZ A[3][3], b[3][1], x0[][]
    MATRIZ x_sor[][], r_sor[][]
    NUMERICO i, nr_sor, omega

    // Definimos la matriz A
        A = [[ 4, -1,  1],
             [-2,  6,  1],
             [-1,  1,  7]]

    // Definimos la matriz B
        b = [[ 7],
             [ 9],
             [-6]]


    IMPRIMIR("\nPROBLEMA:")
    IMPRIMIR(" Ax = b\n\n")

    IMPRIMIR("\nA = ")
    matrices.imprimir(A)
    IMPRIMIR("\nb = ")
    matrices.imprimir(b)


    // x0
    x0 = matrices.carga_cero(3,1)

    omega = 1.01   // por ejemplo

    x_sor = gauss.sor(A, b, x0, omega, 0.1, 100)

    IMPRIMIR("\nSolución aproximada por SOR (omega = ", omega, "):\n")

    IMPRIMIR("\nx = ")
    matrices.imprimir(x_sor)

    r_sor  = gauss.gauss_seidel_residuo(A, x_sor, b)
    nr_sor = gauss.gauss_seidel_norma_infinito(r_sor)

    IMPRIMIR("\nResiduo SOR:\n")
    matrices.imprimir(r_sor)
    IMPRIMIR("\n||r_sor||_inf = ", nr_sor:4)

FINAL


Restringido: este ejemplo no puede ejecutarse en el Playground web porque la API requerida no está disponible en el sandbox.