Você está na página 1de 9

#include

#include
#include
#include
#include
#include

<iostream.h>
<stdlib.h>
<conio.h>
<math.h>
<dos.h>
<stdio.h>

using namespace std;


void portada ()
{
cout<<"\n\n
cout<<"\n\n
cout<<"\n\n
cout<<"\n\n
cout<<"\n\n
cout<<"\n\n
cout<<"\n\n
cout<<"\n\n

INSTITUTO POLITECNICO NACIONAL ";


Escuela Superior de Ingenieria Mecanica y electrica";
ESIME Zacatenco";
Ingenieria en Comunicaciones y Electronica";
Academia de Computacion";
Sistemas de Ecuaciones";
MATRIZ INVERSA";
M. en C. Enrique Ugalde Miranda";

getch ();
}

int cadena(char *op)


{
int c;
c=0;
if(op[15] != ' ')
{
cout<<"\n Captura demaciado gde, intentelo nuevamente con un NUMERO que tenga c
omo maximo 14 caracteres ";
c=0;
cin.get();
}
else
{
c=1;
}
cin.get();
return c;
}
char inicia (char *op)
{
int c;
for(c=0 ; c<50; c++)
{
op[c]=' ';
}
return *op;
}
int csymletras(char *op)

{
int o,c,r;
o=0;
for(c=0; c<10; c++)
{
if(op[c] != '1' && op[c] != '2' && op[c] != '3' && op[c] != '4' && op[
c] != '5' && op[c] != '6' && op[c]!='7' && op[c] != '8' && op[c]!='9' && op[c]
!='0' && op[c]!= ' ')
{
r=1 ;
}
else
{
r=0;
}
o=o+r;
}
return o;
}
int letras(char *op)
{
int o,c,r;
o=0;
for(c=0; c<10; c++)
{
if(op[c] != '-' && op[c] != '.' && op[c] != '1' && op[c] != '2' && op[c
] != '3' && op[c] != '4' && op[c] != '5' && op[c] != '6' && op[c]!='7' && op[
c] != '8' && op[c]!='9' && op[c]!='0' && op[c]!= ' ')
{
r=1 ;
}
else
{
r=0;
}
o=o+r;
}
if(o>1)
{
cout<<"\n No es un numero , x favor de teclear un numero ";
cin.get();
}
return o;
}
int sletras(char *op)
{
int o,c,r;
o=0;
for(c=0; c<10; c++)
{
if(op[c] != '1' && op[c] != '2' && op[c] != '3' && op[c] != '4' && op[

c] != '5' && op[c] != '6' && op[c]!='7' && op[c] != '8' && op[c]!='9' && op[c]
!='0' && op[c]!= ' ')
{
r=1 ;
}
else
{
r=0;
}
o=o+r;
}
if(o>1)
{
cout<<"\n No es un numero entero , x favor de teclear un numero entero";
cin.get();
}
return o;
}

int punto(char *op)


{
int a,b,c;
c=0;
for (a=0 ; a<10 ; a++)
{
if (op[a]=='.' )
{
b=1;
}
else
{
b=0;
}
c=c+b;
}
return c;
}
int guion(char *op)
{
int a,b,c;
c=0;
for (a=0 ; a<10 ; a++)
{
if (op[a]=='-' )
{
b=a+1;
}
else
{
b=0;
}
c=c+b;
}
return c;

}
int mcvalidacion(char *op)
{
int a,b,v;
char *o;
o=op;
a=cadena(o);
b=sletras(o);
if(a<1 ||b>1)
{
v=0;
}
else
{
v=1;
}
return v;
}
int validacion(char *op)
{
int a,b,c,d,v;
char *o;
o=op;
a=cadena(o);
b=letras(o);
c=guion(o);
d=punto(o);
if(a<1 || b>1 || c>1 || d>1)
{
v=0;
}
else
{
v=1;
}
return v;
}

