Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Gauss - Seidel (programa), Notas de estudo de Engenharia Civil

Programa do Gauss-Seidel em Fortran

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 13/12/2009

alex-barbosa-10
alex-barbosa-10 🇧🇷

3

(1)

5 documentos

1 / 15

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
PR
Curso: Engenharia de Produção Civil
Disciplina Métodos Numéricos
ALEX BARBOSA CAMPOS SILVA
JONATHAN DA MAIA SANTOS DE MELO
RODOLFO KRUL TESSARI
3º TRABALHO DE MÉTODOS NUMÉRICOS
GAUSS-SIEDEL
LINGUAGEM FORTRAN
Prof. Violeta Maria Estephan
Curitiba
2009
pf3
pf4
pf5
pf8
pf9
pfa
pff

Pré-visualização parcial do texto

Baixe Gauss - Seidel (programa) e outras Notas de estudo em PDF para Engenharia Civil, somente na Docsity!

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ^ PR

Curso: Engenharia de Produção Civil Disciplina Métodos Numéricos

ALEX BARBOSA CAMPOS SILVA

JONATHAN DA MAIA SANTOS DE MELO

RODOLFO KRUL TESSARI

3º TRABALHO DE MÉTODOS NUMÉRICOS

GAUSS-SIEDEL

LINGUAGEM FORTRAN

Prof. Violeta Maria Estephan

Curitiba 2009

Sumário

open (2, file="GJS52EQUIPE7SOLUC.TXT")

!-----------------------------------------------------------------------------------------------

!# Entrada visual do program por meio do emprego da subrotina INICIO

!-----------------------------------------------------------------------------------------------

call INICIO (ver)

open(1, file="GJS52EQUIPE7DADOS.TXT")

read (1,*) nlin,ncol

allocate (mat(nlin,ncol), soluc(nlin), copia(nlin), posicao_i(1), posicao_j(1), vetor_erro(nlin), vetor_soluc(nlin))

do i=1, nlin

read (1,*) mat(i,:)

end do

close(1)

!_____________________________________________________________soluc=

texto="Solução inicial"

call impressao (texto, soluc,nlin,ncol-1)

dk=

n_it=

do while (dk .ge. 0.0001)

copia=soluc

do i = 1, nlin soma= do j = 1, ncol- if (j==i) cycle soma=soma+mat(i,j)*soluc(j) end do soluc(i)=(-soma+mat(i,ncol))/mat(i,i)

end do texto="Solução parcial" call impressao (texto, soluc,nlin,ncol-1)

vetor_erro=abs(soluc-copia)

Vetor_soluc=abs(soluc)

posicao_i=maxloc(Vetor_erro)

posicao_j=maxloc(vetor_soluc)

posicaoi=posicao_i(1)

posicaoj=posicao_j(1)

dk=vetor_erro(posicaoi)/vetor_soluc(posicaoj)

n_it=n_it+

end do

texto="Solução Final"

call impressao (texto, soluc,nlin,ncol-1)

write (2,*) ""

write (2,1) dk

1 format (" ERRO:", F10.7)

write (2,*) "Número de iterações:", n_it

close (2)

ver=system("GJS52EQUIPE7SOLUC.TXT")

!-----------------------------------------------------------------------------------------------

contains !##descrição das subsrotinas

!-----------------------------------------------------------------------------------------------

!## subrotina para fornecimento correto para entrada de dados ao usuário

subroutine INICIO (ver)

implicit none

do j=1,ncol write (2,1,advance="no") soluc(j) 1 format (4X,F15.5) end do write (2,*) " "

write (2,*) "____________________________________________________"

end subroutine impressao

!-----------------------------------------------------------------------------------------------

end program Gauss_Sudel

4.ANÁLISE DOS PROBLEMAS PROPOSTOS

Sim, foi preciso “pivotear” as linhas pois da maneira que estavam dispostas, o método divergia da resposta, e condição dominante para que o método convirja, foi citada na introdução deste trabalho, de que é condição suficiente de convergência que a matriz seja estritamente diagonal dominante e fica garantida a convergência da sucessão de valores gerados para a solução exata do sistema linear, caso essa condição não seja atendida o método diverge do valor real do sistema.

