应用MATLAB求解约束优化问题
- 格式:pdf
- 大小:78.09 KB
- 文档页数:3
二. 数学模型
F(x)为目标函数 求最小值 x1 x2 x3 x4 为未知量 目标函数受约束于 x1-x2+3x2<=6 x1+45x2+x4=7 x2*x3*x4-50>=0 x2^2+x4^2=14
三. fmincon 应用方法
这个函数的基本形式为 x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 其中 fun 为你要求最小值的函数,可以单写一个文件设置函数,也可是 m 文件。 1.如果 fun 中有 N 个变量,如 x y z, 或者是 X1, X2,X3, 什么的,自己排个顺 序,在 fun 中统一都是用 x(1),x(2)....x(n) 表示的。 2. x0, 表示初始的猜测值,大小要与变量数目相同 3. A b 为线性不等约束,A*x <= b, A 应为 n*n 阶矩阵。 4 Aeq beq 为线性相等约束,Aeq*x = beq。 Aeq beq 同上可求 5 lb ub 为变量的上下边界, 正负无穷用 -Inf 和 Inf 表示, lb ub 应为 N 阶 数组 6 nonlcon 为非线性约束,可分为两部分,非线性不等约束 c,非线性相等约 束,ceq 可按下面的例子设置 function [c,ceq] = nonlcon1(x) c = [] ceq = [] 7, 最后是 options, 可以用 OPTIMSET 函数设置,具体可见 OPTIMSET 函数的 帮助文件。
五. 计算结果分析
x = 6.1275 -0.0637 -209.6575 3.7411
fval = -5.2848e+004
应用 matlab 求解约束优化问题
姓名: 学号: 班级: 上交7/2 2010/6/29
一. 问题分析
f(x)=x1*x2*x3-x1^6+x2^3+x2*x3-x4^2 s.t x1-x2+3x2<=6 x1+45x2+x4=7 x2*x3*x4-50>=0 x2^2+x4^2=14 目标函数为多元约束函数,约束条件既有线性约束又有非线性约束 所以应 用 fmincon 函数来寻求优化, 寻找函数最小值。由于非线性不等式约束不能用矩 阵表示, 要用程序表示,所以创建 m 文件其中写入非线性不等式约束及非线性等 式约束,留作引用。
四. 计算程序
运用 edit 编辑 m 文件 此为目标函数 m 文件 function y=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)+50 ceq(1)=14-x(2)^2-x(4)^2 在 command window 中输入 线性约束 x0 初始点 及 fmincon 函数 A=[1 2 0 0]; b=[6]; Aeq=[1 45 0 1]; beq=[7]; x0=[1 1 1 1]; [x,fval]=fmincon(@fun,x0,A,b,Aeq,beq,[],[],@conf)