Lingo实验报告3

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告

课程名称:模型优化与LINGO软件应用专业班级:

姓名:

学号:

湖南工业大学理学院

实验名称Lingo的基本编程方法

实验地点公共楼405 实验时间

实验成绩指导指导教师签名

一、实验目的及任务

1.编写简单的Lingo程序

2.了解Lingo语言中集合与函数的使用

二、实验内容与步骤

1.用lingo软件求解:

max z=cTx+1/2xTQx;

s.t -1≤x1x2+x3x4≤1;

-3≤x1+x2+x3+x4≤2;

x1,x2,x3,x4∈{-1,1}

其中c=(6,8,4,-2)T,Q是三对角矩阵,主对角线上元素全为-1,两条次对角线上元素全为2.

sets:

set1/1..4/:x,c;

b/1,2/:value;

m(set1,b):d;

link(set1,set1):Q;

endsets

data:

c=6 8 4 -2;

Q=-1 2 0 0

2 -1 2 0

0 2 -1 2

0 0 2 -1;

value=1,-1;

enddata

max=-1/2*x(1)*x(1)-1/2*x(2)*x(2)-1/2*x(3)*x(3)-1/2*x(4)*x(4)+2*x(1)*x(2 )+2*x(2)*x(3)+2*x(3)*x(4)+6*x(1)+8*x(2)+4*x(3)-2*x(4);

@sum(set1(i):x(i))<=2;

-3<=@sum(set1(i):x(i));

-1<=x(1)*x(2)+x(3)*x(4);

x(1)*x(2)+x(3)*x(4)<=1;

@for(set1(i):x(i)=@sum(b(j):value(j)*d(i,j)));

@for(set1(i):@sum(b(j):d(i,j))=1);

@for(set1(i):@gin(x(i)));

结果

Local optimal solution found.

Objective value: 20.00000

Extended solver steps: 0

Total solver iterations: 5

Variable Value Reduced Cost X( 1) 1.000000 0.000000 X( 2) 1.000000 -2.000010 X( 3) 1.000000 -6.000001 X( 4) -1.000000 2.000005 C( 1) 6.000000 0.000000 C( 2) 8.000000 0.000000 C( 3) 4.000000 0.000000 C( 4) -2.000000 0.000000 VALUE( 1) 1.000000 0.000000 VALUE( 2) -1.000000 0.000000 D( 1, 1) 1.000000 0.000000 D( 1, 2) 0.000000 0.000000 D( 2, 1) 1.000000 0.000000 D( 2, 2) 0.000000 0.000000 D( 3, 1) 0.5000000 0.000000 D( 3, 2) 0.5000000 0.000000 D( 4, 1) 0.5000000 0.000000 D( 4, 2) 0.5000000 0.000000 Q( 1, 1) -1.000000 0.000000 Q( 1, 2) 2.000000 0.000000 Q( 1, 3) 0.000000 0.000000 Q( 1, 4) 0.000000 0.000000 Q( 2, 1) 2.000000 0.000000 Q( 2, 2) -1.000000 0.000000 Q( 2, 3) 2.000000 0.000000 Q( 2, 4) 0.000000 0.000000 Q( 3, 1) 0.000000 0.000000 Q( 3, 2) 2.000000 0.000000 Q( 3, 3) -1.000000 0.000000 Q( 3, 4) 2.000000 0.000000 Q( 4, 1) 0.000000 0.000000 Q( 4, 2) 0.000000 0.000000 Q( 4, 3) 2.000000 0.000000 Q( 4, 4) -1.000000 0.000000

Row Slack or Surplus Dual Price

1 20.00000 1.000000

2 0.000000 0.000000

3 5.000000 0.000000

4 2.000000 0.000000

5 0.000000 6.999996

6 0.000000 0.000000

7 0.000000 0.000000

8 0.000000 0.000000

9 0.000000 0.000000

10 0.000000 0.000000

11 0.000000 0.000000

12 0.000000 0.000000

13 0.000000 0.000000

三、实验结果

(1)min=(x1^2+x2-11)^2+(x1+x2^2-7)^2

(2)min (x1^2+12x2-1)^2+(49x1^2+49x2^2+84x1+2324x2-681)

四、附件

sets:

set1/1..4/:x,c;

b/1,2/:value;

m(set1,b):d;

link(set1,set1):Q;

endsets

data:

c=6 8 4 -2;

Q=-1 2 0 0

2 -1 2 0

0 2 -1 2

0 0 2 -1;

value=1,-1;

enddata

max=-1/2*x(1)*x(1)-1/2*x(2)*x(2)-1/2*x(3)*x(3)-1/2*x(4)*x(4)+2*x(1)*x(2 )+2*x(2)*x(3)+2*x(3)*x(4)+6*x(1)+8*x(2)+4*x(3)-2*x(4);

@sum(set1(i):x(i))<=2;

-3<=@sum(set1(i):x(i));

-1<=x(1)*x(2)+x(3)*x(4);

x(1)*x(2)+x(3)*x(4)<=1;

@for(set1(i):x(i)=@sum(b(j):value(j)*d(i,j)));

@for(set1(i):@sum(b(j):d(i,j))=1);

@for(set1(i):@gin(x(i)));

相关文档
最新文档