diff --git a/utils/sislin.c b/utils/sislin.c index 875f6dad3a868cbd52265ba7154ec19328283023..610b11811d267212025f7d4b228cfa5065f9e131 100644 --- a/utils/sislin.c +++ b/utils/sislin.c @@ -128,7 +128,10 @@ void iniSisLin (SistLinear_t *SL, tipoSistLinear_t tipo, real_t coef_max) else if (tipo == diagDominante) { // aumenta o expoente dos termos da diagonal principal for (unsigned int i=0; i<n; ++i) { - SL->A[i][i] *= (real_t)n; + real_t soma = 0.0; + for (unsigned int j=0; j < i; ++j) soma += SL->A[i][j]; + for (unsigned int j=i+1; j < n; ++j) soma += SL->A[i][j]; + SL->A[i][i] += soma; } } }