资源描述:
《最优化方法源程序1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、最优化方法源程序一、线性规划问题例解线性规划函数linprog()线性规划规划矩阵形式:格式为:x=linprog(c,A,B,Aeq,Beq,LB,UB)例解线性规划即%线性规划求解clear;c=[-100,-200]';A=[1,1;1,0];B=[500,200]';Aeq=[2,6];Beq=1200;LB=[0,0]';UB=[];[x,fval,exitflag,output]=linprog(c,A,B,Aeq,Beq,LB,UB)执行结果:20Optimizationterminated.x=200.0000133.3333fval=-4.6667e+00
2、4exitflag=1output=iterations:4algorithm:'large-scale:interiorpoint'cgiterations:0message:'Optimizationterminated.'二、无约束一元非线性规划问题例10.618法function[s,phis,k,G,E]=golds(phi,a,b,delta,epsilon)%功能:0.618法精确线搜索%输入:phi是目标函数,a,b是搜索区间的两个端点%delta,epsilon分别是自变量和函数值的容许误差%输出:s,phis分别是近似极小点和极小值,G是nx4矩阵,%其
3、第k行分别是a,p,q,b的第k次迭代值[ak,pk,qk,bk],%E=[ds,dphi],分别是s和phis的误差限.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%t=(sqrt(5)-1)/2;h=b-a;phia=feval(phi,a);phib=feval(phi,b);p=a+(1-t)*h;q=a+t*h;phip=feval(phi,p);phiq=feval(phi,q);k=1;G(k,:)=[a,p,q,b];while(abs(phib-phia)>epsilon)
4、(h>delta)if(phip5、hiq;q=p;phiq=phip;h=b-a;p=a+(1-t)*h;phip=feval(phi,p);elsea=p;phia=phip;p=q;phip=phiq;h=b-a;q=a+t*h;phiq=feval(phi,q);endk=k+1;G(k,:)=[a,p,q,b];endds=abs(b-a);dphi=abs(phib-phia);if(phip<=phiq)s=p;phis=phip;elses=q;phis=phiq;end20E=[ds,dphi];程序调用:>>[s,phis,k,G,E]=golds(inline('2*x^2-x-1'),
6、-1,1,0.16,3)s=0.236067977499790phis=-1.124611797498107k=7G=-1.000000000000000-0.2360679774997900.2360679774997901.000000000000000-0.2360679774997900.2360679774997900.5278640450004211.000000000000000-0.2360679774997900.0557280900008410.2360679774997900.5278640450004210.0557280900008410.2360
7、679774997900.3475241575014720.5278640450004210.0557280900008410.1671842700025240.2360679774997900.3475241575014720.1671842700025240.2360679774997900.2786404500042060.3475241575014720.1671842700025240.2097567425069400.2360679774997900.278640450004206E=0.1114561800016830.012076339517143例2最速降
8、法function[x,val,k]=grad(fun,gfun,x0)%功能:用最速下降法求解无约束问题:minf(x)%输入:x0是初始点,fun,gfun分别是目标函数和梯度%输出:x,val分别是近似最优点和最优值,k是迭代次数.maxk=5000;%最大迭代次数rho=0.5;sigma=0.4;k=0;epsilon=1e-5;while(k