• Nenhum resultado encontrado

Prof. MSc. David Roza José 1/39

N/A
N/A
Protected

Academic year: 2021

Share "Prof. MSc. David Roza José 1/39"

Copied!
39
0
0

Texto

(1)

Prof. MSc. David Roza José 1/39

[email protected]

(2)

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;

(3)

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.

(4)

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.

(5)

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

(6)

Método Gráfico

O que nos forneceria a seguinte solução:

(7)

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.

(8)

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:

(9)

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:

(10)

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)

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:

(12)

Regra de Cramer: Exemplo

(13)

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)

(14)

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)

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.

(16)

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)

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.

(18)

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

1

da segunda linha até a n-ésima linha.

Isto é alcançado facilmente ao se multiplicar a primeira linha por a

21

/a

11

resultando em:

Esta equação, da primeira linha, pode ser subtraída da segunda linha, resultando em

(19)

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

11

e 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.

(20)

Eliminação de Gauss Ingênua

O próximo passo é eliminar x

2

da terceira até a n-ésima equação. Para fazer isso, multiplica-se a segunda equação por a'

32

/a'

22

e 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-1

da n-ésima equação. Neste ponto, o sistema

(21)

21/39 Prof. MSc. David Roza José

[email protected]

Eliminação de Gauss Ingênua

(22)

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)

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:

(24)

Exemplo

Para finalizar o passo da eliminação progressiva, devemos remover x

2

da 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)

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

(26)

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)

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.

(28)

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

1

da segunda equação:

(29)

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

(30)

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

1

pode ser calculado da primeira equação, resultando em:

Algarismos

Significativos x

2

x

1

Erro Relativo

3 0.667 0.333 0.1

4 0.6667 0.3333 0.01

(31)

31/39 Prof. MSc. David Roza José

[email protected]

MATLAB

Conferir o arquivo GaussPivot.m. Ele é idêntico ao GaussIngenuo.m, com exceção da parte que implementa o pivotamento parcial.

Ele utiliza a função intrínseca do MATLAB max para determinar o maior elemento disponível na coluna abaixo do elemento pivô. A função max possui a seguinte sintaxe:

[y, i] = max(x)

tal que y é o maior elemento no vetor x, e i é o índice que corresponde ao elemento.

(32)

Avaliação do Determinante

Comentou-se anteriormente que a avaliação do determinante pela expansão das matrizes menores era impraticável para sistemas de equações grandes. Entretanto, como o determinante possui uma função importante para se verificar a condição do sistema, é útil que exista um método prático para se calcular este valor.

Felizmente, a eliminação de Gauss fornece uma maneira fácil para se fazer isso. O método se baseia no fato de que o determinante de uma matriz triangular pode ser calculado simplesmente como o produto dos elementos da diagonal principal.

Como a eliminação de Gauss resulta numa matriz triangular superior, o determinante

pode ser calculado como:

(33)

33/39 Prof. MSc. David Roza José

[email protected]

Avaliação do Determinante

Quando o programa emprega o Pivotamento Parcial existe uma pequena modificação.

Cada vez que linhas são trocadas, o determinante muda de sinal. Uma maneira de levar isso em conta é através da equação a seguir:

Tal que p representa a quantidade de vezes que linhas são alteradas. Esta modificação

pode ser incorporada de maneira simples num programa ao simplesmente se introduzir

um contador.

(34)

Sistemas Tridiagonais

Certas matrizes possuem esta estrutura particular que pode ser explorada para se desenvolver esquemas eficientes de solução. Por exemplo, uma matriz em banda é uma matriz quadrada que possui todos os elementos iguais a zero, exceto por uma banda centrada na diagonal principal.

Um sistema tridiagonal possui uma largura de banda de 3 e pode ser genericamente

expressa como:

(35)

35/39 Prof. MSc. David Roza José

[email protected]

Sistemas Tridiagonais

Note que alterou-se a notação dos coeficientes de a's e b's para e's, f's, g's, e r's. Isso foi feito para evitar armazenar grande número de zeros – inúteis - na matriz quadrada de a's. Essa modificação é bastante vantajosa porque o algoritmo resultante necessita de menos espaço na memória.

Um algoritmo para resolver tais sistemas pode ser diretamente baseado na Eliminação

de Gauss – utilizando eliminação progressiva e substituição regressiva. Entretanto, como

maioria dos elementos já são zero, menos esforço é necessário em relação a uma matriz

cheia. Esta eficiência será vista no exemplo a seguir.

(36)

Exemplo

Resolver o seguinte sistema tridiagonal:

A eliminação progressiva consiste em transformar a matriz em triangular superior. Isso é

feito ao se multiplicar a primeira equação pelo fator e

2

/f

1

e subtrair o resultado da

segunda equação. Isso cria um zero no lugar de e

2

e transforma os outros coeficientes:

(37)

37/39 Prof. MSc. David Roza José

[email protected]

Exemplo

Após realizar o mesmo cálculo para a terceira e quarta linha, o sistema torna-se triangular superior.

E a substituição regressiva pode ser aplicada para gerar a solução final.

(38)

MATLAB

Conferir o arquivo Tridiag.m. Nele está implementada uma rotina que resolve um

sistema tridiagonal de equações. Apesar do pivotamento ser necessário às vezes, na

maioria das vezes os sistemas tridiagonais de engenharia não necessitam ser pivotados.

(39)

39/39 Prof. MSc. David Roza José

[email protected]

Informações

Exercícios: 9.02 9.03 9.04 9.05 9.06 9.07 9.08 9.09

9.11 9.14 9.15 9.16 9.17

Referências

Documentos relacionados

Do ponto de vista das políticas públicas voltadas à revitalização de centros urbanos degradados, como o de Porto Alegre, os principais entraves são exatamente aqueles vinculados

Todos os números e gráficos apresentados no texto, para os benefícios de aposentadoria, foram calculados diretamente de um painel de benefícios anuais, simulado à semelhança

Média de larvas, pupas e adultos de Scarabaeidae coletados de abril a outubro de 2007, em raízes de plantas de Acrocomia aculeata em áreas de7. pastagem no município de

Dado um aço HR 1050, calcule: (i) o limite de endurança para vida infinita; (ii) a resistência à fadiga (tensão alternante) de um espécime polido de viga rotativa

Apesar de podermos pensar que o M´ etodo de elimina¸ c˜ ao de Gauss constr´ oi uma sequˆ encia de matrizes aumentadas, os elementos das novas matrizes podem ser armazenados na pr´

seja é uma doença Auto- Imune, as Células Parietais ou Oxinticas, são células da mucosa do fundo e corpo que produzem o Factor Intrínseco de Castle (e HCl) que é de

contribuintes para o crescimento do turismo europeu, tendo gerado cerca de 38,4 milhões de turistas, em 2013, o que representa uma quota de 3,5% do total da procura

menu. Quando a função desejada estiver realçada, pressione o botão MENU para ativá-la. Pressione Esquerda ou Direita para alterar as configurações da função