Tải bản đầy đủ (.docx) (20 trang)

Tìm hiểu về số ngẫu nhiên và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (426.94 KB, 20 trang )

VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
ĐẠI HỌC BÁCH KHOA HÀ NỘI

BÀI TẬP LỚN
QUÁ TRÌNH NGẪU NHIÊN ỨNG DỤNG
Đề số 5: Tìm hiểu về số ngẫu nhiên và ứng dụng
Giảng viên hướng dẫn:
PGS. TS Nguyễn Thị Hoàng Lan
Hà Nội 11/2014
Số ngẫu nhiên
Trang 2
Số ngẫu nhiên
Mục lục
Trang 3
Số ngẫu nhiên
CHƯƠNG I: Ý NGHĨA CỦA SỐ NGẪU NHIÊN
1. Bắt đầu từ lớp bài toán quen thuộc
Trong số các phương pháp để giải quyết những bài toán tất định, các
phương pháp Monte Carlo là lời giải thích hợp để tính toán bằng máy tính, nhất
là khi các thuật toán tất định không thể đưa ra được kết quả chính xác. Chúng ta
quan tâm đến các phương pháp này vì lời giải của chúng sử dụng đến lý thuyết
số ngẫu nhiên.
Một ví dụ điển hình là ước lượng giá trị của tích phân Monte Carlo có
dạng tổng quát:
I =
Dạng cơ bản của tích phân này trong không gian một chiều, xét trong
khoảng (0,1).
I =
Như ta đã biết, giả sử có một biến ngẫu nhiên X ~ U(0,1), Y là một hàm
của X có dạng y = g(x), khi đó tính được
E{g(x)} =


=
Giả sử biến ngẫu nhiên X mô hình hóa cho một đai lượng vât lý nào đó
trong thực tế, khi đó ta có thể ước lượng giá trị kỳ vọng E{g(x)} bằng tần suất
tương đối:
với n đủ lớn.
Nhận xét rằng, cho dù những dữ liệu x
i
được tạo bằng cách nào đi nữa,
chúng vẫn là những số ngẫu nhiên có đặc trưng nhất định. Do đó, nếu có một
Trang 4
Số ngẫu nhiên
cách nào đó có thể tạo ra những số như vậy thì ta có thể tính được giá trị tích
phân I. Từ đó dẫn đến nhu cầu thiết lập một phương pháp số để khởi tạo số
ngẫu nhiên. Để thực hiện được điều đó, trước tiên ta cần trả lời các vấn đề sau:
- Số ngẫu nhiên là gì?
- Có thể khởi tạo số ngẫu nhiên bằng máy tính không?
- Có thể tạo ra số thực sự “ngẫu nhiên”?
2. Khái niệm số ngẫu nhiên
Khái niệm số ngẫu nhiên được rút ra từ hai quá trình nghiên cứu: lý
thuyết và thực nghiệm.
- Khái niệm lý thuyết: Một chuỗi số x
i
được gọi là ngẫu nhiên nếu các
phần tử của nó bằng với những mẫu x
i
= X
i
(ζ) của một biến ngẫu
nhiên độc lập có phân phối đều.
Biến ngẫu nhiên ở đây có phân phối đều vì số ngẫu nhiên cũng được

hiểu theo nghĩa tương tự, tức là xác suất tạo ra một số ngẫu nhiên là
như nhau trong cả chuỗi ngẫu nhiên.
- Khái niệm thực nghiệm: Một chuỗi số x
i
được gọi là ngẫu nhiên nếu
các thuộc tính thống kê của nó giống với những thuộc tính của dữ liệu
ngẫu nhiên thu được từ một thử nghiệm ngẫu nhiên
Để kết quả thu được từ thực nghiệm phù hợp với lý thuyết xác suất:
o Các phép thử phải độc lập
o Mẫu thử thu được chi coi là gần đúng
Vì số liệu không chắc chắn như vậy
⇒ Khó xác định bản chất của các số được tạo
⇒ Lợi thế là có thể chuyển những vấn đề thiết lập tính ngẫu nhiên của
chuỗi số về những bài toán quen thuộc
Trang 5
Số ngẫu nhiên
3. Khởi tạo số ngẫu nhiên
Thuật toán chung nhất để khởi tạo một dãy số ngẫu nhiên z
i
là:
z
n
= f(z
n-1
,…,z
n-r
) mod m
Trên đây là 1 biểu thức đệ quy phi tuyến thể hiện z
n
với điều kiện m là hằng

