Neste artigo, o método é considerado como uma forma de resolver sistemas de equações lineares (SLAE). O método é analítico, ou seja, permite escrever um algoritmo de solução geral e, em seguida, substituir valores de exemplos específicos. Ao contrário do método matricial ou das fórmulas de Cramer, ao resolver um sistema de equações lineares usando o método de Gauss, você também pode trabalhar com aqueles que têm infinitas soluções. Ou não tem.
O que significa resolver pelo método de Gauss?
Primeiro, precisamos escrever nosso sistema de equações como uma matriz. Se parece com isso. O sistema é obtido:
Coeficientes são escritos na forma de uma tabela e à direita em uma coluna separada - membros livres. A coluna com membros livres é separada por conveniência por uma barra vertical. Uma matriz que inclui esta coluna é chamada estendida.
A seguir, a matriz principal com coeficientes deve ser reduzida à forma triangular superior. Este é o ponto principal de resolver o sistema pelo método de Gauss. Simplificando, após certas manipulações, a matriz deve ficar assim, para que haja apenas zeros em sua parte inferior esquerda:
Então, se você escrever a nova matriz novamente como um sistema de equações, você notará que a última linha já contém o valor de uma das raízes, que é então substituída na equação acima, outra raiz é encontrada, e assim por diante.
Esta é uma descrição da solução gaussiana nos termos mais gerais. E o que acontece se de repente o sistema não tiver solução? Ou há um número infinito deles? Para responder a essas e muitas outras perguntas, é necessário considerar separadamente todos os elementos usados na solução pelo método de Gauss.
Matrizes, suas propriedades
Não há significado oculto na matriz. É apenas uma maneira conveniente de registrar dados para operações posteriores. Mesmo as crianças em idade escolar não devem ter medo deles.
A matriz é sempre retangular porque é mais conveniente. Mesmo no método de Gauss, onde tudo se resume a construir uma matriz triangular, aparece um retângulo na entrada, apenas com zeros no local onde não há números. Os zeros podem ser omitidos, mas estão implícitos.
Matriz tem tamanho. Sua "largura" é o número de linhas (m), seu "comprimento" é o número de colunas (n). Então o tamanho da matriz A (letras maiúsculas latinas são geralmente usadas para sua designação) será denotado como Am×n. Se m=n, então esta matriz é quadrada, em=n - sua ordem. Assim, qualquer elemento da matriz A pode ser denotado pelo número de sua linha e coluna: axy; x - número da linha, alterar [1, m], y - número da coluna, alterar [1, n].
No método gaussiano, as matrizes não são o ponto principal da solução. Em princípio, todas as operações podem ser realizadas diretamente com as próprias equações, no entanto, a notação será muito mais complicada e será muito mais fácil se confundir nela.
Qualificadora
A matriz também tem um determinante. Esta é uma característica muito importante. Descobrir seu significado agora não vale a pena, você pode simplesmente mostrar como é calculado e depois dizer quais propriedades da matriz ele determina. A maneira mais fácil de encontrar o determinante é através das diagonais. Diagonais imaginárias são desenhadas na matriz; os elementos localizados em cada um deles são multiplicados e, em seguida, os produtos resultantes são adicionados: diagonais com inclinação para a direita - com um sinal de "mais", com uma inclinação para a esquerda - com um sinal de "menos".
É extremamente importante notar que o determinante só pode ser calculado para uma matriz quadrada. Para uma matriz retangular, você pode fazer o seguinte: escolher o menor número de linhas e o número de colunas (seja k), e então marcar aleatoriamente k colunas e k linhas na matriz. Os elementos localizados na interseção das colunas e linhas selecionadas formarão uma nova matriz quadrada. Se o determinante de tal matriz for um número diferente de zero, ele será chamado de menor básico da matriz retangular original.
Antescomo começar a resolver um sistema de equações pelo método de Gauss, não custa calcular o determinante. Se for zero, podemos dizer imediatamente que a matriz tem um número infinito de soluções ou não há nenhuma. Em um caso tão triste, você precisa ir mais longe e descobrir o posto da matriz.
Classificação de sistemas
Existe algo como o posto de uma matriz. Esta é a ordem máxima do seu determinante diferente de zero (lembrando a base menor, podemos dizer que o posto de uma matriz é a ordem da base menor).
As coisas são com rank, SLOW pode ser dividido em:
- Junta. Para sistemas conjuntos, o posto da matriz principal (consistindo apenas de coeficientes) coincide com o posto da matriz estendida (com uma coluna de termos livres). Tais sistemas têm uma solução, mas não necessariamente uma, portanto, os sistemas conjuntos são adicionalmente divididos em:
- - definido - tendo uma solução única. Em certos sistemas, o posto da matriz e o número de incógnitas são iguais (ou o número de colunas, que é a mesma coisa);
- - indefinido - com um número infinito de soluções. O posto de matrizes em tais sistemas é menor que o número de incógnitas.
- Incompatível. Para tais sistemas, os postos das matrizes principal e estendida não coincidem. Sistemas incompatíveis não têm solução.
O método de Gauss é bom porque permite obter uma prova inequívoca da inconsistência do sistema (sem calcular os determinantes de grandes matrizes) ou uma solução geral para um sistema com um número infinito de soluções.
Transformações elementares
Antescomo proceder diretamente para a solução do sistema, você pode torná-lo menos complicado e mais conveniente para os cálculos. Isso é alcançado por meio de transformações elementares - de modo que sua implementação não altere a resposta final de forma alguma. Deve-se notar que algumas das transformações elementares acima são válidas apenas para matrizes, cuja fonte foi justamente o SLAE. Aqui está uma lista dessas transformações:
- Alterar strings. É óbvio que, se alterarmos a ordem das equações no registro do sistema, isso não afetará a solução de forma alguma. Portanto, também é possível trocar linhas na matriz deste sistema, não esquecendo, é claro, da coluna de membros livres.
- Multiplicando todos os elementos de uma string por algum fator. Muito útil! Com ele, você pode reduzir números grandes na matriz ou remover zeros. O conjunto de soluções, como de costume, não mudará e será mais conveniente realizar outras operações. O principal é que o coeficiente não deve ser igual a zero.
- Delete linhas com coeficientes proporcionais. Isso decorre parcialmente do parágrafo anterior. Se duas ou mais linhas na matriz tiverem coeficientes proporcionais, ao multiplicar / dividir uma das linhas pelo coeficiente de proporcionalidade, serão obtidas duas (ou, novamente, mais) linhas absolutamente idênticas e você poderá remover as extras, deixando apenas um.
- Delete a linha nula. Se no curso das transformações uma string é obtida em algum lugar em que todos os elementos, incluindo o membro livre, são zero, então tal string pode ser chamada de zero e descartada da matriz.
- Adicionando os elementos de uma linha de elementos de outra (de acordo comcolunas correspondentes) multiplicado por algum coeficiente. A transformação mais obscura e mais importante de todas. Vale a pena se debruçar sobre isso com mais detalhes.
Adicionando uma string multiplicada por um fator
Para facilitar o entendimento, vale a pena desmontar esse processo passo a passo. Duas linhas são retiradas da matriz:
a11 a12 … a1n | b1
a21 a22 … a2n | b2
Digamos que você precise adicionar o primeiro multiplicado pelo coeficiente "-2" ao segundo.
a'21 =a21 + -2×a11
a'22 =a22 + -2×a12
a'2n =a2n + -2×a1n
Então a segunda linha da matriz é substituída por uma nova, enquanto a primeira permanece in alterada.
a11 a12 … a1n | b1
a'21 a'22 … a'2n | b2
Deve-se notar que o fator de multiplicação pode ser escolhido de tal forma que, como resultado da adição de duas strings, um dos elementos da nova string é igual a zero. Portanto, é possível obter uma equação no sistema, onde haverá uma incógnita a menos. E se você obtiver duas dessas equações, a operação poderá ser feita novamente e obterá uma equação que já conterá duas incógnitas a menos. E se cada vez que zerarmos um coeficiente para todas as linhas que são menores que o original, podemos, como passos, descer até o fundo da matriz e obter uma equação com uma incógnita. Isso é chamadoresolva o sistema usando o método de Gauss.
Geralmente
Haja um sistema. Tem m equações e n raízes desconhecidas. Você pode escrever assim:
A matriz principal é compilada a partir dos coeficientes do sistema. Uma coluna de membros livres é adicionada à matriz expandida e separada por uma barra por conveniência.
Próximo:
- a primeira linha da matriz é multiplicada pelo coeficiente k=(-a21/a11);
- a primeira linha modificada e a segunda linha da matriz são adicionadas;
- ao invés da segunda linha, o resultado da adição do parágrafo anterior é inserido na matriz;
- agora o primeiro coeficiente na nova segunda linha é a11 × (-a21/a11) + a21 =-a21 + a21=0.
Agora a mesma série de transformações é realizada, apenas a primeira e a terceira linhas estão envolvidas. Assim, em cada etapa do algoritmo, o elemento a21 é substituído por a31. Então tudo se repete para a41, … am1. O resultado é uma matriz onde o primeiro elemento nas linhas [2, m] é igual a zero. Agora você precisa esquecer a linha número um e executar o mesmo algoritmo a partir da segunda linha:
- k coeficiente=(-a32/a22);
- a segunda linha modificada é adicionada à linha "atual";
- o resultado da adição é substituído na terceira, quarta e assim por diante, enquanto a primeira e a segunda permanecem in alteradas;
- nas linhas [3, m] da matriz, os dois primeiros elementos já são iguais a zero.
O algoritmo deve ser repetido até que o coeficiente k=(-am, m-1/amm apareça). Isso significa que o algoritmo foi executado pela última vez apenas para a equação inferior. Agora a matriz se parece com um triângulo, ou tem uma forma escalonada. A linha inferior contém a equação amn × x =bm. O coeficiente e o termo livre são conhecidos, e a raiz é expressa através deles: x =bm/amn. A raiz resultante é substituída na linha superior para encontrar xn-1=(bm-1 - am-1, n×(bm/amn))÷am-1, n-1. E assim por diante, por analogia: em cada linha seguinte há uma nova raiz e, tendo chegado ao "topo" do sistema, pode-se encontrar um conjunto de soluções [x1, … x ]. Será o único.
Quando não há soluções
Se em uma das linhas da matriz todos os elementos, exceto o termo livre, são iguais a zero, então a equação correspondente a esta linha se parece com 0=b. Não tem solução. E como tal equação está incluída no sistema, então o conjunto de soluções de todo o sistema é vazio, ou seja, é degenerado.
Quando há um número infinito de soluções
Pode acontecer que na matriz triangular reduzida não haja linhas com um elemento - o coeficiente da equação e um - um membro livre. Existem apenas strings que, quando reescritas, pareceriam uma equação com duas ou mais variáveis. Isso significa que o sistema tem um número infinito de soluções. Neste caso, a resposta pode ser dada na forma de uma solução geral. Como fazer?
Todosas variáveis na matriz são divididas em básicas e livres. Básico - são aqueles que ficam "na borda" das linhas na matriz escalonada. O resto é grátis. Na solução geral, as variáveis básicas são escritas em termos das variáveis livres.
Por conveniência, a matriz é primeiramente reescrita em um sistema de equações. Então, no último deles, onde permaneceu exatamente apenas uma variável básica, ela permanece de um lado, e todo o resto é transferido para o outro. Isso é feito para cada equação com uma variável básica. Então, no restante das equações, sempre que possível, em vez da variável básica, a expressão obtida para ela é substituída. Se o resultado for novamente uma expressão contendo apenas uma variável básica, ela será expressa a partir daí novamente, e assim por diante, até que cada variável básica seja escrita como uma expressão com variáveis livres. Esta é a solução geral do SLAE.
Você também pode encontrar a solução básica do sistema - dê às variáveis livres quaisquer valores e, em seguida, calcule os valores das variáveis básicas para este caso específico. Existem infinitas soluções particulares.
Solução com exemplos específicos
Aqui está um sistema de equações.
Por conveniência, é melhor fazer sua matriz imediatamente
Sabe-se que ao resolver pelo método de Gauss, a equação correspondente à primeira linha permanecerá in alterada ao final das transformações. Portanto, será mais lucrativo se o elemento superior esquerdo da matriz for o menor - então os primeiros elementoso resto das linhas após as operações se transformarão em zero. Isso significa que na matriz compilada será benéfico colocar a segunda linha no lugar da primeira.
Em seguida, você precisa alterar a segunda e a terceira linhas para que os primeiros elementos se tornem zero. Para fazer isso, some-os ao primeiro, multiplicado por um coeficiente:
segunda linha: k=(-a21/a11)=(-3/1)=-3
a'21 =a21 + k×a11=3 + (-3)×1=0
a'22 =a22 + k×a12 =-1 + (- 3)×2=-7
a'23 =a23 + k×a13 =1 + (-3)×4=-11
b'2 =b2 + k×b1=12 + (-3)×12=-24
terceira linha: k=(-a31/a11)=(- 5/1)=-5
a'31 =a31+ k×a11=5 + (-5)×1=0
a'32 =a32+ k×a12 =1 + (-5)×2=-9
a'33 =a33 + k×a13 =2 + (-5)×4=-18
b'3=b3 + k×b1=3 + (-5)×12=-57
Agora, para não ficar confuso, você precisa escrever uma matriz com resultados intermediários de transformações.
Obviamente, tal matriz pode ser mais legível com a ajuda de algumas operações. Por exemplo, você pode remover todos os "menos" da segunda linha multiplicando cada elemento por "-1".
Também vale a pena notar que na terceira linha todos os elementos são múltiplos de três. Então você podecorte a string por este número, multiplicando cada elemento por "-1/3" (menos - ao mesmo tempo para remover valores negativos).
Parece muito mais bonito. Agora precisamos deixar a primeira linha e trabalhar com a segunda e a terceira. A tarefa é somar a segunda linha à terceira linha, multiplicada por um fator tal que o elemento a32 se torne zero.
k=(-a32/a22)=(-3/7)=-3/7 (se durante algumas transformações na resposta não for um número inteiro, é recomendável deixá-lo "como está", na forma de uma fração ordinária, e só então, quando as respostas forem recebidas, decida se arredondar e converter para outra forma de notação)
a'32=a32 + k×a22=3 + (-3 /7)×7=3 + (-3)=0
a'33=a33 + k×a23=6 + (-3 /7)×11=-9/7
b'3 =b3 + k×b2=19 + (-3 /7)×24=-61/7
A matriz é escrita novamente com novos valores.
1 | 2 | 4 | 12 |
0 | 7 | 11 | 24 |
0 | 0 | -9/7 | -61/7 |
Como você pode ver, a matriz resultante já possui uma forma escalonada. Portanto, não são necessárias mais transformações do sistema pelo método de Gauss. O que pode ser feito aqui é remover o coeficiente geral "-1/7" da terceira linha.
Agora todosbom. O ponto é pequeno - escreva a matriz novamente na forma de um sistema de equações e calcule as raízes
x + 2y + 4z=12 (1)
7y + 11z=24 (2)
9z=61 (3)
O algoritmo pelo qual as raízes serão encontradas agora é chamado de movimento reverso no método de Gauss. A equação (3) contém o valor z:
z=61/9
Em seguida, volte para a segunda equação:
y=(24 - 11×(61/9))/7=-65/9
E a primeira equação permite encontrar x:
x=(12 - 4z - 2y)/1=12 - 4×(61/9) - 2×(-65/9)=-6/9=-2/3
Temos o direito de chamar tal sistema de conjunto, e até mesmo definitivo, ou seja, ter uma solução única. A resposta está escrita da seguinte forma:
x1=-2/3, y=-65/9, z=61/9.
Exemplo de um sistema indefinido
A variante de resolver um determinado sistema pelo método de Gauss foi analisada, agora é necessário considerar o caso se o sistema é indefinido, ou seja, infinitas soluções podem ser encontradas para ele.
x1 + x2 + x3 + x 4+ x5=7 (1)
3x1 + 2x2 + x3 + x 4 - 3x5=-2 (2)
x2 + 2x3 + 2x4 + 6x 5 =23 (3)
5x1 + 4x2 + 3x3 + 3x 4 - x5=12 (4)
A própria forma do sistema já é alarmante, pois o número de incógnitas é n=5, e o posto da matriz do sistema já é exatamente menor que esse número, pois o número de linhas é m=4, ou seja, a maior ordem do determinante quadrado é 4. Então,Há um número infinito de soluções, e devemos procurar sua forma geral. O método de Gauss para equações lineares permite que você faça isso.
Primeiro, como de costume, a matriz aumentada é compilada.
Segunda linha: coeficiente k=(-a21/a11)=-3. Na terceira linha, o primeiro elemento está antes das transformações, então você não precisa mexer em nada, precisa deixar como está. Quarta linha: k=(-a41/a11)=-5
Multiplicando os elementos da primeira linha por cada um de seus coeficientes e somando-os às linhas necessárias, obtemos uma matriz da seguinte forma:
Como você pode ver, a segunda, terceira e quarta linhas consistem em elementos proporcionais entre si. O segundo e o quarto são geralmente os mesmos, então um deles pode ser removido imediatamente, e o restante multiplicado pelo coeficiente "-1" e obtém a linha número 3. E novamente, deixe uma das duas linhas idênticas.
O resultado é tal matriz. O sistema ainda não foi escrito, é necessário aqui determinar as variáveis básicas - ficando nos coeficientes a11=1 e a22=1, e grátis - todo o resto.
Há apenas uma variável básica na segunda equação - x2. Portanto, pode ser expresso a partir daí, escrevendo através das variáveis x3, x4, x5, que são gratuitos.
Substitua a expressão resultante na primeira equação.
Acabou uma equação na quala única variável básica é x1. Vamos fazer o mesmo com x2.
Todas as variáveis básicas, das quais existem duas, são expressas em termos de três livres, agora você pode escrever a resposta na forma geral.
Você também pode especificar uma das soluções particulares do sistema. Para esses casos, como regra, zeros são escolhidos como valores para variáveis livres. Então a resposta será:
-16, 23, 0, 0, 0.
Um exemplo de sistema inconsistente
A solução de sistemas de equações inconsistentes pelo método de Gauss é a mais rápida. Termina assim que em uma das etapas é obtida uma equação que não tem solução. Ou seja, a etapa com o cálculo das raízes, que é bastante longa e sombria, desaparece. O seguinte sistema está sendo considerado:
x + y - z=0 (1)
2x - y - z=-2 (2)
4x + y - 3z=5 (3)
Como de costume, a matriz é compilada:
1 | 1 | -1 | 0 |
2 | -1 | -1 | -2 |
4 | 1 | -3 | 5 |
E reduzido a uma forma escalonada:
k1 =-2k2 =-4
1 | 1 | -1 | 0 |
0 | -3 | 1 | -2 |
0 | 0 | 0 | 7 |
Após a primeira transformação, a terceira linha contém uma equação da forma
0=7, sem solução. Portanto, o sistemaé inconsistente, e a resposta é o conjunto vazio.
Vantagens e desvantagens do método
Se você escolher qual método resolver SLAE no papel com uma caneta, o método considerado neste artigo parece o mais atraente. Em transformações elementares, é muito mais difícil ficar confuso do que acontece se você tiver que procurar manualmente o determinante ou alguma matriz inversa complicada. No entanto, se você usar programas para trabalhar com dados desse tipo, por exemplo, planilhas, esses programas já contêm algoritmos para calcular os principais parâmetros de matrizes - matrizes determinantes, menores, inversas e transpostas e assim por diante. E se você tiver certeza de que a própria máquina calculará esses valores e não cometerá erros, é mais conveniente usar o método matricial ou as fórmulas de Cramer, pois sua aplicação começa e termina com o cálculo de determinantes e matrizes inversas.
Aplicativo
Como a solução gaussiana é um algoritmo, e a matriz é, de fato, um array bidimensional, ela pode ser usada em programação. Mas como o artigo se posiciona como um guia "para leigos", deve-se dizer que o lugar mais fácil de colocar o método é em planilhas, por exemplo, Excel. Novamente, qualquer SLAE inserido em uma tabela na forma de uma matriz será considerado pelo Excel como uma matriz bidimensional. E para operações com eles, existem muitos comandos interessantes: adição (você pode adicionar apenas matrizes do mesmo tamanho!), Multiplicação por um número, multiplicação de matrizes (também comcertas restrições), encontrando as matrizes inversas e transpostas e, mais importante, calculando o determinante. Se essa tarefa demorada for substituída por um único comando, é muito mais rápido determinar a classificação de uma matriz e, portanto, estabelecer sua compatibilidade ou inconsistência.