遼寧衛(wèi)生職業(yè)技術(shù)學院數(shù)理計算機教研室(110101) 張樂成 景 宇
在統(tǒng)計學中常見的均勻分布函數(shù)、指數(shù)分布函數(shù)、正態(tài)分布函數(shù)等都是連續(xù)型隨機變量分布函數(shù),對于統(tǒng)計工作者來說,連續(xù)型隨機變量分布函數(shù)計算是經(jīng)常遇到且必須解決的問題。由分布函數(shù)F(x)定義及數(shù)學分析可知〔1〕,F(xiàn)(x)計算是一個積分計算,從根本說就是關(guān)于密度函數(shù)f(x)定積分計算。在數(shù)學中對定積分近似計算方法有很多,但對于廣大醫(yī)學衛(wèi)生工作者來說,要掌握這些計算方法還需了解相關(guān)數(shù)學知識,因此,他們使用這些計算方法很不方便。本文給出了一個用概率方法計算定積分的方法,即用統(tǒng)計試驗法計算定積分,同時給出了該方法計算機程序。這種方法理論上非常簡單,極易掌握,借助計算機可輕松完成。
統(tǒng)計試驗方法又稱蒙特卡羅方法〔2〕,是一種采用統(tǒng)計抽樣理論近似地求解數(shù)學問題或物理問題的方法,既可用來研究概率問題,也可用來求解非概率問題。利用蒙特卡羅方法去解決數(shù)學分析問題時,基本的思想是首先建立與描述該問題有相似性的概率模型,利用這種相似性把這概率模型的某些特征(如隨機事件的概率或隨機變量的平均值等)與數(shù)學分析問題的解答(如積分值、微分方程的解等)聯(lián)系起來,然后對模型進行隨機模似或統(tǒng)計抽樣,再利用所得結(jié)果求出這些特征的統(tǒng)計估計值作為原來的分析問題的近似解。蒙特卡羅方法的理論基礎(chǔ)是概率論中最一般的定理——大數(shù)定律。
下面我們用蒙特卡羅方法來求解定積分問題,進而解決連續(xù)型隨機變量分布函數(shù)計算問題。采用的方法是隨機擲點計數(shù)統(tǒng)計法,實例如下:
依據(jù)上述算法用Visual Basic語言編寫程序如下:首先建立一個窗體,在窗體上建五個文本框和一個命令按鈕。編寫代碼如下:
Private Sub Command1_Click()
Dim x(),y()
a=Text1'積分區(qū)間下限
b=Text2'積分區(qū)間上限
c=Text3'被積函數(shù)一個上界
n=Text4'試驗次數(shù)
ReDim x(n),y(n)
Randomize
m=0
For i=1 To n
x(i)=(b-a)*Rnd+a
y(i)=c*Rnd
If f(x(i))>=y(i)Then m=m+1
Next i
Text5=m/n*(b-a)*c
例 計算標準正態(tài)分布函數(shù)
End Sub
Function f(x)
100 f=Sqr(x)
End Function
2.改寫程序
將語句標號為100語句改換為
f=1/Sqr(2*3.1415926)*Exp(-x^2/2)
3.運行程序
將a賦值0,將b賦值2,將c賦值0.5(是積分函數(shù)一個上界),將n賦值100000。
我們計算 5次的值分別是:0.47570,0.47679,0.47851,0.47615,0.47802,平均值是 0.47703
所以φ(2)≈0.5+0.47703=0.97703
求φ(-1)可以將φ(-1)整理成:
1.計算時對c值選擇很重要,c越小越好(擲點試驗靈敏度越高),但c必需是積分函數(shù)在積分區(qū)域上的上界。
2.依據(jù)大數(shù)定律,對n值選擇是越大越好。但要注意對程序運行時間影響不要太大,還有考慮計算機能否可以接受。
3.計算連續(xù)型隨機變量分布函數(shù)時,需要把它整理成求定積分形式。
4.本文給出程序代碼是本方法核心代碼,人們可根據(jù)需要進行擴充,如加入求多個結(jié)果的平均數(shù)計算等。
5.本文雖沒有給出算法結(jié)果的誤差估計,但是這個誤差估計是可以計算出的。這是因為本文中n次擲點試驗,可以看做是進行n次成功概率為Q的貝努里試驗,m是其中成功次數(shù),故m服從二項分布b(n,Q)。
1.盛驟,謝式千,潘承毅.概率論與數(shù)理統(tǒng)計.第4版.北京:高等教育出版社,2008.
2.陳東彥,李東梅,王樹忠.數(shù)學建模.北京:科技出版社,2007.