#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