Escribir el método de eliminación de pivote total Gaussiano-Jordan en lenguaje C
#include lt;iostreamgt;
#include lt;iomanip.hgt;
usando el espacio de nombres std;
#define N 20
doble a[N][N];
doble x[N 1];
doble b[N 1]; >int n; //N número de ecuaciones, n número de incógnitas
int set()
{
coutlt;lt;"Por favor, ingresa la ecuación Números y números desconocidos: "lt; lt; endl;
cingt; gt; n;
int i, j;
coutlt; lt; "Por favor ingrese al sistema de ecuaciones (ingrese la ecuación i una por una)"lt;lt;endl;
for(i = 1;i lt;= n;i)
{
for(j = 1;jlt;=n;j)
{
cingt;gt;a[i][j];//coeficiente
}
cingt; b[i]; // resultado
}
devuelve 0; >}
int find(int k)//Encuentra el pivote de la k-ésima columna
{
int i, tag = k;
doble maxv=0;
for(i = k; i lt; = n; i )
{
if(a[i][k ] gt; maxv)
{
maxv = a[i][k]
etiqueta = i; / p>
}
etiqueta de retorno;
}
void exchange(int i1, int i2)//Intercambia filas i1 e i2< / p>
{
int j
for(j = 1; j lt; = n; j )
{
intercambiar(a[i1][j], a[i2][j]);
}
intercambiar(b[i1], b[i2]); /p>
}
void div(int k)//Sea 1 el primer coeficiente de la k-ésima ecuación
{
double temp = a[k][k];
for(int j = k; j lt; = n; j)
{
a[k ][j]/=temp;
}
b[k]/=temp;
}
void disME(int k)
{
int i, j;
for(i =1; ilt; =n; i)
{
for(j = i; jlt; = n; j )
{
if(a[i][j])
{
if(a[i][j]==1)
{ if(j==n)
cou
tlt;lt;"x"lt;lt;j;
else
coutlt;lt;"x"lt;lt;jlt;lt;" ";
}
else
{
if(j==n)
coutlt;lt;a[i][ j]lt;lt;"x"lt;lt;j;
else
coutlt;lt;a[i][j]lt;lt;"x"lt; lt;jlt;lt;" ";
}
}
}
coutlt;lt;" = "lt;lt ;b[i]lt;lt;endl;
}
sistema("pausa");
}
anular eliminar (int k)//Eliminación
{
int i, j;
double t
for(i = k 1; ; ilt; = n; i )
{
t = a[i][k]/a[k][k];
para ( j = k; j lt; = n; j )
{
a[i][j]-=a[k][j] * t;
}
b[i] -= b[k] * t;
}
}
vacío Gauss ( )//Método de eliminación gaussiano
{
int i, j, k
for(k = 1; k lt; n; k) // ***Realizar n - 1 eliminaciones
{
int l = find(k) //Encontrar la ecuación del componente principal del k-ésimo método de eliminación
p>
if(l!=k)
{
intercambio(l, k
}
); / /eliminar
div(k);
eliminar(k);
coutlt;lt;"<"lt;lt;klt;lt;" Resultado de la subeliminación: "lt; lt; endl;
disME(k);
}
div(k);
x[k] = b[k];
//disM();
for(i = n - 1; igt; = 1; i--) p>
{
for(j = i 1; j lt; = n ; j )
{
b[i] -= a [i][j] * b [j];
}
x[i] = b[i]; p>}
void dis()
{
int i;
coutlt; "Resuelve la ecuación para obtener: "lt ;lt;endl;
for(i = 1;ilt;=n;i)
{
coutlt;lt;"x"lt ;lt ;ilt;lt;" = ";
printf(".
5f\n", x[i]);
}
}
int main()
{
set();
Gauss();
dis();
sistema("pausa"); devolver 0;
}
————————————————————————————————
Espero que la respuesta te pueda ayudar. Si tienes alguna duda, puedes preguntar.
Por supuesto, también es tu virtud adoptar, gracias.