回 帖 发 新 帖 刷新版面

主题:如何使用matlab求解规划模型

    嘿嘿,不好意思,有事请教!我想问的是如何使用matlab求解规划模型。例如我现有变量z,x01,x02,x03,x05,x11,x12,x13,x15,x21,x22,x23,x25,x31,x32,x33,x35,x41,x42,x43,x45,x51,x52,x53,x55,x61,x62,x63,x71,x72,x73,x81,x82,x91
方程组有
 Max=z;
 x01 + x02 + x03 + x05 = 8146;
 x11 + x12 + x13 + x15 +z- 1.018*x01 <= 0;
 x21 + x22 + x23 + x25 - 1.03888*x02 - 1.018*x11 + z <= 0;
 x31 + x32 + x33 + x35 - 1.0648*x03 - 1.03888*x12 - 1.018*x21 + 1.2*z <= 0;
 x41 + x42 + x43 + x45 - 1.0648*x13 - 1.03888*x22 - 1.018*x31 + z <= 0;
 x51 + x52 + x53 + x55 - 1.1152*x05 - 1.0648*x23 + 1.03888*x32 + 1.018*x41 + z <= 0;
 x61 + x62 + x63 - 1.1152*x15 - 1.0648*x33 - 1.03888*x42 - 1.018*x51 + z <= 0;
 x71 + x72 + x73 - 1.1152*x25 - 1.0648*x43 - 1.03888*x52 - 1.018*x61 + z <= 0;
 x81 + x82 - 1.1152*x35 - 1.0648*x53 - 1.03888*x62 - 1.018*x71 + z <= 0;
 x91 - 1.1152*x45 - 1.0648*x63 - 1.03888*x72 - 1.018*x81 + z <= 0;
 1.1152*x55 + 1.0648*x73 + 1.03888*x82 + 1.018*x91 –z>= 8146;
如何利用matlab进行计算?
  这是我第一次使用matlab,比较愚钝,请多多帮忙!

回复列表 (共1个回复)

沙发

你变量太多了,把程序写出来太麻烦,方法如下:
1 写目标函数
具体到你这儿就是 F(Z,x1,x2...)= -(Z+0*x1+0*x2.....);
写完存为M文件

2 把约束条件整理成矩阵:
比如 x1+x2+x3<=0; -2*x1-x2-x3<=2 就等于是 AX<=B;A=[1,1,1;-2,-1,-1];B=[0;2;]

3 用fmincon 函数,这个函数是求约束条件下的最小值,而你求的是最大值,所以前面写目标函数的时候要在前面加负号

我来回复

您尚未登录,请登录后再回复。点此登录或注册