void x2()
{
char XI[500],CS[500];
int cs,I=0,v;
double xr,x1,xi,era,es,fxi,fdxi;
do{system("cls");
inicia(XI);
cout<<"\n\n
Newton-Raphson.\n\n";
cout<<"1.- f(x) = X2 - X - 1 = 0\n\n";
cout<<" Teclea tu Xi: ";
cin>>XI;
v=validacion(XI);
}while(v<1);
xi=atof(XI);
do{system("cls");

inicia(CS);
cout<<"\n Teclea el numero de Cifras Significativas : ";
cin>>CS;
v = mcvalidacion(CS);
}while(v<1);
cs= atoi(CS);
es = 0.5 * (pow(10,2-cs));
cout.precision(cs);
x1=0;
do{
cout.precision(cs);
xr=xi-((pow(xi,2)- xi -1)/(2*xi-1));
fxi= pow(xi,2)- xi -1;
fdxi= 2*xi-1;
era= ((xr-x1)/xr)*100;
if(era<0)
{
era=era*(-1);
}
cout<<"\n\n\n\n Numero de Iteracion : "<<I+1;
cout<<"\n\n Xi
= "<<xi;
cout<<"\n f(Xi) = " <<fxi;
cout<<"\n f'(Xi) = "<<fdxi;
cout<<"\n Xr
= "<<xr;
cout<<"\n Era
= "<<era;
cout<<"\n Es
= "<<es;
x1=xr;
xi=xr;
I=I+1;
}while(era>es);
cout<<"\n\n\n\n TU APROXIMACION ES : "<<xr;
getch();
system("cls");
cout<<"\n\n";
cout<<"\n
f(X) ";
cout<<"\n
|
. ";
cout<<"\n
| .
";
cout<<"\n
| .
";
cout<<"\n
| .
";
cout<<"\n
| .
";
cout<<"\n
| . ";
cout<<"\n<---------------------------------> X";
cout<<"\n
. . . ";
cout<<"\n
. | ";
cout<<"\n
. |";
cout<<"\n
.
|";
cout<<"\n
.
|";
cout<<"\n
.
| ";
cout<<"\n
.
|";
cout<<"\n
\ /";
cout<<"\n\n
= "<<xr;
}
void exp()
{
char XI[500],CS[500];
int cs,I=0,v;

double xr,x1,xi,era,es,fxi,fdxi;
do{system("cls");
inicia(XI);
cout<<"\n\n
Newton-Raphson.\n\n";
cout<<"\n\n 2.- f(x)= e^-x + 3X - 3 = 0\n\n";
cout<<" Teclea tu Xi: ";
cin>>XI;
v=validacion(XI);
}while(v<1);
xi=atof(XI);
do{system("cls");
inicia(CS);
cout<<"\n Teclea el numero de Cifras Significativas : ";
cin>>CS;
v = mcvalidacion(CS);
}while(v<1);
cs= atoi(CS);
es = 0.5 * (pow(10,2-cs));
cout.precision(cs);
x1=0;
do{
cout.precision(cs);
fxi= pow(2.71828182,-xi) + (3*xi) - 3;
fdxi = (-1*(pow(2.71828182,-xi)))+3;
xr= xi - (fxi/fdxi);
era= ((xr-x1)/xr)*100;
if(era<0)
{
era=era*(-1);
}
cout<<"\n\n\n\n Numero de Iteracion : "<<I+1;
cout<<"\n\n Xi
= "<<xi;
cout<<"\n f(Xi) = " <<fxi;
cout<<"\n f'(Xi) = "<<fdxi;
cout<<"\n Xr
= "<<xr;
cout<<"\n Era
= "<<era<<" %";
cout<<"\n Es
= "<<es;
x1=xr;
xi=xr;
I=I+1;
}while(era>es);
cout<<"\n\n\n\n
TU APROXIMACION ES : "<<xr;
getch();
system("cls");
cout<<"\n\n";
cout<<"\n
f(X) ";
cout<<"\n
|
";
cout<<"\n
|
";
cout<<"\n
|
";
cout<<"\n
.
|
";
cout<<"\n
.
| .
";
cout<<"\n
.
| .
";
cout<<"\n<-----.-----------------------> X";
cout<<"\n
.
| .
";
cout<<"\n
.
| .
";
cout<<"\n
.
| .
";
cout<<"\n
.
| .
";

cout<<"\n
cout<<"\n
cout<<"\n
cout<<"\n
cout<<"\n\n
}

