Title | Eliminación Gaussiana - Programación en C |
---|---|
Course | Métodos Numéricos |
Institution | Universidad Autónoma de Zacatecas |
Pages | 3 |
File Size | 176.2 KB |
File Type | |
Total Downloads | 82 |
Total Views | 136 |
Descripción , algoritmo y un ejemplo de su programación en Lenguaje C...
La Eliminación Gaussiana En forma general este método propone la eliminación progresiva de variables en el sistema de ecuaciones, hasta tener sólo una ecuación con una incógnita. Una vez resuelta esta, se procede por sustitución regresiva hasta obtener los valores de todas las variables.
Pseudocódigo [Matriz 3x4] 1.-Inicio 2.-Leer matriz de 3 por 4. 3.-Normalizar Renglón uno 4.-Multiplicar la ecuación normalizada por el coeficiente a eliminar 5.-Restar el renglón con el coeficiente a eliminar con los resultados de la ecuación normalizada 6.- Normalizar renglón 2 7.- Multiplicar la ecuación normalizada por el coeficiente a eliminar 8.- Restar el renglón con el coeficiente a eliminar con los resultados de la ecuación normalizada 9.- Mostrar la matriz triangular superior 10.- En el último renglón quedará una variable con coeficiente con un resultado, despejar para sacar el resultado de la variable 11.- Sustituir el resultado de la variable obtenida y despejar ecuación 2 12.- Sustituir los valores obtenidos de las variables y sustituir en la ecuación 1 y despejar 13.- Mostrar los resultados de las variables
Código del método de Eliminación Gaussiana Programado en C #include #include #include #define maxn 10 struct dmatrices { int ren; int col; float v[maxn][maxn]; char nom[2]; }; void listardatos (struct dmatrices m) { int i,j; if(m.ren==0 || m.col ==0){ centrar2("La matriz ",m.nom," no tiene datos",wherey()); printf("\n"); return; } for(i=0;icol=0; strcpy(m->nom,nmat); } void cargarmt(struct dmatrices *m) { /* int i,j;*/ centrartexto("CARGANDO DATOS DE LA MATRIZ ",1); printf("\n"); implinea(); centrartexto("Numero de Renglones y Columnas [Matriz Cuadrada]\n",3); centrartexto("3",4); //scanf("%d",&m->ren); m->ren = 3; m->col = m->ren + 1; /* for(i=0;iren;i++) for(j=0;jcol;j++){ printf("%c[%d,%d]= ",m->nom[0],i+1,j+1); scanf("%f",&m->v[i][j]); }*/ m->v[0][0] = 3; m->v[0][1] = -0.1; m->v[0][2] = -0.2; m->v[0][3] = 7.85; m->v[1][0] = 0.1; m->v[1][1] = 7; m->v[1][2] = -0.3; m->v[1][3] = -19.3; m->v[2][0] = 0.3; m->v[2][1] = -0.2;
m->v[2][2] = 10; m->v[2][3] = 71.4; }
int main () { struct dmatrices a; int i,j; float x1,x2,x3; float resultado[10][10]; float pivote[2][4]; inicializar(&a,"A\0"); system("cls"); cargarmt(&a); implinea(); system("cls"); centrartexto("DATOS DE LAS MATRIZ:",1); printf("\n\n"); listardatos(a); printf("\n\n"); /*Pivote/normalizada de la primera ecuacion*/ for(i=0;i...