python モンテカルロ积分の收束テスト
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python モンテカルロ积分の收束テスト相关的知识,希望对你有一定的参考价值。
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
import scipy.integrate
# モンテカルロ積分の収束テスト
# 例3.3の場合
N = 10000
a, b = 0, 1
h = lambda x: (np.cos(50 * x) + np.sin(20 * x)) ** 2
# scipy.integrateで積分を計算
I = scipy.integrate.quad(h, a, b)[0]
print "scipy.integrate:", I
# モンテカルロ積分の収束テスト
x = h(uniform(loc=a, scale=b-a).rvs(size=N))
# サンプル数1のh_1からサンプル数Nのh_Nまで推定値をまとめて求める
estint = np.cumsum(x) / np.arange(1, N + 1)
# サンプル数1のsqrt(v_1)からサンプル数Nのsqrt(v_N)まで標準偏差をまとめて求める
esterr = np.sqrt(np.cumsum((x - estint) ** 2)) / np.arange(1, N + 1)
plt.plot(estint, color='red', linewidth=2)
plt.plot(estint + 2 * esterr, color='gray')
plt.plot(estint - 2 * esterr, color='gray')
plt.ylim((0, 2))
plt.show()
以上是关于python モンテカルロ积分の收束テスト的主要内容,如果未能解决你的问题,请参考以下文章
python 『 - [Rによるモンテカルロ法入门の例3.5
python 「 - [Rによるモンテカルロ法入门」の练习问题3.4
python 练习问题3.1コーシー·ベイズ推定量をモンテカルロ积分で计算する
php ローカルのテスト环境かどうか判别
题解 AT25 プログラミングコンテスト
python ChainerのでCNN CIFAR-10の一般物体认识(テスト精度75%くらい)