Sei sulla pagina 1di 18

UNIVERSIDADE ESTADUAL DE CAMPINAS

FACULDADE DE ENGENHARIA MECNICA

DEPARTAMENTO DE ENGENHARIA TRMICA E FLUIDOS

RELATRIO DA DISCIPLINA DE MTODOS NUMRICOS EM


FENMENOS DE TRANSPORTE

Desenvolvimento de um algoritmo do mtodo mtodo da Eliminao de Gauss com


Pivotamento Parcial com Escala para soluo de Sistemas de Equaes Lineares

Aluno: Max William Fraso Reis

Ra: 164299

Campinas, 2016
SUMRIO

1 INTRODUO ........................................................................................................................ 3
1.1 OBJETIVO ............................................................................................................................ 3
2 REFERENCIAL TERICO ................................................................................................... 4
2.1 Mtodos Diretos ..................................................................................................................... 4
2.2 mtodo de eliminao de Gauss com pivotamento parcial ................................................ 4
3.1 Teste do programa para o primeiro sistema de equaes lineares ................................. 11
3.2 Teste do programa para o segundo sistema de equaes lineares .................................. 13
4 CONSIDERAES FINAIS ................................................................................................ 15
REFERENCIAS ........................................................................................................................ 16
ANEXOS .................................................................................................................................... 17
3

1 INTRODUO

Sistemas de equaes lineares aparecem em problemas que contm muitas


variveis dependentes. Tais problemas ocorrem no apenas na engenharia e na cincia,
mas tambm em virtualmente todas as demais disciplinas (negcios, estatstica,
economia, etc.). Um sistema de duas (ou trs) equaes com duas (ou trs) incgnitas
pode ser resolvido manualmente por substituio ou com o uso de mtodos matemticos
(por exemplo, a regra de Cramer. Resolver um sistema dessa maneira praticamente
impossvel se o nmero de equaes (e incgnitas) for maior que trs aproximada (Gilat
e Subramaniam, 2008).

1.1 OBJETIVO

O objetivo deste trabalho desenvolver um algoritmo que resolva um


sistemas de equaes lineares utilizando o mtodo da Eliminao de Gauss com
Pivotamento Parcial com Escala mostrando sua eficincia e praticidade para resoluo de
sistemas de equaes lineares.
4

2 REFERENCIAL TERICO

2.1 Mtodos Diretos

So mtodos que permitem obter a soluo do sistema realizando-se um


nmero finito de operaes aritmticas. Portanto, o esforo computacional necessrio
para se obter uma soluo do sistema perfeitamente previsvel. Esta soluo seria exata
se no fosse a presena de erros de arredondamento.

So normalmente empregados a sistemas lineares com matrizes de


coeficientes densas e de porte mdio (at 1000 equaes). Dentre os mtodos diretos mais
comuns esto:

Mtodo de Eliminao de Gauss:

Consiste na transformao da matriz expandida (matriz de coeficientes


acrescida da coluna de termos independentes) em matriz triangular, superior ou inferior,
seguida de um processo de substituies sucessivas para explicitar a soluo do sistema.
Esta transformao em matriz triangular (ou escalonamento) conseguida atravs da
aplicao sucessiva de operaes elementares sobre linhas (ou sobre colunas) na matriz
expandida, buscando a eliminao seletiva de elementos no nulos para torna-la uma
matriz triangular. Podemos associ-lo a um processo de pivotamento, parcial ou total, que
promove uma troca seletiva de linhas (ou colunas), visando tomar pivs (elementos da
diagonais principais) com maior mdulo possvel, e assim procurando evitar a presena
de pivs nulos.

2.2 mtodo de eliminao de Gauss com pivotamento parcial

Para uma melhor compreenso deste mtodo, um exerccio deste


apresentado em seguida (Exerccio 1):

Exerccio 1): Resolver o seguinte sistema de equaes lineares pelo mtodo de eliminao
de Gauss com pivotamento parcial utilizando operaes aritmticas com 4 (quatro)
dgitos significativos.
5

0.421x 1 0.784x 2 0.279x 3 0



0.448x 1 0.832x 2 0.193x 3 1
0.421x 0.784x 0.207 x 0
1 2 3

Na forma matricial tem-se:

0.421 0.784 0.279 x1 0


0.448 0.832 0.193 x 1
2
0.421 0.784 0.207 x3 0

1- Gerao da matriz expandida:

0.421 0.784 0.279 0


0.448 0.832 0.193 1

0.421 0.784 0.207 0

