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

Tìm hiểu về số ngẫu nhiên và mối liên quan giữa số ngẫu nhiên với biến ngẫu nhiên

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 (368.48 KB, 19 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
Đề tài 3:
Tìm hiểu về số ngẫu nhiên
Mối liên quan giữa số ngẫu nhiên với biến ngẫu nhiên

Giảng viên hướng dẫn:
PGS. TS Nguyễn Thị Hồng Lan

MỤC LỤC
CHƯƠNG I: TÌM HIỂU VỀ SỐ NGẪU NHIÊN


Số
ngẫ
u

CHƯƠNG I: TÌM HIỂU VỀ 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 tốn bằng máy tính, nhất
là khi các thuật tố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 qt:



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.


Số
ngẫ
u
Nhận xét rằng, cho dù những dữ liệu xi đượ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
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ố xi đượ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 xi = Xi(ζ) 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ố xi đượ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


Số
ngẫ
u

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 zi là:

zn = f(zn-1,…,zn-r) mod m
Trên đây là 1 biểu thức đệ quy phi tuyến thể hiện zn 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 zn-1,…,zn-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.
z0 = 1
zn= azn-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 zn co thể đáp ứng hầu hết đc các yêu cầu thu
được từ (8-134) với a = 27 – 1 và

m = 231 -1 :

zn = 16.807zn-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 ui .
- Nếu xi là các mẫu của BNN x, yi =g(xi ) là thể hiện của BNN y=g(x).
Ta chứng minh được:
nếu xi có phân phối Fx (x), thì yi có phân phối
Fx ((y-a)/b) nếu b>0
Fx ((y-a)/b) nếu b<0


Số
ngẫ
u

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ỳ


Số
ngẫ
u
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ỳ Fx(X)
thì U = Fx(X) là biến ngẫu nhiên có phân phối đều trong khoảng (0,1)
Suy ra:

X = Fx(-1)(U)

với Fx(-1)(U) là hàm ngược của Fx(X)

Phương pháp khởi tạo: Như vậy để tạo một chuỗi có phân phối Fx(X)
ta chỉ cần tính hàm ngược của hàm phân phối đó và tính Fx(-1)(ui) . Lưu ý rằng
dãy xi là phân vị ui của Fx(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 ω:

fx(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:

fx(X|ω)dx = fy(Y)
Tạo chuỗi yi bằng cách đặt yi = xi nếu ω xảy ra, loại bỏ xi nếu ngược lại. Lời
giải là thỏa mãn nếu fy(X) bằng 0 trong mọi khoảng fx(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ệ fx(X)/fy(X) bị chặn dưới bởi một hằng số a dương.
≥a>0

với mọi x


Số
ngẫ
u
Định lý loại trừ: nếu BNN X và U là độc lập và
ω={u ≤ r(x)}

với

thì fx(x|ω) = fy(x)

r(x) =a

≤1
(2)

Chứng minh: Hàm mật độ chung của hai BNN X và U bằng fx(X) trong dải
0cả 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
xfx(x)r(x)dx như nhau. Do đó
P{ x< X≤ x+dx,ω } = fx(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 xi thỏa mãn điều kiện ui≤r(xi)
xác định một chuỗi số ngẫu nhiên có hàm mật độ fx(y|ω) = fy(y).
Ta có kết quả như sau:
Phương pháp khởi tạo:
Đặt yi=xi nếu ui ≤ a; loại bỏ xi trong các trường hợp còn lại


Số
ngẫ
u
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) = p1f1(x) + … + pmfm(x)

pk > 0

(3)

với mỗi fk là hàm mật độ của một chuỗi đã biết xik
Chuỗi xi được tạo theo quá trình trộn m chuỗi xik được chọn ra theo quy

tắc sau:
Đặt xi =

nếu p1 + … + pk-1 ≤ ui
(4)

Định lý trộn: nếu các chuỗi ui và ,……, là độc lập đơi một lẫn nhau thì
hàm mật độ fx(x) của chuỗi xi được quy định bởi (4) có dạng như sau :
fx(x) = p1f1(x) + … + pmfm(x)

(5)

Chứng minh: chuỗi xi 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à xik chính là fk(x). Chuỗi này cũng là một chuỗi
con của xi với điều kiện phụ thuộc vào sự kiện:
Ak = { p1 + … + pk-1 ≤u< p1 +…+pk }
Do đó hàm mật độ của nó cũng bằng fx(x|Ak). Điều đó dẫn tới kết luận
rằng : fx(x|Ak) = fk(x)
Từ định lý tổng xác suất, suy ra:
fx(x) = fx(x|A1)P(A1) + …+ fx(x|Am)P(Am)
Mặt khác ta có P(Ak)=pk , suy ra đpcm.
Kết luận: hàm mật độ fx(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 xi =

nếu p1 + … + pk-1 ≤ ui

Số

ngẫ
u

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


Số
ngẫ
u
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ó


Số
ngẫ
u
cùng kích thước với A
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


Số
ngẫ
u

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:


Số
ngẫ
u
Hình 5: Code sinh số ngẫu nhiên


Số
ngẫ
u
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
fw(w) =
Do đó, nếu zi là 1 dãy có phân phối chuẩn N(0, 1), thì dãy w= có phân
phối Lognormal


Số
ngẫ
u
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


Số
ngẫ
u
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.


Số
ngẫ
u
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


Số
ngẫ
u

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


Số
ngẫ
u

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(
kết quả bên giao diện chính

). Xem




×