You are on page 1of 21

Mô phỏng xác suất trong maple

-1-

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI


KHOA TOÁN TIN ỨNG DỤNG
---------***---------

BÁO CÁO BÀI TẬP


LẬP TRÌNH TÍNH TOÁN

Đề tài : Mô phỏng xác suất trong maple

Giáo viên hướng dẫn : PGS – TS Nguyễn Hữu Điển

Sinh viên thực hiện : Đặng Thái Dương

Lớp : Toán tin 2 – K51

Hà Nội, tháng 11 năm 2009

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-2-

Phần A Tổng quan về Maple


I.Các tính năng cơ bản của Maple
¾ Thực hiện được hầu hết các phép toán của chương trình toán đại
học và sau đại học.
¾ Cung cấp các công cụ minh họa hình ảnh gồm :vẽ đồ thị tĩnh và
động của các đường và mặt của các hàm tùy ý trong nhiều hệ tọa
độ khác nhau.
¾ Một ngôn ngữ lập trình đơn giản và mạnh mẽ,có khả năng tương
tác với các ngôn ngữ lập trinh khác.
¾ Cho phép trích xuất ra các dạng văn bản khác như:
Word,HTML,Excel…
¾ Một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với
các lớp học tương tác trực tiếp.
¾ Một trợ giáo hữu ích cho học sinh và sinh viên trong việc tự học .

II.Xây dựng và hiển thị khung hình ảnh


¾ Là một trong những chức năng quan trọng nhất của maple ,ứng
dụng trong rất nhiều lĩnh vực : mô phỏng ,tài chính ,kinh tế…
¾ Xây dựng hình ảnh thông thường có hai cách :
ƒ Dùng các hàm có sẵn trong thư viện của maple :plot – vẽ
hình trong không gian hai chiều,ba chiều.Hoặc vẽ hình động
:animate,animatecurve và animate3d.
ƒ Có thể xây dựng các thủ tục bao gồm : tạo ra các dãy frame
liên tiếp sau đó xếp chồng chúng lên nhau và hiển thị đồng
thời dãy liên tục các hình ảnh.

III.Một số gói thủ tục


1.Student
ƒ Gói lệnh đề cập đến tất cả nội dung toán học của đại học và
phổ thông ,cung cấp nhiều lệnh và thủ tục cho các phép toán
và algorithym,cung cấp nhiều công cụ tương tác dưới dạng
Maplet và hỗ trợ việc làm từng bước các phép toán cơ bản
của vi tích phân.
ƒ Gói Student có 3 gói lệnh con :
+ Calculus1
+ LinearAlgebra
+ Precalculus

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-3-

Để nạp từng gói lệnh ,làm như sau : with(Student[LinearAlgebra])


Calculus1 là gói lênh quan trọng nhất của Student ,nó chứa các công cụ
hỗ trợ từ từ hướng dẫn thực hiện các phép tính vi tích phân cho đến khảo
sát và vẽ đồ thị hàm; từ việc minh họa vẽ tiếp tuyến đường cong cho đến
việc tính diện tích, thể tích mặt tròn xoay,v.v...
Sử dụng các tutor trong các gói của Student và hỗ trợ tính toán từng
bước.
Ví dụ : tính tích phân
> with(Student[calculus1]):
IntTutor();
Sau khi ấn Enter một cửa sổ Maplet hiện ra ,cho phép ta nhập hàm và các
khoáng cần tính tích phân(nếu là tích phân xác định).

2.Gói Plots và Plottools


