日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数学建模线性规划实例及详细解答(MATLAB代码)

發(fā)布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学建模线性规划实例及详细解答(MATLAB代码) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:

?最近在學(xué)習(xí)數(shù)學(xué)建模的算法與應(yīng)用,以一本較好的書籍為指導(dǎo)(《數(shù)學(xué)建模算法與應(yīng)用》),不過對于我來說,我主要去攻MATLAB代碼及建模方法,當(dāng)然書里還有l(wèi)ingo代碼解析。對于這本書,我感覺還是蠻難啃的,就像今天我寫的這篇博客來說,其中最后一題就是我啃了不知道有多久,最后我老老實實的把每一步都寫在紙上,然后一步一步的用MATLAB去試,最后終于搞懂了,此時心情不可言喻啊😃。如此,我來分享一下我學(xué)到的東西吧。

注意:如要那本書的電子版可以關(guān)注我,然后免費送你!!!

1.題目1:

先來一道簡單的吧:

這是讓大家熟悉一下對MATLAB代碼的😄

1.1.MATLAB代碼:

f=[-3,1,1]; A=[1,-2,1;4,-1,-2] b=[11;-3]; Aeq=[-2,0,1]; beq=[1]; lb=zeros(3,1); [x,fval]=linprog(f,A,b,Aeq,beq,lb,[]) x=-x %上述轉(zhuǎn)換為求最小值,再提個符號變?yōu)樯鲜銮蟮媚繕?biāo)值

再來一道相對較難的:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191127200556922.png

不知道大家看到絕對值會出現(xiàn)什么反應(yīng)。我們可以定義其它的變量來代替絕對值里面的數(shù),比如用(x1x_{1}x1?+x2x_{2}x2?)/2表示絕對值x1x_{1}x1?當(dāng)然這里的x1x_{1}x1?更上面的不一樣。然而,去掉絕對值的數(shù),我們可以用(x1x_{1}x1?-x2x_{2}x2?)/2,其中,每個數(shù)都大于等于0,接下來,我們可以上代碼了。

1.2.MATLAB代碼:

f=[1/2,1/2,1,1,3/2,3/2,2,2]; Aeq=[1/2,-1/2,-1/2,1/2,-1/2,1/2,1/2,-1/2;1/2,-1/2,-1/2,1/2,1/2,-1/2,-3/2,3/2;1/2,-1/2,-1/2,1/2,-1,1,3/2,-3/2]; beq=[0;1;-1/2]; lb=zeros(8,1); [x,fval]=linprog(f,[],[],Aeq,beq,lb,[])

好了,我相信大家看到這里應(yīng)該對相關(guān)的MATLAB代碼熟悉了吧,那現(xiàn)在我們來實戰(zhàn)一下。

2.題目2:



?解:設(shè)x1x_{1}x1?x2x_{2}x2?分別表示在產(chǎn)品I中通過設(shè)備A1A_{1}A1?,A2A_{2}A2?的機器個數(shù),同樣x3x_{3}x3?,x4x_{4}x4?,x5x_{5}x5?,分別表示在產(chǎn)品I中通過設(shè)備B1B_{1}B1?,B2B_{2}B2?,B3B_{3}B3?的機器個數(shù)。x6x_{6}x6?,x7x_{7}x7?,x8x_{8}x8?,分別在產(chǎn)品II中表示通過設(shè)備A1A_{1}A1?,A2A_{2}A2?,B1B_{1}B1?的機器個數(shù),x9x_{9}x9?表示在產(chǎn)品III中A2A_{2}A2?機器的個數(shù)。
有這樣的等式:x1x_{1}x1?+x2x_{2}x2?+x3x_{3}x3?=x4x_{4}x4?+x5x_{5}x5?,x6x_{6}x6?+x7x_{7}x7?=x8x_{8}x8?。

(圖來源《數(shù)學(xué)建模算法與應(yīng)用習(xí)題解答》)
對于該MATLAB代碼我感覺是有點難度,在此小編就不在展示了哦,大家實力非常強,所以我就不展示了。😄😄😄
再來一道代碼詳細的題目:

在此,小編就不建模了,我給出一個好的建模解析給你們:


對于在markdown中,其數(shù)學(xué)公式太難打了,所以,我就發(fā)一張這樣的筆記,給大家看一下哈,這是我將每一步寫成有數(shù)字的建模方式,有了這樣的,我們就可以更好的寫代碼。(字有點丑,大家將就一下哈)

2.1.代碼:

%目標(biāo)函數(shù) c=[3100;3800;3500;2850]; %由目標(biāo)函數(shù)可知有12個未知數(shù),且有一些規(guī)律,大家可以自行找一下 c=c*ones(1,3); %使c變成一個4行3列的函數(shù),并且,剛剛對應(yīng)于目標(biāo)函數(shù)未知量前面的系數(shù) c=c(:); %將c以列排序 %接下來就看約束條件1,可看出未知數(shù)前面系數(shù)是1,且需要構(gòu)造一個下面的數(shù)組 a1=zeros(3,12); for i=1:3a1(i,4*i-3:4*i)=1; %如果大家看不懂的話,可以去MATLAB上試一下這段代碼最后數(shù)組的結(jié)果 end b1=[10 16 8]'; %看約束條件2 a2=zeros(4,12); for i=1:4 a2(i,i:4:12)=1; %如果大家看不懂的話,可以去MATLAB上試一下這段代碼最后數(shù)組的結(jié)果 end b2=[18 15 23 12]'; %看約束條件3 bb=[480;650;580;390]; a3=zeros(3,12); for i=1:3a3(i,4*i-3:4*i)=bb; %如果大家看不懂的話,可以去MATLAB上試一下這段代碼最后數(shù)組的結(jié)果 end b3=[6800 8700 5300]'; a=[a1;a2;a3]; b=[b1;b2;b3]; %看平衡條件 aeq=zeros(2,12); %如果大家看不懂的話,可以去MATLAB上試一下這段代碼最后數(shù)組的結(jié)果 aeq(1,1:4)=1/10; aeq(1,5:8)=-1/16; aeq(2,5:8)=1/16; aeq(2,9:12)=-1/8; beq=[0;0]; lb=zeros(12,1); [x,y]=linprog(-c,a,b,aeq,beq,lb,[]) x=reshape(x,[4,3]) %解出的x值以列排序,將它重組為3*4的數(shù)組 x=sum(x') %表示艙口1,2,3分別放入貨物的總重量 y=-y; %目標(biāo)函數(shù)最終的值

啊!!!寫這篇博客讓我承受了莫大的打擊,先是數(shù)學(xué)公式編輯的學(xué)習(xí),再到放棄該學(xué)習(xí),最后又是直接放圖片。再則自己為了讓讀者易懂,寫了幾頁的草稿…在此,我好像有點累了,我好像要去休息了。我想在此對大家說一句保護好身體哦,還有就是多多支持!!!😄😄😄

好了,這篇博客也寫完了,希望對大家有幫助!!!

總結(jié)

以上是生活随笔為你收集整理的数学建模线性规划实例及详细解答(MATLAB代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。