工程數學實驗5

不会JAVA的小袁發表於2024-06-13

實驗五:MATLAB最最佳化工具箱的使用

1)線性規劃應用案例的求解

1、基本要求

透過一個農業生產計劃最佳化安排的例項求解,培養學生解決實際線性規劃問題的初步能力;熟悉線性規劃的建模過程;掌握Matlab最佳化工具箱中線性規劃函式的呼叫。

2、主要內容

某村計劃在100公頃的土地上種植abc三種農作物。可以提供的勞力、糞肥和化肥等資源的數量,種植每公頃農作物所需這三種資源的數量,以及能夠獲得的利潤如表所示。

種植投入產出表

糞肥(噸)

化肥(千克)

利潤(元)

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

相關文章