! PROGRAM FALSE POSITION METHOD
WRITE(*,*)'GIVE THE INITIAL GUESS VALUES'
READ(*,*)X1,X2
WRITE(*,*)'GIVE THE ERROR ALLOWED VALUE'
READ(*,*)ER
FX1=F(X1)
FX2=F(X2)
FP=FX1*FX2
WRITE(*,10)FP
10 FORMAT(5X,E8.6)
IF(FP.GT.0.0) GO TO 100
15 X3=(X1*FX2-X2*FX1)/(FX2-FX1)
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**4+5*X**3-2*X**2-3*X-10
RETURN
END
WRITE(*,*)'GIVE THE INITIAL GUESS VALUES'
READ(*,*)X1,X2
WRITE(*,*)'GIVE THE ERROR ALLOWED VALUE'
READ(*,*)ER
FX1=F(X1)
FX2=F(X2)
FP=FX1*FX2
WRITE(*,10)FP
10 FORMAT(5X,E8.6)
IF(FP.GT.0.0) GO TO 100
15 X3=(X1*FX2-X2*FX1)/(FX2-FX1)
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**4+5*X**3-2*X**2-3*X-10
RETURN
END
No comments:
Post a Comment