找回密码
 注册
Simdroid-非首页
查看: 123|回复: 5

matlab 优化问题(矛盾方程组)(50*5)矩阵多多指教

[复制链接]
发表于 2011-5-8 15:27:58 | 显示全部楼层 |阅读模式 来自 四川成都
各位大侠你们好!
小弟最近算一个优化问题有些不清楚望指教!多谢!
我是计算5个未知数。
有51组数距。即51个线性方程去解5个未知数。约束条件是非负。当我的向量d是准确值的时候和我推导的未知数基本没问题10, 20, 30, 40, 50
当我把向量d做微小的扰动1%到2%之间的时候,所得到的未知数相差相当的大,请问这种情况如何解决??谢谢万分感谢
下面是我运行的程序:
c=[0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
6.4651E-07 1.3153E-06 1.9841E-06 2.6529E-06 3.3217E-06
2.4969E-06 5.1721E-06 7.8473E-06 1.0523E-05 1.3198E-05
5.4173E-06 1.1437E-05 1.7456E-05 2.3475E-05 2.9494E-05
9.2741E-06 1.9975E-05 3.0676E-05 4.1377E-05 5.2078E-05
1.3933E-05 3.0654E-05 4.7374E-05 6.4094E-05 8.0814E-05
1.9262E-05 4.3339E-05 6.7416E-05 9.1493E-05 1.1557E-04
2.5125E-05 5.7896E-05 9.0668E-05 1.2344E-04 1.5621E-04
3.1389E-05 7.4193E-05 1.1700E-04 1.5980E-04 2.0260E-04
3.7921E-05 9.2095E-05 1.4627E-04 2.0044E-04 2.5461E-04
4.4587E-05 1.1147E-04 1.7835E-04 2.4523E-04 3.1211E-04
5.1275E-05 1.3218E-04 2.1310E-04 2.9403E-04 3.7496E-04
5.7963E-05 1.5409E-04 2.5040E-04 3.4671E-04 4.4302E-04
6.4651E-05 1.7708E-04 2.9011E-04 4.0313E-04 5.1616E-04
7.1339E-05 2.0100E-04 3.3208E-04 4.6317E-04 5.9426E-04
7.8027E-05 2.2572E-04 3.7620E-04 5.2669E-04 6.7717E-04
8.4716E-05 2.5111E-04 4.2233E-04 5.9354E-04 7.6476E-04
9.1404E-05 2.7704E-04 4.7033E-04 6.6361E-04 8.5690E-04
9.8092E-05 3.0337E-04 5.2006E-04 7.3676E-04 9.5345E-04
1.0478E-04 3.2997E-04 5.7141E-04 8.1285E-04 1.0543E-03
1.1147E-04 3.5670E-04 6.2422E-04 8.9174E-04 1.1593E-03
1.1816E-04 3.8345E-04 6.7837E-04 9.7331E-04 1.2683E-03
1.2484E-04 4.1020E-04 7.3373E-04 1.0574E-03 1.3811E-03
1.3153E-04 4.3695E-04 7.9015E-04 1.1439E-03 1.4977E-03
1.3822E-04 4.6371E-04 8.4751E-04 1.2327E-03 1.6180E-03
1.4491E-04 4.9046E-04 9.0568E-04 1.3237E-03 1.7417E-03
1.5160E-04 5.1721E-04 9.6451E-04 1.4166E-03 1.8687E-03
1.5828E-04 5.4396E-04 1.0239E-03 1.5114E-03 1.9990E-03
1.6497E-04 5.7072E-04 1.0836E-03 1.6080E-03 2.1323E-03
1.7166E-04 5.9747E-04 1.1437E-03 1.7061E-03 2.2686E-03
1.7835E-04 6.2422E-04 1.2039E-03 1.8058E-03 2.4077E-03
1.8504E-04 6.5097E-04 6.6210E-04 1.9067E-03 2.5495E-03
1.9172E-04 6.7772E-04 7.2213E-04 2.0089E-03 2.6938E-03
1.9841E-04 7.0448E-04 7.8190E-04 2.1122E-03 2.8405E-03
2.0510E-04 7.3123E-04 8.4127E-04 2.2163E-03 2.9895E-03
2.1179E-04 7.5798E-04 9.0010E-04 2.3213E-03 3.1406E-03
2.1848E-04 7.8473E-04 9.5827E-04 2.4270E-03 3.2937E-03
2.2516E-04 8.1149E-04 1.0156E-03 2.5332E-03 3.4487E-03
2.3185E-04 8.3824E-04 1.0721E-03 2.6397E-03 3.6055E-03
2.3854E-04 8.6499E-04 1.1274E-03 2.7466E-03 3.7638E-03
2.4523E-04 8.9174E-04 1.1816E-03 2.8536E-03 3.9237E-03
2.5192E-04 9.1849E-04 1.2344E-03 2.9606E-03 4.0848E-03
2.5861E-04 9.4525E-04 1.2857E-03 3.0676E-03 4.2472E-03
2.6529E-04 9.7200E-04 1.3355E-03 3.1746E-03 4.4106E-03
2.7198E-04 9.9875E-04 1.3834E-03 3.2816E-03 4.5750E-03
2.7867E-04 1.0255E-03 1.4296E-03 3.3886E-03 4.7402E-03
2.8536E-04 1.0523E-03 1.4737E-03 3.4956E-03 4.9060E-03
2.9205E-04 1.0790E-03 1.5157E-03 3.6026E-03 5.0724E-03
2.9873E-04 1.1058E-03 1.5554E-03 3.7096E-03 5.2392E-03
3.0542E-04 1.1325E-03 1.5927E-03 3.8167E-03 5.4062E-03
3.1211E-04 1.1593E-03 1.6274E-03 3.9237E-03 5.5734E-03];
d=[0.0000E+00
3.6450E-04
1.4446E-03
3.2203E-03
5.6715E-03
8.7781E-03
1.2520E-02
1.6877E-02
2.1830E-02
2.7358E-02
3.3440E-02
4.0058E-02
4.7193E-02
5.4825E-02
6.2936E-02
7.1507E-02
8.0519E-02
8.9954E-02
9.9793E-02
1.1002E-01
1.2061E-01
1.3155E-01
1.4282E-01
1.5440E-01
1.6629E-01
1.7846E-01
1.9090E-01
2.0359E-01
2.1651E-01
2.2965E-01
2.4300E-01
2.3848E-01
2.5218E-01
2.6604E-01
2.8004E-01
2.9416E-01
3.0839E-01
3.2271E-01
3.3711E-01
3.5156E-01
3.6606E-01
3.8058E-01
3.9513E-01
4.0967E-01
4.2421E-01
4.3874E-01
4.5324E-01
4.6770E-01
4.8211E-01
4.9646E-01
5.1075E-01];
d1=[0.0000E+00
3.6277E-04
1.4348E-03
3.2125E-03
5.6656E-03
8.7668E-03
1.2444E-02
1.6965E-02
2.1991E-02
2.7340E-02
3.3723E-02
4.0367E-02
4.6752E-02
5.4392E-02
6.2841E-02
7.1984E-02
8.0257E-02
8.9267E-02
1.0011E-01
1.0896E-01
1.2070E-01
1.3225E-01
1.4346E-01
1.5401E-01
1.6491E-01
1.7707E-01
1.8966E-01
2.0424E-01
2.1763E-01
2.3030E-01
2.4408E-01
2.3948E-01
2.5207E-01
2.6399E-01
2.7869E-01
2.9166E-01
3.0975E-01
3.2371E-01
3.3702E-01
3.5157E-01
3.6602E-01
3.7800E-01
3.9461E-01
4.0832E-01
4.2320E-01
4.4052E-01
4.5159E-01
4.6837E-01
4.8058E-01
4.9273E-01
5.0822E-01];
x1=c\d
[x2,resnorm,residual,exitflag]=lsqnonneg(c,d)
[x3,resnorm,residual,exitflag]=lsqlin(c,d,[],[],[],[],[0,0],[],[],optimset('largescale','off'))
x4=c\d1
[x5,resnorm,residual,exitflag]=lsqnonneg(c,d1)
[x6,resnorm,residual,exitflag]=lsqlin(c,d1,[],[],[],[],[0,0],[],[],optimset('largescale','off'))
cond(c)
x1 =
    9.8324
   20.1370
   30.0017
   39.9006
   50.0508

