回覆列表
-
1 # 使用者772064186554
-
2 # 使用者3136867717565
主要是函式linprog(f,a,b,a1,b1,xstart,xend)的使用
其中f是目標函式,題中f=c=[2;3;5]
由於matlab中不等式條件都是=
然後是約束條件x1,x2,x3和是7,即a1=aeq=[1,1,1]
式子右側b1=7 形式a1x=b其中a1是矩陣,b1是列向量,只不過題中只有一個條件,所以a1是向量了
最後是各個x值的下界和上界,列向量形式xstart=zeros(3,1),xend在後邊,是[],也可以不寫
由於matlab中求的都是目標函式的最小值,所以例子中是linprog(-c,a,b,aeq,beq,zeros(3,1))
這裡係數矩陣都是按列向量寫的,一個條件就是n行一列,倆條件就是n行兩列。。。
如果我沒說明白,你就看這上邊的http://blog.csdn.net/qin_zhangyongheng/article/details/7883612
你肯定是在看《MATLAB在數學建模中的應用》這本書吧,我也正好看到這兒,網上都可以找到資料的。一起加油!
主要是函式linprog(f,a,b,a1,b1,xstart,xend)的使用其中f是目標函式,題中f=c=[2;3;5]由於matlab中不等式條件都是=<的,所以,中間的兩個不等式組成的矩陣就是a=[-2,5,-1;1,3,1],把兩個不等式的右邊-10和-12組成向量b=[-10;12],形式ax=<b,其中a是矩陣,b是列向量然後是約束條件x1,x2,x3和是7,即a1=aeq=[1,1,1]式子右側b1=7形式a1x=b其中a1是矩陣,b1是列向量,只不過題中只有一個條件,所以a1是向量了最後是各個x值的下界和上界,列向量形式xstart=zeros(3,1),xend在後邊,是[],也可以不寫由於matlab中求的都是目標函式的最小值,所以例子中是linprog(-c,a,b,aeq,beq,zeros(3,1))這裡係數矩陣都是按列向量寫的,一個條件就是n行一列,倆條件就是n行兩列。。。如果我沒說明白,你就看這上邊的http://blog.csdn.net/qin_zhangyongheng/article/details/7883612你肯定是在看《MATLAB在數學建模中的應用》這本書吧,我也正好看到這兒,網上都可以找到資料的。一起加油!