全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
787 0
2014-03-15
我得到别人一个程序,他想通过
lb = .0001 * ones(1,4);
ub = 20 * ones(1,4);
initial = ones(1,4);
[params ll] = fmincon('pareto_nbd_ll',initial,[],[],[],[],lb,ub)
来优化pareto_nbd_ll这个函数。

而后我又得到他对pareto_nbd_ll的定义
function [f,g]=pareto_nbd_ll(param)
global p1x tx T
r     = param(1);
alpha = param(2);
s     = param(3);
beta  = param(4);
maxab = max(alpha,beta);
absab = abs(alpha-beta);
param2 = s+1;
if alpha < beta
    param2 = r+p1x;
end   
part1 = (alpha^r*beta^s/gamma(r))*gamma(r+p1x);
part2 = 1./((alpha+T).^(r+p1x).*(beta+T).^s);
if absab == 0
   F1=1./((maxab+tx).^(r+s+p1x));
   F2=1./((maxab+T).^(r+s+p1x));
else
   F1=h2f1(r+s+p1x,param2,r+s+p1x+1,absab./(maxab+tx))./...
       ((maxab+tx).^(r+s+p1x));
   F2=h2f1(r+s+p1x,param2,r+s+p1x+1,absab./(maxab+T))./...
       ((maxab+T).^(r+s+p1x));
end
f = -sum(log(part1.*(part2+(s./(r+s+p1x)).*(F1-F2))));
[f/1000 param]
g=[];


我很想知道为何要定义这个g。[f/1000 param]
g=[];这两句是为了什么而存在?


如果我只定义f,我试了下,依然有结果,但是会warning,说trureg不解决此类问题。。


求解答。。跪谢。。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群