Contenido Checked

Eliminación de Gauss

Temas relacionados: Matemáticas

Acerca de este escuelas selección Wikipedia

Esta selección Escuelas fue originalmente elegido por SOS para las escuelas en el mundo en desarrollo que no tienen acceso a Internet. Está disponible como una descarga intranet. SOS Children ha cuidado de niños en África durante cuarenta años. ¿Puedes ayudar a su trabajo en África ?

En álgebra lineal , eliminación de Gauss es un algoritmo que se puede utilizar para determinar las soluciones de un sistema de ecuaciones lineales , para encontrar el rango de una matriz , y para calcular la inversa de una matriz cuadrada invertible. Eliminación de Gauss se llama así por el matemático y científico alemán Carl Friedrich Gauss .

Operaciones elementales de renglón se utilizan en todo el algoritmo. El algoritmo tiene dos partes, cada una de las cuales considera las filas de la matriz en orden. La primera parte reduce la matriz para forma escalonada, mientras que el segundo se reduce aún más la matriz de forma escalonada reducida. La primera parte por sí sola es suficiente para muchas aplicaciones.

Un algoritmo relacionado, pero menos eficiente, Gauss-Jordan eliminación, trae una matriz de forma escalonada reducida en una sola pasada.

Historia

El método de eliminación de Gauss aparece en el Capítulo Ocho, rectangulares matrices, de la importancia de China texto matemático Jiuzhang suanshu o Los nueve capítulos en el arte matemático. Su uso se ilustra en dieciocho problemas, con dos a cinco ecuaciones. La primera referencia al libro de este título se fecha a 179 CE, pero partes de él fueron escritos ya en aproximadamente 150 aC.

Sin embargo, el método fue inventado en Europa de forma independiente. Lleva el nombre de la matemático Carl Friedrich Gauss .

Algoritmo visión general

El proceso de eliminación gaussiana tiene dos partes. La primera parte (Forward Eliminación) reduce un sistema dado a cualquiera triangular o forma escalonada, o resulta en un ecuación degenerada sin solución, indicando que el sistema no tiene solución. Esto se logra mediante el uso de operaciones elementales por filas. Los segundos usos de paso sustitución hacia atrás para encontrar la solución del sistema anterior.

Dicho de forma equivalente para las matrices, la primera parte se reduce a una matriz fila forma escalonada utilizando operaciones elementales por filas, mientras que el segundo lo reduce a forma escalonada reducida, o remar forma canónica.

Otro punto de vista, lo que resulta ser muy útil para analizar el algoritmo, es que la eliminación de Gauss calcula un descomposición de la matriz. Las tres operaciones elementales por filas utilizados en la eliminación de Gauss (multiplicando las filas, el cambio de filas, y añadiendo múltiplos de filas a otras filas) ascienden a multiplicar la matriz original con matrices invertibles de la izquierda. La primera parte del algoritmo calcula una LU descomposición, mientras que la segunda parte, escribe la matriz original como el producto de una matriz invertible determinado de forma única y una matriz escalonada reducida determinado de forma única.

Ejemplo

Supongamos que el objetivo es encontrar y describir la solución (s), si alguno, de la siguiente sistema de ecuaciones lineales :

2x + y - z = 8 \ quad (L_1)
3x - y + 2z = -11 \ quad (L_2)
-2x + Y + 2z = -3 \ quad (L_3)

El algoritmo es el siguiente: eliminar x de todas las ecuaciones siguientes L_1 Y luego eliminar y de todas las ecuaciones siguientes L_2 . Esto pondrá el sistema en forma triangular. Luego, utilizando sustitución regresiva, cada desconocido puede resolverse para.

En nuestro ejemplo, eliminamos x desde L_2 añadiendo \ Begin {matriz} \ frac {3} {2} \ end {matriz} L_1 a L_2 Y luego eliminamos x desde L_3 añadiendo L_1 a L_3 . Formalmente:

L_2 + \ frac {3} {2} L_1 \ rightarrow L_2
L_3 + L_1 \ rightarrow L_3

El resultado es:

