您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 非线性优化算法及实现
编号:26最优化实验报告实验题目:非线性优化算法及实现实验成绩(指导教师填):院(系):数学与计算科学专业:信息与计算科学学生姓名:刘建海学号:0700710221指导教师:李丰兵实验类型:验证性设计性工综合性其它2009年11月21日一、实验目的1、用matlab的优化工具箱对无约束优化问题进行算法实现。2、培养matlab编程与上机调试能力。二、实验内容1.利用matlab的优化工具箱求解以下问题:1)求函数221160.30.010.90.04fxxx在1处的的零点及在0.5,1.5内的最大值;f=@(x)1/((x-0.3)^2+0.01)+1/((x-0.9)^2+0.04)-6z=fzero(f,1)z=1.2995fun=inline('-((1/((x-0.3)^2+0.01))+(1/((x-0.9)^2+0.04))-6)');[x,fval]=fminbnd(fun,-0.5,1.5)x=0.3004fval=-96.5014所以函数的最大值为:96.50142)求函数2222111001gxxxx在1,1点附近的最小值。fun=inline('100*(x(2)-x(1)^2)^2+(1-x(1))^2');[x,fval]=fminsearch(fun,[1;1])x=11fval=02.编写函数文件,实现Fibonacci法,并求解下列问题1)求函数630sintan1xxxxe在0,1内的极大值function[x,minf]=minFBNQ(f,a,b,deilta,eps)formatlong;ifnargin==4eps=1.0e-6;endF=ones(2,1);N=(b-a)/eps;c=F(2)-N;n=2;whilec0n=n+1;F(n)=F(n-1)+F(n-2);c=F(n)-N;endl=a+F(n-2)*(b-a)/F(n);u=a+F(n-1)*(b-a)/F(n);K=1;while1f1=subs(f,findsym(f),l);fu=subs(f,findsym(f),u);iff1fua=l;l=u;k=1;u=a+F(n-k-1)*(b-a)/F(n-k);if(k==n-3)break;elsek=k+1;endelseb=u;u=1;l=a+F(n-k-2)*(b-a)/F(n-k);if(k==n-3)break;elsek=k+1;endendendifk==100000disp('找不到最小值!');x=NaN;minf=NaN;return;endu=l+delta;f1=subs(f,findsym(f),l);fu=subs(f,findsym(f),u);iff1fua=l;elseb=l;endx=(a+b)/2;minf=subs(f,findsym(f),x);formatshort;运行结果:symsx;f=(sin(x))^6*tan(1-x)*exp(30*x);[x,fx]=minFBNQ(F,0,1,0.05);x=0.9707fx=-4.1086e+010则f(x)的极大值为:4.1086e+0102)求函数tttee在1,1内的极小值symst;f=exp(-t)+exp(t);[x,fx]=minFBNQ(F,-1,1,0.05)x=-1.4808e-006fx=2.00003.编写函数文件,实现FR共轭梯度法或拟牛顿法(BFGS校正),并求解下列问题1)4222121122min,221fxxxxxx,01,1Txdf文件:functiondy=df(x)symsyx1x2y=(x1-x2)^4+(x1-2)^2*x2^2+(x2+1)^2;y1=diff(y,x1);y2=diff(y,x2);dy1=subs(y1,'x1',x(1));dy1=subs(dy1,'x2',x(2));dy2=subs(y2,'x1',x(1));dy2=subs(dy2,'x2',x(2));dy=[dy1,dy2]';f文件:functiony=f(x)y=(x(1)-x(2))^4+(x(1)-2)^2*x(2)^2+(x(2)+1)^2;输入:xk=[11]',eps=10^(-5),[optx,opty]=gong_t(xk,eps)输出:optx=0.1347-0.2056opty=0.79162)222121min12xxx,00,0Txdf文件:functiondy=df(x)symsyx1x2y=(1-x1).^2+2*(x2-x1.^2).^2;y1=diff(y,x1);y2=diff(y,x2);dy1=subs(y1,'x1',x(1));dy1=subs(dy1,'x2',x(2));dy2=subs(y2,'x1',x(1));dy2=subs(dy2,'x2',x(2));dy=[dy1,dy2]';f文件:functiony=f(x)y=(1-x(1)).^2+2*(x(2)-x(1).^2).^2;输入:xk=[00]',esp=10^(-5),[optx,opty]=gong_t(xk,eps)输出:optx=1.00001.0000opty=8.7057e-0134、利用matlab的优化工具箱求解以下问题(求解函数自己选择):1.求函数最小值:123123min..02372fxxxxstxxx,初始点10,10,10TxM文件:functionf=myfun(x)f=-x(1)*x(2)*x(3);运行结果:A=[-1-2-3;123];b=[072]';x0=[10;10;10];[x,fval]=fmincon(@myfun,x0,A,b)Optimizationterminated:Magnitudeofdirectionalderivativeinsearchdirectionlessthan2*options.TolFunandmaximumconstraintviolationislessthanoptions.TolCon.Activeinequalities(towithinoptions.TolCon=1e-006):lowerupperineqlinineqnonlinx=24.000012.00008.0000fval=-2.3040e+0032.求函数最小值1221212212min42421..00xfxexxxxxstxxfunction[f,g]=myfun(x)f=exp(x(1))*(4*x(1).^2+2*x(2).^2+4*x(1)*x(2)+2*x(2)+1);ifnargout1g(1)=-x(1);g(2)=-x(2);endx0=[0,0];[x,fval]=fminunc(@myfun,x0)x=0.5000-1.0000fval=1.8304e-0153.求函数最大值12212122121212max42421..1.5010xfxexxxxxstxxxxxxfunctionf=myfun(x)f=-exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);function[c1,c2]=mycon(x)c1=1.5+x(1)*x(2)-x(1)-x(2)=0;c2=-x(1)*x(2)-10=0;x0=[22]';[x,fval]=fmincon(@myfun,x0,[],[],[],[],[],[],@mycon)Optimizationterminated:Nofeasiblesolutionfound.Searchdirectionlessthan2*options.TolXbutconstraintsarenotsatisfied.x=22fval=-332.5075三、心得体会通过本次实验,.我学会了用matlab的优化工具箱对无约束优化问题进行算法实现,在帮助中,有很多我们不知道的方法可以求解问题,matlab的优化工具箱就在帮助中可以找到。通过这次试验,我知道不仅可以通过书本来学习知识,还可以从软件本身中学到知识。
本文标题:非线性优化算法及实现
链接地址:https://www.777doc.com/doc-5948788 .html