Eliminação de Gauss-Jordan

Na matemática , mais precisamente na álgebra linear , a eliminação de Gauss-Jordan , também chamada de método do pivô gaussiano , em homenagem a Carl Friedrich Gauss e Wilhelm Jordan , é um algoritmo para determinar as soluções de um sistema de equações lineares , para determinar o posto de uma matriz ou para calcular o inverso de uma matriz invertível (quadrada). Quando aplicamos a eliminação Gaussiana a uma matriz, obtemos sua forma reduzida em escala .

História

Este método é conhecido por matemáticos chineses desde pelo menos o que eu st  século AD. É referenciado no livro chinês Jiuzhang suanshu ( Os nove capítulos sobre arte matemática ), do qual constitui o oitavo capítulo, sob o título "Fang cheng" (o arranjo retangular). O método é apresentado por meio de dezoito exercícios. Em seu comentário datado de 263 , Liu Hui atribui a paternidade Ts'ang Chang, chanceler do imperador da China II ª  século aC.

Na Europa, este método foi descoberto e apresentado em forma moderna no XIX th  século . Em 1810, Carl Friedrich Gauss apresentou seu método dos mínimos quadrados em um livro que estudava o movimento do asteróide Pallas . No artigo 13 deste livro, ele descreve um método geral de resolução de um sistema de equações lineares que constitui a essência do método do pivô. Em 1888, Wilhelm Jordan publicou um livro de geodésia especificando como usar esse método e adotando uma notação ligeiramente diferente. É graças a este último livro que esse método se espalhou pelo Ocidente. É conhecido hoje com o nome de eliminação de Gauss-Jordan ou método do pivô de Gauss .

Algoritmo

Operações

O algoritmo de Gauss-Jordan produz a matriz em escala reduzida de uma matriz usando operações de linha elementares . Três tipos de operações elementares são usados:

Pseudo-código

Let Ser uma matriz A de dimensões n × m  ;

O algoritmo de Gauss-Jordan é o seguinte:

Gauss-Jordan r = 0 (r est l'indice de ligne du dernier pivot trouvé) Pour j de 1 jusqu'à m (j décrit tous les indices de colonnes) | Rechercher max(|A[i,j]|, r+1 ≤ i ≤ n). Noter k l'indice de ligne du maximum | (A[k,j] est le pivot) | Si A[k,j]≠0 alors (A[k,j] désigne la valeur de la ligne k et de la colonne j) | | r=r+1 (r désigne l'indice de la future ligne servant de pivot) | | Diviser la ligne k par A[k,j] (On normalise la ligne de pivot de façon que le pivot prenne la valeur 1) | | Si k≠r alors | | | Échanger les lignes k et r (On place la ligne du pivot en position r) | | Fin Si | | Pour i de 1 jusqu'à n (On simplifie les autres lignes) | | | Si i≠r alors | | | | Soustraire à la ligne i la ligne r multipliée par A[i,j] (de façon à annuler A[i,j]) | | | Fin Si | | Fin Pour | Fin Si Fin Pour Fin Gauss-Jordan


Exemplo.

Começamos da matriz

É uma matriz real, então o módulo de um coeficiente é seu valor absoluto.

Estabilidade numérica

A primeira seção do algoritmo, ou seja, a troca de linha com o maior valor de pivô, visa melhorar a estabilidade numérica do algoritmo. Esta etapa tenta minimizar os erros de arredondamento cumulativos que causam instabilidade numérica. Essa estratégia geralmente permite remediar essa instabilidade, mesmo que possamos dar contra-exemplos.

Complexidade algorítmica

A complexidade algorítmica assintótica de eliminação gaussiana é O ( n 3 ) ( notações de Landau ): n × n é o tamanho da matriz e o número de instruções a serem executadas é proporcional a n 3 . Este algoritmo pode ser usado em um computador para sistemas com milhares de incógnitas e equações . No entanto, o algoritmo de Strassen , que está em O ( n 2.807 ), tem melhor complexidade algorítmica assintótica.

