関数NCHOOSEKを使用して、二項係数を計算できます。これにより、特定の値と次のk
値のセットの確率質量関数の値を計算する関数を作成できます。N
p
function pmf = binom_dist(N,p,k)
nValues = numel(k);
pmf = zeros(1,nValues);
for i = 1:nValues
pmf(i) = nchoosek(N,k(i))*p^k(i)*(1-p)^(N-k(i));
end
end
確率質量関数をプロットするには、次のようにします。
k = 0:40;
pmf = binom_dist(40,0.5,k);
plot(k,pmf,'r.');
累積分布関数は、 CUMSUMを使用して確率質量関数から見つけることができます。
cummDist = cumsum(pmf);
plot(k,cummDist,'r.');
注:NCHOOSEKから返される二項係数が大きい場合、精度が失われる可能性があります。非常に優れた代替手段は、MathWorksFileExchangeでJohnD'Erricoから提出されたVariablePrecisionIntegerArithmeticを使用することです。あなたの数を彼のタイプに変換することによって、あなたは精度の損失を避けることができます。vpi