をプログラムとして見たときに注意・検討すべきところを学んでおきたい、ということで
を読んでいく。
前回
8. 数学演算とシミュレーションの実行
における数学演算を扱う。
8.1 数学関数
に用意されている数学関数は、たとえば以下がある。
関数 |
内容 |
|
---|---|---|
指数関数 | ||
平方根 | ||
絶対値 | ||
など | 三角関数 | |
ベクトル内の最小値 | ||
ベクトル内の最大値 | ||
ベクトルの最小要素のインデックス | ||
ベクトルの最大要素のインデックス | ||
複数のベクトルの要素ごとの最小値 | ||
複数のベクトルの要素ごとの最大値 | ||
ベクトル要素の合計 | ||
ベクトル要素の積 | ||
ベクトル要素の累計合計 | ||
ベクトル要素の累積積 | ||
丸め | ||
切り下げ | ||
切り上げ | ||
階乗関数 |
8.2 統計分布のための関数
統計分布のための関数は、名前の前に以下のような接頭辞を付ける。
密度関数または確率質量関数 | ||
累積分布関数 | ||
分位関数 | ||
乱数生成 |
mean(rchisq(1000),df = 2) # 自由度2のカイ二乗乱数1,000個の平均値 qchisq(0.95,2) # 自由度2のカイ二乗分布の95%点
8.3 ソート
############## ### ソート ### ############## x <- c(13,5,12,5) sort(x) # 並び替えた後の値を返す x # Pythonとは異なり、ソート対象は変化しない order(x) # 並び替えた場合のインデックスを返す
8.4 ベクトルや行列に対する線形代数演算
ベクトルとスカラの乗算はそのまま実行する。
ベクトルの内積を計算したい場合は、を用いる。
行列の転置 | ||
分解 | ||
分解 | ||
行列式 | ||
固有値・固有ベクトル | ||
正方行列の対角成分 | ||
数値解析スイープ演算 |
8.5 集合演算
には以下のような集合演算が用意されている。
との和集合 | ||
との共通部分 | ||
との差集合 | ||
との等価性の検査 | ||
が集合の要素であるかの論理値 | ||
サイズの集合から選べるサイズの部分集合の数 |
8.6 Rでのシミュレーションプログラム
8.6.1 組み込み乱数ジェネレーター
前述の...関数を用いて乱数を発生させることでシミュレーションができる。
# 公平なコインで5回コイントスをした際に4回以上表が出る確率をシミュレート x <- rbinom(10000,5,0.5) mean(x >= 4)
8.6.2 繰り返し実行時に同じ乱数列を得る
乱数ジェネレーターは、シード値に32ビット整数を用いる。そのため丸め誤差を除けば同じ初期シードは同じ乱数を生成する。
同じ乱数を生成したければ、関数を用いて初期シードを設定すればよい。