bia.sayuri.akinaga@gmail.c Postado Junho 3, 2020 Denunciar Share Postado Junho 3, 2020 sou estudante de engenharia de Produção e este semestre estou tendo programação, porém possuo muita dificuldade e preciso criar uma função que resolva um sistema linear com n equações e n incógnitas, usando matriz inversa. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Hazzu Postado Junho 3, 2020 Denunciar Share Postado Junho 3, 2020 (editado) Já desenvolvi uma função em C para resolução de sistemas lineares pelo método da Eliminação de Gauss. //Resolução de sistema linear através do Método da Eliminação Gaussiana float * Gauss(float ** M, int tam){ int i, l, j; float * S; float pivor[2]; float aux; S=AlocarVetor(tam); for (j=0; j<tam-1; j++){ pivor[0]=j; pivor[1]=M[j][j]; for (l=j+1; l<tam;l++){ //Procura do maior termo na coluna if ((float)fabs(M[l][j])>(float)fabs(pivor[1])){ pivor[0]=l; pivor[1]=M[l][j]; } } if ((int)pivor[0] != j){ for (l=j; l<=tam; l++){ //Colocando a linha com o maior termo no topo aux=M[(int)pivor[0]][l]; M[(int)pivor[0]][l]=M[j][l]; M[j][l]=aux; } } for (i=j+1;i<tam;i++){ //Escalonamento for (l=tam; l>=j; l--){ M[i][l]=M[i][l]-M[j][l]*(M[i][j]/M[j][j]); } } } //Solução S[tam-1]=M[tam-1][tam]/M[tam-1][tam-1]; for (i=tam-2; i>=0; i--){ aux=0; for (j=i+1; j<tam; j++) aux=aux+M[i][j]*S[j]; S[i]=(M[i][tam]-aux)/M[i][i]; } return S; } Onde M é a matriz ampliada do sistema e tam é o tamanho. A linguagem C oferece mais dificuldade em operações com matrizes devido a lógica de ponteiros e ausência de operações vetoriais. Editado Junho 3, 2020 por Hazzu Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
bia.sayuri.akinaga@gmail.c
sou estudante de engenharia de Produção e este semestre estou tendo programação, porém possuo muita dificuldade e preciso criar uma função que resolva um sistema linear com n equações e n incógnitas, usando matriz inversa.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.