有時候我們在使用matlab進行數據計算的時候,需要用到線性規劃優化計算出最優解,怎么使用呢,下面來分享一下方法
第一步我們首先需要知道,matlab中用于線性規劃優化計算的是linprog()函數,公式是[x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beq,lb,ub);,其中各個參數的意思可以看下面的注釋,如下圖所示:
第二步線性規劃優化計算求最優解的方法很多,有單純形法,大M法,內點法等,linprog函數集中了這幾種線性規劃算法,如果感興趣的話,可以去了解一下這幾種算法,下面通過一個實例來介紹linprog()函數求線性規劃問題最優解,如下圖所示:
第三步我們根據目標函數和約束條件,可以得出目標函數系數矩陣f=[-5; -4; -6],不等式約束系數矩陣A =[1 -1 1;3 2 4;3 2 0],不等式約束常向量b=[20; 42; 30],lb=zeros(3,1),如下圖所示:
第四步我們打開matlab,在命令行窗口中,輸入f,A,b,lb,最后通過“[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb)”求最優解,如下圖所示:
第五步按回車鍵之后,我們可以看到求出的最優解x,目標函數最優值fval,其中exitflag =1代表求解的結果是成功的,如果是其他數字代表失敗,如下圖所示:
第六步我們也可以看一下優化過程中的各種輸出信息output,結構體,包含最優解處的拉格朗日乘子lambda,如下圖所示:
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!