优化问题的MATLAB求解_第1页
优化问题的MATLAB求解_第2页
优化问题的MATLAB求解_第3页
优化问题的MATLAB求解_第4页
优化问题的MATLAB求解_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、优化问题的优化问题的MATLAB求解求解一、一、matlabmatlab优化工具箱中常用的功能函数优化工具箱中常用的功能函数l求解求解线性规划线性规划问题的主要函数是问题的主要函数是linprog。l求解求解二次规划二次规划问题的主要函数是问题的主要函数是quadprog。l求解求解无约束非线性规划无约束非线性规划问题的主要函数是问题的主要函数是fminbnd、fminunc和和fminsearch。l求解求解约束非线性规划约束非线性规划问题的主要函数是问题的主要函数是fgoalattain和和fminimax。二、一般步骤二、一般步骤 建立目标函数文件 针对实际问题建立优化设计的数学模型不等

2、式约束条件表示成g(X)0的形式 建立调用优化工具函数的命令文件文件内容:文件内容:必须的输入参数、描述标函数表达式等存储:存储:以自定义的目标函数文件名存储在文件夹中 建立约束函数文件文件内容:文件内容:必须的输入参数、约束函数表达式等存储:存储:以自定义的约束函数文件名存储在文件夹中将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解分析优化设计的数学模型,选择适用的优化工具函数文件内容:文件内容:初始点,设计变量的边界约束条件, 运算结果输出等内容存储:存储:以自定义的命令文件名存储于文件夹中。线性规划问题线性规划问题三、线性规划数学模型三、线性规划数学模型1.主要应用对象:主要

3、应用对象:(1)在有限的资源条件下完成最多的任务;(2)如何统筹任务以使用最少资源。2.数学模型形式:数学模型形式: min f TX s.t. AXb (线性线性不等式约束条件) AeqX=beq (线性线性等式约束条件) lb X ub (边界约束条件)约束条件约束条件决策变量决策变量目标函数目标函数非负数线性3.MATLAB中函数调用格式中函数调用格式 xopt, fopt=linprog( f, A, b, Aeq, beq, lb, ub, x0, options)最优解最优解最优值最优值目标函目标函数各维数各维变量系变量系数向量数向量初始点初始点可选项可选项四、线性规划例题四、线性

4、规划例题 生产规划问题生产规划问题:某厂利用a,b,c三种原料生产A,B,C三种产品,已知生产每种产品在消耗原料方面的各项指标和单位产品的利润,以及可利用的数量,试制定适当的生产规划使得该工厂的总利润最大。生产每单位产品所消耗的原料现有原料数量(千克)ABCa342600b212400c132800单位产品利润(万元)243合计1800千克x1x2x32x14x23x33x14x22x32x1x1x23x22x32x3+ + + + + + + + +3.确定约束条件:确定约束条件:X=x1,x2,x3T4.编制线性规划计算的编制线性规划计算的M文件文件f= 2, 4, 3A=3,4,2;2,

5、1,2;1,3,2;b=600;400;800;Aeq=;beq=;lb=zeros(3,1);xopt,fopt=linprog(f,A,b,Aeq,beq,lb)四、线性规划例题四、线性规划例题解:解: 1.确定决策变量:确定决策变量:max2x1+4x2+3x33x1+4x2+2x36002x1+x2+2x3400 x1+3x2+2x3800设生产A、B、C三种产品的数量分别是x1,x2,x3,决策变量: 根据三种单位产品的利润情况,按照实现总的利润最大化,建立关于决策变量的函数:2.建立目标函数:建立目标函数:根据三种资料数量限制,建立三个线性不等式约束条件5.M文件运行结果:文件运行

