Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
622,58 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI TẠ THỊ HOÀN PHƯƠNG PHÁP MONTE CARLO SINH BIẾN NGẪU NHIÊN KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Hà Nội – Năm 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI TẠ THỊ HOÀN PHƯƠNG PHÁP MONTE CARLO SINH BIẾN NGẪU NHIÊN Chuyên ngành: Toán ứng dụng KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HÀ BÌNH MINH Hà Nội – Năm 2015 Mục lục Lời mở đầu Cơ sở MATLAB 1.1 Tổng quan MATLAB 1.2 Giao diện phần mềm cách sử dụng 1.2.1 Cửa sổ lệnh 1.2.2 Lịch sử lệnh 1.2.3 Không gian làm việc workspace 1.2.4 Công cụ biên tập lệnh 1.3 Dữ liệu 10 1.3.1 Khai báo sử dụng biến 10 1.3.2 Hằng số 10 1.3.3 Nhập, xuất liệu 11 1.4 Đồ họa 12 1.5 Lập trình với MATLAB 12 1.5.1 Thư viện hàm sẵn có 12 1.5.2 Xây dựng hàm 13 1.5.3 Các lệnh rẽ nhánh 14 1.6 Một số lưu ý 16 Các kỹ thuật sinh biến ngẫu nhiên 17 2.1 Các định nghĩa biến ngẫu nhiên 17 2.1.1 Biến ngẫu nhiên rời rạc 17 2.1.2 Biến ngẫu nhiên liên tục 18 2.1.3 Hàm phân phối 19 i Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học 2.2 Sinh biến ngẫu nhiên có phân phối 21 2.3 Phương pháp biến đổi ngược 24 2.4 Phương pháp chấp nhận-loại bỏ 26 2.5 2.6 Sinh biến ngẫu nhiên liên tục 29 2.5.1 Sinh biến ngẫu nhiên liên tục tuân theo phân phối chuẩn 29 2.5.2 Sinh biến ngẫu nhiên liên tục tuân theo phân phối mũ 30 2.5.3 Sinh biến ngẫu nhiên liên tục tuân theo phân phối Gamma 31 2.5.4 Sinh biến ngẫu nhiên liên tục tuân theo phân phối Chi-Square 33 Sinh biến ngẫu nhiên rời rạc 35 2.6.1 Sinh biến ngẫu nhiên rời rạc tuân theo phân phối nhị thức 35 2.6.2 Sinh biến ngẫu nhiên rời rạc tuân theo phân phối Poisson 2.6.3 Sinh biến ngẫu nhiên rời rạc tuân theo phân phối 38 TÀI LIỆU THAM KHẢO 35 40 ii LỜI CẢM ƠN Khóa luận hoàn thành trường Đại học Sư phạm Hà Nội hướng dẫn thầy giáo TS Hà Bình Minh Sự giúp đỡ hướng dẫn tận tình, nghiêm túc thầy suốt trình thực khóa luận giúp em trưởng thành nhiều cách tiếp cận vấn đề Em xin bày tỏ lòng biết ơn, lòng kính trọng sâu sắc thầy Em xin trân trọng cảm ơn Ban giám hiệu trường Đại học Sư phạm Hà Nội 2, thầy cô giáo khoa Toán, đặc biệt thầy cô tổ Toán ứng dụng tận tình giúp đỡ, đóng góp ý kiến, tạo điều kiện thuận lợi cho em suốt trình học tập hoàn thành khóa luận này! Em xin gửi lời cảm ơn tới gia đình, bạn sinh viên nhóm bên cổ vũ động viên tạo điều giúp đỡ em suốt trình thực hoàn thành khóa luận Hà Nội, tháng năm 2015 Sinh viên Tạ Thị Hoàn LỜI CAM ĐOAN Khóa luận hoàn thành trường Đại học Sư phạm Hà Nội hướng dẫn TS Hà Bình Minh Tôi xin cam đoan khóa luận "Phương pháp Monte Carlo sinh biến ngẫu nhiên" công trình nghiên cứu riêng trùng lặp với kết đề tài khác Trong trình nghiên cứu hoàn thành khóa luận kế thừa thành khoa học nhà khoa học với trân trọng biết ơn Tôi xin cam đoan thông tin trích dẫn khóa luận rõ nguồn gốc Hà Nội, tháng năm 2015 Sinh viên Tạ Thị Hoàn Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học LỜI MỞ ĐẦU Lí chọn đề tài Toán ứng dụng môn quan trọng có nhiều ứng dụng thực tế, giúp người rút thông tin từ liệu quan sát, nhằm giải toán sống Phương pháp Monte Carlo đời với hệ máy tính điện tử Mỹ từ năm 1943-1944 Tuy nhiên tên gọi phương pháp Monte Carlo hay gọi phương pháp thử thống kê xuất từ điển Toán học từ năm 1949-1950 Đến năm 1961 chuyên khảo phương pháp Monte Carlo nhà Toán học người Nga N.P.Buslenko J.A.Srejder đời nhiều nhà Toán học quan tâm Ở nước ta phương pháp Monte Carlo áp dụng giảng dạy vào thực tế từ năm 1963, mà công phải kể đến giáo sư Nguyễn Quý Hỷ, trường đại học KHTN-ĐHQG Hà Nội Phương pháp Monte Carlo nhiều nhà Toán học quan tâm Phương pháp ứng dụng rộng rãi lĩnh vực kỹ thuật tài chính, kinh tế vĩ mô vật lí tính toán Để hiểu phương pháp này, lựa chon đề tài "phương pháp Monte Carlo sinh biến ngẫu nhiên” để nghiên cứu Mục đích nghiên cứu Nghiên cứu phương pháp Monte Carlo sinh biến ngẫu nhiên Phương pháp nghiên cứu Nghiên cứu nhằm đưa nội dung tìm hiểu rõ phương pháp Monte Carlo Phạm vi nghiên cứu Do thời gian không nhiều nên báo cáo tìm hiểu số vấn đề phương pháp Monte Carlo Bố cục đề tài Khóa luận gồm hai chương: Chương 1: Cơ sở MATLAB Chương 2: Các kỹ thuật sinh biến ngẫu nhiên Tuy có nhiều cố gắng thời gian điều kiện nghiên cứu hạn chế nên khóa luận em không tránh khỏi sai sót,em mong góp ý bảo Thầy, Cô bạn đọc để khóa luận hoàn thiện Em xin chân thành cảm ơn thầy Hà Bình Minh, tận tình giảng dạy, hướng dẫn Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học em trình nghiên cứu hoàn thành khóa luận Em xin chân thành cảm ơn thầy cô khoa Toán , đặc biệt thầy cô tổ Toán ứng dụng, trường Đại học sư phạm Hà Nội 2, dạy dỗ, bảo em suốt trình học tập, nghiên cứu, hoàn thành khóa luận Hà Nội, tháng năm 2015 Sinh viên Tạ Thị Hoàn Chương Cơ sở MATLAB Trong Chương 1, trình bày đặc trưng MATLAB ứng dụng phần mềm 1.1 Tổng quan MATLAB MATLAB (matrix laboratory) phần mềm cung cấp môi trường tính toán số lập trình, công ty MathWorks thiết kế MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực thuật toán, tạo giao diện người dùng liên kết với chương trình máy tính viết nhiều ngôn ngữ lập trình khác Với thư viện Toolbox, MATLAB cho phép mô tính toán, thực nghiệm nhiều mô hình thực tế kỹ thuật MATLAB công cụ mạnh mẽ với thư viện chương trình lớn mà người dùng ứng dụng nhiều lĩnh vực khác nhau, cụ thể: • Giải tính toán số học • Lập trình ứng dụng với cấu trúc đơn giản, dễ tiếp cận • Khảo sát, phân tích, khai phá liệu • Mô hình hóa, mô hóa với công cụ đồ họa mạnh mẽ • Phát triển ứng dụng, giao tiếp với phần mềm thông dụng C++, Fortran, Excel Hệ thống MATLAB gồm thành phần bản: Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học Công cụ tính toán môi trường phát triển Thành phần MATLAB tập hợp công cụ phương tiện giúp người dùng sử dụng giao tiếp với chức liệu Phần nhiều công cụ có giao diện đồ họa Chúng bao gồm: Màn hình làm việc cửa sổ lệnh, công cụ biên tập sửa lỗi, công cụ phân tích mã nguồn, trình duyệt hỗ trợ, không gian làm việc, tệp công cụ khác Thư viện hàm toán học MATLAB có tập hợp lớn giải thuật tính toán trải từ hàm sơ cấp hàm cộng, trừ, sin, cosin, đến hàm phức tạp nghịch đảo ma trận, tính trị riêng ma trận, hàm Bessel, biến đổi Fourier Ngôn ngữ lập trình MATLAB sử dụng ngôn ngữ lập trình cấp cao với câu lệnh rẽ nhánh, hàm,dữ liệu có cấu trúc, lệnh nhập, xuất liệu, mang đặc điểm ngôn ngữ lập trình hướng đối tượng Nó cho phép tạo nhanh chương trình đơn giản, đặc tính tái sử dụng đồng thời sử dụng MATLAB công cụ tạo ứng dụng phức tạp, sử dụng nhiều lần Đồ họa MATLAB linh hoạt dễ dàng việc hiển thị vector ma trận giao diện đồ họa Nó bao gồm hàm xử lý đồ họa cấp cao giúp mô phỏng, biểu diễn liệu không gian hai chiều ba chiều Đồng thời MATLAB cho phép dễ dàng tinh chỉnh, chí tạo giao diện đồ họa tùy ý cho ứng dụng cá nhân Các giao tiếp mở Thư viện giao tiếp mở cho phép lập trình C, Fortran tương tác với MATLAB, giao tiếp với MATLAB máy tính toán trung gian, đọc ghi liệu với MATLAB 1.2 Giao diện phần mềm cách sử dụng Để khởi động MATLAB, kích đúp vào biểu tượng MATLAB, hình xuất giao diện làm việc MATLAB hình 1.1 Giao diện cửa sổ Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học Nếu định nghĩa c số thỏa mãn f (y) ≤ c, g(y) với y, (2.5) sinh biến mong muốn sử dụng thủ tục nêu Hằng số c cần thiết phải điều chỉnh g(y) lớn f (x) Chúng ta sinh điểm từ cg(y), điểm nằm đường cong f (y) chấp nhận, điểm lại bị loại bỏ Để đảm bảo hiệu quả, số lượng điểm loại bỏ yêu cầu nhỏ tốt Phương pháp chấp nhận-loại bỏ ( trường hợp liên tục) Chọn hàm mật độ dễ lấy mẫu g(y) Tìm số c cho thỏa mãn phương trình 2.5 Sinh số ngẫu nhiên Y từ hàm mật độ g(y) Sinh số ngẫu nhiên U có phân phối Nếu U≤ f (Y ) , cg(Y ) chấp nhận X = Y , không chuyển sang bước Ví dụ 2.4.1 Chúng ta minh họa phương pháp chấp nhận-loại bỏ việc sinh biến số ngẫu nhiên từ phân phối β với tham số α = β = [Ross, 1997] với hàm mật độ xác suất f (x) = 2x, < x < (2.6) Do < x < 1, sử dụng hàm g(y) có phân phối Chúng ta cần tìm số tác động vào phân phối để hàm lớn hàm mật độ có phân phối beta cần xác định Hằng số lấy giá trị lớn hàm mật độ đích; từ công thức (2.6), c = Với hàm phức tạp hơn, ta dùng lệnh fminsearch MATLAB Mã lệnh MATLAB tạo 100 biến ngẫu nhiên theo yêu cầu Chúng ta hiển thị biến chấp nhận loại bỏ c = 2; % constant 27 Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học n=100; % generate 100 rv’s % set up the arrays to store variates x = zeros(1,n); % random variates xy = zeros(1,n); % corresponding y values rej = zeros(1,n); % rejected variates rejy = zeros(1,n); % corresponding y values irv=1; irej=1; while irv [...]... cơ bản sinh biến ngẫu nhiên Trong Chương này tôi trình bày các kỹ thuật cơ bản sinh biến ngẫu nhiên và áp dụng các kỹ thuật này sinh các biến ngẫu nhiên có phân phối mong muốn 2.1 Các định nghĩa cơ bản về biến ngẫu nhiên 2.1.1 Biến ngẫu nhiên rời rạc Nếu tập các giá trị mà biến ngẫu nhiên nhận là một tập gồm một số hữu hạn điểm hoặc vô hạn nhưng đếm được, khi đó biến ngẫu nhiên gọi là biến ngẫu nhiên. .. trình sinh biến ngẫu nhiên 5 Nếu U≤ qy cpy thì chấp nhận X = Y , nếu không chuyển sang bước 3 2.5 Sinh biến ngẫu nhiên liên tục 2.5.1 Sinh biến ngẫu nhiên liên tục tuân theo phân phối chuẩn Hàm randn trong MATLAB có tác dụng sinh các biến ngẫu nhiên chuẩn tắc và có chức năng tương tự hàm rand đã được thảo luận trong phần trước Với biến ngẫu nhiên có phân phối đều U, chúng ta có thể xác định biến ngẫu nhiên. .. chấp nhận và loại bỏ trong quá trình sinh Lưu ý là biến ngẫu nhiên chấp nhận nằm dưới hơn f (x) Chúng ta có thể dễ dàng điều chỉnh phương pháp này để sinh các biến ngẫu nhiên có phân phối rời rạc Phương pháp chấp nhận-loại bỏ (trường hợp rời rạc) 1 Chọn hàm mật độ qi dễ lấy mẫu 2 Tìm hằng số c sao cho py < cqy 3 Sinh số ngẫu nhiên Y từ hàm mật độ qi 4 Sinh số ngẫu U có phân phối đều 28 Tạ Thị Hoàn... được gọi là phép chuẩn hóa biến ngẫu nhiên e Phân phối mũ Biến ngẫu nhiên ξ có phân phối mũ nếu hàm mật độ của nó được xác định bởi 0 nếu x ≤ 0, p(x) = λe−λx nếu x > 0, (λ > 0) Hàm phân phối có dạng F (x) = 2.2 0 nếu x ≤ 0, 1 − e−λx nếu x > 0 Sinh biến ngẫu nhiên có phân phối đều Phần lớn các phương pháp sinh biến ngẫu nhiên khởi đầu với các số ngẫu nhiên tuân theo phân phối đều trong... cú pháp rand(m, n) Lưu ý: nếu gọi lệnh rand (n), ta được một ma trận n × n các phần tử ngẫu nhiên có phân phối đều Dãy các số ngẫu nhiên được sinh trong MATLAB phụ thuộc vào hạt giống (seed) 21 Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học hoặc trạng thái (state) của bộ sinh số ngẫu nhiên. Trạng thái của bộ sinh số ngẫu nhiên được đưa về trạng thái mặc định mỗi khi khởi động chương trình Do đó các dãy ngẫu. .. học 2.3 Phương pháp biến đổi ngược Phương pháp biến đổi ngược có thể được dùng để sinh các biến số ngẫu nhiên từ một phân phối liên tục.Theo [Ross, 1997] , hàm phân phối F có phân phối đều trên khoảng (0, 1): (2.1) U = F (X) Nếu U là biến ngẫu nhiên có phân phối đều trên khoảng (0, 1) , chúng ta có thể thu được biến số ngẫu nhiên X mong muốn từ quan hệ (2.2) X = F −1 (U) Thuật toán phương pháp biến... ngẫu nhiên chỉ số lần xuất hiện mặt lục trong 100 lần gieo trên Khi đó ta có phân phối xác suất của X là m P {X = m} = C100 × (1/6)m × (5/6)100−m ; m = 0, 1, 2, , 100 trong đó p = P 2.1.2 xuất hiện mặt lục = 1/6 Biến ngẫu nhiên liên tục Nếu tập các giá trị biến ngẫu nhiên nhận lấp đầy một khoảng nào đó, khi đó biến ngẫu nhiên được gọi là biến ngẫu nhiên liên tục Để mô tả (hoặc xác định) biến ngẫu nhiên. .. hiệu cho các biến ngẫu nhiên Với khả năng của máy tính điện tử hiện nay, chúng ta có thể dễ dàng sinh các biến giả ngẫu nhiên theo phân phối đều Trong MATLAB, hàm rand dùng để sinh các biến ngẫu nhiên có phân phối đều Có một số đối số tùy chọn với hàm rand chúng ta cần lưu ý khi sử dụng Hàm rand không có đối số trả về một biến ngẫu nhiên U Để có được một ma trận m × n các biến ngẫu nhiên có phân phối... với trung vị µ và phương saivà σ 2 bằng một phép đổi biến Thật vậy, gọi Z là một thể hiện của biến ngẫu nhiên chuẩn tắc (có thể được sinh bởi hàm rand) ta tìm được X mong muốn thông qua công thức X = Z.σ + µ 29 (2.7) Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học 2.5.2 Sinh biến ngẫu nhiên liên tục tuân theo phân phối mũ Phương pháp biến đổi ngược có thể được dùng để sinh biến số ngẫu nhiên tuân theo phân... ta có phương pháp đơn giản để sinh một biến ngẫu nhiên x không phải từ f (x) mà từ hàm mật độ của biến ngẫu nhiên khác, ký hiệu là g(y) Trước hết chúng ta sinh một số ngẫu nhiên Y từ g(y) và chấp nhận giá trị với tỷ lệ xác suất ứng với tỉ số f (Y )/g(Y ) 26 Tạ Thị Hoàn Khóa luận tốt nghiệp Đại học Nếu chúng ta định nghĩa c là hằng số thỏa mãn f (y) ≤ c, g(y) với mọi y, (2.5) thì chúng ta có thể sinh ... này, lựa chon đề tài "phương pháp Monte Carlo sinh biến ngẫu nhiên để nghiên cứu Mục đích nghiên cứu Nghiên cứu phương pháp Monte Carlo sinh biến ngẫu nhiên Phương pháp nghiên cứu Nghiên cứu nhằm... thuật sinh biến ngẫu nhiên Trong Chương trình bày kỹ thuật sinh biến ngẫu nhiên áp dụng kỹ thuật sinh biến ngẫu nhiên có phân phối mong muốn 2.1 Các định nghĩa biến ngẫu nhiên 2.1.1 Biến ngẫu nhiên. .. em hệ thống lý thuyết phướng pháp Monte Carlo sinh biến ngẫu nhiên Khóa luận xem tài liệu tham khảo cho người quan tâm đến phương pháp Monte Carlo sinh biến ngẫu nhiên nói riêng môn xác suất