数学建模社区-数学中国

标题: LINGO里怎么对负数向上取整? [打印本页]

作者: Mr_Longly    时间: 2011-11-29 15:45
标题: LINGO里怎么对负数向上取整?
本帖最后由 Mr_Longly 于 2011-11-29 15:56 编辑

我想实现的是
1.2——2
0——0
-0.1——0 求高手啊~
作者: madio    时间: 2011-11-29 15:56
这个好像没有一个函数可以实现,我觉得可以使用@if语句来实现,因为@floor函数是向接近于零的方向取整,符合你的对于负数取整的要求,但是正数的要求不符合,你可以用@sign函数来判断数的正负,如果是正数再加一就可以了。
作者: Mr_Longly    时间: 2011-11-29 16:15
madio 发表于 2011-11-29 15:56
这个好像没有一个函数可以实现,我觉得可以使用@if语句来实现,因为@floor函数是向接近于零的方向取整,符合 ...

MIN=@SUM(MAS(I):FARE(I)*(@IF(T(I)#EQ#0,0,@FLOOR((T(I)/LIMIT_N(I))-1E-5)+1));
LIMIT_N是个常数数列……好像我不能再对T进行等式限定了……
作者: Mr_Longly    时间: 2011-11-29 16:24
Mr_Longly 发表于 2011-11-29 16:15
MIN=@SUM(MAS(I):FARE(I)*(@IF(T(I)#EQ#0,0,@FLOOR((T(I)/LIMIT_N(I))-1E-5)+1));
LIMIT_N是个常数数列… ...

T(I)是我要求解的未知数组……,求助啊~……
作者: Mr_Longly    时间: 2011-11-29 16:54
madio 发表于 2011-11-29 15:56
这个好像没有一个函数可以实现,我觉得可以使用@if语句来实现,因为@floor函数是向接近于零的方向取整,符合 ...

已经解决了,谢谢斑竹~~你太有爱了!!
作者: 大鲵2003    时间: 2011-11-30 20:39

作者: shuai1991    时间: 2011-12-4 15:45
MIN=@SUM(MAS(I):FARE(I)*(@IF(T(I)#EQ#0,0,@FLOOR((T(I)/LIMIT_N(I))-1E-5)+1));

作者: ehi28    时间: 2011-12-12 12:51
嗯,不错,支持一下.

作者: silalo    时间: 2011-12-14 22:51
@abs再判断




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5