⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dfpbfs.for

📁 优化算法,是FORTRUN语言写。都经过了运行。
💻 FOR
字号:
	SUBROUTINE DFPBFS(X,Y,FY,GX,N,IMOS,ICOVG,TL,IT)
	DIMENSION X(N),Y(N),GX(N),H(20,20),DELX(20),DELG(20)
	IF(IT.GT.0) GO TO 151
	TL=0.0001
151	ITER=0
	ICOVG=0
	ER1=0.01
	ER2=0.001
	ET1=0.001
	ET2=10.
	IRESET=N+1
	INDEX=IRESET
	CALL OBF(X,FX)
	CALL DER(X,GX)
	GXN=0.0
	DO 2 I=1,N
	DELG(I)=GX(I)
2	GXN=GXN+GX(I)*GX(I)
	GXN=SQRT(GXN)
1	IF(GXN.LE.TL) GO TO 60
	IF(ITER.GE.IMOS) GO TO 80
	IF(INDEX.NE.IRESET) GO TO 90
5	INDEX=0
	DO 20 I=1,N
	DO 10 J=1,N
10	H(I,J)=0.0
	H(I,I)=1.0
20	GX(I)=-DELG(I)
130	TD=ET2*GXN
	IF(TD.LT.ET1) GO TO 21
	TD=ET1
21	CALL DSCPOW(X,FX,Y,FY,GX,GX,N,2,TD,1,ITER,IEX)
	IF(IEX.NE.1) GO TO 31
	ICOVG=-1
	RETURN
31	ITER=ITER+1
	INDEX=INDEX+1
	CALL DER(Y,GX)
	GXN=0.0
	DO 50 I=1,N
	GXN=GXN+GX(I)*GX(I)
	DELG(I)=GX(I)-DELG(I)
	DELX(I)=Y(I)-X(I)
	IF(INDEX.NE.IRESET) GO TO 50
	DELG(I)=GX(I)
50	X(I)=Y(I)
	FX=FY
	GXN=SQRT(GXN)
	GO TO 1
90	CALL HDFPBS(H,N,DELG,DELX,IE)
	DO 120 I=1,N
120	DELG(I)=GX(I)
	IF(IE.EQ.-1) GO TO 5
	SN=0.0
	GS=0.0
	DO 100 I=1,N
	GX(I)=0.0
	DO 110 J=1,N
110	GX(I)=GX(I)-H(I,J)*DELG(J)
	GS=GS+GX(I)*DELG(I)
100	SN=SN+GX(I)*GX(I)
	SN=SQRT(SN)
	ER=ER2*GXN
	IF(ER1.GT.ER) GO TO 52
	ER=ER1
52	IF(GS.GT.-ER*GXN*SN) GO TO 5
	GO TO 130
60	ICOVG=1
80	RETURN
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -