QQ登录

只需要一步,快速开始

 注册地址  找回密码
楼主: huashi3483
打印 上一主题 下一主题

[建模教程] 【数学中国推荐】数学建模、算法书籍全收入

[复制链接]
字体大小: 正常 放大
silentdi        

0

主题

2

听众

16

积分

升级  11.58%

该用户从未签到

新人进步奖

111#
发表于 2009-1-17 00:08 |只看该作者
|招呼Ta 关注Ta
回复

使用道具 举报

xiemiao        

1

主题

2

听众

113

积分

升级  6.5%

该用户从未签到

新人进步奖

群组数学趣味、游戏、IQ等

回复

使用道具 举报

0

主题

3

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

回复

使用道具 举报

伏羲        

0

主题

3

听众

84

积分

升级  83.16%

该用户从未签到

回复

使用道具 举报

dcj 实名认证       

7

主题

3

听众

156

积分

升级  28%

该用户从未签到

回复

使用道具 举报

yangqilun        

8

主题

3

听众

25

积分

升级  21.05%

该用户从未签到

回复

使用道具 举报

0

主题

3

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

回复

使用道具 举报

luochen        

6

主题

3

听众

240

积分

升级  70%

该用户从未签到

Lingo软件在求解数学优化问题的使用技巧
3 b* J# V1 T8 _: T- m" j3 b% M4 W5 H; c5 y4 ]; w5 r0 m
LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。LINGO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。3 T* y6 ^" h6 H9 V: i; k
LINGO的最新版本为LINGO7.0,但解密版通常为4.0和5.0版本,本书就以LINGO5.0为参照而编写。0 y% I8 u& r$ u, D5 E! a
   
0 B$ j5 S5 M' h6 s( T$ E 1.LINGO编写格式8 P, O+ f3 e! d& P1 Z: h2 A  T
LINGO模型以MODEL开始,以END结束。中间为语句,分为四大部分(SECTION):9 P( z( S7 K. q9 b# j2 W
(1)        集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(ATTRIBUTE,类似于数组)。
- R( w3 \1 W' G9 _9 RLINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:+ j" k5 i" U4 f7 e& q# Q  U) c
     SETNAME/member list(or 1..n)/:attribute,attribute,etc。/ A- F) }, Z6 t* F9 ?1 e
另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:( H" G; {, I3 _4 n! w
SETNAME(set1,set2,etc。):attribute,attribute,etc。
, V( u, n5 g- @. v如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。
8 [3 Z3 G. I0 ^! q: c(2)        目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。求解优化问题时,该部分是必须的。* |) l/ @! \! f6 h
(3)        数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。
8 f. @! u/ t4 F9 F(4)        初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。; _7 D& C1 ?  }6 h* i6 r
" f8 Q- R( m( _! M
编写LINGO程序要注意的几点:/ B0 X( s' L, K8 u4 C2 J
1.        所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾。' I, G# ]# V1 B( U& q0 {' `; T3 Z
2.        LINGO求解非线性规划时已约定各变量非负。
& A4 O( v- w. X4 Y3 F; P- ^
7 J/ M4 G1 o8 l& M7 J9 xLINGO内部函数使用详解。& I/ w  o& E7 o; y8 m1 \  k
LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。
' @9 e, D! ]) w4 K. `+ c% ^(1)        常用数学函数/ ]1 T" ?3 G% J* F. ?
@ABS(X) 返回变量X的绝对数值。  
& G' H  s6 a6 R: ~. h* K. E& [@COS( X)
6 R7 d* \  v  y' `" y返回X的余弦值,X的单位为弧度
% b6 ~, Y9 c$ f" O; u4 S% V0 s@EXP( X)/ }1 ~7 q( z7 S3 J% p0 ]( M
返回 的值,其中e为自然对数的底,即
7 A; X$ f+ u6 q7 ]. ^@FLOOR( X)
7 T9 G& n. d! U% \向0靠近返回X的整数部分。如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3。
, s6 y% y/ s" y) o@LGM( X)
9 ~% w+ L: H3 b+ G( p' ^返回 函数的自然对数值。
6 B  \6 Q8 H' ~9 Z1 p@LOG( X)% H* U. b% X: G7 d8 I( y
返回变量X的自然对数值。9 q9 ~9 |: h+ a5 s' P, P
@SIGN( X)
0 O( }5 L4 j$ I! \5 I2 a返回变量X的符号值,当X<0时为-1;当X>0时为1。& C6 M! A3 F; K5 I6 g
@SIN( X)
9 ^% L* M9 I; N返回X的正弦值,X的单位为弧度" t, V# \' j6 B
@SMAX( X1, X2,..., XN), x5 u& g' M3 S; j/ k
返回一列值X1, X2,..., XN的最大值。
2 D* n8 c  N2 O" ], a@SMIN( X1, X2,..., XN)- C) k( J5 U" \. T) P
返回一列值X1, X2,..., XN的最小值。
) }4 \# l% B" F4 T7 F$ g@TAN( X)
" T: _: R! p' S0 p6 p返回X的正切值,X的单位为弧度8 ~9 i2 B2 v4 g; r. ?
; P, c" k& K; Z  ^: _$ K. w2 F% \  {2 S
(2)集合函数7 p2 |# O: S" F! }: _! W
   集合函数的用法如下:
