example3_4.m
来自「Matlab 6.X辅助优化计算与设计----源代码」· M 代码 · 共 28 行
M
28 行
%编写目标函数和梯度的.m文件
function [f,g]=objfun(x)
f=exp(x(1))*(3*x(1)^2+2*x(2)^2+3*x(1)*x(2)+2*x(2)+1);
t=exp(x(1))*(3*x(1)^2+2*x(2)^2+3*x(1)*x(2)+2*x(2)+1);
%g中包含着目标函数的偏微分信息
g=[t+exp(x(1))*(8*x(1)+3*x(2)),exp(x(1))*(3*x(1)+3*x(2)+2)];
%编写不等式约束及其梯度的.m文件
function [c, ceq,dc,dceq]=confun(x)
%不等式约束
c=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];
%约束的梯度
dc=[x(2)-1,-x(2);x(1)-1,-x(1)];
%没有非线性等式约束
ceq=[];
dceq=[];
%dc的列包含着不同约束各自的偏微分,也就是说,dc的第i列是第i个约束对x的%偏微分,在此处dc为:
%
x0=[-1,1];
lb=[];
ub=[];
%采用标准算法
options=optimset ('largescale','off');
%采用梯度
options=optimset (options,'GradObj','on','GradConstr','on');
[x,fval]=fmincon('objfun',x0,[],[],[],[],lb,ub,'confun',options)
[c,ceq]=confun(x)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?