số, f là hàm với các điều kiện ban đầu z
n-1
,…,z
n-r
. Chất lượng của bộ khởi tạo
phụ thuộc vào dạng hàm f.
3.1 Thuật toán Lehmer: là bộ khởi tạo lâu đời nhất và đơn giản nhất.
z
0
= 1
z
n
= az
n-1
mod m ≥ 1 m là số nguyên tố, a là số nguyên.
Qua nhiều năm, một số thuật toán đã được đưa ra để tạo ra 1 dãy số ngẫu
nhiên đẹp. Tuy nhiên không phải tất cả đều được kiểm chứng và đứng vững với
thời gian. . Một ví dụ về chuỗi z
n
co thể đáp ứng hầu hết đc các yêu cầu thu
được từ (8-134) với a = 2
7
– 1 và m = 2
31
-1 :
z
n
= 16.807z
n-1
mod 2.147.483.647

Dãy này được xem là chuẩn nhất khi thỏa mãn các tiêu chuẩn kiểm tra về
tính ngẫu nhiên và đã được áp dụng trong rất nhiều trường hợp.
3.2 Số ngẫu nhiên với phân phối bất kỳ
- Gọi U là một biến ngẫu nhiên có phân phối đều trong khoảng (0, 1)
tương ứng sẽ có các số ngẫu nhiên u
i
.
- Nếu x
i
là các mẫu của BNN x, y
i
=g(x
i
) là thể hiện của BNN y=g(x).
Ta chứng minh được:
nếu x
i
có phân phối F
x
(x), thì y
i
có phân phối
F
x
((y-a)/b) nếu b>0
F
x
((y-a)/b) nếu b<0
Trang 6
Số ngẫu nhiên

Ta sẽ sử dụng những bổ đề trên để trình bày những phương pháp tạo ra số
ngẫu nhiên với phân phối bất kỳ
Trang 7
Số ngẫu nhiên
3.3 Phương pháp chuyển đổi phân vị
Trước hết ta chứng minh được:
- Giả sử biến ngẫu nhiên X có phân phối bất kỳ F
x
(X)

thì U = F
x
(X) là biến ngẫu nhiên có phân phối đều trong khoảng (0,1)
Suy ra:
X = F
x
(-1)
(U) với F
x
(-1)
(U) là hàm ngược của F
x
(X)
Phương pháp khởi tạo: Như vậy để tạo một chuỗi có phân phối F
x
(X)
ta chỉ cần tính hàm ngược của hàm phân phối đó và tính F
x
(-1)
(u

i
) . Lưu ý rằng
dãy x
i
là phân vị u
i
của F
x
(x).
- Nhược điểm: Tìm hàm ngược không dễ dàng.
3.4 Phương pháp loại trừ
Để tránh phải sử dụng hàm ngược như phương pháp chuyển đổi phân vị, ta
xây dựng một phương pháp khác dựa trên trên khái niệm tần suất tương đối của
hàm mật độ có điều kiện của BNN X với sự kiện giả định ω:
f
x
(X|ω)dx = (1)
Sự kiện ω xảy ra với điều kiện theo biến x và u, và được chọn sao cho:
f
x
(X|ω)dx = f
y
(Y)
Tạo chuỗi y
i
bằng cách đặt y
i
= x
i
nếu ω xảy ra, loại bỏ x

i
nếu ngược lại. Lời
giải là thỏa mãn nếu f
y
(X) bằng 0 trong mọi khoảng f
x
(X) bằng 0
Ta có thể giả định, mà ko cần làm mất đi tầm quan trọng của dạng tổng quát, tỷ
lệ f
x
(X)/f
y
(X) bị chặn dưới bởi một hằng số a dương.
≥ a > 0 với mọi x
Trang 8
Số ngẫu nhiên
Định lý loại trừ: nếu BNN X và U là độc lập và
ω={u ≤ r(x)} với r(x) =a ≤ 1
thì f
x
(x|ω) = f
y
(x) (2)
Chứng minh: Hàm mật độ chung của hai BNN X và U bằng f
x
(X) trong dải
0<u<1 của mặt phẳng xu, các trường hợp còn lại bằng 0. Sự kiện µ bao gồm tất
cả các kết quả mà điểm (X,U) là vùng bị che dưới đường cong u=r(x) của hình
bên dưới.
Do đó

