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软件在求解数学优化问题的使用技巧
: V4 y- c% p! ~: J: H& l, g8 F, t
LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。LINGO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。
8 u5 E! V9 J- F) F2 r2 R6 s1 ILINGO的最新版本为LINGO7.0,但解密版通常为4.0和5.0版本,本书就以LINGO5.0为参照而编写。
$ x. e0 P4 X  G% s% i6 j+ G  p   
* x( r* u5 i% z9 A% F, [- l7 T/ U( W 1.LINGO编写格式
& v3 P0 D9 P/ S) K' A LINGO模型以MODEL开始,以END结束。中间为语句,分为四大部分(SECTION):# D" C9 z& I# {7 h3 K% `# u, n% y
(1)        集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(ATTRIBUTE,类似于数组)。: I$ n) w. b4 D# Q5 Z6 ~& ]$ t
LINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:
/ R5 h& T9 k+ \% }1 G, @     SETNAME/member list(or 1..n)/:attribute,attribute,etc。0 h5 y' U- d/ y" W7 V
另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:& V" M% x5 `9 A" L$ K
SETNAME(set1,set2,etc。):attribute,attribute,etc。
/ r6 |! o+ h6 w( q% Z如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。& D9 b, i9 Q3 v' p; y+ V
(2)        目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。求解优化问题时,该部分是必须的。5 z* P2 ~! s( T* I3 T. L
(3)        数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。3 V/ ^8 v0 J+ t) O
(4)        初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。; j0 {. Z+ a4 {* j, F% J1 T" \

) H7 i, U% u7 ^, Y编写LINGO程序要注意的几点:
% l) ^$ x4 P9 c; z! R* Y8 F& N2 z6 \1.        所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾。
6 e& C  X( j- ~2.        LINGO求解非线性规划时已约定各变量非负。
8 x# Y, V! n5 S4 n8 `
, d! r; b  }8 _3 Y3 X" K- S8 SLINGO内部函数使用详解。3 _7 G3 t0 S- s6 r, b
LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。2 }% u0 A( \0 V+ \3 {6 `
(1)        常用数学函数  t6 `! `. S! l% M  }8 V
@ABS(X) 返回变量X的绝对数值。  4 v3 F8 m5 ?/ Q7 F) V- {+ \2 s
@COS( X)) ]) \2 E$ {) t3 Z" {+ L
返回X的余弦值,X的单位为弧度
5 Y* `+ H) Y3 H* Y3 I@EXP( X)% J8 J, {5 m  x# {& V) z, }6 k
返回 的值,其中e为自然对数的底,即 & @% _( u( T0 W( ^9 L
@FLOOR( X)
( G& p; u8 [8 H& ~向0靠近返回X的整数部分。如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3。5 t* O2 k4 Z, Q2 B) t8 c
@LGM( X)
% X; p7 R6 d. i+ k+ c1 r  b  G返回 函数的自然对数值。
1 d0 }) N/ D* p. ]/ [. D@LOG( X)
7 F" o, _4 a+ x+ T1 H5 B返回变量X的自然对数值。
7 {+ p4 S7 ^3 G; T$ ]@SIGN( X)( _/ W5 `6 {3 N$ v' a8 L
返回变量X的符号值,当X<0时为-1;当X>0时为1。  P$ [9 P( B+ B
@SIN( X)4 E; B2 p2 p$ H( R) g) D. f
返回X的正弦值,X的单位为弧度
( }9 V" u1 l3 [3 x/ p* }. Q@SMAX( X1, X2,..., XN)
2 u( ?3 U$ k! X; t返回一列值X1, X2,..., XN的最大值。
. C2 R  j( `" i4 z- f@SMIN( X1, X2,..., XN)
( w8 Q0 ~- i& G3 W/ O3 [返回一列值X1, X2,..., XN的最小值。! d2 h. ~0 W, n2 ?& N( L+ _7 l
@TAN( X)
- t. r9 x6 u6 F3 C* G, G返回X的正切值,X的单位为弧度
: J  W2 o/ e7 P/ C
$ u) M0 F4 a8 `& q(2)集合函数
3 N1 C% z4 U" e% J   集合函数的用法如下:
8 r$ v4 i" w# K. H- l- yset_operator (set_name|condition:expression)
& z2 P7 c& @, k+ o+ s, V+ D4 `其中set_oprator部分是集合函数名(见下),set_name是数据集合名,expression部分是表达式,|condition部分是条件,用逻辑表达式描述(无条件时可省略)。逻辑表达式中可以三种逻辑算符(#AND#(与),#OR#(或),#NOT#(非))和六种关系酸符(#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于))。+ c) R! c( f; a- m+ H) e4 J" {
常见的集合函数如下:
& {0 ~2 Z) V5 W9 E* ]6 s  w@FOR (set_name:constraint_expressions)对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constraint_expressions)描述。7 d, @; L0 c+ m4 s3 k' M# u/ Q
@MAX(set_name:expression)返回集合上的表达式(expression)的最大值。( k* q" b; B6 |2 M$ H& ~! N6 h
@MIN(set_name:expression)返回集合上的表达式(expression)的最小值。
& T" m8 h$ F1 J+ u1 K1 n7 P@SUM(set_name:expression)返回集合上的表达式(expression)的和。* I' A) N6 Z& c! q0 B
@SIZE(set_name)返回数据集set_name中包含元素的个数。
1 n( \  ~2 F8 s@IN(set_name,set_element)如果数据集set_name中包含元素set_element则返回1,否则返回0。
5 e* s7 R) x* s7 t(3)变量界定函数( C, d) {0 K, P- z; m
   变量函数对变量的取值范围附加限制,共有四种。
7 n; S7 O$ p+ \9 |; ]0 m  @BND(L,X,U)限制 . J* V8 A+ ^. U% A, Z, }
  @BIN(X)限制X为0或1。
. \. C$ [9 H; H" X1 L8 i. V6 E  @FREE(X)取消对X的符号限制(即可取任意实数值)。
* s" B" ^: \3 A9 q8 h3 r6 B  @GIN(X)限制X为整数值。
* [! f; p, L% x(4)财务函数
( V7 @+ T# f7 p. g" u. p  返回如下情形下的净现值:单位时段利率为 ,连续 个时段支付,每个时段支付费用,即:
" p8 Y* D  h3 g; _$ A7 r = ! z2 h1 @8 k$ y  u& p
返回如下情形下的净现值:单位时段利率为 ,第 个时段支付单位费用,即:
, m1 r/ t- Q+ q! s0 g) W! G =
" V- j0 p5 B7 l8 M# X" f/ \8 G: F; x# T, w. d
  (5)概率函数  ^7 v3 v9 t  L1 t, n" k
@PSN(X)标准正态分布的分布函数。
4 P# \7 A: C. h9 K- ]; X) _$ j@PSL(X)单位正态线性损失函数(即返回 的期望值,其中Z为标准正态随机变量)3 w9 n: J) g+ |0 s% Y4 x* y
@PPS(A,X)均值为A的Possion分布的分布函数(当X不是整数时,采用线性插值进行计算)。
  y, Z+ B* X7 B" m6 B, }$ A@PPL(X)Possion分布的线性损失函数(即返回 的期望值,其中Z为Possion分布随机变量)1 v9 g) k% p3 M; _- d+ Y! q( I
@PBN(P,N,X)二项分布的分布函数当N或X不是整数时,采用线性插值进行计算)。
. f0 t& d# o& g8 j& D+ |* M@PHG(POP,G,N,X)超几何分布的分布函数(当POP,G,N或X不是整数时,采用线性插值进行计算)。/ I% M5 b1 U  b* o, T
@PFD(N,D,X)自由度为N和D的F分布的分布函数。* M' m, w- q! Y
@PCX(N,X) 自由度为N的 分布的分布函数。
% O( v. U& m: N% i$ M) @7 v: _@PTD(N,X) 自由度为N的t分布的分布函数。
0 Y( a4 s4 v! G3 T$ C6 O+ o@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 20:42 , Processed in 0.470363 second(s), 109 queries .

回顶部