2-Pivotao parcial, correspondente ao primeiro piv (k=1):

2.1-Busca do maior elemento em mdulo da coluna k = 1:

0.421 0.784 0.279 0


i = 2 (0.448) 0.832 0.193 1

0.421 0.784 0.207 0
6

2.2-troca de linhas:

0,421 0.784 0.279 0 L1 L 2


0.448 0.832 0.193 1 L L
2 1

0.421 0.784 0.207 0

Ocorre a troca da linha L1 com L2 e vice-versa)

2.3-Matriz pivotada:

(0.448) 0.832 0.193 1


0.421 0.784 0.279 0

0.421 0.784 0.207 0

3-Processo de triangularizao, correspondente ao primeiro piv (k=1):

(0.448) 0.832 0.193 1


0.421 0.784 0.279 0 L L (0.421 / 0.448)L L2 L2 0.9397L1
2 2 1

0.421 0.784 0.207 0 L 3 L 3 (0.421 / 0.448)L1 L3 L3 0.9397L1

(0.448) 0.832 0.193 1


0 1.566 0.4604 0.9397

0 0.0022 0.3884 - 0.9397

Obs.: Note que as operaes elementares aplicadas acima eliminam os elementos abaixo
da diagonal principal na primeira coluna. A operao de eliminao acontece sempre que
subtrai-se de cada linha, a linha do piv multiplicada pelo elemento a ser eliminado
dividida pelo elemento piv.

4-Pivotao Parcial, correspondente ao segundo piv (k=2):


7

4.1-Busca parcial do maior mdulo da coluna k = 2 (busca a partir da segunda linha e da


segunda coluna, pois a primeira coluna j foi anulada)

0.448 0.832 0.193 1


0 (1.566) 0.4604 0.9397

0 0.0022 0.3884 - 0.9397

4.2-No necessrio a troca de linhas, pois a matriz j est pivotada.

5-Processo de triangularizao, correspondente ao segundo piv (k=2):

0.448 0.832 0.193 1


0 (1.566) 0.4604 0.9397

0 0.0022 0.3884 - 0.9397 L 3 L 3 (0.0022 / 1.566)L 2 L3 0.001405L2

0.448 0.832 0.193 1


0 1.566 0.4604 0.9397

0 0 0.3890 - 0.9410

6-Processo de retrosubstituio sucessiva:

Primeiramente analisa-se o sistema de equaes equivalente, gerado a partir


do processo de eliminao empregado:


0.448 x1 0.832 x 2 0.193x3 1

0 x1 1.566 x 2 0.4604 x3 0.9397
0 x 0 x 0.3890 x - 0.9410


1 2 3
8

Obs.: Note-se que o valor de x3 pode ser diretamente obtido a partir da equao 3, e
posteriormente x2 e x1 a partir dos valores obtidos anteriormente.

x3 = -0.9410/ (-0.3890) x3 = 2.419

x2 = ( 0.9397 0.4606x3 ) / 1.566 x2 = -0.1113

x1 = ( 1 0.832 x2 0.193 x3 ) /0.448 x1 = 1.397

Portanto a soluo do sistema dado no exemplo 1 :

S = { 1.397, -0.1113, 2.419}


9

3 METODOLOGIA

O objetivo do algoritmo do mtodo da Eliminao de Gauss com Pivotamento


Parcial com Escala resolver sistemas no lineares. Para a implementao deste, foi
preciso implementar o algoritmo 6.2 (Eliminao de Gauss com Pivotamento Parcial). O
algoritmo neste trabalho se difere do algoritmo 6.2 nos passos 1 e 2 que est destacado
na Figura 1. Nos testes foi utilizado sistemas de 4 variveis pois o algoritmo foi fixado
para resolver este tipo de sistema.

Figura 1 Eliminao de Gauss com Pivotamento Parcial


Fonte: Burden e Faires, 2013
10
11

3.1 Teste do programa para o primeiro sistema de equaes lineares

Para este teste foi utilizado o exerccio 9 (c) do livro do Burden e Faires da
pgina 353 para a seguinte sistema:

O usurio ter que entra com os valores de cada coeficiente.

Figura 2 Resultados gerados do programa para o 1 teste


Fonte: Autoria prpria, 2016.
12

Os resultados gerados pelo programa so x1 = 0,176825404, x2 =


0,0126927188, x3 = 0,0206540339, x4 = -1,18260717.

Comparando com os valores reais dos resultados:

Valores encontrados pelo algoritmo Valores reais Erro


