R語言求解線性規(guī)劃和非線性規(guī)劃_第1頁
R語言求解線性規(guī)劃和非線性規(guī)劃_第2頁
R語言求解線性規(guī)劃和非線性規(guī)劃_第3頁
R語言求解線性規(guī)劃和非線性規(guī)劃_第4頁
R語言求解線性規(guī)劃和非線性規(guī)劃_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第七章線性規(guī)劃與非線性規(guī)劃例1max z=10x1+5x2s.t.5x1+2x2<=83x1+4x2=9x1+x2>=1x1,x2>=0首先可化為標準形式:min-z=-10x1-5x2s.t.5x1+2x1<=8-x1-x2<=-13x1+4x2=9x1,x2>=0library(Rglpk)obj<-c(-10,-5)mat<-matrix(c(5,2,-1,-1,3,4),3,2,T)dir<-c("<=","<=","==")rhs<-c(8,-1,9)Rglpk_solve_LP(obj,mat,dir,rhs)#直接求解library(Rglpk)obj<-c(10,5)mat<-matrix(c(5,2,1,1,3,4),3,2,T)dir<-c("<=",">=","==")rhs<-c(8,1,9)Rglpk_solve_LP(obj,mat,dir,rhs,max=T)非線性規(guī)劃求解(Rdonp2)例2有如下的條件約束最優(yōu)化問題:min(z=x2siny+y2cosx)'-100<x<100-100<y<1002<x+y<1<3x一y<3xy=2sinxcosy<3library(Rdonlp2)p=c(10,10) #迭代初始值#對求解問題進行描述min(z=x2siny+y2cosx)fn=function(x){x[1]人2*sin(x[2])+x⑵人2*cos(x[1])}#對x,y值域描述-100<x<100-100<y<100##par.l和par.u分別為約束的左邊和右邊par.l=c(-100,-100);par.u=c(100,100)##目標值域#對線性約束進行描述2<x+y1<3x-y<3A=matrix(c(1,1,3,-1),2,byrow=TRUE)##線性約束系數(shù)lin.l=c(2,1);lin.u=c(+Inf,3)##分別為約束的左邊和右邊#對非線性約束進行描述xy=2sinxcosy<3nlcon1=function(x){x[1]*x[2] ##公式x*y}nlcon2=function(x){sin(x[1])*cos(x[2]) ##公式sin(x)*cos(y)}##兩個非線性約束的左右邊##x*y=2等價于2<=x*y<=2

nlin.l=c(2,-Inf);nlin.u=c(2,0.6)#將參數(shù)輸入donlp2函數(shù)中進行求解##輸入?yún)?shù)第一行:x,y值域及目標函數(shù)##輸入?yún)?shù)第二行:線性約束條件##輸入?yún)?shù)第三,四行:非線性約束條件ret=donlp2(p,fn,par.u=par.u,par.l=par.l,A,lin.l=lin.l,lin.u=lin.u,nlin=list(nlconl,nlcon2),nlin.u=nlin.u,nlin.l=nlin.l)##輸出結(jié)果ret$parret$par例3解下列二次規(guī)劃7 '7if(x)=+ —兩兀2—2Xj—6兀2*SJ.Xx^rX2<2,丿一兀]+2兀2蘭2,2xi+x2<3.xx>0? >0+x1x1-[26]x1x2」xL2」二次規(guī)劃的優(yōu)化問題,這是一種特殊形式的非線性約束優(yōu)化問題。二次規(guī)劃在許多領(lǐng)域都有運用,比如投資組合優(yōu)化、求解支持向量機(SVM)分類問題等。想要用quadprog包求解二次規(guī)劃,我們需要同時轉(zhuǎn)化我們的目標函數(shù)和約束條件為矩陣形式。quadprog包默認是求解最小化問題,目標函數(shù)二次,約束一次。所以,我們的約束條件默認的形式也就是AX>=bvec。通常我們需要把一些原來是求極大值的問題或者<=約束通過乘以負號來轉(zhuǎn)化library(quadprog)Dmat<-matrix(c(1,-1,1,2),2,2,T)Dmatdvec<-c(2,6)A<-matrix(-c(1,1,-1,2,2,1),3,2,T)Abvec<-c(-2,-2,-3)Amat<-t(A)sol<-solve.QP(Dmat,dvec,Amat,bvec)sol參數(shù)Dmat表示海賽矩陣參數(shù)dvet表示一階向量,和Dmat的維數(shù)要相對應(yīng)。參數(shù)Amat表示約束矩陣,默認的約束都是>=。參數(shù)bvet表示右邊值,由向量,和Amat的維數(shù)要相對應(yīng)。參數(shù)meq表示從哪一行開始Amat矩陣中的約束是需要被當作等式約束的。例4假設(shè)以決策變量x1、x2、x3分別表示甲、乙、丙、丁4種肥料的用量,得線性規(guī)劃模型"minz=0.04x+0.15x+O.lx+0.125xTOC\o"1-5"\h\z1 2 3 4s.t0.03x+0.3x+0.15x>321 2 4< 0.05x+0.2x+0.1x=241 3 40.14x+0.07x<421 4x,x,x,x>0/r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論