matlab中多目标线性规划函数如何使用
MATLAB中的fgoalattain怎么使用,请教高手,麻烦详细一点,把函数中参数分别代表什么意思解释一下,最好有例子,谢谢各位的回答!...
MATLAB中的fgoalattain怎么使用,请教高手,麻烦详细一点,把函数中参数分别代表什么意思解释一下,最好有例子,谢谢各位的回答!
展开
2个回答
2015-08-10
展开全部
matlab中多目标线性规划函数,具体使用如下:
线性规划:LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为:
min x
s.t.
A·x b
Aeq·x=beq
vlb x vub
其中 ,b,beq均为向量,A,Aeq为矩阵,x为向量变量.矩阵A和向量b是线性不等式约束条件的系数,Aeq和beq是等式约束条件的系数.
在MATLAB中,用于LP的求解函数为linprog.其调用格式为:
[x,fval,lambda]=linprog
(f,A,b,Aeq,beq,vlb,vub,x0,options)
其中f,A,b,是不可缺省的输入变量,x是不可缺省的输出变量,它是问题的解.vlb,vub均是向量,分别表示x的下界和上界,x0为x的起始点,options为optimset函数中定义的参数的值,fval是目标函
数在解x处的值,lambda为在解x处的lagrange乘子.lambda.lower对应于vlb,lambda.upper对应于ulb,lambda.ineqlin是对应于线性不等式约束的,lambda.eqlin是对应于线性等式约束的.
下面举一个小例子看看函数的作用:
minZ=-4a+b+7c
s.t.
a+b-c=5 3a-b+c<=4
a+b-4c<=-7 a,b>=0
问a,b,c分别取何值时,Z有最小值
编写M文件
c=[-4 1 7];
A=[3 -1 1;1 1 -4];
b=[4; -7];
Aeq=[1 1 -1];
beq=[5];vlb=[0, 0];
vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
结果:x = 2.2500 6.7500 4.0000fval = 25.7500
即a,b,c分别取2.2500 6.7500 4.0000时,Z有最小值25.7500
更加详细的例子如下,因为上面没有讲明最大值与最小值的区别,补充如下:
函数格式:linprog(f,a,b,a1,b1,xstart,xend)
f:求解最小函数的表达式系数矩阵是m*1的矩阵
a:≤不等式条件约束矩阵其均为形式
b:a对应不等式右边的常数项
a1:=等式条件约束矩阵
b1:a1对应不等式右边的常数项
xstart:x的取值范围的最小值的系数矩阵为n*1的矩阵
xend:x的取值范围的最大值的系数矩阵为n*1的矩阵
函数说明:不存在的项填写[]即可
函数功能:线性规划求最优值.
线性规划:LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为:
min x
s.t.
A·x b
Aeq·x=beq
vlb x vub
其中 ,b,beq均为向量,A,Aeq为矩阵,x为向量变量.矩阵A和向量b是线性不等式约束条件的系数,Aeq和beq是等式约束条件的系数.
在MATLAB中,用于LP的求解函数为linprog.其调用格式为:
[x,fval,lambda]=linprog
(f,A,b,Aeq,beq,vlb,vub,x0,options)
其中f,A,b,是不可缺省的输入变量,x是不可缺省的输出变量,它是问题的解.vlb,vub均是向量,分别表示x的下界和上界,x0为x的起始点,options为optimset函数中定义的参数的值,fval是目标函
数在解x处的值,lambda为在解x处的lagrange乘子.lambda.lower对应于vlb,lambda.upper对应于ulb,lambda.ineqlin是对应于线性不等式约束的,lambda.eqlin是对应于线性等式约束的.
下面举一个小例子看看函数的作用:
minZ=-4a+b+7c
s.t.
a+b-c=5 3a-b+c<=4
a+b-4c<=-7 a,b>=0
问a,b,c分别取何值时,Z有最小值
编写M文件
c=[-4 1 7];
A=[3 -1 1;1 1 -4];
b=[4; -7];
Aeq=[1 1 -1];
beq=[5];vlb=[0, 0];
vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
结果:x = 2.2500 6.7500 4.0000fval = 25.7500
即a,b,c分别取2.2500 6.7500 4.0000时,Z有最小值25.7500
更加详细的例子如下,因为上面没有讲明最大值与最小值的区别,补充如下:
函数格式:linprog(f,a,b,a1,b1,xstart,xend)
f:求解最小函数的表达式系数矩阵是m*1的矩阵
a:≤不等式条件约束矩阵其均为形式
b:a对应不等式右边的常数项
a1:=等式条件约束矩阵
b1:a1对应不等式右边的常数项
xstart:x的取值范围的最小值的系数矩阵为n*1的矩阵
xend:x的取值范围的最大值的系数矩阵为n*1的矩阵
函数说明:不存在的项填写[]即可
函数功能:线性规划求最优值.
展开全部
[x,fval,attainfactor] =fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
x:最优解
fval:每个目标函数最优值
attainfactor:超出或未到 目标 的 量
fun:目标 函数,由于 是多目标函数,所以这是一个 向量
x0,自变量的 初始值
goal:目标,是个向量
weight:各个 目标 的权重
下面三个同线性优化一样
Ax<=b
Aeq*x=beq
lb<x<ub
nonlcon与非线性约束函数fmincon中 一样
例子 见:http://zhidao.baidu.com/question/18045673.html?si=1#
x:最优解
fval:每个目标函数最优值
attainfactor:超出或未到 目标 的 量
fun:目标 函数,由于 是多目标函数,所以这是一个 向量
x0,自变量的 初始值
goal:目标,是个向量
weight:各个 目标 的权重
下面三个同线性优化一样
Ax<=b
Aeq*x=beq
lb<x<ub
nonlcon与非线性约束函数fmincon中 一样
例子 见:http://zhidao.baidu.com/question/18045673.html?si=1#
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询