【发布时间】:2020-09-27 09:25:07
【问题描述】:
我想使用 MATLAB 函数 fmincon 仅使用梯度向量(没有标量函数)。但我有麻烦。例如,我尝试了以下方法,但它不起作用。请问有什么帮助吗?谢谢!
fun = @rosenbrockwithgrad;
x0 = [-1,2];
A = [];
b = [];
Aeq = [];
beq = [];
lb = [-2,-2];
ub = [2,2];
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
function [grad] = rosenbrockwithgrad(x)
grad = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));
200*(x(2)-x(1)^2)];
end
【问题讨论】:
-
必须使用函数
fun将目标(成本)函数传递给fmincon。您可以将梯度解析地作为另一个参数传递。
标签: matlab