• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于蒙特卡羅模擬的概率求解問題研究

      2019-07-03 23:49:34袁佳婧
      現(xiàn)代商貿(mào)工業(yè) 2019年11期
      關(guān)鍵詞:正態(tài)分布數(shù)學(xué)建模

      袁佳婧

      摘 要:蒙特卡羅模擬是通過計(jì)算機(jī)模擬實(shí)際發(fā)生的事情。通過蒙特卡羅模擬能計(jì)算出相應(yīng)事件發(fā)生的概率,模擬與計(jì)算過程有效、可行、易理解。其基本思想是,將各種隨機(jī)事件的概率特征與模擬聯(lián)系起來,用試驗(yàn)的方法確定事件的相應(yīng)概率與數(shù)學(xué)期望。應(yīng)用蒙特卡羅模擬方法解決了實(shí)際概率問題,為解決用傳統(tǒng)方法不能解決的問題,提供了有意義的參考。主要介紹蒙特卡羅方法及基本原理,并通過實(shí)例說明蒙特卡羅方法在數(shù)學(xué)建模中的應(yīng)用。

      關(guān)鍵詞:蒙特卡羅模擬;隨機(jī)試驗(yàn);正態(tài)分布;數(shù)學(xué)建模

      中圖分類號(hào):TB 文獻(xiàn)標(biāo)識(shí)碼:Adoi:10.19311/j.cnki.1672-3198.2019.11.106

      1 蒙特卡羅方法與基本原理

      蒙特卡羅方法又稱為計(jì)算機(jī)模擬方法,它是以概率統(tǒng)計(jì)理論為基礎(chǔ)的一種方法。該方法與一般數(shù)值計(jì)算方法有本質(zhì)區(qū)別,蒙特卡羅模擬采用的是頻率近似概率的數(shù)學(xué)思想,來解決物理、數(shù)學(xué)、生產(chǎn)管理或工程技術(shù)等方面的問題。蒙特卡羅方法的起源,最早可以追溯到18世紀(jì)下半葉時(shí),由Buffon提出的用試驗(yàn)的方法求值,即:蒲豐投針問題。蒲豐投針問題的解決方法就是蒙特卡羅模擬的典型運(yùn)用。當(dāng)時(shí)的投針試驗(yàn)是利用人工進(jìn)行實(shí)際操作,然后統(tǒng)計(jì)試驗(yàn)結(jié)果,最后得出結(jié)論。但是人工進(jìn)行大量實(shí)際的隨機(jī)試驗(yàn),一方面成本較高;另一方面統(tǒng)計(jì)結(jié)果的準(zhǔn)確率較低,因此只能稱Buffon試驗(yàn)只能稱為近代統(tǒng)計(jì)模擬的雛形。隨著現(xiàn)今計(jì)算機(jī)技術(shù)的高速發(fā)展,蒙特卡羅模擬實(shí)驗(yàn)已不再需要人工實(shí)際操作,通過計(jì)算機(jī)隨機(jī)模擬更加方便快捷,所得的估計(jì)值也更精確。

      蒙特卡羅模擬方法求解概率問題的基本思想是:當(dāng)所求問題的解是某個(gè)隨機(jī)變量的數(shù)學(xué)期望或者某個(gè)事件的概率,或者是與數(shù)學(xué)期望、概率有關(guān)的量時(shí),通過試驗(yàn)的方法模擬事件的發(fā)生,求出該事件發(fā)生的頻率,計(jì)算所求參數(shù)的統(tǒng)計(jì)特征,最后給出近似值作為問題的解。

      2 實(shí)際問題

      校車在每個(gè)工作日,都會(huì)在A校區(qū)與B校區(qū)之間擺渡。李華家住B校區(qū)附近。校車從A校區(qū)到B校區(qū)的運(yùn)行時(shí)間服從均值為30分鐘,標(biāo)準(zhǔn)差為2分鐘的正態(tài)隨機(jī)分布。校車大約中午13:00從A校區(qū)出發(fā),李華大約13:30步行到達(dá)B校區(qū),校車從A校區(qū)出發(fā)的時(shí)刻及概率如表1所示。

      3 問題分析

      記T1為校車從A校區(qū)出發(fā)的時(shí)刻,T2為校車從A校區(qū)到B校區(qū)運(yùn)行的時(shí)間,T3為李華到達(dá)B校區(qū)的時(shí)刻。T1、T2、T3均是隨機(jī)變量,且T2~N(30,22),T1、T3的分布律如表所示:其中記中午13時(shí)為時(shí)刻t=0。

      通過分析可知,此人能及時(shí)趕上校車的充分必要條件是:T1+T2>T3。由此得到,此人趕上校車的概率是P{T1+T2>T3}。

      4 建立模型

      利用蒙特卡羅方法隨機(jī)模擬校車出發(fā)時(shí)刻,校車車運(yùn)行時(shí)間,李華到達(dá)B校區(qū)的時(shí)刻。然后判斷多次試驗(yàn)中滿足上述充要條件的試驗(yàn)有多少次。若在n次試驗(yàn)中,有k次成功,則用頻率k/n作為李華能趕上校車的概率。當(dāng)n很大時(shí),頻率值與概率值近似相等。

      設(shè)r1,r2 是(0,1)區(qū)間上均勻分布的隨機(jī)數(shù)。則T1,T3的分布律的模擬公式為:

      t1=0,0

      令 t2 是服從正態(tài)分布N(30,22) 的隨機(jī)數(shù),則將t2 看成火車運(yùn)行時(shí)間T2的觀察值。

      在每次試驗(yàn)中,產(chǎn)生兩個(gè)U(0,1) 的隨機(jī)數(shù)r1,r2,來構(gòu)造 t1,t3。產(chǎn)生一個(gè)N(30,22) 的隨機(jī)數(shù)r3,來構(gòu)造 t2。當(dāng) t1+t2>t3,認(rèn)為試驗(yàn)成功(能夠趕上校車)。若在n次試驗(yàn)中,有k次成功,則用頻率k/n 作為此人趕上火車的概率。當(dāng)n很大時(shí),頻率值與概率值近似相等。

      5 模型求解

      下面是利用python語言進(jìn)行蒙特卡羅模擬的程序。其中montefun()是自定義的蒙特卡羅模擬函數(shù)。

      import numpy as np

      def montefun():

      t1 = np.random.rand()

      t2 = np.random.normal(30,2)

      t3 = np.random.rand()

      arrtime1=0

      arrtime2=t2

      arrtime3=0

      if t1<0.7:

      arrtime1=0

      elif 0.7<=t1<0.9:

      arrtime1=5

      else:

      arrtime1 = 10

      if t3 < 0.3:

      arrtime3 = 28

      elif 0.3<= t3 <0.7:

      arrtime3 = 30

      elif 0.7<= t3 < 0.9:

      arrtime3 = 32

      else:

      arrtime3 = 34

      return arrtime1,arrtime2,arrtime3

      if __name__ == "__main__":

      t=0

      f=0

      for i in range(10000):

      t1,t2,t3 = montefun()

      if (t1 +t2) > t3:

      t+=1

      else:

      f += 1

      print (float(t)/10000)

      程序運(yùn)行的最后結(jié)果為:0.6317,故李華可以趕上校車的概率是0.6317。

      6 模型推廣

      眾所周知,在實(shí)際生活中有很多概率事件,這些事件可能沒有明確的概率分布。這種情況下,蒙特卡羅模擬是最有效且直接的方法。

      我們都玩過套圈圈的游戲:游戲者拿著圈,去套擺放在地上的玩具,如果套中即可拿走。這個(gè)游戲貌似很誘人,但事實(shí)上投圈游戲攤的老板是穩(wěn)賺不賠的?,F(xiàn)在我們用蒙特卡羅模擬計(jì)算能套中的概率,證明這個(gè)事實(shí)。

      假設(shè)目標(biāo)物品中心點(diǎn)的坐標(biāo)為(0,0),目標(biāo)物品的半徑為5cm。下面用python代碼畫出目標(biāo)物品坐標(biāo)圖。

      import matplotlib.pyplot as plot

      import numpy as np

      import matplotlib.patches as mpts

      target_circle = mpts.circle([0,0],radius=5,edgecolor='r',fill=False)

      plot.ylim(-80,80)

      plot.xlim(-80,80)

      plot.axes().add_patch(circle_target)

      plot.show()

      代碼運(yùn)行后得到目標(biāo)物品,如圖1所示。

      對(duì)此我們假設(shè)投圈的半徑為8cm。投圈中心點(diǎn)圍繞目標(biāo)物品中心點(diǎn)呈二維正態(tài)分布,且假設(shè)其均值和標(biāo)準(zhǔn)差分別為:μ=0cm,σ=20cm。模擬1000個(gè)參與游戲者每人投圈1 次,即模擬投圈過程1000次。用python代碼完成模擬的程序如下。

      N=1000

      u,beta = 0,20

      points = u + beta * np.random.randn(N,2)

      plot.scatter ( [x[0] for x in points],[x[1] for x in points],c=np.random.rand(N),alpha=0.5)

      運(yùn)行代碼之后,得到的投圈中心點(diǎn)的分布圖如圖2所示。

      計(jì)算1000次投圈的過程中,投圈能夠套住目標(biāo)物品的概率。用python代碼完成計(jì)算:print(len([xy for xy in points if xy[0] ** 2 + xy[1] ** 2 < (8-5) ** 2])/N)。

      代碼執(zhí)行后輸出的結(jié)果值為0.012??梢越忉尀橥度?000次,其中只有12次能夠套住物品。這是個(gè)小概率事件,所以不難理解投圈游戲的老板幾乎時(shí)穩(wěn)賺不賠了。

      7 總結(jié)

      蒙特卡羅方法的發(fā)明,無疑是人類思維史上的重大突破。通過一個(gè)隨機(jī)性的構(gòu)想,它打破了過去的思考空白區(qū),開啟了人類新的思維空間。

      蒙特卡羅方法的使用過程可以歸納為以下三個(gè)主要步驟:

      (1)構(gòu)造概率過程:對(duì)于本身具有隨機(jī)性質(zhì)的問題,需要正確地描述和模擬這個(gè)概率過程;對(duì)于本來不是隨機(jī)性質(zhì)的確定性問題,需要事先人為地構(gòu)造概率過程,將不具有隨機(jī)性質(zhì)的問題轉(zhuǎn)化為隨機(jī)性質(zhì)的問題。

      (2)利用概率分布抽樣:各種概率模型可以看作是由各種各樣的概率分布構(gòu)成的,所以實(shí)現(xiàn)蒙特卡羅方法模擬實(shí)驗(yàn)的基本手段是產(chǎn)生已知概率分布的隨機(jī)變量。然后依據(jù)概率分布進(jìn)行隨機(jī)抽樣模擬概率過程。

      (3)建立估計(jì)量:實(shí)現(xiàn)模擬實(shí)驗(yàn)后確定一個(gè)隨機(jī)變量,作為所要求的問題的解。蒙特卡羅方法通過構(gòu)造符合一定規(guī)則的隨機(jī)數(shù)來解決各種實(shí)際問題。對(duì)于那些由于計(jì)算過于復(fù)雜而難以得到解析解或者根本沒有解析解的問題,蒙特卡羅方法是一種有效的求出數(shù)值解的方法。

      蒙特卡羅模擬方法的優(yōu)點(diǎn)是能夠比較逼真地描述具有隨機(jī)性質(zhì)的事物的特點(diǎn)及物理實(shí)驗(yàn)過程。受幾何條件限制小。程序結(jié)構(gòu)簡單,易于實(shí)現(xiàn)。是中學(xué)生入門數(shù)學(xué)建模與實(shí)驗(yàn)的不二選擇。

      參考文獻(xiàn)

      [1]向東等.蒙特卡羅方法在核類本科專業(yè)的教學(xué)初探[J].價(jià)值工程,2010,(29).

      [2]孫榮恒.趣味隨機(jī)問題[M].北京:科學(xué)出版社,2008.

      [3]徐鐘濟(jì).蒙特卡羅方法[M].上海:上??茖W(xué)技術(shù)出版社,1985.

      [4]宋來忠等.數(shù)學(xué)建模常用方法與實(shí)驗(yàn)[M].北京:科學(xué)出版社,2015.

      [5]汪曉銀等.數(shù)學(xué)建模方法入門及其應(yīng)用[M].北京:科學(xué)出版社,2018.

      猜你喜歡
      正態(tài)分布數(shù)學(xué)建模
      基于對(duì)數(shù)正態(tài)分布的出行時(shí)長可靠性計(jì)算
      正態(tài)分布及其應(yīng)用
      在數(shù)學(xué)建模中培養(yǎng)學(xué)生的提問能力
      考試周刊(2016年84期)2016-11-11 22:54:07
      數(shù)學(xué)建模中創(chuàng)造性思維的培養(yǎng)
      考試周刊(2016年84期)2016-11-11 22:46:15
      談數(shù)學(xué)建模時(shí)的問題分析步驟
      考試周刊(2016年85期)2016-11-11 01:06:38
      樹立建模意識(shí) 培養(yǎng)學(xué)生創(chuàng)新思維
      最小二乘法基本思想及其應(yīng)用
      科技視界(2016年22期)2016-10-18 17:12:13
      建模思想在數(shù)學(xué)教學(xué)中的滲透研究
      成才之路(2016年26期)2016-10-08 11:31:43
      正態(tài)分布題型剖析
      χ2分布、t 分布、F 分布與正態(tài)分布間的關(guān)系
      靖宇县| 德昌县| 青田县| 井冈山市| 苏尼特右旗| 桃江县| 贵州省| 固阳县| 任丘市| 长泰县| 华阴市| 石城县| 湖南省| 华安县| 丁青县| 深水埗区| 靖边县| 沈阳市| 读书| 京山县| 翁源县| 永寿县| 南雄市| 榆树市| 沂源县| 镇雄县| 安庆市| 乌海市| 舒兰市| 桐柏县| 灌南县| 宁津县| 临澧县| 巨鹿县| 铁力市| 牡丹江市| 枣阳市| 抚州市| 宁波市| 佛学| 岐山县|