4.1. APRESENTAÇÃO DA RESOLUÇÃO DOS SISTEMAS UTILIZANDO O PROGRAMA

a)

Solução: Para a resolução do item a, foram realizadas as seguintes trocas:

linha 04 com linha

linha 02 com linha

0.7071 0 1 0 0.7526 0 0 0 0 0 0 0 0 - O sistema utilizado foi o seguinte:

Solução inicial


0.00000 0.00000 0.00000 0.


Solução parcial


0.02500 0.33167 0.32795 0.


Solução parcial


0.02117 0.26728 0.32224 0.


Solução parcial


0.02182 0.26669 0.32214 0.


Solução parcial


0.02183 0.26669 0.32213 0.


Solução Final


0.02183 0.26669 0.32213 0.


ERRO: 0. Número de iterações: 4

b)

2 -2 11 87 -1 245 0.7 -63 2 3 -8 1358 138 -3 21 0.3 -18 56 11 -25 -51 7 -11 38 1.8 -6 -12 3 -81 157

Solução: Para a resolução do item c, foram realizadas as seguintes trocas:

linha 09 com linha

linha 02 com linha

ERRO: 0. Número de iterações: 6 c)

0,7 -63 2 3 -8 1 18 2 -8 0 31 0 -1 1358 0 48 -8 0 0 11 382 0 0 0 192 0 -89 129 1 -11 0 0 0 132 359 1 2 -11 4 -5 28 193

Solução:

Para a resolução do item c, foram realizadas as seguintes trocas:

linha 06 com linha

coluna 1 com coluna 2 Devido à troca de colunas, neste caso a solução apresentada encontra-se na seguinte ordem: y, x, z, w, t, g. O sistema utilizado foi o seguinte:

-63 0,7 2 3 -8 1 18 -8 2 0 31 0 -1 1358 48 0 -8 0 0 11 382 0 0 0 192 0 -89 129 2 1 -11 4 -5 28 193 -11 1 0 0 0 132 359

Solução inicial


0.00000 0.00000 0.00000 0.00000 0.00000 0.


Solução parcial


-0.01587 678.93652 -47.84524 0.67188 202.97798 -2.


Solução parcial


4.66288 686.02490 -23.10719 -0.45225 137.36368 -2.


Solução parcial


4.20869 701.80023 -25.37010 -0.29641 147.32283 -2.


Solução parcial


4.45643 700.29694 -24.10002 -0.36935 143.38754 -2.


Solução parcial


4.40377 701.23297 -24.37193 -0.35451 144.34314 -2.


Solução parcial


4.42099 701.06598 -24.28438 -0.35983 144.05548 -2.


Solução parcial


4.41651 701.13184 -24.30756 -0.35857 144.13399 -2.


Solução parcial


4.41782 701.11725 -24.30088 -0.35898 144.11169 -2.


Solução Final


4.41782 701.11725 -24.30088 -0.35898 144.11169 -2.


ERRO: 0. Número de iterações: 8 d) Problema proposta

0.7071 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 2000 -0.7071 0 0 1 0.6585 0 0 0 0 0 0 0 0 0 0.7071 0 1 0 0.7526 0 0 0 0 0 0 0 0 - 0 0 0 -1 0 0 1 0.6585 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7526 1 0 0 0 0 - 0 0 0 0 -0.6585 -1 0 0 0 1 0 0 0 0 0 0 0 0 0.7526 0 0 0 1 0 0 0 0 4000 0 0 0 0 0 0 -1 0 0 0 0.7071 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7071 1 0 - 0 0 0 0 0 0 0 0.7526 0 0 0 1 0 2000 0 0 0 0 0 0 0 0 0 0 0.7071 0 1 0

13

e)^

Problema Proposto

-^

-^

-^

-^

-^

-^

-^

-^

-^

Para a resolução do item d, foram realizadas as seguintes trocas diversas trocas para atender a máxima do método de Gass-seidelQue na diagonal principal não haja termo nulo.

14

O sistema utilizado foi o seguinte:

-^

-0.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-^

-0.

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-^

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-^

0

-0.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-^

-0.

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-^

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-^

0

-0.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-^

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

5000

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-0.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-0.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-^

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-0.

0

0

1

0

0

8000

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-0.

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-0.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-0.

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-0.

0

0