몬테카로가 시뮬레이션한π의 평가
4385 단어 몬테카로 시뮬레이션평점πPython
원과 무작위 수를 사용하는 시뮬레이션에서 고전적인 몬테카로 시뮬레이션 훈련의π로 제시되고 평가된다.
몬테카로 시뮬레이션
확률로 값을 평가하는 방법.추정이라고는 하지만 충분히 믿을 만한 값을 쉽게 만들 수 있기 때문에 몬테카로 방법의 유용성이 높다.현재도 금융상품의 리스크 계산과 통계학의 수치 계산 등에서 사용되고 있다.
π를 만드는 방법(조건/식)
0~1의 랜덤수를 바탕으로 0~1의 xy평면에 랜덤으로 점을 찍는다.원 안의 점의 수량 P와 전체의 점의 수량 N의 비는 원 S1과 평면 전체 S2의 면적비에 대응한다.
원 안에 랜덤으로 점을 찍는 모습을 볼 수 있다.그림의 단위 원은 1/4이기 때문에 면적비는 S1/S2 =π/4이다.원점 내의 점 체크는 원점과의 거리를 사용합니다.거리가 1 이하일 때 변수 p에 1을 추가합니다.원의 구역 x^2+y^2<=1을 통해 거리를 얻을 수 있습니다.프로그램 언어는 Python을 사용합니다.
코드
MCsim
import random
def main():
sta,order=map(int,input("start order").split()) #何個の点を打つか決める。
for order in range(order):
N=sta*10**order #orderは指数
p=0
for n in range(N):
x=make_r()
y=make_r()
if x**2+y**2<=1:
p+=1
pi=4*p/N
print("pi=",pi,"N=",N)
#0以上1以下の乱数作り関数
def make_r():
while True:
r=(random.random())*2
if r>1:
continue
else:
break
return r
if __name__=="__main__":
main()
결실결과는 다음 그림과 같습니다.
점의 수량이 증가함에 따라 pi(π)의 값에 가깝다.1000만 점을 쳤을 때π는 3.1409824로 바뀌었다.
평점
무작위로 1만 점을 넘긴 곳부터 소수점 2위까지 정밀도를 알 수 있다.1000만 점의 경우 소수점 3위까지 반올림은 일치한다.
고찰하다.
만약 충분한 견본점이 있다면, 몬테카로 시뮬레이션에서 충분한 정밀도를 가지고 값을 평가할 수 있다.랜덤수의 생성은 삽입식 함수에 의존하기 때문에 다음에도 랜덤수를 주의해야 한다.
Reference
이 문제에 관하여(몬테카로가 시뮬레이션한π의 평가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/newEDGE/items/947ab78a1f7e8bf0c4b5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)