x2 =
    9.8324
   20.1370
   30.0017
   39.9006
   50.0508

resnorm =
  2.2835e-010

residual =
  1.0e-005 *
         0
    0.0025
    0.0022
    0.0153
    0.0230
    0.0328
    0.0296
    0.0145
    0.0733
    0.1162
   -0.0060
   -0.0260
    0.0293
    0.0308
    0.0099
   -0.0322
   -0.0654
   -0.1166
   -0.1252
    0.0095
   -0.1430
   -0.0697
    0.3090
   -0.1377
   -0.1207
   -0.3090
    0.4247
    0.3903
    0.1984
   -0.1736
   -0.2441
    0.4880
   -0.0641
   -0.2674
    0.0458
   -0.1226
   -0.1141
   -0.1005
    0.2075
    0.0120
   -0.2904
   -0.3987
    0.4665
   -0.1431
   -0.0673
    0.1048
    0.4735
    0.3408
   -0.0850
   -0.5188
    0.0444

exitflag =
     1
Optimization terminated.
x3 =
    9.8324
   20.1370
   30.0017
   39.9006
   50.0508

resnorm =
  2.2835e-010

residual =
  1.0e-005 *
         0
   -0.0025
   -0.0022
   -0.0153
   -0.0230
   -0.0328
   -0.0296
   -0.0145
   -0.0733
   -0.1162
    0.0060
    0.0260
   -0.0293
   -0.0308
   -0.0099
    0.0322
    0.0654
    0.1166
    0.1252
   -0.0095
    0.1430
    0.0697
   -0.3090
    0.1377
    0.1207
    0.3090
   -0.4247
   -0.3903
   -0.1984
    0.1736
    0.2441
   -0.4880
    0.0641
    0.2674
   -0.0458
    0.1226
    0.1141
    0.1005
   -0.2075
   -0.0120
    0.2904
    0.3987
   -0.4665
    0.1431
    0.0673
   -0.1048
   -0.4735
   -0.3408
    0.0850
    0.5188
   -0.0444

