1.目标函数
function y= TextF(x)
%目标函数
%输入参数x[x1,x2];
%输出参数y
y = x(1)*x(1)+2*x(2)*x(2)-4*x(1)-2*x(1)*x(2);
end</span>
2.修订的Powell算法
function [Matrix,Value] = Powell
%--------------------------------Step1-------------------------------------
%设置初始迭代轮次k=1;迭代精度:Err;初始点;初始搜索方向组;
Err = 0.01;
X0 = [1,1];
Dir = [1,0;
0,1];
num = 2;
while(1)
%----------------------------------Step2-----------------------------------
%第一轮:
%沿着第一个方向进行一维搜索的得到相应的极值
[X(1,:),JZ(1)] = OneDimensionSearch(X0,Dir(1,:),Err);
%沿着第2到第num方向进行一维搜索
for k = 2:num
dir(k,:) = Dir(k,:);
[X(k,:),JZ(k)] = OneDimensionSearch(X(k-1,:),dir(k,:),Err);
end
%构造新的搜索方向向量 并以X0为起点,沿此方向进行新一轮搜索ÿ