! BISECTION METHOD
WRITE(*,*)'VALUES OF X1,X2'
READ (*,*)X1,X2
WRITE(*,*)'ENTER ERROR YOU WANT'
READ(*,*)ER
FX1=F(X1)
WRITE(*,10)FX1
FX2=F(X2)
WRITE(*,10)FX2
10 FORMAT(F8.3)
FP=FX1*FX2
IF (FP.GT.0) GO TO 100
15 X3=(X1+X2)/2
FX3=F(X3)
IF (ABS(FX3).LE.ER) THEN
WRITE (*,20)X3
20 FORMAT(5X,'THE ROOT IS='F8.4)
WRITE(*,30)FX3
30 FORMAT(5X,'THE VALUE OF FUNCTION AT ROOT',F8.4)
GO TO 200
ELSE
FP=FX1*FX3
WRITE(*,*)FP
IF (FP.LT.0)THEN
X2=X3
FX2=FX3
GO TO 15
ELSE
X1=X3
FX1=FX3
GO TO 15
ENDIF
ENDIF
GO TO 200
100 WRITE(*,*)'THE ROOT DOES NOT LIE IN THE INTERVAL'
200 STOP
END
FUNCTION F(X)
F=X**3-5*X+3
RETURN
END
WRITE(*,*)'VALUES OF X1,X2'
READ (*,*)X1,X2
WRITE(*,*)'ENTER ERROR YOU WANT'
READ(*,*)ER
FX1=F(X1)
WRITE(*,10)FX1
FX2=F(X2)
WRITE(*,10)FX2
10 FORMAT(F8.3)
FP=FX1*FX2
IF (FP.GT.0) GO TO 100
15 X3=(X1+X2)/2
FX3=F(X3)
IF (ABS(FX3).LE.ER) THEN
WRITE (*,20)X3
20 FORMAT(5X,'THE ROOT IS='F8.4)
WRITE(*,30)FX3
30 FORMAT(5X,'THE VALUE OF FUNCTION AT ROOT',F8.4)
GO TO 200
ELSE
FP=FX1*FX3
WRITE(*,*)FP
IF (FP.LT.0)THEN
X2=X3
FX2=FX3
GO TO 15
ELSE
X1=X3
FX1=FX3
GO TO 15
ENDIF
ENDIF
GO TO 200
100 WRITE(*,*)'THE ROOT DOES NOT LIE IN THE INTERVAL'
200 STOP
END
FUNCTION F(X)
F=X**3-5*X+3
RETURN
END
No comments:
Post a Comment