全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
972 2
2014-03-16
悬赏 20 个论坛币 未解决
我得到别人一个程序,他想通过
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不解决此类问题。。

求解答。。跪谢。。

二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-17 12:51:31
怀疑你的程序拷贝过来漏了什么东西。
二维码

扫码加我 拉你入群

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

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

2014-3-17 17:32:15
hiv5 发表于 2014-3-17 12:51
怀疑你的程序拷贝过来漏了什么东西。
没有,我可以把程序给你看。要是你能给我个解答,我可以加论坛币
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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