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软件在求解数学优化问题的使用技巧6 j& }  G7 Z4 ^3 o1 b

  K5 [( O) [) T; l" h9 p' \1 B2 [LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。LINGO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。
$ B& ^. Q( A1 k3 g* o, XLINGO的最新版本为LINGO7.0,但解密版通常为4.0和5.0版本,本书就以LINGO5.0为参照而编写。
* c  @- t0 Q. L3 X  S* L; X* S! `; m   
& E  T$ @# R& V) e# f; b 1.LINGO编写格式
$ _  ]  N: O+ e! v& Y6 @, f LINGO模型以MODEL开始,以END结束。中间为语句,分为四大部分(SECTION):# W0 d& r+ O/ k, s4 t6 v; o
(1)        集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(ATTRIBUTE,类似于数组)。
" P) {; m1 y& [' mLINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:
% S9 u7 \0 C1 `6 b) J3 \4 t' \     SETNAME/member list(or 1..n)/:attribute,attribute,etc。
; G* X$ ?& Y8 [9 K另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:) _4 k( I4 s3 X$ F  f! A$ T
SETNAME(set1,set2,etc。):attribute,attribute,etc。& S" ?. d! r7 B- {- B
如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。, d4 v2 E0 O1 G; q8 L
(2)        目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。求解优化问题时,该部分是必须的。- B, V* s& z8 N3 r2 j# H8 ?
(3)        数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。
( m+ s  W0 a" D0 C# v0 q1 N(4)        初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。+ n: h3 `$ B: m- |1 r1 A' [

" h& E5 K1 O# `, N2 r" u, w编写LINGO程序要注意的几点:2 i2 t+ [5 z$ h2 |. z
1.        所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾。$ E; _6 m8 z0 c( ~8 ]& `) J
2.        LINGO求解非线性规划时已约定各变量非负。% [& J/ u0 m! b) e: ~/ W9 m$ @

" J" p9 A( ?0 xLINGO内部函数使用详解。
& w) J' T! C4 n+ b2 H" d; G$ P LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。
0 k2 f% t. i9 ^6 P0 v: h(1)        常用数学函数# g. s2 Q. E4 W2 R( p: u! Q9 u
@ABS(X) 返回变量X的绝对数值。  - i, r( t% p/ H$ u
@COS( X)
9 v2 C( B: |* S$ Z返回X的余弦值,X的单位为弧度
2 D/ d/ Q% T+ ], C@EXP( X)
; k% j4 ]7 \% o/ H返回 的值,其中e为自然对数的底,即
# l1 v8 F7 Y4 p2 I) c- U@FLOOR( X)
5 y5 L$ t, n. x9 `8 N. ^向0靠近返回X的整数部分。如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3。3 Y! \; v& Z7 w$ l+ b* @  y! q
@LGM( X)2 O" h4 P/ R; O* D% T1 \, t
返回 函数的自然对数值。  Y0 {. k; U3 D0 |) g3 \9 |
@LOG( X)% t- E( M. r" W4 ~  M3 u  P  o# i
返回变量X的自然对数值。
* B0 ^  j- Y' a# g; {@SIGN( X)
) l6 i* d6 ~6 P6 g2 a返回变量X的符号值,当X<0时为-1;当X>0时为1。
) D, H0 C; a+ O& m# ?4 v6 W$ R2 E@SIN( X)
) U# B4 c' d) ^返回X的正弦值,X的单位为弧度
1 G# _. U3 Q1 K1 z@SMAX( X1, X2,..., XN)
$ z! }5 \0 @& I5 U! G7 ^) ]" f返回一列值X1, X2,..., XN的最大值。
& z2 X0 m* p% D' b, z4 v@SMIN( X1, X2,..., XN)* y6 ]1 U* w& A, t
返回一列值X1, X2,..., XN的最小值。
( k6 q# h; I& ^4 x2 r3 c@TAN( X)
0 W" A# a5 l! a6 F# A返回X的正切值,X的单位为弧度; {6 ?1 U& f, n9 Y! ^/ I4 D6 W# h

9 B1 q3 t: U! A6 Z(2)集合函数
) W3 F! G/ Z! N# k: l1 ]+ e   集合函数的用法如下:9 o+ T( ]; a, _
set_operator (set_name|condition:expression)6 h' j. t) c0 @& T/ g
其中set_oprator部分是集合函数名(见下),set_name是数据集合名,expression部分是表达式,|condition部分是条件,用逻辑表达式描述(无条件时可省略)。逻辑表达式中可以三种逻辑算符(#AND#(与),#OR#(或),#NOT#(非))和六种关系酸符(#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于))。
% {- ~9 N. T& D* t) I: Y; t" A+ D常见的集合函数如下:* l9 X! v0 u. }0 f& L# _) B4 T
@FOR (set_name:constraint_expressions)对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constraint_expressions)描述。& J; i. ~% A% c. Q/ ^& j
@MAX(set_name:expression)返回集合上的表达式(expression)的最大值。" N( ^% C  m3 a4 H- C
@MIN(set_name:expression)返回集合上的表达式(expression)的最小值。
& v- F8 Y& Q& M+ ?* W% A% D@SUM(set_name:expression)返回集合上的表达式(expression)的和。
! u5 w# t  o$ O2 P' H5 c2 i" H@SIZE(set_name)返回数据集set_name中包含元素的个数。
) w+ ?: H1 O4 K$ M3 J6 ~@IN(set_name,set_element)如果数据集set_name中包含元素set_element则返回1,否则返回0。
/ s5 m; p0 w$ R# c( h) m, R2 u(3)变量界定函数0 y3 P- X% X% G8 M, |
   变量函数对变量的取值范围附加限制,共有四种。0 Y  g: w( c  D/ P( R! D
  @BND(L,X,U)限制
9 B) C2 F' Y8 o3 d  p  @BIN(X)限制X为0或1。) `* p1 l) }! X8 m2 n
  @FREE(X)取消对X的符号限制(即可取任意实数值)。% q( L; n% m" i9 `, @8 t
  @GIN(X)限制X为整数值。
+ R+ o8 w* Q# S( T8 N(4)财务函数
# e8 \: q% s( `- @9 T; j: h5 Z; }  返回如下情形下的净现值:单位时段利率为 ,连续 个时段支付,每个时段支付费用,即:
6 v/ _+ i+ i+ l = 3 f1 o. H. x+ u$ `3 e! R
返回如下情形下的净现值:单位时段利率为 ,第 个时段支付单位费用,即:
5 W5 f6 T' D* @- [: N- q$ i" J; ] = 3 G" E8 Q, e6 N2 I7 A7 W5 U0 H! `

& \7 e! h  q5 D2 i! a6 G6 x  (5)概率函数
/ a; b7 T& R5 C# O1 d+ _, `1 i@PSN(X)标准正态分布的分布函数。+ e* v6 R0 ?; Q
@PSL(X)单位正态线性损失函数(即返回 的期望值,其中Z为标准正态随机变量)% U3 m: N0 B9 K* h& t& y) A8 A4 J
@PPS(A,X)均值为A的Possion分布的分布函数(当X不是整数时,采用线性插值进行计算)。1 J( ^7 S" O2 M- i6 n' x; G
@PPL(X)Possion分布的线性损失函数(即返回 的期望值,其中Z为Possion分布随机变量)8 R: }4 j' h" X" m7 ~2 X2 Q* \
@PBN(P,N,X)二项分布的分布函数当N或X不是整数时,采用线性插值进行计算)。
2 ^  q' o- k$ N: @8 U- P7 W9 m# Z2 u" n@PHG(POP,G,N,X)超几何分布的分布函数(当POP,G,N或X不是整数时,采用线性插值进行计算)。6 s6 w" ], r2 ^2 [  j: K& A
@PFD(N,D,X)自由度为N和D的F分布的分布函数。' O0 {' j2 b7 z8 ?3 X) F, ?
@PCX(N,X) 自由度为N的 分布的分布函数。( Q" t9 B  q0 ?/ h1 S
@PTD(N,X) 自由度为N的t分布的分布函数。, E1 M2 i* h- v
@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-8-31 19:33 , Processed in 0.536240 second(s), 110 queries .

回顶部