-
Notifications
You must be signed in to change notification settings - Fork 0
/
jacobi.sci
29 lines (19 loc) · 878 Bytes
/
jacobi.sci
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function solucao = jacobi(matriz, vetorTermosIndependentes, solucaoAproximada, tolerancia, interacoes)
[linhas colunas] = size(matriz);
solucao = zeros(linhas, 1);
for iteracao = 1 : iteracoes
for linha = 1 : linhas
soma = 0;
for coluna = [1 : linha-1, linha+1 : colunas] // acessa de 1 .. coluna, menos quando linha == coluna
soma = soma + matriz(linha, coluna) * solucaoAproximada(coluna);
end
solucao(linha) = (vetorTermosIndependentes(linha) - soma) / matriz(linha, linha);
end
if (norm(solucao - solucaoAproximada), 'inf') < tolerancia then
return solucao;
end
disp(solucao);
solucaoAproximada = solucao;
end
printf("codigo nao convergiu!");
endfunction