使用Matlab Fmincon代替Excel求解器工具

时间:2013-10-17 04:55:29

标签: matlab solver

我是一名业余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行)

1 个答案:

答案 0 :(得分:0)

因此,您似乎只使用一个输入参数创建了函数objectivefunction3,即x和一个输出变量f

首先,我建议您尝试自行运行您的功能,以检查它是否正常工作。因此,我认为您应该声明您在函数中声明的变量(即FinalAlphasVCV)或者输入参数。 选项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