资源描述:
《基于MATLAB的多变量优化问题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、小组成员:刘浩李莲喜骆开荣刘晓康学号:S1402W0117、S1402W0143、S1402M0005、S1402W0246基于MATLAB的多变量优化问题-6-MATLAB在多变量优化问题的应用【摘要】实际生活中我们有许多地方需要用到数学中的一些最值运算,而有些问题我们无法进行计算,因此就有了优化设计理论这门学科,优化理论是一门实践性很强的学科,广泛应用于生产管理、军事指挥和科学试验等各种领域,为了更好的学习这门课程,为我们所用,MATLAB优化工具箱提供了对各种优化问题的一个完整的解决方案,可用于解决工程中的最优化问题,包括
2、非线性方程求解、极小值问题、最小二乘问题等。一、问题的提出MATLAB具有强大的科学计算与视化功能、简单易用、开放式的可扩展环境,编写简单,编程效率高,易学易懂,将MATLAB应用到解决最优化问题的模块中学习,利用客观、视图、计算等功能对最优化问题模块做出最简洁有效的解答。二、在多变量优化问题的应用1.问题一:运用MATLAB软件编写多变量优化问题求解采用的算法:牛顿法程序框图:-6-目标函数图形:MATLAB程序:clearx=-10:0.5:10;y=x;-6-[X,Y]=meshgrid(x,y);Z=(X-4).^2+(
3、Y+2).^2+1;surf(X,Y,Z)symsts;f=(t-4)^2+(s+2)^2+1;[x,mf]=minNT(f,[-15],[ts])function[x,minf]=minNT(f,x0,var,eps)formatlong;ifnargin==3eps=1.0e-6;endtol=1;x0=transpose(x0);whiletol>epsgradf=-jacobian(f,var);jacf=jacobian(gradf,var);v=Funval(gradf,var,x0);tol=norm(v);pv=
4、Funval(jacf,var,x0);p=-inv(pv)*transpose(v);x1=x0+p;x0=x1;endx=x1;minf=Funval(f,var,x);formatshort;functionfv=Funval(f,varvec,varval)var=findsym(f);varc=findsym(varvec);s1=length(var);s2=length(varc);m=floor((s1-1)/3+1);varv=zeros(1,m);ifs1~=s2fori=0:((s1-1)/3)k=find
5、str(varc,var(3*i+1));index=(k-1)/3;varv(i+1)=varval(index+1);endfv=subs(f,var,varv);else-6-fv=subs(f,varvec,varval);end运行结果:x*=[4,-2]f(x*)=12.问题二:运用MATLAB软件编写多变量优化问题求解采用的算法:修正牛顿法目标函数图形:MATLAB程序:clcclearx0=[-15]';[x,val,k]=revisenm('fun','gfun','Hess',x0)x=-10:0.5:10;
6、%生成函数图形y=x;[X,Y]=meshgrid(x,y);Z=X.^3+(X-4).^2+(Y+2).^2+1;surf(X,Y,Z)functionf=fun(x)f=x(1)^3+(x(1)-4)^2+(x(2)+2)^2+1;-6-functiong=gfun(x)g=[3*(x(1)^2)+2*(x(1)-4),2*(x(2)+2)]';functionHe=Hess(x)n=length(x);He=zeros(n,n);He=[6*x(1)+2,0;0,2];function[x,val,k]=revisenm(
7、fun,gfun,Hess,x0)n=length(x0);maxk=150;rho=0.55;sigma=0.4;tau=0.0;k=0;epsilon=1e-5;while(k8、m<20)%用Armijo搜索求步长if(feval(fun,x0+rho^m*dk)