6、结果:Optimization terminated successfully.xopt =0.0000 66.6667 166.6667fopt=-766.6667x1,x2,x30 xopt, fopt=linprog( f, A, b, Aeq, beq, lb, ub, x0, options)- - - 二次规划问题二次规划问题1.研究意义:研究意义:(1)最简单的非线性规划问题;(2)求解方法比较成熟。2.数学模型形式:数学模型形式: s.t. AXb (线性线性不等式约束条件) AeqX=beq (线性线性等式约束条件) lb X ub (边界约束条件)XCHXX21)X(fmi

7、nTT五、二次规划问题数学模型五、二次规划问题数学模型约束条件约束条件决策变量决策变量目标函数目标函数二次函数3.MATLAB中函数调用格式中函数调用格式 xopt, fopt=quadprog(H,C, A, b, Aeq, beq, lb, ub, x0, options)最优解最优解最优值最优值目标函目标函数的海数的海赛矩阵赛矩阵初始点初始点可选项可选项目标函目标函数的一数的一次项系次项系数向量数向量 结果xopt=2.571,1.143,0.000fopt=-16.4898六、二次规划问题例题六、二次规划问题例题求解约束优化问题321232221xxx2xx2x2)X( f 6x2x3

8、x)X(g321 4xxx2)X(h321 0 x,x,x321 s.t.XCHXX21)X( fTT 解:(1)将目标函数写成二次函数的形式,其中: 321xxxX 200042024H 100Cxopt, fopt=quadprog( H, C, A, b, Aeq, beq, lb, ub, x0, options)(2)编写求解二次规划的M文件:H=4,-2,0;-2,4,0;0,0,2;C=0,0,1;A=1,3,2;b=6;Aeq=2,-1,1;beq=4;lb=zeros(3,1);xopt,fopt=quadprig(H,C,A,b,Aeq,beq,lb)无约束非线性规划问题无

9、约束非线性规划问题七、无约束非线性规划问题的函数七、无约束非线性规划问题的函数fminbnd要求目标函数为连续函数要求目标函数为连续函数只求解单变量问题只求解单变量问题fminunc可求解单变量和多变量问题可求解单变量和多变量问题适用于简单优化问题适用于简单优化问题可求解复杂优化问题可求解复杂优化问题fminsearch1.使用格式:使用格式: xopt,fopt=fminbnd(fun,x1,x2,options)八、函数八、函数fminbnd设置优化选项参数设置优化选项参数迭代搜索区间迭代搜索区间目标函数目标函数返回目标函数的最优值返回目标函数的最优值返回目标函数的最优解返回目标函数的最优

10、解2.例题:例题: 求解一维无约束优化问题f(x)=(x3+cosx+xlogx/ex) 在区间0,1中的极小值。解解:(1)编制求解优化问题的编制求解优化问题的M文件。文件。 %求解一维优化问题 fun=inline(x3+cos(x)+x*log(x)/exp(x),x);%目标函数 x1=0;x2=1;%搜索区间 xopt,fopt=fminbnd(fun,x1,x2) (2)编制一维函数图形的编制一维函数图形的M文件。文件。 ezplot(fun,0,10) title(x3+cosx+xlogx)/ex) grid on八、函数八、函数fminbnd运行结果:xopt = 0.522

11、3fopt = 0.39741.使用格式:使用格式: xopt,fopt=fminsearch(fun,x0,options)九、函数九、函数fminsearch设置优化选项参数设置优化选项参数初始点初始点目标函数目标函数返回目标函数的最优值返回目标函数的最优值返回目标函数的最优解返回目标函数的最优解2.例题:例题:求解二维无约束优化问题 f(x)=(x14+3x12+x22-2x1-2x2-2x12x2 +6)的极小值。解解:(1)编制求解二维无约束优化问题的编制求解二维无约束优化问题的M文件。文件。 %求解二维优化问题求解二维优化问题 fun=x(1)4+3*x(1)2+x(2)2-2*x

12、(1)-2*x(2)-2*x(1)2*x(2)+6; x0=0,0; %初始点初始点 xopt,fopt=fminsearch(fun,x0) (2)讨论。讨论。 将目标函数写成函数文件的形式:将目标函数写成函数文件的形式: %目标函数文件目标函数文件search.m function f=search(x) f=x(1)4+3*x(1)2+x(2)2-2*x(1)-2*x(2)-2*x(1)2*x(2)+6; 则命令文件变为:则命令文件变为: %命令文件名称为命令文件名称为eg9.m x0=0,0; %初始点初始点 xopt,fopt=fminsearch(search,x0)九、函数九、函

13、数fminsearch运行结果:xopt = 1.0000 2.0000fopt = 4.0000 1.使用格式:使用格式: x,fval,exitflag,output,grad,hessian=fminunc(fun,x0,options,P1,P2)十、函数十、函数fminunc设置优化选项参数设置优化选项参数初始点初始点调用目标函数的函数文件名调用目标函数的函数文件名目标函数在最优解的海色矩阵目标函数在最优解的海色矩阵返回目标函数在最优解的梯度返回目标函数在最优解的梯度优化算法信息的一个数据结构优化算法信息的一个数据结构返回算法的终止标志返回算法的终止标志返回目标函数的最优值返回目标函

