日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

利用Matlab求解线性规划问题

發(fā)布時(shí)間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Matlab求解线性规划问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

線性規(guī)劃是一種優(yōu)化方法,Matlab優(yōu)化工具箱中有現(xiàn)成函數(shù)linprog對(duì)如下式描述的LP問(wèn)題求解:

% min f'x

% s.t .(約束條件): Ax<=b

% (等式約束條件): Aeqx=beq

% lb<=x<=ub

linprog函數(shù)的調(diào)用格式如下:

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為最優(yōu)解向量。

x=linprog(f,A,b,Aeq,beq) 作有等式約束的問(wèn)題。若沒(méi)有不等式約束,則令A(yù)=[ ]、b=[ ] 。

x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中l(wèi)b ,ub為變量x的下界和上界,x0為初值點(diǎn),options為指定優(yōu)化參數(shù)進(jìn)行最小化。

Options的參數(shù)描述:
Display顯示水平。 選擇’off’ 不顯示輸出;選擇’Iter’顯示每一 步迭代過(guò)程的輸出;選擇’final’ 顯示最終結(jié)果。

MaxFunEvals 函數(shù)評(píng)價(jià)的最大允許次數(shù)

Maxiter 最大允許迭代次數(shù)

TolX x處的終止容限

[x,fval]=linprog(…) 左端 fval 返回解x處的目標(biāo)函數(shù)值。

[x,fval,exitflag,output,lambda]=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的輸出部分:

exitflag 描述函數(shù)計(jì)算的退出條件:若為正值,表示目標(biāo)函數(shù)收斂于解x處;若為負(fù)值,表示目標(biāo)函數(shù)不收斂;若為零值,表示已經(jīng)達(dá)到函數(shù)評(píng)價(jià)或迭代的最大次數(shù)。

output 返回優(yōu)化信息:output.iterations表示迭代次數(shù);output.algorithm表示所采用的算法;outprt.funcCount表示函數(shù)評(píng)價(jià)次數(shù)。

lambda 返回x處的拉格朗日乘子。它有以下屬性:

lambda.lower-lambda的下界;

lambda.upper-lambda的上界;

lambda.ineqlin-lambda的線性不等式;

lambda.eqlin-lambda的線性等式。

下面通過(guò)具體的例子來(lái)說(shuō)明:

例如:某農(nóng)場(chǎng)I、II、III等耕地的面積分別為100 hm2、300 hm2和200 hm2,計(jì)劃種植水稻、大豆和玉米,要求三種作物的最低收獲量分別為190000kg、130000kg和350000kg。I、II、III等耕地種植三種作物的單產(chǎn)如表5.1.4所示。若三種作物的售價(jià)分別為水稻1.20元/kg,大豆1.50元/kg,玉米0.80元/kg。那么,(1)如何制訂種植計(jì)劃,才能使總產(chǎn)量最大?(2)如何制訂種植計(jì)劃,才能使總產(chǎn)值最大?

表1不同等級(jí)耕地種植不同作物的單產(chǎn)(單位:kg / hm2)

I等耕地

II等耕地

III等耕地

水稻

11 000

9 500

9 000

大豆

8 000

6 800

6 000

玉米

14 000

12 000

10 000

首先根據(jù)題意建立線性規(guī)劃模型(決策變量設(shè)置如表2所示,表中表示第種作物在第j等級(jí)的耕地上的種植面積。):

表2 作物計(jì)劃種植面積(單位:hm2)

I等耕地

II等耕地

III等耕地

水稻

大豆

玉米

約束方程如下:

耕地面積約束:

最低收獲量約束:

非負(fù)約束:

(1)追求總產(chǎn)量最大,目標(biāo)函數(shù)為:

(2)追求總產(chǎn)值最大,目標(biāo)函數(shù)為:

根據(jù)求解函數(shù)linprog中的參數(shù)含義,列出系數(shù)矩陣,目標(biāo)函數(shù)系數(shù)矩陣,以及約束條件等。

這些參數(shù)中沒(méi)有的設(shè)為空。譬如,

(1)當(dāng)追求總產(chǎn)量最大時(shí),只要將參數(shù)

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 ];

代入求解函數(shù),即可求得結(jié)果。

(2)當(dāng)追求總產(chǎn)值最大時(shí),將參數(shù)

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 ];

代入求解函數(shù),即可得到求解結(jié)果。

線性規(guī)劃,還有其他的幾種調(diào)用函數(shù)形式,可在Matlab幫助中查找LP或者LINPROG的幫助說(shuō)明。

總結(jié)

以上是生活随笔為你收集整理的利用Matlab求解线性规划问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。