package sem4;
import java.util.Scanner;
public class BisectionMethod {
static double f1(double x){
//return (Math.pow(x, 10)-1);
//return (Math.pow(x, 3)+Math.pow(x, 2)+3*x);
//return (Math.pow(x, 3)-5*x-7);
//return (Math.cos(x)-x*Math.pow(Math.E, x));
//return ((Math.pow(Math.E,-1*x))-x);
//return (x-Math.cos(x));
return (x*Math.log10(x)-1.2);
}
static double squeeze(double a,double b){
assert f1(a)<f1(b);
final double inc=a/b;
while(f1(a+inc)<0){
a+=inc;
}
return a;
}
static double find_root(double a,double b){
// a=squeeze(a,b);
int c=1;
double ansprev=0,ans;
ans=(a+b)/2;
if(f1(ans)>0)
b=ans;
else
a=ans;
while(ansprev!=ans && c<=30){
ansprev=ans;
ans=(a+b)/2;
if(f1(ans)>0)
b=ans;
else
a=ans;
}
return ans;
}
public static void main(String[] args) {
//System.out.println(find_root(2,3));
//System.out.println(find_root(1,0));
//To decide the values of a and b
double x=0,y=0;
if(f1(x)<0){
while(f1(x)<0){
x++;
}
y=x;
x--;
}
else{
while(f1(y)>0){
y++;
}
x=y;
y--;
}
//System.out.println(x+" "+y);
//System.out.println(find_root(1,0));
System.out.println(find_root(2,3));
}
}
Comments
Post a Comment