Projeto computacional
Trabalho Projeto Computacional
Curitiba
2010
Introdução
A proposta inicial deste projeto computacional foi a de resolver um sistema linear da forma Ax = b utilizando o método de Jacobi. No que diz respeito ao objetivo foi o de aplicar de forma eficiente o método proposto satisfazendo o critério de convergência. De início todos os esforços foram para a interpretação e entendimento do problema, em seguida foram realizadas diversas tentativas de construção do algoritmo até chegar em uma resposta definitiva e plausível. Sucintamente o método se baseia em resolver um sistema de equações lineares com os maiores valores absolutos em cada linha e coluna dominados pelos elementos de sua diagonal. A validação foi executada com problemas do livro que foi recomendado para a disciplina.
PROGRAMA GERAL PARA CALCULAR AS INCOGNITAS DE UM SISTEMA LINEAR PELO METODO DE JACOBI
PROGRAM Metodo_Jacobi
REAL, ALLOCATABLE,DIMENSION(:) :: x0, b
REAL, ALLOCATABLE,DIMENSION(:,:) :: M
INTEGER Q, INTER, I, J, N
REAL S
Write(*,*) "ESCREVA O NUMERO DE EQUACOES"
Read(*,*) n
Allocate(x0(n))
Allocate(b(n))
Allocate(M(n,n))
!ENTRADA DOS VALORES DEPENDENTES DE Xn
Do i=1,n
Write(*,*) "ENTRE COM OS VALORES NA LINHA", i
Do j=1,n
Read(*,*) M(i,j)
End Do
End Do
!ENTRADA DE UM VALOR MAXIMO DE INTERACOES PARA
! O SISTEMA NAO ENTRAR EM LOOPING
Write(*,*) "ENTRE COM O NUMERO MAXIMO DE INTERACOES DESEJADAS"
Read(*,*) INTER
Write(*,*) "ENTRE COM OS VALORES INDEPENDENTES DE X"
Do i=1, n
Read(*,*) B(i)
End Do
X0=0
!AQUI EH O METODO EM SI, APLICANDO O METODO DE JACOBI PARA DESCOBRIR
!AS INCOGNITAS ASSOCIADAS ANTERIORMENTE
Q=1
Do While (q<=INTER)
Do i=1,n
Do j=1,i-1 s = M(i,j)*x0(j)
End Do
Do j=i+1,n s = s + M(i,j)*x0(j)
End Do x0(i)=(b(i)-s)/M(i,i) End Do q=q+1 S=0
End Do
Write(*,*) "OS VALORES APROXIMADOS ENCONTRADOS SAO:"
Do i=1, n
Write(*,*) "X", i, " = ", X0(I)
End Do
END PROGRAM
Aqui