不完全ベータ関数が計算できる
「不完全ベータ関数が計算できない」と困っていませんか?
こういう疑問に答えます。
本記事のテーマ
- ①不完全ベータ関数とは
- ➁不完全ベータ関数は手計算できない
- ➂プログラムを使って不完全ベータ関数を計算しよう
QCに必要な数学問題集をを販売します!
QC検定®1級、2級、統計検定2級以上の数学スキルを磨くのに苦戦していませんか? 広大すぎる統計学、微分積分からQC・統計に勝てるための60題に厳選した問題集を紹介します。是非ご購入いただき、勉強してスキルを高めましょう。 |
①不完全ベータ関数とは
ベータ関数とは
詳細は関連記事をご覧ください。
ベータ関数がよくわかる ベータ関数は自力で解けますか?本記事ではベータ関数の導出方法や性質、ガンマ関数との関係をわかりやすく解説します。大学の数学のような難解な説明は一切していません。、大学受験で頻出問題となるベータ関数は受験でも統計学でも重要です。受験生と統計学を学ぶ人は必読です。 |
式は
=\(\frac{(m-1)!(n-1)!}{(m+n-1)!}\)
不完全ベータ関数とは
積分区間が違います。
=??
大した差ではないですが、計算の大変さが全然ちがいます。
不完全ベータ関数はメジアンランク法に使う
信頼性工学のメジアンランク法で不完全ベータ関数を使うので、解説します。
詳細は関連記事をご覧ください。
➁不完全ベータ関数は手計算できない
完全なベータ関数を部分積分する
まず、部分積分すると、漸化式が作れます。
\(\displaystyle \int_{0}^{1} x^{m-1}(1-x)^{n-1} dx\)を部分積分すると、
\(\left[ \frac{1}{m}x^{m} (1-x)^{n-1} \right]_{1}^{0}\)
=\(\displaystyle \int_{0}^{1} x^{m-1}(1-x)^{n-1} dx\)
+\(\frac{n-1}{m}\displaystyle \int_{0}^{1} x^{m}(-1)(1-x)^{n-2} dx\)
(左辺)= \(\left[ \frac{1}{m}x^{m} (1-x)^{n-1} \right]_{1}^{0}\)は0です。
(右辺)=\(I(m.n)\)-\(\frac{n-1}{m}I(m+1,n-1)\)
となり、
0=\(I(m.n)\)-\(\frac{n-1}{m}I(m+1,n-1)\)
から漸化式が作れて、
積分\(I(m.n)\)= \(\displaystyle \int_{0}^{1} x^{m-1}(1-x)^{n-1} dx\)が計算できます。
不完全なベータ関数を部分積分する
同様に積分区間が[0,z]においても、部分積分すると、漸化式が作れます。
\(\displaystyle \int_{0}^{z} x^{m-1}(1-x)^{n-1} dx\)を部分積分すると、
\(\left[ \frac{1}{m}x^{m} (1-x)^{n-1} \right]_{z}^{0}\)
=\(\displaystyle \int_{0}^{z} x^{m-1}(1-x)^{n-1} dx\)
+\(\frac{n-1}{m}\displaystyle \int_{0}^{z} x^{m}(-1)(1-x)^{n-2} dx\)
(左辺)= \(\left[ \frac{1}{m}x^{m} (1-x)^{n-1} \right]_{z}^{0}\)は0にならず、zの変数になります。です。
(右辺)=\(I(m.n)\)-\(\frac{n-1}{m}I(m+1,n-1)\)
となり、
(左辺のzの式)=\(I(m.n)\)-\(\frac{n-1}{m}I(m+1,n-1)\)
から漸化式が作れますが、
なので、
➂プログラムを使って不完全ベータ関数を計算しよう
二項定理を使って、不完全ベータ関数の計算式を作る
では、やってみましょう。
\(B(m,n)= \displaystyle \int_{0}^{z} x^{m-1}(1-x)^{n-1} dx\)
ここで、\((1-x)^{n-1}\)を二項定理で展開します。大丈夫ですか?
QCには欠かせない二項定理、統計学、抜取検査、信頼性工学と大活躍です。
\((1-x)^{n-1}\)=\(\sum_{r=0}^{n-1} {}_{n-1}C_r 1^r (-x)^{n-1-r}\)
これを積分式に代入します。ちょっと難しいけど、頑張りましょう。
\(B(m,n)= \displaystyle \int_{0}^{z} {}_{n-1}C_r x^{m-1}(1-x)^{n-1} dx\)
= \(\displaystyle \int_{0}^{z} x^{m-1} \sum_{r=0}^{n-1} {}_{n-1}C_r 1^r (-x)^{n-1-r} dx\)
\(x\)の次数を合計します。
= \(\displaystyle \int_{0}^{z} \sum_{r=0}^{n-1} {}_{n-1}C_r (-1)^{n-1-r} x^{n+m-2-r} dx\)
\(x\)の整式なので、積分すると、
\(\left[ \sum_{r=0}^{n-1} {}_{n-1}C_r (-1)^{n-1-r} \frac{1}{n+m-1-r} x^{n+m-1-r} \right]_{z}^{0}\)
=\( \sum_{r=0}^{n-1} {}_{n-1}C_r (-1)^{n-1-r} \frac{1}{n+m-1-r} z^{n+m-1-r} \)
となります。これをプログラムに入れて計算させます。
プログラム(Excel VBA)を使って不完全ベータ関数を計算しよう
では、プログラムを公開します。実際、いじってみてください。
VBAプログラム例
1. Sub gam()
2.
3. gok = 0 ‘B(m,n) 初期化
4.
5. Dim nn As Long, mm As Long
6. nn = Cells(2, 3): mm = Cells(3, 3): zz = Cells(4, 3)
‘自然数n,mと、実数(0~1)zをセルに代入
7.
8. For i1 = 1 To nn ‘nの値 1~nまで
9. Cells(i1 + 6, 2) = i1
10. For j1 = 1 To mm ‘mの値 1~mまで
11. Cells(6, j1 + 2) = j1
12. gok = 0 ‘初期化
13. For k1 = 0 To i1 – 1
‘rの値 0~n-1まで(二項定理)
14.
15. ‘積分の計算
16. gok = gok + WorksheetFunction.Combin(i1 – 1, k1) *
((-1) ^ (i1 – 1 – k1))
* (1 / (i1 + j1 – k1 – 1))
* (zz ^ (i1 + j1 – k1 – 1))
17. Next k1
18. Cells(i1 + 6, j1 + 2) = gok ‘結果を出力
19. Next j1
20. Next i1
21.
22. End Sub
計算例
z=1のとき
z=1のときは、完全なベータ関数ですから、
=\(\frac{(m-1)!(n-1)!}{(m+n-1)!}\)
の値と一致します。
上のプログラムの計算結果は
となり、
\(B(m,n)\)= \(\frac{(m-1)!(n-1)!}{(m+n-1)!}\)
と一致します。
確かに、\(m=4,n=5\)を代入するとB(m,n)は
\(B(4,5)\)= \(\frac{(4-1)!(5-1)!}{(4+5-1)!}\)
= \(\frac{3!・4!}{8!}\)
=\(\frac{1}{280}\)
=0.003571
図を見ると確かに、 \(m=4,n=5\)のときは、0.003571となり、計算結果が一致しています。
z=zのとき
テキトウな値を入れて、確認しましょう。
z=0.5の場合を計算しましたが、0から1の間の実数を入れれば、上のプログラムで一瞬で計算してくれます。是非活用ください!
できましたね。
まとめ
「不完全ベータ関数が計算できる」を解説しました。
- ①不完全ベータ関数とは
- ➁不完全ベータ関数は手計算できない
- ➂プログラムを使って不完全ベータ関数を計算しよう
Warning: count(): Parameter must be an array or an object that implements Countable in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 119