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

📄 sub lsearc.for

📁 非线性回归问题SQP解法
💻 FOR
字号:
	SUBROUTINE LSEARC(N,ME,MI,M,X,NEWX,D1,D2,BASIC,OFUN,CFUN,
     *			QPOBJ,PPRA,PFUN,OLDPF,EPS,INDEX,NF)
	DOUBLE PRECISION X(N),NEWX(N),D1(N),D2(N),PPRA,PFUN,NEWPF,OLDPF,
	*          PRED,CFUN(M),D1NORM,MINST,ST,QPOBJ,OFUN,EPS,BETA,GAMMA
	LOGICAL BASIC
	DATA BETA,GAMMA/1.0D-1,1.0D-1/
	D1NORM=0.0D0
	DO 1 J=1,N
		D1NORM=D1NORM+D1(J)*D1(J)
1	CONTINUE
	IF (D1NORM.GT.1.0D0)THEN
		D1NORM=DSQRT(D1NORM)
		MINST=EPS/D1NORM
	ELSE
		MINST=EPS
	ENDIF
	PRED=OFUN+QPOBJ-PFUN
	ST=1.0D0
2	DO 3 J=1,N
		IF (BASIC)THEN
			NEWX(J)=X(J)+ST*D1(J)
		ELSE
			NEWX(J)=X(J)+ST*D1(J)+ST*ST*(D2(J)-D1(J))
		ENDIF
3	CONTINUE
	CALL FVAL(N,ME,MI,M,NEWX,OFUN,CFUN)
	NF=NF+1
	CALL PVAL(ME,MI,M,OFUN,CFUN,PPRA,NEWPF)
	IF (NEWPF.LT.(PFUN+BETA*ST*PRED))GOTO 4
	ST=GAMMA*ST
	IF (ST.GT.MINST)GOTO 2
	INDEX=5
4	OLDPF=PFUN
	PFUN=NEWPF
	IF (BASIC)THEN
		WRITE(6,100)
100		FORMAT('ONE-DEMENSIONAL SEACH-BASIC SEARCH DIRECTION')
	ELSE
		WRITE(6,110)
110		FORMAT('ONE-DEMENSIONAL SEACH-SECOND ORDER SEARCH DIRECTION')
	ENDIF
	WRITE(6,120)D1NORM
120	FORMAT('NORM OF BASIC SEARCH DIRECTION=',F12.5)
	WRITE(6,130)ST
130	FORMAT('STEP-SIZE='F12.5)
	END

⌨️ 快捷键说明

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