#include <stdio.h>
#include <conio.h>
#include <math.h>
void Lee_Datos(void);
double Funcion(double X);
double a, b, Error;
int Max_Iter;
int main(void)
{
double Error_Aprox, Prod;
double Xr, Xn;
int Ciclos = 0;
Lee_Datos();
if(Funcion(a)*Funcion(b)>0)
{
printf("\n No Existe Raiz en el intervalo ???");
}else
{
Xr=(a+b)/2;
printf("\n-----------------------------------------");
Error_Aprox = 1;
printf("\n Ciclo a b Xn Error");
printf("\n-----------------------------------------");
printf("\n%3d%10.4f%10.4f%10.4f",Ciclos,a,b,Xr);
while (Ciclos<=Max_Iter && Error<Error_Aprox)
{
Prod=Funcion(a)*Funcion(b);
if (Prod==0)
{
printf("La raiz es %lf",Xr);
}else{
if(Prod<0)
{
b=Xr;
}else{
a=Xr;
}
}
Xn=(a+b)/2;
Ciclos+=1;
Error_Aprox=fabs((Xn-Xr)/Xn);
printf("\n%3d%10.4f%10.4f%10.4f",Ciclos,a,b,Xn,Error_Aprox);
Xr=Xn;
}
if(Ciclos<Max_Iter)
{
printf("\n--------------------------------------");
printf("\n\n La Raiz de la Ecuacion es => %lf",Xn);
printf("\n Se encontro en %d Iteraciones",Ciclos);
}else{
printf("\n No se encontro raiz en %d Iteraciones",Ciclos);
}
}
getch();
return 0;
}
void Lee_Datos(void)
{
clrscr();
printf("\nDar el valor de Xi .......... ");
scanf("%lf",&a);
printf("\nDar el valor de Xf .......... ");
scanf("%lf",&b);
printf("\nCual es el Error Permitido ... ");
scanf("%lf",&Error);
printf("\nCual es el Maximo de Ciclos .. ");
scanf("%d",&Max_Iter);
}
double Funcion(double X)
{
return(pow((1+X),10)-1)/(X*pow((1+X),10))-5;
}
Comentarios sobre la versión: Versión 1 (7)
Podrias indicarme brevemente que valores poner como por ejemplo : a) -1 b)5 c.)0.01 d)5 algo asi gracias de antemano
Felicidades :D