资源描述:
《MATLAB优化工具箱的使用ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB优化工具箱的使用MATLAB优化问题的函数1、线性规划函数Linprog用于解决线性规划问题(优化问题中目标函数和约束函数均为设计变量的线性函数)线性规划问题可描述为:f,b,beq,lb,ub为向量,A和Aeq为矩阵,x为一设计向量的变量,上标T表示转置,矩阵A和向量b是线性不等式约束条件的系数,Aeq和beq是等式约束的条件的系数。其使用格式如下:[xopt,fopt]=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)该函数返回一设计向量变量xopt=[x1,x2,……]和标量f(x),x0为x的起点,options为opt
2、imset函数中定一的参数的值。如果没有等式约束条件,则令Aeq=[],beq=[]。应用举例:编程实现如下:f=[-4,-5];A=[1,1;1.25,0.75;0,1];b=[200,200,150];lb=[00];x=linprog(f,A,b,[],[],lb,[])2、非线性规划函数一、无约束优化无约束非线性规划(nonlinearprogramming)方法是确定下列函数这里,x为设计变量,f为一标量目标函数。解决上述问题可有两个函数实现fminunc函数和fminsearch函数。其中,fminunc函数基于梯度搜索法实现,而fminsearch函数基于
3、直接搜索法实现。调用fminunc的命令如下:[xopt,fopt]=fminunc(@UserFunction,x0,options,p1,p2,…)其中,UserFunction是求解目标函数f的函数文件名,参数x0表示x的起始值,是向量,options为optimset定义的参数赋值。P1,p2等为传递给UserFunction的参数。调用fminsearch的命令如下:X=fminsearch(@UserFunction,x0,options,p1,p2,…)其中,各参数的定义与fminunc一致。应用举例:一、fminunc首先我们用图解法来解,结果如下:程序
4、如下:k1=8.8;k2=1.1;L1=11;L2=11;F1=4.5;F2=4.5;[x1,x2]=meshgrid(linspace(-5,15,15),linspace(-5,15,15));PE1=1/2*k1*(sqrt(x1.^2+(L1-x2).^2)-L1).^2;PE2=1/2*k2*(sqrt(x1.^2+(L2+x2).^2)-L2).^2;PE=PE1+PE2-F1*x1-F2*x2;subplot(1,2,1);h=contour(x1,x2,PE,[-40:10:20,50:100:500],'k');clabel(h);axis([-5,1
5、5,-5,15]);xlabel('x_1');ylabel('x_2');subplot(1,2,2);surfc(x1,x2,PE);axis([-10,15,-10,15,-100,500]);zlabel('PE');xlabel('x_1');ylabel('x_2');meshgrid的使用方法:[X,Y]=meshgrid(x,y)将向量x和y定义的区域转换成矩阵X和Y,这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。[x1,x2]=meshgrid(lins
6、pace(-5,15,2),linspace(-5,15,2))x1=-515-515x2=-5-51515x=linspace(1,3,5),既x=[11.522.53]subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果第一个数字是2就是表示2行图。p是指你现在要把曲线画到figure中哪个图上,最后一个如果是1表示是从左到右第一个位置。contour(X,Y,g,[e,e],'r');画等高线,r为红色极大值极小值左图为PE的等高线图,图上标出了每条等高线的数值,从图
7、中可以清楚的找到极小值、极大值的分布。右图中上面是三维图,下面是等高线图,图中也彪出了极小值、极大值所在点的近似位置,在该点PE目标函数取得极小值、极大值。用fminunc解此题:程序如下:functionTwospringx0=[0.5,5];k1=8.8;k2=1.1;L1=11;L2=11;F1=4.5;F2=4.5;options=optimset('largeScale','off');[x,f]=fminunc(@SpringEquilibrium,x0,options,k1,k2,L1,L2,F1,F2)functionPE