国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Matlab線性規(guī)劃函數(shù)linprog-小白詳解

這篇具有很好參考價值的文章主要介紹了Matlab線性規(guī)劃函數(shù)linprog-小白詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Matlab線性規(guī)劃linprog函數(shù)

最近開始想學(xué)一學(xué)數(shù)學(xué)建模的相關(guān)知識,也找了不少視頻,感覺無論是PPT做的還是講解內(nèi)容沒有看起來很舒服的,只能多找?guī)讉€版本多看幾遍然后做一下筆記,先從最基礎(chǔ)的線性規(guī)劃函數(shù)開始寫。


假設(shè)需要解決以下這個線性規(guī)劃問題
m a x z = 2 x 1 + 3 x 2 ? 5 x 3 s . t . { x 1 + x 2 + x 3 = 7 2 x 1 ? 5 x 2 + x 3 ≥ 10 x 1 + 3 x 2 + x 3 ≤ 12 x 1 , x 2 , x 3 ≥ 0 max\quad z = 2x_1+3x_2-5x_3\\s.t. \begin{cases} x_1+x_2+x_3=7 \\ 2x_1-5x_2+x_3\geq10 \\ x_1+3x_2+x_3\leq12 \\ x_1,x_2,x_3\geq0 \end{cases} maxz=2x1?+3x2??5x3?s.t.? ? ??x1?+x2?+x3?=72x1??5x2?+x3?10x1?+3x2?+x3?12x1?,x2?,x3?0?

z = x 1 + 2 x 2 + 5 x 3 z = x_1+2x_2+5x_3 z=x1?+2x2?+5x3?就是目標函數(shù),求解的目的就是求滿足條件的 x 1 , x 2 , x 3 x_1,x_2,x_3 x1?,x2?,x3?的這三個變量的值使 z z z的值最大,用到的理論其實是我研一上的一門課程優(yōu)化方法里的單純型法,是可以手算的,但是從應(yīng)用角度講用Matalb函數(shù)就可以直接得到結(jié)果,似乎參加數(shù)學(xué)建模不需要十分掌握原理。
那知道了規(guī)劃問題那怎么將這些線性規(guī)劃問題的系數(shù)輸入到函數(shù)中呢
linprog函數(shù)的對應(yīng)公式
x = l i n p r o g ( f , A , b ) x = linprog(f,A,b) x=linprog(f,A,b)
x = l i n p r o g ( f , A , b , A e q , b e q ) x = linprog(f,A,b,Aeq,beq) x=linprog(f,A,b,Aeq,beq)
x = l i n p r o g ( f , A , b , A e q , b e q , l b , u b ) x = linprog(f,A,b,Aeq,beq,lb,ub) x=linprog(f,A,b,Aeq,beq,lb,ub)
linprog參數(shù)的對應(yīng)公式如下
m i n f x s . t . { A x ≤ b A e q ? x = b e q l b ≤ x ≤ u b min\quad fx\\ s.t. \begin{cases} Ax\leq b \\ Aeq\cdot x=beq\\ lb\leq x \leq ub \end{cases} minfxs.t.? ? ??AxbAeq?x=beqlbxub?
在變量數(shù)量大于1時 f , A , A e q , l b , u b f,A,Aeq,lb,ub f,A,Aeq,lb,ub這些參數(shù)都是矩陣 b , b e q b,beq b,beq這兩個參數(shù)根據(jù)不等式和等式的數(shù)量可能是一個數(shù)也可能是一個矩陣。
在實際應(yīng)用時就是將原規(guī)劃轉(zhuǎn)換成公式所需的的形式,然后將對應(yīng)的系數(shù)參數(shù)提取出來,輸入到函數(shù)中進行求解。
這里值得注意到的是 l i n p r o g linprog linprog函數(shù)只能求最小值,以及約束的條件只能是小于等于,所以需要對原來的線性規(guī)劃進行一些轉(zhuǎn)化,讓線性規(guī)劃的的目標變成求最小值,并且讓約束條件都變成小于等于
讓約束變成小于等于很簡單左右兩邊都乘一個負號就行了那把 2 x 1 ? 5 x 2 + x 3 ≥ 10 2x_1-5x_2+x_3\geq10 2x1??5x2?+x3?10這個約束條件左右加一個負號變成 ? 2 x 1 + 5 x 2 ? x 3 ≤ ? 10 -2x_1+5x_2-x_3\leq-10 ?2x1?+5x2??x3??10放到一起

m a x z = 2 x 1 + 3 x 2 ? 5 x 3 s . t . { x 1 + x 2 + x 3 = 7 ? 2 x 1 + 5 x 2 ? x 3 ≤ ? 10 x 1 + 3 x 2 + x 3 ≤ 12 x 1 , x 2 , x 3 ≥ 0 max\quad z = 2x_1+3x_2-5x_3\\s.t. \begin{cases} x_1+x_2+x_3=7 \\ -2x_1+5x_2-x_3\leq-10 \\ x_1+3x_2+x_3\leq12 \\ x_1,x_2,x_3\geq0 \end{cases} maxz=2x1?+3x2??5x3?s.t.? ? ??x1?+x2?+x3?=7?2x1?+5x2??x3??10x1?+3x2?+x3?12x1?,x2?,x3?0?

接下來就是將求最大值轉(zhuǎn)變?yōu)榍笞钚≈蹬e個最簡單的但是應(yīng)該很有助于理解的例子
假設(shè)一個我們求函數(shù) y = ? x 2 + 5 y=-x^2+5 y=?x2+5的最大值 y = ? x 2 + 5 y=-x^2+5 y=?x2+5函數(shù)圖像如下,很明顯最大值是 x = 0 x=0 x=0這一點此時最大值 y = 5 y=5 y=5
Matlab線性規(guī)劃函數(shù)linprog-小白詳解
那求最小值是把函數(shù)圖像調(diào)過來求最小值嗎?可以看到此時的函數(shù) y 1 = x 2 ? 5 y_1=x^2-5 y1?=x2?5最小值是是 x = 0 x=0 x=0這一點此時最大值 y 1 = ? 5 y_1=-5 y1?=?5
Matlab線性規(guī)劃函數(shù)linprog-小白詳解
但是我們求解的 y = ? x 2 + 5 y=-x^2+5 y=?x2+5函數(shù)的最大值是5實際上是 y = x 2 ? 5 y=x^2-5 y=x2?5函數(shù)最小值的負數(shù)。那應(yīng)該怎么理解呢
假設(shè)對于 y = ? x 2 + 5 y=-x^2+5 y=?x2+5最大值解為 x = x ? x=x^* x=x?, y = y ? y=y^* y=y? y ? = ? x ? 2 + 5 y^*=-x^{*2}+5 y?=?x?2+5 對兩邊取負值則 ? y ? = x ? 2 ? 5 -y^*=x^{*2}-5 ?y?=x?2?5 之前我們將 ? y ? -y^* ?y?看成 y 1 y_1 y1?所以求得的 y 1 = x 2 ? 5 y_1=x^2-5 y1?=x2?5中的最小值 y 1 ? y_1^* y1??其實是 ? y ? -y^* ?y?也就是 y = ? x 2 + 5 y=-x^2+5 y=?x2+5最大值解的負數(shù)
因此我們將原線性規(guī)劃問題變?yōu)?br> m i n z 1 = ? 2 x 1 ? 3 x 2 + 5 x 3 s . t . { x 1 + x 2 + x 3 = 7 ? 2 x 1 + 5 x 2 ? x 3 ≤ ? 10 x 1 + 3 x 2 + x 3 ≤ 12 x 1 , x 2 , x 3 ≥ 0 min\quad z_1 = -2x_1-3x_2+5x_3\\s.t. \begin{cases} x_1+x_2+x_3=7 \\ -2x_1+5x_2-x_3\leq-10 \\ x_1+3x_2+x_3\leq12 \\ x_1,x_2,x_3\geq0 \end{cases} minz1?=?2x1??3x2?+5x3?s.t.? ? ??x1?+x2?+x3?=7?2x1?+5x2??x3??10x1?+3x2?+x3?12x1?,x2?,x3?0?

其中 z 1 = ? z z_1=-z z1?=?z

好了我們已經(jīng)將原問題轉(zhuǎn)換為了符合使用linprog函數(shù)的形式接下來就是將函數(shù)所需要的每一個參數(shù)找出來然后放進函數(shù)里去求解,再把這個公式站過來,首先找 f f f
m i n f x s . t . { A x ≤ b A e q ? x = b e q l b ≤ x ≤ u b min\quad fx\\ s.t. \begin{cases} Ax\leq b \\ Aeq\cdot x=beq\\ lb\leq x \leq ub \end{cases} minfxs.t.? ? ??AxbAeq?x=beqlbxub?

f x = [ ? 2 ? 3 5 ] [ x 1 x 2 x 3 ] fx=\left[\begin{array}{c}-2 & -3 & 5 \end{array}\right]\left[\begin{array}{c}x_1 \\ x_2 \\ x_3 \end{array}\right] fx=[?2??3?5?] ?x1?x2?x3?? ?
所以
f = [ ? 2 ? 3 5 ] f=\left[\begin{array}{c}-2 & -3 & 5 \end{array}\right] f=[?2??3?5?]
然后再來找 A A A
A x = [ ? 2 5 ? 1 1 3 1 ] [ x 1 x 2 x 3 ] Ax=\left[\begin{array}{c}-2 & 5 & -1 \\1 & 3 & 1 \end{array}\right]\left[\begin{array}{c}x_1 \\ x_2 \\ x_3 \end{array}\right] Ax=[?21?53??11?] ?x1?x2?x3?? ?
所以A為
A = [ ? 2 5 ? 1 1 3 1 ] A=\left[\begin{array}{c}-2 & 5 & -1 \\1 & 3 & 1 \end{array}\right] A=[?21?53??11?]
b b b
b = [ ? 10 12 ] b=\left[\begin{array}{c}-10 \\ 12 \end{array}\right] b=[?1012?]
然后是
A e q ? x = [ 1 1 1 ] [ x 1 x 2 x 3 ] Aeq\cdot x=\left[\begin{array}{c}1 & 1 & 1 \end{array}\right]\left[\begin{array}{c}x_1 \\ x_2 \\ x_3 \end{array}\right] Aeq?x=[1?1?1?] ?x1?x2?x3?? ?
A e q = [ 1 1 1 ] Aeq=\left[\begin{array}{c}1 & 1 & 1 \end{array}\right] Aeq=[1?1?1?]

這里由于等式約束只有一個所以 b e q = 7 beq=7 beq=7是一個數(shù)
因為原規(guī)劃中 x 1 , x 2 , x 3 ≥ 0 x_1,x_2,x_3\geq0 x1?,x2?,x3?0只有下限沒有上限 l b ≤ x ≤ u b lb\leq x \leq ub lbxub所以只需要輸入 l b lb lb,這里的 l b lb lb就是
l b = [ 0 0 0 ] lb=\left[\begin{array}{c}0 \\ 0 \\0 \end{array}\right] lb= ?000? ?

[ x 1 x 2 x 3 ] ≥ [ 0 0 0 ] \left[\begin{array}{c}x_1 \\ x_2 \\ x_3 \end{array}\right]\geq\left[\begin{array}{c}0 \\ 0 \\0 \end{array}\right] ?x1?x2?x3?? ? ?000? ?
當分解出了所有的參數(shù)了之后用matlab進行編程

f = [-2 -3 5];
A = [-2 5 -1; 1 3 1];
b = [-10; 12];
Aeq=[1 1 1];
Beq=7;
lb = zeros(3,1);
[x,z1] = linprog(f,A,b,Aeq,Beq,lb);
z=-z1

最后的結(jié)果如下,最優(yōu)解為
x ? = [ 6.4286 0.5714 0 ] x^*=\left[\begin{array}{c}6.4286 \\ 0.5714 \\0 \end{array}\right] x?= ?6.42860.57140? ?
最優(yōu)值 z ? = 14.5714 z^*=14.5714 z?=14.5714
Matlab線性規(guī)劃函數(shù)linprog-小白詳解文章來源地址http://www.zghlxwxcb.cn/news/detail-456842.html

到了這里,關(guān)于Matlab線性規(guī)劃函數(shù)linprog-小白詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • MATLAB 非線性規(guī)劃

    MATLAB 非線性規(guī)劃

    ?作者簡介:人工智能專業(yè)本科在讀,喜歡計算機與編程,寫博客記錄自己的學(xué)習(xí)歷程。 ??個人主頁:小嗷犬的個人主頁 ??個人網(wǎng)站:小嗷犬的技術(shù)小站 ??個人信條:為天地立心,為生民立命,為往圣繼絕學(xué),為萬世開太平。 非線性規(guī)劃問題 仍是規(guī)劃問題的一種,但是

    2024年02月05日
    瀏覽(20)
  • 數(shù)學(xué)建模| 線性規(guī)劃(Matlab)

    線性規(guī)劃:約束條件和目標函數(shù)都是線性的。簡單點說,所有的決策變量在目標函數(shù)和約束條件中都是一次方。 Matlab函數(shù): 參數(shù)解釋: func 表示目標函數(shù)。 A 表示不等式約束條件系數(shù)矩陣,b 表示不等式約束條件常數(shù)矩陣。 Aeq 表示等式約束條件系數(shù)矩陣,beq 表示等式約束條

    2024年02月07日
    瀏覽(30)
  • MATLAB-數(shù)學(xué)建模-線性規(guī)劃-1

    目錄 1.1? 線性規(guī)劃模型的一般形式: 1.2? 線性規(guī)劃模型? ? ? ? ? minz=f(x) ? ? ? ? s.t.? ?? (i=1,2,···,m) 1和2組成的模型屬于約束優(yōu)化? f(x)稱為目標函數(shù),稱為約束條件?? 決策變量 、 目標函數(shù) 、 約束條件 構(gòu)成了線性規(guī)劃的3個基本要素 min? ? u=cx s.t.? ? ? Ax b ? ? ? ?

    2024年02月09日
    瀏覽(20)
  • 優(yōu)化模型:MATLAB非線性規(guī)劃

    優(yōu)化模型:MATLAB非線性規(guī)劃

    1.1 非線性規(guī)劃的定義 非線性規(guī)劃(Nonlinear Programming,NLP) 是一種數(shù)學(xué)規(guī)劃方法,用于解決含有非線性目標函數(shù)和/或非線性約束條件的優(yōu)化問題。它是線性規(guī)劃的一種擴展形式,更加廣泛適用于復(fù)雜實際問題。 非線性規(guī)劃的目標是最小化(或最大化)一個非線性目標函數(shù),

    2024年02月04日
    瀏覽(26)
  • 整數(shù)線性規(guī)劃實現(xiàn)(matlab分枝界定法)

    整數(shù)線性規(guī)劃實現(xiàn)(matlab分枝界定法)

    文章目錄 一、本次問題 1.利用第一天所學(xué)知識求解: 2.本題理解: (1)分支界定法 背景: 基本理論(解題步驟): 求解實現(xiàn)1: 1.第一步 2.第二步 3.第三步 4.第四步 結(jié)論:綜上,最優(yōu)解:x1 = 4 ,x2 = 2 ;最優(yōu)值:340? 求解實現(xiàn)2: 結(jié)果2:最優(yōu)解:x1 = 4 ,x2 = 2 ;最優(yōu)值:

    2024年02月05日
    瀏覽(20)
  • 數(shù)學(xué)建模| 非線性規(guī)劃(Matlab)

    非線性規(guī)劃:約束條件和目標函數(shù)存在非線性函數(shù)。簡單點說,約束條件和目標函數(shù)中至少一個決策變量不是一次方,例如三角函數(shù)、對數(shù)、多次方等。 線性規(guī)劃和非線性在解決上的不同:線性規(guī)劃可以有通用方法,但是非線性規(guī)劃的求解是沒有特定算的,只能用近似的算法

    2024年02月07日
    瀏覽(20)
  • MATLAB---線性規(guī)劃問題求最優(yōu)解(含例題)

    MATLAB---線性規(guī)劃問題求最優(yōu)解(含例題)

    線性規(guī)劃是運籌學(xué)的基礎(chǔ),在現(xiàn)實企業(yè)經(jīng)營中,如何有效的利用有限的人力、財力、物力等資源。? ? ? ? ? ? ? ? ? ? 為方便大家理解,這里我們直接用一個例題為大家講解使用matlab求解線性規(guī)劃問題。 根據(jù)上圖給出的線性規(guī)劃問題。我們使用linprog函數(shù)解線性規(guī)劃需要滿

    2023年04月08日
    瀏覽(22)
  • 【MATLAB】線性規(guī)劃問題中的絕對值問題

    【MATLAB】線性規(guī)劃問題中的絕對值問題

    在求解線性規(guī)劃問題中碰到絕對值的情況: m i n z = ∣ x 1 ∣ + 2 ∣ x 2 ∣ + 3 ∣ x 3 ∣ + 4 ∣ x 4 ∣ , min z=|x_1|+2|x_2|+3|x_3|+4|x_4|, min z = ∣ x 1 ? ∣ + 2∣ x 2 ? ∣ + 3∣ x 3 ? ∣ + 4∣ x 4 ? ∣ , s . t . { x 1 ? x 2 ? x 3 + x 4 = 0 , x 1 ? x 2 + x 3 ? 3 x 4 = 1 , x 1 ? x 2 ? 2 x 3 + 3 x 4 = ? 1 2

    2023年04月09日
    瀏覽(29)
  • 混合整數(shù)線性規(guī)劃——選址問題(決策變量0-1問題)MATLAB

    混合整數(shù)線性規(guī)劃——選址問題(決策變量0-1問題)MATLAB

    問題: 某快餐連鎖經(jīng)營公司有7個地點(A1,A2,…,A7)可以設(shè)立快餐 店,由于地理位置因素,設(shè)立快餐店時必須滿足以下要求: A1,A2,A3三個地點最多 可選兩個,A4和A5至少選取一個,A6和A7至少選取一個 。已知各個地點設(shè)立快餐店 的投入和預(yù)計收益如表所示。 ? 已知目前

    2024年02月13日
    瀏覽(20)
  • 【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第二講-線性規(guī)劃(含Matlab代碼)

    【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第二講-線性規(guī)劃(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 線性規(guī)劃(Linear Programming,LP)是一種在數(shù)學(xué)規(guī)劃領(lǐng)域中應(yīng)用廣泛的最優(yōu)化問題解決方法。其基本思想是在一系列約束條件下,通過建立線性數(shù)學(xué)模型來描述目標函數(shù),以求得使目標函數(shù)最大或最小的決策變量值。線性規(guī)劃在運籌學(xué)

    2024年02月04日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包