Professional Documents
Culture Documents
Fortran Programs PDF
Fortran Programs PDF
Contents
BISECTION ................................................................................................................................... 2
NEWTON RAPHSON METHOD .................................................................................................. 4
INTERPOLATION ......................................................................................................................... 5
MODIFIED EULER METHOD ...................................................................................................... 7
RUNGE KUTTA 4TH ORDER ........................................................................................................ 8
SIMPSON 1/3 ................................................................................................................................. 9
LEAST SQUARE FIT .................................................................................................................. 10
BINARY SEARCH....................................................................................................................... 11
BUBBLE SORT ........................................................................................................................... 12
GAUSS ELIMINATION .............................................................................................................. 13
2
BISECTION
OUTPUT
ENTER THE VALUE OF LOWER AND UPPER LIMIT [a,b] OF THE EQUATION
2
4
_______________________________________________
I a b Xm
-----------------------------------------------------------------------
0 2.00000000 3.00000000 3.00000000
1 2.50000000 3.00000000 2.50000000
2 2.75000000 3.00000000 2.75000000
3 2.87500000 3.00000000 2.87500000
4 2.93750000 3.00000000 2.93750000
5 2.93750000 2.96875000 2.96875000
6 2.93750000 2.95312500 2.95312500
7 2.93750000 2.94531250 2.94531250
8 2.94140625 2.94531250 2.94140625
9 2.94140625 2.94335938 2.94335938
10 2.94238281 2.94335938 2.94238281
11 2.94238281 2.94287109 2.94287109
12 2.94262695 2.94287109 2.94262695
13 2.94274902 2.94287109 2.94274902
14 2.94281006 2.94287109 2.94281006
ROOT OF THE GIVEN EQUATION IS= 2.94281006
--------------------------------------------------------------------------
4
OUTPUT
INTERPOLATION
PROGRAM LAGRANGE_INTERPOLATION
IMPLICIT NONE
INTEGER,PARAMETER :: N=4
INTEGER :: I,J
REAL ::P,S
REAL,PARAMETER ::K=3.0
REAL,DIMENSION(20):: X(20),Y(20)
DATA (X(I), I=1,4)/3.2,2.7,1,4.8/
DATA (Y(I), I=1,4)/22,17.8,14.2,38.3/
S=0
DO I=1,N
P=1
DO J=1,N
IF (I==J) GOTO 5
P=P*(K-X(J))/(X(I)-X(J))
5 ENDDO
S=S+P*Y(I)
ENDDO
WRITE(*,*)'INTERPOLATION OF(',K,')=',S
END PROGRAM LAGRANGE_INTERPOLATION
OUTPUT
DIFFERENTIATION
PROGRAM THREE_POINT_FORMULA_DIFFERENTIATION
IMPLICIT NONE
INTEGER, PARAMETER :: NN=20
REAL, DIMENSION(0:NN) :: x,fx
INTEGER :: I,N=4
REAL :: fp0,fp1,fp2,h=0.2
DO I=0,N
x(I)=I*h
fx(I)=(x(I))**4
WRITE(*,*)I,x(I),fx(I),4*((x(I))**3)
END DO
WRITE(*,*)'**************'
DO I=1,(N-1)
fp0=(1/(2*h))*(-3*fx(I-1)+4*fx(I)-fx(I+1))
fp1=(1/(2*h))*(-fx(I-1)+fx(I+1))
fp2=(1/(2*h))*(fx(I-1)-4*fx(I)+3*fx(I+1))
WRITE(*,*)I,fp0,fp1,fp2
END DO
END PROGRAM THREE_POINT_FORMULA_DIFFERENTIATION
output
output
PROGRAM RUNGE_KUTTA_Fourth_Order
IMPLICIT NONE
INTEGER, PARAMETER :: NN=20
INTEGER :: I,n
REAL, DIMENSION(0:NN) :: x,y
REAL :: h,fx,k1,k2,k3,k4
h=0.1
x(0)=0
y(0)=1
WRITE(*,*)x(0),y(0)
READ(*,*)n
DO I=1,n
k1=h*fx(x(I-1),y(I-1))
k2=h*fx(x(I-1)+0.5*h,y(I-1)+0.5*k1)
k3=h*fx(x(I-1)+0.5*h,y(I-1)+0.5*k2)
k4=h*fx(x(I-1)+h,y(I-1)+k3)
x(I)=x(I-1)+h
y(I)=y(I-1)+(1/6.)*(k1+2*k2+2*k3+k4)
WRITE(*,*)k1,k2,k3,k4,y(I)
END DO
STOP
END PROGRAM RUNGE_KUTTA_Fourth_Order
REAL FUNCTION fx(x,y)
IMPLICIT NONE
REAL :: x,y
fx=x+y
RETURN
END FUNCTION fx
output
0.00000000 1.00000000
6
0.100000001 0.109999992 0.110499993 0.121050000 1.11034167
0.121034168 0.132085875 0.132638454 0.144298017 1.24280512
0.144280523 0.156494543 0.157105252 0.169991046 1.39971697
0.169971704 0.183470294 0.184145212 0.198386222 1.58364844
0.198364839 0.213283092 0.214028999 0.229767755 1.79744124
0.229744121 0.246231347 0.247055694 0.264449686 2.04423594
9
SIMPSON 1/3
program simpson_123
implicit none
INTEGER, PARAMETER :: NN=20
REAL, DIMENSION(0:NN) :: fx
REAL :: a,b,h,sf
INTEGER :: I,m
m=10
a=0
b=1
IF ((m/2)*2/=m) THEN
WRITE(*,*)'number of intervals not even'
STOP
ENDIF
h=(b-a)/m
DO I=0,m
fx(I)=exp(-(a+I*h)*(a+I*h))
WRITE(*,*)I,fx(I)
END DO
sf=fx(0)+fx(m)
DO I=1,(m-1)
IF ((I/2)*2==I) THEN
sf=sf+2*fx(I)
ELSE
sf=sf+4*fx(I)
ENDIF
END DO
sf=sf*(h/3.)
WRITE(*,*)sf
end program simpson_123
output...
0 1.00000000
1 0.990049839
2 0.960789442
3 0.913931191
4 0.852143764
5 0.778800786
6 0.697676301
7 0.612626374
8 0.527292371
9 0.444858074
10 0.367879450
0.746824980
10
output
0.699999988 2.59999990
11
BINARY SEARCH
PROGRAM binary_search
IMPLICIT NONE
INTEGER, PARAMETER :: MM=20
INTEGER, DIMENSION(1:MM) :: AA
INTEGER :: N,I,J,x,iu,il,im
WRITE(*,*)'No of elements in the array'
READ(*,*) N
WRITE(*,*)'Type in the list'
DO I=1,N
READ(*,*)AA(I)
END DO
WRITE(*,*)'Search for'
READ(*,*)x
iu=1
il=N
im=(iu+il)/2
DO
IF (il<iu) THEN
WRITE(*,*)x,'not found in the list'
STOP
ENDIF
im=(iu+il)/2
IF (AA(im)==x) THEN
WRITE(*,*)x,'is found in the list at',im
STOP
ENDIF
IF (AA(im)>x) THEN
il=im-1
ELSE
iu=im+1
ENDIF
END DO
output...
BUBBLE SORT
PROGRAM bubble_sort
IMPLICIT NONE
INTEGER, PARAMETER :: MM=20
INTEGER, DIMENSION(1:MM) :: AA
INTEGER :: N,I,J,K,x,y
WRITE(*,*)'type in the number of elements'
READ(*,*)N
WRITE(*,*)'read in the list to be sorted'
DO I=1,N
READ(*,*)AA(I)
END DO
DO I=1,N-1
K=I
DO J=I+1,N-1
IF (AA(J)>AA(K)) THEN
K=J
ENDIF
END DO
IF (K/=I) THEN
x=AA(I)
AA(I)=AA(K)
AA(K)=x
ENDIF
END DO
WRITE(*,*)(AA(I),I=1,N)
END PROGRAM bubble_sort
outpu..
GAUSS ELIMINATION
PROGRAM ELMN
IMPLICIT NONE
real,allocatable,dimension(:,:) :: a
real,allocatable,dimension(:) :: x
real :: temp1,temp2,sum
integer ::n,k,i,j
write(*,*) 'no. of eqn'
read (*,*) n
allocate (a(1:n,1:n+1))
allocate (x(1:n))
write(*,*)'enter coeff'
do i=1,n
read(*,*)(a(i,j),j=1,n+1)
enddo
do k=1,n-1
temp1= a(k,k)
if(temp1==0)then
write(*,*)' 0 division'
stop
do i= k+1,n
temp2= a(i,k)/temp1
do j=k ,n+1
a(i,j)=a(i,j)-temp2*(a(k,j))
enddo
enddo
endif
enddo
x(n) = a(n,n+1)/a(n,n)
do i=n-1,1,-1
sum=0.0
do j=i+1,n
sum= sum+a(i,j)*x(j)
enddo
x(i) = (a(i,n+1)-sum)/a(i,i)
end do
write(*,*)'soln'
do i=1,n
write(*,*)i,x(i)
enddo
END PROGRAM ELMN
output ..........................................................................
no. of eqn
3
enter coeff
10 -1 -2 4
1 10 -1 3
2 3 20 7
soln
1 0.503499985
2 0.335000008
3 0.349999994