Artigos

2.5: Resolvendo Equações de Matriz AX = B


2.5: Resolvendo Equações de Matriz AX = B

6.3 - O Inverso de uma Matriz Quadrada

Ao trabalhar com números reais, a equação ax = b poderia ser resolvida para x dividindo os dois lados da equação por a para obter x = b / a, desde que a não fosse zero. Portanto, pareceria lógico que, ao trabalhar com matrizes, alguém pudesse pegar a equação da matriz AX = B e dividir ambos os lados por A para obter X = B / A.

No entanto, isso não funcionará porque.

NÃO há divisão de matriz!

Ok, você diz. A subtração foi definida em termos de adição e a divisão foi definida em termos de multiplicação. Então, em vez de dividir, vou apenas multiplicar pelo inverso. É assim que deve ser feito.


3 respostas 3

Observe cada coluna de $ X $. Se o denotarmos como $ X_i $ e as colunas de $ B $ como $ B_i $, então seu problema se reduz a 5 problemas $ A X_i = B_i $ Em cada um dos problemas, você tem mais incógnitas do que equações, você sabe que não tem uma solução única.

Se você usa uma calculadora, o escalão de fileira formulário lhe dará uma solução paramétrica. Alternativamente, você pode definir um dos elementos de $ X_i $ para zero e reduzir o número de incógnitas e, em seguida, parametrizar por esta variável. Deixe-me mostrar como fazer isso para a primeira coluna e o resto é o mesmo

$ begin0,1375 & amp 0,0737 & amp 0,138 & amp 0,11669 & amp 0,1166 cr 0,0926 & amp 0,0707 & amp 0,0957 & amp 0,0873 & amp 0,0733 cr 0,0767 & amp 0,0642 & amp 0,081 & amp 0,0766 & amp 0,0599 cr 0,1593 & amp 0,102 & amp 0,16 & amp 0,145 final começar x_1 x_2 x_3 x_4 x_5 end= begin0,2794 cr 0,1676 cr 0,0645 cr 0,2326 end $ Mova $ x_5 $ para a direita e para o lado para escrever $ begin0,1375 & amp 0,0737 & amp 0,138 & amp 0,1169 cr 0,0926 & amp 0,0707 & amp 0,0957 & amp 0,0873 cr 0,0767 & amp 0,0642 & amp 0,081 & amp 0,0766 cr 0,1593 & amp 0,102 & amp 0,1636 & amp 0,1451 end começar x_1 x_2 x_3 x_4 end= begin-0,1166 cr -0,0733 cr -0,0599 cr -0,1317 endx_5 + begin0,2794 cr 0,1676 cr 0,0645 cr 0,2326 end $

Resolva isso como faria normalmente. Aqui $ x_5 $ é uma variável livre.

Nota Para que isso funcione, você precisa se certificar de que (a) as linhas são linearmente independentes. Caso contrário, livre-se das linhas dependentes (b) Certifique-se de que as colunas que você mantém à esquerda são linearmente independentes. Neste caso, verifiquei que ambos são verdadeiros


Métodos iterativos para resolver Machado = b - Método Jacobi & # 039s

Talvez o método iterativo mais simples para resolver UMAx = b é Jacobi & # 8217s & # 160Method. Observe que a simplicidade deste método é boa e ruim: bom, porque é relativamente fácil de entender e, portanto, é uma boa primeira amostra de métodos iterativos ruim, porque não é normalmente usado na prática (embora sua utilidade potencial tenha sido reconsiderada com o advento da computação paralela). Ainda assim, é um bom ponto de partida para aprender sobre métodos iterativos mais úteis, porém mais complicados.

Dada uma aproximação atual

para x, a estratégia do Método de Jacobi é usar a primeira equação e os valores atuais de x 2 (k) , x 3 (k) , …, x n (k) para encontrar um novo valor x 1 (k+1), e da mesma forma para encontrar um novo valor x eu (k) usando o eu a equação e os valores antigos das outras variáveis. Ou seja, dados os valores atuais x (k) = (x 1 (k) , x 2 (k) , …, x n (k)), encontre novos valores resolvendo para

Este sistema também pode ser escrito como

