




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MATLAB在線性規劃中的應用摘要在各類經濟活動中,經常遇到這樣的問題:在生產條件不變的情下,如何通過統籌安排,改進生產組織或計劃,合理安排人力、物力資源,組織生產過程,使總的經濟效益最好。這樣的問題常常可以化成或近似地化成所謂的“線性規劃”(LinearProgramming,簡記為LP)問題。線性規劃是應用分析、量化的方法,對經濟管理系統中的人、財、物等有限資源進行統籌安排,為決策者提供有依據的最優方案,以實現有效管理。利用線性規劃我們可以解決很多問題。如:在不違反一定資源限制下,組織安排生產,獲得最好的經濟效益(產量最多、利潤最大、效用最高)。也可以在滿足一定需求條件下,進行合理配置,使成本最小。同時還可以在任務或目標確定后,統籌兼顧,合理安排,用最少的資源(如資金、設備、原材料、人工、時間等)去完成任務。常規的手工解法復雜且運算量大,而MATLAB語言可以很好的處理線性規劃問題,既能進行數值的求解,又能繪制有關線性圖形,非常方便實用,利用其可以減少工作量,節約時間,加深理解,同樣可以培養應用能力。關鍵詞:線性規劃優化求解MATLAB語言一、線性規劃問題的在實際中的應用線性規劃問題的在實際應用中的作用任何資源都是有限的,如何通過分配有限的資源獲得人們所期望的效果,在工農業生產、交通運輸、資本增值等各項經濟活動中,如何提高經濟效益,做到耗費較少的人力物力財力,創造出較多的經濟價值,這些問題涉及分配,而線性規劃為最優分配提供了工具。線性規劃主要研究的兩類問題一是一項任務確定后,如何統籌安排,盡量做到用最少的人力物力資源去完成這一任務。二是已有一定數量的人力物力資源,如何安排使用它們,使得完成任務最多。常見的線性規劃問題如:運輸問題,生產的組織與計劃問題,合力下料問題,配料問題、布局問題、分派問題等。MATLAB在線性規劃中的應用1.MATLAB在線性規劃中的指令線性規劃是一種優化方法,Matlab優化工具箱中有現成函數linprog[1]對如下式描述的LP問題求解:%minf'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最大允許迭代次數。TolXx處的終止容限。[x,fval]=linprog(…)左端fval返回解x處的目標函數值。[x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beg,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的線性等式。三、運用MATLAB解決線性規劃問題的實例對于給定的實際問題,首先是要建立線性規劃問題[2]的數學模型,其次是求問題的最優解。1、直接運用MATLAB編程計算求解線性規劃問題線性規劃的目標函數可以是求最大值,也可以是求最小值,約束條件可以是不等式也可以是等式,變量可以有非負要求也可以沒有非負要求(稱這樣的變量為自由變量)。為了避免這種由于形式多樣性而帶來的不便,規定線性規劃的標準形式為(1)極小值模型(2)極大值模型利用矩陣與向量記為(3)其中C和x為n維列向量,b為m維列向量,b≥0,A為m×n矩陣,m<n且rank(A)=m。如果根據實際問題建立起來的線性規劃問題并非標準形式,可以將它如下化為標準形式:(1)若目標函數為,可將它化為(2)若第i個約束為,可增加一個松馳變量,將不等式化為,且0。 若第i個約束為ai1x1+…+ainxnbi,可引入剩余量,將不等式化為ai1x1+…+ainxn-yi=bi,且yi0。(3)若xi為自變量,則可令,其中、0。問題一、某牧場飼養一批動物,平均每頭動物至少需要700g蛋白質,30g礦物質和100g維生素?,F有A,B,C,D,E五種飼料可供選用,每千克飼料的營養成分(單位:g)與價格(單位:元/kg)如下表所示:表1每千克飼料的營養成分(單位:g)與價格(單位:元/kg)蛋白質礦物質維生素價格A31.00.50.4B20.51.01.4C10.21.20.8D62.02.01.6E120.50.81.6試求能滿足動物生長營養需求又最經濟的選用飼料方案。設配合飼料中,用A種飼料單位,用B種飼料單位,用C種飼料單位,用D種飼料單位,用E種飼料單位,則配合飼料的原料成本函數,即決策的目標函數為Z??紤]三種營養含量限制條件后,得這一問題的線性規劃模型[3]如下目標函數:(4)約束條件為:(5)編寫M文件如下:c=[0.4;1.4;0.8;1.6;1.6];%產生有五個元素的列向量cA=[-3,-2,-1,-6,-12;-1.0,-0.5,-0.2,-2.0,-0.5;-0.5,-1.0,-1.2,-2.0,-0.8];%約束條件中的變量系數構成的矩陣Ab=[-700;-30;-100];%約束條件中的上下界構成的列向量Aeq=[];%沒有等式約束beq=[];%沒有等式約束vlb=zeros(5,1);%生成一個五行一列的零矩陣[x,fval,eval]=linprog(c,A,b,Aeq,beq,vlb)%調用linprog函數可得到如下結果:Optimizationterminated.x=224.71150.00000.00000.00002.1555fval=93.3333從以上結果可以看出,買224.7115千克的A飼料,2.1555千克的E飼料,能滿足動物生能滿足動物生長營養需求又最經濟,所用價錢為93.3333元。問題二、某農場I、II、III等耕地的面積分別為100hm2、300hm2和200hm2,計劃種植水稻、大豆和玉米,要求三種作物的最低收獲量分別為190000kg、130000kg和350000kg。I、II、III等耕地種植三種作物的單產如表5.1.4所示。若三種作物的售價分別為水稻1.20元/kg,大豆1.50元/kg,玉米0.80元/kg表2不同等級耕地種植不同作物的單產(單位:kg/hm2)I等耕地II等耕地III等耕地水稻1100095009000大豆800068006000玉米140001200010000首先根據題意建立線性規劃模型(決策變量設置如表2所示,表中表示第種作物在第j等級的耕地上的種植面積。):表3作物計劃種植面積(單位:hm2)I等耕地II等耕地III等耕地水稻大豆玉米約束方程[4]如下:耕地面積約束:(6)最低收獲量約束:(7)非負約束:追求總產量最大,目標函數為:(8)追求總產值最大,目標函數為:(9)根據求解函數linprog中的參數含義,列出系數矩陣,目標函數系數矩陣,以及約束條件等。這些參數中沒有的設為空。譬如,當追求總產量最大時,只要將參數f=[-11000–9500–9000–8000–6800–6000–14000–12000-10000];A=[1.00000.00000.00001.00000.00000.00001.00000.00000.0000;0.00001.00000.00000.00001.00000.00000.00001.00000.0000;0.00000.00001.00000.00000.00001.00000.00000.00001.0000;-11000.00000.00000.0000-9500.00000.00000.0000-9000.00000.00000.0000;0.0000-8000.00000.00000.0000-6800.00000.00000.0000-6000.00000.0000;0.00000.0000-14000.00000.00000.0000-12000.00000.00000.0000-10000.0000];b=[100300200-190000-130000-350000];lb=[0.00000.00000.00000.00000.00000.00000.00000.00000.0000];代入求解函數,即可得到求解結果。運用MATLAB的圖解法求解線性規劃問題若一個線性規劃問題有最優解,則最優解一定可以在可行域的某個極點上找到一個最優解。同時仍有可能有其他最優解存在,但它們也只可能存在于可行域的其他極點或是邊界上。如果我們的目的是找出一個最優解而不是全部最優解,這一定理實際上是把尋找的范圍,從可行域中的無窮多個可行點,縮小到可行域的有限幾個極點上。[5]問題一、某農戶有耕地20公頃,可采用甲乙兩種種植方式。甲種植方式每公頃需投資280元,每公頃投工6個,可獲收入1000元,乙方式每公頃需投資150元,勞動15個工日,可獲收入1200元,該戶共有可用資金4200元、240個勞動工日。問如何安排甲乙兩種方式的生產,可使總收入最大?解:設甲方式種公頃,乙方式種公頃,總收入為Z,則有:(13)圖問題一線性規劃圖解所以,如圖所示,在B點時,甲級兩種方式的總收入最大,即甲方式種6.7公頃,乙方式種13.3公頃。結論1、由于將線性規劃問題化為標準形式之后的約束條件是一個非齊次線性方程組,故當考慮LP問題的解時,首先可以考慮非齊次線性方程組的解,然后再考慮目標函數的解最大、最小值問題。單純形法是求解LP問題的一種常用方法,但單純形法的運算量比較大,當約束條件中的約束變量比較多時,效費比就比較低,因此借助計算機軟件的強大運算功能,既節約時間又提高了運算的準確性,對于一般的線性規劃問題,應用excel、MATLAB都可以輕松解決,但MATLAB的整數線性規劃運算功能欠缺,此時可以應用lingo、excel軟件解決這類問題。2、在接觸MATLAB之后,我發現MATLAB語法簡單,易于繪制圖形,編程也非常容易.并且有功能強大的開放式的toolbox。MATLAB是功能強大的科學及工程計算軟件,它不但具有矩陣計算為基礎的強大數學計算和分析功能,而且還具有豐富的可視化圖形表現功能和方便的程序設計能力。3、對于MATLAB自帶函數的問題,要多利用MATLAB的幫助功能,例如:對于某些不是很明確的命令,只知道大體的所屬范圍,譬如說某個工具箱,直接在命令窗口中敲入helptoolboxname.可以這么說任何問題都可以在MATLAB幫助里找到解決方法,問題不論大小
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畜牧師職稱考試組織策略試題及答案
- 畜牧師職業生涯規劃的考試試題及答案
- 2025年銀行從業資格證考試知識要訣試題及答案
- 銀行從業資格證的服務理念試題及答案
- 第23課《馬說》教學設計2023-2024學年統編版語文八年級下冊
- 2025年PM10自動采樣器及測定儀合作協議書
- 耐火纖維制品企業ESG實踐與創新戰略研究報告
- 紡織用廢紡處理設備企業縣域市場拓展與下沉戰略研究報告
- 通信設備零部件企業ESG實踐與創新戰略研究報告
- 繪圖工具企業ESG實踐與創新戰略研究報告
- 閱讀提取信息課件
- 江蘇省2024年中職職教高考文化統考烹飪專業綜合理論真題試卷
- 市政工程施工部署與資源配置計劃
- 2025年理化檢驗面試試題及答案
- 11.1 化學與人體健康(課件)-2024-2025學年九年級化學人教版下冊
- 污水處理廠工程設備安裝施工方案及技術措施
- 2025年電力人工智能多模態大模型創新技術及應用報告-西安交通大學
- 《信息加密技術》課件
- 加油站的員工培訓與技能提升
- 《變態反應性皮膚病》課件
- 2021年高考物理試卷(福建)(空白卷)
評論
0/150
提交評論