實驗五:MATLAB最最佳化工具箱的使用
(1)線性規劃應用案例的求解
1、基本要求
透過一個農業生產計劃最佳化安排的例項求解,培養學生解決實際線性規劃問題的初步能力;熟悉線性規劃的建模過程;掌握Matlab最佳化工具箱中線性規劃函式的呼叫。
2、主要內容
某村計劃在100公頃的土地上種植a、b、c三種農作物。可以提供的勞力、糞肥和化肥等資源的數量,種植每公頃農作物所需這三種資源的數量,以及能夠獲得的利潤如表所示。
種植投入產出表
|
用 工 |
糞肥(噸) |
化肥(千克) |
利潤(元) |
a |
450 |
35 |
350 |
1500 |
b |
600 |
25 |
400 |
1200 |
c |
900 |
30 |
300 |
1800 |
可提供資源 |
63000 |
3300 |
33000 |
|
其中一個勞動力幹一天為1個工。現在要求為該村制定一個農作物的種植計劃,確定每種農作物的種植面積,使得總利潤最大。
3、操作要點
(1)建立線性規劃的數學模型;
(2)安裝Matlab最佳化工具箱(Optimization Toolbox),並學習工具箱中求解線性規劃的函式;
(3)利用Matlab最佳化工具箱解線性規劃問題。
(4)執行該程式,在命令窗記錄下最優解x和對應的最優值fval。
(5)按照模板撰寫實驗報告,要求規範整潔。
4、主要儀器裝置
微機及Matlab軟體
(2)二次規劃應用案例的求解
1、基本要求
透過一個投資組合最佳化問題的例項求解,培養學生解決實際二次規劃問題的初步能力;熟悉線性規劃的建模過程;掌握Matlab最佳化工具箱中線性規劃函式的呼叫。
2、上機主要內容
求解從一點(0,0,0)到超平面的最短距離,
其中,,。
透過建模構造二次規劃問題,求解以上問題的最優解和最優值。
3、操作要點
(1)建立二次規劃的數學模型;
(2)安裝Matlab最佳化工具箱(Optimization Toolbox),並學習工具箱中求解二次規劃的函式;
(3)利用Matlab最佳化工具箱解二次規劃問題。
(4)執行該程式,在命令窗記錄下最優解x和對應的最優值fval。
(5)按照模板撰寫實驗報告,要求規範整潔。
4、主要儀器裝置
微機及Matlab軟體
f=[1500 1200 1800]';
f=-f;
a=[450 600 900;35 25 30;350 400 300];
b=[63000 3300 33000]';
aeq=[1 1 1];
beq=[100];
lb=zeros(3,1);
[x,fval,exitflag,output,lamdba]=linprog(f,a,b,aeq,beq,lb)
% 定義二次規劃的係數矩陣和線性項向量
H = eye(3); % 對角線元素為1,表示距離的平方
f = zeros(3, 1);
% 定義約束矩陣和右側向量
A = [1 2 -1; -1 1 -1];
b = [4; 2];
% 定義初始點
x0 = [0; 0; 0];
% 呼叫 quadprog 函式求解二次規劃問題
% 注意:在這個例子中,我們沒有使用等式約束,因此不需要Aeq和beq
[x, fval] = quadprog(H, f, A, b, [], [], x0);
% 顯示最優解和對應的最優值
disp('最優解 x:');
disp(x);
disp('對應的最優值 fval:');
disp(fval);