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软件在求解数学优化问题的使用技巧
) W8 L4 h, m4 d6 u* ~2 _, h5 U
  d: t2 |6 a4 @7 w# T7 h  hLINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。LINGO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。
# q6 i0 w( e# o- O; ?LINGO的最新版本为LINGO7.0,但解密版通常为4.0和5.0版本,本书就以LINGO5.0为参照而编写。
7 o7 ]- C. T* v' z   
7 g, E  W  d7 K: w, v( e4 Y- a 1.LINGO编写格式& r+ C. b! i4 W: N
LINGO模型以MODEL开始,以END结束。中间为语句,分为四大部分(SECTION):
4 E- @# F5 Q! @; b0 l3 J4 x(1)        集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(ATTRIBUTE,类似于数组)。: c: K# }7 V, m1 s) N
LINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:
" ~* H3 M- R) S4 e5 S) n+ n     SETNAME/member list(or 1..n)/:attribute,attribute,etc。2 {: h3 \0 L: t9 {/ h8 t; z) q
另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:/ o8 s/ n# Y% p# [8 P- r# L  v
SETNAME(set1,set2,etc。):attribute,attribute,etc。
7 O9 `! _- `- G, b4 s  R* v" ~如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。) d4 ]+ E8 s, R' H* z  T0 s; r! b) @
(2)        目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。求解优化问题时,该部分是必须的。- Z* w: ^: ^% {5 b8 o
(3)        数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。! z1 s: c- \9 F' g4 P+ T
(4)        初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。
0 m1 G; G) {2 E* h' A" C) T" W7 h$ x5 }0 I
编写LINGO程序要注意的几点:; q: Z' T4 `0 r. ]0 e# u) P
1.        所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾。" p! R% o/ H+ B5 n
2.        LINGO求解非线性规划时已约定各变量非负。/ b* A2 r* d# t
4 R" J0 B0 b+ V6 l) [. ]4 W
LINGO内部函数使用详解。6 n5 n$ z+ w" p; ~# w* q
LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。4 _; G) |2 X) ^
(1)        常用数学函数7 e+ d( w: |3 q9 {* k8 V$ B( f
@ABS(X) 返回变量X的绝对数值。  
( b0 N( ]) F. z0 S4 N8 F@COS( X)5 q1 s, @6 g; M4 [, R/ ?
返回X的余弦值,X的单位为弧度
* D) q: }/ @, E: r! U  Y@EXP( X)' Z( q  L; [' [# z$ {  ^
返回 的值,其中e为自然对数的底,即
, [  r, f) J' O@FLOOR( X)
2 K: C9 Y( J5 ~  ~向0靠近返回X的整数部分。如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3。& R; j: y. W+ J: u8 ^
@LGM( X)+ y* o! T$ t/ m, c3 J4 M8 D; w
返回 函数的自然对数值。
7 y: W! J. ]* c, u( Z+ a& X@LOG( X)
. Z, i6 j1 R& i/ H# P返回变量X的自然对数值。1 n. w& B2 ?1 A! s$ O. p- X9 f
@SIGN( X)
; ]+ ]9 P9 J% @返回变量X的符号值,当X<0时为-1;当X>0时为1。
3 @) t8 G- s+ v+ b& j@SIN( X)8 ?: k) a9 w$ z6 V# B9 Z
返回X的正弦值,X的单位为弧度
% l; c: q" ?0 M3 [9 @) n) m@SMAX( X1, X2,..., XN)5 e2 l4 ]4 b! u# D6 o% T3 ]- l8 ~
返回一列值X1, X2,..., XN的最大值。
8 _3 d* N2 Q6 [- l5 Q' O@SMIN( X1, X2,..., XN)
: u* P" _5 `) Y0 z4 h返回一列值X1, X2,..., XN的最小值。! f% [6 B5 W% a: a( H1 D
@TAN( X)
7 c- w. h2 M. n& V8 ]返回X的正切值,X的单位为弧度$ q! F5 E- v$ a8 R8 G0 S) I/ ^
4 i8 v8 W0 `% E: G5 P
(2)集合函数7 h: i$ R; o6 `  T2 S
   集合函数的用法如下:9 z0 o& n: m7 G! l8 {6 ~* d: X
set_operator (set_name|condition:expression)
- \; r! p8 B- ]0 v2 D其中set_oprator部分是集合函数名(见下),set_name是数据集合名,expression部分是表达式,|condition部分是条件,用逻辑表达式描述(无条件时可省略)。逻辑表达式中可以三种逻辑算符(#AND#(与),#OR#(或),#NOT#(非))和六种关系酸符(#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于))。
" D" m2 A. c: h7 x' P/ f) X常见的集合函数如下:! r2 v7 G3 I/ O% V
@FOR (set_name:constraint_expressions)对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constraint_expressions)描述。. v7 N" a& _) b9 b. _
@MAX(set_name:expression)返回集合上的表达式(expression)的最大值。
6 Y% ^- S+ e8 ]/ e2 r6 ]@MIN(set_name:expression)返回集合上的表达式(expression)的最小值。$ }2 m, R6 y$ P% {8 E9 F- i+ `
@SUM(set_name:expression)返回集合上的表达式(expression)的和。' H; q$ ^& @1 C# Z# f0 U
@SIZE(set_name)返回数据集set_name中包含元素的个数。
) U2 J. R9 w9 H) J@IN(set_name,set_element)如果数据集set_name中包含元素set_element则返回1,否则返回0。5 X  i  N9 L1 p
(3)变量界定函数
) u1 V" A  ]: \5 ]5 H! Q8 b  s   变量函数对变量的取值范围附加限制,共有四种。/ q0 V( u/ Y: H7 k0 g9 l
  @BND(L,X,U)限制
1 [2 p$ u( B; V/ v* F% O( s  @BIN(X)限制X为0或1。
8 Z- Y8 e% B# A9 z- ~! D  @FREE(X)取消对X的符号限制(即可取任意实数值)。$ O& `% I0 d6 o2 p8 X
  @GIN(X)限制X为整数值。
4 |. y9 v! h! ^- s' ~/ o6 e(4)财务函数* i, a' `; F/ l' T3 o, a
  返回如下情形下的净现值:单位时段利率为 ,连续 个时段支付,每个时段支付费用,即:
) q% L' R# l$ q5 w( K: A: t, u =
( R5 h. K% H/ K! l4 M9 H 返回如下情形下的净现值:单位时段利率为 ,第 个时段支付单位费用,即:+ `1 {8 }1 X$ n$ W, L  G
=
8 H! Q6 Y) ~, ^7 z1 ?/ ^+ n( H. f$ v1 M
  (5)概率函数( I3 X) P: T$ m, P3 }
