请高手帮忙 看一下此lingo程序错在哪里? 急!!!

来源:百度知道 编辑:UC知道 时间:2024/07/07 23:55:07
model:
sets:
datas/1..587/:x,u;
endsets
min=@sum(datas(n)|n#GT#1:u(n-1)*p)
+@sum(datas(n)|n#GT#1:u(n-1)*q);
@for(data(n)|n#GT#1:(p-q)*x(n-1)+(1-r)*(p+q)*u(n-1)>=x(n)-(1-r)*u(n));
@for(data(n)|n#GT#1:(p-q)*x(n-1)-(1-r)*(p+q)*u(n-1)<=x(n)+(1-r)*u(n));
p>=0;
q>-0;
p*q=0;
data:
x,u=@OLE('D:\data.xls');
r=0;
enddata
end
从excel里面读取两列587行的数据到x,u.但是在lingo里面始终运行不出来,拜托各位高手,高分悬赏!!!!

你程序中这两行
@for(data(n)|n#GT#1:(p-q)*x(n-1)+(1-r)*(p+q)*u(n-1)>=x(n)-(1-r)*u(n));
@for(data(n)|n#GT#1:(p-q)*x(n-1)-(1-r)*(p+q)*u(n-1)<=x(n)+(1-r)*u(n));
data要改成datas,你那样集合名没统一
你试试

好像在lingo中不能出现a(i-1)这类