数学建模社区-数学中国

标题: data段需要输入分数求解? [打印本页]

作者: zhangc_ningbo    时间: 2012-10-5 20:08
标题: data段需要输入分数求解?
今天在用lingo编程序的时候,发现data段输入分数会出现语法错误。但是为了计算的精确,必须要输入分数,有没有谁有好的方法解决这个问题,小弟先谢谢各位了!
作者: madio    时间: 2013-7-13 16:43
lingo不是用来做精确计算的数学软件,所以这里想精度高一些就是使用有效数字多一些的小数。
作者: qlb061    时间: 2013-7-13 18:52
本帖最后由 qlb061 于 2013-7-13 18:56 编辑

Lingo在数值输入时可以使用分数,但是它会用浮点数值进行计算,一般浮点精度至少可以表示小数点
后面16位,不同机器或者不同版本可能有所不同。
比如,计算整数1-100的倒数:
  1. model:
  2. sets:
  3.         mydata/1..100/:v;
  4. endsets

  5. data:
  6.         @text() = @writefor(mydata(i):@name(v(i)),': ', @format('.20f',v(i)),@newline(1));
  7. enddata

  8. calc:
  9.         @set('terseo',1);!terse output only;
  10.         @for(mydata(i): v(i) = 1 / i);
  11.         @set('terseo');!default setting;
  12. endcalc
复制代码
Lingo11.0会得到如下部分结果:
  1. Feasible solution found.
  2.   Total solver iterations:                             0


  3. V( 1): 1.00000000000000000000
  4. V( 2): 0.50000000000000000000
  5. V( 3): 0.33333333333333331000
  6. V( 4): 0.25000000000000000000
  7. V( 5): 0.20000000000000001000
  8. V( 6): 0.16666666666666666000
  9. V( 7): 0.14285714285714285000
  10. V( 8): 0.12500000000000000000
  11. V( 9): 0.11111111111111110000
  12. V( 10): 0.10000000000000001000
复制代码

作者: snowwomanPeter    时间: 2014-7-17 17:49
lingo中输入分数会将其当成出发看待,data中不能进行数值的计算,所以会出现错误。




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