预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第七讲Matlab优化(求极值) 理论介绍:算法介绍、软件求解. 一.线性规划问题 1.线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小值的问题,Matlab中规定线性规划的标准形式为 其中c和x为n维列向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向量。注意:线性规划问题化为Matlab规定中的标准形式。 求解线性规划问题的Matlab函数形式为linprog(c,A,b),它返回向量x的值,它的具体调用形式为: [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,x0,OPTIONS) 这里fval返回目标函数的值,LB、UB分别是变量x的下界和上界,x0是x的初始值,OPTIONS是控制参数。 例1求解线性规划问题 程序:c=[2;3;5]; >>A=[-2,5,-1;1,3,1];b=[-10;12]; >>Aeq=[1,1,1];beq=[7]; >>LB=[0;0;0];(zeros(3,1)) >>[x,fval]=linprog(c,A,b,Aeq,beq,LB,[]) 练习与思考:求解线性规划问题 注意:若没有不等式:存在,则令A=[],b=[].若没有等式约束,则令Aeq=[],beq=[]. 2.可以转化为线性规划的问题 规划问题其中为相应维数的矩阵和向量。注意到对任意的存在满足,事实上只要取 就可以满足上面的条件。 这样,记从而可以把问题变成 例2求解规划问题,其中 对于这个问题,如果取,这样,上面的问题就变换成 这是我们通常的线性规划问题。 练习与思考:规划问题 二.非线性一元函数的最小值 对于求一元函数的最小值问题,Matlab提供了一个命令函数fminbnd,fminbnd函数的调用格式为:X=fminbnd(fun,x1,x2)和[X,fval]=fminbnd(fun,x1,x2) 其中fun为目标函数,x1,x2为变量的边界约束,即,X为返回的满足fun取得最小值的x的值,fval为目标函数值。 例3计算函数的最小值和f(x)取最小值时x的值, 程序:>>clear >>fun='(x^3+x^2-1)/(exp(x)+exp(-x))'; >>ezplot(fun,[-5,5]) >>[X,fval]=fminbnd(fun,-5,5) 练习与思考:如何求一元函数的最大值? 三.无约束非线性多元变量函数的优化 对于无约束非线性多元变量函数的优化问题,主要采用命令函数fminsearch和fminunc,其中fminsearch比较适合处理低阶多间断点的函数,fminunc则对高阶连续函数有效。 1.命令函数fminsearch 函数fminsearch求解目标函数fun的最小值和fun取最小值时变量x的值,调用格式为:X=fminsearch(fun,X0)和[X,fval]=fminsearch(fun,X0) 其中X0为声明变量的初始值,X为返回的x的值,fval为返回的fun的值。 例4求使目标函数取得最小值。 程序:>>clear >>X0=[0,0]; >>[X,fval]=fminsearch('sin(x(1))+cos(x(2))',X0) 说明:声明变量初始值对返回的x的值的影响。X0=[100,100]? 2.命令函数fminunc 函数fminunc通过计算寻找多变量目标函数fun的最小值,调用格式为:X=fminunc(fun,X0)和[X,fval]=fminunc(fun,X0) 其中X0为优化的初始值,X为返回的x的值,fval为返回的fun的值。 例5对函数进行最小值优化。 程序:>>clear >>fun='exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)'; >>x0=[0,0]; >>[x,fval]=fminunc(fun,x0) 注意:fminunc函数只能处理实函数的优化问题,目标函数最好是连续函数,给出的解可能只是局部解。 四.有约束非线性多元变量函数的优化 1.Matlab命令函数fmincon可以处理有约束的非线性多元变量的优化问题,有约束多元变量优化问题的数学模型为:求一组变量xi,满足在给定的约束条件下,使目标函数f(xi)取得最小值。目标函数一般为非线性函数,约束条件有线性不等式约束、线性等式约束、变量边界约束和非线性约束。线性约束:,等式约束:,边界约束:,fmincon函数的调用格式为: [x,fval]=fmincon(fun,x0,A,B,Aeq,Beq,Lb,Ub,nonlcon,options) 其中,nonlcon表示非线性约束条件,options为设置的控制优化过程的优化参数向量(可以用opt