2x + y - z = 8 \,
\ Frac {1} {2} y + \ frac {1} {2} z = 1 \,
2y + z = 5 \,

Ahora eliminamos y desde L_3 añadiendo -4L_2 a L_3 :

L_3 + -4L_2 \ rightarrow L_3

El resultado es:

2x + y - z = 8 \,
\ Frac {1} {2} y + \ frac {1} {2} z = 1 \,
-z = 1 \,

Este resultado es un sistema de ecuaciones lineales en forma triangular, y por lo que la primera parte del algoritmo es completa.

La segunda parte, de vuelta de sustitución, consiste en resolver las incógnitas en orden inverso. Así, podemos ver fácilmente que

z = -1 \ quad (L_3)

Luego, z puede ser sustituido en L_2 , Que luego puede ser resuelto fácilmente para obtener

y = 3 \ quad (L_2)

Siguiente, z y y puede ser sustituido en L_1 , Que puede ser resuelto para obtener

x = 2 \ quad (L_1)

Así, el sistema se resuelve.

Este algoritmo funciona para cualquier sistema de ecuaciones lineales. Es posible que el sistema no puede ser reducida a una forma triangular, y aún así tener al menos una solución válida: por ejemplo, si y no se había producido en L_2 y L_3 después de nuestra primera etapa anterior, el algoritmo hubiera sido incapaz de reducir el sistema a la forma triangular. Sin embargo, todavía habría reducido el sistema para forma escalonada. En este caso, el sistema no tiene una solución única, ya que contiene al menos una variable libre. El conjunto solución puede entonces ser expresada paramétricamente (es decir, en términos de las variables libres, de modo que si se eligen valores para las variables libres, se generará una solución).

En la práctica, no suele tratar con los sistemas reales en términos de ecuaciones, sino que hace uso de la matriz aumentada (que también es adecuado para la manipulación de un ordenador). Esto, entonces, es el algoritmo de Gauss Eliminación aplica a la matriz aumentada del sistema anterior, comenzando con:

\ Begin {bmatrix} 2 y 1 y -1 y 8 \\ -3 y -1 y 2 y -11 \\ -2 y 1 y 2 y -3 \ end {bmatrix}

que, al final de la primera parte del algoritmo es similar a esto:

\ Begin {bmatrix} 2 y 1 y -1 y 8 \\ 0 & \ frac {1} {2} & \ frac {1} {2} y 1 \\ 0 & 0 & -1 y 1 \ end {bmatrix }

Es decir, que está en forma escalonada.

Al final del algoritmo, nos quedamos con

\ Begin {bmatrix} 1 & 0 & 0 & 2 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 y -1 \ end {bmatrix}

Es decir, que está en forma escalonada reducida, o forma canónica fila.

Otras aplicaciones

Encontrar la inversa de una matriz

Suponer La es un n \ n veces Matrix y que necesita para calcular su inversa. La n \ n veces matriz de identidad es aumentada a la derecha de La , Formando una n \ épocas 2n matriz (el matriz de bloqueo B = [A, I] ). A través de la aplicación de las operaciones elementales de renglón y el algoritmo de eliminación de Gauss, el bloque de la izquierda de B se puede reducir a la matriz de identidad YO , Lo que deja A ^ {- 1} en el bloque de la derecha de B .

Si el algoritmo no es capaz de reducir La a la forma triangular, entonces La no es invertible.

En la práctica, invertir una matriz casi nunca es necesaria. La mayoría del tiempo, uno es realmente después de la solución de un sistema particular de ecuaciones lineales.

El algoritmo general para calcular los rangos y bases

El algoritmo de eliminación de Gauss se puede aplicar a cualquier m \ times n matriz La . Si conseguimos "atascado" en una columna dada, nos movemos a la siguiente columna. De esta manera, por ejemplo, algunos 6 \ 9 veces matrices pueden transformarse en una matriz que tiene una forma escalonada reducida como

\ Begin {bmatrix} 1 & * y 0 & 0 & * & * & * y 0 y 0 \\ 0 & 0 & 1 & 0 & * & * & * y 0 y 0 \\ 0 & 0 & 0 & 1 & * & * & * y 0 y 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & * y 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ end {bmatrix}

