Documentacióngauss_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:
Validaciones y casos borde
- Valida que
Asea cuadrada y no vacia. - Valida que
xybsean matrices columna compatibles conA. - Si alguna condicion falla, emite
ERROR().
Comportamiento
- Recorre las filas de
Ay acumula el productoA xfila a fila. - Resta ese valor a la componente correspondiente de
b. - Retorna una
MATRIZcolumna con el residuo del sistema.
Funciones API relacionadas
gauss.gauss_seidel()gauss.gauss_seidel_norma_infinito()gauss.jacobi()gauss.sor()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| A | MATRIZ | Matriz de coeficientes A. |
| x | MATRIZ | Vector columna x, representado como MATRIZ. |
| b | MATRIZ | Vector columna b, representado como MATRIZ. |
Valor de retorno
MATRIZ - Matriz columna r con el residuo b-Ax.
Ejemplo
ejemplo.blox
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.