Você está na página 1de 5

#include <stdio.

h>
#include <math.h>
#include <stdlib.h>
int maxit=100;
float x1,x2;
float fx1,fx2;
float xc,fxc;
int iteracion;
float tolerancia=0.0001;
float aux=10;
float abs(float x)
{
if(x<0)
{
x=x*-1;
}
return x;
}
int inciso_a ()
{
char opcion;
comienzo1:
printf("Escriba el 1er valor de x \n");
scanf("%f",&x1);
fx1=tan(x1)-(x1)-1;
printf("Escriba el 2do valor de x \n");
scanf("%f",&x2);
fx2=tan(x2)-(x2)-1;
if(fx1*fx2>0)
{
printf("ERROR. No se puede aplicar el metodo. \n");
printf("a) Dar otros valores a x b)Salir \n");
scanf("%s",&opcion);
switch (opcion)
{
case'a':
goto comienzo1;
case'b':
exit(0);
}
}
if(fx1==0)
{
printf("Raiz exacta encontrada en x = %f",x1);
system("pause");
}
if(fx2==0)
{
printf("Raiz exacta encontrada en x = %f",x2);
system("pause");
}
for(iteracion=0;iteracion<=maxit;iteracion++)
{
xc=(x1+x2)/2;
fxc=tan(xc)-(xc)-1;
if((fxc-fx1==0) || (fxc-fx2==0))
{
printf("Algoritmo estancado Raiz calculada = %f\n",xc);
system("pause");
break;
}
if(fxc==0)
{
printf("Raiz exacta encontrada en x = %f \n",xc);
system("pause");
}
if(fx1*fxc>0)
{
x1=xc;
fx1=fxc;
} else
{
x2=xc;
fx2=fxc;
}
printf("%d El valor de xc = %f , el valor de f(xc) = %f \n",iter
acion,xc,fxc);
if(abs(fxc)<tolerancia)
{
printf("Algoritmo estancado, Raiz calculada = %f \n",xc);
system("pause");
break;
}
}
}
int inciso_b()
{
char opcion1;
comienzo2:
printf("Escriba el 1er valor de x \n");
scanf("%f",&x1);
fx1=pow(x1,2)*sin(x1)-cos(x1);
printf("Escriba el 2do valor de x \n");
scanf("%f",&x2);
fx2=pow(x2,2)*sin(x2)-cos(x2);
if(fx1*fx2>0)
{
printf("ERROR. No se puede aplicar el metodo. \n");
printf("a) Dar otros valores a x b)Salir \n");
scanf("%s",&opcion1);
switch (opcion1)
{
case'a':
goto comienzo2;
case'b':
exit(0);
}
}
if(fx1==0)
{
printf("Raiz exacta encontrada en x = %f",x1);
system("pause");
}
if(fx2==0)
{
printf("Raiz exacta encontrada en x = %f",x2);
system("pause");
}
for(iteracion=0;iteracion<=maxit;iteracion++)
{
xc=(x1+x2)/2;
fxc=pow(xc,2)*sin(xc)-cos(xc);
if((fxc-fx1==0) || (fxc-fx2==0))
{
printf("Algoritmo estancado Raiz calculada = %f\n",xc);
system("pause");
break;
}
if(fxc==0)
{
printf("Raiz exacta encontrada en x = %f \n",xc);
system("pause");
}
if(fx1*fxc>0)
{
x1=xc;
fx1=fxc;
} else
{
x2=xc;
fx2=fxc;
}
printf("%d El valor de xc = %f , el valor de f(xc) = %f \n",iter
acion,xc,fxc);
if(abs(fxc)<tolerancia)
{
printf("Algoritmo estancado, Raiz calculada = %f \n",xc);
system("pause");
break;
}
}
}
int inciso_c()
{
char opcion2;
comienzo3:
printf("Escriba el 1er valor de x \n");
scanf("%f",&x1);
fx1=16*pow(x1,5)-20*pow(x1,3)+pow(x1,2)+5*x1+0.5;
printf("Escriba el 2do valor de x \n");
scanf("%f",&x2);
fx2=16*pow(x2,5)-20*pow(x2,3)+pow(x2,2)+5*x2+0.5;
if(fx1*fx2>0)
{
printf("ERROR. No se puede aplicar el metodo. \n");
printf("a) Dar otros valores a x b)Salir \n");
scanf("%s",&opcion2);
switch (opcion2)
{
case'a':
goto comienzo3;
case'b':
exit(0);
}
}
if(fx1==0)
{
printf("Raiz exacta encontrada en x = %f",x1);
system("pause");
}
if(fx2==0)
{
printf("Raiz exacta encontrada en x = %f",x2);
system("pause");
}
for(iteracion=0;iteracion<=maxit;iteracion++)
{
xc=(x1+x2)/2;
fxc=16*pow(xc,5)-20*pow(xc,3)+pow(xc,2)+5*xc+0.5;
if((fxc-fx1==0) || (fxc-fx2==0))
{
printf("Algoritmo estancado Raiz calculada = %f\n",xc);
system("pause");
break;
}
if(fxc==0)
{
printf("Raiz exacta encontrada en x = %f \n",xc);
system("pause");
}
if(fx1*fxc>0)
{
x1=xc;
fx1=fxc;
} else
{
x2=xc;
fx2=fxc;
}
printf("%d El valor de xc = %f , el valor de f(xc) = %f \n",iter
acion,xc,fxc);
if(abs(fxc)<tolerancia)
{
printf("Algoritmo estancado, Raiz calculada = %f \n",xc);
system("pause");
break;
}
}
}
int main()
{
char opcion3,opcion4;
comienzo:
printf(" *******************************\n");
printf(" * METODO *\n");
printf(" * DE *\n");
printf(" * BISECCION *\n");
printf(" *******************************\n");
printf(" \n \n \n");
printf("Elija una funcion \n");
printf(" a) tanx-1=x \n");
printf(" b) x^2senx-cosx=0 \n");
printf(" c) 16x^5-20x^3+x^2+5x+0.5=0 \n");
printf(" d) Salir \n");
scanf("%s",&opcion3);
switch (opcion3)
{
case'a':
inciso_a();
printf("\n \n \n");
printf(" a) Regresar al menu principal \n");
printf(" b) Salir \n");
scanf("%s",&opcion4);
switch(opcion4)
{
case'a':
system("cls");
goto comienzo;
case'b':
exit(0);
}
break;
case'b':
inciso_b();
printf("\n \n \n");
printf(" a) Regresar al menu principal \n");
printf(" b) Salir \n");
scanf("%s",&opcion4);
switch(opcion4)
{
case'a':
system("cls");
goto comienzo;
case'b':
exit(0);
}
case'c':
inciso_c();
printf("\n \n \n");
printf(" a) Regresar al menu principal \n");
printf(" b) Salir \n");
scanf("%s",&opcion4);
switch(opcion4)
{
case'a':
system("cls");
goto comienzo;
case'b':
exit(0);
}
case'd':
exit(0);
}
return 0;
}

Você também pode gostar