(Los * 's son entradas arbitrarias). Esta matriz escalonada T contiene una gran cantidad de información acerca de La : La rango de La es 5, ya que hay 5 filas distintos de cero en T ; el espacio vectorial abarcado por las columnas de La tiene una base que consiste en la primera, tercera, cuarta, séptima y novena columna de La (las columnas de los de T ), Y la * 's indican cómo las otras columnas de La se puede escribir como combinaciones lineales de las columnas básicos.

Análisis

Eliminación de Gauss en una matriz n × n requiere aproximadamente 2 n 3/3 operaciones. Por lo tanto, tiene una complejidad de \ Mathcal {O} (n ^ 3) \, .

Este algoritmo se puede utilizar en un ordenador para sistemas con miles de ecuaciones e incógnitas. Sin embargo, el costo se convierte en prohibitivo para sistemas con millones de ecuaciones. Estos sistemas grandes se resuelven generalmente usando métodos iterativos. Existen métodos específicos para los sistemas cuyos coeficientes siguen un patrón regular (ver sistema de ecuaciones lineales ).

La eliminación de Gauss se puede realizar sobre cualquier campo.

Eliminación de Gauss es numéricamente estable para diagonalmente dominante o matrices definidas positivas. Para matrices generales, la eliminación de Gauss es generalmente considerado como estable en la práctica si se utiliza pivoteo parcial tal como se describe a continuación, aunque hay ejemplos para lo cual es inestable.

Pseudocódigo

Como se explicó anteriormente, la eliminación de Gauss escribe una determinada matriz m × n Una forma única como producto de un m × matriz invertible m S y una matriz escalonada T. Aquí, S es el producto de las matrices correspondientes a las operaciones de fila realizadas.

El algoritmo formal para calcular T desde La de la siguiente manera. Nosotros escribimos A [i, j] para la entrada en la fila yo , La columna j en la matriz La . La transformación se lleva a cabo "en el lugar", lo que significa que la matriz original La se pierde y sucesivamente reemplazado por T .

i := 1 j := 1 while (i ≤ m and j ≤ n) do Find pivot in column j, starting in row i: maxi := i for k := i+1 to m do if abs(A[k,j]) > abs(A[maxi,j]) then maxi := k end if end for if A[maxi,j] ≠ 0 then swap rows i and maxi, but do not change the value of i Now A[i,j] will contain the old value of A[maxi,j]. divide each entry in row i by A[i,j] Now A[i,j] will have the value 1. for u := i+1 to m do subtract A[u,j] * row i from row u Now A[u,j] will be 0, since A[u,j] - A[i,j] * A[u,j] = A[u,j] - 1 * A[u,j] = 0. end for i := i + 1 end if j := j + 1 end while 

Este algoritmo difiere ligeramente de la que se discutió anteriormente, ya que antes de eliminar una variable, primero intercambia filas para mover la entrada con el mayor valor absoluto a la "posición de pivote". Tal procedimiento pivotante mejora la estabilidad numérica del algoritmo; algunas variantes que también se utilizan.

La columna que se está transformado actualmente se llama columna pivote. Proceder de izquierda a derecha, dejando que la columna pivote sea la primera columna, a continuación, la segunda columna, etc., y finalmente la última columna antes de la línea vertical. Para cada columna pivote, hacer los dos pasos siguientes antes de pasar a la siguiente columna pivote:

  1. Busque el elemento de la diagonal en la columna pivote. Este elemento se llama el pivote. La fila que contiene el pivote se llama la fila pivote. Divide cada elemento de la fila pivote por el pivote para conseguir un nuevo renglón pivote con un 1 en la posición de pivote.
  2. Obtener un 0 en cada posición por debajo de la posición de pivote restando un múltiplo adecuado de la fila de pivote de cada una de las filas por debajo de ella.

Al término de este procedimiento, la matriz aumentada estará en forma escalonada y puede ser resuelto por sustitución regresiva.

Recuperado de " http://en.wikipedia.org/w/index.php?title=Gaussian_elimination&oldid=199193881 "