拟牛顿算法一、算法流程图/算法步骤1、DFP 算法:(1)算法步骤:2、BFGS 算法(1)算法步骤:3、模式搜索算法(1)算法步骤:二、程序代码1、DFP 算法%拟牛顿法中 DFP 算法求解 f=x1*x1+2*x2*x2-2*x1*x2-4*x1 的最小值ticformat longsymsx1 x2 r;f= x1*x1+2*x2*x2-2*x1*x2-4*x1;%要最小化的函数x=[x1,x2]; df=jacobian(f,x);%函数 f 的偏导df=df
';x0=[0,0]'; g1=subs(df,x,x0); %起始点的梯度epsilon=1e-6;%0
000001 为搜索精度k=0;H0=[1 0;0 1];%初始矩阵为二阶单位阵while(norm(g1)>epsilon)%迭代终止条件||g1||ft0)step=step/2;t2=t1;t1=t2-step;ft1=subs(y,{r},{t1});endendresult=[t2];%黄金分割法求最优步长function result=gold(y,r,m)a=0;b=m;e=1e-5;a1=a+0
382*(b-a);%step1f1=subs(y,{r},{a1});a2=a+0
618*(b-a);%step2f2=subs(y,{r},{a2});while(abs(b-a)>e)if f1