我是一名业余Matlab用户。我转向Matlab,因为excel中的求解器限制了可以使用变量的变量数量。我正在尝试使用Fmincon最大化受限制的函数。但是当我尝试运行它时,我收到了一个错误。
我的代码是:
% Objective function m file:
function f = objectivefunction3(x)
f = -FinalAlphas*x'+ x*VCV*x'
% Code to run Fmincon:
[x, fval] = fmincon(@objectivefunction2,x0,A,B)
运行时出现以下错误:
Error in objectivefunction3 (line 2)
f = FinalAlphas*x'- x*VCV*x'
fmincon出错(第631行)
答案 0 :(得分:0)
因此,您似乎只使用一个输入参数创建了函数objectivefunction3
,即x
和一个输出变量f
。
首先,我建议您尝试自行运行您的功能,以检查它是否正常工作。因此,我认为您应该声明您在函数中声明的变量(即FinalAlphas
和VCV
)或者输入参数。
选项1(声明函数变量):
function f = objectivefunction3(x)
FinalAlphas = ... % put your values here
VCV = ... % put your values here
f = -FinalAlphas*x'+ x*VCV*x'
选项2(定义为输入参数):
function f = objectivefunction3(x,FinalAlphas,VCV)
f = -FinalAlphas*x'+ x*VCV*x'
看看你是否让它自己工作,然后尝试将其实现到fmincon
。