Program Bisection: X X X X F
Program Bisection: X X X X F
BISECTION
XL = -5 ; XU = 0
TOLERANSI
NEWTON-RAPHSON
Xo = -5
MODIFIED NEWTON-RAPHSON
Xo = -5
ITERASI
AKAR
ITERASI
AKAR
ITERASI
AKAR
6
9
13
16
19
23
26
29
-1.484375
-1.41601563
-1.41418457
-1.41426086
-1.41421318
-1.41421378
-1.41421355
-1.41421356
5
5
6
6
7
7
7
7
-1.41425073
-1.41425073
-1.41421356
-1.41421356
-1.41421356
-1.41421356
-1.41421356
-1.41421356
3
4
4
4
5
5
5
5
-1.41426138
-1.41421356
-1.41421356
-1.41421356
-1.41421356
-1.41421356
-1.41421356
-1.41421356
0.1
0.01
0.001
0.0001
0.00001
0.000001
0.0000001
0.00000001
100
80
60
40
20
0
-4
-3
-2
-1
0
-20
-40
-60
PROGRAM BISECTION
$DEBUG
*
*
*
*
*
*
*
*
*
*
*
*
PROGRAM BISECTION
DEFINITION OF VARIABLES
XL
XU
XR
ES
EA
MAXIT
ITER
=
=
=
=
=
=
=
LOWER GUESS
UPPER GUESS
ROOT ESTIMATE
STOPPING CRITERION (%)
APPROXIMATE ERROR (%)
MAXIMUM ITERATIONS
NUMBER OF ITERATION
REAL*8
Y,X,XL,XU,ES,CHECK,EA,XR,TEST
INTEGER
MAXIT,ITER
CHARACTER JAWAB
C
C
C
Y(X)=X**3-5*X**2-2*X+10
Y(X)=(X*X*X)-155
20 WRITE(*,'(/A\)')'
READ(*,*)XL
WRITE(*,'(A\)') '
READ(*,*)XU
WRITE(*,'(A\)') '
READ(*,*)MAXIT
WRITE(*,'(A\)') '
READ(*,*)ES
WRITE(*,'(A\)') '
READ(*,*)ES
(XU) : '
IF (CHECK.GT.0) THEN
WRITE(*,04)
GOTO 20
ELSE
GOTO 30
ENDIF
30 ITER=0
EA=1.1*ES
EA=ES+1.0
10 IF (EA.GT.ES.AND.ITER.LT.MAXIT) THEN
XR=0.5*(XL+XU)
ITER=ITER+1
C
IF (XL+XU.NE.0.0) THEN
EA=ABS((XU-XL)/(XL+XU))*100.0
EA=ABS(XR-XL)
ENDIF
WRITE(*,*)'XL : ',XL,'
TEST=Y(XL)*Y(XR)
: '
: '
CHECK=Y(XL)*Y(XU)
: '
XR : ',XR
IF (TEST.EQ.0.0) THEN
EA=0.0
ELSE
IF (TEST.LT.0.0) THEN
WRITE(*,*)'XU'
XU=XR
ELSE
WRITE(*,*)'XL'
XL=XR
ENDIF
ENDIF
GOTO 10
ENDIF
C
C
WRITE(*,01)ITER
WRITE(*,02)XR
WRITE(*,03)EA
IF (EA.GT.ES) THEN
WRITE(*,05)
ELSE
WRITE(*,06)
ENDIF
WRITE(*,07)
READ(*,'(A)')JAWAB
IF (JAWAB.EQ.'y'.OR.JAWAB.EQ.'Y') THEN
GOTO 20
ELSE
PRINT *
STOP
ENDIF
****** FORMAT ******
PROGRAM NEWTON_RAPHSON_METHODS
*
*
*
*
*
*
*
*
*
*
*
C
C
=
=
=
=
=
=
INITIAL APPROXIMATION
FIRST DERIVATIVE
SECOND DERIVATIVE
X(i)
TOLERANCE
NUMBER OF ITERATION
REAL*8 X,XI,T,TOL
INTEGER I,N
CHARACTER JAWAB
F(X)=X**3-5*X**2-2*X+10
G(X)=3*X**2-10*X-2
F(X)=X**3-155
G(X)=3*X**2
50 WRITE(*,*)
WRITE(*,1)
WRITE(*,*)' PROGRAM NEWTON-RAPHSON METHODS'
WRITE(*,1)
WRITE(*,'(/A\)')' INPUT Xo = '
READ(*,*)X
WRITE(*,'(A\)')' TOLERANSI = '
READ(*,*)TOL
WRITE(*,'(A\)')' ITERASI
= '
READ(*,*)N
WRITE(*,*)
WRITE(*,2)
WRITE(*,3)
WRITE(*,4)
DO 100 I=1,N
XI=X-(F(X)/G(X))
T=ABS(XI-X)
WRITE(*,5)I,F(X),G(X),XI
IF (T.LT.TOL) GOTO 200
X=XI
100 CONTINUE
200 WRITE(*,4)
WRITE(*,6)
WRITE(*,7)XI
WRITE(*,8)T
WRITE(*,4)
WRITE(*,9)
READ(*,'(A)')JAWAB
IF (JAWAB.EQ.'y'.OR.JAWAB.EQ.'Y') THEN
GOTO 50
ELSE
PRINT *
STOP
ENDIF
****** FORMAT ******
1
2
3
4
5
6
7
8
9
FORMAT(1X,32('-'))
FORMAT(1X,48('-'))
FORMAT(2X,'ITERASI',6X,'F(X)',10X,'G(X)',10X,'X(i)')
FORMAT(1X,48('-'))
FORMAT(2X,I4,4X,F10.4,4X,F10.4,4X,F10.4)
FORMAT(1X,' FINAL SOLUTION : ')
FORMAT(1X,'
X
= ',F16.8)
FORMAT(1X,'
(X-XI)
= ',F16.8/)
FORMAT(/1X,'INGIN ULANGI PERHITUNGAN (Y/T) ? '\)
STOP
END
PROGRAM MODIFIED_NEWTON_RAPHSON_METHODS
*
*
*
*
*
*
*
*
*
*
*
=
=
=
=
=
=
INITIAL APPROXIMATION
FIRST DERIVATIVE
SECOND DERIVATIVE
X(i)
TOLERANCE
NUMBER OF ITERATION
REAL*8 X,F1,F2,A,B,XI,T,TOL
INTEGER I,N
CHARACTER JAWAB
C
F(X)=X**3-5*X**2-2*X+10
F(X)=X**3-155
50 WRITE(*,*)
WRITE(*,1)
WRITE(*,*)' PROGRAM MODIFIED NEWTON-RAPHSON METHODS'
WRITE(*,1)
WRITE(*,'(/A\)')' INPUT Xo = '
READ(*,*)X
WRITE(*,'(A\)')' TOLERANSI = '
READ(*,*)TOL
WRITE(*,'(A\)')' ITERASI
= '
READ(*,*)N
WRITE(*,*)
WRITE(*,2)
WRITE(*,3)
WRITE(*,4)
DO 100 I=1,N
F1=(1/6.0)*(-F(X-0.3)+9*F(X-0.2)-45*F(X-0.1)
+
+45*F(X+0.1)-9*F(X+0.2)+F(X+0.3))
F2=(1/1.8)*(2*F(X-0.3)-27*F(X-0.2)+270*F(X-0.1)
+
-490*F(X)+270*F(X+0.1)-27*F(X+0.2)+2*F(X+0.3))
A=F2/(2*F1)
B=F1/F(X)
XI=X+(1/(A-B))
T=ABS(XI-X)
WRITE(*,5)I,F1,F2,XI
IF (T.LT.TOL) GOTO 200
X=XI
100 CONTINUE
200 WRITE(*,4)
WRITE(*,6)
WRITE(*,7)XI
WRITE(*,8)T
WRITE(*,4)
WRITE(*,9)
READ(*,'(A)')JAWAB
IF (JAWAB.EQ.'y'.OR.JAWAB.EQ.'Y') THEN
GOTO 50
ELSE
PRINT *
STOP
ENDIF
****** FORMAT ******
1
2
3
4
5
6
7
8
9
FORMAT(1X,41('-'))
FORMAT(1X,48('-'))
FORMAT(2X,'ITERASI',5X,'F1(X)',9X,'F2(X)',10X,'X(i)')
FORMAT(1X,48('-'))
FORMAT(2X,I4,4X,F10.4,4X,F10.4,4X,F10.4)
FORMAT(1X,' FINAL SOLUTION : ')
FORMAT(1X,'
X
= ',F16.8)
FORMAT(1X,'
(X-XI)
= ',F16.8/)
FORMAT(/1X,'INGIN ULANGI PERHITUNGAN (Y/T) ? '\)
STOP
END