999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab和Lingo的線性規劃問題求解過程對比分析

2019-08-07 02:02:36義欣
科技視界 2019年17期

義欣

【摘 要】在日常生活中,為了取得最大化的利益,經常會需要利用現有的資源條件進行科學適當的安排,這就離不開數學規劃,即從基礎的應用數學角度進行分析問題,依據數字來判斷最佳方案。其中最重要的就是數學建模,是屬優化管理模型的一種,最為常見的就是利用線性規劃的手段進行構建,而Matlab和Lingo同作為可用于數值計算分析的軟件,在進行線性規劃問題求解時都有著重要的應用。本文主要就線性規劃與非線性規劃問題進行分析討論,并利用Matlab和Lingo進行求解,分析兩款軟件的計算過程,并做出總結。

【關鍵詞】數學建模;非線性規劃;Matlab;Lingo

中圖分類號: G642;O141.4-4 文獻標識碼: A 文章編號: 2095-2457(2019)17-0094-003

DOI:10.19694/j.cnki.issn2095-2457.2019.17.045

Analysis and Comparison of Solving Process of Linear Programming Based on Matlab and Lingo

YI Xin

(Northeastern University at Qinhuangdao, Qinhuangdao Hebei 066004, China)

【Abstract】In daily life, in order to maximize the benefits, often need to use the existing resource conditions for scientific and appropriate arrangements, which is inseparable from mathematical programming, namely from the basic applied mathematics perspective to analyze the problem, according to the number to judge the best plan.Among them, the most important one is mathematical modeling, which is a kind of optimal management model. The most common one is to construct by means of linear programming. Matlab and Lingo, both of which can be used for numerical calculation and analysis, have important applications in solving linear programming problems.This paper mainly analyzes and discusses the problems of linear programming and nonlinear programming, and USES Matlab and Lingo to solve them, analyzes the calculation process of the two software, and makes a summary.

【Key words】Mathematical modeling; Nonlinear programming; Matlab; Lingo

1 緒論

對于普通的數學規劃問題,其基本理論已經較為完善,可以使用多種手段進行最佳方案的求解,其中利用計算機進行則最為簡便,在保證準確率的同時,可以將人力解放出來,而Matlab和Lingo作為用于數學分析計算的專業軟件,在進行線性規劃問題求解時,都極為簡潔方便,在現代社會已經都被廣泛用于工程建設、金融預算、智慧城市、信號處理、教育等等領域[1-2],就線性規劃問題,將進行詳細的分析比。

1.1 線性規劃問題

線性規劃問題是目標函數和約束條件均為線性函數的問題,利用線性規劃可以解決很多問題。如:在不違反一定資源限制下,組織安排生產,獲得最好的經濟效益(產量最多、利潤最大、效用最高);也可以在滿足一定需求條件下,進行合理配置,使成本最小。同時還可以在任務或目標確定后,統籌兼顧,合理安排,用最少的資源(如資金、設備、原材料、人工、時間等)去完成任務[3]。

1.2 結構安排

本文主要研究是對兩款軟件Matlab和Lingo就線性規劃問題求解過程進行分析對比,結構安排如下:

第一部分為緒論,主要包括線性規劃問題簡介,應用計算機軟件進行處理的優勢和應用。

第二部分為利用Matlab和Lingo進行求解的分析對比。

第三部分為結論,就此次使用Matlab和Lingo解決線性規劃問題的進行總結,以及對兩款軟件應用優勢領域進行延伸分析。

2 線性規劃問題求解

一般的線性規劃問題標準式為:

max(min)f=cTX

s.t.AX≤baeqX≤beqlb≤X≤ub

線性規劃關于解可能存在四種情況:

(1)無解,即不存在滿足條件的解;

(2)有唯一解,即在眾多的可行解中有唯一的最優解;

(3)無窮解,即在可行解中的無窮解都可以作為最優解;

(4)有解,有可行解,但由于值無界所以沒有最優解。

一般的求解思路是先求一個可行解,然后檢驗,如若不是,則用迭代的方法找到更優解,反復有限次迭代,直至找到最優解或者判定無解[4]。

2.1 求線性規劃最小最優解