x1 = 0,176825404 0,176 0,000825404
x2 = 0,012692719 0,0126 0,000092719
x3 = 0,020654034 0,0206 0,000054034
x4 = -1,18260717 -1,18 0,026071700

Tabela 1 Comparao dos valores gerados pelo algoritmos com os real


Fonte: Autoria prpria, 2016 (EXCEL,2013).
13

3.2 Teste do programa para o segundo sistema de equaes lineares

Para este teste foi utilizado o exerccio 9 (d) do livro do Burden e Faires da
pgina 353 para a seguinte sistema:

Figura 3 Resultados gerados do programa para o 2 teste


Fonte: Autoria prpria, 2016.

Os resultados gerados pelo programa so x1 = 0,10167075205, x2 = -


0,0698339716, x3 = -0,0361308828, x4 = 0,0462984741.

Comparando com os valores reais dos resultados:


14

Valores encontrados pelo algoritmo Valores reais Erro


x1 = 0,101670752 0,0998 0,001870752
x2 = -0,069833972 0,0683 0,001533972
x3 = -0,036130883 0,0363 0,000169117
x4 = 0,046298474 0,0465 0,000201526

Tabela 2 Comparao dos valores gerados pelo algoritmos com os real


Fonte: Autoria prpria, 2016 (EXCEL,2013).
15

4 CONSIDERAES FINAIS

De acordo com os dados obtidos pelo algoritmo desenvolvido, foi possvel


provar que este eficiente mostrando coerncia em seus resultados. Os valores gerados
se comparados com as solues reais dos sistemas mostra contm um erro relativamente
pequeno. Nota-se que o processo de pivotamento parcial acarreta a eliminao dos
possveis pivs nulos, caso a matriz de coeficientes seja no singular (determinante
diferente de zero), tambm consegue-se uma reduo nos efeitos de erros de
arredondamento (diminuio da perda de significao), destacada na avaliao do erro
exato. Desta forma foi pode-se considerar que o objetivo deste trabalho foi atingindo de
forma satisfatria.
16

REFERENCIAS

BURDEN, Richard L., FAIRES, J. Douglas, Numerical Analysis, nine edition.

SZEREMETA, J. F. Peters, S. Anlise Numrica I, 1999, Florianpolis (Apostila).

GILAT, A, SUBRAMANIAM, V. Mtodos Numricos para Engenheiros e


Cientistas, 2008.
17

ANEXOS

program Eliminacao_de_Gauss_com_Pivotamento_Parcial_Escala

implicit none

! Declaraes das varriveis

real,dimension(4,5 )::a

real,dimension(4 )::x,s,l

integer :: N,i,m,j,k

real:: g,h,y

N=4

m=5

y=0

do j=1,m

do i=1,n

print *, 'Entre com o valor de a',i,j

read *, a(i,j )

end do

end do

do i=1,N

s(i )=max(abs(a(i,1)), abs(a(i,2 )),abs(a(i,3 )),abs(a(i,4 )))

l(i)=abs(a(i,1))/s(i )

end do

if (l(2)>l(1)) then

do i=1,n+1

g=a(1,i)

h=a(2,i)

a(1,i)=h

a(2,i)=g

end do
18

else if(l(3)>l(1)) then

do i=1, n+1

g=a(1,i )

h=a(3,i )

a(1,i )=h

a(3,i )=g

end do

else if (l(4)>l(1)) then

do i=1,n+1

g=a(1,i)

h=a(4,i)

a(1,i)=h

a(4,i)=g

end do

end if

do k=1,n-1

do i=k+1,n

y =(a(i,k))/(a(k,k))

print*,y,(a(i,k)),(a(k,k))

a(i,k)=a(i,k)-a(k,k)*(a(i,k)/a(k,k))

do j=k+1,n+1

a(i,j)=a(i,j)-a(k,j)*y

end do

end do

end do

x(4)=(a(4,5))/(a(4,4))

x(3)=(a(3,5)-x(4)*a(3,4))/(a(3,3))

x(2)=(a(2,5)-x(4)*a(2,4)-x(3)*a(2,3))/(a(2,2))

x(1)=(a(1,5)-x(4)*a(1,4)-x(3)*a(1,3)-x(2)*a(1,2))/(a(1,1))

! Valores das Solues:

Print*, "x1=", x(1),"x2=",x(2), "x3=",x(3),"x4=",x(4)

end program Eliminacao_de_Gauss_com_Pivotamento_Parcial_Escala

Potrebbero piacerti anche