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

📄 sub output.for

📁 非线性回归问题SQP解法
💻 FOR
字号:
	SUBROUTINE OUTPUT(N,ME,MI,M,NAMAX,X,U,OFUN,CFUN,OGRA,CGRA,
     *			LGRA,PPRA,PFUN,INDEX,QPINDX,IT,NQP,NF,NG,ITQP)
	DOUBLE PRECISION X(N),U(M),OFUN,CFUN(M),OGRA(N),CGRA(NAMAX,M),
     *		LGRA(N),PPRA,PFUN
	INTEGER QPINDX
	WRITE(6,100)
100	FORMAT(//'',55('*')/'','*',14X,'COMPUTATIONAL RESULTS',14X,
     *		'*'/'',55('*'))
	IF (INDEX.EQ.0)THEN
		WRITE(6,110)
110		FORMAT(/'OPTIMAL SOLUTION:')
	ELSEIF(INDEX.EQ.1)THEN
		WRITE(6,120)
120		FORMAT(/'INDEX=1---'
     *			/'KUHN-TUCKER CONDITIONS ARE SATISFIED WITH DESIRABLE'
     *			/'ACCURACY,BUT THE AMOUNT OF DECREASE IN THE PENALTY'
     *		   /'FUNCTION VALUE IS STILL LARGE AFTER ITERATION LIMIT')
	ELSEIF(INDEX.EQ.2)THEN
		WRITE(6,130)
130		FORMAT(/'INDEX=2---'
     *	    /'THE AMOUNT OF DECREASE IN THE PENALTY FUNCTION VALUE'
     *		/'IS SUFFICIENTLT SMALL,BUT KUHN-TUCKER CONDITIONS HAVE'
     *		/'NOT BEEN SATISFIED WITH DESIRABLE ACCURACY AFTER'
     *		/'ITERATION LIMIT')
	ELSEIF(INDEX.EQ.3)THEN
		WRITE(6,140)
140		FORMAT(/'INDEX=3---'
     *		/'NOT ONLY THE AMOUNT OF DECREASES IN PENALTY FUNCTION' 
     *		/'VALUE IS STILL LARGE BUT ALSO KUHN-TUCKER CONDITIONS'
     *		/'ARE NOT SATISFIED WITH DESIRABLE ACCURACY AFTER'
     * 		/'ITERATION LIMIT')
	ELSEIF(INDEX.EQ.4)THEN
		WRITE(6,150)
150		FORMAT(/'INDEX=4---'
     *		/'THE GENERATED SEQUENCE IS REGARDED AS DIVERGENT')
	ELSEIF(INDEX.EQ.5)THEN
		WRITE(6,160)IT
160		FORMAT(/'INDEX=5---'
     *		/'THE ALGORITHM HAS BEEN TERMINATED SINCE THE CHANGE'
     *		/'IN SUCCESSIVE VALUES OF THE VARIABLES BECAME TOO SMALL'
     *		/'AT ITERATION',I5)
	ELSE
		WRITE(6,170)IT,QPINDX
170		FORMAT(/'INDEX=6---'
     *		/'FAILURE OCCURS IN SOLVING QP SUBPROBLEM'
     *		/'AT ITERATION',I5
     *		/'ERROR CODE*QPINDX=',I2)
	ENDIF
	WRITE(6,180)OFUN
180	FORMAT(/'OBJECTIVE FUNCTION=',F12.5)
	WRITE(6,190)PFUN,PPRA
190	FORMAT('PENALTY FUNCTION =',F12.5
     *		/'(PENALTY PARAMETER =',F12.5,')')
	DO 1 J=1,N
		LGRA(J)=OGRA(J)
		DO 1 I=1,M
			LGRA(J)=LGRA(J)-U(I)*CGRA(J,I)
1	CONTINUE
	WRITE(6,200)
200	FORMAT(/'VARIABLES:',14X,'(GRADIENT OF LAGRANGIAN:)')
	DO 2 J=1,N
		WRITE(6,210)J,X(J),LGRA(J)
210		FORMAT('X(',I3,')=',F12.5,5X,'(',F12.5,')')
2	CONTINUE
	IF (ME.EQ.0)THEN
		WRITE(6,220)
220		FORMAT(/'PROBLEM CONTAINS NO EQUALITY CONSTRAINT')
		GOTO 4
	ENDIF
	WRITE(6,230)
230	FORMAT(/'EQUALKITY CONSTRAINTS:',4X,'LAGRANGE MULTIPLIERS:')
	DO 3 I=1,ME
		WRITE(6,240)I,CFUN(I),I,U(I)
240		FORMAT('C(',I3,')=',F12.5,7X,'U(',I3,')=',F12.5)
3	CONTINUE
4	IF (MI.EQ.0)THEN
		WRITE(6,250)
250		FORMAT(/'PROBLEM CONTAINS NO INEQUALITY CONSTRAINT')
		GOTO 6
	ENDIF
	WRITE(6,260)
260	FORMAT(/'INEQUALITY CONSTRAINTS:',3X,'LAGRANGE MULTIPLIERS:')
	DO 5 I=ME+1,ME+MI
		WRITE(6,240)I,CFUN(I),I,U(I)
5	CONTINUE
6	WRITE(6,270)IT
270	FORMAT(/'MUNBER OF MAJOR ITERATIONS =',I5)
	WRITE(6,280)NQP
280	FORMAT(/'NUMBER OF QP PROBLEMS SOLVED =',I5)
	WRITE(6,290)ITQP
290	FORMAT(/'MUNBER OF QP ITERATIONS =',I5)
	WRITE(6,300)NF
300	FORMAT(/'MUNBER OF FUNCTION VALUES =',I5)
	WRITE(6,310)NG
310	FORMAT(/'MUNBER OF GRADIENT VALUES =',I5)
	END

⌨️ 快捷键说明

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