最优解编程
㈠ 怎么用matlab求最优解
x0=[5,5,2]
题主给出的线性规划模型可以用fmincon函数来
求其最优解,其方法:
1、首先建立目标函数,objectivef(x),其内容
y=x(1)*x(2)+2*(x(2)*x(3)+x(1)*x(3));
2、然后建立约束函数,constrainf(x),其内容
%约束函数
c=[];
%非约束函数
ceq=x(1)*x(2)*x(3)-100;
3、最后建立运行代码
x0=[5,5,2]
A=[];b=[];Aeq=[];beq=[];VLB=[5,0,0];VUB=[inf,inf,inf];
[x,fval,exitflag]=fmincon(@(x)objectivef(x),x0,A,b,Aeq,beq,VLB,VUB,@(x)constrainf(x))
A=x(1)*x(2)*x(3);
str=['x1x2x3=100 ',num2str(A)];
fprintf('%s ',str);
4、根据上述 内容编程,执行可以得到
x1=5.848;x2= 5.848;x3=2.924
min S=102.6
㈡ matlab求最优解
你给出的代码没有按照题意来书写,是有问题的。
首先,应建立最优函数方程,即
max 14A+15B+23C+40D
st. 10A+12B+18C+26D≤1000
5≤A≤50
5≤B≤50
5≤C≤50
5≤D≤50
A,B,C,D≥0
然后,用fmincon非线性 规划最优解函数,求得A,B,C,D
按此思路编程后运行可得
A=5,B=5,C=5,D=30,筹集资金1460元
㈢ 编程序求最优解 另外加高分!!!!
你这种问题应该用lingo进行线性规划求解最方便。
基本格式如下
min(max):z..... 目标函数
s.t.{....}限制条件
当然这种题目也可以用C语言来解决,只不过要麻烦得多,而且你给的题目意思不够清楚,我没办法帮你编程。需要的话,你把完整的题目发到我的邮箱:[email protected] 不过我这周得参加建模比赛,至少要到下周才有空做。
㈣ lingo中如何设置求全局最优解
1、题目:求minz=2*x1+3*x2+x3;s.t.[x1 + 4*x2+2*x3>=8 ;3*x1 + 2*x2 >=6 ;xj >= 0 , j=1,2,3, ]。
㈤ matlab求解线性规划最优解怎么弄
题主给出线性规划问题,可以用fmincom函数求得最优解。
求解思路:1、创建自定义目标函数,myfun(x),即f=10*a*h2、创建自定义约束条件函数,mycon(x),即
(1)不等式条件
0.5≤b/a≤2;
0.5≤c/(10-b)≤2;
0.5≤(a-c)/(10-b)≤2;
0.5≤(c+10-b)/(2*h)≤2;
0.5≤(a-c+10-b)/(2*h)≤2;
0.5≤(a+b)/(2*h)≤2;
(2)等式条件
(a*b*(h-2))=200;
(10*b*c*(h-4))=35;
((10-b)*a*c*(h-4))=105;
3、初定x的初值,即x0=rand(1,4)
4、确定x的上限值,即lb值,lb=zeros(1,4);
5、确定x的下限值,即ub值,ub=ones(1,4)*20;
6、使用fmincon函数,求其a、b、c、V值
[x,fval,exitflag] = fmincon(@(x) myfun(x),x0,A,b,Aeq,beq,lb,ub,@(k) mycon(k));
a=x(1);b=x(2);c=x(3);h=x(4);
7、验证各等式条件
按上述要求编程,运行后可得到如下结果
㈥ 运筹学中,可行解、基本解、基本可行解和最优解的关系
可行解是满足约束条件的解,基本解对应基向量的非基变量为零,基解不一定为可行解,可行解也不一定为基解,既是可行解又是基本解的解是基本可行解,最优解是基本可行解中使目标函数达到最优的解。
在线性规划问题中,满足非负约束的基本解称为基本可行解或基本可行解。如果线性规划问题存在可行解,则必须存在一个基本可行解。
可行解是基本可行解的充要条件如下:非零分量对应的系数矩阵的列向量是线性无关的。基本可行解对应可行域中的极点,是有限的。如果存在一个有界最优解,至少有一个基本可行解是最优解。
(6)最优解编程扩展阅读:
1、基本可行解(basic feasible solution)亦称可行点或允许解,是线性规划的重要概念。在线性规划问题中,满足非负约束条件的基本解,称基本可行解,简称基可行解。
线性规划问题如果有可行解,则必有基可行解,可行解是基可行解的充分必要条件为:它的非零分量所对应的系数矩阵列向量是线性无关的。
基本可行解与可行域中的极点相对应,为有限个。若存在有界最优解,则至少有一个基本可行解为最优解。
2、可行解就是满足所有约束条件的决策变量的一组取值,若不满足约束条件,则称为不可行解。
3、基解是满足资源约束的解,不一定是非负的。它的几何意义就是满足资源约束的部分,但是因为可能是负数,所以实际意义不大。
㈦ 下面这道题,求数学建模问题的最优解,用matlab怎么编程
用fmincon函数
你看看help
fmincon
主要是建立两个m文件,一个myfun放你的f(x),注意,这里要放-f(x),因为你要求最大值,fmincon是求最小值的
另一个mycon放非线性约束条件,这俩,(x11+x12+x13)y11*1.4+(x22-x12+x23)y22*1.65<=7.5
(x11+x12+x13)(y11*1.4+6.1)+(x22-x12+x23)(y22*1.65+7.35)<=76.5
把线性约束条件写成矩阵A,B
直接调用
X=fmincon(@myfun,X0,A,B,[],[],LB,UB,@mycon)
LB,UB是自变量的上下限
X0为初值,一般需要多尝试几个初值
㈧ vb编程求方程最优解结果差很多
把程序改写如下,原因是
If g1 = x1 ^ 2 - x2 <= 0 And g2 = x1 + x2 - 2 <= 0 Then中出现g1 = x1 ^ 2 - x2这样的赋值语句,应提出来放在前面,执行结果还是不正确,你可以考虑一下算法方面是否有问题问题,也可以把原题目发出来供大家参考,以便帮你解决问题
Private Sub Command1_Click()
x01 = 3: x02 = 3: t0 = 0.1: c = 0.0001: k = 10
f0 = 5
fl = 5
m0: t = t0
J = 1
m1: Randomize
e1 = Int(3 * Rnd - 1)
e2 = Int(3 * Rnd - 1)
X1 = x01 + t * e1
X2 = x02 + t * e2
g1 = X1 ^ 2 - X2
g2 = X1 + X2 - 2
If g1 <= 0 And g2 <= 0 Then
f = X1 ^ 2 + X2 ^ 2 - 4 * X1 - 2 * X2 + 5
If f < fl Then
fl = f
d1 = e1
d2 = e2
xl1 = X1
xl2 = X2
End If
End If
If J > k Then
X1 = xl1
X2 = xl2
m2: t = 1.3 * t
X1 = X1 + t * d1
X2 = X2 + t * d2
g1 = X1 ^ 2 - X2
g2 = X1 + X2 - 2
If g1 <= 0 And g2 <= 0 Then
f = X1 ^ 2 + X2 ^ 2 - 4 * X1 - 2 * X2 + 5
If f < fl Then
fl = f
GoTo m2
End If
End If
Else
J = J + 1
GoTo m1
End If
If Abs((f0 - f) / f0) < c Then
Print X1, X2
Print f
Else
fl = f
f0 = f
x01 = X1
x02 = X2
GoTo m0
End If
End Sub
㈨ matlab线性规划求最优解,其中有lb和ub约束上下限,可是现在要求x(1)取0或大于234,x(2)取0或大于651
首先就是解x(1)>234和x(2)>651,分别考虑为0的情况,x(1)=0,x(2)>651;x(1)=234,x(2)=0以及x(1)=0,x(2)=0,这样问题就解决了。
f=[-7,-12];
A=[9 4;4 5;3 10];
b=[300;200;300];
lb=zeros(2,1);% 生成一个2行1列的全0矩阵,很显示,上面例子中的x,y的最小值为0
[x,fval]=linprog
优势特点
高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
具有完备的图形处理功能,实现计算结果和编程的可视化;
友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。