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软件在求解数学优化问题的使用技巧! g; M* M5 q5 a5 P# W

1 ^4 t4 k, v3 w( W! @LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。LINGO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。
8 `! H$ l& H8 ^2 [1 d) _$ P% g: jLINGO的最新版本为LINGO7.0,但解密版通常为4.0和5.0版本,本书就以LINGO5.0为参照而编写。9 j9 z3 B) |+ t$ C1 j9 m$ h
   * U+ x. w7 b3 {6 I
1.LINGO编写格式5 J3 T& q$ I# E) P4 `9 t
LINGO模型以MODEL开始,以END结束。中间为语句,分为四大部分(SECTION):2 \; C0 ?5 q: t. j9 B! E
(1)        集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(ATTRIBUTE,类似于数组)。' H5 r- `$ f) c5 }  V/ |
LINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:( B5 M% D9 R- [% U: [* P
     SETNAME/member list(or 1..n)/:attribute,attribute,etc。
( @$ e9 E8 p5 U# V* U另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:$ N' Z* [/ d% i" ]
SETNAME(set1,set2,etc。):attribute,attribute,etc。4 Z( [. O4 q* C/ B4 z
如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。
( p# _$ _1 Y. R7 a( q& I(2)        目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。求解优化问题时,该部分是必须的。
8 V4 s4 D/ W1 q# _! m) b(3)        数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束。其作用在于对集合的属性(数组)输入必要的数值。格式为:attribut=value_list。该部分主要是方便数据的输入。
6 V1 q% c' P0 K' j" m4 {' I9 |6 O(4)        初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响。通常可改变初值来得到不同的解,从而发现更好的解。+ ?, u. \, N2 g2 [8 f

! y0 u5 @. W0 i  T2 k0 ?" E编写LINGO程序要注意的几点:. N. o( {; h2 L5 X/ H1 {8 f/ \4 i
1.        所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾。
# ]5 F# F& e* ~. p% g& Q2.        LINGO求解非线性规划时已约定各变量非负。2 `& W/ l/ o, }
* P# B7 z6 Y& ~! G
LINGO内部函数使用详解。' O, {8 n' `: x: V5 u* y
LINGO建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头。5 |- ^; g5 P5 f6 k2 \, x
(1)        常用数学函数. {! {( z3 z- I/ y3 @. t/ _
@ABS(X) 返回变量X的绝对数值。    {, D; ^$ I% j. g0 K
@COS( X)% Z6 x% f5 s  X  h9 Z( v* f
返回X的余弦值,X的单位为弧度  q2 X: J0 e, [& i" P/ c3 A; u
@EXP( X)
! D0 E1 ^7 G/ h$ q* V- k返回 的值,其中e为自然对数的底,即 5 f" X) n* y/ O; }9 A  s5 Y7 X
@FLOOR( X)
; }! v. z2 d% z7 c8 S向0靠近返回X的整数部分。如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3。
% X/ F( F+ k/ J2 e@LGM( X)
5 ^" \; {# S: I7 }, t; E( H返回 函数的自然对数值。
8 R7 X2 Y; x4 s1 I( K@LOG( X)
6 h- P' T  _. @) j7 G" A( L返回变量X的自然对数值。
& i* L' G) s* Z& [1 h4 l@SIGN( X)3 d' A. U$ i4 ?( u! Q( S
返回变量X的符号值,当X<0时为-1;当X>0时为1。
$ X# D) [  |  W" L5 i4 ^@SIN( X)
# s- X+ K- B) [" G) w返回X的正弦值,X的单位为弧度4 U* [* b" S" ]3 b" s# K
@SMAX( X1, X2,..., XN)& p8 \6 Z# e7 v$ [: L6 O1 u0 z
返回一列值X1, X2,..., XN的最大值。/ M+ P& B: N* }9 F6 L$ c
@SMIN( X1, X2,..., XN)9 z; t# \% b5 S( O- ]& k
返回一列值X1, X2,..., XN的最小值。
7 D1 O% z2 e  b5 {$ r6 Q@TAN( X)
7 [& X3 e1 X# f; o4 m返回X的正切值,X的单位为弧度
1 Q# b( L* X! l
' B3 J& ~8 O6 j, h4 O, J(2)集合函数8 y2 Q$ t) V$ D
   集合函数的用法如下:
: A: {; \: W! [% a3 b! g6 p$ Iset_operator (set_name|condition:expression)/ e# J. j6 d2 z' E8 Y$ S1 M
其中set_oprator部分是集合函数名(见下),set_name是数据集合名,expression部分是表达式,|condition部分是条件,用逻辑表达式描述(无条件时可省略)。逻辑表达式中可以三种逻辑算符(#AND#(与),#OR#(或),#NOT#(非))和六种关系酸符(#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于))。2 ^2 R9 {0 g" L& r; x% i
常见的集合函数如下:
3 J# V; O9 y- Y2 t@FOR (set_name:constraint_expressions)对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constraint_expressions)描述。
# J. \  Y* `9 I! H5 o& c, q) @@MAX(set_name:expression)返回集合上的表达式(expression)的最大值。
& \6 d' ?2 Z. Y" {@MIN(set_name:expression)返回集合上的表达式(expression)的最小值。; z! K! n; {" e& `8 M
@SUM(set_name:expression)返回集合上的表达式(expression)的和。
# q! Y  h: p) h7 g1 ~@SIZE(set_name)返回数据集set_name中包含元素的个数。  }0 ^+ |- H+ V0 d
@IN(set_name,set_element)如果数据集set_name中包含元素set_element则返回1,否则返回0。
. M. ~$ V; Y; i1 _, X& e. p(3)变量界定函数
% B% ~4 Z( i* R* Y0 l   变量函数对变量的取值范围附加限制,共有四种。: C1 |- J( \7 u( o* O7 B
  @BND(L,X,U)限制
- I+ b% P7 O% C, [  @BIN(X)限制X为0或1。
4 I$ E9 D' \* s, ^- v  @FREE(X)取消对X的符号限制(即可取任意实数值)。2 H* m& N' O: l/ h' B
  @GIN(X)限制X为整数值。  f2 O( B, P0 S0 i: l% Z) m6 H
(4)财务函数
& m' w; S8 T0 Q# m) @, R% r) o  返回如下情形下的净现值:单位时段利率为 ,连续 个时段支付,每个时段支付费用,即:
5 d* Z' e+ z1 [ =
! c* v: t$ f/ n4 ~ 返回如下情形下的净现值:单位时段利率为 ,第 个时段支付单位费用,即:0 _- ~! M" t: k! y1 V
= ; N: T1 a- E$ j: D" L: s
/ Y5 r& \9 C; h) v* O% t3 i
  (5)概率函数1 g+ P* f* C; a) u0 i; J
@PSN(X)标准正态分布的分布函数。
1 |2 I6 O/ F) D+ c8 _@PSL(X)单位正态线性损失函数(即返回 的期望值,其中Z为标准正态随机变量)
, |; {# ?- D1 t# M  U@PPS(A,X)均值为A的Possion分布的分布函数(当X不是整数时,采用线性插值进行计算)。! k4 B3 r/ e( _2 J* }+ n
@PPL(X)Possion分布的线性损失函数(即返回 的期望值,其中Z为Possion分布随机变量)
7 i: r. k1 ^; H. E# K; \' l@PBN(P,N,X)二项分布的分布函数当N或X不是整数时,采用线性插值进行计算)。
( s2 ?: r# n, `( ?2 |@PHG(POP,G,N,X)超几何分布的分布函数(当POP,G,N或X不是整数时,采用线性插值进行计算)。
. X+ T. B  I) H8 d# {5 y) _' ^@PFD(N,D,X)自由度为N和D的F分布的分布函数。- h$ K* I8 G* V% g8 u  {
@PCX(N,X) 自由度为N的 分布的分布函数。
4 L; k; D! b) R1 b@PTD(N,X) 自由度为N的t分布的分布函数。
% f: B; R1 q. h  p8 P@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 11:38 , Processed in 0.395851 second(s), 110 queries .

回顶部