14、数的最优值返回目标函数的最优解返回目标函数的最优解附加参数附加参数管道截面积:其中设计变量:十、函数十、函数fminunc2.例题:例题: 已知梯形截面管道的参数是:底边长度c,高度h,面积A=64516mm2,斜边与底边夹角为。管道内液体的流速与管道截面的周长s的倒数成比例关系。试按照使液体流速最大确定该管道的参数。解解:(1)建立优化设计数学模型建立优化设计数学模型 管道截面周长 hcsinh2cs64516ctghchA2hctgh64516csinh2hctgh64516sminx1x221211xsinx2ctgxxx64516f(X)hxxX21目标函数的文件目标函数的文件(sc_

15、wysyh.m):function f=sc_wysyh(x) %定义目标函数调用格式定义目标函数调用格式a=64516;hd=pi/180;f=a/x(1)-x(1)/tan(x(2)*hd)+2*x(1)/sin(x(2)*hd); %定义目标函数定义目标函数十、函数十、函数fminunc2.例题:例题:解解:(1)建立优化设计数学模型建立优化设计数学模型 (2)编写求解无约束非线性优化问题的编写求解无约束非线性优化问题的M文件文件21211xsinx2ctgxxx64516)X( f x,fval,exitflag,output,grad,hessian=fminbnd(fun,x0,o

16、ptions,P1,P2)求最优化解时的命令程序求最优化解时的命令程序:x0=25,45; %初始点初始点x,Fmin=fminunc(sc_wysyh,x0); %求优语句求优语句fprintf(1,截面高度截面高度h x(1)=%3.4fmmn,x(1)fprintf(1,斜边夹角斜边夹角 x(2)=%3.4f度度n,x(2)fprintf(1,截面周长截面周长s f=%3.4fmmn,Fmin)计算结果计算结果截面高度截面高度h x(1)=192.9958mm斜边夹角斜边夹角 x(2)=60.0005度度截面周长截面周长s f=668.5656mmxx1=linspace(100,300

17、,25);xx2=linspace(30,120,25);x1,x2=meshgrid(xx1,xx2);a=64516;hd=pi/180;f=a./x1-x1./tan(x2*hd)+2*x1./sin(x2*hd);subplot(1,2,1);h=contour(x1,x2,f);clabel(h);axis(100,300,30,120)xlabel(高度高度 h/mm)ylabel(倾斜角倾斜角theta/(。)十、函数十、函数fminunc2.例题:例题:解解:(1)建立优化设计数学模型建立优化设计数学模型 (2)编写求解无约束非线性优化问题的编写求解无约束非线性优化问题的M文件

18、文件 (3)编写绘制一维函数图形的编写绘制一维函数图形的M文件文件title(目标函数等值线目标函数等值线)subplot(1,2,2);meshc(x1,x2,f);axis(100,300,30,120,600,1200)title(目标函数网格曲面图目标函数网格曲面图)控制参数控制参数options序号功能默认值及其含义说明1输出形式0,无中间结果输出Options(1)=1,按照表格输出结果Options(1)=-1,隐藏警告信息2解x的精度1e-4Options(2)设置x解的终止条件3函数f的精度1e-4Options(3)设置函数f的终止条件4约束g的精度1e-6Options(

19、4)设置约束g的终止条件5选择主要算法0Options(5)选择主要优化算法6搜索方向算法0fmin()函数为无约束优化搜索方向提供3种算法:Options(6)=0,拟牛顿法BFGS公式Options(6)=1,拟牛顿法DFP公式Options(6)=2,梯度法7步长一维搜索0fmin()函数为无约束优化的步长一维搜索提供2种算法:Options(7)=0,二次和三次混合插值法Options(7)=1,三次多项式插值法123控制参数控制参数options序号功能默认值及其含义说明8函数值输出Options(8)输出最终迭代函数值9梯度检验0,不检验Options(9)比较梯度10函数计算次数

20、Options(10)输出函数计算次数11梯度计算次数Options(11)输出函数梯度计算次数12约束计算次数Options(12)输出约束计算次数13等式约束个数0,等式约束为0 Options(13)输入等式约束个数14最大迭代次数100n(n为变量维数)Options(14)输入最大迭代次数15目标个数0Options(15)输入目标个数16差分步长最小值1e-8Options(16)步长的下限或变量的最小梯度值17差分步长最大值0.1Options(17)步长的上限或变量的最大梯度值18步长Options(18)步长参数,第1次迭代时置1123 约束非线性规划问题1. 数学模型形式:

21、数学模型形式: min f (X) s.t. AXb (线性线性不等式约束)不等式约束) AeqX=beq (线性线性等式约束)等式约束) C(X)0 (非线性非线性不等式约束条件)不等式约束条件) Ceq(X)=0(非线性非线性等式约束)等式约束) Lb X Ub (边界约束条件)(边界约束条件)约束条件约束条件 2.使用格式:使用格式: x,fval,exitflag,output, grad,hessian= fmincon(fun,x0,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2)设置优化选项参数设置优化选项参数初始点初始点调用目标函数的函数文件名调用目标函

