gh688 发表于 2008-5-29 15:16

两个matlab版本的结果不吻合

我电脑上装了一个matlab7.1和matlabR2007,刚才在运行一个完全相同的程序时出现的结果差异较大,原因我不清楚。
a=4;   bb=160;   c=100;   d=0.5;   e=0.0586;   f=0.057;   g=0;
minQ=0.805*10^8;   maxQ=1.3*10^8;
minG=260*10^8;      maxG=560*10^8;
minCOD=0;             maxCOD=3800*10^4;
minP=8*10^4;          maxP=12*10^4;
ff=';
A=;
b=;
Aeq=;
beq=;         lb=;
digits(5);
=linprog(ff,A,b,Aeq,beq,lb)
vpa(x)
matlab7.1结果:                                                                                                                                 
fval =
1.0196e+008

ans =
3862.6
.10179e9
1825.6
815.22
93117.
67998.
matlabR2007结果:
fval =
1.7511e+008   
                                                      
ans =                                                                  
27.860
.16274e9
13.193
5.8818
.12373e8
322.47

ch_j1985 发表于 2008-5-29 15:25

Matlab R2008a运行结果如下:
Exiting: One or more of the residuals, duality gap, or total relative error
has stalled:
         the primal appears to be infeasible and the dual unbounded since
         the dual objective > 1e+10
         and the primal objective > -1e+6.
x =
1.0e+008 *
    0.0000
    1.6277
    0.0000
    0.0000
    0.0701
    0.0645

fval =
1.7623e+008

ans =

.20424e-2
.16277e9
.96519e-3
.43104e-3
.70095e7
.64491e7

gh688 发表于 2008-5-29 16:16

刚才我又运行了几个很大的计算程序比较了一下matlab7.1和matlabR2007的计算结果,发现二者的结果完全相同。所以我估计可能是linprog这种线性规划函数的原因(这种函数求解的不是精确结果而是很多约束条件下的最优值)。另外有可能不同版本的函数库里做了一些修改。

lxq 发表于 2008-5-30 00:07

有没有可能是数据格式或精度设置不同导致的?

无水1324 发表于 2008-5-30 11:06

回复 3楼 的帖子

这种规划问题出现不同的结论有可能,优化还可能出现局部最优化解和全局最优化解。
页: [1]
查看完整版本: 两个matlab版本的结果不吻合