一、基本概念
模式搜索法每一次迭代都是交替进行横向移动和模式移动。轴向移动的目的是探索有利的下降方向,而模式移动的目的则是沿着有利方向加速移动。在几何上是寻找具有较小函数值的“山谷”,力图使迭代产生的序列沿“山谷”逼近极小值点。
clear all
clc
fun = @psobj;
options = optimoptions('patternsearch','Display','iter','PlotFcn',@psplotbestf);
x0 = [0,0];
A = [];
b = [];
Aeq = [];
beq = [];
lb = [];
ub = [];
nonlcon = [];
x = patternsearch(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
function y = psobj(x)
y = exp(-x(1)^2-2*x(2)^2)*(1-5*x(1) -3*x(2) + 9*x(1)*cos(x(2)));
结果
Iter f-count f(x) MeshSize Method
0 1 1 1
1 3 -0.270671 2 Successful Poll
2 7 -0.270671 1 Refine Mesh
3 11 -0.270671 0.5 Refine Mesh
4 15 -0.303265 1 Successful Poll
5 18 -0.758251 2 Successful Poll
6 22 -0.758251 1 Refine Mesh
7 26 -0.758251 0.5 Refine Mesh
8 27 -0.9207 1 Successful Poll
9 31 -