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软件在求解数学优化问题的使用技巧- h  V) c; F* V3 J
3 L1 l6 |' q8 x# z5 t
LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。LINGO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。
. k" [) _* [) B2 x/ ?8 o) t9 P& fLINGO的最新版本为LINGO7.0,但解密版通常为4.0和5.0版本,本书就以LINGO5.0为参照而编写。# W/ H. z" ?2 U5 H) \
   ) m$ K% L: ^6 h0 Q' U
1.LINGO编写格式0 u( ]/ _. K) q' V: [
LINGO模型以MODEL开始,以END结束。中间为语句,分为四大部分(SECTION):; ]3 }& s2 @' ]
(1)        集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(ATTRIBUTE,类似于数组)。
; f- O$ M# T9 I6 R  V4 vLINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:
  C" {' F6 G5 O3 T7 Y" k     SETNAME/member list(or 1..n)/:attribute,attribute,etc。
9 ?$ T" ?! n, N* R另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:
/ t+ t. y+ R* E5 |' nSETNAME(set1,set2,etc。):attribute,attribute,etc。
4 @1 U/ }6 c9 Y* N如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。
) q! K9 [8 Y3 p$ x/ u; u# B(2)        目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。求解优化问题时,该部分是必须的。
, G  ^7 P7 L, m; q- O2 B(3)        数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。& T' `% G1 n, H* R% P/ Y
(4)        初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。0 T0 K. C" r  a1 j
$ N" r7 R3 v7 @# M5 |& Y/ r
编写LINGO程序要注意的几点:3 i; t' W# N0 E0 i
1.        所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾。: u+ f6 c/ v$ P# [( y" i2 i/ i3 b
2.        LINGO求解非线性规划时已约定各变量非负。
+ J5 V' T0 W& ~/ k' r7 H
+ v$ h: c; I+ J9 O: ULINGO内部函数使用详解。3 f0 [  w5 s4 z$ _( B
LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。! X9 J* q$ P, b; |! I7 O
(1)        常用数学函数+ P  [) p# ~4 ~9 W
@ABS(X) 返回变量X的绝对数值。  ) q0 D& F4 @" C7 s3 C7 x
@COS( X)
% F  T2 Y: A; k" S返回X的余弦值,X的单位为弧度2 b# s6 {6 K; }  s( t
@EXP( X)
' d8 r' \+ _( p1 ?/ a返回 的值,其中e为自然对数的底,即 & x' I6 @4 D# a& W: D- W# f$ x
@FLOOR( X)7 O  G* t3 ^: x& b
向0靠近返回X的整数部分。如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3。7 G! H7 N9 n0 z8 R9 k, m+ T6 ^
@LGM( X)
% D6 w) ]2 B* M) g返回 函数的自然对数值。
5 G4 A: R; r- ^0 V@LOG( X)
( [) U* `; u, h1 R! a返回变量X的自然对数值。
  e! {- t, D1 f% R@SIGN( X)
4 L, O9 l# k0 r6 c4 d5 S# T返回变量X的符号值,当X<0时为-1;当X>0时为1。& L2 Q4 m' |' z% o5 {; |. i
@SIN( X)- O  a; w6 L4 }3 [: h) M
返回X的正弦值,X的单位为弧度8 |/ k3 m0 I) y# [# @" O* F
@SMAX( X1, X2,..., XN)' `# D! @2 R! j! Y$ p
返回一列值X1, X2,..., XN的最大值。( q" H- a4 q5 u* H1 D& l9 |
@SMIN( X1, X2,..., XN)) F* j9 h1 ]  y7 I; `" w; \5 y
返回一列值X1, X2,..., XN的最小值。7 v2 `! W( Y+ f2 N
@TAN( X)4 l) l: y) h2 h* t( D* b
返回X的正切值,X的单位为弧度
8 L& \) n' i  h6 \0 }7 b 5 u( F4 t8 [) a# M: |
(2)集合函数
" M9 F  ^' ]7 q2 r! m* o   集合函数的用法如下:4 a) y" Z6 t/ d2 `
set_operator (set_name|condition:expression)
7 A( b* S) E9 L! f! o$ ~( j其中set_oprator部分是集合函数名(见下),set_name是数据集合名,expression部分是表达式,|condition部分是条件,用逻辑表达式描述(无条件时可省略)。逻辑表达式中可以三种逻辑算符(#AND#(与),#OR#(或),#NOT#(非))和六种关系酸符(#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于))。4 k" }: a8 x$ w) m/ G
常见的集合函数如下:
& ]. M; P* x$ O@FOR (set_name:constraint_expressions)对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constraint_expressions)描述。+ r6 Q7 g! X; ^0 [! B
@MAX(set_name:expression)返回集合上的表达式(expression)的最大值。
2 q; u! r0 z1 T$ r. U2 I@MIN(set_name:expression)返回集合上的表达式(expression)的最小值。' h7 t" V) \6 `, f) c9 |4 m2 ~8 _
@SUM(set_name:expression)返回集合上的表达式(expression)的和。
. S2 B- M: [  [4 H5 i: @6 j% w1 O@SIZE(set_name)返回数据集set_name中包含元素的个数。4 u" H8 }1 Q9 Z7 X& d1 ^
@IN(set_name,set_element)如果数据集set_name中包含元素set_element则返回1,否则返回0。. ]+ y) }# d, }+ A- b4 Y; Q& z/ u
(3)变量界定函数& O( t$ Z; r" P) l- p, H0 u
   变量函数对变量的取值范围附加限制,共有四种。% D) E) Q4 a* `. V" V
  @BND(L,X,U)限制 0 o! A% N( H' [8 G3 q- K* b- M
  @BIN(X)限制X为0或1。
3 z# c- n. R. @0 @+ V  @FREE(X)取消对X的符号限制(即可取任意实数值)。  Z0 U" G6 G6 F0 o) K$ i
  @GIN(X)限制X为整数值。
# c% S0 i. P+ @; R- s. g(4)财务函数
% B7 P1 c" S/ p8 t  返回如下情形下的净现值:单位时段利率为 ,连续 个时段支付,每个时段支付费用,即:
, {7 R( L1 D7 v( D = & T! E2 s) y6 D) I$ x# Q
返回如下情形下的净现值:单位时段利率为 ,第 个时段支付单位费用,即:. l% x2 x. j3 Z& I9 q6 a4 U
=
% D) Z. M0 r' J9 M1 ]  ^8 J3 m& k3 U7 w5 s
  (5)概率函数
( t4 _% y! u) b! {9 ]@PSN(X)标准正态分布的分布函数。6 V+ V1 A/ ~3 P& U, k
@PSL(X)单位正态线性损失函数(即返回 的期望值,其中Z为标准正态随机变量)( l7 R$ u3 ~, O6 P5 \
@PPS(A,X)均值为A的Possion分布的分布函数(当X不是整数时,采用线性插值进行计算)。
  |& w% A* d6 K9 L9 u/ d@PPL(X)Possion分布的线性损失函数(即返回 的期望值,其中Z为Possion分布随机变量)  Z4 i2 x) a+ Y) S" z
@PBN(P,N,X)二项分布的分布函数当N或X不是整数时,采用线性插值进行计算)。) O* E$ Z1 k9 Q1 @$ L* r+ }+ N  N4 l
@PHG(POP,G,N,X)超几何分布的分布函数(当POP,G,N或X不是整数时,采用线性插值进行计算)。+ D1 r% t5 ~/ n% `
@PFD(N,D,X)自由度为N和D的F分布的分布函数。% O4 E" ~& B% n& G
@PCX(N,X) 自由度为N的 分布的分布函数。
. V% s& `$ u, A( p# n@PTD(N,X) 自由度为N的t分布的分布函数。* q7 t6 i: U( E! Z, f$ K: g% ]
@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-5-26 12:49 , Processed in 0.627662 second(s), 110 queries .

回顶部