import java.util.*; public class bisectionmethod { public static void main(Strin
ID: 3615958 • Letter: I
Question
import java.util.*;public class bisectionmethod
{
public static void main(String []args)
{Scanner in=new Scanner(System.in);
int N,terms,i;
double a,b,eps,x;
int[] coef=new int[4];
int[]exp=new int[4];
for(i=0;i<4;i++)
{ coef[i]=0;
exp[i]=0;
}
System.out.println("Enter your function: ");
System.out.print("How many terms(4 maximum)? ");
terms=in.nextInt();
for(i=0;i<terms;i++)
{System.out.print("for term"+(i+1)+": enter coefficient: ");
coef[i]=in.nextInt();
System.out.print("for term "+(i+1)+": enter exponent: ");
exp[i]=in.nextInt();
}
System.out.print("Enter a value for "a": ");
a=in.nextDouble();
System.out.print("Enter a value for "b": ");
b=in.nextDouble();
System.out.print("Enter a value for "eps": ");
eps=in.nextDouble();
System.out.print("Enter a maximum iterations: ");
N=in.nextInt();
System.out.print("Your function is: ");
for(i=0;i<terms-1;i++)
System.out.print(coef[i]+"X^"+exp[i]+" + ");
System.out.println(coef[terms-1]+"X^"+exp[terms-1]);
System.out.println(" a b x f(x)");
x=bisection(coef,exp,a,b,eps,N);
if(x!=-999999.9999)
System.out.println("X="+x);
else
System.out.println("Iteration limit a="+a+",b="+b);
}
public static double bisection(int coef[],int exp[],double a,doubleb,double eps,int N)
{int n=1,i;
double x,fval,fofa;
while(n<=N)
{x=(a+b)/2;
if(Math.abs(x-a)<eps)
return x;
fval=0;
fval=evalfun(coef,exp,x);
System.out.printf("%.6f %.6f %.6f %.6f ",a,b,x,fval);
if(fval==0)
return x;
fofa=evalfun(coef,exp,a);
if(fval*fofa<0)
b=x;
else
a=x;
n++;
}
return 999999.9999;
}
public static double evalfun(int coef[],int exp[],doublex)
{int i;
double val=0;
for(i=0;i<4;i++)
val+=coef[i]*Math.pow(x,exp[i]);
return val;
}
}
Explanation / Answer
x.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.