- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]2、优化设计
MATLAB界面 优化计算 ★ MATLAB界面 [函数] linprog [格式] x = linprog(f,A,b,Aeq,beq) x = linprog(f,A,b,Aeq,beq,lb,ub) x = linprog(f,A,b,Aeq,beq,lb,ub,x0) x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) [x,fval] = linprog(…) [x,fval,exitflag] = linprog(…) [x,fval,exitflag,output] = linprog(…) [x,fval,exitflag,output,lambda] = linprog(…) [说明] f:是优化参数x的系数矩阵; lb,ub:设置优化参数x的上下界; fval: 返回目标函数在最优解x点的函数值; exitflag:返回算法的终止标志; output:返回优化算法信息的一个数据结构。 [应用举例] 求使函数 取最小值的x值,且满足约束条件: 优化设计实验课件 现代工程计算 - MATLAB Command Window(命令窗口) 一行可写入一个或多个命令,命令之间用逗号或分号隔开,如果命令尾带分号将不显示该命令的执行结果;如果命令有返回结果,如果不赋给自定义变量,将默认赋给变量ans;变量还可有续行;最后用回车提交命令。 Workspace(工作区) 程序运行中的自定义变量和默认变量都包含在工作区中。可通过工作区观察变量的大小、类型,双击变量名可查看数值大小。也可用who和whos命令查看。 Command History(命令记录) 记录了Command Window 中的每一条命令,双击 Command History中的命令,即可重复那条命令。 二次规划 quadprog 线性规划 linprog 半无限问题 fseminf 无约束非线性最小化 fminsearch, fminunc 最大最小化 fminimax 有约束的非线性最小化 fmincon 有边界的标量非线性最小化 fminbnd 多目标达到问题 fgoalattain 描 述 函 数 线性规划及其优化函数 线性规划问题是目标函数和约束条件均为线性函数的问题。 min sub.to: 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。 其它形式的线性规划问题都可经过适当变换化为此标准形式。 说明: 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag0表示函数不收敛于解x;若lambda=lower 表示下界lb,lambda=upper表示上界ub,lambda=ineqlin表示不等式约束,lambda=eqlin表示等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表示迭代次数,output=algorithm表示使用的运算规则,output=cgiterations表示PCG迭代次数。 解: f = [-5; -4; -6]; A = [1 -1 1;3 2 4;3 2 0]; b = [20; 42; 30]; lb = zeros(3,1); [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb) 结果为: x = %最优解 0.0000 15.0000 3.0000 fval = %最优值 -78.0000 exitflag = %收敛 1 output = iterations: 6 %迭代次数 cgiterations: 0 algorithm: lipsol %所使用规则 lambda = ineqlin: [3x1 double] eqlin: [0x1 double] upper: [3x1 double] lower: [3x1 double] lambda为解x的Lagrange乘子 lambda.ineqlin ans = 0.0000 1.5000 0.5000 l
文档评论(0)