Você está na página 1de 4

Projeto de Clculo Numrico 2013.

1
O projeto de Clculo Numrico consiste de trs etapas: 1. Elaborao de um programa, em uma linguagem de programao a sua escolha, que resolva numericamente um sistema de equaes lineares, conforme as especicaes descritas a seguir. 2. Elaborao de um relatrio contendo descrio terica dos mtodos implementados, orientao do uso do programa (caso ache necessrio), assim como exemplos de sistemas resolvidos pelo programa, anlise dos resultados, diculdades e limitaes (Modelo do Relatrio disponvel em http://www.cin.ufpe. br/~if215/Projeto/modelo.doc). 3. Entrevista, com o professor da disciplina, sobre as duas etapas anteriores do projeto.

O professor poder se recusar a receber o projeto caso falte qualquer dos trs itens previamente citados. A data da entrevista, assim como o representante da equipe que ir participar da mesma, caro a critrio do professor da turma. A nota do projeto consiste em 25% do cdigo, 25% do relatrio e 50% da entrevista. O CD/DVD e relatrio impresso entregues no sero devolvidos.

Especicaes do Programa

O programa dever resolver um sistema de equaes lineares por trs mtodos diferentes: decomposio LU, mtodo iterativo de Jacobi, mtodo iterativo de GaussSeidel. Um sistema de equaes lineares com n variveis e n incgnitas pode ser escrito como: a11 x1 + a12 x2 + + a1n xn = b1 a21 x1 + a22 x2 + + a2n xn = b2 . . . an1 x1 + an2 x2 + + ann xn = bn ou ainda na representao matricial (estendida): a11 a21 . . . an1 a12 a22 . . . an2 .. . a1n a2n . . . ann b1 b2 . . . bn (2)

(1)

Informaes Gerais
O projeto vale 4,5 pontos na terceira nota da disciplina. Caso o estudante falte a terceira prova e a substitua pela 2a chamada, esta ltima ter valor mximo de 5,5 pontos (a nota do projeto ser adicionada nota da 2a chamada). No de componentes: at 5 pessoas por equipe. Cada equipe deve ser formada por alunos da mesma turma em que esto matriculados. Data da entrega: 15/08/2013. Cada equipe dever se cadastrar at 18/07/2013, atravs de e-mail ao professor da sua turma contendo o formulrio disponvel em http://www.cin.ufpe. br/~if215/Projeto/Inscricao.doc, ou trazendo o formulrio preenchido para sala de aula. Na data da entrega, devero ser entregues trs itens, no horrio da aula, em um envelope: CD ou DVD contendo cdigo fonte, cdigo executvel e relatrio (doc ou pdf). Relatrio impresso.

2.1

Entrada/sada

Os sistemas de equaes que devero ser resolvidos pelo programa sero fornecidos em um arquivo texto chamado entrada.txt que estar na mesma pasta que o executvel do programa. Esse arquivo conter uma coleo de especicaes de sistemas de equaes lineares, obedecendo o seguinte formato: 1. A primeira linha de uma especicao de sistema linear contm apenas um nmero inteiro positivo 2 n 150, que corresponde ao tamanho do sistema. Pode-se ter n = 0, o que sinaliza que o m do arquivo (no h mais sistemas descritos nele); 2. a seguir seguem-se n linhas, sendo que cada isima dessas contm os n + 1 nmeros reais ai1

. . . ain bi , separados por um espao em branco (utilizando "."como separador decimal). Isto , cada linha corresponde a uma linha da representao matricial estendida do sistema. 3. segue-se ento uma linha contendo 2 nmeros separados por um espao em branco: nmax max 4. nalmente segue-se uma linha com n nmeros reais separados por espao: x1 (0) . . . xn (0). Este o vetor aproximao inicial que dever ser usado pelos mtodos iterativos. nmax o nmero mximo de iteraes que devem ser realizadas para os mtodos iterativos. max representa um critrio de parada para os mtodos iterativos. Os mtodos iterativos devem se encerrar quando o nmero de iteraes for maior que nmax ou quando < max , o que ocorrer primeiro. Temos que ao nal de cada iterao, |xi (k+1)xi (k)| = maxn . i=1 |xi (k)| O programa dever realizar pivotao, garantindo que os elementos aii sejam sempre no nulos. Note que os mtodos iterativos podero no convergir. O programa dever imprimir as sadas para cada sistema contido na entrada em um arquivo texto chamado saida.txt, na mesma pasta em que for executado o programa. O seguinte formato dever ser adotado para cada sistema: 1. A primeira linha dever conter o texto: L = 2. Em seguir seguem-se n linhas contendo cada uma os n valores da i-sima linha da matriz L 3. Em seguida dever haver uma linha com o texto: U = 4. Em seguir seguem-se n linhas contendo cada uma os n valores reais da i-sima linha da matriz U , separados por espao 5. Segue-se ento uma linha com o texto: Solucao LU 6. Tem-se ento uma linha com n valores reais separados por espao, correspondendo ao vetor soluo obtido pelo mtodo de decomposio LU. 7. Em seguida, temos uma linha com o texto: Metodo de Jacobi

8. Seguem-se ento k + 1 linhas, cada uma contendo o nmero da iterao e os n valores xi (k) da iterao para o mtodo de Jacobi. 9. Enm uma linha com o texto: Criterio de parada atingido: nmax ou Criterio de parada atingido: deltamax, de acordo com o criterio de parada alcanado. 10. Ento deve-se seguir uma linha com o texto: Metodo de Gauss-Seidel. 11. Seguem-se ento k + 1 linhas, cada uma contendo o nmero da iterao e os n valores xi (k) da iterao para o mtodo de Gauss-Seidel. 12. Enm uma linha com o texto: Criterio de parada atingido: nmax ou Criterio de parada atingido: deltamax, de acordo com o criterio de parada alcanado. Todas os valores reais que sero impressos na sada, devem ser impressos com 4 casas decimais.

2.2

Arquivo exemplo entrada.txt

de

entrada:

3 5.0000 2.0000 1.0000 8.0000 3.0000 6.0000 -2.0000 7.0000 2.0000 -4.0000 10.0000 8.0000 3 0.00001 0.0000 0.0000 0.0000 3 5.0000 2.0000 1.0000 8.0000 3.0000 6.0000 -2.0000 7.0000 2.0000 -4.0000 10.0000 8.0000 4 0.00001 0.0000 0.0000 0.0000 0

2.3

Sada para o exemplo: saida.txt

L = 5.0000 0.0000 0.0000 3.0000 4.8000 0.0000 2.0000 -4.8000 7.0000 U = 1.0000 0.4000 0.2000 0.0000 1.0000 -0.5417 0.0000 0.0000 1.0000 Solucao LU 1.0000 1.0000 1.0000

Metodo de Jacobi 0 0.0000 0.0000 0.0000 1 1.6000 1.1667 0.8000 2 0.9733 0.6333 0.9467 3 1.1573 0.9956 0.8587 Criterio de parada atingido: Metodo de Gauss-Seidel 0 0.0000 0.0000 0.0000 1 1.6000 0.3667 0.6267 2 1.3280 0.7116 0.8190 3 1.1516 0.8639 0.9152 Criterio de parada atingido: L = 5.0000 0.0000 0.0000 3.0000 4.8000 0.0000 2.0000 -4.8000 7.0000 U = 1.0000 0.4000 0.2000 0.0000 1.0000 -0.5417 0.0000 0.0000 1.0000 Solucao LU 1.0000 1.0000 1.0000 Metodo de Jacobi 0 0.0000 0.0000 0.0000 1 1.6000 1.1667 0.8000 2 0.9733 0.6333 0.9467 3 1.1573 0.9956 0.8587 4 1.0300 0.8742 0.9668 Criterio de parada atingido: Metodo de Gauss-Seidel 0 0.0000 0.0000 0.0000 1 1.6000 0.3667 0.6267 2 1.3280 0.7116 0.8190 3 1.1516 0.8639 0.9152 3 1.0714 0.9360 0.9601 Criterio de parada atingido:

No colocar trechos do cdigo no texto do relatrio, se achar necessrio, colocar um pseudocdigo compacto. O cdigo impresso pode ser posto em anexo; nmax Na seo de resultados, devem ser apresentados pelo menos dois exemplos, um para cada modo, descrevendo os parmetros utilizados e o resultados obtidos. Compare os resultados obtidos por cada mtodo. Se houver diferenas, tente entender o que levou a esta diferena.

nmax

2.5

Comentrios sobre o Programa

Antes de implementar, faa um esboo do que o programa vai fazer: O que ele vai ler como entrada; O que vai escrever na sada; As opes que o mesmo deve ter; Assim, poder implement-lo por partes, de forma incremental; Escolha sistemas lineares simples como teste, e faa os clculos manualmente para os trs mtodos. Depois compare com as sadas do programa. Teste em quantos sistemas puder, incluindo com elementos da diagonal principal nula (vericar se sua pivotao est funcionando ou no).

nmax

nmax

2.4

Comentrios sobre o Relatrio

O grupo desde j, pode comear a escrever a parte terica do relatrio, no perca tempo fazendo apenas depois que o cdigo estiver pronto. Cuidados com Formatao do texto; Erros grosseiros de portugus; Confundir guras com tabelas; Numerar as equaes (observe que uma equao NO uma gura); Numerar guras e tabelas, colocando legenda nas mesmas;

Observao 1: Cada cdigo nico na sua concepo e codicao. Por isso, o debate entre as equipes vlido, mas no compartilhem os cdigos. Se forem encontrados cdigos copiados, a nota do projeto de todas as equipes que estiverem envolvidas ser zerada. Observao 2: O projeto trata de encontrar a soluo de um sistema de equaes lineares. A forma na qual isso ser ser feito utilizando mtodos numricos. Lembre-se que um cdigo nunca ser o foco principal de qualquer trabalho que envolva simulaes, incluindo este aqui. Ele apenas uma ferramenta que ajudar alcanar um objetivo.

2.6

Testes Sugeridos:
5 = 100 , max = 10 , x(0) = 0. 7 10 2 0 4 2 6 10 8 e 3 5 2 1 7 7

Teste 1: nmax 7 6 15 2 5 0 4 1 1

Teste 2: Questo 8. do captulo 3 do livro-texto da disciplina. Teste 3: Questo 8. do captulo 3 do livro-texto da disciplina, aumentando a ordem do sistema para n = 80. Teste 4: Questo 8. do captulo 3 do livro-texto da disciplina, aumentando a ordem do sistema para n = 150.