Algoritmo Jacobi
Pesquisas Acadêmicas: Algoritmo Jacobi. Pesquise 862.000+ trabalhos acadêmicosPor: Marinalcb • 25/2/2015 • Pesquisas Acadêmicas • 2.663 Palavras (11 Páginas) • 215 Visualizações
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
...