Mostrando las entradas con la etiqueta arreglos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta arreglos. Mostrar todas las entradas

Solución de sistemas de ecuaciones con el método de Gauss-Jordan en c++



la eliminación de Gauss-Jordanes un algoritmo para determinar las soluciones de un sistema de ecuaciones lineales, encontrar matrices e inversas. Un sistema de ecuaciones se resuelve por el método de Gauss cuando se obtienen sus soluciones mediante la reducción del sistema dado a otro equivalente en el que cada ecuación tiene una incógnita menos que la anterior. El método de Gauss transforma la matriz de coeficientes en una matriz triangular superior. El método de Gauss-Jordan continúa el proceso de transformación hasta obtener una matriz diagonal.

ejemplo:

Supongamos que es necesario encontrar los números "x", "y", "z", que satisfacen simultáneamente estas ecuaciones:


Esto es llamado un sistema de ecuaciones lineales. El objetivo es reducir el sistema a otro equivalente, que tenga las mismas soluciones. Las operaciones (llamadas elementales) son estas:
Multiplicar una ecuación por un escalar no nulo.
Intercambiar de posición dos ecuaciones
Sumar a una ecuación un múltiplo de otra.

Estas operaciones pueden representarse con matrices elementales

En nuestro ejemplo, eliminamos x de la segunda ecuación sumando 3/2 veces la primera ecuación a la segunda y después sumamos la primera ecuación a la tercera. El resultado es:

Ahora eliminamos y de la primera ecuación sumando -2 veces la segunda ecuación a la primera, y sumamos -4 veces la segunda ecuación a la tercera para eliminar y.


Finalmente eliminamos z de la primera ecuación sumando -2 veces la tercera ecuación a la primera, y sumando 1/2 veces la tercera ecuación a la segunda para eliminar z.


Despejando, podemos ver las soluciones:


Para clarificar los pasos, se trabaja con la matriz aumentada. Podemos ver los 3 pasos en su notación matricial:

Primero:


Después,


Por último
.

solución de sistemas de ecuaciones con el método de Gauss(eliminación de Gauss con pivote) en c++



  una técnica que se desarrollo para combatir los     errores de truncamiento por ceros en la diagonal   o los errores de redondeo por números cercanos   a cero es la técnica de pivoteo parcial, esta          técnica consiste en ubicar en la fila pivote el  termino de mayor magnitud de tal forma que al realizar la división por dicho termino no se incurre en la violación de división por números cercanos a cero ni la división por cero.

Se define entonces como:

En cada etapa k se busca el mayor de los elementos de la columna k, que ocupan posiciones mayores o iguales que k, ocupe la posición i, donde k<=i<=n. después se realiza el intercambio de filas. El proceso como tal es idéntico a eliminación gaussiana simple solo que antes de calcular los multiplicadores se realiza el pivoteo si es necesario. Al realizar el pivoteo se obtienen valores lo más pequeños posibles para los multiplicadores reduciendo así el error de redondeo.