R2012a和R2014a中fmincon的实现是否有所不同?

时间:2015-12-21 12:03:54

标签: matlab

在我的电脑上,我使用R2014a,我的脚本运行正常。我大学的模拟服务器运行R2012a,运行我的脚本时出错。

这是错误:

  

警告:默认的信任区域反射算法无法解决   您指定的约束的问题。 FMINCON将使用   相反,有效集算法。有关适用的信息   算法,请参阅文档中的选择算法。

     

使用svd输入到SVD时出错不得包含NaN或Inf。

     

pinv出错(第29行)[U,S,V] = svd(A,0);

     

qpsub中的错误(第463行)                       projSD = pinv(projH)*( - Zgf);

     

nlconst中的错误(第619行)           [SD,lambda,exitflagqp,outputqp,howqp,ACTIND] ......

     

fmincon出错(第794行)       [X,FVAL,LAMBDA,EXITFLAG,OUTPUT GRAD,粗麻布] = ...

     

simulation_coop中的错误(第85行)                       [q,fval] = fmincon(neg_aux_fun,q0,[],[],[],[],[],ub,@(q)约束(q,a_t,b_t,W,p_cell_lin,ss_lin,   h_cell2bs(:,:,N),                       h_trans2bs(:,:,n),rate),options);

使用R2014a,我既没有警告也没有错误。所以你知道问题可能是什么吗?

1 个答案:

答案 0 :(得分:3)

这个答案更像是一个方法:

  1. 首先,检查您是否在完全相同的数据上运行脚本。不同的数据(类型,大小,值)可能会产生不同的结果。

  2. 查看优化工具箱的发行说明。如果R2012a和R2014a之间有任何重大变化,您可以在R2012b,R2013a,R2013b或R2014b版本的工具箱的一个/几个发行说明中找到这些变化。以下是列表:http://de.mathworks.com/help/optim/release-notes.html

  3. 稍后修改

    正如您在上面链接的页面中看到的那样,R2012b更改了fmincon的默认算法。