Maple Code

> secantmethod := proc(x0,x1,max)
> local k,p0,p1,p2;
> k := 1;
> p0 := evalf(x0);
> p1 := evalf(x1);
> printf(" P%g  = %g \n",0,p0);
> printf(" P%g  = %g \n",1,p1);
> p2 := p1;
> p1 := p0;
> for k from 1 to max do
>   p0 := p1;
>   p1 := p2;  
>   p2 := p1 - f(p1)*(p1-p0)/(f(p1)-f(p0));
>   printf(" P%g  = %g \n",k+1,p2);  
> end do;
> print(`f(x) = `,f(x));
> printf("  P  = %g \n",p2);
> printf(" dP  = %g \n",abs(p2-p1));
> printf("f(P) = %g \n",f(p2));
> RETURN(p2);
> end;

> f := proc(x)
> 4*x^3-16*x^2+17*x-4
> end proc;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(c) John H. Mathews 2004