




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于MATLAB的數(shù)字模擬仿真摘 要:本文闡述了計算機模擬仿真在解決實際問題時的重要性,并較為系統(tǒng)的介紹了使用計算機仿真的原理及方法。對于計算機模擬仿真的三大類方法:蒙特卡羅法、連續(xù)系統(tǒng)模擬和離散事件系統(tǒng)模擬,在本文中均給出了與之對應的實例及基于MATLAB模擬仿真的相關程序,并通過實例深入的分析了計算機模擬解決實際問題的優(yōu)勢及不足。關鍵詞:計算機模擬;仿真原理;數(shù)學模型;蒙特卡羅法;連續(xù)系統(tǒng)模擬;離散事件系統(tǒng)模擬在實際問題中,我們通常會面對一些帶隨機因素的復雜系統(tǒng),用分析方法建模常常需要作許多簡化假設,這樣進行處理過后的模型與我們面臨的實際問題可能相差很遠,以致求解得到答案根本無法應用,這時
2、,計算機模擬幾乎成為唯一的選擇。本文通過對計算機模擬仿真進行系統(tǒng)地介紹,尋求利用模擬仿真來解決問題的一般方法,并深入探討了這些方法的長處和不足。我們定義一些具有特定的功能、相互之間以一定的規(guī)律聯(lián)系的對象所組成的總體為一個系統(tǒng),模擬就是利用物理的、數(shù)學的模型以系統(tǒng)為問題解決對象,來類比、模仿現(xiàn)實系統(tǒng)及其演變過程,以尋求過程規(guī)律的一種方法。模擬的基本思想是建立一個實驗的模型,這個模型包含所研究系統(tǒng)的主要特點,這樣做的目的就是通過對這個實驗模型的運行,獲得所要研究系統(tǒng)的必要信息。另外,系統(tǒng)的運行離不開算法,仿真算法是將系統(tǒng)模型轉換成仿真模型的一類算法,在數(shù)字仿真模型中起核心和關鍵作用。1、所謂計算機
3、仿真計算機仿真是利用計算機對一個實際系統(tǒng)的結構和行為進行動態(tài)演示,以評價或預測該系統(tǒng)的行為效果。它是解決較復雜的實際問題的一條有效途徑。針對一個確定的系統(tǒng),根據(jù)運行的相似原理,利用計算機來逼真模仿研究對象(研究對象可以是真實的系統(tǒng),也可以是設想中的系統(tǒng)),計算機仿真是將研究對象進行數(shù)學描述,建模編程,且在計算機中運行實現(xiàn)。對比于物理模擬通常花費較大、周期較長,且在物理模型上改變系統(tǒng)結構和系數(shù)都較困難的諸多缺陷,計算機模擬不怕破壞、易修改、可重用,有更強的系統(tǒng)適應能力。但是計算機模擬也有缺陷,比如受限于系統(tǒng)建模技術,即系統(tǒng)數(shù)學模型不易建立、程序調試復雜等。計算機仿真可以用于研制產品或設計系統(tǒng)的全
4、過程中,包括方案論證、技術指標確定、設計分析、生產制造、試驗測試、維護訓練、故障處理等各個階段。2、計算機仿真的目的對于一個系統(tǒng),是否選擇進行計算機模擬的問題,基于判斷計算機模擬與非計算機模擬方法孰優(yōu)孰劣的問題。歸納以下運用計算機模擬的情況:(1)在一個實際系統(tǒng)還沒有建立起來之前,要對系統(tǒng)的行為或結果進行分析研究時,計算機仿真是一種行之有效的方法。(2)在有些真實系統(tǒng)上做實驗會影響系統(tǒng)的正常運行,這時進行計算機模擬就是為了避免給實際系統(tǒng)帶來不必要的損失。如在生產中任意改變工藝參數(shù)可能會導致廢品,在經(jīng)濟活動中隨意將一個決策付諸行動可能會引起經(jīng)濟混亂。(3)當人是系統(tǒng)的一部分時,他的行為往往會影響
5、實驗的效果,這時運用系統(tǒng)進行仿真研究,就是為了排除人的主觀因素的影響。(4)在實際系統(tǒng)上做實驗時,由于系統(tǒng)誤差和偶然誤差的存在,對實驗結果的好壞我們很難作出正確的判斷,這時運用計算機模擬,就可以保證每次操作的條件相同,排除誤差。(5)有些系統(tǒng)一旦建立起來之后就無法復原,利用計算機模擬可重復性的這一優(yōu)勢,可以獲得顯著的經(jīng)濟效益。例如要投資建立一個大型企業(yè),要分析它建成之后的經(jīng)濟效益和社會效益,不能用建立起來試試看的辦法,因為建成后就無法回到原來的狀態(tài)了。3、計算機仿真的分類計算機模擬分為動態(tài)模擬和靜態(tài)模擬,數(shù)值分析中的蒙特卡羅法就是典型的靜態(tài)模擬,動態(tài)模擬可以分為連續(xù)系統(tǒng)模擬和離散事件系統(tǒng)模擬。
6、連續(xù)系統(tǒng)模擬研究系統(tǒng)的狀態(tài)隨時間連續(xù)變化的情況,在解決實際問題時,一般要建立微分方程模型,先確定系統(tǒng)的連續(xù)狀態(tài)變化量,然后將它在時間上進行適當?shù)碾x散量化處理,并由此模擬系統(tǒng)的運行狀態(tài)。而離散事件系統(tǒng)模擬討論的是系統(tǒng)狀態(tài)只在一些離散時間點上,由于隨機時間的推進而發(fā)生變化,其問題解決模型一般用流程圖或網(wǎng)絡來表示。注:連續(xù)系統(tǒng)模擬中雖然有時也考慮一些隨機作用,但經(jīng)常還是把它當作確定性問題去考慮,而在離散事件系統(tǒng)模擬中事件的出現(xiàn)和系統(tǒng)狀態(tài)變量幾乎總都是隨機的。但是,值得注意的一點是,在這兩種系統(tǒng)模擬中時間具有重要作用,我們都是要觀察系統(tǒng)在時間過程中的變化。4、計算機仿真的原理 事實告訴我們,現(xiàn)實世界充
7、滿不確定性,我們所研究的現(xiàn)實對象往往難以擺脫隨機因素的影響。要使我們的數(shù)學模型能夠較真實地刻畫實際對象,必須面對這個現(xiàn)實。概率論是用數(shù)學的思想和方法處理和研究隨機現(xiàn)象的一個有效的工具。但有時它還難以用來處理復雜系統(tǒng)中的隨機性。而我們運用計算機來模擬隨機現(xiàn)象的方法基于隨機數(shù),它經(jīng)常應用于復雜系統(tǒng)的動態(tài)仿真的研究當中。仿真模型是處理復雜系統(tǒng)中隨機性的計算機模型,也是使用計算機研究和解決實際問題的一條重要途徑。對隨機現(xiàn)象進行模擬,實質上要給出隨機變量的模擬,也就是說利用計算機隨機地產生一系列數(shù)值(稱為隨機數(shù)),它們的出現(xiàn)要服從一定的概率分布。目前,經(jīng)常使用的是按照一定的算法產生的隨機數(shù)。下面列舉的是
8、MATLAB中各種分布下產生隨機數(shù)的命令:常見的分布函數(shù)MATLAB語句均勻分布均勻分布指數(shù)分布正態(tài)分布二項分布分布以上語句均產生的矩陣在實際應用中用哪種隨機數(shù)生成法,要針對具體的系統(tǒng)做出與之相適應的選擇。(1)當研究對象視為大量相互獨立的隨機變量之和,且其中每一種變量對總和的影響都很小時,可以認為該對象服從正態(tài)分布。(2)考試分數(shù)的偏差、射擊命中點與目標的偏差、人的身高、體重等,都可近似看成服從正態(tài)分布。(3)排隊服務系統(tǒng)中顧客到達率為常數(shù)時的到達間隔、故障率為常數(shù)時零件的壽命都服從指數(shù)分布。指數(shù)分布在排隊論、可靠性分析中有廣泛應用。(4)涉及到排隊系統(tǒng)、產品檢驗、天文、物理等領域時可用到泊
9、松分布。5、計算機仿真的方法 否問題的分析項目研究計劃數(shù)據(jù)收集模型建立編制程序程序檢驗模型確認實驗設計運行分析進一步分析輸出結果仿真結果否否是否ABCD圖4-1:仿真步驟流程5.1解決計算機模擬的一般步驟:進行計算機仿真一般要進過四個步驟:系統(tǒng)分析,模型構造,運行與改進和輸出結果。圖中表示系統(tǒng)分析,表示模型構造,表示運行與改進,表示輸出結果第一步:系統(tǒng)分析,明確目標。就是要明確問題和提出總體方案。首先要把被仿真系統(tǒng)的內容表達清楚,弄清仿真的目的,然后選擇描述這些目標的主要環(huán)節(jié)和狀態(tài)變量,明確定義所研究問題的范圍、邊界和初始條件,并充分估計初始條件對系統(tǒng)主要性能的影響。第二步:模型構造、采集數(shù)據(jù)
10、。包括建立模型、收集數(shù)據(jù)、編寫程序、程序驗證和模型確認等。建立模型就是選擇合適的仿真方法,如時間步長法、事件表法等,確定系統(tǒng)的初始狀態(tài), 設計整個系統(tǒng)的仿真流程。最后選擇合適的通用語言或仿真語言編寫、調試程序。第三步:模型的運行與改進。首先確定一些具體的運行方案,如初始條件、參數(shù)、步長、重復次數(shù)等,然后輸入數(shù)據(jù),運行程序,直到符合實際系統(tǒng)的要求及精度為止。第四步:模型輸出、統(tǒng)計分析。包括提供文件的清單,記錄重要的中間結果,輸出格式要有利于用戶了解整個仿真過程,分析和使用仿真結果。5.2針對不同的模擬方法舉例5.2.1基于隨機數(shù)來進行計算機模擬的蒙特卡羅法(Random simulation)蒙
11、特卡羅法屬于實驗數(shù)學的一個分支,它利用隨機數(shù)進行統(tǒng)計試驗,以求得的統(tǒng)計特征值(如均值、概率等)作為待解決問題的數(shù)值解。而在這一過程中所作的統(tǒng)計試驗稱為蒙特卡羅法。蒙特卡羅法的基本思想原理是首先建立一個概率模型,使所求問題的解正好是該模型的參數(shù)或其他有關的特征量。然后通過模擬、統(tǒng)計,即多次隨機抽樣實驗,統(tǒng)計出某事件發(fā)生的百分比。只要實驗次數(shù)很大,該百分比便近似于事件發(fā)生的概率。而這實際上也就是概率的統(tǒng)計定義。5.2.1.1蒙特卡羅法的原理這里引用資料,根據(jù)車比雪夫定理,設,是相獨立的隨機變量序列,它們服從相同的分布,且有有限的數(shù)學期望和方差 ,則,的算術平均值當時按概率1收斂于,即對于任意有:由
12、中心極限定理得到:即當n很大時,近似服從標準正態(tài)分布。5.2.1.2蒙特卡羅法的實例應用這里應用蒙特卡洛法解決最古老但又不失經(jīng)典的例子浦豐(Buffon)投針問題。問題重述:若干條相互平行線間的距離為,針的長度為,將針投出后其與平行線相交的概率為,求出其概率。模型建立:通過計算可知針與平行線相交的概率為:其中為平行線間距離,為針的長度,其中,將針投次,若有次與平行線相交,則可用作為的近似值。由此可計算出的近似值為:注:要使結果更加準確就需使盡量大一些編程求解:設是一隨機變量,它服從區(qū)間上的均勻分布。同理,是服從區(qū)間上的均勻分布。按照某種抽樣法,產生隨機變量的可能值,例如進行次抽樣,得到樣本值,
13、其中,統(tǒng)計出滿足不等式:的次數(shù)然后利用MATLAB7.0進行進行計算機編程模擬(程序見附錄一)。當取,時,模擬得到:概率,圓周率 這與真實值已經(jīng)很接近了。5.2.2基于離散時間點上的離散型隨機變量的模擬(Discrete system)離散系統(tǒng)是指系統(tǒng)狀態(tài)只在有限的時間點或可數(shù)的時間點上有隨機事件發(fā)生的系統(tǒng),在這些點上發(fā)生的離散事件改變了系統(tǒng)的狀態(tài),并假設系統(tǒng)狀態(tài)的變化是在該時間點上瞬時完成的,即離散事件是瞬時出現(xiàn)的。5.2.2.1離散型隨機變量模擬的原理設離散隨機變量的可能值為,相應的概率為,設, ,將作為分點,把區(qū)間分為一系列小區(qū)間。設是上均勻隨機變量,則有:=,因此可以用隨機變量落在內的
14、情況來模擬離散的隨機變量的取值情況。5.2.2.2離散型隨機變量模擬的實例應用在離散型隨機變量模擬所解決的問題中,排隊系統(tǒng)是一類很常見又非常重要的問題,且這類問題廣泛存在于銀行、醫(yī)院、超市等現(xiàn)實生活中的領域。由一個或多個服務臺和一些等待服務的顧客組成的離散時間系統(tǒng)稱為排隊系統(tǒng)。這里列舉一個簡單的排隊系統(tǒng)問題,并從中了解離散型隨機變量模擬的思想方法。問題重述:一個理發(fā)店有兩位服務員和,顧客隨機地到達該理發(fā)店,每分鐘有一個顧客到達和沒有顧客到達的概率均是,其中的顧客理發(fā)僅用分鐘,另外的顧客用分鐘。試對前分鐘的情況進行仿真,模擬出完成服務的個數(shù)及顧客平均等待時 間。模型建立:本題屬于多服務臺隨即服務
15、模型。假設客源是無窮的,且隊長不受限制,顧客接受先來后到的服務規(guī)則。設顧客總的等待時間為,第個顧客的到達時刻為,第個顧客開始接受服務的時刻為,第個顧客服務結束的時刻為,第個顧客與第個顧客之間的時間間隔為,第個顧客的服務時間為。這樣便容易得到如下關系:編程求解:運用MATLAB7.0編制模擬程序的思想如下:(1)應用MATLAB隨機數(shù)生產函數(shù),按照等概率原則,模擬出前分鐘中顧客到達情況: 、;(2)再按照的顧客理發(fā)僅用分鐘,另外的顧客用分鐘的顧客接受服務時間原則,模擬出顧客 、所對應的接受服務的時間、;(3)確定每個顧客接受服務的時間。當系統(tǒng)剛開始運行時,第一、第二個顧客可以直接接受服務,而對于
16、以后的顧客,其接受服務的時刻的判斷取決于三者中最大者。即:;(4)計算顧客的累計等待時間。顧客總的等待時間為,得到:;(5)判斷第個顧客開始接受服務的時刻為是否超出分鐘。若是,則總得接受服務的人數(shù)為:,顧客平均等待時間為:;若否,重復步驟(3)。5.2.3基于狀態(tài)隨時間連續(xù)變化的連續(xù)型隨機變量的模擬(Continuity system)連續(xù)系統(tǒng)模擬研究系統(tǒng)的狀態(tài)隨時間連續(xù)變化的情況。連續(xù)系統(tǒng)雖然研究的是確定性問題,但在實際處理中,是將連續(xù)狀態(tài)變量在時間上進行離散化處理,并由此模擬系統(tǒng)的運行狀態(tài),即其狀態(tài)由于隨機時間的推進而發(fā)生變化。因此,連續(xù)系統(tǒng)的計算機模擬只能是近似的,只要這種近似達到一定的
17、精度,一般就可以滿足要求。5.2.3.1連續(xù)型隨機變量模擬的原理處理連續(xù)型隨機變量模擬問題有多種方法,其中反函數(shù)法是最常用的。其方法核心是通過求概率分布的反函數(shù)產生隨機數(shù)。眾所周知隨機變量的概率分布函數(shù)為定義在 區(qū)間的單調遞增函數(shù),設為區(qū)間的均勻隨機變量, 令,只要求出反函數(shù),即為具有概率分布函數(shù)的隨機機數(shù)。由概率論的理論可以證明和相同的概率分布。若的概率密度為,由,是區(qū)間上均勻分布的隨機變量,如果給定區(qū)間上均勻分布的隨機數(shù), 則具有給定分布的隨機數(shù)可由方程中解出:5.2.3.2連續(xù)型隨機變量模擬的實例應用下面介紹利用連續(xù)型隨機變量模擬解決追擊性問題。問題重述:正方形的個頂點各有人。在某一時刻
18、,人同時出發(fā)以勻速,按順時針方向追逐下一人,如果他們始終保持對準目標,則最終按螺旋狀曲線于中心點。試求出這種情況下每個人的行進軌跡。模型建立:建立平面直角坐標系:,,取時間間隔為,計算每一點在各個時刻的坐標。設某點在時刻的坐標為: ,則在時刻的坐為: 其中 編程求解:設置初始化條件為,取足夠小的,當時算法結束。對每一個點連接它在各時刻的位置,即得所求運動軌跡。然后根據(jù)上述建立的模型,用MATLAB7.0編程(程序見附錄三)。圖4-2:追擊問題仿真分解圖將整個仿真過程分解(如圖4-2),我們可以直觀地看到整個追擊過程。為了更直觀的看到整個追擊過程,本文提供了利用MATLAB7.0編制的仿真動畫程
19、序(見附錄四)。通過仿真動畫,追擊的過程可以一目了然地表現(xiàn)出來。6、計算機仿真的效果分析在前面已經(jīng)提到多種在處理實際問題時可以用到計算機仿真的情況,這里將看看仿真效果到底如何。我們知道隨機現(xiàn)象存在于現(xiàn)實的各種事件中,對于一特定事件,如果我們可以求出理論值固然是件好事,但事實上并不是所有事件都可以如我們所愿,然而即便能夠求出其理論上的情形,也與現(xiàn)實情況存在不小的出入,這時仿真便顯示出其強大的適應能力。計算機仿真可以很好的顧及理論值和現(xiàn)實中的隨機情況。(1)對于可以進行理論計算的情況這里列舉一個簡單的例子來加以說明:觀察所對目標的指示真確與否。以投幣為例,該模擬實驗有兩種結果,且每種情況出現(xiàn)的概率
20、都相等。對其100次投幣情況進行模擬,得到以下結果:表6-1:模擬值與理論值對比實驗值(次數(shù))理論值(次數(shù))正面6450反面3650從表中我們可以看出,雖然模擬值與理論值不完全一樣,但它卻更能真實地表現(xiàn)實際情況。(2)對于無法進行理論計算的情況當一個系統(tǒng)過于復雜,以至于我們無法進行理論計算時,計算機仿真可以很好地表現(xiàn)出系統(tǒng)的整個動態(tài)過程。以2009年全國大學生數(shù)學建模競賽B題為例:醫(yī)院就醫(yī)排隊是大家都非常熟悉的現(xiàn)象,它以這樣或那樣的形式出現(xiàn)在我們面前,例如,患者到門診就診、到收費處劃價、到藥房取藥、到注射室打針、等待住院等,往往需要排隊等待接受某種服務。題目要求解決目前隊列越來越長的問題。對于
21、這種情況,理論計算是相當困難的,通過計算機仿真,這個問題卻可以得到很好的解決(仿真結果如圖),通過圖像可以直觀地看到隊列的長度隨天數(shù)的變化趨勢,相對于理論計算有顯著的優(yōu)越性。圖6-2:隊長隨時間的變化趨勢7、計算機仿真與數(shù)學建模數(shù)學建模是利用數(shù)學方法解決實際問題的一種實踐。即通過抽象、簡化、假設、引進變量等處理過程后,將實際問題用數(shù)學表達式,通過建立起數(shù)學模型,運用數(shù)學方法及計算機技術去解決實際問題。在建立起數(shù)學模型后,接下來的工作就是檢驗模型的正確性、及適應能力,而往往這一步是相當困難的。然而,計算機仿真由于其的易修改、可重用且強大的適應力等優(yōu)越性,可使這一過程簡化并且與實際情況吻合的很好。
22、計算機仿真模型準備模型假設模型建立通過模型檢驗模型應用是否圖7-1:建模仿真流程圖另外,計算機仿真在數(shù)學建模競賽中有廣泛的應用。在每年舉行的數(shù)學建模大賽中,據(jù)不完全統(tǒng)計:1992A、施肥效果分析,1997A、零件的參數(shù)設計,1999A、自動化車床管理, 2001B、公交車調度,評卷策略,2009 B、眼科病床安排 等題目均可用計算機仿真來進行很好的解答。計算機仿真往往是解決數(shù)學建模競賽題目的一把利器。結束語計算機仿真作為一種解決問題的方法,有優(yōu)勢,當然也有它的不足之處。但是總的來看,它憑借自身的優(yōu)勢已成為解決數(shù)學建模問題最好的方法之一。根據(jù)具體的實際問題,建立模型,正確又科學地使用計算機仿真才能將問題解決好。8、參考文獻1 顏薇娜. 基于蒙特卡洛模擬的商業(yè)銀行排隊問題研究J. 技術經(jīng)濟與管理研究. 2009年第1期.2 莫興德. 計算機仿真建模的幾種方法.廣西大學學報(自然科學版)J. 第28卷 增刊2003年10月.3 莫興德. 計算機仿真. PPT.4 辜繼明,趙閃,余明明. 眼科病床安排的數(shù)學模型. 2009年9月14日. 第14頁.5 宋來中,王志明. 數(shù)學建模與實驗M. 科學
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司視頻腳本策劃方案
- 公司美食類活動方案
- 公司水果采摘活動方案
- 公司植樹掛牌活動方案
- 公司深圳灣公園活動方案
- 公司組織騎單車活動方案
- 公司旅游業(yè)余活動方案
- 公司羽毛球例行活動方案
- 公司溫泉團建策劃方案
- 公司線上周年慶活動方案
- 工貿行業(yè)重點可燃性粉塵目錄(2022版)
- 近代史期末復習試題
- 教學設計 完整版:Summer holiday plans
- 2022年武漢市法院書記員招聘考試題庫及答案解析
- 湖南省邵陽市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細及行政區(qū)劃代碼
- 齊齊哈爾大學教師教育實踐中心申報材料匯總
- 中考物理總復習課教案(第一輪)
- 工廠開工試車方案
- 變電站土石方工程施工方案(42頁)
- 英語專業(yè)四級寫作評分標準
- 汽油柴油一書一簽
評論
0/150
提交評論