몬테카를로 방법을 이용한 원주율 구하기

몬테카를로 방법 : 간단히 말해서 무작위 수(Random number)와 확률로 시뮬레이션을 설계하여 복잡한 문제의 해를 근사적으로 구하는 방법

몬테카를로 방법으로 원의 넓이를 구하는 방법 (강의자료에 있는 코드 사용)

https://colab.research.google.com/drive/1M9xq5N9mW_-ta-vcGpmqpj1HqHDoch_Q?usp=sharing

def mc_int(fun, low, high, sample_size = 100, repeat = 10):
  int_len = np.abs(high - low)  ## 적분구간 길이
  stat = []
  for _ in range(repeat):
    x = np.random.uniform(low = low, high = high, size = sample_size)
    fun_x = fun(x)
    int_val = int_len * np.mean(fun_x)
    stat.append(int_val)
  return 4*np.mean(stat), np.std(stat) 

def f_x(x):
  return np.sqrt(1-x**2)  ## 원하는 함수 식

print(mc_int(f_x, low = 0, high = 1, sample_size = 10000, repeat = 100))

>>> (3.141669299163669, 0.002650714613546877)
  1. 한 변의 길이가 1인 정사각형을 그리고 그안에 반지름 1인 사분원을 그린다. (r =1)

  2. 사분원의 넓이는 $\frac{1}{4}\pi r^{2}$ 이므로 몬테카를로 방법으로 구한 사분원의 넓이에 $\frac{4}{r^{2}}$ 를 곱하면 원주율 $\pi$를 구할 수 있다. 즉, 4를 곱하면 원주율을 구할 수 있다.

몬테카를로 방법 (몬테카를로 적분)엔 두가지가 있다.

확률과 가능도(likelihood)의 차이

https://rpubs.com/Statdoc/204928

연속, 이산의 정확한 개념 이산확률변수 : 가능한 결과 집합이 셀 수 있는 경우 ex) X = {1,2,3,4,...,n} 연속확률변수 : 가능한 결과 집합이 셀 수 없는 경우 ex) X = {x | 0 < x < 100 인 실수}

PDF 에서 확률은 구간을 적분해서 구할 수 있다. P(a < X < b) = $\int_{a}^{b}f(x)dx$

세로축은 확률이 아니라 확률밀도이다. (PMF에서는 세로축이 확률 맞다.)

확률과 가능도의 차이 : 연속 확률 분포에서 특정 값의 확률은 0이지만, 가능도는 0이 아니다.

PDF 에서 확률 : Pr(a < X < b) = $\int_{a}^{b}f(x)dx$, Pr( X = x ) = 0

가능도함수 정의 : ${{L}}(\theta |x)=\Pr(X=x|\theta )$