22、数的函数文件名目标函数在最优解的海色矩阵目标函数在最优解的海色矩阵返回目标函数在最优解的梯度返回目标函数在最优解的梯度优化算法信息的一个数据结构优化算法信息的一个数据结构返回算法的终止标志返回算法的终止标志返回目标函数的最优值返回目标函数的最优值返回目标函数的最优解返回目标函数的最优解附加参数附加参数非线性约束条件的函数名非线性约束条件的函数名设计变量的下界和上界设计变量的下界和上界线性等式约束的常数向量线性等式约束的常数向量线性等式约束的系数矩阵线性等式约束的系数矩阵线性不等式约束的系数矩阵线性不等式约束的系数矩阵线性不等式约束的常数向量线性不等式约束的常数向量无定义时以空矩阵无定义时以空矩

23、阵符号符号“ ”代替代替控制参数控制参数options序号功能默认值及其含义说明1输出形式0,无中间结果输出Options(1)=1,按照表格输出结果Options(1)=-1,隐藏警告信息2解x的精度1e-4Options(2)设置x解的终止条件3函数f的精度1e-4Options(3)设置函数f的终止条件4约束g的精度1e-6Options(4)设置约束g的终止条件5选择主要算法0Options(5)选择主要优化算法6搜索方向算法0fmin()函数为无约束优化搜索方向提供3种算法:Options(6)=0,拟牛顿法BFGS公式Options(6)=1,拟牛顿法DFP公式Options(6)

24、=2,梯度法7步长一维搜索0fmin()函数为无约束优化的步长一维搜索提供2种算法:Options(7)=0,二次和三次混合插值法Options(7)=1,三次多项式插值法控制参数控制参数options序号功能默认值及其含义说明8函数值输出Options(8)输出最终迭代函数值9梯度检验0,不检验Options(9)比较梯度10函数计算次数Options(10)输出函数计算次数11梯度计算次数Options(11)输出函数梯度计算次数12约束计算次数Options(12)输出约束计算次数13等式约束个数0,等式约束为0 Options(13)输入等式约束个数14最大迭代次数100n(n为变量维

25、数)Options(14)输入最大迭代次数15目标个数0Options(15)输入目标个数16差分步长最小值1e-8Options(16)步长的下限或变量的最小梯度值17差分步长最大值0.1Options(17)步长的上限或变量的最大梯度值18步长Options(18)步长参数,第1次迭代时置128 例 100 , 50 07 025 . .2min 21222122221121xxxxXgxxXgtsxxXf1)先建立先建立M-文件文件fun.m定义目标函数定义目标函数: function f=fun(x); f=-2*x(1)-x(2);2)再建立再建立M文件文件mycon2.m定义非线性

26、约束:定义非线性约束: function g,ceq=mycon2(x) g=x(1)2+x(2)2-25;x(1)2-x(2)2-7; ceq=;293) 主程序主程序fxx.m为为: x0=3;2.5; VLB=0 0;VUB=5 10; x,fval,exitflag,output =fmincon(fun,x0,VLB,VUB,mycon2)304) 运算结果为运算结果为: x = 4.0000 3.0000fval =-11.0000exitflag = 1output = iterations: 4 funcCount: 17 stepsize: 1 algorithm: 1x44 char firstorderopt: cgiterations: 311)先建立先建立M文件文件 fun4.m,定义目标函数定义目标函数: function f=fun4(x); f=exp(x(1) *(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);)()(min12424221222

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论