Ir ao conteúdo

Posts recomendados

Postado

Olá!

Estou desenvolvendo um código em C que calcula o Método de Newton, fazendo diversos cálculos matriciais. O código está funcionando perfeitamente para casos simples que rodo, mas quando tento rodar problemas maiores, chega uma hora que o programa simplesmente trava e obtenho o erro: 

 

process terminated with status -1073741510

 

Pelo que andei testando, o programa para no laço em vermelho no código abaixo:

void calcular_LU(double **A, double **L, double **U, int *p, int n) {    
    int i, j, k, y,a, v;

    for(a = 0; a < n; a++)   
        p[a] = a;

    for(k = 1; k <= n; k++) {
        for(i = k; i <= n; i++) {
            for(j = 1; j <= k - 1; j++) {
                    A[i - 1][k - 1] -= A[i - 1][j - 1] * A[j - 1][k - 1];         
            }                                                                      
        } 
        detecta_maximo_e_troca(A, p, k - 1, n);

        for(v = k + 1; v <= n; v++) {    
            for(y = 1; y <= k - 1; y++)  
                A[k - 1][v - 1] -= A[k - 1][y - 1] * A[y - 1][v - 1];

            A[v - 1][k - 1] /= A[k - 1][k - 1];
        }
    }

//----------------------------------------------------------------------------------------------------------
//Determinação das matrizes L e U, a partir da matriz A calculada acima

    int conta_linha, conta_coluna;

    for(conta_linha = 0; conta_linha < n; conta_linha++) {
        for(conta_coluna = 0; conta_coluna < n; conta_coluna++) {
            if(conta_linha == conta_coluna) {   
                L[conta_linha][conta_coluna] = 1;
                U[conta_linha][conta_coluna] = A[conta_linha][conta_coluna];
            } else if(conta_linha < conta_coluna) {  //célula de A que vai para U
                U[conta_linha][conta_coluna] = A[conta_linha][conta_coluna];
                L[conta_linha][conta_coluna] = 0;
            } else {  //conta_linha > conta_coluna       célula de A que vai para L
                L[conta_linha][conta_coluna] = A[conta_linha][conta_coluna];
                U[conta_linha][conta_coluna] = 0;
            }
        }
    }
}

 

O código rodou 3743 iterações, e depois solta a mensagem de erro.

Alguma ideia do que pode ser esse erro?

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!