導航:首頁 > 五金知識 > matlab線性規劃工具箱

matlab線性規劃工具箱

發布時間:2022-01-09 04:41:12

1. Matlab 優化工具箱目標函數寫法

很多條件不明確復:

1、【每次優化制都需要導入不同的A和B】,到底A和B是什麼?

2、【x有個范圍,是整數】,也就是說還有其他約束條件,為什麼不給出來?

3、我很懷疑,這樣的目標函數還算是線性規劃嗎?當然,由於前面說的【x是整數】,已經決定了這是整數規劃問題。

2. 用MATLAB軟體解線性規劃問題!

%整數規劃分支定界演算法matlab通用源程序
%各參數的意義同matlab優化工具箱的線性規劃函數linprog
%調用前,輸入參數要化成matlab的標准形式
[x,val]=kfz-f-3(n,f,a,b,aeq,beq,lb,ub)
x=zeros(n,1);
x1=zeros(n,1);
m1=2;
m2=1;
[x1,val1]=linprog(f,a,b,aeq,beq,lb,ub);
if (x1==0)
x=x1;
val=val1;
elseif (round(x1)==x1)
x=x1;
val=val1;
else
e1={0,a,b,aeq,beq,lb,ub,x1,val1};
e(1,1)={e1};
zl=0;
zu=-val1;
while (zu~=zl)
for c=1:1:m2
if (m1~=2)
if (cell2mat(e{m1-1,c}(1))==1)
e1={1,[],[],[],[],[],[],[],0};
e(m1,c*2-1)={e1};
e(m1,c*2)={e1};
continue;
end;
end;
x1=cell2mat(e{m1-1,c}(8));
x2=zeros(n,1);
s=0;
s1=1;
s2=1;
lb1=cell2mat(e{m1-1,c}(6));
ub1=cell2mat(e{m1-1,c}(7));
lb2=cell2mat(e{m1-1,c}(6));
ub2=cell2mat(e{m1-1,c}(7));
for d=1:1:n
if (abs((round(x1(d))-x1(d)))>0.0001)&(s==0)
s=1;
lb1(d)=fix(x1(d))+1;
if (a*lb1<=b)
s1=0;
end;
ub2(d)=fix(x1(d));
if (a*lb2<=b)
s2=0;
end;
end;
end;
e1={s1,a,b,aeq,beq,lb1,ub1,[],0};
e2={s2,a,b,aeq,beq,lb2,ub2,[],0};
e(m1,c*2-1)={e1};
e(m1,c*2)={e2};
end;
m1=m1+1;
m2=m2*2;
for c=1:1:m2
if (cell2mat(e{m1-1,c}(1))==0)
[x1,val1]=linprog(f,cell2mat(e{m1-1,c}( 2)),cell2mat(e{m1-1,c}(3)),cell2mat(e{m1-1,c}(4)),cell2mat(e{m1-1,c}(5)),cell2mat(e{m1-1,c}(6)),cell2mat(e{m1-1,c}(7)));
e1={cell2mat(e{m1-1,c}(1)),cell2mat(e{m1-1,c}(2)),cell2mat(e{m1-1,c}(3)),cell2mat(e{m1-1,c}(4)),cell2mat(e{m1-1,c}(5)),cell2mat(e{m1-1,c}(6)),cell2mat(e{m1-1,c}(7)),x1,val1};
e(m1-1,c)={e1};
end;
z=val1;
if ((-z)<(-zl))
e1={1,[],[],[],[],[],[],[],0};
e(m1-1,c)={e1};
elseif (abs(round(x1)-x1)<=0.0001)
zl=z;
end;
end;
for c=1:1:m2
if (cell2mat(e{m1-1,c}(1))==0)
zu=cell2mat(e{m1-1,c}(9));
end;
end;
for c=1:1:m2
if (-cell2mat(e{m1-1,c}(9))>(-zu))
zu=cell2mat(e{m1-1,c}(9));
end;
end;
end;
for c=1:1:m2
if (cell2mat(e{m1-1,c}(1))==0)&(cell2mat(e{m1-1,c}(9))==zu)
x=cell2mat(e{m1-1,c}(8));
end;
end;
val=zu;
end;

3. matlab怎麼做線性規劃模型