P(ω) =
Sự kiện {x< X≤ x+dx,ω} bao gồm tất cả các điểm (x,u) nằm trong dải
x<X≤ x+dx nằm dưới đường cong u=r(x). Các khối xác suất trong dải
f
x
(x)r(x)dx như nhau. Do đó
P{ x< X≤ x+dx,ω } = f
x
(x)r(x)dx
Thay vào (1) ta có (2), (đpcm)
Từ định lý loại trừ suy ra một chuỗi con của chuỗi x
i
thỏa mãn điều kiện u
i
≤r(x
i
)
xác định một chuỗi số ngẫu nhiên có hàm mật độ f
x
(y|ω) = f
y
(y).
Ta có kết quả như sau:
Phương pháp khởi tạo:
Đặt y
i
=x
i
nếu u
i

≤ a; loại bỏ x
i
trong các trường hợp còn lại
Trang 9
Số ngẫu nhiên
3.5 Phương pháp trộn
Ta tạo một chuỗi số có hàm mật độ là tổng trọng số của m hàm mật độ khác
f(x) = p
1
f
1
(x) + … + p
m
f
m
(x) p
k
> 0 (3)
với mỗi f
k
là hàm mật độ của một chuỗi đã biết x
i
k
Chuỗi x
i
được tạo theo quá trình trộn m chuỗi x
i
k

được chọn ra theo quy

tắc sau:
Đặt x
i
= nếu p
1
+ … + p
k-1
≤ u
i
<p
i
+…+ p
k
(4)
Định lý trộn: nếu các chuỗi u
i
và ,……, là độc lập đôi một lẫn nhau thì
hàm mật độ f
x
(x) của chuỗi x
i
được quy định bởi (4) có dạng như sau :
f
x
(x) = p
1
f
1
(x) + … + p
m

f
m
(x) (5)
Chứng minh: chuỗi x
i
là hỗn hợp của m m chuỗi khác.Gọi hàm mật độ
của chuỗi con của chuỗi thứ k là x
i
k
chính là f
k
(x). Chuỗi này cũng là một chuỗi
con của x
i
với điều kiện phụ thuộc vào sự kiện:
A
k
= { p
1
+ … + p
k-1
≤u< p
1
+…+p
k
}
Do đó hàm mật độ của nó cũng bằng f
x
(x|A
k

). Điều đó dẫn tới kết luận
rằng : f
x
(x|A
k
) = f
k
(x)
Từ định lý tổng xác suất, suy ra:
f
x
(x) = f
x
(x|A
1
)P(A
1
) + …+

f
x
(x|A
m
)P(A
m
)
Mặt khác ta có P(A
k
)=p
k

, suy ra đpcm.
Kết luận: hàm mật độ f
x
(x) tạo ra bởi (5) bằng với hàm f(x) của (3). Như
vậy ta có phương pháp khởi tạo số như sau:
Đặt x
i
= nếu p
1
+ … + p
k-1
≤ u
i
<p
i
+…+ p
k
Trang 10
Số ngẫu nhiên
CHƯƠNG 2: SỬ DỤNG MATLAB TẠO SỐ NGẪU NHIÊN
1. Các hàm sử dụng để sinh số ngẫu nhiên (Genrating random
number)
1.1 Hàm rand hàm trả về số giả ngẫu nhiên từ phân phối đều
- rand: trả về số ngẫu nhiên có phân phối đều trong khoảng (0, 1)
- m + (n-m)*rand: trả về số ngẫu nhiên có phân phối đều trong khoảng
(m, n)
- rand (1, n) : trả về n số ngẫu nhiên có phân phối đều (0,1)
- m + (n-m)*rand (1, k): trả về k số ngẫu nhiên có phân phối đều (m, n)
Hình 1: Code và kết quả hàm rand
Trang 11

Số ngẫu nhiên
1.2 Hàm randn hàm trả về số giả ngẫu nhiên có phân phối chuẩn Gauss
- randn: trả về 1 số ngẫu nhiên có phân phối chuẩn Gauss
- randn (1, n): trả về n số ngẫu nhiên có phân phối chuẩn Gauss
Hình 2: Code và kết quả chạy hàm randn
1.3 Hàm randi hàm trả về số giả ngẫu nhiên có phân phối đều rời rạc
Cú pháp: randi(n, 1, m). Trong đó:
- n: là giá trị lớn nhất của số ngẫu nhiên
- m cho biết số phần tử tạo ra
Hình 3: Kết quả chạy hàm randi
1.4 Hàm random
Cú pháp Mô tả
Trả về Y là số ngẫu nhiên có phân phối
name. Tham số được giới hạn bởi A. Y có
cùng kích thước với A
Trang 12
Số ngẫu nhiên
Trả về Y là số ngẫu nhiên có phân phối
name. Tham số được giới hạn trong khoảng
(A, B)
Trả về Y là mảng có kích thước [m n …]
chứa các số ngẫu nhiên có phân phối
name.Tham số được giới hạn bởi A.
Các name trong hàm random
Trang 13
Số ngẫu nhiên
Hình 4: Các name trong hàm random
Bài tập: Sinh dãy số ngẫu nhiên có phân phối chuẩn, phân phối poission, phân
phối Gamma, phân phối Beta, phân phối Rayleigh, phân phối student-t, phân
phối nhị thức

