lunes, 5 de diciembre de 2022

Método Gauss

 #include<iostream>

#include<conio.h>

#include<stdio.h>

using namespace std;

void imprimir(int filas, int columnas, float * );

void r(int filas, int columnas, float *, float*,float*,int j);


int main()

{

int filas = 0, columnas = 0;

cout<<"Cuantas filas son: ";

cin>>filas;

cout<<"\nCuantas columnas son: ";

cin>>columnas;

columnas = columnas + 1;

float A[filas][columnas];

cout<<"\nIngresa Matriz";

for(int j=0; j<columnas;j++){

for(int i = 0; i<filas; i++){

if (columnas - 1 == j){

cout<<"\nIngresa Vectores";

}

cout<<"\nIngresa los valores: ("<<i+1<<","<<j+1<<")=";

cin>>A[i][j];}

}

cout<<"Matriz Inicial\n";

imprimir(filas,columnas,&A[0][0]);

float p = 0;

float vp[columnas];

float cp[columnas];

float n = 0;

for(int j =0; j<columnas-1;j++){

r(filas, columnas,&A[0][0], &vp[0], &cp[0], j);

for(int i = 0; i<filas; i++){

cout<<"\n\n",i+1,j+1;

if (i != j && j < columnas-1) {

n = A[i][j];

}

for(int k = 0; k < columnas; k++){

A[i][k] = (-1*n*vp[k]) + A[i][k];

}

if(i == j )

{

for(int l = 0; l < columnas; l++) {

A[i][l] = cp[l];

if(A[i][l] == -0) {

A[i][l] = 0;}

}

}

imprimir(filas,columnas,&A[0][0]); }

n = 0;

for(int k = 0; k < columnas; k++){

vp[k] = 0;}

}

}

void imprimir(int filas, int columnas, float * A)

{

cout<<"\n";

int contar = 0;

for(int i = 0; i<filas*columnas; i++){

if(contar < columnas)

{

printf(" %5.3f ",A[i]);

contar++;

}

else

{

contar = 0;

cout<<"\n";

printf(" %5.3f ",A[i]);

contar++;

}

}

}

void r(int filas, int columnas, float *A, float *vp, float *cp, int j)

{

float p = 0;

float T[filas][columnas];

int s = 0;

for (int i = 0; i < filas; i++) {

for( int k = 0; k < columnas; k++) {

T[i][k] = A[s];

s++;}

}

for(int i = 0; i<filas;i++){

if(i == j ){

p = T[i][j];

cout<<"\nPivote: \n"<<p;

for(int l = 0; l < columnas; l++)

{

T[i][l] = T[i][l] / p;

vp[l] = T[i][l];

cp[l] = T[i][l]; }

}

}

s= 0;

for (int i = 0; i < filas; i++){

for( int k = 0; k < columnas; k++) {

A[s] = T[i][k];

s++; }}

getch();}

No hay comentarios:

Publicar un comentario