c3 lecture note 08nova.bime.ntu.edu.tw/~ttlin/course03/lecture_notes/c3...1...
TRANSCRIPT
1
隨機理論與隨機系統之建立
(一)
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-2
壹、機率之基礎概念
貳、機率函數
參、重要分佈函數介紹
肆、亂數之產生
伍、隨機變數之產生
2
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-3
壹、機率之基礎概念一、機率之定義: 期望出現事件(Event)的次數與所有可能出現事件之比率。
[1]
二、機率理論中之相關定律 令p(a)為發生事件a之機率
p(b)為發生事件b之機率
p(a+b)為發生事件a或b之機率
p(ab)為發生事件a且發生事件b之機率
則
p a nnn
a( ) lim=→∞
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-4
1. 事件a發生的機率必不為負數,即
p(a) ≧ 0而p(a) = 0即表示為不可能發生之事件(an impossible event)
2. 若p(a0) = 1,則a0為必然發生之事件(a certain event)
3. p(a+b) = p(a) + p(b) - p(ab) [2]若 p(ab) = 0, 則事件a與事件b為互斥事件(Mutually exclusive event)
4. p(ab) = p(a) x p(b/a) [3]p(b/a)為發生事件a條件下,發生事件b之機率
5. p(a+b+c) = p(a) + p(b) + p(c) - p(ab) - p(bc) - p(ac)+ p(abc) [4]
3
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-5
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-6
4
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-7
貳、機率函數(Probability function)一、連續變數(Continuous variable)與離散變數(Discrete variable)
離散變數 頻率函數(Frequency function)
[5]連續變數 密度函數(Density function)
[6]
f xii
n
( ) ==∑ 1
1
f x dx( ) =−∞
∞
∫ 1
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-8
二、期望值(Expected value)(離散變數) [7](連續變數) [8]
期望值E(X)又常被稱為隨機變數X之Theoretical mean或first moment[例]:擲兩顆骰子之期望值為7。
三、變異數(Variance) 變異數,σ2[X] = E [ (X-m)2],為對於平均值E(X)的
分散程度,其平方根σ,稱為標準偏差(Standard deviation)
σ2[X] = E[ X2 ] - E2[X] ≧ 0 [9]
E X x f xj jj
( ) ( )= ∑E X xf x dx( ) ( )=
−∞
∞
∫
5
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-9
四、分佈函數(Distribution function) 分佈函數為一個隨機變數g(d)之值小於某一特定數值
x之機率:
F(x) = p(X≦x), −∞≦x≦+∞ [10]F(x)稱為隨機變數X之分佈函數。
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-10
參、重要分佈函數介紹
一、二項頻率函數(Binomial Frequency Function)
[11]
E(x) = mp, Var(x) = mpq
p x C p qxm x m x( ) = −
6
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-11
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-12
二、巴松頻率函數(Poisson Frequency Function) 當二項頻率函數中之p或q很小時(<0.1)且m值很大時(m>60),則二項頻率函數可以巴松頻率函數表示之。
[12]p xx e
x
( )!
=λ
λλ = mp < 6
E x p x xx
( ) ( )= ==
∞
∑ λ λ0
Var(x) =
7
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-13
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-14
三、幾何分佈函數(Geometric Distribution Function)
[13] ∈−
= otherwise 0
{0,1,...}x if )1()(xppxp
1=Var(x) 1)( 2pp
ppxE −−
=
8
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-15
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-16
四、常態分佈函數(Normal Distribution Function) 亦稱為高斯分佈(Gaussian distribution),為連續隨
機變數應用最為廣泛之分佈函數,其數學式為:
[14]
令z = (x−µ)/σ,[13]式亦可經正規化為:
[15]其中 z1,2 = (x1,2 - µ)/σ
f x( ) = 12πσ
µσ
exp[-(x - )2
] 2
2
E x( ) = µ σ Var(x) = 2
p zz
z( ) = ∫
121
2
πσexp(- z
2) dz
2
9
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-17
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-18
10
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-19
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-20
11
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-21
五、均勻分佈函數(Uniform Distribution Function)
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-22
12
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-23
六、指數分佈函數(Exponential Distribution Function)
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-24
13
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-25
七、對數常態密度函數(Lognormal Density Function)
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-26
14
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-27
八、Gamma密度函數(Gamma Density Function)
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-28
15
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-29
九、Weibull密度函數(Weibull Density Function)
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-30
16
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-31
十、Beta密度函數(Beta Density Function)
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-32
17
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-33
肆、亂數之產生
一、產生亂數之基本要求1.產生亂數之速度要快
2.亂數之週期要長
3.產生亂數之程式要簡短以減少記憶體需求
4.pseudorandom number與seed
二、亂數之產生 ri+1 = (αri + β) MOD N [16]上式中當N=220, α = 1909, β = 221,571時,可產生介於1至N-1間的均勻分佈隨機變數
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-34
三、亂數之測試
1.測試頻率(Frequency)是否均勻
2.Chi-squared測試
3.分散圖(Scatter diagram)測試
18
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-35
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-36
19
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-37
【亂數產生函式RAN0】#include <stdlib.h>#include <math.h>
float ran0(idum)int *idum;{
static float y,maxran,v[98];float dum;static int iff=0;int j;unsigned i,k;void nrerror();
if (*idum < 0 || iff == 0) {iff=1;i=2;do {
k=i;i<<=1;
} while (i);
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-38
maxran=k;srand(*idum);*idum=1;for (j=1;j<=97;j++) dum=rand();for (j=1;j<=97;j++) v[j]=rand();y=rand();
}j=1+97.0*y/maxran;if (j > 97 || j < 1) nrerror("RAN0: This cannot happen.");y=v[j];v[j]=rand();return y/maxran;
}
20
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-39
【亂數產生函式RAN1】#define M1 259200#define IA1 7141#define IC1 54773#define RM1 (1.0/M1)#define M2 134456#define IA2 8121#define IC2 28411#define RM2 (1.0/M2)#define M3 243000#define IA3 4561#define IC3 51349
float ran1(idum)int *idum;{
static long ix1,ix2,ix3;static float r[98];float temp;static int iff=0;int j;
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-40
void nrerror();
if (*idum < 0 || iff == 0) {iff=1;ix1=(IC1-(*idum)) % M1;ix1=(IA1*ix1+IC1) % M1;ix2=ix1 % M2;ix1=(IA1*ix1+IC1) % M1;ix3=ix1 % M3;for (j=1;j<=97;j++) {
ix1=(IA1*ix1+IC1) % M1;ix2=(IA2*ix2+IC2) % M2;r[j]=(ix1+ix2*RM2)*RM1;
}*idum=1;
}
21
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-41
ix1=(IA1*ix1+IC1) % M1;ix2=(IA2*ix2+IC2) % M2;ix3=(IA3*ix3+IC3) % M3;j=1 + ((97*ix3)/M3);if (j > 97 || j < 1) nrerror("RAN1: This cannot happen.");temp=r[j];r[j]=(ix1+ix2*RM2)*RM1;return temp;
}
#undef M1#undef IA1#undef IC1#undef RM1#undef M2#undef IA2#undef IC2#undef RM2#undef M3#undef IA3#undef IC3
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-42
伍、隨機變數之產生
產生隨機變數的方法大致可以分為以下四種:
1. 逆轉換法(Inverse Transform)2. 合成法(Composition)3. 捲積法(Convolution)4. 接受-排除法(Acceptance-Rejection)
22
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-43
一、逆轉換法(Inverse Transform) 產生具有F(x)分佈函數性質的隨機變數X,
可採用下列演算步驟:
1. 產生亂數U ~ U(0,1)。2. 利用U代入F(x)分佈函數的反函數F-1(x),以得到
X = F-1(U)。
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-44
23
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-45
產生具有F(x)分佈函數性質的離散隨機變數X,則可採
用下列演算步驟:
1. 產生亂數U ~ U(0,1)。2. 找出最小的正整數I,令U≦F(xI),則得到隨機變
數 X = xI。
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-46
24
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-47
二、合成法(Composition) 若我們所要產生的隨機變數之分佈函數可以表示成其他分佈函數的合成:
或隨機變數之密度函數為其他密度函數之合成
則我們可採用下列演算步驟來產生隨機變數X:1. 產生一個正整數亂數J,令
P(J=j) = pj for j=1,2,…2. 產生具有FJ(x)分佈函數性質的隨機變數X。
∑∞
=
=1
)()(j
jj xFpxF
∑∞
=
=1
)()(j
jj xfpxf
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-48
25
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-49
三、捲積法(Convolution) 若隨機變數X可以表示為其他獨立(IID)隨機變數Y1,Y2,…,Ym之和:
X = Y1 + Y2 + … + Ym
則我們可採用下列演算步驟來產生隨機變數X:1. 產生Y1,Y2,…,Ym(IID)獨立隨機變數。
2. 令X = Y1 + Y2 + … + Ym
【注意】:合成法與捲積法的差異
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-50
26
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-51
四、接受-排除法(Acceptance-Rejection) 接受-排除法的應用,首先必須定義一個t函數,使t函數超越(Majorize)密度函數,
即t(x)≧f(x),因此
一般而言,t(x)通常不是密度函數,但是r(x)=t(x)/c顯然依定義是密度函數,因此我們可以產生以r(x)為密度函數的隨機變數Y,而產生隨機變數X的演算法如下:
1. 依密度函數r(x)產生Y隨機變數。
2. 另外獨立產生亂數U ~ U(0,1)。3. 如果U≦f(Y)/t(Y),則令X = Y。否則回到步驟1,重新求合條件的X。
∫∫∞
∞−
∞
∞−=≥= 1)()( dxxfdxxtc
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-52
27
國立台灣大學生物機電系 林達德
631 U7860 生物系統模擬與分析 Lecture 08-53
參考文獻:Law, A.M. and W.D. Kelton. 1991. Simulation Modeling and Analysis. New York: McGraw-Hill Book Co. (Chapter 7,8)