一、线性规划问题

  已知目标函数和约束条件均为线性函数,求目标函数的最小值(最优值)问题。

1.求解方式:用linprog函数求解

2.linprog函数使用形式:

  x=linprog(f,A,b) 

  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(…)

3.介绍一种最常用的:

  [x,fval,exitflag,output,lambda] = linprog(f,A,b,Aep,beq,lb,ub); 

其中,f是目标函数系数矩阵;A和b是不等式约束条件的参数;Aeq和beq是等式约束条件的参数;lb和ub为x取值的取值范围。

  lambda.ineqlin—不等式约束A,b

  lambda.eqlin—等式约束Aep,bep

  lambda.upper—上界条件ub

  lambda.lower—下界条件lb

4.实例:

目标函数:f(x) = –5x1 – 4x2 –6x3,

约束条件:

  x1 – x2 + x3 ≤ 20

  3x1 + 2x2 + 4x3 ≤ 42

  3x1 + 2x2 ≤ 30

  0 ≤ x1, 0 ≤ x2, 0 ≤ x3

Matlab程序:

>> f = [-; -; -]; A = [ - ;   ;   ]; b = [; ; ]; lb = zeros(,);
>> [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb);
>> x
x =
0.0000
15.0000
3.0000 >> fval
fval =
-78.0000

二、二次型规划问题

  理解完线性规划问题再来学习二次型规划问题就简单得多了,可以相似类比。

1.求解方式:用quadprog函数来求解

2.quadprog函数使用形式:

  x = quadprog(H,f)

  x = quadprog(H,f,A,b)

  x = quadprog(H,f,A,b,Aeq,beq)

  x = quadprog(H,f,A,b,Aeq,beq,lb,ub)

  x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)

  x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)

  x = quadprog(problem)

  [x,fval] = quadprog(H,f,...)

  [x,fval,exitflag] = quadprog(H,f,...)

  [x,fval,exitflag,output] = quadprog(H,f,...)

  [x,fval,exitflag,output,lambda] = quadprog(H,f,...)

 

3.实例:

Matlab程序:

>> H = [ -;- ];f = [-;-];A = [ ; ];b = [;];lb = ones(,);
>> [x,fval,exitflag,output,lambda] = quadprog(H,f,A,b,[],[],lb);
>> x
x =
1.9500 1.0500 >> fval
fval =
-11.0250

注:若求解的是最大值问题亦可转化为求最优化问题。

matlab学习笔记之求解线性规划问题和二次型问题的更多相关文章

  1. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  2. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  3. matlab学习笔记(一)单元数组

    matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x)  :取最大的整数 ceil(3.18)=4,ceil( ...

  4. matlab学习笔记---(1)

    Matlab学习笔记 一. Desktop Basics (Matlab 基础知识) 当你打开Matlab的时候,matlab按照以下默认的方式展示出来. 该桌面主要包括以下几部分内容: 当前文件夹: ...

  5. 【数学建模】MATLAB学习笔记——函数式文件

    MATLAB学习笔记——函数式文件 引入函数式文件 说明: 函数式文件主要用于解决计算中的参数传递和函数调用的问题. 函数式的标志是它的第一行为function语句. 函数式文件可以有返回值,也可以没 ...

  6. matlab学习笔记13_2匿名函数

    一起来学matlab-matlab学习笔记13函数 13_2 匿名函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://ww2.mathworks.cn/help/m ...

  7. matlab学习笔记10 一般运算符

    一起来学matlab-matlab学习笔记10 10_1一般运算符 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张 ...

  8. matlab学习笔记13_3创建函数句柄

    一起来学matlab-matlab学习笔记13函数 13_3 创建函数句柄 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://ww2.mathworks.cn/help ...

  9. matlab学习笔记12_3串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields

    一起来学matlab-matlab学习笔记12 12_3 结构体 串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields 觉得有用的话 ...

随机推荐

  1. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型API范围

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型API范围         本章之前提到过. ...

  2. asp.net mvc 重定向

    protected override void OnActionExecuting(ActionExecutingContext filterContext) { if (Request.Cookie ...

  3. C/C++ 错误笔记-如果要释放内存,必须拿到内存的首地址进行释放

    例:修改字符串的第三个字母为a #include <stdlib.h> #include <string.h> #include <stdio.h> #pragma ...

  4. PHP编译选项

    PHP安装 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/u ...

  5. 导入mysql文件提示“ASCII '\0' appeared in the statement”

    在windows服务器上导入mysql文件时,出现以下报错:ASCII '\0' appeared in the statement, but this is not allowed unless o ...

  6. 【转】如何彻底删除SVN中的文件和文件夹(附恢复方法)

    这里假设SVN项目的目录为 /data/svn/project,我们想排除trunk/test.exe文件和trunk/notallowed/目录,操作步骤如下及执行的svn命令(在svn安装目录的b ...

  7. Spring MVC属性方法名称解析器

    以下示例显示如何使用Spring Web MVC框架来实现多动作控制器的属性方法名称解析器. MultiActionController类可在单个控制器中分别映射多个URL到对应的方法. 所下所示配置 ...

  8. linux oracle 配置监听器

    参考:http://database.51cto.com/art/201010/231338.htm 服务端: 1.增加一个listener:终端运行: $ORACLE_HOME/bin/netca ...

  9. django使用redis做缓存

    Django 使用 Redis 做缓存 django中应用redis:pip3 install django-redis - 配置 CACHES = { "default": { ...

  10. html5离线缓存使用

    html5 离线缓存使用以及注意事项 1.index.html中加入离线缓存的声明文件 如:<!DOCTYPE html><html manifest="test.appc ...