Gói plots chứa các lệnh cho phép vẽ hình trong không gian 2,3
chiều,gói plottools chứa các lệnh cho phép làm việc với các đối tượng
hình ảnh.
+Vẽ đồ thị trong không gian 2 chiều OXY:
¾ Vẽ đồ thị hàm thông thường :
Plot(hàm_cần_vẽ,,x=gt_đầu..gt_cuối,y=gt_đầu..gt_cuối,các_tùy_chọn);
¾ Vẽ nhiều đồ thị trên một trục :
Plot([hamf1,hamf2,…],x=gt_đầu..gt_cuối,y=gt_đầu..gt_cuối,các_tùy_chọ
n);
¾ Vẽ đồ thị hàm ẩn ,hàm có tham số :
Implicitplot([bt_1,bt_2,..],x=gt_đầu..gt_cuối,y=gt_đầu..gt_cuối,cáctùychọ
n);
Plot([x(t),y(t),t=a..b],cac_tùy_chọn);
+Vẽ đồ thị trong không gian 3 chiều OXYZ:
¾ Vẽ đồ thị hàm thông thường :
Plot3d(hàm_cần_vẽ,x=gt_đầu..gt_cuối,y=gt_đầu..gt_cuối,
z=gtđầu..gtcuối,các_tùy_chọn);
¾ Vẽ đồ thị hàm ẩn :
Implicitplot3d(hàm_cần_vẽ,x=gt_đầu..gt_cuối,y=gt_đầu..gt_cuối,
z=gtđầu..gtcuối,các_tùy_chọn);
+ Sự vận động của đồ thị :
¾ Vận động của đồ thị diễn tả sự biến thiên của đồ thị theo tham số.
¾ Cú pháp:
Animate(hàm_có_tham_số,x=gt_đầu..gt_cuối,tham_số=gt_đầu..gt_cuối);
Aminate3d(hàm_có_tham_số,x=gt_đầu..gt_cuối,y=gt_đầu..gt_cuối,
tham_số=gt_đầu..gt_cuối);

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-4-

¾ Ý nghĩa : hiển thị sự biến đổi ,vận động của đồ thị khi tham số
thay đổi trong khoảng cho trước
+ Vẽ điểm,đagiác,hình không gian :
¾ Vẽ điểm : a:= point([tọa_độ,tọa_độ],các_tùy_chọn);
Display(a,Các_tùy_chọn);
¾ Vẽ đa giác :
Display(polygon([[x1,y1],[x2,y2],x3,y3],…],các_tùy_chọn);
¾ Vẽ đường thẳng : Display(line([x1,y1],[x2,y2],các_tùy_chọn);
¾ Vẽ hình chữ nhật :
Display(rectangle([x1,y1],[x2,y2],các_tùy_chọn);
¾ Vẽ hình tròn : a:= circle(tâm:[x1,y1],bán_kính : r,các_tùy_chọn);
Display(a);

3.Gói Statistics
Có các hàm chức năng sử dụng trong xác suất và thống kê
¾ Hàm Rand(a..b) :tạo số ngẫu nhiên trong khoảng (a..b);
¾ Hàm RandomVariable(T) : tạo biến ngẫu nhiên có phân phối T
¾ Hàm Sample(X,n) : tạo n biến ngẫu nhiên có cùng phân phối với
biến ngẫu nhiên X.
¾ Một số phân phối thông dụng có trong maple :
+ Phân phối chuẩn Normal(a,b)
+ Phân phối Poisson(lambda)
+ Phân phối mũ Exponential(lambda)
+ Phân phối Khi_bình phương ChiSquare(n)…
¾ Các hàm tính các giá trị đặc trưng của xác suất và thống kê
+ Hàm tính phương sai,kỳ vọng toán,mode,median…
¾ Hàm ProbabilityTable(P_list) : Tạo ra một phân phối của một đại
lượng ngẫu nhiên có phân phối rời rạc .
¾ Hàm ProbabilityFunction(X,giá_trị_bnn,tùy_chọn): Xác suất của
một biến ngẫu nhiên tại một giá trị xác định
¾ Hàm EmpiricalDistribution(sample) : tạo ra một phân phối từ mẫu
dữ liệu đã cho.
¾ Hàm Distribution(T) :xác định phân phối cho biến ngẫu nhiên
¾ Hàm EmpiricalDistribution(sample),
ChiSquareIndependenceTest(X, options) ,
ChiSquareSuitableModelTest(X, F,options) : Kiểm định dùng
trong thống kê
¾ Hàm Histogram(X, options, plotoptions) ; vẽ tổ chức đồ trong
thống kê.

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-5-

Phần B Mô phỏng xác suất

I.Các đại lượng xác suất cơ bản


1.Biến ngẫu nhiên : đại lượng nhận các giá trị phụ thuộc vào các yếu tố
ngẫu nhiên ,biến ngẫu nhiên gồm có biến rời rạc và liên tục.
Để mô phỏng biến ngẫu nhiên tuân theo quy luật xác suất T ,ta sử dụng
hàm
X:= RandomVariable(T);

2 .Kỳ vọng toán :Phản ánh giá trị trung bình mà biến ngẫu nhiên X nhận
,trong maple có hai hàm xác định kỳ vọng toán :
ExpectedValue(X) : nếu X có phân phối liên tục
Mean(X) : nếu X có phân phối rời rạc

3.Phương sai : Đặc trưng cho mức độ phân tán các giá trị của biến ngẫu
nhiên xung quanh giá trị trung bình , hàm xác định phương sai trong
maple
Variance(X);

4 .Mode : X là biến ngẫu nhiên rời rạc thì Mod là gía trị mà tại đó xác
suất tương ứng lớn nhất. Còn nếu X là biến ngẫu nhiên liên tục thì Mod là
gía trị làm cho hàm mật độ f(x) đạt cực đại.Hàm xác định Mod
Mode(X);

5.Med : Là điểm phân đôi khối lượng xác suất thành 2 phần bằng nhau.
Với một biến ngẫu nhiên X có thể có một điểm Med hoặc có thể một
khoảng Med .Hàm xác định Med
Median(X);

6. Hàm phân bố xác suất của biến ngẫu nhiên X là hàm số F(x) xác định
với mọi x ∈ \ , được xác định bởi công thức :
F(x) = P{X<x} ; −∞ < x < ∞
Hàm phân bố trong maple : CDF(X,x) ; với x là biến số

7. Hàm mật độ xác suất : nếu X là biến ngẫu nhiên liên tục và có hàm
phân bố F(X) ,nếu tồn tại hàm f(x) sao cho ∀x ∈ \
x
F(x) = ∫ f(t)dt
−∞

thì f(x) được gọi là hàm mật độ của biến ngẫu nhiên X
hàm mật độ trong maple :PDF(X,x) ; với x là biến

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-6-

8. Bài toán
¾ Bài toán 1 : Tuổi thọ của một loài côn trùng nào đó là một
biến ngẫu nhiên X (đơn vị là tháng) với hàm mật độ như sau
⎧ kx 2 (4 − x) nÕu 0 ≤ x ≤ 4
f(x) = ⎨
⎩0 nÕu ng−îc l¹i
a) Xác định tham số k
b) Tìm tuổi thọ trung bình của loài côn trùng
c) Tìm DX,Med và hàm phân bố xác suất của X.
Giải
4
3
a) Vì ∫ kx 2 (4 − x) = 1 ⇒x=
0
64
b) Tuổi thọ trung bình :
4
3 12
EX = ∫
64 0
x 2 (2 − x)dx =
5
(tháng)
4
3 32 16
EX = ∫ x 4 (2 − x)dx = do đó DX = EX 2 − (EX)2 =
2

