2017-06-04 39 views
-2

我在matlab中有一个函数function UFamily = CalcUFamily(hh,hw)。该功能的价值由hh和hw(家庭中夫妻的工作时间)决定。我想获得最大限度地发挥功能的hh和hw UFamily在Matlab中最大化函数

我该怎么办?我无法使fmincon正常工作。

感谢您的帮助! :)

+0

您需要添加你如何试图用'fmincon'你的代码,几乎肯定需要添加有关(因为如果没有代码)'CalcUFamily' – Dan

+0

'H = [详情1000 1000]; %起始值 lb = [0 0]; %h的下限% ub = [3500 3500]; % Uoptimal = fmincon(@(h1,h2)-U(h1,h2),h,[],[],[],[],lb,ub);' 'CalcUFamily'一个很长的代码,但它是基于家庭中女性和男性的工作时间。 – KGB91

+0

请将代码添加到您可以编辑的问题中,像这样的注释中的代码不可读取 – Dan

回答

0

fmincon最小化的函数应该使用'h'(1x2)作为其输入,而函数CalcUFamily需要两个输入hh和hw。你可以这样做:

myFun = @(h) -CalcUFamily(h(1), h(2)); % function to minimize with one input 
Uoptimal = fmincon(myFun, [1000 1000], [], [], [], [], lb, ub); 
+0

谢谢!这项工作是否可以分别为男性和女性进行1小时到3500小时的测试? – KGB91

+0

我不能回答这个问题,因为这与您如何评估它有关,即您的CalcUFamily函数如何计算分数。 –

+0

我得到: 'Berakningsmodeller中的错误(第6行) Uoptimal = fmincon(myFun,[1000 1000],[],[],[],[],lb,ub); 引起: 初次用户提供的目标函数评估失败。 FMINCON无法继续。# 你需要我的其他功能的整个代码?它很长,但如果需要的话,我可以发布它。 – KGB91