Para ser claro, o subscrito eu significa que x eu (k) é o eu o elemento do vetor

e sobrescrito k corresponde à iteração particular (não o k o poder de x eu ).

então o Método Jacobi & # 8217s pode ser escrito em notação de vetor de matriz como

Exemplo 1

Vamos aplicar o Método de Jacobi ao sistema

Então, se nosso palpite inicial x (0) = (x 1 (0) , x 2 (0) , x 3 (0)) é o vetor zero 0 = (0,0,0) & # 8212 uma suposição inicial comum, a menos que tenhamos alguma informação adicional que nos leve a escolher algum outro & # 8212 então encontramos x (1) = (x 1 (1) , x 2 (1) , x 3 (1)) resolvendo

Então x (1) = (x 1 (1) , x 2 (1) , x 3 (1)) = (3/4, 9/6, & # 87226/7) & # 8776 (0,750, 1,500, & # 87220,857). Repetimos este processo para encontrar uma sequência de aproximações cada vez melhores x (0) , x (1) , x (2), & # 8230. Mostramos os resultados na tabela abaixo, com & # 160 todos os valores arredondados para 3 casas decimais.

Estamos interessados ​​no erro e a cada iteração entre a verdadeira solução x e a aproximação x (k): e (k) = xx (k). Obviamente, geralmente não sabemos a verdadeira solução x. No entanto, para entender melhor o comportamento de um método iterativo, é esclarecedor usar o método para resolver um sistema UMAx = b para o qual nós Faz conheça a solução verdadeira e analise a rapidez com que as aproximações estão convergindo para a solução verdadeira. Para este exemplo, a verdadeira solução é x = (1, 2, 𕒵).

A norma de um vetor ||x|| nos diz o quão grande é o vetor como um todo (em oposição ao tamanho de cada elemento do vetor). A norma vetorial mais comumente usada em álgebra linear é a eu 2 norma:

Por exemplo, se x = (1, 2, & # 87221), então

Neste módulo, sempre usaremos o eu 2 norma (incluindo para normas de matriz em tutoriais subsequentes), de modo que || || sempre significa || || 2 .

Para nossos propósitos, observamos que ||x|| será pequeno exatamente quando cada um dos elementos x 1 , x 2 , …, x n em x = (x 1 , x 2 , …, x n ) é pequeno. Na tabela a seguir, a norma do erro torna-se progressivamente menor à medida que o erro em cada um dos três elementos x 1 , x 2 , x 3 torna-se menor, ou seja, à medida que as aproximações vão ficando cada vez melhores.

 k  x (k) x (k) − x (k-1) e (k) = xx (k) ||e (k) ||
0 - 0.000 - 0.000 - 0.000 - 0.000 - 0.000 -1.000 2.449
1 0.750 1.500 -0.857 - 0.000 - 0.000 -0.857 0.250 0.500 -0.143 0.557
2 0.911 1.893 -0.964 0.161 0.393 -0.107 0.089 0.107 -0.036 0.144
3 0.982 1.964 -0.997 0.071 0.071 -0.033 0.018 0.036 -0.003 0.040
4 0.992 1.994 -0.997 0.010 0.029 0.000 0.008 0.006 -0.003 0.011
5 0.999 1.997 -1.000 0.007 0.003 -0.003 0.001 0.003 0.000 0.003
6 0.999 2.000 -1.000 0.000 0.003 0.001 0.000 0.001 0.000 0.001
7 1.000 2.000 -1.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000
8 1.000 2.000 -1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

Para este exemplo, paramos de iterar depois de todas as três maneiras de medir o erro atual,

igual a 0 a três casas decimais. Na prática, você normalmente escolheria uma única medida de erro para determinar quando parar.

David M. Strong, "Iterative Methods for Solving [i] Ax [/ i] = [i] b [/ i] - Jacobi's Method," Convergência (Julho de 2005)


3 respostas 3

Observe cada coluna de $ X $. Se o denotarmos como $ X_i $ e as colunas de $ B $ como $ B_i $, então seu problema se reduz a 5 problemas $ A X_i = B_i $ Em cada um dos problemas, você tem mais incógnitas do que equações, você sabe que não tem uma solução única.

Se você usar uma calculadora, o escalão de fileira formulário lhe dará uma solução paramétrica. Alternativamente, você pode definir um dos elementos de $ X_i $ para zero e reduzir o número de incógnitas e, em seguida, parametrizar por esta variável. Deixe-me mostrar como fazer isso para a primeira coluna e o resto é o mesmo

$ begin0,1375 & amp 0,0737 & amp 0,138 & amp 0,11669 & amp 0,1166 cr 0,0926 & amp 0,0707 & amp 0,0957 & amp 0,0873 & amp 0,0733 cr 0,0767 & amp 0,0642 & amp 0,081 & amp 0,0766 & amp 0,0599 cr 0,1593 & amp 0,102 & amp 0,16 & amp 0,145 final começar x_1 x_2 x_3 x_4 x_5 end= begin0,2794 cr 0,1676 cr 0,0645 cr 0,2326 end $ Mova $ x_5 $ para a direita e para o lado para escrever $ begin0,1375 & amp 0,0737 & amp 0,138 & amp 0,1169 cr 0,0926 & amp 0,0707 & amp 0,0957 & amp 0,0873 cr 0,0767 & amp 0,0642 & amp 0,081 & amp 0,0766 cr 0,1593 & amp 0,102 & amp 0,1636 & amp 0,1451 end começar x_1 x_2 x_3 x_4 end= begin-0,1166 cr -0,0733 cr -0,0599 cr -0,1317 endx_5 + begin0,2794 cr 0,1676 cr 0,0645 cr 0,2326 end $

Resolva isso como faria normalmente. Aqui $ x_5 $ é uma variável livre.

Nota Para que isso funcione, você precisa se certificar de que (a) as linhas são linearmente independentes. Caso contrário, livre-se das linhas dependentes (b) Certifique-se de que as colunas que você mantém à esquerda são linearmente independentes. Neste caso, verifiquei que ambos são verdadeiros


2.5: Resolvendo Equações de Matriz AX = B

Resolver um sistema de equações lineares usando o inverso de uma matriz requer a definição de duas novas matrizes: [latex] X [/ latex] é a matriz que representa as variáveis ​​do sistema, e [latex] B [/ latex] é a matriz representando as constantes. Usando multiplicação da matriz, podemos definir um sistema de equações com o mesmo número de equações como variáveis ​​como

Para resolver um sistema de equações lineares usando um matriz inversa, deixe [latex] A [/ latex] ser o matriz de coeficiente, seja [latex] X [/ latex] a matriz variável e [latex] B [/ latex] seja a matriz constante. Assim, queremos resolver um sistema [latex] AX = B [/ latex]. Por exemplo, observe o seguinte sistema de equações.

A partir deste sistema, a matriz de coeficiente é

E a matriz constante é

Então [latex] AX = B [/ latex] parece

Lembre-se da discussão anterior nesta seção sobre a multiplicação de um número real pelo seu inverso, [latex] left (<2> ^ <-1> right) 2 = left ( frac <1> <2> right) 2 = 1 [/ latex]. Para resolver uma única equação linear [latex] ax = b [/ latex] para [latex] x [/ latex], simplesmente multiplicaríamos ambos os lados da equação pelo inverso multiplicativo (recíproco) de [latex] a [/ latex ] Desse modo,

A única diferença entre resolver uma equação linear e um sistema de equações escrito em forma de matriz é que encontrar o inverso de uma matriz é mais complicado e a multiplicação de matrizes é um processo mais longo. No entanto, o objetivo é o mesmo - isolar a variável.

Investigaremos essa ideia em detalhes, mas é útil começar com um sistema [latex] 2 times 2 [/ latex] e então passar para um sistema [latex] 3 times 3 [/ latex].

Uma nota geral: Resolvendo um sistema de equações usando o inverso de uma matriz

Dado um sistema de equações, escreva a matriz de coeficiente [latex] A [/ latex], a matriz variável [latex] X [/ latex] e a matriz constante [latex] B [/ latex]. Então

Multiplique ambos os lados pelo inverso de [latex] A [/ latex] para obter a solução.

Se a matriz de coeficientes não tem uma inversa, isso significa que o sistema não tem solução?

Não, se a matriz de coeficientes não for invertível, o sistema pode ser inconsistente e não ter solução, ou ser dependente e ter infinitas soluções.

Exemplo 7: Resolvendo um sistema 2 × 2 usando o inverso de uma matriz

Resolva o dado sistema de equações usando o inverso de uma matriz.

Solução

Escreva o sistema em termos de uma matriz de coeficientes, uma matriz variável e uma matriz constante.

Agora estamos prontos para resolver. Multiplique ambos os lados da equação por [latex] ^ <-1> [/ latex].

A solução é [latex] left (-1,1 right) [/ latex].

Podemos resolver para [latex] X [/ latex] encontrando o produto [latex] B ^ ? [/ Latex]

Exemplo 8: Resolvendo um sistema 3 × 3 usando o inverso de uma matriz

Resolva o seguinte sistema usando o inverso de uma matriz.

Solução

Escreva a equação [latex] AX = B [/ latex].

Primeiro, encontraremos o inverso de [latex] A [/ latex] aumentando com a identidade.

Multiplique a linha 1 por [latex] frac <1> <5> [/ latex].

Multiplique a linha 1 por 4 e adicione à linha 2.

Multiplique a linha 2 por −3 e adicione à linha 1.

Multiplique a linha 3 por [latex] frac <1> <5> [/ latex] e adicione à linha 1.

Multiplique a linha 3 por [latex] - frac <19> <5> [/ latex] e adicione à linha 2.

A solução é [latex] left (1,2,0 right) [/ latex].

Experimente 4

Resolva o sistema usando o inverso da matriz de coeficientes.

Como: Dado um sistema de equações, resolva com matrizes inversas usando uma calculadora.

  1. Salve a matriz de coeficientes e a matriz constante como variáveis ​​de matriz [latex] left [A right] [/ latex] e [latex] left [B right] [/ latex].
  2. Insira a multiplicação na calculadora, acessando cada variável da matriz conforme necessário.
  3. Se a matriz de coeficientes for invertível, a calculadora apresentará a matriz de solução se a matriz de coeficientes não for invertível, a calculadora apresentará uma mensagem de erro.

Exemplo 9: Usando uma calculadora para resolver um sistema de equações com inversões de matriz

Resolva o sistema de equações com matrizes inversas usando uma calculadora

Solução

Na página da matriz da calculadora, digite o matriz de coeficiente como a variável de matriz [latex] left [A right] [/ latex] e insira a matriz constante como a variável de matriz [latex] left [B right] [/ latex].

Na tela inicial da calculadora, digite a multiplicação para resolver para [latex] X [/ latex], acessando cada variável de matriz conforme necessário.


2 respostas 2

A matriz em seu exemplo do caso 2 tem um número de condição muito maior do que aquele no exemplo original de 5 equações. Conseqüentemente, erros na definição dos termos da matriz resultam em erros maiores na solução.

Eu acredito que se você produzir as matrizes do MATLAB com 16 dígitos de precisão, os códigos do fortran produzirão a mesma solução do MATLAB. Ou seja, as entradas nos vetores au e ad em seu código fortran precisam ser definidas com 16 dígitos de precisão em vez dos (aproximadamente) 6 dígitos de precisão no código postado.

Além disso, você deve ter o cuidado de definir as constantes de ponto flutuante corretamente, por exemplo, 1.d0 em vez de 1.e0. Este foi um descuido no exemplo original de 5 equações que não causou nenhum grande problema naquele caso por causa do baixo número de condição.

Para expandir a resposta de Bill Greene, Fortran usa sintaxe diferente para números de ponto flutuante de precisão simples e dupla. 1.e0 é uma representação de precisão única do número '1,0', enquanto 1.d0 é uma representação de precisão dupla do número '1,0'. Se você tiver um problema bastante direto e um número de condição baixo associado, não notará nenhuma diferença porque o problema pode ser resolvido com precisão simples.

Conforme os problemas se tornam mais difíceis, eles exigem níveis mais altos de precisão - é por isso que é uma boa prática definir suas variáveis ​​para valores de precisão dupla. No entanto, há uma ressalva se você misturar números de precisão simples e dupla. Fortran será reduzido ao menor denominador comum, o que significa que multiplicar um número de precisão dupla por um número de precisão único resultará em um número de precisão único. Isso não será um problema para problemas simples, mas conforme os problemas se tornam mais complexos e exigem o uso consistente de precisão dupla, isso se representará como um bug em seu código.

4.5.1 Expoente de precisão dupla.

A forma de um expoente de precisão dupla é a letra D seguida por uma constante inteira opcionalmente assinada. Um expoente de precisão dupla denota uma potência de dez. Observe que a forma e a interpretação de um expoente de precisão dupla são idênticas às de um expoente real, exceto que a letra D é usada em vez da letra E.


Método de Inversão de Matriz

Este método pode ser aplicado apenas quando a matriz de coeficientes é uma matriz quadrada e não singular.

Considere a equação da matriz

Onde UMA é uma matriz quadrada e não singular. Desde UMA não é singular, UMA - 1 existe e UMA − 1 UMA = AA − 1 = eu. Pré-multiplicando ambos os lados de (1) por UMA - 1, nós temos UMA − 1 ( MACHADO ) = UMA − 1 B . Isso é, ( UMA − 1 UMA ) X = UMA − 1 B . Portanto, temos X = UMA − 1 B .

Exemplo 1.22

Resolva o seguinte sistema de equações lineares, usando o método de inversão de matriz:

5x + 2 y = 3, 3x + 2 y = 5 .

Solução

A forma matricial do sistema é AX = B, onde

Encontramos | A | = = 10 - 6 = 4 ≠ 0. Portanto, A −1 existe e A −1 =

Então, aplicando a fórmula X = A −1 B, obtemos


Portanto, a solução é (x = −1, y = 4).

Exemplo 1.23

Resolva o seguinte sistema de equações, usando o método de inversão de matriz:

Solução

A forma matricial do sistema é AX = B, onde


Então, a solução é ( x1 = 1, x2 = 2, x3 = −1) .

Se , encontre os produtos AB e BA e, portanto, resolva o sistema de equações x - y + z = 4, x - 2y - 2z = 9, 2x + y + 3z = 1.


Não consigo descobrir como resolver a equação da matriz Ax = 0

Tentei pesquisar no Google como resolver essa matriz por meio de RREF e variáveis ​​paramétricas, mas não consegui encontrar algo que funcionasse de forma semelhante para tentar resolver sozinho.

A é uma matriz 2x3 com os valores indo [2 -1 -1: 1 -2 2] (imagine que o conjunto após os dois pontos esteja sob o primeiro conjunto)

x é [x_1, x_2, x_3], mas obviamente uma coluna em vez de uma linha e, por falta de chave subscrita, usei apenas "_ #" para denotar a mesma coisa.

0 é uma matriz de 2 linhas x 1 coluna com dois zeros.

Para começar, escrevi as matrizes em 2 equações.

Então eu o transformei em uma matriz de coeficiente simplificada. [2 -1 -1 0: 1 -2 2 0] (com o segundo conjunto de números após os dois pontos no primeiro conjunto)

Posteriormente, reduzi-o à forma RREF para obter:

[1 0 (-4/3) 0: 0 1 (-5/3) 0] (com o segundo conjunto de números após os dois pontos no primeiro conjunto)

Assim que consegui isso, voltei a matriz para estas equações:

Então eu defino X_1 = (4/3) X_3 e X_2 = (5/3) X_3. Em seguida, tentei definir X_3 como t para tentar ver se conseguia encontrar uma resposta resolvendo 't'. Até agora, minhas respostas sempre estiveram erradas em comparação com a resposta que meu livro dá. Alguém pode me dizer se eu errei em algum lugar? Deduzi que teria que ser a partir da redução da minha matriz, mas fiz isso algumas vezes de maneiras diferentes para ter certeza, mas ainda não consigo obter a resposta.


Assista o vídeo: MFUNA. Mt6 - Uma das maneiras de resolver essa EQUAÇÃO MATRICIAL (Dezembro 2021).