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软件在求解数学优化问题的使用技巧
' j9 [. x2 n' y/ e$ i; |5 M" L& e! |6 |5 ]% q0 T& u
LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。LINGO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。! M& w9 u7 F( A2 E4 y0 q
LINGO的最新版本为LINGO7.0,但解密版通常为4.0和5.0版本,本书就以LINGO5.0为参照而编写。0 l9 p5 L! ?% o3 g$ I8 P
   6 o/ r! g9 H/ u' l1 {: k
1.LINGO编写格式8 }- Y: k5 B2 A- q
LINGO模型以MODEL开始,以END结束。中间为语句,分为四大部分(SECTION):
( g  a5 ?' N+ i- ?3 P! S: D(1)        集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(ATTRIBUTE,类似于数组)。
$ l  z8 S3 I' }3 c. p  SLINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:$ z. i* U  m% Y, i& C& q
     SETNAME/member list(or 1..n)/:attribute,attribute,etc。
) ?) N# }0 K/ q' A& x另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:9 l" q* [1 u; Q- t* R9 E) W
SETNAME(set1,set2,etc。):attribute,attribute,etc。+ u. \# s+ |+ M& [) y" O: ]. v6 Y
如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。) M! E+ _+ @9 C! X/ g& v  L- P3 D; ~
(2)        目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。求解优化问题时,该部分是必须的。
) ]9 U( w3 v: P. z. Y, |% w/ z6 J- R(3)        数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。- j7 f6 A. W7 p7 m7 S
(4)        初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。- Q8 [- W9 Z( _. r

; s* ^* h4 F0 J% D% D! r5 a编写LINGO程序要注意的几点:2 V$ `& _2 M& b$ l; N: L( @
1.        所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾。
1 O* x+ A3 m( w9 L, U2.        LINGO求解非线性规划时已约定各变量非负。! P7 L1 `2 T6 N, I- _3 M
( Y# T: Q) H- B+ F# g
LINGO内部函数使用详解。
" N; s5 G7 T. U9 f LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。, \# B, Q* U* \% h5 `% {/ a' L
(1)        常用数学函数8 h; y9 k% n" \: U6 k: d% c, l
@ABS(X) 返回变量X的绝对数值。  9 T7 p, r$ y* V
@COS( X)
$ `$ r; d; ^7 ^: ]. @返回X的余弦值,X的单位为弧度% k  y* e4 F$ }( @. u: y' M( g
@EXP( X)
" N0 ?' x' v, y4 W/ X返回 的值,其中e为自然对数的底,即 , z7 G) b1 Q: O; a2 c: k
@FLOOR( X)4 ?4 w3 o. _) E
向0靠近返回X的整数部分。如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3。* I) S) h6 \7 r3 v
@LGM( X)0 a( L. D" C! A# I7 i+ M
返回 函数的自然对数值。
3 B  e) R! R* E0 Z@LOG( X)
' L3 b1 P( I/ R2 s1 ^; t返回变量X的自然对数值。* ~. _/ @4 q4 P, x- u% ^
@SIGN( X)
3 D) D: e" K3 W/ s2 ?9 G返回变量X的符号值,当X<0时为-1;当X>0时为1。/ I8 N2 l* @8 J0 M* ]7 _9 q& [
@SIN( X)# i9 N5 |% ^* i3 x  `
返回X的正弦值,X的单位为弧度7 w2 L* u6 _# Y2 g# M
@SMAX( X1, X2,..., XN)& p8 X6 Y% e4 n8 D$ \0 J) S
返回一列值X1, X2,..., XN的最大值。' l; C) ~4 e9 `( O% x
@SMIN( X1, X2,..., XN)
: L/ v% k: `) ?2 K5 M3 X% c返回一列值X1, X2,..., XN的最小值。
+ h6 A, G! C! S7 [/ ]. W: |' W6 v@TAN( X)
9 p: s/ h$ _+ Q返回X的正切值,X的单位为弧度* K  l4 ?0 M1 @

0 E. G" k8 L( p# g' C(2)集合函数5 c# c$ L1 |2 i3 q' {
   集合函数的用法如下:
) k. y; o$ q, T- d- v- \set_operator (set_name|condition:expression). I" |( @! g, p
其中set_oprator部分是集合函数名(见下),set_name是数据集合名,expression部分是表达式,|condition部分是条件,用逻辑表达式描述(无条件时可省略)。逻辑表达式中可以三种逻辑算符(#AND#(与),#OR#(或),#NOT#(非))和六种关系酸符(#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于))。
6 Y0 r$ _; F9 }" s  x; l常见的集合函数如下:
7 D: B6 Z& q0 u" E, `8 p" m@FOR (set_name:constraint_expressions)对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constraint_expressions)描述。. f/ u+ a/ e3 J( k! R1 ~9 \4 j8 g
@MAX(set_name:expression)返回集合上的表达式(expression)的最大值。& V: c: L+ s  Y4 P
@MIN(set_name:expression)返回集合上的表达式(expression)的最小值。
( B/ m' f5 I/ m5 E4 g+ b/ a0 X5 J5 b@SUM(set_name:expression)返回集合上的表达式(expression)的和。
, f2 `( j5 u- y1 i& R9 A- K- ~3 _@SIZE(set_name)返回数据集set_name中包含元素的个数。$ ?! D1 g$ g; Y  n. Z
@IN(set_name,set_element)如果数据集set_name中包含元素set_element则返回1,否则返回0。& _+ v9 w! K  X9 \% r7 C
(3)变量界定函数4 z' B1 m: p$ @7 \8 y5 @
   变量函数对变量的取值范围附加限制,共有四种。
7 O2 j0 [* \$ Q7 |6 {) B  @BND(L,X,U)限制
% g0 M) u) ^' s  U. w. H0 O  @BIN(X)限制X为0或1。" r9 N- i* ?8 F
  @FREE(X)取消对X的符号限制(即可取任意实数值)。
# N( J  r, l& G7 P6 S9 |1 x  @GIN(X)限制X为整数值。4 ~, s. a: m" R* m9 \7 S
(4)财务函数
$ j* G4 \& ^8 X7 r% T5 ]  返回如下情形下的净现值:单位时段利率为 ,连续 个时段支付,每个时段支付费用,即:
( B( {6 I& r& H = ) w1 e$ ^& a: k
返回如下情形下的净现值:单位时段利率为 ,第 个时段支付单位费用,即:: E* L3 c0 ]8 _( M0 ]6 {
=
# L8 i+ F  Q% Z1 _0 a7 L$ f% N- m/ d4 S8 W7 a
  (5)概率函数
( Y8 y0 i5 [' t+ b@PSN(X)标准正态分布的分布函数。5 W4 y3 u$ d$ P9 e$ q& E$ q
@PSL(X)单位正态线性损失函数(即返回 的期望值,其中Z为标准正态随机变量)
! }+ k  ^( m1 k4 w# f@PPS(A,X)均值为A的Possion分布的分布函数(当X不是整数时,采用线性插值进行计算)。; T- N  V5 S: b3 N1 z# s
@PPL(X)Possion分布的线性损失函数(即返回 的期望值,其中Z为Possion分布随机变量)+ h2 F& `. j0 \0 d& N% n, U
@PBN(P,N,X)二项分布的分布函数当N或X不是整数时,采用线性插值进行计算)。
& r  v% P* C/ [9 |- D) x@PHG(POP,G,N,X)超几何分布的分布函数(当POP,G,N或X不是整数时,采用线性插值进行计算)。5 O) n# K" r5 F' r( C  c
@PFD(N,D,X)自由度为N和D的F分布的分布函数。
( }/ f) @5 C+ y! z& x" p@PCX(N,X) 自由度为N的 分布的分布函数。0 M' J4 s" q+ I: S
@PTD(N,X) 自由度为N的t分布的分布函数。0 Z  D4 o: g! v0 R5 B5 Y
@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, 2025-8-22 07:45 , Processed in 0.936505 second(s), 109 queries .

回顶部