|
SUBROUTINE FCN03(N,X,F)
C
C POWELL"S BADLY SCALED FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
F=(1.E4*X(1)*X(2)-1.)**2 + (EXP(-X(1))+EXP(-X(2))-1.0001)**2
RETURN
END
SUBROUTINE FCN04(N,X,F)
C
C BROWN BADLY SCALED FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
F=(X(1)-1.E6)**2 + (X(2)-2.E-6)**2 + (X(1)*X(2)-2.)**2
RETURN
END
SUBROUTINE FCN05(N,X,F)
C
C BEALE FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
F=(1.5-1.0*X(1)*(1.-1.0*X(2)))**2
+ + (2.25 -1.0*X(1)*(1.-1.0*X(2)*X(2)))**2
+ + (2.625-1.0*X(1)*(1.-1.0*X(2)*X(2)*X(2)))**2
RETURN
END
SUBROUTINE FCN07(N,X,F)
C
C HELICAL VALLEY FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
PI=3.1415926535898
IF(X(1).GT. 0.) TH= (1./(2.*PI)) * ATAN(X(2)/X(1))
IF(X(1).LT. 0.) TH= (1./(2.*PI)) * ATAN(X(2)/X(1)) + .5
F=100.*(X(3)-10.*TH)**2
+ +100.*(SQRT(X(1)**2 + X(2)**2)-1.)**2
+ + X(3)*X(3)
RETURN
END
SUBROUTINE FCN09(N,X,F)
C
C GAUSSIAN FUNCTION
C
DIMENSION X(N),Y(15)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
Y(1)=.0009
Y(2)=.0044
Y(3)=.0175
Y(4)=.0540
Y(5)=.1295
Y(6)=.2420
Y(7)=.3521
Y(8)=.3989
Y(9)= Y(7)
Y(10)=Y(6)
Y(11)=Y(5)
Y(12)=Y(4)
Y(13)=Y(3)
Y(14)=Y(2)
Y(15)=Y(1)
G=0.
DO 10 I=1,15
G=G + (X(1)*EXP( -X(2)*((8.-I)/2.-X(3))**2/2.) - Y(I))**2
10 CONTINUE
F=G
RETURN
END
SUBROUTINE FCN12(N,X,F)
C
C BOX 3-DIMENSIONAL FUNCTION(N,X,F)
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
DO 10 I=1,N
T=I/10.
G=G + (EXP(-T*X(1)) - EXP(-T*X(2))
+ - X(3)*(EXP(-T)-EXP(-10.*T)))**2
10 CONTINUE
F=G
RETURN
END
SUBROUTINE FCN14(N,X,F)
C
C WOOD FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
F=100.*(X(2)-X(1)*X(1))**2 + (1.-X(1))**2
+ + 90.*(X(4)-X(3)*X(3))**2 + (1.-X(3))**2
+ +10.1*( (1.-X(2))**2 + (1.-X(4))**2)
+ +19.8*(1.-X(2))*(1.-X(4))
RETURN
END
SUBROUTINE GFCN14(N,X,G)
C
C WOOD FUNCTION FIRST DERIVATIVE
C
INTEGER N
C INPUT. LENGTH OF X AND G. MUST EQUAL 4.
C
REAL X(N)
C INPUT. PARAMETER VECTOR.
C
REAL G(N)
C OUTPUT. GRADIENT VECTOR.
C
COMMON/COUNT/IFCNT,IGCNT,IHCNT
C
C BODY OF ROUTINE
C
IGCNT = IGCNT + 1
C
FACT1 = X(1)*X(1) - X(2)
FACT2 = X(3)*X(3) - X(4)
C
G(1) = 400.0*FACT1*X(1) - 2.0*(1.0 - X(1))
C
G(2) = -200.0*FACT1 - 20.2*(1.0 - X(2)) - 19.8*(1.0 - X(4))
C
G(3) = 360.0*FACT2*X(3) - 2.0*(1.0 - X(3))
C
G(4) = -180.0*FACT2 - 20.2*(1.0 - X(4)) - 19.8*(1.0 - X(2))
C
RETURN
END
SUBROUTINE HFCN14 (NR,N,X,H)
C
C WOOD FUNCTION SECOND DERIVATIVE
C
INTEGER NR
C INPUT. FIRST DIMENSION OF H.
C
INTEGER N
C INPUT. LENGTH OF X. DIMENSION OF H. MUST EQUAL 4.
C
REAL X(N)
C INPUT. PARAMETER VECTOR.
C
REAL H(NR, N)
C OUTPUT. HESSIAN MATRIX.
C
COMMON /COUNT/ IFCNT, IGCNT, IHCNT
C
C BODY OF ROUTINE
C
IHCNT = IHCNT + 1
C
H(1, 1) = 1200.0*X(1)*X(1) - 400.0*X(2) + 2.0
H(2, 1) = -400.0*X(1)
H(3, 1) = 0.0
H(4, 1) = 0.0
H(2, 2) = 220.2
H(3, 2) = 0.0
H(4, 2) = 19.8
H(3, 3) = 1080.0*X(3)*X(3) - 360.0*X(4) + 2.0
H(4, 3) = -360.0*X(3)
H(4, 4) = 200.2
C
DO 20 IR = 1, 3
IR1 = IR + 1
DO 10 IC = IR1, 4
H(IR, IC) = H(IC, IR)
10 CONTINUE
20 CONTINUE
RETURN
END
SUBROUTINE FCN16(N,X,F)
C
C BROWN + DENNIS FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
DO 10 I=1,20
T=I/5.
G=G + ((X(1)+T*X(2)-EXP(T))**2
+ + (X(3)+X(4)*SIN(T)-COS(T))**2 )**2
10 CONTINUE
F=G
RETURN
END
SUBROUTINE FCN18(N,X,F)
C
C BIGGS EXP6 FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
DO 10 I=1,13
T=I/10.
G=G + (X(3)*EXP(-T*X(1))-X(4)*EXP(-T*X(2))
+ + X(6)*EXP(-T*X(5))-EXP(-T)+5.*EXP(-10.*T)
+ - 3.*EXP(-4.*T) )**2
10 CONTINUE
F=G
RETURN
END
SUBROUTINE FCN20(N,X,F)
C
C WATSON FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
DO 40 I=1,29
T=I/29.
SUM=0.
S=1.
DO 20 J=2,N
SUM=SUM + (J-1)*X(J)*S
S=T*S
20 CONTINUE
SUM2=0.
S=1.
DO 30 J=1,N
SUM2=SUM2 + X(J)*S
S=T*S
30 CONTINUE
G=G + (SUM - SUM2*SUM2 - 1.)**2
40 CONTINUE
G=G + X(1)*X(1) + (X(2)-X(1)**2-1.)**2
F=G
RETURN
END
SUBROUTINE FCN21(N,X,F)
C
C EXTENDED ROSENBROCK FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
J=N/2
DO 10 I=1,J
G=G+ 100.*(X(2*I)- X(2*I-1)**2)**2 + (1.-X(2*I-1))**2
10 CONTINUE
F=G
RETURN
END
SUBROUTINE GFCN21(N,X,G)
C
C UNEXTENDED ROSENBROCK FUNCTION FIRST DERIVATIVE
C
INTEGER N
C INPUT. LENGTH OF X AND G. MUST EQUAL 2.
C
REAL X(N)
C INPUT. PARAMETER VECTOR.
C
REAL G(N)
C OUTPUT. GRADIENT VECTOR.
C
COMMON/COUNT/IFCNT,IGCNT,IHCNT
C
C BODY OF ROUTINE
C
IGCNT = IGCNT + 1
C
FACT1 = X(1)*X(1) - X(2)
C
G(1) = 400.0*FACT1*X(1) - 2.0*(1.0 - X(1))
C
G(2) = -200.0*FACT1
C
RETURN
END
SUBROUTINE HFCN21 (NR,N,X,H)
C
C WOOD FUNCTION SECOND DERIVATIVE
C
INTEGER NR
C INPUT. FIRST DIMENSION OF H.
C
INTEGER N
C INPUT. LENGTH OF X. DIMENSION OF H. MUST EQUAL 2.
C
REAL X(N)
C INPUT. PARAMETER VECTOR.
C
REAL H(NR, N)
C OUTPUT. HESSIAN MATRIX.
C
COMMON /COUNT/ IFCNT, IGCNT, IHCNT
C
C BODY OF ROUTINE
C
IHCNT = IHCNT + 1
C
H(1, 1) = 1200.0*X(1)*X(1) - 400.0*X(2) + 2.0
H(2, 1) = -400.0*X(1)
H(2, 2) = 200.0
C
DO 20 IR = 1, 1
IR1 = IR + 1
DO 10 IC = IR1, 2
H(IR, IC) = H(IC, IR)
10 CONTINUE
20 CONTINUE
RETURN
END
SUBROUTINE FCN22(N,X,F)
C
C EXTENDED POWELL SINGULAR FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
J=N/4
DO 10 I=1,J
G=G + (X(4*I-3) + 10.*X(4*I-2))**2
+ + 5.*(X(4*I-1) - X(4*I))**2
+ + ( (X(4*I-2)-2.*X(4*I-1))**2)**2
+ + 10.*( (X(4*I-3)-X(4*I))**2)**2
10 CONTINUE
F=G
RETURN
END
SUBROUTINE GFCN22(N,X,G)
C
C UNEXTENDED POWELL FUNCTION FIRST DERIVATIVE
C
INTEGER N
C INPUT. LENGTH OF X AND G. MUST EQUAL 4.
C
REAL X(N)
C INPUT. PARAMETER VECTOR.
C
REAL G(N)
C OUTPUT. GRADIENT VECTOR.
C
COMMON/COUNT/IFCNT,IGCNT,IHCNT
C
C BODY OF ROUTINE
C
IGCNT = IGCNT + 1
C
FACT1 = X(1) - X(4)
FACT1 = FACT1*FACT1*FACT1
FACT2 = X(2) - 2.0*X(3)
FACT2 = FACT2*FACT2*FACT2
C
G(1) = 2.0*(X(1) + 10.0*X(2)) + 40.0*FACT1
C
G(2) = 20.0*(X(1) + 10.0*X(2)) + 4.0*FACT2
C
G(3) = 10.0*(X(3) - X(4)) - 8.0*FACT2
C
G(4) = -10.0*(X(3) - X(4)) - 40.0*FACT1
C
RETURN
END
SUBROUTINE HFCN22 (NR,N,X,H)
C
C POWELLS FUNCTION SECOND DERIVATIVE
C
INTEGER NR
C INPUT. FIRST DIMENSION OF H.
C
INTEGER N
C INPUT. LENGTH OF X. DIMENSION OF H. MUST EQUAL 4.
C
REAL X(N)
C INPUT. PARAMETER VECTOR.
C
REAL H(NR, N)
C OUTPUT. HESSIAN MATRIX.
C
COMMON /COUNT/ IFCNT, IGCNT, IHCNT
C
C BODY OF ROUTINE
C
IHCNT = IHCNT + 1
C
FACT1 = X(1) - X(4)
FACT2 = X(2) - X(3)
C
H(1, 1) = 2.0 + 120.0*FACT1*FACT1
H(2, 1) = 20.0
H(3, 1) = 0.0
H(4, 1) = -120.0*FACT1*FACT1
H(2, 2) = 200.0 + 12.0*FACT2*FACT2
H(3, 2) = -24.0*FACT2*FACT2
H(4, 2) = 0.0
H(3, 3) = 10.0 + 48.0*FACT2*FACT2
H(4, 3) = -10.0
H(4, 4) = 10.0 + 120.0*FACT1*FACT1
C
DO 20 IR = 1, 3
IR1 = IR + 1
DO 10 IC = IR1, 4
H(IR, IC) = H(IC, IR)
10 CONTINUE
20 CONTINUE
RETURN
END
SUBROUTINE FCN23(N,X,F)
C
C PENALTY FUNCTION I
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
DO 20 I=1,N
G=G + (1.E-5) * (X(I)-1.)**2
20 CONTINUE
SUM=0.
DO 30 J=1,N
SUM=SUM + X(J)*X(J)
30 CONTINUE
G=G + (SUM-.25)**2
F=G
RETURN
END
SUBROUTINE FCN24(N,X,F)
C
C PENALTY FUNCTION II
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=(X(1)-.2)**2
DO 10 I=2,N
T=EXP(I/10.) + EXP((I-1)/10.)
G=G + 1.E-5* (EXP(X(I)/10.) + EXP(X(I-1)/10.) - T)**2
10 CONTINUE
M1=N+1
M2=2*N-1
DO 20 I=M1,M2
G=G + 1.E-5* (EXP(X(I-N+1)/10.) - EXP(1./10.))**2
20 CONTINUE
SUM=0.
DO 30 J=1,N
SUM=SUM + (N-J+1)*X(J)*X(J)
30 CONTINUE
G=G + (SUM-1.)**2
F=G
RETURN
END
SUBROUTINE FCN25(N,X,F)
C
C VARIABLY DIMENSIONED FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
DO 10 I=1,N
G=G + (X(I)-1.)**2
10 CONTINUE
S=0.
DO 20 I=1,N
S=S + I*(X(I)-1.)
20 CONTINUE
G=G + S*S + (S*S)**2
F=G
RETURN
END
SUBROUTINE FCN26(N,X,F)
C
C TRIGONOMETRIC FUNCTION
C
DIMENSION X(N)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
G=0.
SUM=0.
DO 10 J=1,N
SUM=SUM + COS(X(J))
10 CONTINUE
DO 20 I=1,N
G=G+ (N-SUM + I*(1.-COS(X(I))) - SIN(X(I)) )**2
20 CONTINUE
F=G
RETURN
END
SUBROUTINE FCN35(N,X,F)
C
C CHEBYQUAD FUNCTION
C
DIMENSION X(N)
C WORK ARRAYS PASSED THRU COMMON DIMENSIONED .GE. N
COMMON Y1(100),Y2(100),Y3(100)
COMMON/COUNT/IFCNT,IGCNT,IHCNT
IFCNT=IFCNT+1
C
SUM=0.
DO 10 J=1,N
Y1(J)=2.*X(J)-1.
SUM=SUM+Y1(J)
10 CONTINUE
G=(SUM/N)**2
C
SUM=0.
DO 20 J=1,N
Y2(J)=2.*(2.*X(J)-1.)*Y1(J)-1.
SUM=SUM+Y2(J)
20 CONTINUE
G=G+ (SUM/N + 1./3.)**2
C
SUM=0.
DO 30 J=1,N
Y3(J)=2.*(2.*X(J)-1.)*Y2(J)-Y1(J)
SUM=SUM+Y3(J)
30 CONTINUE
G=G+(SUM/N)**2
C
DO 40 I=4,N
C I-TH COMPONENT
SUM=0.
DO 35 J=1,N
Y1(J)=Y2(J)
Y2(J)=Y3(J)
Y3(J)=2.*(2.*X(J)-1.)*Y3(J)-Y1(J)
SUM=SUM+Y3(J)
35 CONTINUE
K=MOD(I,2)
IF(K.EQ.1) G=G+(SUM/N)**2
IF(K.EQ.0) G=G+(SUM/N + 1./(I*I-1))**2
40 CONTINUE
F=G
RETURN
END
|