lingo

版权声明:本文为博主原创文章,如果转走了就评论说一声就好了哈。 https://blog.csdn.net/qq_36124802/article/details/81773658

基本语法:

@free(x1); //lingo中默认变量为非负,这里使得变量可为负
@free(x2);
@bnd(-30,x1,30); //定义变量x1的范围为[-30,30]
@bnd(-30,x2,30);
min=100*(x2-x1*x1)*(x2-x1*x1)+(1-x1)*(1-x1); //求最小值

@gin(s1);!表示限制s1为整数型数值

对下标集合加限制|i#GT#1,是一个表达式,#GT#是一个逻辑运算,意思为大于,也就是i大于1

#le# 若左边的运算符小于或等于右边的运算符,则为 true;否则为 flase

model:
data:
N=6;
enddata
sets:
number/1..N/:x;
endsets
data:
x = 5 1 3 4 6 10;
enddata
s=@sum(number(I) | I #le# 5: x);
end

这里number/1...N/:x,表示创建了N个下标,然后属性只有x,相当于一位数组,数组中每个变量均为一个结构体

这里是累加1-5

sets:
r/1..5/:x;
endsets
data:
x = 1 2 3 4 5;
enddata
y=@prod(r(i)|i#ge#2:x(i));!y=x2*x3*x4*x5;
!#ge#表示从2开始的累乘

对函数进行积累限制

sets:
r/1..5/:x;
endsets
@for(r(i):@bnd(1,x(i),5));
max=@prod(r(i)|i#ge#2:x(i));!y=x2*x3*x4*x5;

猜你喜欢

转载自blog.csdn.net/qq_36124802/article/details/81773658
今日推荐