Powered By Blogger

martes, 11 de diciembre de 2012

Tutorial Metodo de Euler Modificado


EULER MEJORADO


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza la solucion de una diferencial ordinaria por el metodo
//de EULER MEJORADO.

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

void main(void)
{
int j=1;
double nh,h,nx,x=0,y0=2,yp,yc,i,era;
clrscr();
cout<<"La funci¢n es: f(x,y)=xy; sujeta a y0=2.";
cout<<"\n\nDame el valor del incremento h:";
cin>>nh;
cout<<"Dame el valor para x:";
cin>>nx;
for(i=0;i<nx;i=i+nh)
{
yp=y0+(x*y0*nh);
yc=y0+(nh/2)*((x*y0)+((x+nh)*yp));
era=((yc-y0)/yc)*100;if(era<=0.5){era=100;}
x=x+nh;
y0=yc;
printf("\nY%dp=%2.9f   Y%dc=%2.9f   Era(%d)=%2.2f%",j,yp,j,yc,j,fabs(era));
j++;
}
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

METODO DE EULER


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza la solucion de una diferencial ordinaria por el metodo
//de EULER.

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

void main(void)
{
int j;
double nh,h,nx,x=0,y0=2,y,y1,i,era;
clrscr();
cout<<"La funci¢n es: f(x,y)=xy; sujeta a y0=2.";
cout<<"\nDame el valor del incremento h:";
cin>>nh;
cout<<"Dame el valor para x:";
cin>>nx;
for(i=0,j=1;i<=nx;i=i+nh,j++)
{
y=y0+(x*y0*nh);
era=((y-y0)/y)*100;if(era==0){era=100;}
y0=y;
x=x+nh;
printf("\nY%d=%2.9f\tEra(%d)=%2.2f%",j,y,j,fabs(era));
}
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

"INTERPOLACION DE N-ESIMO ORDEN DE NEWTON"


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza diferencias divididas para determinar el valor de
//de una funcion conocida en base al valor de la funcion evaluada en puntos
//equidistantes por medio de "INTERPOLACION DE N-ESIMO ORDEN DE NEWTON"

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

void main(void)
{
double fx,fx0,fx1,fx2,fx3,fx10,fx21,fx32,fx210,fx321,fx3210,f3x,b0,b1,b2,b3,x,x0,x1,x2,x3,erv;
clrscr();
x=2;
x0=1;
x1=3;
x2=4;
x3=5;
fx=log(x);
fx0=log(x0);
fx1=log(x1);
fx2=log(x2);
fx3=log(x3);
cout<<"Calculando el ln(2) por medio del polinomio de interpolacion de n-Çsimo"<<endl<<"oden de Newton con x=1,3,4,5."<<endl<<endl;
b0=fx0;
b1=(fx1-fx0)/(x1-x0);  fx10=b1;
b2=(fx2-fx1)/(x2-x1);  fx21=b2;
b3=(fx3-fx2)/(x3-x2);     fx32=b3;
b2=(fx21-fx10)/(x2-x0);   fx210=b2;
b2=(fx32-fx21)/(x3-x1);   fx321=b2;
b3=(fx321-fx210)/(x3-x0); fx3210=b3;
f3x=b0+fx10*(x-x0)+fx210*(x-x0)*(x-x1)+fx3210*(x-x0)*(x-x1)*(x-x2);
erv=(fx-f3x)/fx*100;
printf("bo=%1.8f  b1=%1.8f  b2=%1.8f   b3=%1.8f\n\n",b0,b1,fx210,fx3210);
printf("f3(x)=%1.8f Erv=%2.2f%",f3x,fabs(erv));
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

Programa que realiza diferencias divididas para determinar el valor de una funcion conocida en base al valor de la funcion evaluada en puntos equidistantes por medio de "INTERPOLACION LINEAL DE NEWTON"


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza diferencias divididas para determinar el valor de
//de una funcion conocida en base al valor de la funcion evaluada en puntos
//equidistantes por medio de "INTERPOLACION LINEAL DE NEWTON"

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

void main(void)
{
double f1x,fx,fx0,fx1,f1xa,f1xb,x,x0,x1,erv,era;
clrscr();
x=2;
x0=1;
x1=5;
fx=log(x);
fx0=log(x0);
fx1=log(x1);
cout<<"Calculando el ln(2) por medio del polinomio de interpolacion lineal"<<endl<<"de Newton con: A) ln(1) y ln(5); B) ln(1) y ln(3)."<<endl<<endl;
f1xa=fx0+((fx1-fx0)/(x1-x0))*(x-x0);
erv=(fx-f1xa)/fx*100;
printf("A) f1(x)=%1.8f  Erv=%2.2f  Era=100\n\n",f1xa,fabs(erv));
x1=3;
fx1=log(x1);
f1xb=fx0+((fx1-fx0)/(x1-x0))*(x-x0);
erv=(fx-f1xb)/fx*100;
era=(f1xb-f1xa)/f1xb*100;
printf("B) f1(x)=%1.8f  Erv=%2.2f  Era=%2.2f\n\n",f1xb,fabs(erv),fabs(era));
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

"INTERPOLACION INVERSA DE LAGRANGE"


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza diferencias divididas para determinar el valor de
//de una variable independiente conociendo el valor de
//la funcion en ese punto por medio del mÇtodo de
//"INTERPOLACION INVERSA DE LAGRANGE"

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

void main(void)
{
double x,x0,x1,x2,x3,fx,fx0,fx1,fx2,fx3,f3x;
clrscr();
cout<<"Calculando de la variable independiente por medio del polinomio de Interpolacion"<<endl<<"Inversa de Lagrange conociendo que en ese punto la funcion vale 11:"<<endl;
cout<<endl<<" x   2    3    18    38"<<endl;
cout<<endl<<" y   0    1    4     6"<<endl<<endl;
cout<<"            11"<<endl;
x=11;
x0=2;
x1=3;
x2=18;
x3=38;
fx0=0;
fx1=1;
fx2=4;
fx3=6;
f3x=(((x-x0)*(x-x2)*(x-x3))/((x1-x0)*(x1-x2)*(x1-x3)))*fx1+(((x-x0)*(x-x1)*(x-x3))/((x2-x0)*(x2-x1)*(x2-x3)))*fx2+(((x-x0)*(x-x1)*(x-x2))/((x3-x0)*(x3-x1)*(x3-x2)))*fx3;
printf("\n\ny=%2.4f     f(4.74)=11",f3x);
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

Programa que realiza diferencias divididas para determinar el valor de una funcion conocida en base a una tabla de datos, por medio del método de "INTERPOLACION DE LAGRANGE"


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza diferencias divididas para determinar el valor de
//una funcion conocida en base a una tabla de datos, por medio del mÇtodo de
//"INTERPOLACION DE LAGRANGE"

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

void main(void)
{
double x,x0,x1,x2,x3,x4,fx,fx0,fx1,fx2,fx3,fx4,f1x,f2x,f3x,f4x,erv;
clrscr();
cout<<"Calculando el ln(2) por medio del polinomio de interpolacion"<<endl<<"de Lagrange en base a la siguiente tabla:"<<endl;
cout<<endl<<" x   1    4       6       9      11"<<endl;
cout<<endl<<"f(x) 0 1.3863  1.7918  2.1972  2.3979"<<endl<<endl;
cout<<"          ln(2)=0.6931"<<endl;
x=2;
x0=1;
x1=4;
x2=6;
x3=9;
x4=11;
fx=log(x);
fx0=0;
fx1=1.3863;
fx2=1.7918;
fx3=2.1972;
fx4=2.3979;
f1x=((x-x1)/(x0-x1))*fx0+((x-x0)/(x1-x0))*fx1;
erv=(fx-f1x)/fx*100;
printf("\n\nf1(x)=%2.4f   Erv=%2.2f%",f1x,fabs(erv));
f2x=(((x-x0)*(x-x2))/((x1-x0)*(x1-x2)))*fx1+(((x-x0)*(x-x1))/((x2-x0)*(x2-x1)))*fx2;
erv=(fx-f2x)/fx*100;
printf("\n\nf2(x)=%2.4f   Erv=%2.2f%",f2x,fabs(erv));
f3x=(((x-x0)*(x-x2)*(x-x3))/((x1-x0)*(x1-x2)*(x1-x3)))*fx1+(((x-x0)*(x-x1)*(x-x3))/((x2-x0)*(x2-x1)*(x2-x3)))*fx2+(((x-x0)*(x-x1)*(x-x2))/((x3-x0)*(x3-x1)*(x3-x2)))*fx3;
erv=(fx-f3x)/fx*100;
printf("\n\nf3(x)=%2.4f   Erv=%2.2f%",f3x,fabs(erv));
f4x=(((x-x0)*(x-x2)*(x-x3)*(x-x4))/((x1-x0)*(x1-x2)*(x1-x3)*(x1-x4)))*fx1+(((x-x0)*(x-x1)*(x-x3)*(x-x4))/((x2-x0)*(x2-x1)*(x2-x3)*(x2-x4)))*fx2+(((x-x0)*(x-x1)*(x-x2)*(x-x4))/((x3-x0)*(x3-x1)*(x3-x2)*(x3-x4)))*fx3+(((x-x0)*(x-x1)*(x-x2)*(x-x3))/((x4-x0)*(x4-x1)*(x4-x2)*(x4-x3)))*fx4;
erv=(fx-f4x)/fx*100;
printf("\n\nf4(x)=%2.4f   Erv=%2.2f%",f4x,fabs(erv));
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

Programa que realiza iteraciones para determinar el valor de las //soluciones de un sistema de ecuaci¢nes por medio del método de "GAUSS-SEIDEL"


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza iteraciones para determinar el valor de las
//soluciones de un sistema de ecuaci¢nes por medio del mÇtodo de "GAUSS-SEIDEL"
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<math.h>
#include<stdlib.h>
#include<iostream.h>

void main(void)
{
double x1,x2,x3,ex1,ex2,ex3,X1[15],X2[15],X3[15];
int i=0,j=0,k=0,l,y;
clrscr();
cout<<"El sistema de ecuaciones es:"<<endl;
cout<<"6x1+3x2-x3=12"<<endl<<"-x1+4x2+2x3=3"<<endl<<"x1-x2+6x3=2.3"<<endl;
cout<<endl<<"La soluciones se calcular†n:"<<endl;
cout<<"x1=(12-3x2+x3)/6"<<endl<<"x2=(3+x1-2x3)/4"<<endl<<"x3=(2.3-x1+x2)/6"<<endl;
cout<<endl<<"Iter   x1  x2       x3     Erax1(%)    Erax2(%)    Erax3(%)\n";
x1=12.0/6.0;
x2=(3.0+x1)/4.0;
x3=(2.3-x1+x2)/6.0;
X1[i]=x1;
X2[j]=x2;
X3[k]=x3;
i++;
j++;
k++;
printf("1    %1.5f   %1.5f  %1.5f     100         100         100",x1,x2,x3);
//for(l=0;l<10;l++)
//{
l=0;
do
{
x1=(12.0-3*x2+x3)/6.0;
x2=(3.0+x1-2*x3)/4.0;
x3=(2.3-x1+x2)/6.0;
X1[i]=x1;
X2[j]=x2;
X3[k]=x3;
ex1=((x1-X1[i-1])/x1)*100;
ex2=((x2-X2[j-1])/x2)*100;
ex3=((x3-X3[k-1])/x3)*100;
i++;
j++;
k++;
printf("\n%d    %1.5f   %1.5f  %1.5f    %2.4f       %2.4f      %2.4f",l+2,x1,x2,x3,fabs(ex1),fabs(ex2),fabs(ex3));
l++;
}
 while(fabs(ex1)>0.0001);
//}
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

Programa que realiza iteraciones para determinar el valor de las //raices de una ecuaci¢n por medio del método de "REGLA FALSA"


//Torres Morales Gustavo Alan
//Grupo:4CM1
//Programa que realiza iteraciones para determinar el valor de las
//raices de una ecuaci¢n por medio del mÇtodo de "REGLA FALSA"
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<math.h>
#include<stdlib.h>
#include<iostream.h>

void main(void)
{
clrscr();
double valor,valor1,res,res1,xi=0,xr,xw=1,fx,vv=1.648721271,ea,erv,era;
double xr1[30];
int i,j=0;
valor1=exp(xi*0.5);
res1=valor1-xi;
textbackground(9);
cout<<"xi="<<xi<<"."<<endl;
cout<<"xw="<<xw<<"."<<endl<<endl;
textcolor(10);
printf("Valor de la Funci¢n en xi:%1.9f ",res1); cout<<endl;
valor=exp(xw*0.5);
res=valor-xw;
printf("Valor Verdadero de la funci¢n:%2.9f ",vv); cout<<endl;
//clrscr();
cout<<"Iter   xi      xw  xr     Ea Erv(%)        Era(%)\n";
xr=xw-(res*(xi-xw))/(res1-res);
xr1[j]=xr;
j++;
printf("1  %1.9f",xi);
printf("   %1.9f",xw);
printf("  %1.9f",xr);
ea=vv-xr;
erv=((vv-xr)/vv)*100;
era=(xr/xr)*100;
printf("  %1.9f",fabs(ea));
printf("  %3.8f",fabs(erv));
printf("  %3.2f",era);
valor=exp(xr*-1);
res=valor-xr;
//printf("\nFunci¢n xr=%1.10f",res);
valor1=exp(xi*0.5);
res1=valor1-xi;          //printf("\nFuncion xi=%1.10f",res1);
fx=res*res1;
//printf("       %1.10f\n",fx);
for(i=0;i<10;i++) //11 veces
{
delay(25);
if(fx>0)
xi=xr;
else{xw=xr;}
xr=xw-(res*(xi-xw))/(res1-res);
xr1[j]=xr;
printf("\n%d  %1.9f",i+2,xi);   delay(25);
printf(" %1.9f",xw);           delay(25);
printf("  %1.9f",xr);           delay(25);
ea=vv-xr;
erv=((vv-xr)/vv)*100;
era=((xr-xr1[j-1])/xr)*100;
j++;
printf("  %1.9f",fabs(ea));     delay(25);
printf("  %3.8f",fabs(erv));    delay(25);
printf("  %3.7f",fabs(era));    delay(25);
valor=exp(xr*-1);
res=valor-xr;
//printf("\nFunci¢n xr=%1.15f",res);
valor1=exp(xi*0.5);
//printf("\n  %1.10f",xi);
res1=valor1-xi;          //printf("\nFuncion xi=%1.10f",res1);
fx=res*res1;
}
getch();
}

Programa que realiza una operacion de segundo grado.


//Programa que realiza una operacion de segundo grado.
#include<stdio.h>
#include<iostream.h>
#include<math.h>
#include<conio.h>

void main(void)
{
char r;
float a,b,c,w,x,y,z,d,e,x1,x2;
do
{
clrscr();
cout<<"Coeficiente de x^2:";
cin>>a;
cout<<"Coeficiente de x:";
cin>>b;
cout<<"Coeficiente independiente:";
cin>>c;
if(a==0)
{
x=-1*(c/b);
clrscr();
cout<<"Solucion: x="<<x;
getch();
}
else
{
if(b==0)
{
if(c<0&&a>0||c>0&&a<0)
{
x=sqrt((c/a)*-1);
clrscr();
cout<<"Solucion: X="<<x;
getch();
}
else
{
x=sqrt(c/a);
clrscr();
cout<<"Solucion: X="<<x<<"i";
getch();
}
}
else
{
w=b*b;
y=4*a*c;
z=2*a;
if(w>y)
{
x1=(-b+sqrt(w-y))/z;
x2=(-b-sqrt(w-y))/z;
clrscr();
cout<<"Soluciones:"<<endl<<"X1="<<x1<<endl<<"X2="<<x2;
getch();
}
else
{
d=sqrt(-1*(w-y))/z;
e=(-b/z);
//x1=e+d;
//x2=e-d;
clrscr();
cout<<"Soluciones:"<<endl<<"X1="<<e<<"+"<<d<<"i"<<endl<<"X2="<<e<<"-"<<d<<"i";
getch();
}
}
}
clrscr();
cout<<"...Deseas hacer otra operacion?(s/n):";
cin>>r;
}
while(r=='s');
}

Programa que realiza iteraciones para determinar el valor de las //raices de una ecuaci¢n por medio del metodo de bisección


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza iteraciones para determinar el valor de las
//raices de una ecuaci¢n por medio del mÇtodo de "BISECCION"
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<math.h>
#include<stdlib.h>
#include<iostream.h>

void main(void)
{
clrscr();
double valor,valor1,res,res1,xi=0,xr,xw=1,fx,vv=0.56714329,ea,erv,era;
double xr1[30];
int i,j=0;
valor=exp(xi*-1.0);
res=valor-xi;
textbackground(9);
cout<<"xi="<<xi<<"."<<endl;
cout<<"xw="<<xw<<"."<<endl<<endl;
textcolor(10);
printf("Valor de la Funci¢n en xi:%1.9f ",res); cout<<endl;
valor=exp(xw*-1.0);
res=valor-xw;
printf("Valor de la Funci¢n en xw:%1.9f ",res); cout<<endl;
cout<<"Valor verdadero de la Funci¢n: 0.56714329\n"<<endl;
//clrscr();
cout<<"Iter   xi      xw  xr     Ea Erv(%)        Era(%)\n";
xr=(xi+xw)/2;
xr1[j]=xr;
j++;
printf("1  %1.9f",xi);
printf("   %1.9f",xw);
printf("  %1.9f",xr);
ea=vv-xr;
erv=((vv-xr)/vv)*100;
era=(xr/xr)*100;
printf("  %1.9f",ea);
printf("  %3.8f",erv);
printf("  %3.2f",era);
valor=exp(xr*-1);
res=valor-xr;
//printf("\nFunci¢n xr=%1.10f",res);
valor1=exp(xi*-1.0);
res1=valor1-xi;          //printf("\nFuncion xi=%1.10f",res1);
fx=res*res1;
//printf("       %1.10f\n",fx);
for(i=0;i<29;i++) //30 veces
{
delay(25);
if(fx>0)
xi=xr;
else{xw=xr;}
xr=(xi+xw)/2;
xr1[j]=xr;
printf("\n%d  %1.9f",i+2,xi);   delay(25);
printf(" %1.9f",xw);           delay(25);
printf("  %1.9f",xr);           delay(25);
ea=vv-xr;
erv=((vv-xr)/vv)*100;
era=((xr-xr1[j-1])/xr)*100;
j++;
printf("  %1.9f",fabs(ea));     delay(25);
printf("  %3.8f",fabs(erv));    delay(25);
printf("  %3.7f",fabs(era));    delay(25);
valor=exp(xr*-1);
res=valor-xr;
//printf("\nFunci¢n xr=%1.15f",res);
valor1=exp(xi*-1.0);
//printf("\n  %1.10f",xi);
res1=valor1-xi;          //printf("\nFuncion xi=%1.10f",res1);
fx=res*res1;
}
gotoxy(20,41);
textcolor(10+128);
cprintf("Presione cualquier tecla....");
getch();
}

METODO DIRECTO DE LOS TRAPECIOS


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza la solucion de una integral por el metodo
//directo de los TRAPECIOS.

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

void main(void)
{
int i;
double a,b,n,in,h,vv=0.3413447461,e,ea,eb,ev,erv,f,sf=0.0,fx,fxa,fxb;
clrscr();
cout<<"Dame el valor de n:";
cin>>n;
cout<<endl<<"Dame el valor del l°mite inferior:";
cin>>a;
cout<<endl<<"Dame el valor del l°mite superior:";
cin>>b;
h=(b-a)/n;
printf("\nValor de h:%1.2f\n",h);
getch();
clrscr();
//e=a+(1*h);
//f=exp(e);
//printf("%2.8f",f);
for(i=1.0;i<n;i++)
{
e=pow(a+i*h,2)/2.0;
f=exp(-e);
sf=sf+f;
e=(a+i*h);
printf("\nValor de la funcion evaluada en (%0.2f):%0.8f\n",e,f);
if(i%24==0&&i!=0){getch(); clrscr();}
}
in=2*sf;        //printf("%1.8f",in);
ea=pow(a,2)/2.0;
fxa=exp(-ea);
eb=pow(b,2)/2.0;
fxb=exp(-eb);
fx=(h/(2.0*sqrt(6.28318531))*(fxa+fxb+in));
printf("\n\nValor de f(x):%1.8f\n",fx);
printf("\nValor verdadero de la funci¢n:%0.10f\n",vv);
ev=vv-fx;
erv=(ev/vv)*100;
printf("\nEv=%0.8f\tErv=%2.3f%",fabs(ev),fabs(erv));
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

METODO DIRECTO DE LOS RECTANGULOS


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza la solucion de una integral por el metodo
//directo de los RECTANGULOS.

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

void main(void)
{
int i;
double a,b,n,in,h,vv=0.3413447461,e,ev,erv,f,sf=0.0;
clrscr();
cout<<"Dame el valor de n:";
cin>>n;
cout<<endl<<"Dame el valor del l°mite inferior:";
cin>>a;
cout<<endl<<"Dame el valor del l°mite superior:";
cin>>b;
h=(b-a)/n;
printf("\nValor de h:%1.2f\n",h);
getch();
clrscr();
//e=a+(1*h);
//f=exp(e);
//printf("%2.8f",f);
for(i=0.0;i<n;i++)
{
e=pow(a+i*h,2)/2.0;
f=exp(-e);
sf=sf+f;
e=(a+i*h);
printf("\nValor de la funcion evaluada en (%0.2f):%0.8f\n",e,f);
if(i%24==0&&i!=0){getch(); clrscr();}
}
in=(h/sqrt(6.28318531))*sf;
printf("\n\nValor de In:%1.8f\n",in);
printf("\nValor verdadero de la funci¢n:%0.8f\n",vv);
ev=vv-in;
erv=(ev/vv)*100;
printf("\nEv=%0.8f\tErv=%2.2f%",fabs(ev),fabs(erv));
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

SERIE DE McLAURIN


# include <stdio.h>
# include <conio.h>
# include <math.h>
# include <dos.h>

void main ()
{
int i,j,n,ni,resf;
float ex[50],x,xn,E[50],Erv[50],Era[50];
char resp;
float v=1.64872127;
textmode(C80);
textbackground(4);
do
{
clrscr();
printf("PROGRAMA QUE CALCULA LA SERIE DE McLAURIN");
printf("\n\nCUANTAS CIFRAS SIGNIFICATIVAS DESEA: ");
scanf("%f",&x);
printf("\n\ITERACIONES QUE DESAE VER: ");
scanf("%d",&ni);
n=ni-1;
ex[0]=0;
/*E[0]=0;
Erv[0]=0;
Era[0]=0;
*/
for(i=0;i<=n;i++)
{
E[i]=0;
Erv[i]=0;
Era[i]=0;
resf=1;
for(j=1;j<=i;j++)
{
resf=resf*j;
}
xn=pow(x,i);
ex[i]=ex[i-1]+(xn/resf);
printf("\n\n%d iteracion ex=%f",i+1,ex[i]);
E[i]=(v-ex[i]);
if(E[i]<0)
{
E[i]*=-1;
}
printf("\n%d Error= %f",i+1,E[i]);
Erv[i]=((E[i]/v)*100);
if(Erv[i]<0)
{
Erv[i*=-1] ;
}
printf("\n%d Erv= %f %",i+1,Erv[i]);
/*if(ex[i-1]=0)
{
ex[i-1]=1;
} */
Era[i]=( ( (ex[i]-ex[i-1] ) /ex[i] )*100 );
if(Era[i]<0)
{
Era[i]*=-1;
}
printf("\n%d Era= %f %",i+1,Era[i]);
}
gotoxy(10,25);
printf("®QUIERE INTENTAR CON UN NUEVO NUMERO DE ITERACIONES?(S/N): ");
scanf("%s",&resp);
}
while(resp=='s'||resp=='S');
gotoxy(40,27);
printf("UN MOMENTO POR FAVOR");
delay(1000);

}

INTERPOLACION CUADRATICA DE NEWTON


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza diferencias divididas para determinar el valor de
//de una funcion conocida en base al valor de la funcion evaluada en puntos
//equidistantes por medio de "INTERPOLACION CUADRATICA DE NEWTON"

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

void main(void)
{
double fx,fx0,fx1,fx2,f2x,b0,b1,b2,x,x0,x1,x2,erv;
clrscr();
x=2;
x0=1;
x1=3;
x2=5;
fx=log(x);
fx0=log(x0);
fx1=log(x1);
fx2=log(x2);
cout<<"Calculando el ln(2) por medio del polinomio de interpolacion cuadratica"<<endl<<"de Newton con x=1,3,5."<<endl<<endl;
b0=fx0;
b1=(fx1-fx0)/(x1-x0);
b2=((fx2-fx1)/(x2-x1)-(fx1-fx0)/(x1-x0))/(x2-x0);
f2x=b0+b1*(x-x0)+b2*(x-x0)*(x-x1);
erv=(fx-f2x)/fx*100;
printf("bo=%1.8f  b1=%1.8f  b2=%1.8f\n\n",b0,b1,b2);
printf("f2(x)=%1.8f Erv=%2.2f%",f2x,fabs(erv));
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

METODO DE GAUSS JORDAN


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>

float pivo,cero;
int max=30;
int c,n,i,i1,j,k,m;
float epc,A[20][20];
void main()
{
clrscr();
  gotoxy(20,1);
  printf(" M E T O D O   D E    G A U S S   J O R D A N ");
  gotoxy(25,3);
  cout<<"DAME EL TAMA•O DE MATRIZ:";
  cin>>n;
  gotoxy(15,5);
  printf("DAME LOS COEFICIENTES: ");
  if (n==3){
  gotoxy(13,6);
  printf("     X1:    X2:    X3:    =   ");
  gotoxy(13,7);
  printf("     X1:    X2:    X3:    =   ");
  gotoxy(13,8);
  printf("     X1:    X2:    X3:    =   ");
  }
   if(n==4){
  gotoxy(13,6);
  printf("     X1:    X2:    X3:    X4    =   ");
  gotoxy(13,7);
  printf("     X1:    X2:    X3:    X4    =   ");
  gotoxy(13,8);
  printf("     X1:    X2:    X3:    X4    =   ");
  gotoxy(13,9);
  printf("     X1:    X2:    X3:    X4    =   ");

}
  if(n>1 & n<20)
{
   m=n+1;
for(i=1;i<=n;i++)
   {
    c=14;
    for(j=1;j<=m;j++)
    {
    c=c+7;
    gotoxy(c,i1+6);
    cin>>A[i][j];
   }
   i1++;
}
   for(i=1;i<=n;i++)
   {
   pivo=A[i][i];
   for(j=1;j<=m;j++)
   A[i][j]=A[i][j]/pivo;
   for(k=1;k<=n;k++)
   {
   if(k!=i)
   {
   cero=-A[k][i];
   for(j=1;j<=m;j++)
   A[k][j]=A[k][j]+cero*A[i][j];
   }
   }
   }

if(n==3){
printf("\n\n\n");
printf(" |");
for (j=1;j<=m;j++)
printf("\t%7.2f  ",A[1][j]);
printf("\n");
printf(" |");
for (j=1;j<=m;j++)
printf("\t%7.2f  ",A[2][j]);
printf("\n");
printf(" |");
for (j=1;j<=m;j++)
printf("\t%7.2f  ",A[3][j]);
}

if (n==4){
printf("\n\n\n");
printf(" |");
for (j=1;j<=m;j++)
printf("\t%7.2f ",A[1][j]);
printf("\n");
printf(" |");
for (j=1;j<=m;j++)
printf("\t%7.2f ",A[2][j]);
printf("\n");
printf(" |");
for (j=1;j<=m;j++)
printf("\t%7.2f ",A[3][j]);
printf("\n");
printf(" |");
for (j=1;j<=m;j++)
printf("\t%7.2f ",A[4][j]);
}
cout<<endl;
cout<<endl;
for(i=1;i<=n;i++)
cout<<"X("<<i<<")= "<<A[i][m]<<endl;
getch();
  }
  }

METODO DE NEWTON-RAPHSON


//METODO DE NEWTON-RAPHSON
#include<iostream.h>
#include<conio.h>
#include<math.h>

void main(void)
 {
 textbackground(6);
 textcolor(3);
  clrscr();
  long double fx0,gx0,x0,xi,ea,e,i,s,a=0;
  cout<<"\t\n      Calcula la raiz de la funciïn f(x)=(e^-x)-x por NEWTON-RAPHSON";
  cout<<endl<<"\n\tIntroduzca el valor aproximado al cual desea encontrar la raiz:"<<endl;
  cout<<"\n\t Xu= ";
  cin>>x0;

  cout<<"\n\t Cifras significativas: ";
  cin>>s;
  if(s<4)
  {
cout<<"\n\n   En Analisis,para un calculo permitido se requiere\ncomo minimo 4 cifras significativas";
getch(); }
  else {
  cout<<endl<<endl<<"i         x(i-1)        xi             Emax"<<endl<<endl;
  for(;;)
   {

    i=a+1;
    xi=x0-((exp(-x0)-x0)/(-exp(-x0)-1));
    ea=fabsl(x0-xi);
    e=(0.5*pow(10,(2-s)));
    cout<<i;
    cout<<"\t"<<x0;
    cout<<"\t\t"<<xi;
    cout<<"\t\t\t"<<ea<<endl;
    a=i;
    x0=xi;
    if(ea<=e)
      break;
   }
  cout<<endl<<" LA RAIZ ES  "<<xi;
  getch();
 }      }

REGLA FALSA


#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<math.h>
#include<graphics.h>
#include<dos.h>

//void IniciarGraficos();
//void Portada (int entrada);


void main ()
{
textbackground(BLACK);
textcolor(WHITE);
double long s;
double Xr, AXr, Xi, Xu, Fx, FXi, FXr, FXuA, FXiA, Erpa, Erpv, Es;
double const Vv = 0.56714329;
int j,i;
float k1[20],k2[20];
char resp;
int entrada = 1;
int gdriver = DETECT,gmode,errorcode;
//closegraph ();
do
{
clrscr ();
cout<<"\n\t\t\t METODO DE REGLA FALSA";
cout<<"\n\n\n\n\t\t La funcion es:";
cout<<"\n\n\t\t\t\t Fx = (e^-(x)) - x";
cout<<"\n\n\n ®Cuales son tus valores iniciales?:";
cout<<"\n\n\t Xi: ";
cin>>Xi;
cout<<"\n\t Xu: ";
cin>>Xu;
cout<<"\n\t       Cifras significativas: ";
cin>>s;
if(s<4)
{
cout<<"\n\n En Analisis, para un calculo permitido se requiere como minimo 4 cifras significativas";
getch(); }
else
{
Es=(0.5*pow(10,(2-s)));
AXr = 0;
cout<<"\n\t Confirmando Es="<<Es<<endl;
j = 0;
do
{
j++;
cout<<"\n\n"<<j<<"¯  Iteracion";

FXuA = pow(M_E,-(Xu))-Xu;

FXiA = pow(M_E,-(Xi))-Xi;

Xr = Xu - ((FXuA*(Xi-Xu))/(FXiA-FXuA));

cout<<"\n\n\t Xr: "<<Xr;

FXr = pow(M_E,-(Xr))-Xr;
cout<<"\n\n\t fXr: "<<FXr;

Fx = FXiA * FXr;
cout<<"\n\n\t F(Xi)(Xr) = "<<Fx;
k1[j]=Xi;
k2[j]=FXiA;

if (Fx > 0)
Xi = Xr;

else
Xu = Xr;


Erpv = ((Vv-Xr)/Vv)*100;

if (Erpv<0)
Erpv*=-1;
cout<<"\n\n\t\t Erpv: "<<Erpv;

Erpa = ((Xr - AXr)/Xr)*100;

if (Erpa<0)
Erpa*=-1;

cout<<"\n\n\t\t Erpa: "<<Erpa;

AXr = Xr;
getch ();

}
while (Erpa>=Es);

cout<<"\n\n\n\t Erpa < Es ->  FIN DEL PROCESO";
cout<<"\n\n\t\t\t\t DESEA REPETIR?: ";
cin>>resp;

}
}
while (resp=='s'||resp=='S');
entrada = 2;
 }
//cout<<j;
getch();

/*initgraph(&gdriver, &gmode, "C:\\TC\\BGI");


errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Pulse una tecla para salir");
getch();
exit(1);
}
setcolor(15);
line(320,0,320,480);
line(0,240,640,240);
Es=(0.5*pow(10,(2-s)));
AXr = 0;
cout<<"\n\t Confirmando Es="<<Es<<endl;
j = 0;

do
{
j++;
//cout<<"\n\n"<<j<<"¯  Iteracion";

FXuA = pow(M_E,-(Xu))-Xu;

FXiA = pow(M_E,-(Xi))-Xi;

Xr = Xu - ((FXuA*(Xi-Xu))/(FXiA-FXuA));

//cout<<"\n\n\t Xr: "<<Xr;

FXr = pow(M_E,-(Xr))-Xr;
//cout<<"\n\n\t fXr: "<<FXr;

Fx = FXiA * FXr;
//cout<<"\n\n\t F(Xi)(Xr) = "<<Fx;
putpixel(320+(10*Xi),240+(10*FXiA),15);
if (Fx > 0)
Xi = Xr;

else
Xu = Xr;


Erpv = ((Vv-Xr)/Vv)*100;

if (Erpv<0)
Erpv*=-1;

 // cout<<"\n\n\t\t Erpv: "<<Erpv;

Erpa = ((Xr - AXr)/Xr)*100;

if (Erpa<0)
Erpa*=-1;

//cout<<"\n\n\t\t Erpa: "<<Erpa;

AXr = Xr;
getch ();
} while (Erpa>=Es);

outtextxy(10,10,"INSTITUTO POLITECNICO NACIONAL");
getch();
}
closegraph();*/




void Portada (int entrada)
{
int i,x,y;
setbkcolor(1);
 }

METODO DE BISECCION


#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <math.h>

 void main(void)
 {
   clrscr();
   float  cont, iter, a,b, Pint,fb,fPi, Ea, error, ftal;
   float c,d, fPin, fd, ftal2;
   cont=0;
   cout<<"\n\n\t\t  INSTITUTO POLITECNICO NACIONAL";
   cout<<"\n\n\t\t         ESIME ZACATENCO";
   cout<<"\n\n\t\t       Torres Martinez Gustavo Alan";
   cout<<"\n\n\t\t        ANALISIS NUMERICO";
   cout<<"\n\n\t\t           GRUPO: 4CM1"<<endl<<endl;

   cout<<endl<<"\n\n\tPROGRAMA PARA CALCULAR LAs RAICES DE LA FUNCION f(x)=(Cosx*Cosx)-2(Senx)";
   cout<<"\n\t\t  POR MEDIO DEL METODO DE BISECCION";
   cout<<endl<<"\nINDIQUE EL INTERVALO (a,b)\n";
   cout<<endl<<"a= ";
   cin>>a;
   cout<<endl<<"b= ";
   cin>>b;
   cout<<endl<<"INDIQUE EL ERROR DE APROXIMACION: ";
   cin>>error;
   Ea=1000;
while(Ea>error)
      {
Pint=(a+b)/(2);
      iter=cos(Pint);
      fPi=(cos(Pint)*cos(Pint))-(2*(sin(Pint)));
      fb=(cos(b)*cos(b))-(2*(sin(b)));
      ftal=(fPi*fb);
      if(ftal>0)
      {
b=Pint;
Ea=(a-b);
Ea=(Ea*Ea);
Ea=pow(Ea,0.5);
      }
      else
{
a=Pint;
     Ea=(a-b);
   Ea=(Ea*Ea);
Ea=pow(Ea,0.5);
}
      }
      cout<<"\n\n\n\tLa raiz es: "<<Pint;
      cout<<"\n\tCon un error de aproximacion de: "<<Ea;
   cout<<endl<<"\n\nAHORA INDIQUE EL NUEVO INTERVALO (c,d)\n";
   cout<<endl<<"c= ";
   cin>>c;
   cout<<endl<<"d= ";
   cin>>d;
   Ea=1000;
while(Ea>error)
      {
Pint=(c+d)/(2);
      fPin=(cos(Pint)*cos(Pint))-(2*(sin(Pint)));
      fd=(cos(d)*cos(d))-(2*(sin(d)));
      ftal=(fPin*fd);
      if(ftal>0)
      {
d=Pint;
Ea=(c-d);
Ea=(Ea*Ea);
Ea=pow(Ea,0.5);
      }
      else
{
c=Pint;
     Ea=(c-d);
   Ea=(Ea*Ea);
Ea=pow(Ea,0.5);
}
}
      cout<<"\n\n\n\tLa raiz es: "<<Pint;
      cout<<"\n\tCon un error de aproximacion de: "<<Ea;
      getche();
}