Code:
Hình 5: Code sinh số ngẫu nhiên
Trang 14
Số ngẫu nhiên
Kết quả:
Hình 6: Kết quả
2. Số ngẫu nhiên Lognormal
2.1 Lý thuyết
Nếu z là phân phối chuẩn N(0, 1) thì w = có phân phối Lognormal
f
w
(w) =
Do đó, nếu z
i
là 1 dãy có phân phối chuẩn N(0, 1), thì dãy w= có phân
phối Lognormal
Trang 15
Số ngẫu nhiên
z có phân phối chuẩn N(0, 1) w có phân phối Lognormal với kỳ vọng và
độ lệch chuẩn
Trong đó m, v lần lượt là kì vọng, độ lệch chuẩn của phân phối chuẩn
tương ứng
2.2 Sinh số ngẫu nhiên Lognormal bằng matlab
Cú pháp:
- R= lognrnd(mu,sigma): trả về một mảng các số ngẫu nhiên được sinh
ra từ phân phối Lognormal với các thông số mu và sigma. mu và
sigma là trung bình và độ lệch chuẩn tương ứng với phân phối chuẩn
miên quan.
- R=lognrnd(mu,sigma,m,n) hoặc R=lognrnd(mu,sigma,[m,n, ]): trả về
một mảng có kích thước m, n

Đề bài: Sinh 8 số ngẫu nhiên Lognormal có kì vọng là 1 và độ lệch chuẩn là 2
Code:
Hình 7: Code sinh số ngẫu nhiên Lognormal
Trang 16
Số ngẫu nhiên
Kết quả:
Hình 8: Kết quả sinh số ngẫu nhiên Lognormal
3. Số ngẫu nhiên nhị thức (Binomial random numbers)
Cú pháp:
-
-
-
Mô tả:
- tạo ra các số ngẫu nhiên phân phân phối nhi thức. N là số lượng các
thử nghiệm, P là xác suất thành công cho mỗi thử nghiệm.
- : tạo ra một mảng m, n các số ngẫu nhiên phân phối nhị thức với N là
số lượng các thử nghiệm, P là xác suất thành công cho mỗi thử
nghiệm.
Trang 17
Số ngẫu nhiên
Bài tập: N từ 10 đến 40, P = sinh dãy số ngẫu nhiên nhị thức
Code:
Hình 9: Code sinh số ngẫu nhiên nhị thức
Kết quả:
Hình 10: Kết quả sinh số ngẫu nhiên nhị thức
Trang 18
Số ngẫu nhiên
4. Số ngẫu nhiên Chi-square (Chi-square random numbers)
Cú pháp:
-

-
-
Mô tả:
- tạo ra các số ngẫu nhiên phân phối chi-square trong miền giới hạn V
- : tạo ra mảng m, n,… chứa các số ngẫu nhiên phân phối chi-square
trong miền giới hạn V.
Bài tập: Sinh 10 số ngẫu nhiên chi-square trong miền giới hạn V nhập vào từ
bàn phím
Code:
Hình 11: Code sinh số ngẫu nhiên Chi-square
Kết quả:
Hình 12: Kết quả sinh số ngẫu nhiên Chi-square
Trang 19
Số ngẫu nhiên
5. Hướng dẫn sử dụng
5.1 Các file nguồn kèm theo
- CHISQUARE.m: Chương trình nguồn sinh số ngẫu nhiên Chi-square
- NHITHUC.m: Chương trình nguồn sinh số ngẫu nhiên nhị thức
- RAND.m: Chương trình nguồn sinh số ngẫu nhiên bằng hàm rand
- RANDN.m: Chương trình nguồn sinh số ngẫu nhiên bằng hàm randn
- RANDOM.m: Chương trình nguồn sinh số ngẫu nhiên bằng hàm
random
- LOG.m: Chương trình nguồn sinh số ngẫu nhiên Lognormal
- RANDI.m: Chương trình nguồn sinh số ngẫu nhiên bằng hàm randi
5.2 Cách sử dụng
- Giải nén
- Mở Matlab->Open->chọn chương trình nguồn -> run( ). Xem
kết quả bên giao diện chính
Trang 20

×