%改进鲍威尔法
clc
clear all
syms x1 x2 a1 a2 a3 b1 b2 b3
f = x1*x1+2*x2*x2-4*x1-2*x1*x2;
X=[x1;x2];
X0=[1 1]'; %给定初始点
Theta_error=0.001;
e1=[1 0]';
e2=[0 1]';
FX0=subs(f,X,X0);
n=2;
k=0;
k1=0;
k2=0;
d1=e1;%初始搜搜方向
d2=e2;
i=1;
%求a1,a2,X1,X2
Da1=[];
Da2=[];
Da3=[];
DX0=[];
DX00=[];
DXX0=[];
DXXX0=[];
DX1=[];
DX11=[];
DX2=[];
DX22=[];
DX3=[];
DX33=[];
DF=[];
Xh1 = X0+a1.*d1;
FXh1 = subs(f,X,Xh1);
dFXh1 = gradient(FXh1,a1);
a1 = solve(dFXh1);
f = x1*x1+2*x2*x2-4*x1-2*x1*x2;
X1 = X0+a1*e1;
FX1 = subs(f,X,X1);
Xh0 = X1+a2.*d2;
FXh2 = subs(f,X,Xh0);
dFXh0 = gradient(FXh2,a2);
a2 = solve(dFXh0);
X2 = X1+a2*e2;
FX2 = subs(f,X,X2);
deta1 = FX0-FX1;
deta2 = FX1-FX2;
m = [deta1,deta2];
M=sort(m); %将deta从小到大排序,然后最后一位就是最大值
deta_Max=M(2);

最低0.47元/天 解锁文章
2471

被折叠的 条评论
为什么被折叠?



