SỐ NGẪU NHIấN (RANDOM NUMBER) PHÂN BỐ ĐỀU U(0,1)

Một phần của tài liệu Tài liệu học tập mô hình hóa và mô phỏng hệ thống điều khiển (Trang 49 - 51)

Khi mụ phỏng hệ thống người ta thường cần cú cỏc số ngẫu nhiờn phõn bố theo những quy luật phõn bố nhất định để mụ phỏng cỏc sự kiện ngẫu nhiờn xảy ra trong hệ. Số ngẫu nhiờn phõn bố đều trong khoảng (0,1) thường được dựng làm cơ sở để sản sinh ra số ngẫu nhiờn cú cỏc phõn bố khỏc nhau. Phõn bố đều U(0,1) đúng vai trũ quan trọng trong kỹ thuật mụ phỏng, vỡ vậy đó được nhiều người nghiờn cứu và cú nhiều phương phỏp tạo ra nú. Sau đõy là một số phương phỏp thụng dụng để tạo ra phõn bố đều U(0,1).

a. Dựng mỏy phỏt ngẫu nhiờn

Mỏy phỏt số ngẫu nhiờn dựa trờn nguyờn tắc sử dụng nhiễu do cỏc thiết bị điện tử gõy ra. Trờn hỡnh 5.7 biểu diễn phương phỏp tạo nhiễu ngẫu nhiờn dựng điện trở trong một mạch khuếch đại điện tử

trong đú điện ỏp u(t) đúng vai trũ là nhiễu ngẫu nhiờn. Người ta chọn quóng thời gian lấy mẫu T(a,b) và biờn độ điện ỏp cắt Uc tuỳ ý. Giao điểm giữa u(t) và Uc tạo thành dóy số ngẫu nhiờn t1,

t2, t3,..., tn. Đõy là dóy số ngẫu nhiờn phõn bố đều U(0,1).

0 0.2 0.4 0.6 0.8  = 0.5 p(x) 1 2 3 4 5 Hỡnh 5.6. Phõn bố Poisson với = 0.5 x u(t) Uc a b t

Hỡnh 5.7. Tạo số ngẫu nhiờn dựng mỏy phỏt số ngẫu nhiờn

50 Ưu điểm: Nhận được dóy số hoàn toàn ngẫu nhiờn với số lượng khụng hạn chế (bằng cỏch thay đổi thời gian lấy mẫu T(a,b) và điện ỏp cắt Uc).

Nhược điểm: Phải lắp thờm mỏy phỏt số ngẫu nhiờn. Khi cần làm lại quỏ trỡnh mụ phỏng thỡ khụng tạo được dóy số ngẫu nhiờn giống lần trước nờn khụng thể so sỏnh chớnh xỏc kết quả của hai lần thử nghiệm.

b. Dựng bng s ngu nhiờn

Bằng nhiều cỏch người ta lập được bảng cỏc số ngẫu nhiờn (Xem phụ lục). Khi mụ phỏng cú thể lấy cỏc số ngẫu nhiờn trong bảng ra theo một thứ tự nào đú: lấy lần lượt, lấy cỏch quóng,...

Ưu điểm: Cú thể lặp lại dóy số ngẫu nhiờn để dựng cho cỏc lần mụ phỏng khỏc nhau.

Nhược điểm: Tốn bộ nhớ để lưu bảng số ngẫu nhiờn.

c. Dựng thuật toỏn tạo số giả ngẫu nhiờn (Pseudorandom Numbers)

Ngày nay người ta thường dựng thuật toỏn tạo số ngẫu nhiờn. Như vậy rất thuận tiện vỡ khi lập trỡnh chỉ cần lập chương trỡnh con tạo số ngẫu nhiờn mà khụng cần phải ghi số ngẫu nhiờn vào bộ nhớ của mỏy tớnh. Tuy nhiờn người ta cũng chứng minh được rằng bất kỳ thuật toỏn nào cũng tạo ra số ngẫu nhiờn cú chu kỳ nờn nú khụng hoàn toàn là số ngẫu nhiờn mà nú chỉ là số giả ngẫu nhiờn (Pseudorandom Numbers). Tuy nhiờn nếu chu kỳ của số giả ngẫu nhiờn đủ lớn (khoảng (15).106) thỡ số ngẫu nhiờn đú cú thể được xem là số ngẫu nhiờn đối với cỏc bài toỏn mụ phỏng thụng thường. Cú nhiều thuật toỏn tạo số giả ngẫu nhiờn khỏc nhau.

- Thuật toỏn lấy phần giữa của bỡnh phương:

Cho số khởi đầu xo = 0,2152, vậy số ngẫu x1, x2,... tiếp theo sẽ được tớnh như sau: 2 o 1 x =0, 04631104→x =0.6311 2 1 2 x =0, 39828721→x =0.8287

Nhược điểm của phương phỏp này là rất dễ xảy ra trường hợp chu kỳ lặp lại của số ngẫu nhiờn quỏ ngắn. Vớ dụ: Chọn xo= 0,4500 ta cú:

(xo)2 = 0.20250000 → x1 = 0.2500 (x1)2 = 0.06250000 → x2 = 0.2500 (x2)2 = 0.06250000 → x3 = 0.2500 - Thuật toỏn nhõn:

Thuật toỏn: zi+1 = xi; Xi+1 = ]zi+1[, trong đú: xi - là số ngẫu nhiờn phõn bố đều trong (0,1). ]zi+1[ - là phần lẻ của số zi+1.

 - Hệ số:  = 8t  3 với t là số nguyờn dương bất kỳ.

Vớ dụ: chọn t = 5 → = 8.5  3, chọn  = 37. Cho trước xo = 0,37843. Ta cú số ngẫu nhiờn sau: z1= xo = 37*0,37843 = 14,00191 → x1 =0,00191

51 z2= x1 = 37*0,00191 = 0,07067 → x2 =0,07067

z3= x2 = 37*0,07067 = 2.61497 → x3 =0,61497 z4= x3 = 37*0,61497 = 22.74723 → x3 =0,74723

Dóy số ngẫu nhiờn thu được sẽ phõn bố đều trong khoảng (0,1). Người ta chứng minh được chu kỳ lặp lại của dóy số ngẫu nhiờn này đủ lớn nờn cú thể dựng trong phộp mụ phỏng.

Một phần của tài liệu Tài liệu học tập mô hình hóa và mô phỏng hệ thống điều khiển (Trang 49 - 51)

Tải bản đầy đủ (PDF)

(108 trang)