matlab数学规划模型,数学规划模型

1.线性规划的求解方法

线性规划问题的标准形式为:

math?formula=%5Cleft%5C%7B%5Cbegin%7Barray%7D%7Bl%7D%7B%5Cmin%20z%3Dc_%7B1%7D%20x_%7B1%7D%2Bc_%7B2%7D%20x_%7B2%7D%2B%5Ccdots%2Bc_%7Bn%7D%20x_%7Bn%7D%7D%20%5C%5C%20%7Ba_%7B11%7D%20x_%7B1%7D%2Ba_%7B12%7D%20x_%7B2%7D%2B%5Ccdots%2Ba_%7B1%20n%7D%20x_%7Bn%7D%3Db_%7B1%7D%7D%20%5C%5C%20%7Ba_%7B21%7D%20x_%7B1%7D%2Ba_%7B22%7D%20x_%7B2%7D%2B%5Ccdots%2Ba_%7B2%20n%7D%20x_%7Bn%7D%3Db_%7B2%7D%7D%20%5C%5C%20%7B%5Cdots%7D%20%5C%5C%20%7Ba_%7Bm%201%7D%20x_%7B1%7D%2Ba_%7Bm%202%7D%20x_%7B2%7D%2B%5Ccdots%2Ba_%7Bm%20n%7D%20x_%7Bn%7D%3Db_%7Bm%7D%7D%20%5C%5C%20%7Bx_%7B1%7D%2C%20x_%7B2%7D%2C%20%5Ccdots%2C%20x_%7Bn%7D%20%5Cgeqslant%200%7D%5Cend%7Barray%7D%5Cright.

或者写成矩阵形式:

math?formula=%5Cleft%5C%7B%5Cbegin%7Barray%7D%7Bl%7D%7B%5Cmin%20Z%3DC%20x%7D%20%5C%5C%20%7BA%20x%3Db%7D%20%5C%5C%20%7Bx%20%5Cgeqslant%200%7D%5Cend%7Barray%7D%5Cright.

一般来说线性规划包括单纯形规划和多目标规划

1.1单纯形线性规划

单纯形法时从所有基本的可行解的一个较小部分中通过迭代过程选出最优解

matlab中求解线性规划的函数时linprog,使用方法如下:

一般情况下,Linprog命令的参数形式为[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,x0),下面分别介绍各参数的含义.

[x,fval,exitflag,output,lamnda]:返回值中x为最优解,fval为最优值,output包含优化信息的输出变量

f:表示目标函数中各个变量前面的系数向量,如果是求最小值问题,那么f就是各个变量的系数,如果是求最大值问题,那么f就是各个变量的系数的相反数.

A,b:表示不等式约束

math?formula=Ax%5Cleq%20b中的矩阵A和向量b,若不存在不等式关系

Aeq,beq:表示线性等式约束Aeq*x =beq中的矩阵Aeq和向量beq,若等式约束不存在则令Aeq=[ ],beq=[ ]

lb,ub :分别表示自变量的上下界组成的向量,如果没有上下界,该选项用[]表示,如果只有部分变量有上下界,其余的变量没有,那么可以把没有上下界的变量的上下界设为-inf或者inf使lb或者ub的长度符合要求.

x0:表示变量的初始值,可以缺省。

有如下例子:

math?formula=min%20f(x)%3D-5%20x_%7B1%7D-4%20x_%7B2%7D-6%20x_%7B3%7D

math?formula=%5Cleft%5C%7B%5Cbegin%7Barray%7D%7Bl%7D%7Bx_%7B1%7D-x_%7B2%7D%2Bx_%7B3%7D%20%5Cleqslant%2020%7D%20%5C%5C%20%7B3%20x_%7B1%7D%2B2%20x_%7B2%7D%2B4%20x_%7B3%7D%20%5Cleqslant%2042%7D%20%5C%5C%20%7B3%20x_%7B1%7D%2B2%20x_%7B2%7D%20%5Cleqslant%2030%7D%20%5C%5C%20%7B0%20%5Cleqslant%20x_%7B1%7D%2C%200%20%5Cleqslant%20x_%7B2%7D%2C%200%20%5Cleqslant%20x_%7B3%7D%7D%5Cend%7Barray%7D%5Cright.

由于没有等式约束,所以Aeq=[ ],beq=[ ]

不等式的条件系数为:

math?formula=A%3D%5Cleft%5B%20%5Cbegin%7Barray%7D%7Brrr%7D%7B1%7D%20%26%20%7B-1%7D%20%26%20%7B1%7D%20%5C%5C%20%7B3%7D%20%26%20%7B2%7D%20%26%20%7B4%7D%20%5C%5C%20%7B3%7D%20%26%20%7B2%7D%20%26%20%7B0%7D%5Cend%7Barray%7D%5Cright%5D%2C%20%5Cquad%20b%3D%5Cleft%5B%20%5Cbegin%7Barray%7D%7Bl%7D%7B20%7D%20%5C%5C%20%7B42%7D%20%5C%5C%20%7B30%7D%5Cend%7Barray%7D%5Cright%5D

由于没有上界要求:

math?formula=l%20b%3D%5Cleft%5B%20%5Cbegin%7Barray%7D%7Bl%7D%7B0%7D%20%5C%5C%20%7B0%7D%20%5C%5C%20%7B0%7D%5Cend%7Barray%7D%5Cright%5D%2C%20%5Cquad%20u%20b%3D%5Cleft%5B%20%5Cbegin%7Barray%7D%7Bl%7D%7B%5Ctext%20%7B%20inf%20%7D%7D%20%5C%5C%20%7B%5Ctext%20%7B%20inf%20%7D%7D%20%5C%5C%20%7B%5Ctext%20%7B%20inf%20%7D%7D%5Cend%7Barray%7D%5Cright%5D

clear all

clc

f=[-5;-4;-6];

A=[1 -1 1;3 2 4;3 2 0];

b=[20;42;30];

lb=zeros(3,1);

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

>>

x =

0.0000

15.0000

3.0000

fval =

-78.0000

exitflag =

1

exitflag =1表示正常收敛于解x处。

1.2 多目标线性规划

多目标线性规划有着两个或两个以上的目标函数

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值