|.
.
. |
\

";
";
";
";
= "<<xr;

void cosen()
{
char XI[500],CS[500];
int cs,I=0,v;
double xr,x1,xi,era,es,fxi,fdxi;
do{system("cls");
inicia(XI);
cout<<"\n\n
Newton-Raphson.\n\n";
cout<<"1.- f(x) = X - cosX = 0\n\n";
cout<<" Teclea tu Xi: ";
cin>>XI;
v=validacion(XI);
}while(v<1);
xi=atof(XI);
do{system("cls");
inicia(CS);
cout<<"\n Teclea el numero de Cifras Significativas : ";
cin>>CS;
v = mcvalidacion(CS);
}while(v<1);
cs= atoi(CS);
es = 0.5 * (pow(10,2-cs));
cout.precision(cs);
x1=0;
do{
cout.precision(cs);
fxi= xi - cos(xi);
fdxi= xi + sin(xi);
xr=xi - (fxi/fdxi);
era= ((xr-x1)/xr)*100;
if(era<0)
{
era=era*(-1);
}
cout<<"\n\n\n\n Numero de Iteracion : "<<I+1;
cout<<"\n\n Xi
= "<<xi;
cout<<"\n f(Xi) = " <<fxi;
cout<<"\n f'(Xi) = "<<fdxi;
cout<<"\n Xr
= "<<xr;
cout<<"\n Era
= "<<era;
cout<<"\n Es
= "<<es;
x1=xr;
xi=xr;
I=I+1;
}while(era>es);
cout<<"\n\n\n\n TU APROXIMACION ES : "<<xr;
getch();
system("cls");
cout<<"\n\n";
cout<<"\n
f(X) ";

cout<<"\n
|
";
cout<<"\n
|
.";
cout<<"\n
|
.";
cout<<"\n
|
. ";
cout<<"\n
|
. ";
cout<<"\n
|
.
";
cout<<"\n<-----------------------------> X";
cout<<"\n
.
";
cout<<"\n
. |
";
cout<<"\n
. |
";
cout<<"\n
. |
";
cout<<"\n
.
|
";
cout<<"\n
.
|
";
cout<<"\n
.
|
";
cout<<"\n
\
";
cout<<"\n\n
= "<<xr;
}
int main ()
{
int v,op,s;
char opc[500],sn[500];
portada();
do{do{do{system("cls");
inicia(opc);
inicia(sn);
cout<<"\n\n\n\n
Solucion de ecuaciones por NEWTON RAPHSON.\n\n\n\n";
cout<<" Escoja la ecuacion que desea resolver :\n\n\n";
cout<<"
1.- f(x)= X2 - X - 1 \n\n";
cout<<"
2.- f(x)= e^-x + 3X - 3 \n\n";
cout<<"
3.- f(x)= X - cos(X) \n\n";
cout<<"\n\n
Teclee la opcion : ";
cin>>opc;
v = mcvalidacion(opc);
}while(v<1);
op=atoi(opc);
}while(op>3 || op<1);
switch(op)
{
case 1:
system("cls");
x2();
break;
case 2:
system("cls");
exp();
break;
case 3:
system("cls");
cosen();
break;
}
getch();
do{system("cls");
inicia(sn);
cout<<"\n\n\n\n
Solucion de ecuaciones por NEWTON RAPHSON.\n\n\n\n";
cout<<" DESEAS RESOLVER NUEVAMENTE UNA ECUACION ? :";
cout<<"\n\n
1.- SI.";

cout<<"\n\n
2.- NO.";
cout<<"\n\n
Teclee la opcion : ";
cin>>sn;
v = mcvalidacion(sn);
}while(v<1);
s=atoi(sn);
}while(s!=2);
return 0;
}

Você também pode gostar