MATLAB中的约束极小化
我想解决一个受约束的最小化问题,我想寻求一些关于如何构造代码的帮助 我理解通过使用参数MATLAB中的约束极小化,matlab,optimization,constraints,minimization,Matlab,Optimization,Constraints,Minimization,我想解决一个受约束的最小化问题,我想寻求一些关于如何构造代码的帮助 我理解通过使用参数@mycon我应该使用fmincon,但我正在努力使它适应我的情况。如有任何建议,将不胜感激 这些是我的文件(a和b是预定义的参数): f1.m function [y1, y2, y3]=f1(x1, x2, a) ... end f2.m function w1=f2(x1, x2, y2, y3, b) ... end 我要编写代码的问题: 最小y1w.r.tx1,x2 这样,y1您可以使用以下内
@mycon
我应该使用fmincon
,但我正在努力使它适应我的情况。如有任何建议,将不胜感激
这些是我的文件(a
和b
是预定义的参数):
f1.m
function [y1, y2, y3]=f1(x1, x2, a)
...
end
f2.m
function w1=f2(x1, x2, y2, y3, b)
...
end
y1
w.r.tx1
,x2
这样,
y1您可以使用以下内容:
x = fmincon(@(x) f1(x(1), x(2), a), [x1_start x2_start], [], [], [], [], [], [], @(x) mycon(x(1), x(2), a, b));
x1 = x(1)
x2 = x(2)
mycon的定义为:
% C <= 0 and Ceq == 0
function [C, Ceq] = mycon(x1, x2, a, b)
[y1, y2, y3] = f1(x1, x2, a);
C = y1 - f2(x1, x2, y2, y3, b);
Ceq = [];
end
%C一个简单的具体示例可能有助于使其可运行,请参见,谢谢!一个问题:Matlab如何知道,在编写fmincon(@(x)f1(x(1),x(2),a),…)
时,它必须最小化wrtox(1),x(2)
只需f1
的第一个输出y1
,因为fmincon
只需要一个返回参数。如果不需要额外的返回参数,Matlab会自动丢弃它们,即y1=f1(x1,x2,a)
确实会将第一个返回的参数存储到y1
。