文章目錄
- 一、題目
- 三、分析
- 四、matlab解題
- 1)語法
- 2)數學思維
- 3)matlab解題
- 4)練習題
- 五、你的任務提交
一、題目
某機床廠生產甲、乙兩種機床,每臺銷售后的利潤分別為 4000 元與 3000 元,甲機床需用 A、B 機器加工,加工時間分別為每臺 2 小時和 1 小時;生產乙機床需用 A、B、C 三種機器加工,加工時間為每臺各一小時,若每天可用于加工的機器時數分別為 A 機器 10 小時、B 機器 8 小時和C 機器 7 小時,問該廠應生產甲、乙機床各幾臺,才能使總利潤最大?
三、分析
首先你要把問題當作數學問題來思考,暫時請不要考慮代碼,我們設該廠生產 x1 臺甲機床和 x2 乙機床時總利潤最大,
根據題目我們所得關系如下:
1)z = 4x1 + 3x2 就是我們要求的總利潤
2) 每天可用于加工的機器時數分別為 A 機器 10 小時、B 機器 8 小時和C 機器 7 小時可得到關系是分別為:
2x1+x2<10
x1+x2<8
x2<7
3) 最后一點還得保證:x1,x2>0
建模就如此簡單,根據題目,我們得出對應的數學方程即可,
我們在這里把變數 x1 , x2 稱之為決策變數,z = 4x1 + 3x2叫做目標函式,第二步和第三步的式子叫做約束條件,
你是不是有這樣一個疑問?為什么這個是線性規劃模型?不是非線性呢?請把你的回答寫到評論區,我看看你們怎么的理解,
四、matlab解題
1)語法
我們使用linprog函式,這是專門解決線性規劃問題的,我們來看一看該函式的語法:

具體含義是什么呢?似乎你還看不懂這個,因此我用中文來說一下我們主要用到的部分:
x = linprog(f,A,b) 求解 min f'*x 約束條件為 A*x ≤ b.
x = linprog(f,A,b,Aeq,beq) 求解上述問題,但是增加了約束條件,即將: Aeq*x = beq. 如果沒有等式存在可以用:A = [] and b = []
x = linprog(f,A,b,Aeq,beq,lb,ub) 定義變數x的下界lb和上街ub,使得x始終在該范圍內,即lb ≤ x ≤ ub,若沒有約束條件,則設: Aeq = [] and beq = []
2)數學思維
我們的數學公式拿下來看看,看著我們對比著寫代碼:
目標函式:
max z = 4x1 + 3x2
約束條件:
2x1+x2<10
x1+x2<8
x2<7
x1,x2>0
做個線性規劃圖(高中數學知識了哈)

從數學角度,我們已經求出最優解x1和x2分別為2,6
3)matlab解題
強調: 在這里我需要說明的是,求解max=cx在matlab中就是min=-cx,記住有個負號!
因此matlab代碼:
clc
clear all
c=[4 3];%用目標函式系數來確定
a=[2 1;1 1;0 1];%約束條件左邊約束
b=[10;8;7];%約束條件右邊系數
aeq=[];%沒有等式約束,因此aeq,beq都為空
beq=[];
lb=[0;0];%下限為0
ub=[inf;inf];%沒有上限,因為只限制了x>0
[x,fval]=linprog(-c,a,b,aeq,beq,lb,ub);
x %獲取對應x1,x2
%或者你直接fval取絕對值也是一樣
best=c*x%計算最優值
運行結果:

x分別為2和6,我們帶入式子得到z=2*4+3+6=8+18=26,x引數就是最優解所對應值的意思,
fval=26也能驗證我們結果為26.fval引數就是最優解的意思,
因此最優解為26了,
4)練習題
求解該線性規劃對應的最大值z以及x1,x2,x3

五、你的任務提交
請你認真讀題思考!再看我分析,自己再去寫代碼,把練習題的決議寫成一篇博客,然后點擊提交任務,提交你寫的這篇解題博客鏈接,
為什么我要求你也些一篇跟我一樣的文章?當你自己寫一篇文章的時候,你一定會大有識訓,自己寫出來的時候,你一定是真的動過腦子,親手敲過代碼(我不希望你是復制粘貼我的)
如何寫博客?
1-
2-

3)

4)添加標題

5)標題取名

寫完你的練習題博客后來這里提交:

把你的這篇練習題博客鏈接提交確定:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/351043.html
標籤:其他
