R言語

【R言語】ベータ関数とガンマ関数 関数beta, gammaの使い方

  1. HOME >
  2. R言語 >

【R言語】ベータ関数とガンマ関数 関数beta, gammaの使い方

スポンサーリンク

R言語でベータ関数とガンマ関数を計算する関数とその実行例についてまとめました。

階乗を複素数に拡張した特殊関数であるガンマ関数とそれに関連するベータ関数をR言語で計算する方法を紹介します。

この記事で用いるプログラミングコードは以下からダウンロードできます。

ベータ関数とガンマ関数

R言語でベータ関数とガンマ関数を計算する際に用いる関数をまとめました。

ベータ関数とガンマ関数のほかにも、対数をとったものを計算する関数なども実装されています。

ベータ関数

次の関数betaでベータ関数を計算することができます。

また、関数lbetaでベータ関数に対数をとったものを計算できます。

beta(a, b)
lbeta(a, b)

関数betalbetaの引数は次の通りです。

関数beta, lbetaの引数
aパッケージ名のcharacter型のベクトル
bインストール先のlibraryのディレクトリを表すcharacter型のベクトル。

ガンマ関数

関数gammaでガンマ関数を計算することができます。

また、ガンマ関数に対数をとったものなど様々な関数が用意されています。

gamma(x)
lgamma(x)
psigamma(x, deriv = 0)
digamma(x)
trigamma(x)

関数gammalgammapsigammadigammatrigammaの引数は次の通りです。

関数gamma, lgamma, psigamma, digamma, trigammaの引数
xリポジトリのURL。"username/repo[/subdir][@ref|#pull]"のように与える。
derivリポジトリのユーザー名。

実行例

ベータ関数とガンマ関数をR言語で計算する例をまとめました。

それぞれの関数の計算例だけでなくグラフの描き方についても紹介しています。

ベータ関数

ベータ関数を計算するには関数betaを用います。

引数abにはそれぞれベータ関数\(B(a, b)\)の引数に対応しています。

また、関数lbetaでベータ関数に対数をとったものを計算することもできます。

計算した各種ベータ関数の値はそれぞれ次となります。

また、関数perspを使うことでベータ関数を描くことができます。

関数betalbetaのグラフはそれぞれ下の画像のようになります。

関数beta

関数lbeta

ガンマ関数

次にガンマ関数の計算例について見ていきます。

ガンマ関数を計算するには関数gammaを用います。

引数xはガンマ関数\(\Gamma(x)\)の引数に対応しています。

また、関数lgammaでガンマ関数に対数をとったものを計算でき、psigammadigammatrigammaでそれぞれ次で定義される関数の値を得ることができます。

\begin{align}\mathrm{psigamma}(x, m) &=\psi^{(m)}(x) =  \cfrac{d^m}{dx^m} \psi(x) = \cfrac{d^{m+1}}{dx^{m+1}}\ln \Gamma(x)  , \\ \mathrm{digamma}(x) &= \psi(x) =  \cfrac{d}{dx} \ln \Gamma(x) = \cfrac{\Gamma'(x)}{\Gamma(x)}, \\ \mathrm{trigamma}(x) &=\psi_1(x) = \cfrac{d}{dx} \psi(x)=\cfrac{d^2}{dx^2}\ln \Gamma(x). \end{align}

計算したこれらの関数の値は次の通りです。

また、関数curveを用いることで、各種ガンマ関数を描くことができます。

関数gamma

関数lgamma

関数psigamma

関数digamma

関数trigamma

まとめ

R言語でベータ関数とガンマ関数を計算する関数を紹介しました。

ベータ関数とガンマ関数はRに標準で実装されており、それぞれ関数betagammaを用いることで計算することが可能です。

また関数lbetalgammaなどのそれぞれの関数に対数をとったものや、ガンマ関数に関連する特殊関数も実装されています。

スポンサーリンク

  • この記事を書いた人
  • 最新記事

usagi-san

統計学とゲームとかをメインに解説していくよ。 数式とかプログラミングコードにミスがあったり質問があったりする場合はコメントで受け付けます。すぐに対応します。

-R言語
-,