楼主: xiaoxiaocyb
3140 1

用lingo解决一组数据的线性优化问题及答案 [推广有奖]

  • 0关注
  • 0粉丝

高中生

45%

还不是VIP/贵宾

-

威望
0
论坛币
44 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
213 点
帖子
26
精华
0
在线时间
22 小时
注册时间
2009-7-23
最后登录
2011-2-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
已知量随另一量变化。下表列出一组和的对应值。
0.0 0.5 1.0 1.5 1.9 2.5 3.0 3.5 4.0 4.5
1.0 0.9 0.7 1.5 2.0 2.4 3.2 2.0 2.7 3.5
5.0 5.5 6.0 6.5 7.0 7.5 8.5 9.0 10.0
1.0 4.0 3.6 2.7 5.7 4.6 6.0 6.8 7.3
(1)拟合一条对这组数据点“最好的”直线。目标是使线性关系式的计算值与每个观测值间所构成的绝对偏差之和最小。
(2)拟合一条“最好的”直线,目标是使线性关系式的计算值与每个观测值间的最大偏差为最小。
(3)为这组数据点拟合一条“最好的”二次曲线,其目标与(1)和(2)相同。



(1)该问题是不可优微化的问题,求常数a,b使得绝对偏差总和达到最小,即

相应的Lingo语言如下:
model:
sets:
     quantity/1..19/:x,y;
endsets

min=@sum(quantityabs(a*x+b-y));
@free(a);
@free(b);


data:
   x=0.0,0.5,1.0,1.5,1.9,2.5,3.0,3.5,4.0,4.5,
     5.0,5.5,6.0,6.6,7.0,7.6,8.5,9.0,10.0;
   y=1.0,0.9,0.7,1.5,2.0,2.4,3.2,2.0,2.7,3.5,
     1.0,4.0,3.6,2.7,5.7,4.6,6.0,6.8,7.3;
enddata
end

其运行如下:
   Linearization components added:
      Constraints:          76
      Variables:            76
      Integers:             19

   Global optimal solution found.
   Objective value:                              11.46625
   Extended solver steps:                               0
   Total solver iterations:                            29


                       Variable           Value        Reduced Cost
                              A       0.6375000            0.000000
                              B       0.5812500            0.000000
                          
最优解为:a=0.6375 ,b=0.5813 ,即      

(2)其最优化问题为
                          
相应的Lingo语言如下:


model:
sets:
     quantity/1..19/:x,y;
endsets

min=@max(quantityabs(a*x+b-y));
@free(a);
@free(b);


data:
   x=0.0,0.5,1.0,1.5,1.9,2.5,3.0,3.5,4.0,4.5,
     5.0,5.5,6.0,6.6,7.0,7.6,8.5,9.0,10.0;
   y=1.0,0.9,0.7,1.5,2.0,2.4,3.2,2.0,2.7,3.5,
     1.0,4.0,3.6,2.7,5.7,4.6,6.0,6.8,7.3;
enddata
end

运行结果如下:                     
Variable           Value        Reduced Cost
A       0.6250000            0.000000
B      -0.4000000            0.000000

相应的最优直线方程为

               

(3)用(1)目标下的最优化问题为
                     

相应的Lingo语言如下:
model:
sets:
     quantity/1..19/:x,y;
endsets

min=@sum(quantityabs(c*x^2+b*x+a-y));
@free(a);
@free(b);


data:
   x=0.0,0.5,1.0,1.5,1.9,2.5,3.0,3.5,4.0,4.5,
     5.0,5.5,6.0,6.6,7.0,7.6,8.5,9.0,10.0;
   y=1.0,0.9,0.7,1.5,2.0,2.4,3.2,2.0,2.7,3.5,
     1.0,4.0,3.6,2.7,5.7,4.6,6.0,6.8,7.3;
enddata
end


其运行结果为:
Variable           Value        Reduced Cost
C       0.3372549E-01        0.000000
B       0.2945098            0.000000
A       0.9823529            0.000000            
     
于是其相应的最优解为:
                 


若用(2)的目标,即其相应的最优化问题为:
                 

相应的Lingo语言如下:
model:
sets:
     quantity/1..19/:x,y;
endsets

min=@max(quantityabs(c*x^2+b*x+a-y));
@free(a);
@free(b);


data:
   x=0.0,0.5,1.0,1.5,1.9,2.5,3.0,3.5,4.0,4.5,
     5.0,5.5,6.0,6.6,7.0,7.6,8.5,9.0,10.0;
   y=1.0,0.9,0.7,1.5,2.0,2.4,3.2,2.0,2.7,3.5,
     1.0,4.0,3.6,2.7,5.7,4.6,6.0,6.8,7.3;
enddata
end

其运行结果如下:
Variable           Value        Reduced Cost
C       0.1250000            0.000000
B      -0.6250000            0.000000
A        2.475000            0.000000

     其最优解为:
                  

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:lingo NGO Lin ING Constraints 数据 lingo 解决 线性

沙发
tmdxyz 发表于 2009-8-24 09:21:13 |只看作者 |坛友微信交流群
谢谢!又学了一招。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 18:52