您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 应用MATLAB求解约束优化问题
应用matlab求解约束优化问题姓名:王铎学号:2007021271班级:机械078上交日期:2010/7/2完成日期:2010/6/29一.问题分析f(x)=x1*x2*x3-x1^6+x2^3+x2*x3-x4^2s.tx1-x2+3x2=6x1+45x2+x4=7x2*x3*x4-50=0x2^2+x4^2=14目标函数为多元约束函数,约束条件既有线性约束又有非线性约束所以应用fmincon函数来寻求优化,寻找函数最小值。由于非线性不等式约束不能用矩阵表示,要用程序表示,所以创建m文件其中写入非线性不等式约束及非线性等式约束,留作引用。二.数学模型F(x)为目标函数求最小值x1x2x3x4为未知量目标函数受约束于x1-x2+3x2=6x1+45x2+x4=7x2*x3*x4-50=0x2^2+x4^2=14三.fmincon应用方法这个函数的基本形式为x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)其中fun为你要求最小值的函数,可以单写一个文件设置函数,也可是m文件。1.如果fun中有N个变量,如xyz,或者是X1,X2,X3,什么的,自己排个顺序,在fun中统一都是用x(1),x(2)....x(n)表示的。2.x0,表示初始的猜测值,大小要与变量数目相同3.Ab为线性不等约束,A*x=b,A应为n*n阶矩阵。4Aeqbeq为线性相等约束,Aeq*x=beq。Aeqbeq同上可求5lbub为变量的上下边界,正负无穷用-Inf和Inf表示,lbub应为N阶数组6nonlcon为非线性约束,可分为两部分,非线性不等约束c,非线性相等约束,ceq可按下面的例子设置function[c,ceq]=nonlcon1(x)c=[]ceq=[]7,最后是options,可以用OPTIMSET函数设置,具体可见OPTIMSET函数的帮助文件。四.计算程序运用edit编辑m文件此为目标函数m文件functiony=fun(x)y=x(1)*x(2)*x(3)-x(1)^6+x(2)^3+x(2)*x(3)-x(4)^2此为非线性约束条件m文件function[c,ceq]=conf(x)c(1)=x(2)*x(3)*x(4)*(-1)+50ceq(1)=14-x(2)^2-x(4)^2在commandwindow中输入线性约束x0初始点及fmincon函数A=[1200];b=[6];Aeq=[14501];beq=[7];x0=[1111];[x,fval]=fmincon(@fun,x0,A,b,Aeq,beq,[],[],@conf)五.计算结果分析x=6.1275-0.0637-209.65753.7411fval=-5.2848e+004
本文标题:应用MATLAB求解约束优化问题
链接地址:https://www.777doc.com/doc-6933386 .html