Prof. MSc. David Roza José 1/39
[email protected]
Eliminação de Gauss
Objetivos:
– Saber resolver pequenos sistemas de equações com o método gráfico e regra de Cramer;
– Compreender como implementar a eliminação progressiva e substituição regressiva;
– Entender os conceitos de singularidade e mau condicionamento;
– Compreender como o pivotamento parcial é implementado e qual sua diferença para o pivotamento total;
– Reconhecer como calcular o determinante como parte do algoritmo de
eliminação de gauss com pivotamento parcial;
Prof. MSc. David Roza José 3/39 [email protected]
Motivação
Na aula anterior vimos que o MATLAB fornece dois meios para a solução de sistemas, sendo eles a divisão à esquerda
x = A\b e inversão matricial
x = inv(A)*b
E esta aula tem por objetivo fornecer conhecimento a respeito de como as soluções são obtidas e entender como o MATLAB opera.
Apesar da Eliminação de Gauss ter sido um dos primeiros algoritmos desenvolvidos, ele
permanece entre os de maior uso hoje e forma a base do método de solução de
sistemas lineares em diversos softwares, tais como o MATLAB.
Sistemas Pequenos
Veremos, primeiramente, técnicas para solução sistemas pequenos
Serão abordados o método gráfico, regra de Cramer e eliminação de incógnitas.
Prof. MSc. David Roza José 5/39 [email protected]
Método Gráfico
A solução gráfica é obtida para um sistema com duas equações lineares ao se plotar ambas as equações num plano cartesiano. Como as equações são lineares, cada uma resultará em uma linha reta.
Suponha o seguinte sistema:
Podemos utilizar o seguinte código:
[x,y] = meshgrid(0:0.1:6);
f1 = +3.*x +2.*y;
f2 = -x+ 2.*y;
contour(x,y,f1,[18 18],'k') hold on
contour(x,y,f2,[2 2],'r') xlabel('x');
ylabel('y');
grid
Método Gráfico
O que nos forneceria a seguinte solução:
Prof. MSc. David Roza José 7/39 [email protected]
Método Gráfico
Para um sistema de três equações, cada uma delas representaria um plano num sistema de coordenadas tridimensional. O ponto onde os três planos se interceptam representaria a solução.
Apesar do método gráfico não ser muito útil na solução de equações, eles são úteis para
visualizar propriedades das soluções.
Determinante e Regra de Cramer
O determinante D da matriz [A] pode ser definido como:
Para uma matriz 2 x 2, o determinante é calculado como:
Para uma matriz de terceira ordem, o determinante pode ser calculado como:
Prof. MSc. David Roza José 9/39 [email protected]
Determinante e Regra de Cramer
Para as figuras que vimos nos slides 6 e 7, poderíamos calcular o valor dos
determinantes de (a), (b) e (c). Obteríamos os seguintes resultados:
Regra de Cramer
Este método estabelece que cada incógnita de um sistema linear pode ser expressada
como uma fração de dois determinantes: o denominador D e o numerador obtido de
um determinante no qual se substitui os coeficientes da incógnita pelos termos
independentes.
11/39 Prof. MSc. David Roza José
[email protected]
Regra de Cramer: Exemplo
Solucionar o sistema a seguir:
O determinante D pode ser calculado como:
E a solução torna-se:
Regra de Cramer: Exemplo
13/39 Prof. MSc. David Roza José
[email protected]
Função det
No MATLAB, o determinante de uma matriz pode ser calculado diretamente com a função det. Seu uso é da forma:
det(A)
Eliminação de Incógnitas
A eliminação de incógnitas ao se combinar equações é um método algébrico que pode ser ilustrado para um sistema de duas equações:
A estratégia básica é multiplicar as equações por constantes tal que uma das incógnitas seja eliminada quando as duas equações são combinadas. O resultado é uma única equação que pode ser resolvida para a incógnita restante.
O quê nos permite subtrair uma equação da outra:
15/39 Prof. MSc. David Roza José
[email protected]
Eliminação de Incógnitas
Este tipo de solução pode ser estendido para sistemas maiores. Entretanto inúmeros cálculos são necessários para sistemas maiores, o que torna o método difícil de ser implementado na mão.
Entretanto esta técnica pode ser formalizada numa rotina.
Eliminação de Gauss Ingênua
O processo de eliminação de incógnitas consiste, basicamente, de dois passos:
(1) As equações são manipuladas para eliminar uma das incógnitas das equações.
O resultado deste passo é uma equação com uma incógnita.
(2) Consequentemente esta equação pode ser resolvida diretamente e o resultado pode ser substituído numa das equações originais para encontrar o valor da outra incógnita.
Esse método simples pode ser estendido para grandes conjuntos de equações ao se desenvolver um algoritmo de eliminação progressiva e substituição regressiva. A eliminação de Gauss é o mais básico destes esquemas.
Veremos técnicas sistemáticas de eliminação progressiva e substituição regressiva.
Apesar destas técnicas serem ideais para serem implementadas num computador,
17/39 Prof. MSc. David Roza José
[email protected]
Eliminação de Gauss Ingênua
O método demonstrado é chamado de “ingênuo” porque ele não evita o problema da divisão por zero.
Assim como feito anteriormente, a técnica consiste de duas fases: eliminação
progressiva e substituição regressiva.
Eliminação de Gauss Ingênua
Eliminação Progressiva
Esta fase é destinada a reduzir o conjunto de equações a um sistema triangular superior.
O primeiro passo é eliminar a primeira incógnita x
1da segunda linha até a n-ésima linha.
Isto é alcançado facilmente ao se multiplicar a primeira linha por a
21/a
11resultando em:
Esta equação, da primeira linha, pode ser subtraída da segunda linha, resultando em
19/39 Prof. MSc. David Roza José
[email protected]
Eliminação de Gauss Ingênua
O procedimento então é repetido para todas as equações restantes. A primeira linha pode ser multiplicada por a
31/a
11e o resultado subtraído da terceira linha. O sistema final, modificado, será dado por:
Para todos os passos subsequentes, a equação da primeira linha é chamada de equação
pivô, e a
11é chamado de elemento pivô. Esta operação de dividir normalmente é
chamada de normalização.
Eliminação de Gauss Ingênua
O próximo passo é eliminar x
2da terceira até a n-ésima equação. Para fazer isso, multiplica-se a segunda equação por a'
32/a'
22e subtrai-se o resultado da terceira equação. O resultado, ao final de todo o processo, torna-se:
Tal que o duplo apóstrofe indica que o elemento foi modificado duas vezes. Deve-se
continuar a efetuar o procedimento. A última manipulação na sequência é usar a (n-1)-
ésima equação para eliminar o termo x
n-1da n-ésima equação. Neste ponto, o sistema
Eliminação de Gauss Ingênua
Substituição regressiva:
A última linha do sistema pode ser solucionada para x
n:
Este resultado pode ser retroativamente substituído na equação (n-1) para que se possa
resolver para x
n-1; procedimento este que é repetido até que se resolva o valor de todos
os x's. A seguinte fórmula ilustra o procedimento:
23/39 Prof. MSc. David Roza José
[email protected]
Exemplo
Utilizar a eliminação de Gauss ingênua para resolver o seguinte sistema.
A primeira parte do processo é a eliminação progressiva. Multiplicaremos a primeira linha por 0.1/3 e subtrairemos da segunda linha. O resultado é:
A seguir devemos multiplicar a primeira linha por 0.3/3 e subtraí-la da terceira linha.
Após essa sequência de operações o sistema torna-se:
Exemplo
Para finalizar o passo da eliminação progressiva, devemos remover x
2da terceira equação. Multiplicamos a segunda equação por -0.190000/7.00333 e subtrai-se da terceira equação. Isto eliminará x2 da terceira equação e o sistema torna-se triangular superior.
Podemos solucionar o sistema através da substituição regressiva. A última equação
poderá ser resolvida primeiro:
25/39 Prof. MSc. David Roza José
[email protected]
Exemplo
Este resultado pode ser substituído na segunda equação, que pode ser solucionada para x
2:
E pode-se efetuar o mesmo procedimento para encontrar x
1:
Apesar de existir um pequeno erro de arredondamento, o resultado está bastante próximo da solução exata de 3, -2.5 e 7.
Verificar o arquivo GaussIngenuo.m
Contagem de Operações
O tempo de execução da Eliminação de Gauss depende da quantidade operações de ponto flutuante, ou flops.
Apesar dos computadores de hoje utilizarem co-processadores para matemática, o tempo consumido para efetuar operações de adição/subtração e multiplicação/divisão é aproximadamente o mesmo.
Assim ao levar em consideração a quantidade destas operações podemos ter uma ideia de quais partes do algoritmo são mais demoradas e como o tempo computacional aumenta conforme o sistema torna-se maior.
Conforme o sistema cresce, o tempo computacional aumenta abruptamente. Para cada
ordem de magnitude do sistema, a quantidade de flops aumenta três ordens de
magnitude.
27/39 Prof. MSc. David Roza José
[email protected]
Pivotamento
A principal razão para a técnica anterior de Gauss ser chamada de ingênua é porque durante a eliminação e a substituição pode ocorrer uma divisão por zero. Se utilizarmos a técnica para resolver o seguinte sistema:
A normalização da primeira linha envolveria uma divisão por a
11=0. Problemas também podem surgir quando o elemento pivô é próximo de zero, pois se a magnitude do elemento de pivô é pequena quando comparada a outros elementos, então erros de arredondamento podem ser introduzidos.
Assim, antes que cada linha seja normalizada, é vantajoso determinar o coeficiente com
o maior valor absoluto na coluna abaixo do elemento pivotante. Isto é chamado de
pivotamento parcial. O pivotamento completo raramente é usado, pois maioria do
melhoramento advém do pivotamento parcial.
Exemplo: Pivotamento Parcial
Utilize a Eliminação de Gauss no problema a seguir:
Neste exemplo, o elemento pivô, a
11=0.0003 é muito próximo de zero. Resolveremos uma vez normalmente, e outra fazendo o pivotamento parcial. Tenha em mente que a solução exata é x
1=1/3 e x
2=2/3.
Multiplicando a primeira equação por 1/(0.0003) resulta em:
Que pode ser utilizado para remover x
1da segunda equação:
29/39 Prof. MSc. David Roza José
[email protected]
Exemplo: Pivotamento Parcial
Esse resultado pode ser substituído novamente na primeira equação para solucionar x
1:
E devido ao cancelamento subtrativo, o resultado é bastante sensível ao número de algarismos significativos carregados:
A solução para x
1é altamente dependente da quantidade de algarismos significativos, e isso ocorre porque fazemos uma subtração de algarismos quase iguais.
Algarismos
Significativos x
2
x
1
Erro Relativo
3 0.667 -3.33 1099
4 0.6667 0.0000 100
5 0.66667 0.30000 10
6 0.666667 0.330000 1
7 0.6666667 0.3330000 0.1
Exemplo: Pivotamento Parcial
No entanto, se as equações são resolvidas na ordem reversa, a linha com o maior elemento pivô é normalizada. As equações são:
Fazendo a eliminação e substituição novamente resulta em x
2=2/3. Para diferentes quantidades de algarismos significativos, x
1pode ser calculado da primeira equação, resultando em:
Algarismos
Significativos x
2
x
1