现代优化方法与MATLAB实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例8.2
第1种方法:首先建立适应度函数FitFun.m文件
function y=FitFun(x)
y=x(1)^2+2*x(2)^2-4*x(1)-8*x(2)+15;
建立约束函数文件NonCon.m
function[c,ceq]=NonCon(x)
c=x(1)^2+x(2)^2-9;
ceq=[];
第2种方法:利用第1种方法中适应函数FitFun.m和约束函数NonCon.m,编写m文件调用ga函数进行求解。
objectivef=@FitFun;
nvars=2;
lb=[0 0];
ub=[];
constrainf=@NonCon;
[x,fval]=ga(objectivef,nvars,[],[],[],[],lb,[],constrainf)
上述m文件运行结果如下
X=2.0000 2.0000
fval=3.0000
可见与第1种算法相同。
==============================================================
例8-3
第1种方法:首先建立目标函数simple.m文件
function y=simple(x)
y=(4-2.1*x(1)^2+x(1)^4/3)*x(1)^2+x(1)*x(2)+(-4+4*x(2)^2)*x(2)^2;
Simulannea 第2种方法:利用第1种方法中目标函数simple.m,编写m文件调用lbnd 函数进行求解。
objectivef=@simple
x0=[0.5 0.5];
lb=[-64 -64];
ub=[64 64];
[x fval]=simulannealbnd(objectivef,x0,lb,ub)
上述m文件运行结果如下
X=-0.0896 0.7127
fval=-1.0316
可见与第1种算法相同。