我想做一个带时间变量的方程组,a(t+1)=a(t)+b(t)。期望得到的结果是a(t)=t,t属于1到5。
代码如下:
set t /1*5/;
variable a(t)
b(t)
x;
equation eqa(t)
eqb(t)
eqx;
eqa(t).. a(t+1)=e=a(t)+b(t);
eqb(t).. b(t)=e=1;
eqx.. x=e=sum(t,a(t));
a.fx(t)=1
model aa /all/;
Solve aa maximizing x using dnlp;
display a.l;
为何我的不出来正确的结果?
summary如下:
COMPILATION TIME = 0.000 SECONDS 3 Mb WIN238-238 Apr 3, 2012
GAMS Rev 238 WIN-VS8 23.8.2 x86/MS Windows 04/10/15 09:43:32 Page 2
G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m
Equation Listing SOLVE aa Using DNLP From line 13
---- eqa =E=
eqa(1).. - a(1) + a(2) - b(1) =E= 0 ; (LHS = -1, INFES = 1 ****)
eqa(2).. - a(2) + a(3) - b(2) =E= 0 ; (LHS = 0)
eqa(3).. - a(3) + a(4) - b(3) =E= 0 ; (LHS = 0)
REMAINING 2 ENTRIES SKIPPED
---- eqb =E=
eqb(1).. b(1) =E= 1 ; (LHS = 0, INFES = 1 ****)
eqb(2).. b(2) =E= 1 ; (LHS = 0, INFES = 1 ****)
eqb(3).. b(3) =E= 1 ; (LHS = 0, INFES = 1 ****)
REMAINING 2 ENTRIES SKIPPED
---- eqx =E=
eqx.. - a(1) - a(2) - a(3) - a(4) - a(5) + x =E= 0 ; (LHS = -1, INFES = 1 ****)
GAMS Rev 238 WIN-VS8 23.8.2 x86/MS Windows 04/10/15 09:43:32 Page 3
G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m
Column Listing SOLVE aa Using DNLP From line 13
---- a
a(1)
(.LO, .L, .UP, .M = 1, 1, 1, 0)
-1 eqa(1)
-1 eqx
a(2)
(.LO, .L, .UP, .M = -INF, 0, +INF, 0)
1 eqa(1)
-1 eqa(2)
-1 eqx
a(3)
(.LO, .L, .UP, .M = -INF, 0, +INF, 0)
1 eqa(2)
-1 eqa(3)
-1 eqx
REMAINING 2 ENTRIES SKIPPED
---- b
b(1)
(.LO, .L, .UP, .M = -INF, 0, +INF, 0)
-1 eqa(1)
1 eqb(1)
b(2)
(.LO, .L, .UP, .M = -INF, 0, +INF, 0)
-1 eqa(2)
1 eqb(2)
b(3)
(.LO, .L, .UP, .M = -INF, 0, +INF, 0)
-1 eqa(3)
1 eqb(3)
REMAINING 2 ENTRIES SKIPPED
---- x
x
(.LO, .L, .UP, .M = -INF, 0, +INF, 0)
1 eqx
GAMS Rev 238 WIN-VS8 23.8.2 x86/MS Windows 04/10/15 09:43:32 Page 4
G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m
Model Statistics SOLVE aa Using DNLP From line 13
MODEL STATISTICS
BLOCKS OF EQUATIONS 3 SINGLE EQUATIONS 11
BLOCKS OF VARIABLES 3 SINGLE VARIABLES 11
NON ZERO ELEMENTS 25 NON LINEAR N-Z 0
DERIVATIVE POOL 10 CONSTANT POOL 16
CODE LENGTH 0
GENERATION TIME = 0.000 SECONDS 4 Mb WIN238-238 Apr 3, 2012
EXECUTION TIME = 0.000 SECONDS 4 Mb WIN238-238 Apr 3, 2012
GAMS Rev 238 WIN-VS8 23.8.2 x86/MS Windows 04/10/15 09:43:32 Page 5
G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m
Solution Report SOLVE aa Using DNLP From line 13
S O L V E S U M M A R Y
MODEL aa OBJECTIVE x
TYPE DNLP DIRECTION MAXIMIZE
SOLVER CONOPT FROM LINE 13
**** SOLVER STATUS 1 Normal Completion
**** MODEL STATUS 4 Infeasible
**** OBJECTIVE VALUE 0.0000
RESOURCE USAGE, LIMIT 0.000 1000.000
ITERATION COUNT, LIMIT 0 2000000000
EVALUATION ERRORS 0 0
CONOPT 3 Mar 17, 2012 23.8.2 WIN 31442.32372 VS8 x86/MS Windows
C O N O P T 3 version 3.15D
Copyright (C) ARKI Consulting and Development A/S
Bagsvaerdvej 246 A
DK-2880 Bagsvaerd, Denmark
** An equation is inconsistent with other equations in the
pre-triangular part of the model.
Residual= 6.0000000
Tolerance (Rtnwtr)= 2.00000000E-08
The solution order of the critical pretriangular equations is:
Equation eqb(5) solved with respect to
variable b(5). Value = 1
Equation eqb(4) solved with respect to
variable b(4). Value = 1
Equation eqb(3) solved with respect to
variable b(3). Value = 1
Equation eqb(2) solved with respect to
variable b(2). Value = 1
Equation eqb(1) solved with respect to
variable b(1). Value = 1
Equation eqa(5) solved with respect to
variable a(5). Value = -1
Equation eqa(1) solved with respect to
variable a(2). Value = 2
Equation eqa(4) solved with respect to
variable a(4). Value = -2
Equation eqa(2) solved with respect to
variable a(3). Value = 3
Equation eqa(3) solved with respect to the slack
After the last operation the residual is still -6
CONOPT time Total 0.000 seconds
of which: Function evaluations 0.000 = 0.0%
1st Derivative evaluations 0.000 = 0.0%
**** ERRORS/WARNINGS IN EQUATION eqa(3)
1 error(s): Inconsistency in pre-triangular part of model.
---- EQU eqa
LOWER LEVEL UPPER MARGINAL
1 . . . 7.000
2 . . . 9.000
3 . -6.000 . 10.000 INFES
4 . . . 8.000
5 . . . 6.000
---- EQU eqb
LOWER LEVEL UPPER MARGINAL
1 1.000 1.000 1.000 5.000
2 1.000 1.000 1.000 4.000
3 1.000 1.000 1.000 3.000
4 1.000 1.000 1.000 2.000
5 1.000 1.000 1.000 1.000
LOWER LEVEL UPPER MARGINAL
---- EQU eqx . -3.000 . EPS INFES
---- VAR a
LOWER LEVEL UPPER MARGINAL
1 1.000 1.000 1.000 EPS
2 -INF 2.000 +INF 7.000
3 -INF 3.000 +INF 9.000
4 -INF -2.000 +INF 8.000
5 -INF -1.000 +INF 6.000
---- VAR b
LOWER LEVEL UPPER MARGINAL
1 -INF 1.000 +INF 5.000
2 -INF 1.000 +INF 4.000
3 -INF 1.000 +INF 3.000
4 -INF 1.000 +INF 2.000
5 -INF 1.000 +INF 1.000
LOWER LEVEL UPPER MARGINAL
---- VAR x -INF . +INF EPS
**** REPORT SUMMARY : 0 NONOPT
2 INFEASIBLE (INFES)
SUM 9.000
MAX 6.000
MEAN 4.500
0 UNBOUNDED
1 ERRORS ( ****)
GAMS Rev 238 WIN-VS8 23.8.2 x86/MS Windows 04/10/15 09:43:32 Page 6
G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m
E x e c u t i o n
---- 14 VARIABLE a.L
1 1.000, 2 2.000, 3 3.000, 4 -2.000, 5 -1.000
EXECUTION TIME = 0.000 SECONDS 3 Mb WIN238-238 Apr 3, 2012
求问大神,我哪儿做错了?为什么?应该怎么做啊?