9 `# A+ u- a# q1 Q3 Oset_operator (set_name|condition:expression)
- ^" a, D( [% A# T( H其中set_oprator部分是集合函数名(见下),set_name是数据集合名,expression部分是表达式,|condition部分是条件,用逻辑表达式描述(无条件时可省略)。逻辑表达式中可以三种逻辑算符(#AND#(与),#OR#(或),#NOT#(非))和六种关系酸符(#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于))。+ ]: z! ~3 H# D7 P
常见的集合函数如下:. q7 x4 I, i  }- V
@FOR (set_name:constraint_expressions)对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constraint_expressions)描述。/ [+ Y( Y5 l9 o& d
@MAX(set_name:expression)返回集合上的表达式(expression)的最大值。; t1 c) {) {$ m# L. V9 u+ p
@MIN(set_name:expression)返回集合上的表达式(expression)的最小值。
$ p6 [# w" j& l$ [- M% c% g/ ^3 a@SUM(set_name:expression)返回集合上的表达式(expression)的和。
0 H4 H, D. O5 E" [2 [, L@SIZE(set_name)返回数据集set_name中包含元素的个数。" ^# d) c8 H; p' |. ]
@IN(set_name,set_element)如果数据集set_name中包含元素set_element则返回1,否则返回0。
3 X" r' X, N9 O(3)变量界定函数
; i1 z5 y# O! v& a  M   变量函数对变量的取值范围附加限制,共有四种。/ v& ?% J& [( P' i
  @BND(L,X,U)限制 & M; g; B: U6 y2 j* ]  o$ F# K5 P* I
  @BIN(X)限制X为0或1。
  P/ A9 f" t! J0 O& L0 [; {  @FREE(X)取消对X的符号限制(即可取任意实数值)。: J9 d" Y% H$ _, ?: R) F7 |
  @GIN(X)限制X为整数值。( ]/ u4 _! g" K* ?: K$ ~
(4)财务函数
" m, v# f* w( b9 B, U. y  返回如下情形下的净现值:单位时段利率为 ,连续 个时段支付,每个时段支付费用,即:
) d" j( ~! M7 [7 [% F2 I9 v) c =
- p4 J# }' d6 ~& ]7 J* \ 返回如下情形下的净现值:单位时段利率为 ,第 个时段支付单位费用,即:
: w7 y, Z9 q5 ?. Q# U$ _! H7 H, O = & `7 N% k+ i; \5 [, F

$ `- Y9 `. |5 ]  (5)概率函数$ {5 H, c: R, S- Q# |
@PSN(X)标准正态分布的分布函数。( I4 s' r4 r+ R3 ^/ m% a; E( y
@PSL(X)单位正态线性损失函数(即返回 的期望值,其中Z为标准正态随机变量)/ H1 ?1 s5 |4 v; y+ Q4 M
@PPS(A,X)均值为A的Possion分布的分布函数(当X不是整数时,采用线性插值进行计算)。
0 L- K3 Q. V$ t! K6 ?@PPL(X)Possion分布的线性损失函数(即返回 的期望值,其中Z为Possion分布随机变量), {) J$ b. D: s
@PBN(P,N,X)二项分布的分布函数当N或X不是整数时,采用线性插值进行计算)。: c4 `) i* q. J0 q; M' Y1 A
@PHG(POP,G,N,X)超几何分布的分布函数(当POP,G,N或X不是整数时,采用线性插值进行计算)。2 a1 Y# I" H% d; c* I. J5 j1 Q
@PFD(N,D,X)自由度为N和D的F分布的分布函数。
& D* N# f) J: f) ^! n, \$ _@PCX(N,X) 自由度为N的 分布的分布函数。
- `( c1 O: j) o( V% `+ V) e@PTD(N,X) 自由度为N的t分布的分布函数。
9 S: f% v5 u6 r! p5 Z$ S@RAND(X)返回0与1之间的伪随机数(X为种子数,典型用法为U(I)=@RAND(U(I+1)))。
回复

使用道具 举报

luochen        

6

主题

3

听众

240

积分

升级  70%

该用户从未签到

回复

使用道具 举报

0

主题

0

听众

3

积分

升级  60%

该用户从未签到

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-4-10 15:55 , Processed in 0.344490 second(s), 110 queries .

回顶部