Está en la página 1de 7

#include

#include
#include
#include
#include

<iostream.h>
<conio.h>
<stdio.h>
<math.h>
<E:\grafica2.h>

float A=0, B=0, h=0, a=0, b=0, c=0, d=0, e=0, k=0, sumf=0,sumf2=0,var[10]={0}, f
a=0, fb=0, resultado=0, eval1=0, eval2=0,Era=0,res2=0;
int tipo=0,t=0,n;
void valores()
{
if(tipo==1)
{
cout<<endl<<" Introdusca los valores de los coeficientes"<<endl<<endl;
for(int x=0;x<t;x++)
{
cout<<char(65+x)<<" = ";
cin>>var[x];
}
cout<<"K = ";
cin>>k;
a=var[0];
b=var[1];
c=var[2];
d=var[3];
e=var[4];
}
if(tipo==2)
{
if(t==1)
{
cout<<" introduce los valores de A.exp^BX"<<endl;
cout<<"A = ";
cin>>a;
cout<<"B = ";
cin>>b;
}
if(t==2)
{
cout<<" introduce los valores de (A.exp^BX)+(C.X^D)+K"<<
endl;
cout<<"A
cin>>a;
cout<<"B
cin>>b;
cout<<"C
cin>>c;
cout<<"D
cin>>d;
cout<<"K
cin>>k;

= ";
= ";
= ";
= ";
= ";

}
}
if(tipo==3)
{
cout<<"

Introdusca los volores de:"<<endl;

cout<<"A
cin>>a;
cout<<"B
cin>>b;
cout<<"C
cin>>c;
cout<<"D
cin>>d;
cout<<"K
cin>>k;

= ";
= ";
= ";
= ";
= ";

}
}
/////////////////////////////////////////////////////////////////
void menu()
{
//clrscr();
char opc=0,opc2=0;
cout<<" Eliga una opcion(sin dar enter)...."<<endl;
cout<<"
1).Polinomial"<<endl;
cout<<"
2).Exponencial"<<endl;
cout<<"
3).Trigonometricas"<<endl;
opc=getch();
switch(opc)
{
case '1':clrscr();tipo=1;
cout<<" Eliga una opcion(sin dar enter)...."<
<endl;
cout<<"1). AX+K"<<endl;
cout<<"2). AX^2+BX+K"<<endl;
cout<<"3). AX^3+BX^2+CX+K"<<endl;
cout<<"4). AX^4+BX^3+CX^2+DX+K"<<endl;
cout<<"5). AX^5+BX^4+CX^3+DX^2+EX+K";
opc2=getch();
switch(opc2)
{
case '1':clrscr();t=1;cout<<"Par
a AX+K";valores();break;
case '2':clrscr();t=2;cout<<"Par
a AX^2+BX+K";valores();break;
case '3':clrscr();t=3;cout<<"Par
a AX^3+BX^2+CX+K";valores();break;
case '4':clrscr();t=4;cout<<"Par
a AX^4+BX^3+CX^2+DX+K";valores();break;
case '5':clrscr();t=5;cout<<"Par
a AX^5+BX^4+CX^3+DX^2+EX+K";valores();break;
} break;
case '2':clrscr(); tipo=2;
cout<<" Eliga una opcion(sin dar enter)...."<<endl;
cout<<"1). A.exp^BX"<<endl;
cout<<"2). (A.exp^BX)+CX+K"<<endl;
opc2=getch();
switch(opc2)
{
case '1': t=1; clrscr();

valores();
break;
case '2': t=2; clrscr();
valores();
break;
} break;
case '3':clrscr(); tipo=3;
cout<<" Eliga una opcion(sin dar enter)...."<
<endl;
cout<<"1). A.sen(BX)+(C.X^D)+K"<<endl;
cout<<"2). A.cos(BX)+(C.X^D)+K"<<endl;
cout<<"3). A.tan(BX)+(C.X^D)+K"<<endl;
opc2=getch();
switch(opc2)
{
case '1':t=1;clrscr();
cout<<"A.sen(BX
)+(C.X^D)+K"<<endl;
valores();break
;
case '2':t=2;clrscr();
cout<<"A.cos(BX)
+(C.X^D)+K";
valores();break
;
case '3':t=3;clrscr();
cout<<"A.tan(BX
)+(C.X^D)+K"<<endl;
valores();break
;
}break;
}
}
////////////////////////////////////////////////////////////////////
void simpson()
{
fa=0;
fb=0;
resultado=0;
sumf=0;
sumf2=0;
eval1=0;
eval2=0;
h=(B-A)/(2*n);
if(tipo==1)
{
e=t;
fa=0;

fb=0;
for(int x=0;x<t;x++)
{
fa+=(var[x]*pow(A,e));
fb+=(var[x]*pow(B,e));
//sumf=0;
//for( int i=1;i<n;i++)
//{
// sumf+=(var[x]*pow((A+(i*h)),e))+k;
//}
e--;
}
if(t==1)
{
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*((a*eval1)+k);
sumf2+=(a*eval2)+k;
}
}
if(t==2)
{
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*((a*pow(eval1,2))+(b*eval1)+k);
sumf2+=(a*pow(eval2,2))+(b*eval2)+k;
}
}
if(t==3)
{
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*((a*pow(eval1,3))+(b*pow(eval1,2))+(c*eval1)+k);
sumf2+=(a*pow(eval2,3))+(b*pow(eval2,2))+(c*eval2)+k;
}
}
if(t==4)
{
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*((a*pow(eval1,4))+(b*pow(eval1,3))+(c*pow(eval1,2))+(d*e
val1)+k);
sumf2+=(a*pow(eval2,4))+(b*pow(eval2,3))+(c*pow(eval2,2))+(d*eval2)+
k;
}
}
if(t==5)
{

e=var[4];
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*((a*pow(eval1,5))+(b*pow(eval1,4))+(c*pow(eval1,3))+(d*p
ow(eval1,2))+(e*eval1)+k);
sumf2+=(a*pow(eval2,5))+(b*pow(eval2,4))+(c*pow(eval2,3))+(d*pow(eva
l2,2))+(e*eval2)+k;
}
}
fa=fa+k;
fb=fb+k;
}
if(tipo==2)
{
if(t==1)
{
fa=a*exp(b*A);
fb=a*exp(b*B);
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*(a*exp(b*eval1));
sumf2+=a*exp(b*eval2);
}
}
if(t==2)
{
fa=(a*exp(b*A))+(c*pow(A,d))+k;
fb=(a*exp(b*B))+(c*pow(B,d))+k;
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*((a*exp(b*eval1))+(c*pow(eval1,d))+k);
sumf2+=(a*exp(b*eval2))+(c*pow(eval2,d))+k;
}
}
}
if(tipo==3)
{
float b0;
b0=b;
b=((b*3.1416)/180);
if(t==1)
{
fa=(a*sin(b*A))+(c*pow(A,d))+k;
fb=(a*sin(b*B))+(c*pow(B,d))+k;
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);

eval2=A+(2*i*h);
sumf+=2*((a*sin(b*eval1))+(c*pow(eval1,d))+k);
sumf2+=(a*sin(b*eval2))+(c*pow(eval2,d))+k;
}

}
if(t==2)
{
fa=(a*cos(b*A))+(c*pow(A,d))+k;
fb=(a*cos(b*B))+(c*pow(B,d))+k;
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*((a*cos(b*eval1))+(c*pow(eval1,d))+k);
sumf2+=(a*cos(b*eval2))+(c*pow(eval2,d))+k;
}
}
if(t==3)
{
fa=(a*tan(b*A))+(c*pow(A,d))+k;
fb=(a*tan(b*B))+(c*pow(B,d))+k;
for( int i=1;i<=n;i++)
{
eval1=A+(((2*i)-1)*h);
eval2=A+(2*i*h);
sumf+=2*((a*tan(b*eval1))+(c*pow(eval1,d))+k);
sumf2+=(a*tan(b*eval2))+(c*pow(eval2,d))+k;
}
}
}
resultado=(h/3)*(fa-fb+2*(sumf+sumf2));
}
///////////////////////////////////////////////////////////////////
void dato()
{
textcolor(RED);
cout<<endl<<"Dame el intervalo a integrar";
cout<<endl<<"a= ";
cin>>A;
cout<<"b= ";
cin>>B;
cout<<"Dame el valor de n: ";
cin>>n;
graficas(tipo,t,a,b,c,d,k,e);
simpson();
clrscr();
textcolor(YELLOW);
clrscr();

gotoxy(2,3);cout<<"Iter";gotoxy(2,5);cout<<"1";
gotoxy(8,3);cout<<"n";gotoxy(8,5);cout<<n;
gotoxy(14,3);cout<<"Valor";gotoxy(14,5);cout<<resultado;
gotoxy(30,3);cout<<"Era"; gotoxy(30,5);cout<<"------";
int j=2;
Era=100;
n=n+n;
while(Era>0.0005)
{
res2=resultado;
simpson();
Era=(fabs((resultado-res2)/resultado))*100;
gotoxy(2,j+4);cout<<j;
gotoxy(8,j+4);cout<<n;
gotoxy(14,j+4);cout<<resultado;
gotoxy(30,j+4);cout<<Era;
n=n+n;
j++;
}

cout<<endl<<endl<<"
s: ";
printf("%.4f",resultado);
//getch();
}

La integral en el intervalo ["<<A<<","<<B<<"]e

void main ()
{
clrscr();
textcolor(GREEN);
clrscr();
cout<<"*******Integracion por el metodo de Simpson 1/3**************"<<endl<<
endl<<endl;
menu();
dato();
getch();
}

También podría gustarte