Maple Code

> bisection := proc(a0,b0,max)
  local k,a,b,c;
  a := evalf(a0);
  b := evalf(b0);
  c := (a+b)/2;
  printf(" a = %11.7f, c = %11.7f, b = %11.7f, f(c) = %11.7f \n",a,c,b,f(c));
  for k from 1 to max do
    if f(b)*f(c) > 0 then
      b := c;
    else
      a := c;
    fi;
    c := (a+b)/2;  
    printf(" a = %11.7f, c = %11.7f, b = %11.7f, f(c) = %11.7f \n",a,c,b,f(c));  
  end do;
  print(`f(x) = `,f(x));
  printf("  c  = %10.6f \n",c);
  printf(" dc  =+-%9.6f \n",abs((b-a))/2);
  printf("f(c) = %10.6f \n",f(c));
  RETURN(c);
  end;

> f := proc(x)
  x^3+4*x^2-10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(c) John H. Mathews 2004