64 0 5 25
c) Hàm phân bố :
⎧0 nÕu x ≤ 0
⎪ −3

x
1
F(x) = ∫ f(t)dt = ⎨ x 4 + x3 nÕu 0 < x ≤ 4
−∞ ⎪ 256 16
⎪⎩1 nÕu 4 < x
Median :
1
MedX là nghiệm của phương trình F(x) = víi 0 < x ≤ 4
2
Do đó MedX ≈ 2,46

Giải bằng maple như sau :


> f:= piecewise(0<=x and x <= 4 ,k*x^2*(4-x),0);

> # tim k
> int(f,x=0..infinity);

> k:=solve(%=1,k);

> #ham mat do khi do


> f;

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-7-

> #tuoi tho trung binh


>
> mean:=int(x*f,x=0..infinity);

> #phuong sai


> ex2:=int(x*x*f,x=0..infinity); #tinh (EX)^2

> variance:=ex2-mean^2;

> #ham phan bo


> cdf:=int(f,x=0..t);

> #median
> median:=fsolve(cdf=.5,t);

¾ Bài toán 2 : Biến ngẫu nhiên x có bảng phân bố

X 1 2 3 4
P 0,4 0,3 0,1 0,2

a) Xác định EX,DX


b) Tìm hàm mật độ và vẽ đồ thị
Giải
a) EX = 1 × 0, 4 + 2 × 0,3 + 3 × 0,1 + 4 × 0,2 = 2,1
b) DX = 0, 4 × 12 + 0,3 × 22 + 0,1× 32 + 0,2 × 42 − EX 2 = 1,29
Giải bằng maple
> # tao bien ngau nhien X co phan bo nhu tren
> restart;
> with(Statistics):
> P:=[0.4,0.3,0.1,0.2]:
Z:=[1,2,3,4]:
> X_dist :=ProbabilityTable(P):

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-8-