exitflag =
     1

x4 =
   68.0628
  -37.5993
   32.4039
   84.2340
   26.4976

x5 =
   15.8427
         0
   31.4698
   64.2644
   35.9759

resnorm =
  4.8296e-005

residual =
         0
    0.0000
   -0.0000
    0.0000
    0.0000
    0.0000
   -0.0000
    0.0002
    0.0003
    0.0001
    0.0004
    0.0005
   -0.0003
   -0.0002
    0.0001
    0.0007
   -0.0000
   -0.0005
    0.0005
   -0.0008
    0.0003
    0.0009
    0.0008
   -0.0003
   -0.0014
   -0.0015
   -0.0014
    0.0005
    0.0009
    0.0003
    0.0007
    0.0015
    0.0003
   -0.0017
   -0.0010
   -0.0022
    0.0017
    0.0013
    0.0003
    0.0004
    0.0004
   -0.0021
    0.0001
   -0.0006
   -0.0001
    0.0028
   -0.0004
    0.0020
    0.0000
   -0.0020
   -0.0006

exitflag =
     1
Optimization terminated.
x6 =
   15.8427
         0
   31.4698
   64.2644
   35.9759

resnorm =
  4.8296e-005

residual =
         0
   -0.0000
    0.0000
   -0.0000
   -0.0000
   -0.0000
    0.0000
   -0.0002
   -0.0003
   -0.0001
   -0.0004
   -0.0005
    0.0003
    0.0002
   -0.0001
   -0.0007
    0.0000
    0.0005
   -0.0005
    0.0008
   -0.0003
   -0.0009
   -0.0008
    0.0003
    0.0014
    0.0015
    0.0014
   -0.0005
   -0.0009
   -0.0003
   -0.0007
   -0.0015
   -0.0003
    0.0017
    0.0010
    0.0022
   -0.0017
   -0.0013
   -0.0003
   -0.0004
   -0.0004
    0.0021
   -0.0001
    0.0006
    0.0001
   -0.0028
    0.0004
   -0.0020
   -0.0000
    0.0020
    0.0006

exitflag =
     1

ans =
  1.6560e+003
发表于 2011-5-8 23:18:50 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
优化工具箱直接做了,用最小二乘原理

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-9 08:50:30 | 显示全部楼层 来自 四川成都
2# matlab1234

这三种方法都是根据最小二乘做的!

如果向量b不扰动的话,得出 的数值是相当接近的。可是做 微小扰动后偏差 比较大,这个问题我感到很棘手。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-11 07:48:41 | 显示全部楼层 来自 四川成都
没人回复啊
回复 不支持

使用道具 举报

发表于 2011-5-11 11:09:46 | 显示全部楼层 来自 英国
cond那么大,扰动带来比较夸张的变化正常啊。
本身就是ill-conditioned.

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-5-12 20:55:51 | 显示全部楼层 来自 四川成都
5# nwcwww 你好! 我晓得我上面这个矩阵条件数很大。我想咨询一下 ,条件数很大的矛盾方程组用最小二乘什么方法求解???万分感激!
回复 不支持

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-29 02:41 , Processed in 0.037700 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表