Fortran Programming
Numerical Methods
- Bisection Method
- Regula Falsi (False Position)
- Newton Raphson Method
- Secant method
- Newton Raphson – Non-Linear Equations
- Gauss Elimination Method
- Gauss Elimination Method (With Pivoting)
- Gauss Jordan Method
- Gauss Elimination – Determinant
- Gauss Jordan – Inverse Matrix
- Lagrange Interpolation
- Newton Divided Interpolation
- Newton Forward Interpolation
- Least Square Fitting
- Trapezoidal Rule
- Simpson 1/3rd Rule
- Simpson 3/8 Rule
- Euler’s Method
- Euler’s Modified Method
- Runge Kutta’s (2nd Order)
- Runge Kutta’s (4th Order)
PROGRAM bisection
IMPLICIT NONE
REAL::f,ea=6,es=0.01,p,q,m
INTEGER::c=0
PRINT *, '============================================'
PRINT *, 'PROGRAM TO FIND THE ROOTS OF AN EQUATION USING - BISECTION METHOD [ BY - WWW.BOTTOMSCIENCE.COM ]'
PRINT *, '============================================'
PRINT *,'INITIAL APPROXIMATION (a,b)?'
READ(*,*)p,q
DO WHILE(ea>es)
c=c+1
IF (c>40) EXIT
IF((f(p)*f(q))<0) THEN
m=(p+q)/2
PRINT *,'CURRENT ITERATED VALUE',m
IF((f(p)*f(m))<0) THEN
q=m
ea=abs(((q-p)/q)*100)
ELSE IF((f(p)*f(m))>0) THEN
p=m
ea=abs(((p-q)/p)*100)
ELSE
PRINT *,'ROOT IS - ',m
END IF
ELSE
PRINT *,'INITIAL APPROXIMATION - WRONG'
END IF
END DO
IF (m<1*10E+20) THEN
PRINT *,'FINAL ROOT IS',m
ELSE
PRINT *,'ROOT IS DIVERGING [TRY OTHER RANGE FOR (p,q)]'
END IF
END PROGRAM
!FUNCTION
!CHANGE THE VALUE OF F TO CHANGE THE FUNCTION
REAL function f(x1)
REAL::x1
f=-0.6*(x1**2)+(2.4*x1)+5.5
RETURN
END FUNCTIONOUTPUT