> X := RandomVariable(X_dist):
> resutl:=Sample(X,4):
> map(t->Z[t],result):

> # tim ky vong va phuong sai


> Mean(X);

> evalf(Variance(X));

> # ham phan bo va do thi


> CDF(X,x);

> plot(CDF(X,x),x=0..infinity,y=0..1);

¾ Bài toán 3 : Tìm hàm phân bố,med… của biến ngẫu nhiên liên
tục
X có hàm mật độ như sau :
⎧3
x(2 − x) víi 0 ≤ x ≤ 2
f(x) = ⎪⎨ 4
⎪⎩0 nÕu tr¸i l¹i
Giải
Hàm phân bố xác suất :

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-9-

⎧0 víi x ≤ 0

⎪3
3
x
F(x) = ⎨ (x 2 − ) víi 0 < x ≤ 2
⎪4 3
⎪⎩1 víi x > 2

1
MedX là nghiệm của phương trình : F(x) = ⇔
2
⎧x 3 − 3x 2 + 2 = 0
⎨ .Suy ra MedX = 1
⎩0 < x ≤ 2
Giải bằng maple
> restart;
> with(Statistics):
> f :=x ->piecewise(0<=x and x<=2 ,3/4*x*(2-x),0):
> U := Distribution(PDF = f):
> X := RandomVariable(U):
> # Median
> Median(X,numeric);

> # ham phan bo


> CDF(X,x);

> # do thi
> plot(CDF(X,x));

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-10-

II. Một số luật phân phối thông dụng


1.Phân phối chuẩn : Biến ngẫu nhiên liên tục X có phân phối chuẩn
N( µ , σ 2 ),
ký hiệu X ~ N( µ , σ2 ), nếu hàm mật độ có dạng :
− (x −µ )2
1
f(x) = A 2 σ2
; ∀x ∈ \
σ 2π
2.Phân phối chuẩn tắc : Phân bố chuẩn N( µ , σ2 ), với kỳ vọng bằng 0
,phương sai =1 gọi là phân bố chuẩn tắc.
Hàm mật độ của phân bố chuẩn tắc :
− x2
1
ϕ(x) = e 2
; ∀x ∈ \

Hàm phân bố của N(0,1)
x x − t2
1
φ(x) = ∫ ϕ(t)dt =
−∞ 2π −∞
∫e 2
dt ; ∀x ∈ \

Thực tế nhiều biến ngẫu nhiên tuân theo quy luật chuẩn chẳng hạn trọng
lượng,chiều cao của một nhóm người nào đó ,điểm thí sinh, mức lãi suất
của một công ty , nhu cầu tiêu thụ của một mặt hàng nào đó…
3. Phân phối Poisson : biến ngẫu nhiên X nhận các giá trị k =0.1.2…với
xác suất :

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-11-

−λ λk
P{X = k} = e
k!
Gọi là phân phối Poisson với tham số λ >0,ký hiệu X ~ Ρ(λ) .
Thực tế số cuộc gọi đến một tổng đài , số khách hàng đến một điểm phục
vụ…trong một khoảng thời gian xác định nào đó sẽ có phân phối Poisson
với tham số λ là tốc độ trung bình diễn ra trong thời gian này.
Trong Maple để mô tả biến ngẫu nhiên tuân theo luật chuẩn ,Poisson…sử
dụng hàm:
X:=RandomVariable(Normal( µ , σ ));
X:=RandomVariable(Poisson( λ ));
4. Bài toán:
¾ Bài toán 1 :Giả sử X ~ N( µ , σ2 ), µ =2100, σ = 200,hãy tìm :
a) P{X>2400}
b) P{1700<X<2200}
Giải
2400 − 2100
a) P{X>2400} = 1- φ( ) = 1- φ(1,5) = 1- 0,9332 = 0,0668
200
2200 − 2100 1700 − 2100
b) P{1700<X<2200} = φ( ) - φ( ) = φ(0, 5) -
200 200
φ( −2) = 0,6688

