TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Algoritmo Jacobi

Pesquisas Acadêmicas: Algoritmo Jacobi. Pesquise 859.000+ trabalhos acadêmicos

Por:   •  25/2/2015  •  Pesquisas Acadêmicas  •  2.663 Palavras (11 Páginas)  •  199 Visualizações

Página 1 de 11

Algoritmo Jacobi

{Objetivo: Resolver o sistema Ax=b pelo método iterativo de Jacobi }

Parametros de entrada: n, A, b, Epson, Kmax {ordem, Coeficientes,

Termos Independentes, Tolerância e Número máximo de iterações}

Parametros de saida: x, K, Converge {vetor solução, numero de iterações, Convergência }

{Construção das matrizes de iteração – a matriz J armazenada em A e o vetor c em b}

para i 1 até n faça

para j 1 até n faça

se i ≠ j

então A(i,j) A(i,j) / A(i,i)

fim_se

fim_para

b(i) b(i) / A(i,i)

x(i) b(i) {atribui valores iniciais ao vetor x}

fim_para

{iterações do método Jacobi }

K 0

repita

k k +1

para i 1 até n faça { cálculo do K-ésimo vetor x }

soma 0

para j 1 até n faça

se i ≠j então Soma Soma + A(i,j) x(j) fim_se

fim_para

v(i) b(i) – soma {v é um vetor auxiliar com o k-ésimo valor de x}

fim_para

{cálculo das normas }

NormaNum 0 {norma do numerador }

NormaDen 0 {norma do denominador }

para i 1 até n faça

t abs(v(i)-x(i))

se t > NormaNum então NormaNum t fim_se

se v(i) > NormaDen então NormaDen abs(v(i) fim_se

x(i) v(i) {atualiza x com o k-ésimo valor de x }

fim_para

Norma NormaNum / NormaDen

{teste de convergencia }

escreva K, x, Norma

se Norma ≤ Epson ou K > Kmax então interrompa fim_se

fim_repita

se Norma ≤ Epson então Converge verdadeiro senão Converge falso fim_se

fim Algoritmo

Codificado:

n = input(" Digite a ordem da matriz: " )

A = input(" DIgite a Matriz A: " )

b = input(" Digite os termos independentes: " )

Epson = input(" Digite a Tolerância: ")

Kmax = input("Digite o número máximo de iterações: ")

for i = 1:1:n

for j = 1:1:n

if i ~= j then

A (i,j) = A (i,j) / A (i,i)

end

end

b (i) = b (i) / A (i,i)

x (i) = b (i)

end

k = 0

for k = Kmax:-1:0

k = k + 1

for i = 1:1:n

Auxiliar = 0

for j = 1:1:n

if i ~= j then

Auxiliar = Auxiliar + A (i,j) * x (j)

end

end

v (i) = b (i) - Auxiliar

end

NormaNum = 0

NormaDen = 0

for i = 1:1:n

t = abs( v (i) - x (i) )

if t > NormaNum then

NormaNum = t

end

if v (i) > NormaDen then

NormaDen = abs( v (i) )

end

x (i) = v (i)

end

Norma = NormaNum / NormaDen

disp ( "Norma", Norma, "x", x, "k", Kmax - k )

if Norma <= Epson then

break

end

end

if Norma <= Epson then

Converge = %T

disp("O método iterativo converge.")

else

Converge = %F

End

// Matriz Resultado

disp("A Matriz solução X = ")

disp(x)

Exercício 2 -

Algoritmo Jacobi

{Objetivo: Resolver o sistema Ax=b pelo método iterativo de Jacobi }

Parametros de entrada: n, A, b, Epson, Kmax {ordem, Coeficientes,

Termos Independentes, Tolerância e Número

...

Baixar como (para membros premium)  txt (11.3 Kb)  
Continuar por mais 10 páginas »
Disponível apenas no TrabalhosGratuitos.com