A complexidade algorítmica do pivô gaussiano permanece O ( n 3 ) quando a matriz é esparsa. Na verdade, vamos dar um n × n matriz dos quais apenas k n entradas são não-zero, mas cujas entradas são regularmente distribuídos ao longo das linhas e colunas, então durante o algoritmo pivot de Gauss o número médio de valores diferentes de zero em um a linha irá de k para 2k e então de 3k para n . Portanto, descobrimos que o número de instruções é da ordem de nn (n-1) / 2 .

Calculando o inverso de uma matriz quadrada

A eliminação de Gauss-Jordan pode ser usada para inverter uma matriz quadrada se ela for invertível . Para fazer isso, criamos uma matriz com n linhas e 2 n colunas fazendo fronteira com a matriz A pela matriz identidade I n , que gera uma matriz aumentada  (in) denotada [A | I] . Se a matriz de entrada for invertível, o algoritmo de Gauss-Jordan é aplicado à matriz aumentada. A matriz final é da forma [I | A −1 ] e contém o inverso da matriz inicial em sua seção direita.

Exemplo

Vamos supor a seguinte matriz:

Para encontrar o inverso desta matriz, devemos gerar a matriz aumentada [A | I] como segue:

Aplicando o algoritmo de Gauss-Jordan, obtemos a matriz aumentada em sua seguinte forma em escala reduzida:

Demonstração

Como antes, o primeiro pivô está na primeira linha. Na etapa 2.2.3, a primeira linha torna-se

A etapa 2.2.4 torna-se:

Então nós temos

Para a segunda iteração, permutamos as linhas 2 e 3 e dividimos a nova linha 2 por 2, ou seja, na etapa 2.2.3:

Na etapa 2.2.4:

Então nós temos

Para a terceira iteração, dividimos a linha 3 por 1, a matriz permanece inalterada no passo 2.2.3.

Na etapa 2.2.4:

Então nós temos

.

Uma permutação final das linhas 2 e 3 nos dá

.

A seção esquerda da matriz é a matriz identidade, demonstrando que A é invertível. A seção 3x3 à direita, ou seja, a matriz B, é o inverso de A.

Caso Geral

Realizar uma operação elementar O nas n linhas de uma matriz equivale a multiplicá-la à esquerda pela matriz elementar (invertível) G s  : = O ( I n ).

Ao notar O 1 , ..., O s as operações elementares que realizamos em A , e G s = O s ( I n ) as matrizes elementares associadas, acaba-se assim, na seção esquerda, na matriz

e no da direita, na matriz

Assim, B é não singular e BA = I n , então B -1 = A e A -1 = B .

Resolvendo um sistema de equações lineares

A eliminação de Gauss-Jordan pode resolver um sistema de equações AX = B, onde A é uma matriz n × m de classificação r , B é um vetor fixo e X o vetor desconhecido. Nós criar uma mesa com n linhas e m + 1 colunas, que fazem fronteira com a matriz A pelo vector de B. Nós reduzir a matriz em forma dimensionado reduzida.

Se os pivôs da matriz em escala reduzida associada com (A | B) estão localizados apenas nas primeiras m colunas (que é sempre o caso se r = n  ) e têm o índice de coluna k 1 , ..., k r  , então o último coluna fornece uma solução particular, obtida tomando todos os seus termos zero exceto aqueles localizados na linha do índice k i e para os quais damos o valor do termo localizado na linha i da última coluna, i variando de 1 a r .

Obtemos a solução geral do sistema adicionando a esta solução particular qualquer elemento do kernel de A. Isso é obtido atribuindo valores arbitrários aos coeficientes de X localizados em um índice de linha diferente de k i , e determinando os coeficientes localizados nas linhas do índice k i de forma a satisfazer o sistema (o que é fácil, dada a forma escalonada da matriz).

Se o último pivô da matriz em escala reduzida associada a (A | B) estiver na última coluna, não haverá solução.

Se a matriz A for quadrada invertível (ou seja, o sistema é Cramer), então obtemos na última coluna a solução única X do sistema.

