Contenido
Elim Gaussiana.....................................................................................2
Gauss-Jordan........................................................................................6
Doolittle................................................................................................7
Jacobi....................................................................................................8
Gauss-Seidel.........................................................................................9
Elim Gaussiana
Como tal, la ejecución del código con el método Elim Gaussiana
proporcionado no me estaba dando los resultados correctos, en el
caso de que el algoritmo estaba desarrollado de manera incompleta y
no solo haya que modificar los arreglos A y B. Opte por investigar otro
algoritmo que me permitiera encontrar dicho problema.
Ilustración 1 solución al problema de Excel
En sí, la salida muestra 4 partes principales.
La matriz aumentada
Pivoteo parcial
Eliminación
Solución
Se utiliza la librería numpy para utilizar las funciones matemáticas
avanzadas que este ofrece.
Ilustración 2 Arreglos a trabajar
Para la captura de los datos, se utilizan dos arreglos:
A: Matriz de coeficientes – bidimensional de 3x3
B: Vector de términos independientes – unidimensional de 1x3
Ilustración 3 instrucciones principales
El casicero es necesario para algún problema que de resultados
valores muy cercanos a cero al redondear.
La siguiente línea es para convertir A en tipo flat para asegurar
precisión a la hora de desarrollar los cálculos.
Ilustración 4 Pivoteo por filas
Se utiliza el método de pivoteo hacia adelante para evitar errores
numéricos intercambiando las filas cuando es muy pequeño.
Ilustración 5 Eliminación hacia adelante
Este es el proceso principal de eliminación de Gauss, que convierte la
matriz en una matriz triangular superior.
Ilustración 6 Sustitución hacia atrás
Después de eliminar, se realiza la sustitución.
Ilustración 7 Salida final
Son las instrucciones para la salida final, la matriz aumentada,
pivoteo parcial, eliminación y la solución.
Ilustración 8 Algoritmo investigado
Gauss-Jordan
Ilustración 9 Matriz aumentada
La línea de instrucción concatena A y b como columnas, y dado que b
esta denotado por columna, este utiliza el método reshape para
convertirlo en columna.
Ilustración 10 Normalización del pivote
Realiza y convierte los elementos de la diagonal en 1, dado que es el
método.
Ilustración 11 Ceros en fila
Para cada fila j diferente de la fila i , se hace la eliminación de la
columna i. en caso contrario este lo va a convertir en 0.
Luego, el resultado Ab se asigna a la variable x que es el que retorna
la función.
Ilustración 12 Ejecución Gauss-Jordan
En el apartado de ejecución es básicamente las definiciones de los
arreglos y la llamada a la función.
Ilustración 13 solución
Doolittle
Ilustración 14 Funcion Doolittle
La función doolittle basicamente factoriza una matriz A en dos
matrices triangulares, este con la intención de utilizar el método
Doolittle.
Ilustración 15 Diagonal
Esta parte de código es para asegurarnos que la diagonal sea 1,
posteriormente cada for es para el calculo de la matriz L y U
respectivamente.
Una vez que se rienen las matriucesm se procede a resolver la ultima
parte con la función lu.
Ilustración 16 Sustitución hacia atrás
Se resuelve el sistema Ux = y usando sustitución hacia atrás. Se
calcula cada elemento de x empezando desde la última fila hacia
arriba.
Ilustración 17 Ejecución Doolittle
En el apartado de ejecución es básicamente las definiciones de los
arreglos y la llamada a la función.
Jacobi
No estoy segura de que deba dar ese resultado.
Según el código, dentro de la función se inicializan las variables
n: Es el tamaño de la matriz A (número de filas o columnas).
x: Es el vector de solución actual. Si no se pasa un valor inicial (x0),
se inicializa con un vector de ceros del mismo tamaño que b.
x_new: Es un vector temporal donde se almacenarán los valores
calculados en cada iteración.
Ilustración 18 Iteración de Jacobi
El bucle principal ejecuta el método de Jacobi hasta un número
máximo de iteraciones (en este caso hasta 100 según se estipula en
los parámetros formales) o hasta que la solución converja.
Ilustración 19 Criterio de Convergencia
Si la diferencia es menor que la tolerancia (tol), se considera que el
método ha convergido, y se devuelve la solución actual x_new.
Después de cada iteración, la solución x se actualiza con los valores
de x_new para continuar con la siguiente iteración.
En el caso de que alcance el máximo de iteraciones, debería imprimir
"El método de Jacobi no converge".
Ilustración 20 Ejecución Jacobi
Gauss-Seidel
Ilustración 21 Inicialización de Variables
n: Número de ecuaciones (tamaño de la matriz A).
x: Vector que almacena los valores actuales de la solución. Si no se
especifica un vector inicial x0, se inicializa con ceros.
Ilustración 22 Iteración
Básicamente como es un método iterativo este ejecuta iteraciones
hasta que se alcanza el número máximo de iteraciones (100
nuevamente) o la solución converge.
Dentro de cada iteración, el vector de solución x_new se actualiza fila
por fila, calculando un nuevo valor para cada elemento.
Va a continuar iterando hasta que la diferencia entre dos iteraciones
sucesivas sea menor que la tolerancia (la condición if).
Ilustración 23 Actualización y no convergencia
Después de cada iteración, el vector x se actualiza con los valores
recién calculados x_new para la siguiente iteración.
En el caso de que alcance el máximo de iteraciones, debería imprimir
" El método de Gauss-Seidel no converge".
Ilustración 24 Ejecución Gauss-Seidel