@PSN(X)标准正态分布的分布函数。
; o- f8 [! F) s@PSL(X)单位正态线性损失函数(即返回 的期望值,其中Z为标准正态随机变量)
  m4 Y$ [1 ]+ \0 r4 f: p@PPS(A,X)均值为A的Possion分布的分布函数(当X不是整数时,采用线性插值进行计算)。
( J. H( m& f' J9 V9 i@PPL(X)Possion分布的线性损失函数(即返回 的期望值,其中Z为Possion分布随机变量), |, G. q8 I7 u; W0 E* u. Z1 H$ ]0 y5 N2 k
@PBN(P,N,X)二项分布的分布函数当N或X不是整数时,采用线性插值进行计算)。
6 a2 e( j8 M. O: l5 E2 m4 X@PHG(POP,G,N,X)超几何分布的分布函数(当POP,G,N或X不是整数时,采用线性插值进行计算)。1 n4 K5 e. F9 F/ n7 M4 ~
@PFD(N,D,X)自由度为N和D的F分布的分布函数。
, l- ]2 q& v$ K; l1 S' L& K2 \7 ]@PCX(N,X) 自由度为N的 分布的分布函数。
1 D/ {! Y; t" A" |0 T0 }@PTD(N,X) 自由度为N的t分布的分布函数。
9 X2 d  b: q$ b% h1 r: Z@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-10-18 01:18 , Processed in 0.446401 second(s), 109 queries .

回顶部