#include #include #include #include #include #include #define MAX 1000 using namespace std; using std::setprecision; //time_t t; double xi[MAX]; //vector valores x double yi[MAX]; //vector valores y double suma[MAX][MAX]; //arreglo para matriz double b[MAX]; //vector para b int n,i,m,j,k,z; //contadores //int inicio2; //etiquetas void titulo(); //Funcion Muestra titulo void salida(); //Funcion que sale del programa void datos(); //Funcion que pide datos void matriz(); //Funcion imprime matriz void condiciones(); //Funcion Presenta condiciones void gauss(double inicio);//Funcion Metodo Gauss-Gordan void solucion (int a,int l); int main () { //inicio main o programa system("color f1"); char otro; int sabeque; // inicio; condiciones(); sabeque: datos(); cout<<"\n\t____________________________________________________________\n"; cout<<"\tPresione una tecla para mostrar el sistema a resolver...\n\n";getch(); //titulo(); cout<<"\n\t____________________________________________________________"; cout<<"\n\t\tEl sistema a resolver es: \n\n"; matriz(); cout<<"\n\t____________________________________________________________"; cout<<"\n\n\tEnter para mostrar la solucion al sistema...";getch(); gauss(sabeque); cout<<"\n\n\n\tDeseas calcular otro sistema de ecuaciones (S/N): ";cin>>otro; if (otro=='s'||otro=='S') {//inicio if otro goto sabeque; }//fin if otro else {//inicio else otro salida(); }//fin else otro salida(); } //fin main o programa void datos() { //->Inicio funcion datos inicio: // titulo(); cout<<"\n\t____________________________________________________________"; cout<<"\n\tDe que grado es n: ";cin>>n; if (n>1 && n<=MAX)
{ inicio2: cout<<"\n\t____________________________________________________________\n"; cout<<"\tDe que grado desea la aproximacion: ";cin>>m; cout<<"\tIngresando datos : \n"; cout<<"\n\t____________________________________________________________\n"; if (m<=0 || m>n) goto inicio2; for (i=0;iinicio for i cout<<"\tTiempo en dia :"<< "x["<>xi[i]; cout<<"\tNumero de Bacterias :"<<" y["<>yi[i]; }//->fin for i } else { cout<<"\n\tDebes elegir un grado de entre 1 y "<fin funcion datos void matriz() //->Funcion para la impresion de la matriz { //->inicio funcion matriz for (k=1;k<=m+1;k++) { //->inicio for k=0 z=k; for (j=1;j<=m+1;j++) { //->inicio for j=0 suma[k][j]=0; for (i=0;iinicio for i=0 suma[k][j]+=pow(xi[i],(j-1)+(z-1)); } //->fin for i=0 }//->fin for j=0 } //->fin for k=0 for (k=1;k<=m+1;k++) { //->inicio for k=0 for (j=1;j<=m+1;j++) {//->inicio for j=0 b[j]=0; for (i=0;iinicio for i=0 b[j]+=pow(yi[i],1)*pow(xi[i],j-1); }//->fin for i=0 }//->fin for j=0 }//->fin for k=0 for (k=1;k<=m+1;k++) {//->inicio for k=0 for (j=1;j<=m+1;j++) {//->inicio for j=0 cout<<"\t"<fin for j=0 cout<<"= "<fin for k=0 }//->fin funcion matriz void titulo()//->Funcion para la impresion de la hora actual de la PC y el titulo
{ //->inicio funcion titulo cout<<"\n\t____________________________________________________________"; cout<<"\n\tMetodo de Minimos Cuadrados\n\n"; cout<<"\n\tTasa de crecimiento de una bacteria\n"; cout<<"\n\tCalculala segun el ejercicio 1 con 4.5 dias\n"; //cout<<"\n\tHOY ES:"; //time (&t); //->da hora almacenada en &t //cout<impresion de hora } //->fin funcion titulo void salida() //->Salida del programa { //->inicio de funcion salida cout<<"\n\t__________________________________________________________\n"; cout<<"\n\n\nPresiona ALT+F4 para salir..."; getch(); } //->fin funcion salida void condiciones ()//funcion de condiciones { int aceptar; titulo(); getch(); cout<<"\n\t____________________________________________________________"; cout<<"\n\t\t\t\tCONDICIONES DE USO"; cout<<"\n\tPara su buen funcionamiento y obtencion de su resultado correcto."; cout<<"\n\tEl programa de Minimos Cuadrados tiene las siguientes condiciones:"; cout<<"\n\t*En el apartado en donde pide los datos;\n"; cout<<"\tunicamente se puede ingresar numeros y no caracteres.\n\n"; cout<<"\t*No ingresar numeros muy exagerados.\n"; cout<<"\tLos valores deben ser reales, es decir no invetados.\n\n\n"; cout<<"\tPresiona una tecla para continuar...";getch(); cout<<"\n\t____________________________________________________________\n"; }//fin de la funcion condiciones void gauss(double inicio)//funcion gauss { double z,c,inter,decear,fin,r; double /*b[MAX][MAX],*/d[MAX][MAX],h[MAX]; inicio: //cout<<"\nLa matriz es:\n"; // impr_ma impr_matriz triz(i,j (i,j,n) ,n); ; //INICIO PROCESO PARA METODO z=m+2; do { //inicio do if (suma[1][1]==0) { //inicio if matriz c=z-1; for (i=2;i<=c;i++) { //inicio for i=2 if (suma[i][1]!=0) { //inicio if matriz for (j=1;j
suma[1][j]=inter; cout<<"suma[1][j] vale: "<>decear; cout<<"\n\t____________________________________________________________"; if(decear==1) { //inicio if decear=1 goto inicio; } //fin ir decear=1 else { //inicio else decear=1 if (decear==2) {//inicio if decear=2 goto fin; }//fin if decear=2 else { //inicio else decear=2 if (decear!=1 && decear!=2) { //inicio if decear!=1 && decear!=2 titulo(); goto elige; }//fin if decear!=1 && decear!=2 } //fin else decear=2 }//fin else decear=1 } //fin if decear=1 cout<<"\n\t____________________________________________________________"; cout<<"\n\n\tLa nueva matriz a quedado:\n"; // impr_matriz(i,j,n); }//fin if matriz else {//inicio else matriz for (i=1;i<=m+1;i++) { r=m-2; ///como coregir este error suma[i][1/*r*/]=b[i];//r estaba en 1 } for (j=2;j<=z;j++) { //inicio for j=2 for (i=2;i<=m+1;i++) {//inicio for i=2 d[i-1][j-1]=suma[i][j]-suma[1][j]*suma[i][1]/suma[1][1]; //cout<<"b["<
"<1); cout<<"\n____________________________________________________________"; cout<<"\n\t\t\tLa solucion es:\n "; solucion(i,m+1); //fin else n<=0 getch(); fin: salida(); getch(); // goto sabeque; } //fin funcion gauss void solucion(int a,int l) //presenta solucion al sistema , funcin sol { cout<<"\n____________________________________________________________"; for (a=1;a<=l;a++) cout<