Documentos de Académico
Documentos de Profesional
Documentos de Cultura
#include<stdio.h>
#include <math.h>
#include <stdlib.h>
// prototipo de funciones
void imprimir(int filas, int columnas, double * );
void pivotear(int filas, int columnas, double *, double*,double*,int j);
void mensaje ();
main()
{
// Declracion de varables locales de la funcion main
int m,n;
printf("ingrese el tamaño de la matriz de coeficientes \n");
printf("Ingresa el numero de filas de la matriz de coeficientes: ");
scanf("%d",&m);
printf("\nIngresa el numero de columanas de la matriz de coeficientes: ");
scanf("%d",&n);
n+=1;
//declarmos una arreglo bidimencional que almacenara los coeficientes reales
de las variables
double MatrizA[m][n];
//Metodo de gauss-jordan
printf("\n reducciones por pivote \n");
double pivoteaux = 0.0;
double vectorPivote[n];
double vectorPivoteaux[n];
double s = 0.0;
if(i == j )
{
// Para evitar que se altere la fila pivote se realizan las
siguientes asignaciones.
for(int l = 0; l < n; l++)
{
MatrizA[i][l] = vectorPivoteaux[l];
if(MatrizA[i][l] == -0)
{
MatrizA[i][l] = 0;
}
}
}
imprimir(m,n,&MatrizA[0][0]);
}
// defincion de funciones
void imprimir(int m, int n, double * MatrizA)
{ // variables locales
printf("\n\n");
int contar = 0;
for(int i = 0; i<m*n; i++)
{
if(contar < n)
{
printf(" %.2lg ",MatrizA[i]);
contar++;
}
else
{
contar = 0;
printf("\n");
printf(" %.2lg ",MatrizA[i]);
contar++;
}
//Una vez copiados los datos en una matriz temporal operamos para obtener el
pivote y su fila asociada
for(int i = 0; i<m;i++)
{
if(i == j )
{
// Suponemos que el pivote esta en la posicion (i,j) y lo
calculamos dividiendo el numero en esa posicion entre si mismo.
pivoteaux = matrizTemporal[i][j];
printf("\nPivote: %.2lg\n",pivoteaux);
if (pivoteaux==0) printf("\nel sistema es inconsistnete (no tiene solucion o
tiene un numero infinito de soluciones)\n");
// En la matriz temporal realizamos la divicion de toda la
fila donde se encuentra el pivote y la guardamos en la matriz temporal y en dos
vectores que usaremos mas tarde.
for(int l = 0; l < n; l++)
{
matrizTemporal[i][l] = matrizTemporal[i][l] /
pivoteaux;
vectorPivote[l] = matrizTemporal[i][l];
vectorPivoteaux[l] = matrizTemporal[i][l];
}
}
}
}
void mensaje () {
printf("\nsistema inconsistente\n");
}