Variante: no algoritmo anterior, se nos limitarmos a obter uma matriz escalonada (não reduzida), obtemos uma matriz triangular superior. Resta "voltar" para encontrar os valores dos coeficientes de X.

Exemplo 1 (detalhado)

Seja o sistema de equações lineares:

Estabelecemos a matriz correspondente:

Começamos com a coluna 1. O pivô é o máximo em valor absoluto entre 1, 3 e 2, ou seja, 3:

Como esse pivô não é zero, dividimos a linha onde ele está localizado (ou seja, linha 2) pelo pivô:

Trocamos as linhas 1 e 2:

Agora analisamos as linhas diferentes daquela do pivô. Linha 2, temos A (2, 1) = 1. Calculamos

Linha 3, temos A (3, 1) = 2. Calculamos

Substituímos as linhas 2 e 3 assim calculadas:

Vamos para a coluna 2. O pivô é o máximo em valor absoluto entre e , ou seja  :

Como esse pivô não é zero, dividimos a linha onde ele está localizado (ou seja, linha 3) pelo pivô:

Trocamos as linhas 2 e 3:

Agora analisamos as linhas diferentes daquela do pivô. Linha 1, temos A (1, 2) = . Nós calculamos

Linha 3, temos A (3, 2) = . Nós calculamos

Substituímos as linhas 1 e 3 assim calculadas:

Vamos para a coluna 3. O pivô é  :

Como esse pivô não é zero, dividimos a linha onde ele está localizado (ou seja, linha 3) pelo pivô:

Como este pivô já está na linha 3, não há necessidade de trocar de linha.

Agora analisamos as linhas diferentes daquela do pivô. Linha 1, temos A (1, 3) = . Nós calculamos

Linha 2, temos A (2, 3) = . Nós calculamos

Substituímos as linhas 1 e 2 assim calculadas:

Todas as colunas à esquerda da barra vertical foram processadas. Estamos na presença de uma matriz em escala reduzida, com a matriz identidade de um lado e o valor das variáveis ​​do outro. A solução do sistema de equações é, portanto:

Exemplo 2

Seja o sistema de equações lineares:

A matriz em escala reduzida associada a é .

Os pivôs estão localizados nas colunas de índice 1 e 3. Uma solução particular é, portanto :, que corresponde ao vetor:

Exemplo 3

Seja o sistema de equações lineares:

A matriz em escala reduzida associada a é .

Não há solução.

determinando

Este algoritmo também permite calcular o determinante de uma matriz  :

com p o número de permutações de linha e o pivô anotado na etapa j do algoritmo.

Se um dos pivôs for zero, o determinante da matriz será zero e não poderá ser invertido.

Exemplo

Começamos da matriz

É uma matriz real, então o módulo de um coeficiente é seu valor absoluto.

Procuramos o pivô na coluna 1:

Dividimos a linha 1 por 2 para obtermos um 1 na diagonal:

Modificamos as linhas 2 e 3 por combinações lineares com a linha 1 para obter zeros na primeira coluna (exceto diagonal):

Procuramos o pivô na coluna 2:

Trocamos as linhas 2 e 3:

Dividimos a linha 2 por (3/2) para obtermos 1 na diagonal:

Modificamos as linhas 1 e 3 por combinações lineares com a linha 2 para obter zeros na segunda coluna (exceto diagonal):

Procuramos o pivô na coluna 3:

Dividimos a linha 3 por (4/3) para obtermos 1 na diagonal:

Modificamos as linhas 1 e 2 por combinações lineares com a linha 3 para obter zeros na terceira coluna (exceto diagonal), a matriz é então:

que é reduzido.

O determinante da matriz, portanto, vale a pena .

Notas

  1. Gauss 1810 .
  2. Jordan 1888 .
  3. Althoen e McLaughlin 1987 .
  4. Adaptado de Beezer 2014 , p.  30
  5. Ver, por exemplo, os comentários de Patrick Lascaux e Raymond Théodor, Matric numerical analysis aplicada à arte do engenheiro , t.  1: Métodos diretos [ detalhe das edições ], p.  228 .

Referências

Artigos relacionados

Link externo

Método de pivô gaussiano em math-linux.com