(06)第四章-无约束优化方法(坐标轮换法)
- 格式:pdf
- 大小:193.38 KB
- 文档页数:7
无约束优化方法——坐标轮换法一.基本原理坐标轮换法是每次允许一个变量变化,其余变量保持不变,即沿坐标方向轮流进行搜索的寻优方法。
它把多变量的优化问题轮流的转化成单变量的优化问题,因此又称变量轮换法。
在搜索的过程中可以不需要目标函数的导数,只需目标函数值信息。
它比利用目标函数导数建立搜索方向的方法简单的多。
以二元函数飞f(x1,x2)为例说明坐标轮换法的寻优过程。
从初始点x00出发,沿第一个坐标方向搜索,即d10=e1得x10=x00+a01*d01按照一维搜索方法确定最佳步长因子a01满足minf(x00+a*d01),然后从x01出发沿d02=e2方向搜索得x02=x01+a02*d02,其中步长因子a02满足minf(x01+a*d02),x02为一轮(k=0)的终点。
检验始、终点之间的距离是否满足精度要求,即判断||x02-x00||<e的条件是否满足。
若满足则x*=x02,否则令x10=x02,重新一次沿坐标方向进行下一轮的搜索。
对于n个变量的函数,若在第k 轮沿第i个坐标方向dki进行搜索,其迭代公式为xki=xk(i-1)+aki+dki(k=0,1,2…,i=0,1,2…n)其中搜索方向取坐标方向,即dki=ei(i=1,…n)。
若||xkn-x00||<e,则x*=xkn,否则x(k+1)0=xkn,进行下一轮搜索,一直到满足精度为止。
注:上述xki中,其中k为上标,i为下标二.例题及程序1.用坐标轮换法求f(1x,x)=10(1x+2x-5)^2+(1x-2x)^2极小值2.程序(1)function y=f(x)y=10*(x(1)+x(2)-5)^2+(x(1)-x(2))^2; ………………………..%定义f文件(2)d1=e1;syms a1;x1=x0+a1*d1;y1=f(x1);z1=diff(y1,a1);subs(z1);a1=solve(z1);%求沿e1方向最佳步长x1=x0+a1*d1;d2=e2;syms a2;x2=x1+a2*d2;y2=f(x2);z2=diff(y2,a2);subs(z2);a2=solve(z2);%求沿e2方向最佳步长x2=x1+a2*d2;m=x2-x0;m=double(m);t=norm(m); ……….%定义f2文件(3)x0=[0;0];e=0.001;e1=[1;0];e2=[0;1];f2; ………………%定义f3文件(4)f3;while (t>=e)x0=x2;f2;endx2=double(x2);xo=x2;xo…………………%定义f4文件三.程序框图四.计算结果及说明运用MATLAB运算结果如上所示,运算结果比较精确,跟课本上用鲍威尔方法计算结果比较相近。