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

📄 fr.for

📁 优化算法,是FORTRUN语言写。都经过了运行。
💻 FOR
字号:
	SUBROUTINE FR(X,Y,FY,GX,N,IMOS,ICOVG,TL,IT)
	DIMENSION X(N),Y(N),GX(N),S(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=0.001
	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 10 I=1,N
	S(I)=DELG(I)
10	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)
	GXN0=GXN
	GXN=0.0	
	DO 50 I=1,N
	DELG(I)=-GX(I)
	GXN=GXN+GX(I)*GX(I)
50	X(I)=Y(I)
	FX=FY
	GXN=SQRT(GXN)
	GO TO 1
90	R=GXN*GXN/(GXN0*GXN0)
	SN=0.0
	GS=0.0	
	DO 51 I=1,N
	S(I)=DELG(I)+R*S(I)
	SN=SN+S(I)*S(I)
	GS=GS+GX(I)*S(I)
51	GX(I)=S(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 + -