例如求

minf=5x1+9x2-3x3+8x4-7x5;

s.t.-5x1-4x2-6x3-x5≥-6-2x1+3x2-x3+x4-3x5≤70≤xi≤21

2.1.1 基于Matlab求線性規劃最優解

在Matlab中求線性規劃問題,可直接調用linprog函數,其原理即為簡單的迭代檢驗,偽代碼格式如下:

[x,fval]=linprog(f,A,b,aeq,beq,lb,ub)

[x,fval]=linprog(f,A,b,aeq,beq,lb,ub,x0)

A:約束條件矩陣b:目標函數的系數向量c:約束條件最右邊的數值向量

lb、ub:解向量的下、上界 ?x0:初始解向量

可在Matlab中輸入代碼:

>>f=[5 9 -3 8 -7];

>>A=[-2 3 -1 1 -3;5 4 6 0 1];

>>b=[7 6];

>>lb=[0 0 0 0 0];

>>ub=[21 21 21 21 21];

>>[x,fval]=linprog(f , A, b, [ ], [ ], lb, ub)

Optimization terminated.

則會輸出結果為:

x=0.0000

0.0000

0.0000

0.0000

6.0000

fval==-42.0000

即在該規劃問題上x1=x2=x3=x4=0,x5=6時符合取值要求,且取最小值-42.

2.1.2 基于Lingo求線性規劃最優解

Lingo的原理也是迭代取值檢驗法,在Lingo軟件中需要先輸入一個模型[5],以MIN開始,按線性規劃問題的自然形式輸入即可,在模型窗口輸入以下代碼:

min=5*x1+9*x2-3*x3+8*x4-7*x5;

5*x1+4*x2+6*x3+x5<=6;

-2*x1+3*x2-x3-x4-3*x5<=7;

@bnd(0,x,21);

代碼中:@bnd指的是x的取值范圍。

點擊Solve即可得到代碼運行結果如圖1。

其中很明顯看到當x1=x2=x3=x4=0,x5=6時可以取得最優值-42,同時可以看到一些其它的變量值,得到總變量為6,非線性變量為0,也可以看到松弛或盈余量等等[5]。

2.2 求線性規劃最大最優解

例如:max f=3x1+3x2

2.2.1 基于Matlab求線性規劃最優解

在Matlab中沒有求最大值函數,因此需要先將目標轉化為最小值問題:

然后進行轉換即可。

Matlab中代碼設計如下:

>>f=[-3,-7];

>>A=[1,0;0,1;1,2];

>>b=[7,6,17];

>>lb=[0,0];

>>[x,fval]=linprog(f, A, b,[ ],[ ], lb)

Optimization terminated.

可得到x=5.0000 ? ? ?fval=-57.0000

6.0000

可以發現x1和x2取值都符合要求,即maxf=fval*(-1),則maxf=57.0000。

2.2.2 基于Lingo求線性規劃最優解

在Lingo中先輸入模型,然后以max輸入即可,在模型窗口中設計的代碼如下:

max=3*x1+7*x2;

x1<=7;

x2<=6;

x1+2*x2<=17;

其代碼運行結果如圖2。

可以得到最優解值結果當x1=5;x2=6時取得最優值(最大值)為57。

在圖中其中可以得到總變量為2,非線性變量為0,還有經過迭代后松弛或盈余的量。

3 結論

通過以上的基于兩種軟件的求最優值的過程對比可以得出,不管是使用Matlab還是Lingo,兩種方法一樣,但求解的程序形式有著較大的差異。

Matlab中,需要用到數組(矩陣)的知識點,所以可能需要前期的學習過程作為鋪墊。同時,也可以明顯知道,Matlab中的程序接口是已經寫好的,即linprog的使用格式是固定的,就線性規劃而言,在日常生活中,需要使用的整數性的線性規劃時就會受到一定的限制,一般的情況下,整數情況可能較少,所以關于小數化整數的過程需要自己進行編譯,因此,這一過程可能對初學者很不友善,受到一定的制約。但Matlab在進行規模龐大的變量運算時具有很大的優勢,在非線性規劃時較為方便,同時它在數據可視化方面也有很大應用,也支持其他的如C、JAVA等語言。

