Matlab的最优化实现方法之线性规划:linprog
一、概述
所谓最优化方法,即指采用数学方法研究系统的优化途径及方案,为决策者提供科学决策的依据,诸如低成本、高回报、长寿命等问题。
最优化问题的数学描述:
1、优化模型的三要素:变量、目标函数、约束条件;
变量(Variables):设计变量之间要求线星独立,不存在确定的数学关系;依据设计变量的数量,将优化问题分为一维问题、N维问题,依据设计变量的离散性,分为离散优化和连续优化。
目标函数(objective functions):描述系统功能的函数,在满足约束条件下达到极小或极大;依据目标函数的数量可将其分为单目标优化和多目标优化。
约束条件(constraint function):依据约束条件的类型分为有约束问题和无约束问题,依据约束方程与设计变量的关系分为线型约束和非线性约束,除此外,又有等式约束和不等式约束等。
2、Matlab所提供的优化函数:
函数 | 描述 |
linprog | 线性规划 |
fminbnd | 有边界的标量非线性最小化 |
fmincon | 有约束的非线性最小化 |
quadprog | 二次规划 |
fminsearch | 无约束非线性最小化 |
fgoalattain |
多目标规划 |
fminmax | 最大最小化 |
fseminf | 半无限问题 |
除了上述函数以外,MATLAB还提供了优化工具箱(Optimization Toolbox),可视化交互函数的options,界面如下:
二、线性规划:linprog
诸如线性规划的研究已较为成熟,有单纯形法、加快求解时间的修正单纯形法、自变量有边界条件的有界单纯形法、以及为避免死循环而生的大M法;MATLAB提供的用于研究线型规划(目标函数与约束函数均是线性无关的)问题的函数为linprog。
上式中,目标函数f具有n个设计变量,即c、x、lb、ub为n维列向量;优化问题具有p个不等式约束、q个等式约束,即A为p×n维矩阵、Aeq为q×n维矩阵。
Example 01:
Matlab code:
%构建约束等式矩阵、约束不等式矩阵:
A=[1,-1,1;3,2,4;3,2,0];
b=[20;42;30];
Aeq=[];
beq=[];
%构建设计变量边界条件:
lb=[0;0;0];
ub=[inf;inf;inf];
%初始条件
x0=[1;1;3];
%构建目标函数
f=[-5,-4,-6];%(Matlab中用系数矩阵表征多项式)
%调用优化函数linprog
options=optimoptions(@linprog,'Algorithm','interior-point','Display','iter');
[x,fval,exitflag,output]=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
运行后显示结果如下:
Matlab的最优化实现方法之线性规划:linprog相关推荐
- 运输问题系数矩阵matlab,基于MATLAB的运输问题求解方法.pdf
基于MATLAB的运输问题求解方法 年 月 , 2009 4 宁波职业技术学院学报 Apr 2009 第 卷第 期 13 2 JournalofNingboPolytechnic Vol.13No.2 ...
- 线性规划linprog
linprog函数的用法 Matlab 中规定线性规划的标准形式为 其中 c 和 x 为 n 维列向量, A . Aeq 为适当维数的矩阵,b beq 为适当维数的列向量 注意:如果约束条件为Ax&g ...
- matlab 线性规划_从零开始的matlab学习笔记——(37)线性规划——后传
matlab应用--求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图,傅里叶变换,随机数,优化问题....更多内容尽在个人专栏:matlab学习 呼,终于将matlab的优 ...
- matlab 牛顿法 最优化,matlab最优化牛顿法
最优化算法与MATLAB的Global Optimization Toolbox_计算机软件及应用_IT/计算机_专业资料.最优化算法与 MATLAB的Global Optimization Tool ...
- Matlab在最优化计算中的应用
Matlab最优化规划 Matlab在最优化计算中有着许多应用,大致上分为线性规划.整数规划.非线性规划.二次规划.多目标规划 概括: 详细说明: 线性规划 一组线性约束条件的限制下,目标函数和限制条 ...
- 【 MATLAB 】DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(频域方法)
上篇博文:[ MATLAB ]DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(时域方法) 提到了对序列x(n)做循环移位后的DFT形式为: 上篇博文已经讨论过了第一种实现循环移位的方法, ...
- matlab中 三种方法计算 Ax b,在MATLAB中,方程Ax=B的解可以用哪个命令求得? matlab 求助 解方程组...
matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法: (1)x=inv(A)*b - 采用求逆运算解方程组: (2)x=A\B - ...
- Algorithm之MC:基于Matlab实现通过蒙特卡洛方法模拟二维布朗运动
Algorithm之MC:基于Matlab实现通过蒙特卡洛方法模拟二维布朗运动 目录 输出结果 设计代码 输出结果 基于Matlab实现通过蒙特卡洛方法模拟二维布朗运动 设计代码 %基于Matlab实 ...
- matlab中怎么画五维图,使用MatLab绘制散点图的方法
使用MatLab绘制散点图的方法: 1.首先从给出的excel表格中采用数据筛选方法,将所有某类型地区的相关数据全部筛选 出来.例如第1类区域的数据如下: 4043 1895 14 1 9.17 24 ...
- matlab 如何捕捉错误,【matlab|matlab运行错误捕捉方法】
『傻大方知识库摘要_matlab|matlab运行错误捕捉方法』需安装VC2005运行库.Matlab错误提示往往以DOS窗口显示,错误提示经常一闪而过,无法查看具体错误信息,可以按照如下操作进行查看 ...
最新文章
- oracle 常用sql
- Nginx的rewrite之if指令(二)
- IntelliJ Idea 常用快捷键 (经过测试)
- 通过Rancher部署并扩容Kubernetes集群基础篇一
- C中字符串常量字符数组字符常量
- Windows系统文件浏览标签窗口工具
- Cold Diffusion: Inverting Arbitrary Image Transforms Without Noise【重点笔记】
- 计算机word基本知识配图,用Word 2016快速制作思维导图
- 高斯消元法解线性方程组
- 单词记忆 词根词缀记忆 总结
- cad动态块制作翻转_cad动态块制作教程
- 在嵌入式开发中如何提高自己的代码水平
- PS调色类插件哪家强
- CH57X/CH58X系列BLE Mesh无线组网方案
- 【pytest】(六) pytest中fixture的使用
- HTML 樱花飘落界面效果
- 浅谈二层交换安全攻防
- 一物一码(7): 【一物一码营销场景之促销】
- C++读图txt文件,并将数据结构 图显示出来
- 【RDMA】LRH和GRH InfiniBand标头(LRH and GRH InfiniBand Headers)