2021-05-12 14:32:11
MATLAB計算二項分布和繪圖的方法
本文介紹了二項分布B(n,p)和二項分布的期望np、方差np(1-p)等概念,同時介紹了MATLAB計算二項分布和繪圖的方法。
1
先介紹一下什麼是二項分布?二項分布就是重複n次伯努利試驗。在每次試驗中只有兩種結果:yes or no,並且事件發生的概率p在每次試驗中都是獨立的。下圖第一個公式是二項分布的公式,即進行n次試驗,事件發生k次的概率分布。第二個公式是二項分布的期望,即進行n次試驗,事件預期發生多少次。第三個公式是二項分布的方差,即進行n次試驗,資料波動情況。
2
下面用MATLAB演示二項分布。例如A隊每次贏球的概率p=0.7,現在進行了20次試驗(比賽),求A隊贏球的二項分布X~B(20, 0.7)。啟動MATLAB,輸入以下程式碼:
close all; clear all; clc
n = 20; % 20次試驗
p = 0.7; % 事件A發生的概率為0.7
q = 1-p; % 事件A不發生的概率為1-p
f = zeros(1,n+1); % 對二項分布f賦予初值
for k=0:1:n; % 事件A發生k次,求二項分布f,即成功k次的概率
f(k+1) = (factorial(n)/factorial(n-k)/factorial(k))*p^k*(1-p)^(n-k);
end
bar(0:n,f);hold on
plot(0:n,f,'y-','LineWidth',3);hold off
其中factorial(n)是求n的階乘, (factorial(n)/factorial(n-k)/factorial(k))其實就是C(n,k)的意思。
3
儲存和執行上述程式碼,得到如下圖形。可以看到該二項分布B(20,0.7)在20次試驗(比賽)中,事件A發生(A隊贏球)最多的次數是14。其實通過計算期望np=20*0.7=14,我們也可以知道,在20次比賽中,事件A發生(A隊贏球)預期發生14次。
4
如果把事件A的發生的概率改為p=0.5,再次執行上述程式碼。
5
從下圖可以看出,當p=0.5時,得到的二項分布,與正態分布接近。
6
在命令列視窗輸入sum(f),計算20次試驗中,事件發生k次的概率之和,可以發現它等於1。也就是說,n次試驗中,事件發生k次的概率之和為1.
相關文章