相比較而言,利用Lingo進行線性規劃整體使用體驗較為流暢,中間不涉及其他的知識框架,可以直接按照原始的書寫習慣進行,符合大部分人的習慣,較為容易掌握,實用性比較強,且在使用中可以與excel表格進行對接調用,但整個框架較為嚴格,大于等于與大于以及小于等于與小于等價,忽略掉了邊界的影響,同時在程序中每個變量、約束條件都要輸入,由此當變量很多是就會造成一定難度。

拿本文的規劃問題求解的過程來說,Matlab需要將最大值的求解轉變為最小值之后再求解,而Lingo則不需要,可以直接求,這一方面Lingo比Matlab方便且易懂。

綜上所述,Matlab在各自領域都有一定優勢,對于初學者而言,比較推崇使用Lingo進行線性規劃,而入門后,關于各種問題的求解Matlab是更好選擇。

【參考文獻】

[1]燕浩.淺談高中數學線性規劃問題的軟件實現——以Lingo環境下多決策變量為例[J].數學學習與研究:教研版, 2015(23):143-144.

[2]盛仲飆.基于Matlab的線性規劃問題求解[J].計算機與數字工程,2012,40(10).

[3]揭逸飛.運用MATLAB軟件求解高中數學中的線性和非線性規劃問題[J].科技視界,2016(21):164-164.

[4]龍松.大學數學MATLAB應用教程[M].武漢:武漢大學出版社,2014.7.

[5]吳拿達.基于Lingo軟件的“線性規劃”應用性教學[J]. 科教文匯,2017(32).

主站蜘蛛池模板: www.91中文字幕| 91香蕉视频下载网站| 免费无码又爽又黄又刺激网站| 性色在线视频精品| 欧美日韩免费在线视频| 一本大道无码高清| 亚洲第一页在线观看| 国产精品美女自慰喷水| 亚洲精品麻豆| www.av男人.com| 欧美va亚洲va香蕉在线| 在线观看免费黄色网址| 亚洲精品无码人妻无码| 91小视频在线观看免费版高清| 久久久久亚洲AV成人网站软件| 色妺妺在线视频喷水| 狠狠综合久久久久综| 亚洲视频免费播放| 国产精品人人做人人爽人人添| 无码一区中文字幕| 国产大片黄在线观看| 一级毛片免费不卡在线| 99久久国产精品无码| 女同国产精品一区二区| 91麻豆国产视频| 国产另类视频| 91久久偷偷做嫩草影院免费看| 婷婷色一区二区三区| 欧美高清日韩| 日韩高清成人| 亚洲精品无码专区在线观看| 亚洲福利网址| 免费日韩在线视频| 欧美在线精品一区二区三区| 麻豆国产精品| 久热re国产手机在线观看| 国产网站免费观看| 国产福利免费在线观看| 中文字幕有乳无码| 2024av在线无码中文最新| 99久久精品免费视频| 国产成人乱码一区二区三区在线| 成人午夜天| 福利国产微拍广场一区视频在线| 国产精品漂亮美女在线观看| 嫩草在线视频| 国产一在线观看| 成人福利在线视频免费观看| 97se亚洲综合在线| 少妇精品网站| 国产成人三级| 亚洲天堂高清| 日本a∨在线观看| 5555国产在线观看| 日韩高清一区 | 国产永久免费视频m3u8| 欧美综合成人| 91欧洲国产日韩在线人成| 人妻精品全国免费视频| аⅴ资源中文在线天堂| 成人精品在线观看| 日韩国产无码一区| 福利一区在线| 高清久久精品亚洲日韩Av| 成人毛片在线播放| 国产特级毛片| 欧美午夜在线视频| 精品国产成人高清在线| 97久久免费视频| 国产精品午夜电影| 亚洲一区二区三区麻豆| 欧美午夜视频在线| 国产www网站| 国产啪在线91| 亚洲一级毛片在线观播放| 午夜精品久久久久久久2023| 国产午夜无码专区喷水| 婷婷伊人久久| 亚洲床戏一区| 国产无套粉嫩白浆| 久久精品人人做人人爽| 91精品国产丝袜|