==== Numerical Analysis: Example in Section 2.3=====

================ by Dr. Ming Mei=============

Question: (Ex. Q.13, page 75)

1.     by Method of False Position

> f:=x->230*x^4+18*x^3+9*x^2-221*x-9;

> plot(f,0..1);

> a:=0; b:=1; i:=1; maxstep:=22; tolerance:=0.000001; err:=100.0;

> for i from 1 to maxstep while (evalf(err)>tolerance) and (abs(b)<10000) do p:=evalf(b-f(b)*(b-a)/(f(b)-f(a))); err:=abs(b-p);

> if evalf(f(b)*f(p)<0) then a:=p else b:=p end if;

> end do;

2.     by Secant Method

> restart;

> f:=x->230*x^4+18*x^3+9*x^2-221*x-9;

> a:=1/2; b:=1; i:=1; maxstep:=22; tolerance:=0.000001;   err:=100.0;

# select a proper initial approximation is very

# important. Try a=0 to see what a numerical result

# you might have.

> for i from 1 to maxstep while (evalf(err)>tolerance) and (abs(b)<10000) do p:=evalf(b-(f(b)*(b-a))/(f(b)-f(a))); err:=abs(b-p); a:=b; b:=p; ans:=p; print("answer=",ans,"error=", evalf(err), "step=",i);

> end do;

===============================================================

3.     by Newton's Method

> restart;

> f:=x->230*x^4+18*x^3+9*x^2-221*x-9;

> df:=D(f);

> a:=1; i:=1; maxstep:=22; tolerance:=0.000001; err:=100.0;

> for i from 1 to maxstep while (evalf(err)>tolerance) and (abs(a)<10000) do p:=evalf(a-f(a)/df(a)); err:=abs(a-p); a:=p; ans:=p; print("answer=",ans,"error=", evalf(err), "step=",i);

> end do;