Ir ao conteúdo

Posts recomendados

Postado

Pessoal, estou escrevendo um código que usa solução de sistema linear. A matriz A é uma triangular superior, o vetor Y são as incógnitas e quero resolver o sistema de baixo para cima para achar o x. Só que eu não estou conseguindo chegar à solução. O vetor solução vai ser armazenado no próprio vetor Y mesmo. n é a ordem da matriz, que nesse caso é 2. i são as linhas. j as colunas.

 

A[0][0]x1 + A[0][1]x2   = Y[0]

0                + A[1][1]x2     Y[1]

 

 

for(i=n;i>=1;i--){

    soma=Y;

        for(j=i+1;j<=n;j++){
            soma-=A[j]*Y[j];
            Y=soma/A;

        }
     
    }

 

 

Obrigada pela ajuda; 

 

Capturar.PNG

  • Curtir 1
Postado

Para postar códigos no fórum use o botão <> (Code) no topo do campo de resposta, assim mantém a formação do seu código e evita que o fórum faça alterações nele ( [ i ] sem espaços é a tag para deixar o texto em itálico no fórum, logo todos eles sumiram do seu código e o texto ficou em itálico a partir do lugar onde estava o primeiro [ i ]).

 

No C índices de matrizes e vetores começam em 0 e vão até n-1, onde n é o tamanho/comprimento da dimensão da matriz ou vetor. Logo, seus ciclos for estão errados pois vão de 1 até n, e pode tentar acessar posições que não existem na matriz.

 

Na lógica o que está errado é que j deve começar em i+1 não em i, pois o elemento A[ i ][ i ] está multiplicando a variável que iremos calcular, e o Y[ i ]=soma/A[ i ][ i ]; deveria estar depois do segundo for, não dentro dele, pois deseja-se fazer a divisão apenas depois que terminar de fazer a soma.

 

Então ficaria assim:

 

for(i = n-1; i >= 0; i--){
    soma = Y[i];
    for(j = i+1; j < n; j++){
        soma -= A[i][j] * Y[j];
    }
    Y[i] = soma / A[i][i];
}

 

  • 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!