本文共 789 字,大约阅读时间需要 2 分钟。
Matlab求解线性规划问题——linprog函数:
引用博客链接[x,fval,exitflag,output,lambda] = linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
其中,fval返回目标函数的值,exitflag是收敛标志,取1则问题收敛,output可以显示迭代总次数和使用的算法等,ambda是问题求解中用到的拉格朗日乘子。A和b矩阵对应不等式方程组,Aeq和beq矩阵对应等式方程组,LB和UB分别对应变量x的下界和上界,X0是x的初始值,OPTIONS是控制参数。c=[2;3;1];a=[1 4 2;3 2 0];b=[8;6];[x,fval]=linprog(c,-a,-b,[],[],zeros(3,1));% x向量是使得目标函数取得最小值的那组决策变量% fval是最小值% [],[]是等式约束,本问题中没有% zeros(3,1)是x向量的下限,是第三个约束条件% 初始值和控制变量参数没写
c=[2;3;-5];a=[2 -5 1];b=10;aeq=[1 1 1];beq=7;% 注意matlab标准形式[x,fval,exitflag,output,lambda]=linprog(-c,-a,-b,aeq,beq,zeros(3,1))
Matlab求解非线性规划问题——fmincon函数:
其中: f1(x)=-3x1+2x2 f2(x)=4x1+3x2x0=[1;1];a=[2 3;2 1];b=[18;10];lb=[0;0];ub=[];x=fmincon('((-3*x(1)+2*x(2)-12)^2+(4*x(1)+3*x(2)-24)^2)^(1/2)',x0,a,b,[],[],lb,ub);f1=-3*x(1)+2*x(2);f2=4*x(1)+3*x(2);
转载地址:http://higwi.baihongyu.com/