matlab_非线性优化
2015-08-19 11:44
381 查看
求解非线性问题:
min z = f(x)
s.t. c(x)≤0,
ceqx=0,
Ax≤b,
Aeqx=beq,
lb≤x≤ub.
其中,x, b, beq, lb,和ub为线性不等式约束的上、下界向量, A 和 Aeq 为线性不等式约束和等式约束的系数矩阵矩阵,fun为目标函数,nonlcon为非线性约束函数。
函数f的定义:
function[c,ceq] = mycon(x)
c= … % 计算x处的非线性不等式。
ceq= … % 计算x处的非线性等式。
非线性约束条件的定义:
function[c,ceq,GC,GCeq] = mycon(x)
c = … % 解x处的非线性不等式。
ceq = … % 解x处的非线性等式。
if nargout > 2 % 被调用的nonlcon函数,要求有4个输出变量。
GC = … % 不等式的梯度。
GCeq = … % 等式的梯度。
s.t. 2x1 + 3x2 ≤ 6,
x1 + 4x2 ≤ 5,
2x1 + 3x22 ≤ 6,
0 ≤ x1,x2.
min z = f(x)
s.t. c(x)≤0,
ceqx=0,
Ax≤b,
Aeqx=beq,
lb≤x≤ub.
【fmincon函数】
[x, fval, exitflag, output, lambda, grad, hessian] = fmincon(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon, options, P1, P2, …)其中,x, b, beq, lb,和ub为线性不等式约束的上、下界向量, A 和 Aeq 为线性不等式约束和等式约束的系数矩阵矩阵,fun为目标函数,nonlcon为非线性约束函数。
函数f的定义:
function[c,ceq] = mycon(x)
c= … % 计算x处的非线性不等式。
ceq= … % 计算x处的非线性等式。
非线性约束条件的定义:
function[c,ceq,GC,GCeq] = mycon(x)
c = … % 解x处的非线性不等式。
ceq = … % 解x处的非线性等式。
if nargout > 2 % 被调用的nonlcon函数,要求有4个输出变量。
GC = … % 不等式的梯度。
GCeq = … % 等式的梯度。
【例题】
min f = -x1 - 2x2 + 0.5x12 + 0.5x22s.t. 2x1 + 3x2 ≤ 6,
x1 + 4x2 ≤ 5,
2x1 + 3x22 ≤ 6,
0 ≤ x1,x2.
【代码】
function Example() A = [2 3; 1 4]; b = [6; 5]; vlb = [0; 0]; x0 = [0; 0]; [x,fval,exitflag,output,lambda,grad,hessian] = fmincon('myfun',x0,A,b,[],[],vlb,[],'nonlia'); end function f = myfun(x) f = -x(1) - 2 * x(2) + 0.5 * (x(1).^2 + x(2).^2); end function [c, ceq] = nonlia(x) c = 2 * x(1) + 3 * x(2).^2 - 6; ceq = []; end
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 从java中调用matlab详细介绍
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- matlab神经网络工具箱创建神经网络
- Matlab
- MATLAB 入门教程
- matlab函数_连通区域
- MATLAB中函数模式和命令模式的区别
- MATLAB 添加自定义的模块到simulink库浏览器
- MATLAB for Mac使编辑器支持中文
- [转]matlab中plot用法
- matlab程序优化以及eclipse与github的结合
- matlab中的rand函数(用于产生随机数)
- 图像增强算法四种,图示与源码,包括retinex(ssr、msr、msrcr)和一种混合算法
- MATLAB R2012a 安装到 Ubuntu 12.10
- 智慧网 分享DCT,DST,matlab