§1線性規劃模型;一、線性規劃課題:;實例1:生產計劃問題;假設某廠計劃生產甲、乙兩種產品,現庫存主要材料有;建立數學模型:;設x1、x2分別為生產甲、乙產品的件數;maxf=70x1+120x2;s.t9x1+4x2≤3600;4x1+5x2≤2000;3x1+10x2≤3000;x1,x2≥0;歸結出規劃問題:目標函數和約束條件都是變數x的線;形如:(1
§1 線性規劃模型
一、線性規劃課題:
實例1:生產計劃問題
假設某廠計劃生產甲、乙兩種產品,現庫存主要材料有A類3600公斤,B類2000公斤,C類3000公斤。每件甲產品需用材料A類9公斤,B類4公斤,C類3公斤。每件乙產品,需用材料A類4公斤,B類5公斤,C類10公斤。甲單位產品的利潤70元,乙單位產品的利潤120元。問如何安排生產,才能使該廠所獲的利潤最大。
建立數學模型:
設x1、x2分別為生產甲、乙產品的件數。f為該廠所獲總潤。
max f=70x1+120x2
s.t 9x1+4x2≤3600
4x1+5x2≤2000
3x1+10x2≤3000
x1,x2≥0

歸結出規劃問題:目標函數和約束條件都是變數x的線性函數。
形如: (1) min f T X
s.t A X≤b
Aeq X =beq
lb≤X≤ub
其中X為n維未知向量,f T=[f1,f2,…fn]為目標函數系數向量,小於等於約束系數矩陣A為m×n矩陣,b為其右端m維列向量,Aeq為等式約束系數矩陣,beq為等式約束右端常數列向量。lb,ub為自變數取值上界與下界約束的n維常數向量。
二.線性規劃問題求最優解函數:
調用格式: x=linprog(f,A,b)
x=linprog(f,A,b,Aeq,beq)
x=linprog(f,A,b,Aeq,beq,lb,ub)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
[x,fval]=linprog(…)
[x, fval, exitflag]=linprog(…)
[x, fval, exitflag, output]=linprog(…)
[x, fval, exitflag, output, lambda]=linprog(…)
說明:x=linprog(f,A,b)返回值x為最優解向量。

4. MATLAB優化工具箱--線性規劃問題

這個是整數規劃。
你得用別的函數。
比如:ipslv_mex,這個好像得去網上載。

f=ones(7,1);
A=[1,4,0,0,3,1,2;1,0,3,0,1,2,0;1,0,0,2,0,0,1];
b=[50;30;25];
intlist=zeros(7,1); %代表專7個變屬量都是整數
xmin=ones(7,1); %代表7個變數的最小值均為1
xmax=inf*ones(7,1); %代表7個變數最大值均為無窮大
ctype=ones(3,1); %代表三個方程都是Ax=b,大於等於的話為1,小於等於的話為-1
[x,how]=ipslv_mex(f,A,b,intlist,xmax,xmin,ctype)
結果為:
x =

16
1
1
4
9
1
1

5. 線性規劃 matlab求解工具有哪些

線性規劃是一種優化方法,Matlab優化工具箱中有現成函數linprog對如下式描述的LP問題求解:
% min f'x
% s.t .(約束條件): Ax<=b
% (等式約束條件): Aeqx=beq
% lb<=x<=ub

linprog函數的調用格式如下:
x=linprog(f,A,b)
x=linprog(f,A,b,Aeq,beq)
x=linprog(f,A,b,Aeq,beq,lb,ub)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
[x,fval]=linprog(…)
[x, fval, exitflag]=linprog(…)
[x, fval, exitflag, output]=linprog(…)
[x, fval, exitflag, output, lambda]=linprog(…)
其中:
x=linprog(f,A,b)返回值x為最優解向量。
x=linprog(f,A,b,Aeq,beq) 作有等式約束的問題。若沒有不等式約束,則令A=[ ]、b=[ ] 。
x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中lb ,ub為變數x的下界和上界,x0為初值點,options為指定優化參數進行最小化。
Options的參數描述:
Display顯示水平。 選擇』off』 不顯示輸出;選擇』Iter』顯示每一 步迭代過程的輸出;選擇』final』 顯示最終結果。
MaxFunEvals 函數評價的最大允許次數
Maxiter 最大允許迭代次數
TolX x處的終止容限
[x,fval]=linprog(…) 左端 fval 返回解x處的目標函數值。
[x,fval,exitflag,output,lambda]=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的輸出部分:
exitflag 描述函數計算的退出條件:若為正值,表示目標函數收斂於解x處;若為負值,表示目標函數不收斂;若為零值,表示已經達到函數評價或迭代的最大次數。
output 返回優化信息:output.iterations表示迭代次數;output.algorithm表示所採用的演算法;outprt.funcCount表示函數評價次數。
lambda 返回x處的拉格朗日乘子。它有以下屬性:
lambda.lower-lambda的下界;
lambda.upper-lambda的上界;
lambda.ineqlin-lambda的線性不等式;
lambda.eqlin-lambda的線性等式。

6. 如果要使用matlab解決線性規劃問題,安裝時需要選擇安裝哪些東西或者怎樣調用linprog函數

什麼也不用安裝,matlab自帶

利用Matlab求解線性規劃問題

線性規劃是一種優化方法,Matlab優化工具箱中有現成函數linprog對如下式描述的LP問題求解:
% min f'x
% s.t .(約束條件): Ax<=b
% (等式約束條件): Aeqx=beq
% lb<=x<=ub

linprog函數的調用格式如下:
x=linprog(f,A,b)
x=linprog(f,A,b,Aeq,beq)
x=linprog(f,A,b,Aeq,beq,lb,ub)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
[x,fval]=linprog(…)
[x, fval, exitflag]=linprog(…)
[x, fval, exitflag, output]=linprog(…)
[x, fval, exitflag, output, lambda]=linprog(…)
其中:
x=linprog(f,A,b)返回值x為最優解向量。
x=linprog(f,A,b,Aeq,beq) 作有等式約束的問題。若沒有不等式約束,則令A=[ ]、b=[ ] 。
x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中lb ,ub為變數x的下界和上界,x0為初值點,options為指定優化參數進行最小化。
Options的參數描述:
Display顯示水平。 選擇』off』 不顯示輸出;選擇』Iter』顯示每一 步迭代過程的輸出;選擇』final』 顯示最終結果。
MaxFunEvals 函數評價的最大允許次數
Maxiter 最大允許迭代次數
TolX x處的終止容限
[x,fval]=linprog(…) 左端 fval 返回解x處的目標函數值。
[x,fval,exitflag,output,lambda]=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的輸出部分:
exitflag 描述函數計算的退出條件:若為正值,表示目標函數收斂於解x處;若為負值,表示目標函數不收斂;若為零值,表示已經達到函數評價或迭代的最大次數。
output 返回優化信息:output.iterations表示迭代次數;output.algorithm表示所採用的演算法;outprt.funcCount表示函數評價次數。
lambda 返回x處的拉格朗日乘子。它有以下屬性:
lambda.lower-lambda的下界;
lambda.upper-lambda的上界;
lambda.ineqlin-lambda的線性不等式;
lambda.eqlin-lambda的線性等式。
下面通過具體的例子來說明:
例如:某農場I、II、III等耕地的面積分別為100 hm2、300 hm2和200 hm2,計劃種植水稻、大豆和玉米,要求三種作物的最低收獲量分別為190000kg、130000kg和350000kg。I、II、III等耕地種植三種作物的單產如表5.1.4所示。若三種作物的售價分別為水稻1.20元/kg,大豆1.50元/kg,玉米0.80元/kg。那麼,(1)如何制訂種植計劃,才能使總產量最大?(2)如何制訂種植計劃,才能使總產值最大?
表1不同等級耕地種植不同作物的單產(單位:kg / hm2)
I等耕地 II等耕地 III等耕地
水稻 11 000 9 500 9 000
大豆 8 000 6 800 6 000
玉米 14 000 12 000 10 000
首先根據題意建立線性規劃模型(決策變數設置如表2所示,表中 表示第 種作物在第j等級的耕地上的種植面積。):
表2 作物計劃種植面積(單位:hm2)
I等耕地 II等耕地 III等耕地
水稻

大豆

玉米

約束方程如下:
耕地面積約束:
最低收獲量約束:
非負約束:
(1)追求總產量最大,目標函數為:

(2)追求總產值最大,目標函數為:

根據求解函數linprog中的參數含義,列出系數矩陣,目標函數系數矩陣,以及約束條件等。
這些參數中沒有的設為空。譬如,
(1)當追求總產量最大時,只要將參數
f=[-11000 –9500 –9000 –8000 –6800 –6000 –14000 –12000 -10000];
A=[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000;
0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000;
0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000;
-11000.0000 0.0000 0.0000 -9500.0000 0.0000 0.0000 -9000.0000 0.0000 0.0000;
0.0000 -8000.0000 0.0000 0.0000 -6800.0000 0.0000 0.0000 -6000.0000 0.0000;
0.0000 0.0000 -14000.0000 0.0000 0.0000 -12000.0000 0.0000 0.0000 -10000.0000];
b=[100 300 200 -190000 -130000 -350000];
lb=[0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 ];
代入求解函數 ,即可求得結果。
(2)當追求總產值最大時,將參數
f=[-13200 –11400 –10800 –12000 –10200 –9000 –11200 –9600 -8000];
A=[1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000;
0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000;
0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000;
-11000.0000 0.0000 0.0000 -9500.0000 0.0000 0.0000 -9000.0000 0.0000 0.0000;
0.0000 -8000.0000 0.0000 0.0000 -6800.0000 0.0000 0.0000 -6000.0000 0.0000;
0.0000 0.0000 -14000.0000 0.0000 0.0000 -12000.0000 0.0000 0.0000 -10000.0000];
b=[100 300 200 -190000 -130000 -350000];
lb=[0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 ];
代入求解函數 ,即可得到求解結果。
線性規劃,還有其他的幾種調用函數形式,可在Matlab幫助中查找LP或者LINPROG的幫助說明。

7. matlab優化工具箱lp

lp是matlab5的優化函數,現在matlab7以上都用linprog換成x=linprog(f,A,b)

8. matlab怎麼實現整數線性規劃或者非線性規劃

intlinprog 函數,用於進行整數規劃和整數非整數的混合規劃
[x,y,flag]=intlinprog(f,[1,2],A,b,C,d,xm,xM)

9. 用MATLAB優化工具箱解線性規劃,請舉例說明.

應該是數學建模吧,一般解線性規劃問題都用LINGO,簡單易學。
例如:鋼管原材料內每根長19m,現需容要A,B,C,D四種鋼管部件,長度分別為4m,5m,6m,8m,數量分別為50,10,20,15根因不同下料方式之間的轉換會增加成本,因而要求不同的下料方式不超過3種,試安排下料方式,使所需圓鋼材料的總數量最少。
在LINGO中運行如下程序即可。
model:
sets:
bujian/1..4/:L,b;
cutfa/1,2,3,4/:x;
links(bujian,cutfa):N;
endsets
data:
L=4 5 6 8;
b=50 10 20 15;
enddata
min=@sum(cutfa:x);
ZL=19;
@for(bujian(i):@sum(cutfa(j):N(i,j)*x(j))>=b(i));
@for(cutfa(j):@sum(bujian(i):L(i)*N(i,j))<=ZL);
@for(cutfa(j):@sum(bujian(i):L(i)*N(i,j))>ZL-4);
@for(cutfa:@gin(x));@for(links:@gin(N));

end

10. 大家誰有MATLAB的整數線性規劃工具箱,有的話請發到郵箱[email protected]

這個工具箱我找了好久都沒有找到;
我覺得你可以用lingo試試,他是專業的數學優化工具箱;使用起來比MATLAB,還簡單;我先也是找整數規劃工具箱,沒有找到,後來用了lingo,覺得其實也很不錯的

閱讀全文

與matlab線性規劃工具箱相關的資料

熱點內容
山地自行車前後軸擋軸承如何折卸 瀏覽:698
蘇州球閥閥門廠有哪些 瀏覽:43
機床撞機事故主管報告怎麼寫 瀏覽:253
水箱漂浮閥門什麼材質好 瀏覽:483
為什麼機械先驅沒有了 瀏覽:494
麻將機變壓器生產設備有哪些 瀏覽:350
製冷開30度一個月多少錢 瀏覽:850
美團工具箱 瀏覽:273
生銹的外球軸承如何從軸上取下來 瀏覽:787
富華橋軸承怎麼裝 瀏覽:903
模擬滲透裝置的實驗材料 瀏覽:122
上海前春五金製品廠 瀏覽:512
水的沸騰實驗裝置是 瀏覽:223
洗手盆上水閥門壞了怎麼修 瀏覽:858
電力系統自動裝置原理楊冠城吧 瀏覽:91
桌面旋轉軸承怎麼挑選 瀏覽:774
機械桿對電池有什麼要求 瀏覽:410
位移檢測裝置遠距 瀏覽:950
電器設備有靜電怎麼辦 瀏覽:462
為什麼腎臟結石不建議超聲波碎石 瀏覽:241