Find A Root of The Equation Using Bisection Method. Aim
Find A Root of The Equation Using Bisection Method. Aim
PROGRAM CODING:
! program Bisection
real A,B,ROOT,EPS,F
integer S,COUNT
external BIM,F
parameter(EPS=0.000001)
write(*,*)
write(*,*)'SOLUTION BY BISECTION METHOD'
write(*,*)
write(*,*)'INPUT STARTING VALUES'
read(*,*)A,B
CALL BIM(A,B,EPS,S,ROOT,COUNT)
IF(S .EQ. 0) THEN
write(*,*)
write(*,*)'STARTING POINTS DO NOT BRACKET ANY ROOT'
write(*,*)'(CHECK WHETHER THEY BRACKET EVEN ROOTS)'
write(*,*)
ELSE
write(*,*)
write(*,*)'ROOT=',ROOT
write(*,*)'F(ROOT)=',F(ROOT)
write(*,*)
write(*,*)'ITERATIONS =',COUNT
write(*,*)
ENDIF
STOP
END
SUBROUTINE BIM(A,B,EPS,S,ROOT,COUNT)
REAL A,B,ROOT,EPS,F,X1,X2,X0,F0,F1,F2,ABS
INTEGER S,COUNT
EXTERNAL F
INTRINSIC ABS
X1=A
X2=B
F1=F(A)
F2=F(B)
IF(F1*F2 .GT. 0) THEN
S=0
RETURN
ENDIF
COUNT=1
111 X0=(X1+X2)/2.0
F0=F(X0)
IF(F0 .EQ. 0) THEN
S=1
ROOT=X0
RETURN
ENDIF
IF(F1*F0 .LT. 0)THEN
X2=X0
ELSE
X1=X0
F1=F0
ENDIF
IF(ABS((X2-X1)/X2) .LT. EPS)THEN
S=1
ROOT=(X1+X2)/2.0
RETURN
ELSE
COUNT = COUNT+1
GO TO 111
ENDIF
END
REAL FUNCTION F(X)
REAL X
F=X*X+X-2
RETURN
END
SOLUTION
First run
SOLUTION BY BISECTION METHOD
Input starting values
1.0 2.0
Root = 1.0000000
F(root) =0.0000000
ITERATIONS = 1
STOP Program terminated
Press RETURN to close window . . .
Second run
SOLUTION BY BISECTION METHOD
Input starting values
1.5 2.0
Root = 1.0000000
F(root) = -3.576279E-007
ITERATIONS = 21
RESULT:
Thus the FORTRAN program was generated and executed successfully to find a root of the equation using
bisection method.