Matlab如何实现区间优化

很久没有写博客了,距离上次写也是两年前了,最近开始在做优化方面的内容,今天想就matlab如何实现区间优化的方法记录一下。
对于优化算法的实现,很大一部分同学采用Lingo软件来进行实现,但是为了论文和作图的需求,采用matlab的方法是不二之选。

首先,让我们先认识一下linprog函数。matlab说明文档是这样介绍的:
linprog函数改函数用于求解线性规划问题,而我们所用到的方法基本上均是采用转为线性规划问题来求解的,也就是说该函数可以用于大部分的优化求解,你仅需将其转为linprog函数所要求的格式即可。
接下来,我们再来看下该函数的参数说明:
在这里插入图片描述在说明文档中各个重载函数的例子,不再赘述!
需要强调的一点,linprog函数用于求 min,那如果是max怎么办呢?很简单,仅需将min中的常数项均 取反 即可。

接下来我们用两步区间优化来说明此问题。首先,先简单介绍一下区间优化的基本方法,下图为区间优化的公式定义:
在这里插入图片描述

model:
目标:在这里插入图片描述
约束:
在这里插入图片描述
在这里插入图片描述
xj>=0, j=1,2,k1,…ncj 上下限与f相同,而bi则:
在这里插入图片描述
aij 的上下限与 x 上下限相反:
在这里插入图片描述
在这里插入图片描述
具体到是 minmax 则为 max 先求上限,而 min 先求下限

对于 min
submodel 1:
在这里插入图片描述
在这里插入图片描述 其中
submodel1 求出的优化结果.在这里插入图片描述
对于 max ;
submodel 1:
在这里插入图片描述在这里插入图片描述
submodel 2:
在这里插入图片描述
在这里插入图片描述

以上就是matlab中实现区间优化的前提,接下来我们用案例来实现区间优化,这里我们仅通过
linprog(f,a,b)来说明,其它类似。

在这里插入图片描述
首先,我们需要将此模型拆分为两步模型
submodel 1:
在这里插入图片描述
submodel 2:
在这里插入图片描述
在这里插入图片描述

submodel 1 转换:
在这里插入图片描述
submodel 2转换:
在这里插入图片描述
在这里插入图片描述

我们仅需要两次调用linprog()函数即可,具体代码实现如下:
矩阵创建
在这里插入图片描述
函数实现submodel1

 

同理实现submodel2.

平台注册入口