Gauss Seidel
Publicado por Perfil removido 15/05/2008
[ Hits: 26.575 ]
Esse script é bem simples, calcula o Metodo de Gauss Seidel.
Depois de compilar e executar dando as entradas devidas, gera um arquivo texto. Dê o nome para esse arquivo.
Obs:Deve definir o tamanho da matriz(1000x1000 por exemplo).Você pode tirar os argumentos que fazem ele ficar destacado. <printf("{DESCRICAO}33[036m")..etc>
/*Matematica numerica Claudir Oliveira Método de Gauss Seidel */ /* <1º passo-Criação de ponteiros e alocação de ponteiros> <2º passo-Criar ponteiro para arquivos e escrever aquivos> ############################################################ compilar:gcc SeidelModificado.c -o <name> */ #include<stdio.h> #include<math.h> #include<malloc.h> double **a, *b, *x; int i, j, n; main() { void gauss_Seidel(), aloc_var(); int s, m, n; s = 0; while(s==0) { printf("{FONTE}33[036m"); printf("{FONTE}33[04m"); printf("Resolução de SELAs - Gauss-Seidel \n"); printf("{FONTE}33[00m"); printf("{FONTE}33[036m"); printf("\n Forneça as dimensões da matriz A: m n = "); printf("{FONTE}33[00m"); scanf("%d %d", &m, &n); aloc_var(m,n); gauss_Seidel(m,n); printf("{FONTE}33[036m"); printf("{FONTE}33[05m"); printf("\n Deseja sair do progrma? (1-Sim, 0-Não)"); printf("{FONTE}33[00m"); scanf("%d", &s); } } void gauss_Seidel(m,n) int m, n; { double somat(); int k, tol; printf("{FONTE}33[036m"); printf("\n Defina a matriz A[%dx%d]\n",m,n); printf("{FONTE}33[00m"); for(i=0; i<= m-1; i++) { for(j=0; j<=n-1; j++) { printf("\n a[%d,%d]= ",i+1,j+1); scanf("%lf",&a[i][j]); } } printf("{FONTE}33[036m"); printf("\n Defina o vetor B(%d)\n",m); printf("{FONTE}33[00m"); for(i=0; i<=m-1; i++) { printf("\n b[%d]= ",i+1); scanf("%lf",&b[i]); } printf("{FONTE}33[036m"); printf("\n Defina o vetor x(%d)\n",n); printf("{FONTE}33[00m"); for(i=0; i<=n-1; i++) { printf("\n x[%d]= ",i+1); scanf("%lf",&x[i]); } printf("{FONTE}33[036m"); printf("\n Defina o número de iterações = "); printf("{FONTE}33[00m"); scanf("%d", &tol); k = 0; while (k < tol) { for(i=0; i<=n-1; i++) { x[i] = (b[i] - somat(i,n) + a[i][i]*x[i])/a[i][i]; } k = k+1; } printf("{FONTE}33[036m"); printf("\n O vetor x é = \n"); printf("{FONTE}33[00m"); for (i = 0; i <= n-1; i++) { printf("%g \n", x[i]); } } double somat(i,n) int i, n; { double soma; soma = 0.0; for(j=0; j<=n-1; j++) { soma = soma + a[i][j]*x[j]; } return soma; } void aloc_var(m,n) int m,n; { int i; printf("\n Valor de m , n = %d,%d\n",m,n); a=(double **) malloc((m+1)*sizeof(double *)); b=(double *) malloc((m+1)*sizeof(double)); x=(double *) malloc((n+1)*sizeof(double)); for(i=0;i < n+1;i++) { a[i]=(double *)malloc((n+1)*sizeof(double)); } }
Bom treino, muito completo: classificação de atletas
Fila com Lista Encadeada Descritor/Cabeçalho
função de inserção em uma Arvore
Pegando entrada do teclado e guardando em uma string
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta