Red de conocimiento informático - Descarga de software - Escribir el método de eliminación de pivote total Gaussiano-Jordan en lenguaje C

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--)

{

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.