Giải bằng maple


> restart;
> with(Statistics):
> X:=RandomVariable(Normal(2100,200)):
> CDF(X,2400):
> 1- evalf(%);

> restart;with(Statistics):
> X:=RandomVariable(Normal(2100,200)):
> CDF(X,2200) - CDF(X,1700):
> evalf(%);

¾ Bài toán 2 : Tại một tổng đài điện thoại , các cuộc gọi đến một
cách
ngẫu nhiên,độc lập,trung bình có 2 cuộc gọi trong 1 phút.Tìm xác suất để
a) Có đúng 5 cuộc gọi đến trong 5 phút(biến cố A)
b) Không có một cuộc gọi nào trong 30 giây(biến cố B)

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-12-

c) Có ít nhất một cuộc gọi trong 10 giây(biến cố C)


Giải
Gọi X(t) là số cuộc gọi dến trong thời gian t phút,X(t) ~ P(2t) :
45
a) Ta có X(2) ~ P(4) ,do đó P(A) = P{X(2) = 5}= e × ≈ 0,15629 −4

5!
Giải bằng maple:
> with(Statistics):
> X:=RandomVariable(Poisson(4));
> ProbabilityFunction(X,5,numeric);

1 1 −1
b) Ta có X( 2 ) ~ P(1) , do đó P(B) = { X( 2 )=0}= e ≈ 0,3679

Giải bằng maple


> with(Statistics):
> X:=RandomVariable(Poisson(1));
> ProbabilityFunction(X,0,numeric);

1 1
c) Ta có X( 6 ) ~ P( 3 ),do đó
−1
1 1
P(C) = P{X( 6 ) ≥ 0} = 1-P{X( 6 ) = 0} = 1- e ≈ 0,2835
3

Giải bằng maple


> with(Statistics):
> X:=RandomVariable(Poisson(1/3));
> 1- ProbabilityFunction(X,0,numeric);

¾ Bài toán 3 : Biến ngẫu nhiên X có hàm mật độ


⎧3
⎪ x(2 − x) víi 0 ≤ x ≤ 2
f(x) = ⎨ 4
⎪⎩0 nÕu tr¸i l¹i
Tìm hàm mật độ và hàm phân bố của biến ngẫu nhiên Y = X 2
Giải
Ta cỏ thể giải bằng maple như sau :
> restart;
> with(Statistics):
> f :=x ->piecewise(0<=x and x<=2 ,3/4*x*(2-x),0):
> U := Distribution(PDF = f):
> X := RandomVariable(U):
> Y:=X^2:
> PDF(Y,y):
> convert(%,Int):
> combine(%);

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-13-

> CDF(Y,y);

Phần C . Một số bài toán

I. Bài toán gieo con xúc sắc :Gieo một con xúc sắc ,xác suất xuất hiện
một mặt nào đó là bao nhiêu ?
Khi gieo một con xúc sắc ,ta sẽ được một số ngẫu nhiên trong khoảng từ
1 đến 6 .Khi gieo xúc sắc N lần , xác suất để xuất hiện mặt i được định

nghĩa là :
.
trong ñoù laø soá laàn maët i xuaát hieän trong toång soá laàn
gieo xuùc saéc.Do đó ta có thể mô phỏng như sau :
Xây dựng thủ tục proc(N) với N là số lần gieo , ta sẽ xác định số lần
xuất hiện của một mặt (bất kỳ từ 1 Æ 6) bằng một biến count ,xác suất
count
xuất hiện mặt đó là :
N
CODE
> xsuat:=proc(N::posint)
local k,p,count,i,n;
k:=rand(1..6);
count:=0;
for i from 1 to N do
n:=k();
if n=1 then
count:=count+1;
end if;
end do;
p:=evalf(count/N);
end proc;

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-14-

Thử nghiệm với số lần gieo lần lượt là


N = 100,1000,10000,50000,100000
> xsuat(100);

> xsuat(1000);

> xsuat(10000);

> xsuat(50000);

> xsuat(100000);

> evalf(1/6);

Ta thấy số lần gieo càng lớn ,xác suất càng chính xác so với tính toán lý
thuyết

II. Các trường hợp riêng

