电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

多维搜索算法程序

多维搜索算法程序_第1页
1/8
多维搜索算法程序_第2页
2/8
多维搜索算法程序_第3页
3/8
拟牛顿算法一、算法流程图/算法步骤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||<=epsilonif k==0d=-H0*g1;%负梯度方向elseH1=H0+pk*pk'/(qk'*pk)-H0*qk*qk'*H0/(qk'*H0*qk);d=-H1*g1;H0=H1;endz=subs(f,x,x0+r*d);%关于 r 的函数result1=jintuifa(z,r);%进退法求下单峰区间result2= gold(z,r,result1);%黄金分割法求最优步长step=result2;x0=x0+step*d;g0=g1;g1=subs(df,x,x0);%gk=double(gk);qk=g1-g0;pk=step*d;k=k+1;endk%最优点x0min=subs(f,[x1 x2],x0)%最优值toc%进退法求下单峰区间function result= jintuifa(y,r)t0=0;step=0.0125;t1=t0+step;ft0=subs(y,{r},{t0});%step1 求 f(t0) 将函数 y 中变量 x 替换为 t0ft1=subs(y,{r},{t1});if (ft1<=ft0)%step3 step4step=2*step;t2=t1+step;ft2=subs(y,{r},{t2});while(ft1>ft2)t1=t2; step=2*step;t2=t1+step;ft1=subs(y,{r},{t1});ft2=subs(y,{r},{t2});endelse%step5 step6step=step/2;t2=t1;t1=t2-step;ft1=subs(y,{r},{t1});while(ft1>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

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

多维搜索算法程序

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群