数学建模社区-数学中国

标题: 数学建模lingo 程序报错 求大神指导啊 [打印本页]

作者: Iron_man.    时间: 2014-4-2 11:46
标题: 数学建模lingo 程序报错 求大神指导啊
model:
sets:
row/1..6/;
col/1..6/:da,x,y,a;
matrix(row,col):b,c,r;
endsets
min=@sum(col:(da)^2);
@for(col:@bnd(-0.0833333,da,0.0833333));
@for(row(i):@for(col(j)|i#gt#j:
@if(b(i,j)#gt#0,2*b(i,j)+da(i)+da(j),-(2*b(i,j)+da(i)+da(j)))>2*c(i,j)));
@for(row(i):@for(col(j)|i#GT#j:r(i,j)=@sqrt((y(j)-y(i))^2+(x(j)-x(i))^2)));
@for(row(i):@for(col(j)|i#GT#j:c(i,j)=@asin(8/r(i,j))));
@for(row(i):@for(col(j)|i#GT#j:b(i,j)=@atan((@sin(a(j))-@sin(a(i)))/(@cos(a(j))-@cos(a(i))))-@atan((y(i)-y(j))/(x(i)-x(j)))));
@for(row(i):@for(col(j):@free(c(i,j))));
@for(row(i):@for(col(j):@free(b(i,j))));
@for(col:@free(da));
init:
da=0 0 0 0 0 0;
endinit
data:
x=150, 85, 150, 145, 130, 0;
y=140, 85, 155, 50, 150, 0;
a=0.675, 0.6555, 0.6125, 0.4417, 0.6389, 0.1444;
enddata
end






数学建模飞行管理问题的一个老题,报错内容为 Arithmetic error in constraint: 48
lingo初学者,感激不尽。
作者: Iron_man.    时间: 2014-4-2 11:47
- -怎么冒号都变成愤怒的表情了
作者: madio    时间: 2014-4-2 12:19
需要禁用表情,表情符号和代码一样的
作者: Iron_man.    时间: 2014-4-2 13:13
madio 发表于 2014-4-2 12:19
需要禁用表情,表情符号和代码一样的

嗯嗯谢谢!
作者: Iron_man.    时间: 2014-4-2 13:19
madio 发表于 2014-4-2 12:19
需要禁用表情,表情符号和代码一样的

Arithmetic error in constraint: 48   
算术错误意味着什么呢?
我写了三条双层的for循环赋值语句,可我已经考虑到了不能出现r(i,i)的情况(分母不能为零)并且限制了j>i
为什么还报错


作者: Iron_man.    时间: 2014-4-2 13:20
madio 发表于 2014-4-2 12:19
需要禁用表情,表情符号和代码一样的

Arithmetic error in constraint: 48   
算术错误意味着什么呢?
我写了三条双层的for循环赋值语句,可我已经考虑到了不能出现r(i,i)的情况(分母不能为零)并且限制了j>i
为什么还报错

作者: madio    时间: 2014-4-2 14:43
  1. @for(row(i):@for(col(j)|i#GT#j:b(i,j)=@atan((@sin(a(j))-@sin(a(i)))/(@cos(a(j))-@cos(a(i))))-@atan((y(i)-y(j))/(x(i)-x(j)))));
复制代码
就是这句代码的问题,你具体说说要写一个什么样子的约束?
作者: Iron_man.    时间: 2014-4-2 18:20
K6O{0(UFUKTC`TVA7H_4P07.jpg   就是这样一个式子。

作者: Iron_man.    时间: 2014-4-2 18:21
madio 发表于 2014-4-2 14:43
就是这句代码的问题,你具体说说要写一个什么样子的约束?

K6O{0(UFUKTC`TVA7H_4P07.jpg 就是这样一个式子。

作者: madio    时间: 2014-4-3 20:14
Iron_man. 发表于 2014-4-2 18:21
就是这样一个式子。

你这个错误就在分母上,因为x的输入值有相同的值,就是两个150,这样一做减法就可能出现分母为零的情况,估计是你的输入数据有误.
作者: wujianjack2    时间: 2014-4-3 22:29
   此题在百度LINGO吧有人问过,就是你么?吧主和站长的观点一致,你的数据导致了出现数学运算错误。另有Dazz_Pum指出你的LINGO编程基本规则有待加强,我个人认为是有道理的,一般不要混淆元素所属集合。且你的有些for循环中其实可以直接写成"@for(matrix(i,j)|i#gt#j:..."。
  权供参考。
作者: Iron_man.    时间: 2014-4-20 11:13
wujianjack2 发表于 2014-4-3 22:29
此题在百度LINGO吧有人问过,就是你么?吧主和站长的观点一致,你的数据导致了出现数学运算错误。另有Da ...

嗯嗯,是的。谢谢大家




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