1. Gieo một con xúc sắc ,số lần xuất hiện một mặt chẵn hay một mặt lẻ là
bao nhiêu ?
Xác suất xuất hiện một mặt chẵn (2,4,6) hay một mặt lẻ (3,5,7) là 0,5 .Ta
có thể mô phỏng như sau :
CODE
> xsmchan:=proc(N::posint)
local k,p,count,i,n;
k:=rand(1..6);
count:=0;
for i from 1 to N do
n:=k();
if n=2 or n=4 or n=6 then
count:=count+1;
end if;
end do;
xsmchan:=evalf(count/N);
end proc;

Thử nghiệm với số lần gieo lần lượt là


N = 100,1000,10000,50000,100000

> smchan(100);

> xsmchan(1000);

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-15-

> xsmchan(10000);

> xsmchan(50000);

> xsmchan(100000);

> evalf(1/2);

2 . Gieo một lần 3 con xúc sắc , xác suất thu được 3 mặt 6 là bao nhiêu ?
1
Xác suất thu được một mặt 6 trong 1 lần gieo là , gieo một lần 3 con
6
1 1 1 1
xúc sắc xác suất thu được là : × × = ≈ 0,00463
6 6 6 216
CODE
> xacsuat:=proc(N::posint)
local k,p,i,n;
k:=rand(1..6);
p:=0;
for i from 1 to N do
n:=k();
if n=6 then
p:=p+1;
end if;
end do;
p:=(evalf(p/N))^3;
end proc;

Thử nghiệm với số lần gieo lần lượt là


N =100,1000,10000,50000,100000
> xacsuat(1000);

> xacsuat(10000);

> xacsuat(50000);

> xacsuat(100000);

> xacsuat(500000);

> evalf(1/216);

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-16-

3. Gieo một lần 3 con xúc sắc ,xác suất để được tổng 3 mặt bằng 10 là
bao nhiêu ?
Ở đây ta cần 3 biến ngẫu nhiên tương ứng với 3 lần gieo
CODE
> restart;
> with(Statistics):
> xs:=proc(N)
local count,a,b,c,p,x,i;
count:=0;
x:=rand(1..6);
for i from 1 to N do
a:=x();
b:=x();
c:=x();
if (a +b +c = 10 ) then count :=count +1;
end if;
end do;
p:= evalf(count/N);
end proc;

Thử nghiệm với số lần gieo lần lượt là


N =100,1000,10000,100000,500000
> xs(100);

> xs(1000);

> xs(10000);

> xs(100000);

> xs(5000000);

III. Mô phỏng hiện tượng tự nhiên


Khi mở một chai nước hoa trong phòng thì các phần tử hương liệu sẽ bay
ra khắp phòng.
Đó là một ví dụ về hiện tượng khuếch tán .
Ta có thể mô phỏng như sau : trong một mặt phẳng đặt một hê tọa độ
Đềcác ,giả sử một phần tử nước hoa ban đầu ở gốc tọa độ (0,0).Lấy một
số ngẫu nhiên n trong khoảng từ 1 đến 4 , sự dịch chuyển của phần tử
được xác định bởi số ngẫu nhiên n này , nếu n bằng 1 thì phần tử dịch

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-17-

sang phải 1 đơn vị tức là tới vị trí (1,0). Nếu n bằng 2 thì phần tử dịch trái
một đơn vị ,tới vị trí (-1,0), nếu n bằng 3 thì phần tử đi lên trên một bước
,tới vị trí (0,1) ,nếu n bằng 4 thì phần tử đi xuống một bước,tới vị trí (0,-
1).
Như vậy bằng cách “ gieo con xúc sắc “nhiều lần ,phân tử sẽ có một
chuyển động ngẫu nhiên trong mặt phẳng ,giống như hiện tượng khuếch
tán.
CODE
> Mo_phong_1:=proc(NSteps::posint)
local n,x,y,i,k,p;
k:=rand(1..4);
x[0]:=0; y[0]:=0;

p[0]:=plots[pointplot]([[0,0]],color=red,symbol=CIRCLE,sy
mbolsize=15);
for i from 1 to NSteps do
n:=k();
if n=1 then
x[i]:=x[i-1]+1; y[i]:=y[i-1];
elif n=2 then
x[i]:=x[i-1]-1; y[i]:=y[i-1];
elif n=3 then
x[i]:=x[i-1]; y[i]:=y[i-1]+1;
else
x[i]:=x[i-1]; y[i]:=y[i-1]-1;
end if;

