设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1227|回复: 0

二次规划

[复制链接]

13

主题

152

金钱

235

积分

入门用户

发表于 2018-8-22 11:16:41 | 显示全部楼层 |阅读模式
二次规划为求目标函数 二次规划.png 的最小值,该函数的约束包括A·x ≤ b,Aeq·x = beq,l ≤ x ≤ u。二次规划与线性规划的区别在于目标函数为自变量的二次函数。
MATLAB提供用于二次规划的函数为quadprog,该函数的调用格式包括:
  1. x = quadprog(H,f)
  2. x = quadprog(H,f,A,b)
  3. x = quadprog(H,f,A,b,Aeq,beq)
  4. x = quadprog(H,f,A,b,Aeq,beq,lb,ub)
  5. x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)
  6. x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
  7. x = quadprog(problem)
  8. [x,fval]= quadprog(H,f,...)
  9. [x,fval,exitflag]= quadprog(H,f,...)
  10. [x,fval,exitflag,output]= quadprog(H,f,...)
  11. [x,fval,exitflag,output,lambda]= quadprog(H,f,...)
复制代码
其中,f为中的cT ,H为其中的H(必须为正定矩阵);x为返回的x;A为不等式约束系数矩阵,b为不等式约束的右项;Aeq为等式约束的左项,beq为等式约束的右项;lb、ub分别为x的下限和上限;x0为初始求解点,options为optimset命令设置的选项;problem为满足要求的数据结构;fval为求解函数的值;exitflag描述退出条件;output为优化信息数据;lambda参数是解x处的拉格朗日乘子。它有以下一些属性:
  • lambda.lower——lambda的下界;
  • lambda.upper——lambda的上界;
  • lambda.ineqlin——lambda的线性不等式;
  • lambda.eqlin——lambda的线性等式

例11-7,二次规划示例。目标函数 函数.png 受以下约束:
求x的值,使目标函数的值最小。
在命令行窗口输入:
  1. H=eye(4)
  2. f=ones(4,1)
  3. A = [6 3 5 2; 0 0 1 1; -1 0 1 0; 0 -1 0 1];
  4. b = [9; 1; 0; 0];
  5. [x,fval,exitflag,output,lambda]= quadprog(H,f, A,b)
复制代码
输出结果如下:
  1. H = 1       0     0      0
  2.          0      1     0      0
  3.          0      0     1      0
  4.          0      0     0      1
  5.     f = 1
  6.          1
  7.          1
  8.          1
  9.     Optimization terminated.
  10.     x = -1
  11.          -1
  12.          -1
  13.          -1
  14.     fval =    -2
  15.     exitflag =     1
  16.     output = iterations: 1
  17.          constrviolation: 0
  18.               algorithm: 'active-set'
  19.               message: 'Optimization terminated.'
  20.               firstorderopt: 0
  21.               cgiterations: []
  22.     lambda = lower: [4x1 double]
  23.               upper: [4x1 double]
  24.               eqlin: [0x1 double]
  25.               ineqlin: [4x1 double]
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表