p[i]:=plots[pointplot]([[x[i],y[i]]],color=red,symbol=CIR
CLE,symbolsize=15);
end do;
plots[display]([seq(p[i],i=0..NSteps)],insequence=true,sc
aling=constrained);
end proc:

> Mo_phong_1(100);

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-18-

Nếu cho nhiều phần tử cùng xuất phát từ gốc tọa độ ,ta thấy chúng thực
sự khuếch tán dần dần ra khỏi điểm xuất phát.

> Mo_phong_2:=proc(NMols::posint,NSteps::posint)
local x,y,i,j,n,k,p;
k:=rand(1..4);
for i from 1 to NMols do
x[i][0]:=0;
y[i][0]:=0;
end do;
p[0]:=plots[pointplot]([[0,0]],symbol=circle,color=blue,s
ymbolsize=8);
for j from 1 to NSteps do
for i from 1 to NMols do
n:=k();
if n=1 then
x[i][j]:= x[i][j-1]+1;
y[i][j]:= y[i][j-1];

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-19-

elif n=2 then


x[i][j]:= x[i][j-1]-1;
y[i][j]:= y[i][j-1];
elif n=3 then
x[i][j]:= x[i][j-1];
y[i][j]:= y[i][j-1]+1;
elif n=4 then
x[i][j]:= x[i][j-1];
y[i][j]:= y[i][j-1]-1;
end if;
end do;

p[j]:=plots[pointplot]([seq([x[t][j],y[t][j]],t=1..NMols)
],symbol=circle,color=blue,symbolsize=8);
end do;
plots[display]([seq(p[t],t=0..NSteps)],insequence=true);
end proc:

> Mo_phong_2(50,100);

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-20-

Phần C Kết luận

I .Kết quả thực hiện được

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51
Mô phỏng xác suất trong maple
-21-

Đề tài đã minh họa được việc sử dụng maple để tính toán xác suất , đã
minh họa được các đại lượng đặc trưng trong xác suất như biến ngẫu
nhiên,kỳ vọng,phương sai…và một số quy luật xác suất thông dụng như
phân phối chuẩn,phân phối poisson,đề tài đã đề cập đến một bài toán cơ
bản trong xác suất là bài toán gieo con xúc sắc và các trường hợp riêng và
một hiện tượng
tự nhiên có nguyên lý giống với bài toán đó .Qua các bài toán trên ta thấy
có thể dùng maple để tính toán trực tiếp dựa vào các công thức toán học
hoặc dựa vào các hàm có sẵn của maple hoặc có thể lập trình tính xác
suất .Ngoài ra có thể dùng maple mô phỏng các hiện tượng tự nhiên có
tính chất xác suất như mô phỏng quá trình rút bài, quá trình khuếch tán…

II .Một số vấn đề hạn chế và hướng mở rộng


Ta thấy các bài toán được minh họa chưa nhiều ,đề tài chưa minh họa các
bài toán xác suất đầy đủ,các bài toán xác suất nhiều chiều,vector ngẫu
nhiên chưa minh họa bản chất giải tích của xác suất là luật số lớn và định
lý giới hạn trung tâm…đề tài chưa đi sâu vào giải quyết một vấn đề ứng
dụng cụ thể của xác suất.
Ta có thể mở rộng đề tài bằng cách giải quyết các hạn chế trên hoặc mở
rộng sang thống kê ,hoặc mở rộng sang phần mô phỏng các quá trình lý
thuyết ngẫu nhiên : quá trình Markov, lý thuyết xếp hàng…

Tài liệu tham khảo


1.Hướng dẫn và sử dụng Maple V của Nguyễn Hữu Điển
2.Giáo trình xác suất thống kê của Tống Đình Quỳ
3.Tài liệu lấy trên Internet
http://maplevn2008.wordpress.com
http://dayvahoc.net
http://www.google.com
http://www.thuvienkhoahoc.com

Giảng viên : Nguyễn Hữu Điển


Sinh viên thực hiện : Đặng Thái Dương Lớp Toán Tin 1 K51

You might also like